From 3b01845f1145660b5290ac61efac8a20c9197f5a Mon Sep 17 00:00:00 2001 From: Gareth Aneurin Tribello Date: Sat, 8 Apr 2023 19:45:50 +0100 Subject: [PATCH 001/313] Updated API versions that are allowed for PLUMED --- src/PLUMED/fix_plumed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PLUMED/fix_plumed.cpp b/src/PLUMED/fix_plumed.cpp index f06d5474f6..503e5ce8d3 100644 --- a/src/PLUMED/fix_plumed.cpp +++ b/src/PLUMED/fix_plumed.cpp @@ -77,7 +77,7 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : int api_version=0; p->cmd("getApiVersion",&api_version); - if ((api_version < 5) || (api_version > 9)) + if ((api_version < 5) || (api_version > 10)) error->all(FLERR,"Incompatible API version for PLUMED in fix plumed. " "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x are tested and supported."); From 93ecbbdcff454c9e5db833e388675dae0424a2a1 Mon Sep 17 00:00:00 2001 From: Gareth Aneurin Tribello Date: Thu, 13 Apr 2023 15:42:26 +0100 Subject: [PATCH 002/313] Modified CMAKE file so we can hopefully use the PLUMED_SUFFIX --- cmake/Modules/Packages/PLUMED.cmake | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake index 9a4a9556ee..947b0e04f4 100644 --- a/cmake/Modules/Packages/PLUMED.cmake +++ b/cmake/Modules/Packages/PLUMED.cmake @@ -4,6 +4,8 @@ set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES}) validate_option(PLUMED_MODE PLUMED_MODE_VALUES) string(TOUPPER ${PLUMED_MODE} PLUMED_MODE) +set(PLUMED_SUFFIX "" CACHE STRING "Suffix for Plumed2 library") + set(PLUMED_LINK_LIBS) if(PLUMED_MODE STREQUAL "STATIC") find_package(LAPACK REQUIRED) @@ -90,15 +92,15 @@ if(DOWNLOAD_PLUMED) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) else() find_package(PkgConfig REQUIRED) - pkg_check_modules(PLUMED REQUIRED plumed) + pkg_check_modules(PLUMED REQUIRED plumed${PLUMED_SUFFIX}) add_library(LAMMPS::PLUMED INTERFACE IMPORTED) if(PLUMED_MODE STREQUAL "STATIC") - include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static) + include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.static) elseif(PLUMED_MODE STREQUAL "SHARED") - include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.shared) + include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.shared) elseif(PLUMED_MODE STREQUAL "RUNTIME") - set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}plumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.runtime) + set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_COMPILE_DEFINITIONS "__PLUMED_DEFAULT_KERNEL=${PLUMED_LIBDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}plumed${PLUMED_SUFFIX}Kernel${CMAKE_SHARED_LIBRARY_SUFFIX}") + include(${PLUMED_LIBDIR}/plumed${PLUMED_SUFFIX}/src/lib/Plumed.cmake.runtime) endif() set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_LINK_LIBRARIES "${PLUMED_LOAD}") set_target_properties(LAMMPS::PLUMED PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PLUMED_INCLUDE_DIRS}") From 7fa0e7b7300d6dcb8d2588fd5727d6012cd2df18 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 27 Apr 2022 11:35:01 +0100 Subject: [PATCH 003/313] Added script for 2-particle visualisation --- examples/PACKAGES/cgdna/util/lmp2vis.py | 202 ++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100755 examples/PACKAGES/cgdna/util/lmp2vis.py diff --git a/examples/PACKAGES/cgdna/util/lmp2vis.py b/examples/PACKAGES/cgdna/util/lmp2vis.py new file mode 100755 index 0000000000..d51db447ce --- /dev/null +++ b/examples/PACKAGES/cgdna/util/lmp2vis.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python +""" +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Oliver Henrich (University of Strathclyde, Glasgow) +------------------------------------------------------------------------- */ + +Program: lmp2vis.py + +Produces a simple representation of the oxDNA nucleotide with separate +particles for backbone and base interaction site. The base particle inherits +the atom type, whereas the backbone particle acquires an offset of 10. This +can be changed below. + +Usage: +$$ python lmp2vis.py [visualisation (vmd OR ovito, default=ovito)] input_filename output_filename + +Requirements: +The LAMMPS trajectory input file needs to contain the following data columns: +id mol type x y z vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] +""" + +import sys, math, subprocess + +# converts quaternion DOF into local body reference frame +def q_to_exyz(q1,q2,q3,q4): + + q=[q1, q2, q3, q4] + ex= [0, 0, 0] + ey = [0, 0,0] + ez = [0, 0, 0] + + ex[0]=q[0]*q[0]+q[1]*q[1]-q[2]*q[2]-q[3]*q[3] + ex[1]=2*(q[1]*q[2]+q[0]*q[3]) + ex[2]=2*(q[1]*q[3]-q[0]*q[2]) + + ey[0]=2*(q[1]*q[2]-q[0]*q[3]) + ey[1]=q[0]*q[0]-q[1]*q[1]+q[2]*q[2]-q[3]*q[3] + ey[2]=2*(q[2]*q[3]+q[0]*q[1]) + + ez[0]=2*(q[1]*q[3]+q[0]*q[2]) + ez[1]=2*(q[2]*q[3]-q[0]*q[1]) + ez[2]=q[0]*q[0]-q[1]*q[1]-q[2]*q[2]+q[3]*q[3] + + return ex,ey,ez + +# processes line by line of LAMMPS trajectory +def transform(line): + + list1 = line.split() + ident, mol, typ = int(list1[0]), int(list1[1]), int(list1[2]) + typb = typ + 10 # defines new backbone types, here offset is 10 from atom (base) type + x, y, z = float(list1[3]), float(list1[4]), float(list1[5]) + vx, vy, vz = float(list1[9]), float(list1[10]), float(list1[11]) + c_quat1, c_quat2, c_quat3, c_quat4 = \ + float(list1[12]), float(list1[13]), float(list1[14]), float(list1[15]) + + ex, ey, ez = q_to_exyz(c_quat1, c_quat2, c_quat3, c_quat4) + + # position of sugar-phosphate backbone interaction site in oxDNA2 + x1, y1, z1 = x -0.34*ex[0]+0.3408*ey[0],y -0.34*ex[1]+0.3408*ey[1], z-0.34*ex[2]+0.3408*ey[2] + + # position of base interaction site in oxDNA2 + x2, y2, z2 = x +0.4*ex[0], y + 0.4*ex[1], z+0.4*ex[2] + + # compose basic output data: id, molecule id, type, position, velocity quaternion + line1 = '%d'%(2*ident-1) +' '+ '%d'%mol +' '+ '%d'%typb +' '+\ + '%13.6e'%(x1) +' '+ '%13.6e'%(y1) +' '+ '%13.6e'%(z1) +' '+\ + '%13.6e'%(vx) +' '+ '%13.6e'%(vy) +' '+ '%13.6e'%(vz) +' '+\ + '%13.6e'%(c_quat1) +' '+ '%13.6e'%(c_quat2) +' '+ '%13.6e'%(c_quat3) +' '+ '%13.6e'%(c_quat4) + + line2 = '%d'%(2*ident) +' '+ '%d'%mol +' '+ '%d'%typ +' '+\ + '%13.6e'%(x2) +' '+ '%13.6e'%(y2) +' '+ '%13.6e'%(z2) +' '+\ + '%13.6e'%(vx) +' '+ '%13.6e'%(vy) +' '+ '%13.6e'%(vz) +' '+\ + '%13.6e'%(c_quat1) +' '+ '%13.6e'%(c_quat2) +' '+' %13.6e'%(c_quat3) +' '+ '%13.6e'%(c_quat4) + + # use oblate particles for bases in ovito + shape_sphere = ' 0.4 0.4 0.4' + shape_ellipsoid = ' 0.5 0.2 0.1' + if vismethod == 'ovito': + line1 += shape_sphere +' ' + line2 += shape_ellipsoid +' ' + + line1 += '\n' + line2 += '\n' + + line= line1 + line2 + return line + +### main part ### + +# digest command line input +if len(sys.argv)<3: + print("Syntax: $$ python lmp2vis.py [visualisation (vmd OR ovito, default=ovito)] input_filename output_filename") + sys.exit(1) + +if len(sys.argv)==3: + vismethod = 'ovito' # default visualisation method + infilename = sys.argv[1] + outfilename = sys.argv[2] + +if len(sys.argv)==4: + vismethod = sys.argv[1] + if (sys.argv[1]!='vmd' and sys.argv[1]!='ovito'): + vismethod = 'ovito' # default visualisation method + infilename = sys.argv[2] + outfilename = sys.argv[3] + +print('# Converting LAMMPS output for visualisation with %s' % vismethod) + +# count lines to process for progress report +n = 0 +try: + result = subprocess.run(['wc', '-l', '%s'%infilename], stdout=subprocess.PIPE) + reslist=str(result).split() + nlines=float(reslist[5]) +except: + nlines = 100 + +r=open(infilename,'r') +w=open(outfilename,'w+') + +line=r.readline() # read first line in file + +while line != '': + + sys.stdout.write('# Processed %3d %%\r' % (100*n/nlines)) + + # find number of atoms in timestep and double + if line.find('NUMBER OF ATOMS') != -1: + w.write(line) + N=int(r.readline()) + # write to output file and read next line + w.write('%d'%int(2*N)+'\n') + line=r.readline() + + # find beginning of atom data section + if line.find('ITEM: ATOMS') != -1: + # first pass: extract column number of ID, molecule ID, type, postion, velocity, quaternion + if n==0: + linestring=line.split() + idindex = linestring.index('id') + molindex = linestring.index('mol') + typeindex = linestring.index('type') + xindex = linestring.index('x') + yindex = linestring.index('y') + zindex = linestring.index('z') + vxindex = linestring.index('vx') + vyindex = linestring.index('vy') + vzindex = linestring.index('vz') + qwindex = linestring.index('c_quat[1]') + qxindex = linestring.index('c_quat[2]') + qyindex = linestring.index('c_quat[3]') + qzindex = linestring.index('c_quat[4]') + + # create header + header = linestring[0] + ' ' + linestring[1] + ' ' + \ + linestring[idindex] + ' ' + linestring[molindex]+ ' ' + linestring[typeindex]+ ' ' + \ + linestring[xindex]+ ' ' + linestring[yindex]+ ' ' + linestring[zindex]+ ' ' + \ + linestring[vxindex]+ ' ' + linestring[vyindex]+ ' ' + linestring[vzindex]+ ' ' + \ + linestring[qwindex]+ ' ' + linestring[qxindex]+ ' ' + linestring[qyindex]+ ' ' + linestring[qzindex] + + # extend header for ovito + if vismethod == 'ovito': + header += ' shape[0] shape[1] shape[2]' + header += '\n' + + ### begin processing atom data + i=0 + w.write(header) + + # tranform each atom and write to output file + while i Date: Wed, 27 Apr 2022 11:35:51 +0100 Subject: [PATCH 004/313] Changed permissions to non-executable --- examples/PACKAGES/cgdna/util/lmp2vis.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 examples/PACKAGES/cgdna/util/lmp2vis.py diff --git a/examples/PACKAGES/cgdna/util/lmp2vis.py b/examples/PACKAGES/cgdna/util/lmp2vis.py old mode 100755 new mode 100644 From c5fc65433aee509f25096ae78113d5b30eccceed Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Thu, 28 Apr 2022 19:00:40 +0100 Subject: [PATCH 005/313] Updated and added utility scripts --- examples/PACKAGES/cgdna/util/lmp2vis.py | 57 ++++----- examples/PACKAGES/cgdna/util/nbps.py | 161 ++++++++++++++++++++++++ 2 files changed, 190 insertions(+), 28 deletions(-) create mode 100755 examples/PACKAGES/cgdna/util/nbps.py diff --git a/examples/PACKAGES/cgdna/util/lmp2vis.py b/examples/PACKAGES/cgdna/util/lmp2vis.py index d51db447ce..9ce856b745 100644 --- a/examples/PACKAGES/cgdna/util/lmp2vis.py +++ b/examples/PACKAGES/cgdna/util/lmp2vis.py @@ -37,9 +37,9 @@ import sys, math, subprocess # converts quaternion DOF into local body reference frame def q_to_exyz(q1,q2,q3,q4): - q=[q1, q2, q3, q4] - ex= [0, 0, 0] - ey = [0, 0,0] + q = [q1, q2, q3, q4] + ex = [0, 0, 0] + ey = [0, 0, 0] ez = [0, 0, 0] ex[0]=q[0]*q[0]+q[1]*q[1]-q[2]*q[2]-q[3]*q[3] @@ -57,22 +57,22 @@ def q_to_exyz(q1,q2,q3,q4): return ex,ey,ez # processes line by line of LAMMPS trajectory -def transform(line): +def transform(line, colind): list1 = line.split() - ident, mol, typ = int(list1[0]), int(list1[1]), int(list1[2]) + ident, mol, typ = int(list1[colind[0]]), int(list1[colind[1]]), int(list1[colind[2]]) typb = typ + 10 # defines new backbone types, here offset is 10 from atom (base) type - x, y, z = float(list1[3]), float(list1[4]), float(list1[5]) - vx, vy, vz = float(list1[9]), float(list1[10]), float(list1[11]) + x, y, z = float(list1[colind[3]]), float(list1[colind[4]]), float(list1[colind[5]]) + vx, vy, vz = float(list1[colind[6]]), float(list1[colind[7]]), float(list1[colind[8]]) c_quat1, c_quat2, c_quat3, c_quat4 = \ - float(list1[12]), float(list1[13]), float(list1[14]), float(list1[15]) + float(list1[colind[9]]), float(list1[colind[10]]), float(list1[colind[11]]), float(list1[colind[12]]) ex, ey, ez = q_to_exyz(c_quat1, c_quat2, c_quat3, c_quat4) # position of sugar-phosphate backbone interaction site in oxDNA2 x1, y1, z1 = x -0.34*ex[0]+0.3408*ey[0],y -0.34*ex[1]+0.3408*ey[1], z-0.34*ex[2]+0.3408*ey[2] - # position of base interaction site in oxDNA2 + # position of base interaction site in oxDNA/oxDNA2 x2, y2, z2 = x +0.4*ex[0], y + 0.4*ex[1], z+0.4*ex[2] # compose basic output data: id, molecule id, type, position, velocity quaternion @@ -96,7 +96,7 @@ def transform(line): line1 += '\n' line2 += '\n' - line= line1 + line2 + line = line1 + line2 return line ### main part ### @@ -132,24 +132,25 @@ except: r=open(infilename,'r') w=open(outfilename,'w+') -line=r.readline() # read first line in file +pass1 = 0 -while line != '': +for line in r: sys.stdout.write('# Processed %3d %%\r' % (100*n/nlines)) - # find number of atoms in timestep and double - if line.find('NUMBER OF ATOMS') != -1: + # find number of atoms in timestep + if line.find('ITEM: NUMBER OF ATOMS') != -1: w.write(line) N=int(r.readline()) # write to output file and read next line w.write('%d'%int(2*N)+'\n') line=r.readline() + n+=2 # find beginning of atom data section if line.find('ITEM: ATOMS') != -1: - # first pass: extract column number of ID, molecule ID, type, postion, velocity, quaternion - if n==0: + # first pass: extract column number of ID, molecule ID, type, postion, velocity, quaternion in header line + if pass1 == 0: linestring=line.split() idindex = linestring.index('id') molindex = linestring.index('mol') @@ -177,24 +178,24 @@ while line != '': header += ' shape[0] shape[1] shape[2]' header += '\n' - ### begin processing atom data - i=0 + # store column number in data line, -2 offset form header line + colind = [idindex-2,molindex-2,typeindex-2,xindex-2,yindex-2,zindex-2,\ + vxindex-2,vyindex-2,vzindex-2,qwindex-2,qxindex-2,qyindex-2,qzindex-2] + pass1 = 1 + + # begin processing atom data in timestep w.write(header) - # tranform each atom and write to output file - while i Date: Thu, 28 Apr 2022 19:02:39 +0100 Subject: [PATCH 006/313] Began CGDNA Howto --- doc/src/Howto.rst | 1 + doc/src/Howto_cgdna.rst | 64 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 doc/src/Howto_cgdna.rst diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index 85c98bd6de..a048c1b1c7 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -90,6 +90,7 @@ Packages howto Howto_peri Howto_manifold Howto_spins + Howto_cgdna Tutorials howto =============== diff --git a/doc/src/Howto_cgdna.rst b/doc/src/Howto_cgdna.rst new file mode 100644 index 0000000000..0089df4a8d --- /dev/null +++ b/doc/src/Howto_cgdna.rst @@ -0,0 +1,64 @@ +Coarse-grained DNA and RNA +========================== + +The magnetic spin simulations are enabled by the SPIN package, whose +implementation is detailed in :ref:`Tranchida `. + +The model represents the simulation of atomic magnetic spins coupled +to lattice vibrations. The dynamics of those magnetic spins can be used +to simulate a broad range a phenomena related to magneto-elasticity, or +or to study the influence of defects on the magnetic properties of +materials. + +The magnetic spins are interacting with each others and with the +lattice via pair interactions. Typically, the magnetic exchange +interaction can be defined using the +:doc:`pair/spin/exchange ` command. This exchange +applies a magnetic torque to a given spin, considering the orientation +of its neighboring spins and their relative distances. +It also applies a force on the atoms as a function of the spin +orientations and their associated inter-atomic distances. + +The command :doc:`fix precession/spin ` allows to +apply a constant magnetic torque on all the spins in the system. This +torque can be an external magnetic field (Zeeman interaction), and an +uniaxial or cubic magnetic anisotropy. + +A Langevin thermostat can be applied to those magnetic spins using +:doc:`fix langevin/spin `. Typically, this thermostat +can be coupled to another Langevin thermostat applied to the atoms +using :doc:`fix langevin ` in order to simulate +thermostatted spin-lattice systems. + +The magnetic Gilbert damping can also be applied using :doc:`fix langevin/spin `. It allows to either dissipate +the thermal energy of the Langevin thermostat, or to perform a +relaxation of the magnetic configuration toward an equilibrium state. + +The command :doc:`fix setforce/spin ` allows to set the +components of the magnetic precession vectors (while erasing and +replacing the previously computed magnetic precession vectors on +the atom). +This command can be used to freeze the magnetic moment of certain +atoms in the simulation by zeroing their precession vector. + +The command :doc:`fix nve/spin ` can be used to +perform a symplectic integration of the combined dynamics of spins +and atomic motions. + +The minimization style :doc:`min/spin ` can be applied +to the spins to perform a minimization of the spin configuration. + +All the computed magnetic properties can be output by two main +commands. The first one is :doc:`compute spin `, that +enables to evaluate magnetic averaged quantities, such as the total +magnetization of the system along x, y, or z, the spin temperature, or +the magnetic energy. The second command is :doc:`compute property/atom `. It enables to output all the +per atom magnetic quantities. Typically, the orientation of a given +magnetic spin, or the magnetic force acting on this spin. + +---------- + +.. _Tranchida: + +**(Tranchida)** Tranchida, Plimpton, Thibaudeau and Thompson, +Journal of Computational Physics, 372, 406-425, (2018). From add5fc07fd52508585248443bc479f1a9c1e5a9e Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Thu, 28 Apr 2022 21:50:08 +0100 Subject: [PATCH 007/313] Changed user permissions --- examples/PACKAGES/cgdna/util/nbps.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 examples/PACKAGES/cgdna/util/nbps.py diff --git a/examples/PACKAGES/cgdna/util/nbps.py b/examples/PACKAGES/cgdna/util/nbps.py old mode 100755 new mode 100644 From a3e4788221cb04e7b6e97d5161ec2e79ff0174ca Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Fri, 6 May 2022 10:49:55 +0100 Subject: [PATCH 008/313] Minor edits --- examples/PACKAGES/cgdna/util/nbps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/PACKAGES/cgdna/util/nbps.py b/examples/PACKAGES/cgdna/util/nbps.py index 16c118cf4f..6a60550750 100644 --- a/examples/PACKAGES/cgdna/util/nbps.py +++ b/examples/PACKAGES/cgdna/util/nbps.py @@ -81,7 +81,7 @@ if len(sys.argv)==3: infilename = sys.argv[1] outfilename = sys.argv[2] -print('# Calculating number of base paris from LAMMPS trajectory output') +print('# Calculating number of base pairs from LAMMPS trajectory output') # count lines to process for progress report n = 0 From bc436dad3a5baed708d8261f1110a28f540ce59a Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 9 Aug 2023 18:30:30 +0100 Subject: [PATCH 009/313] Added example directory --- doc/src/Packages_details.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index a3d65d9d65..ff46fff267 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -403,6 +403,7 @@ and :ref:`ASPHERE ` packages are installed. * :doc:`bond_style oxdna2/\* ` * :doc:`bond_style oxrna2/\* ` * :doc:`fix nve/dotc/langevin ` +* examples/PACKAGES/cgdna ---------- From b5d769bbbf326d0f1e76c53c23d40a7df000a477 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 20 Mar 2024 16:18:47 +0000 Subject: [PATCH 010/313] Revert "Began CGDNA Howto" This reverts commit c4b96704b27743c4e6b01166ea6d7e7a16480692. --- doc/src/Howto.rst | 1 - doc/src/Howto_cgdna.rst | 64 ----------------------------------------- 2 files changed, 65 deletions(-) delete mode 100644 doc/src/Howto_cgdna.rst diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index a048c1b1c7..85c98bd6de 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -90,7 +90,6 @@ Packages howto Howto_peri Howto_manifold Howto_spins - Howto_cgdna Tutorials howto =============== diff --git a/doc/src/Howto_cgdna.rst b/doc/src/Howto_cgdna.rst deleted file mode 100644 index 0089df4a8d..0000000000 --- a/doc/src/Howto_cgdna.rst +++ /dev/null @@ -1,64 +0,0 @@ -Coarse-grained DNA and RNA -========================== - -The magnetic spin simulations are enabled by the SPIN package, whose -implementation is detailed in :ref:`Tranchida `. - -The model represents the simulation of atomic magnetic spins coupled -to lattice vibrations. The dynamics of those magnetic spins can be used -to simulate a broad range a phenomena related to magneto-elasticity, or -or to study the influence of defects on the magnetic properties of -materials. - -The magnetic spins are interacting with each others and with the -lattice via pair interactions. Typically, the magnetic exchange -interaction can be defined using the -:doc:`pair/spin/exchange ` command. This exchange -applies a magnetic torque to a given spin, considering the orientation -of its neighboring spins and their relative distances. -It also applies a force on the atoms as a function of the spin -orientations and their associated inter-atomic distances. - -The command :doc:`fix precession/spin ` allows to -apply a constant magnetic torque on all the spins in the system. This -torque can be an external magnetic field (Zeeman interaction), and an -uniaxial or cubic magnetic anisotropy. - -A Langevin thermostat can be applied to those magnetic spins using -:doc:`fix langevin/spin `. Typically, this thermostat -can be coupled to another Langevin thermostat applied to the atoms -using :doc:`fix langevin ` in order to simulate -thermostatted spin-lattice systems. - -The magnetic Gilbert damping can also be applied using :doc:`fix langevin/spin `. It allows to either dissipate -the thermal energy of the Langevin thermostat, or to perform a -relaxation of the magnetic configuration toward an equilibrium state. - -The command :doc:`fix setforce/spin ` allows to set the -components of the magnetic precession vectors (while erasing and -replacing the previously computed magnetic precession vectors on -the atom). -This command can be used to freeze the magnetic moment of certain -atoms in the simulation by zeroing their precession vector. - -The command :doc:`fix nve/spin ` can be used to -perform a symplectic integration of the combined dynamics of spins -and atomic motions. - -The minimization style :doc:`min/spin ` can be applied -to the spins to perform a minimization of the spin configuration. - -All the computed magnetic properties can be output by two main -commands. The first one is :doc:`compute spin `, that -enables to evaluate magnetic averaged quantities, such as the total -magnetization of the system along x, y, or z, the spin temperature, or -the magnetic energy. The second command is :doc:`compute property/atom `. It enables to output all the -per atom magnetic quantities. Typically, the orientation of a given -magnetic spin, or the magnetic force acting on this spin. - ----------- - -.. _Tranchida: - -**(Tranchida)** Tranchida, Plimpton, Thibaudeau and Thompson, -Journal of Computational Physics, 372, 406-425, (2018). From 6dded43b2c6681a56bb2c03b25dd5966c6cfe93c Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:07:18 -0400 Subject: [PATCH 011/313] Added ml-uf3 src files --- src/ML-UF3/pair_uf3.cpp | 1312 ++++++++++++++++++++++++++++ src/ML-UF3/pair_uf3.h | 88 ++ src/ML-UF3/uf3_bspline_basis2.cpp | 88 ++ src/ML-UF3/uf3_bspline_basis2.h | 32 + src/ML-UF3/uf3_bspline_basis3.cpp | 324 +++++++ src/ML-UF3/uf3_bspline_basis3.h | 33 + src/ML-UF3/uf3_pair_bspline.cpp | 144 +++ src/ML-UF3/uf3_pair_bspline.h | 55 ++ src/ML-UF3/uf3_triplet_bspline.cpp | 347 ++++++++ src/ML-UF3/uf3_triplet_bspline.h | 56 ++ 10 files changed, 2479 insertions(+) create mode 100644 src/ML-UF3/pair_uf3.cpp create mode 100644 src/ML-UF3/pair_uf3.h create mode 100644 src/ML-UF3/uf3_bspline_basis2.cpp create mode 100644 src/ML-UF3/uf3_bspline_basis2.h create mode 100644 src/ML-UF3/uf3_bspline_basis3.cpp create mode 100644 src/ML-UF3/uf3_bspline_basis3.h create mode 100644 src/ML-UF3/uf3_pair_bspline.cpp create mode 100644 src/ML-UF3/uf3_pair_bspline.h create mode 100644 src/ML-UF3/uf3_triplet_bspline.cpp create mode 100644 src/ML-UF3/uf3_triplet_bspline.h diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp new file mode 100644 index 0000000000..4188c51ac0 --- /dev/null +++ b/src/ML-UF3/pair_uf3.cpp @@ -0,0 +1,1312 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + * Contributing authors: Ajinkya Hire (U of Florida), + * Hendrik Kraß (U of Constance), + * Richard Hennig (U of Florida) + * ---------------------------------------------------------------------- */ + +#include "pair_uf3.h" +#include "uf3_pair_bspline.h" +#include "uf3_triplet_bspline.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "math_const.h" +#include "memory.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "text_file_reader.h" + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp) +{ + single_enable = 1; // 1 if single() routine exists + restartinfo = 0; // 1 if pair style writes restart info + maxshort = 10; + neighshort = nullptr; + centroidstressflag = CENTROID_AVAIL; + manybody_flag = 1; + one_coeff = 0; //if 1 then allow only one coeff call of form 'pair_coeff * *' + //by setting it to 0 we will allow multiple 'pair_coeff' calls + bsplines_created = 0; +} + +PairUF3::~PairUF3() +{ + if (copymode) return; + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut); + + if (pot_3b) { + memory->destroy(setflag_3b); + memory->destroy(cut_3b); + memory->destroy(cut_3b_list); + memory->destroy(min_cut_3b); + memory->destroy(neighshort); + } + } +} + +/* ---------------------------------------------------------------------- + * global settings + * ---------------------------------------------------------------------- */ + +void PairUF3::settings(int narg, char **arg) +{ + + if (narg != 2) + error->all(FLERR, "UF3: Invalid number of argument in pair settings\n\ + Are you running 2-body or 2 & 3-body UF potential\n\ + Also how many elements?"); + nbody_flag = utils::numeric(FLERR, arg[0], true, lmp); + num_of_elements = utils::numeric(FLERR, arg[1], true, lmp); // atom->ntypes; + if (num_of_elements != atom->ntypes) { + if (comm->me == 0) + utils::logmesg(lmp, "\nUF3: Number of elements provided in the input file and \ +number of elements detected by lammps in the structure are not same\n\ + proceed with caution\n"); + } + if (nbody_flag == 2) { + pot_3b = false; + n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; + tot_pot_files = n2body_pot_files; + } else if (nbody_flag == 3) { + pot_3b = true; + n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; + n3body_pot_files = num_of_elements * (num_of_elements * (num_of_elements + 1) / 2); + tot_pot_files = n2body_pot_files + n3body_pot_files; + } else + error->all(FLERR, "UF3: UF3 not yet implemented for {}-body", nbody_flag); +} + +/* ---------------------------------------------------------------------- + * set coeffs for one or more type pairs + * ---------------------------------------------------------------------- */ +void PairUF3::coeff(int narg, char **arg) +{ + if (!allocated) allocate(); + + if (narg != 3 && narg != 5){ + /*error->warning(FLERR, "\nUF3: WARNING!! It seems that you are using the \n\ + older style of specifying UF3 POT files. This style of listing \n\ + all the potential files on a single line will be depcrecated in \n\ + the next version of ML-UF3");*/ + if (narg == tot_pot_files + 2) + error->all(FLERR, "UF3 The old style of listing all the potential files\n\ + on a single line is depcrecated"); + else + error->all(FLERR, "UF3: Invalid number of argument in pair coeff;\n\ + Provide the species number followed by the LAMMPS POT file\n\ + Eg. 'pair_coeff 1 1 POT_FILE' for 2-body and \n\ + 'pair_coeff 3b 1 2 2 POT_FILE' for 3-body."); + } + if (narg == 3 || narg == 5){ + int ilo, ihi, jlo, jhi, klo, khi; + if (narg == 3){ + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); + } + + if (narg == 5){ + utils::bounds(FLERR, arg[1], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[2], 1, atom->ntypes, jlo, jhi, error); + utils::bounds(FLERR, arg[3], 1, atom->ntypes, klo, khi, error); + } + + if (narg == 3){ + if (utils::strmatch(arg[0],".*\\*.*") || utils::strmatch(arg[1],".*\\*.*")){ + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo, i); j <= jhi; j++) { + if (comm->me == 0) + utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[2]); + uf3_read_pot_file(i,j,arg[2]); + } + } + } + + else{ + int i = utils::inumeric(FLERR, arg[0], true, lmp); + int j = utils::inumeric(FLERR, arg[1], true, lmp); + if (comm->me == 0) + utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[2]); + uf3_read_pot_file(i,j,arg[2]); + } + } + + if (narg == 5){ + if (!utils::strmatch(arg[0],"3b")) + error->all(FLERR, "UF3: Invalid argument. For 3-body the first argument\n\ + argument to pair_coeff needs to be 3b.\n\ + Example pair_coeff 3b 1 2 2 A_B_B."); + if (utils::strmatch(arg[1],".*\\*.*") || utils::strmatch(arg[2],".*\\*.*") || utils::strmatch(arg[3],".*\\*.*")){ + for (int i = ilo; i <= ihi; i++) { + for (int j = jlo; j <= jhi; j++) { + for (int k = MAX(klo, jlo); k <= khi; k++) { + if (comm->me == 0) + utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[4]); + uf3_read_pot_file(i,j,k,arg[4]); + } + } + } + } + else{ + if (comm->me == 0) + utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[4]); + int i = utils::inumeric(FLERR, arg[1], true, lmp); + int j = utils::inumeric(FLERR, arg[2], true, lmp); + int k = utils::inumeric(FLERR, arg[3], true, lmp); + uf3_read_pot_file(i,j,k,arg[4]); + } + } + } + + /*else{ + if (narg != tot_pot_files + 2) + error->all(FLERR,"UF3: Invalid number of argument in pair coeff; \n\ + Number of potential files provided is not correct"); + + error->warning(FLERR, "\nUF3: WARNING!! It seems that you are using the \n\ + older style of specifying UF3 POT files. This style of listing \n\ + all the potential files on a single line will be depcrecated in \n\ + the next version of ML-UF3"); + + // open UF3 potential file on all proc + for (int i = 2; i < narg; i++) { uf3_read_pot_file(arg[i]); } + if (!bsplines_created) create_bsplines(); + + // setflag check needed here + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + if (setflag[i][j] != 1) + error->all(FLERR,"UF3: Not all 2-body UF potentials are set, \n\ + missing potential file for {}-{} interaction",i, j); + } + } + + if (pot_3b) { + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + if (setflag_3b[i][j][k] != 1) + error->all(FLERR,"UF3: Not all 3-body UF potentials are set, \n\ + missing potential file for {}-{}-{} interaction", i, j, k); + } + } + } + } + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j]); + UFBS2b[j][i] = UFBS2b[i][j]; + } + if (pot_3b) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = j; k < num_of_elements + 1; k++) { + std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); + UFBS3b[i][j][k] = + uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key]); + UFBS3b[i][k][j] = UFBS3b[i][j][k]; + } + } + } + } + }*/ +} + +void PairUF3::allocate() +{ + allocated = 1; + + // Contains info about wether UF potential were found for type i and j + memory->create(setflag, num_of_elements + 1, num_of_elements + 1, "pair:setflag"); + + // Contains info about 2-body cutoff distance for type i and j + // cutsq is the global variable + // Even though we are making cutsq don't manually change the default values + // Lammps take care of setting the value + memory->create(cutsq, num_of_elements + 1, num_of_elements + 1, "pair:cutsq"); + // cut is specific to this pair style. We will set the values in cut + memory->create(cut, num_of_elements + 1, num_of_elements + 1, "pair:cut"); + //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) + //1 = non-uniform knot spacing + memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_2b"); + + // Contains knot_vect of 2-body potential for type i and j + n2b_knot.resize(num_of_elements + 1); + n2b_coeff.resize(num_of_elements + 1); + UFBS2b.resize(num_of_elements + 1); + for (int i = 1; i < num_of_elements + 1; i++) { + n2b_knot[i].resize(num_of_elements + 1); + n2b_coeff[i].resize(num_of_elements + 1); + UFBS2b[i].resize(num_of_elements + 1); + } + if (pot_3b) { + // Contains info about wether UF potential were found for type i, j and k + memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + "pair:setflag_3b"); + // Contains info about 3-body cutoff distance for type i, j and k + memory->create(cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + "pair:cut_3b"); + // Contains info about 3-body cutoff distance for type i, j and k + // for constructing 3-body list + memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, "pair:cut_3b_list"); + // Contains info about minimum 3-body cutoff distance for type i, j and k + memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, 3, + "pair:min_cut_3b"); + //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) + //1 = non-uniform knot spacing + memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, "pair:knot_spacing_3b"); + + + // setting cut_3b and setflag = 0 + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + cut_3b_list[i][j] = 0; + for (int k = 1; k < num_of_elements + 1; k++) { + cut_3b[i][j][k] = 0; + min_cut_3b[i][j][k][0] = 0; + min_cut_3b[i][j][k][1] = 0; + min_cut_3b[i][j][k][2] = 0; + } + } + } + n3b_knot_matrix.resize(num_of_elements + 1); + UFBS3b.resize(num_of_elements + 1); + for (int i = 1; i < num_of_elements + 1; i++) { + n3b_knot_matrix[i].resize(num_of_elements + 1); + UFBS3b[i].resize(num_of_elements + 1); + for (int j = 1; j < num_of_elements + 1; j++) { + n3b_knot_matrix[i][j].resize(num_of_elements + 1); + UFBS3b[i][j].resize(num_of_elements + 1); + } + } + memory->create(neighshort, maxshort, "pair:neighshort"); + } +} + +void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) +{ + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", \ + potf_name, itype, jtype); + + if (!platform::file_is_readable(potf_name)) + error->all(FLERR, "UF3: {} file is not readable", potf_name); + + FILE *fp; + fp = utils::open_potential(potf_name, lmp, nullptr); + + TextFileReader txtfilereader(fp, "UF3:POTFP"); + txtfilereader.ignore_comments = false; + + std::string temp_line = txtfilereader.next_line(1); + Tokenizer file_header(temp_line); + + if (file_header.count() != 2) + error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ + {} word/s",potf_name,file_header.count()); + + if (file_header.contains("#UF3 POT") == 0) + error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n\ + files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + + temp_line = txtfilereader.next_line(1); + ValueTokenizer fp2nd_line(temp_line); + + if (fp2nd_line.count() != 4) + error->all(FLERR, "UF3: Expected 4 words on 2nd line =>\n\ + nBody leading_trim trailing_trim type_of_knot_spacing\n\ + Found {}",temp_line); + + std::string nbody_on_file = fp2nd_line.next_string(); + if (utils::strmatch(nbody_on_file,"2B")) + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n",potf_name); + else + error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", + nbody_on_file); + + int leading_trim = fp2nd_line.next_int(); + int trailing_trim = fp2nd_line.next_int(); + if (leading_trim != 0) + error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ + leading_trim=0\n"); + if (trailing_trim != 3) + error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ + trailing_trim=3\n"); + + std::string knot_type = fp2nd_line.next_string(); + if (utils::strmatch(knot_type,"uk")){ + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform\n\ + knot spacing\n",potf_name); + knot_spacing_type_2b[itype][jtype] = 0; + knot_spacing_type_2b[jtype][itype] = 0; + } + else if (utils::strmatch(knot_type,"nk")){ + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform\n\ + knot spacing\n",potf_name); + knot_spacing_type_2b[itype][jtype] = 1; + knot_spacing_type_2b[jtype][itype] = 1; + /*error->all(FLERR, "UF3: Current implementation only works with uniform\n\ + knot spacing");*/ + } + else + error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots)\n\ + Found {} on the 2nd line of {} pot file",knot_type,potf_name); + + temp_line = txtfilereader.next_line(1); + ValueTokenizer fp3rd_line(temp_line); + if (fp3rd_line.count() != 2) + error->all(FLERR, "UF3: Expected only 2 numbers on 3rd line =>\n\ + Rij_CUTOFF NUM_OF_KNOTS\n\ + Found {} number/s",fp3rd_line.count()); + + //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared + cut[itype][jtype] = fp3rd_line.next_double(); + cut[jtype][itype] = cut[itype][jtype]; + + int num_knots_2b = fp3rd_line.next_int(); + + temp_line = txtfilereader.next_line(num_knots_2b); + ValueTokenizer fp4th_line(temp_line); + + if (fp4th_line.count() != num_knots_2b) + error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", + num_knots_2b,fp4th_line.count()); + + n2b_knot[itype][jtype].resize(num_knots_2b); + n2b_knot[jtype][itype].resize(num_knots_2b); + for (int k = 0; k < num_knots_2b; k++) { + n2b_knot[itype][jtype][k] = fp4th_line.next_double(); + n2b_knot[jtype][itype][k] = n2b_knot[itype][jtype][k]; + } + + temp_line = txtfilereader.next_line(1); + ValueTokenizer fp5th_line(temp_line); + int num_of_coeff_2b = fp5th_line.next_int(); + + temp_line = txtfilereader.next_line(num_of_coeff_2b); + ValueTokenizer fp6th_line(temp_line); + + if (fp6th_line.count() != num_of_coeff_2b) + error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", + num_of_coeff_2b, fp6th_line.count()); + + n2b_coeff[itype][jtype].resize(num_of_coeff_2b); + n2b_coeff[jtype][itype].resize(num_of_coeff_2b); + for (int k = 0; k < num_of_coeff_2b; k++) { + n2b_coeff[itype][jtype][k] = fp6th_line.next_double(); + n2b_coeff[jtype][itype][k] = n2b_coeff[itype][jtype][k]; + } + + if (n2b_knot[itype][jtype].size() != n2b_coeff[itype][jtype].size() + 4) { + error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", + potf_name); + } + setflag[itype][jtype] = 1; + setflag[jtype][itype] = 1; +} + + +void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) +{ + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", + potf_name, itype, jtype, ktype); + + if (!platform::file_is_readable(potf_name)) + error->all(FLERR, "UF3: {} file is not readable", potf_name); + + FILE *fp; + fp = utils::open_potential(potf_name, lmp, nullptr); + + TextFileReader txtfilereader(fp, "UF3:POTFP"); + txtfilereader.ignore_comments = false; + + std::string temp_line = txtfilereader.next_line(1); + Tokenizer file_header(temp_line); + + if (file_header.count() != 2) + error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ + {} word/s",potf_name,file_header.count()); + + if (file_header.contains("#UF3 POT") == 0) + error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n\ + files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + + temp_line = txtfilereader.next_line(1); + ValueTokenizer fp2nd_line(temp_line); + + if (fp2nd_line.count() != 4) + error->all(FLERR, "UF3: Expected 3 words on 2nd line =>\n\ + nBody leading_trim trailing_trim type_of_knot_spacing\n\ + Found {}",temp_line); + + std::string nbody_on_file = fp2nd_line.next_string(); + + if (utils::strmatch(nbody_on_file,"3B")) + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n",potf_name); + else + error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", + nbody_on_file); + + int leading_trim = fp2nd_line.next_int(); + int trailing_trim = fp2nd_line.next_int(); + if (leading_trim != 0) + error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ + leading_trim=0\n"); + if (trailing_trim != 3) + error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ + trailing_trim=3\n"); + + std::string knot_type = fp2nd_line.next_string(); + if (utils::strmatch(knot_type,"uk")){ + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform\n\ + knot spacing\n",potf_name); + knot_spacing_type_3b[itype][jtype][ktype] = 0; + knot_spacing_type_3b[itype][ktype][jtype] = 0; + } + else if (utils::strmatch(knot_type,"nk")){ + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with non-uniform\n\ + knot spacing\n",potf_name); + knot_spacing_type_3b[itype][jtype][ktype] = 1; + knot_spacing_type_3b[itype][ktype][jtype] = 1; + /*error->all(FLERR, "UF3: Current implementation only works with uniform\n\ + knot spacing");*/ + } + else + error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots)\n\ + Found {} on the 2nd line of {} pot file",knot_type,potf_name); + + temp_line = txtfilereader.next_line(6); + ValueTokenizer fp3rd_line(temp_line); + + if (fp3rd_line.count() != 6) + error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line =>\n\ + Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ\n\ + Found {} number/s",fp3rd_line.count()); + + double cut3b_rjk = fp3rd_line.next_double(); + double cut3b_rij = fp3rd_line.next_double(); + double cut3b_rik = fp3rd_line.next_double(); + + if (cut3b_rij != cut3b_rik) { + error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); + } + + if (2 * cut3b_rik != cut3b_rjk) { + error->all(FLERR, "UF3: 2rij=2rik!=rik, Current implementation only works \n\ + for 2rij=2rik!=rik"); + } + + cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); + cut_3b_list[itype][ktype] = std::max(cut_3b_list[itype][ktype], cut3b_rik); + + cut_3b[itype][jtype][ktype] = cut3b_rij; + cut_3b[itype][ktype][jtype] = cut3b_rik; + + int num_knots_3b_jk = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(num_knots_3b_jk); + ValueTokenizer fp4th_line(temp_line); + + if (fp4th_line.count() != num_knots_3b_jk) + error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", + num_knots_3b_jk, fp4th_line.count()); + + + n3b_knot_matrix[itype][jtype][ktype].resize(3); + n3b_knot_matrix[itype][ktype][jtype].resize(3); + + n3b_knot_matrix[itype][jtype][ktype][0].resize(num_knots_3b_jk); + n3b_knot_matrix[itype][ktype][jtype][0].resize(num_knots_3b_jk); + + for (int i = 0; i < num_knots_3b_jk; i++) { + n3b_knot_matrix[itype][jtype][ktype][0][i] = fp4th_line.next_double(); + n3b_knot_matrix[itype][ktype][jtype][0][i] = + n3b_knot_matrix[itype][jtype][ktype][0][i]; + } + + min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; + //min_cut_3b[itype][jtype][ktype][0] --> cutoff for jk distance + + min_cut_3b[itype][ktype][jtype][0] = n3b_knot_matrix[itype][ktype][jtype][0][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_jk={} {}-{}-{}_jk={}\n", + potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][0], + itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][0]); + + int num_knots_3b_ik = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(num_knots_3b_ik); + ValueTokenizer fp5th_line(temp_line); + + if (fp5th_line.count() != num_knots_3b_ik) + error->all(FLERR, "UF3: Expected {} numbers on 5th line but found {} numbers", + num_knots_3b_ik, fp5th_line.count()); + + n3b_knot_matrix[itype][jtype][ktype][1].resize(num_knots_3b_ik); + n3b_knot_matrix[itype][ktype][jtype][2].resize(num_knots_3b_ik); + for (int i = 0; i < num_knots_3b_ik; i++) { + n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); + n3b_knot_matrix[itype][ktype][jtype][2][i] = + n3b_knot_matrix[itype][jtype][ktype][1][i]; + } + + min_cut_3b[itype][jtype][ktype][1] = n3b_knot_matrix[itype][jtype][ktype][1][0]; + //min_cut_3b[itype][jtype][ktype][1] --> cutoff for ik distance + + min_cut_3b[itype][ktype][jtype][2] = n3b_knot_matrix[itype][ktype][jtype][2][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ik={} {}-{}-{}_ik={}\n", + potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][1], + itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][2]); + + int num_knots_3b_ij = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(num_knots_3b_ij); + ValueTokenizer fp6th_line(temp_line); + + if (fp6th_line.count() != num_knots_3b_ij) + error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", + num_knots_3b_ij, fp5th_line.count()); + + n3b_knot_matrix[itype][jtype][ktype][2].resize(num_knots_3b_ij); + n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); + for (int i = 0; i < num_knots_3b_ij; i++) { + n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); + n3b_knot_matrix[itype][ktype][jtype][1][i] = + n3b_knot_matrix[itype][jtype][ktype][2][i]; + } + + min_cut_3b[itype][jtype][ktype][2] = n3b_knot_matrix[itype][jtype][ktype][2][0]; + //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance + min_cut_3b[itype][ktype][jtype][1] = n3b_knot_matrix[itype][ktype][jtype][1][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ij={} {}-{}-{}_ij={}\n", + potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][2], + itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][1]); + + temp_line = txtfilereader.next_line(3); + ValueTokenizer fp7th_line(temp_line); + + if (fp7th_line.count() != 3) + error->all(FLERR, "UF3: Expected 3 numbers on 7th line =>\n\ + SHAPE_OF_COEFF_MATRIX[I][J][K] \n\ + found {} numbers", fp7th_line.count()); + + coeff_matrix_dim1 = fp7th_line.next_int(); + coeff_matrix_dim2 = fp7th_line.next_int(); + coeff_matrix_dim3 = fp7th_line.next_int(); + + if (n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and \n\ + coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); + + if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and \n\ + coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1",potf_name); + + if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and \n\ + coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1",potf_name); + + coeff_matrix_elements_len = coeff_matrix_dim3; + + std::string key = std::to_string(itype) + std::to_string(jtype) + std::to_string(ktype); + n3b_coeff_matrix[key].resize(coeff_matrix_dim1); + + int line_count = 0; + for (int i = 0; i < coeff_matrix_dim1; i++) { + n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); + for (int j = 0; j < coeff_matrix_dim2; j++) { + temp_line = txtfilereader.next_line(coeff_matrix_elements_len); + ValueTokenizer coeff_line(temp_line); + n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); + + if (coeff_line.count() != coeff_matrix_elements_len) + error->all(FLERR, "UF3: Expected {} numbers on {}th line but found \n\ + {} numbers",coeff_matrix_elements_len, line_count+8, coeff_line.count()); + for (int k = 0; k < coeff_matrix_dim3; k++) { + n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); + } + line_count += 1; + } + } + + std::string key2 = std::to_string(itype) + std::to_string(ktype) + std::to_string(jtype); + n3b_coeff_matrix[key2].resize(coeff_matrix_dim2); + for (int j = 0; j < coeff_matrix_dim2; j++) { + n3b_coeff_matrix[key2][j].resize(coeff_matrix_dim1); + for (int i = 0; i < coeff_matrix_dim1; i++) { + n3b_coeff_matrix[key2][j][i].resize(coeff_matrix_dim3); + } + } + + for (int i = 0; i < coeff_matrix_dim1; i++) { + for (int j = 0; j < coeff_matrix_dim2; j++) { + for (int k = 0; k < coeff_matrix_dim3; k++) { + n3b_coeff_matrix[key2][j][i][k] = n3b_coeff_matrix[key][i][j][k]; + } + } + } + + setflag_3b[itype][jtype][ktype] = 1; + setflag_3b[itype][ktype][jtype] = 1; + +} + +void PairUF3::uf3_read_pot_file(char *potf_name) +{ + if (comm->me == 0) utils::logmesg(lmp, "\nUF3: Opening {} file\n", potf_name); + + FILE *fp; + fp = utils::open_potential(potf_name, lmp, nullptr); + // if (fp) error->all(FLERR,"UF3: {} file not found",potf_name); + + TextFileReader txtfilereader(fp, "UF3:POTFP"); + txtfilereader.ignore_comments = false; + + std::string temp_line = txtfilereader.next_line(2); + Tokenizer fp1st_line(temp_line); + + if (fp1st_line.contains("#UF3 POT") == 0) + error->all(FLERR, "UF3: {} file is not UF3 POT type, found type {} {} on the file", potf_name, + fp1st_line.next(), fp1st_line.next()); + + if (comm->me == 0) + utils::logmesg(lmp, "UF3: {} file is of type {} {}\n", potf_name, fp1st_line.next(), + fp1st_line.next()); + + temp_line = txtfilereader.next_line(1); + Tokenizer fp2nd_line(temp_line); + if (fp2nd_line.contains("2B") == 1) { + temp_line = txtfilereader.next_line(4); + ValueTokenizer fp3rd_line(temp_line); + int temp_type1 = fp3rd_line.next_int(); + int temp_type2 = fp3rd_line.next_int(); + if (comm->me == 0) + utils::logmesg(lmp, "UF3: {} file contains 2-body UF3 potential for {} {}\n", potf_name, + temp_type1, temp_type2); + + //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared + cut[temp_type1][temp_type2] = fp3rd_line.next_double(); + // if(comm->me==0) utils::logmesg(lmp,"UF3: Cutoff {}\n",cutsq[temp_type1][temp_type2]); + cut[temp_type2][temp_type1] = cut[temp_type1][temp_type2]; + + int temp_line_len = fp3rd_line.next_int(); + + temp_line = txtfilereader.next_line(temp_line_len); + ValueTokenizer fp4th_line(temp_line); + + n2b_knot[temp_type1][temp_type2].resize(temp_line_len); + n2b_knot[temp_type2][temp_type1].resize(temp_line_len); + for (int k = 0; k < temp_line_len; k++) { + n2b_knot[temp_type1][temp_type2][k] = fp4th_line.next_double(); + n2b_knot[temp_type2][temp_type1][k] = n2b_knot[temp_type1][temp_type2][k]; + } + + temp_line = txtfilereader.next_line(1); + ValueTokenizer fp5th_line(temp_line); + + temp_line_len = fp5th_line.next_int(); + + temp_line = txtfilereader.next_line(temp_line_len); + // utils::logmesg(lmp,"UF3:11 {}",temp_line); + ValueTokenizer fp6th_line(temp_line); + // if(comm->me==0) utils::logmesg(lmp,"UF3: {}\n",temp_line_len); + n2b_coeff[temp_type1][temp_type2].resize(temp_line_len); + n2b_coeff[temp_type2][temp_type1].resize(temp_line_len); + + for (int k = 0; k < temp_line_len; k++) { + n2b_coeff[temp_type1][temp_type2][k] = fp6th_line.next_double(); + n2b_coeff[temp_type2][temp_type1][k] = n2b_coeff[temp_type1][temp_type2][k]; + // if(comm->me==0) utils::logmesg(lmp,"UF3: {}\n",n2b_coeff[temp_type1][temp_type2][k]); + } + // for(int i=0;ime==0) utils::logmesg(lmp,"UF3: {}\n",n2b_coeff[temp_type1][temp_type2][i]); + if (n2b_knot[temp_type1][temp_type2].size() != n2b_coeff[temp_type1][temp_type2].size() + 4) { + error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", + potf_name); + } + setflag[temp_type1][temp_type2] = 1; + setflag[temp_type2][temp_type1] = 1; + } else if (fp2nd_line.contains("3B") == 1) { + temp_line = txtfilereader.next_line(9); + ValueTokenizer fp3rd_line(temp_line); + int temp_type1 = fp3rd_line.next_int(); + int temp_type2 = fp3rd_line.next_int(); + int temp_type3 = fp3rd_line.next_int(); + if (comm->me == 0) + utils::logmesg(lmp, "UF3: {} file contains 3-body UF3 potential for {} {} {}\n", potf_name, + temp_type1, temp_type2, temp_type3); + + double cut3b_rjk = fp3rd_line.next_double(); + double cut3b_rij = fp3rd_line.next_double(); + // cut_3b[temp_type1][temp_type2] = std::max(cut3b_rij, + // cut_3b[temp_type1][temp_type2]); + cut_3b_list[temp_type1][temp_type2] = std::max(cut3b_rij, cut_3b_list[temp_type1][temp_type2]); + double cut3b_rik = fp3rd_line.next_double(); + if (cut3b_rij != cut3b_rik) { + error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); + } + if (2 * cut3b_rik != cut3b_rjk) { + error->all(FLERR, + "UF3: 2rij=2rik!=rik, Current implementation only works for 2rij=2rik!=rik"); + } + // cut_3b[temp_type1][temp_type3] = std::max(cut_3b[temp_type1][temp_type3],cut3b_rik); + cut_3b_list[temp_type1][temp_type3] = std::max(cut_3b_list[temp_type1][temp_type3], cut3b_rik); + + cut_3b[temp_type1][temp_type2][temp_type3] = cut3b_rij; + cut_3b[temp_type1][temp_type3][temp_type2] = cut3b_rik; + + int temp_line_len = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(temp_line_len); + ValueTokenizer fp4th_line(temp_line); + + n3b_knot_matrix[temp_type1][temp_type2][temp_type3].resize(3); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2].resize(3); + + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].resize(temp_line_len); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0].resize(temp_line_len); + for (int i = 0; i < temp_line_len; i++) { + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i] = fp4th_line.next_double(); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][i] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i]; + } + + min_cut_3b[temp_type1][temp_type2][temp_type3][0] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][0] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_0={} {}-{}-{}_0={}\n", + potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][0], + temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][0]); + + temp_line_len = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(temp_line_len); + ValueTokenizer fp5th_line(temp_line); + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].resize(temp_line_len); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2].resize(temp_line_len); + for (int i = 0; i < temp_line_len; i++) { + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i] = fp5th_line.next_double(); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][i] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i]; + } + + min_cut_3b[temp_type1][temp_type2][temp_type3][1] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][2] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_1={} {}-{}-{}_2={}\n", + potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][1], + temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][2]); + + temp_line_len = fp3rd_line.next_int(); + temp_line = txtfilereader.next_line(temp_line_len); + ValueTokenizer fp6th_line(temp_line); + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].resize(temp_line_len); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1].resize(temp_line_len); + for (int i = 0; i < temp_line_len; i++) { + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i] = fp6th_line.next_double(); + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][i] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i]; + } + + min_cut_3b[temp_type1][temp_type2][temp_type3][2] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][1] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; + if (comm->me == 0) + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_2={} {}-{}-{}_1={}\n", + potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][2], + temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][2]); + + temp_line = txtfilereader.next_line(3); + ValueTokenizer fp7th_line(temp_line); + + coeff_matrix_dim1 = fp7th_line.next_int(); + coeff_matrix_dim2 = fp7th_line.next_int(); + coeff_matrix_dim3 = fp7th_line.next_int(); + if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].size() != + coeff_matrix_dim3 + 3 + 1) { + error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", + potf_name); + } + if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].size() != + coeff_matrix_dim2 + 3 + 1) { + error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", + potf_name); + } + if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].size() != + coeff_matrix_dim1 + 3 + 1) { + error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", + potf_name); + } + + coeff_matrix_elements_len = coeff_matrix_dim3; + + std::string key = + std::to_string(temp_type1) + std::to_string(temp_type2) + std::to_string(temp_type3); + n3b_coeff_matrix[key].resize(coeff_matrix_dim1); + for (int i = 0; i < coeff_matrix_dim1; i++) { + n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); + for (int j = 0; j < coeff_matrix_dim2; j++) { + temp_line = txtfilereader.next_line(coeff_matrix_elements_len); + ValueTokenizer coeff_line(temp_line); + n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); + for (int k = 0; k < coeff_matrix_dim3; k++) { + n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); + } + } + } + + key = std::to_string(temp_type1) + std::to_string(temp_type3) + std::to_string(temp_type2); + n3b_coeff_matrix[key] = + n3b_coeff_matrix[std::to_string(temp_type1) + std::to_string(temp_type2) + + std::to_string(temp_type3)]; + setflag_3b[temp_type1][temp_type2][temp_type3] = 1; + setflag_3b[temp_type1][temp_type3][temp_type2] = 1; + } else + error->all( + FLERR, + "UF3: {} file does not contain right words indicating whether it is 2 or 3 body potential", + potf_name); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ +void PairUF3::init_style() +{ + if (force->newton_pair == 0) error->all(FLERR, "UF3: Pair style requires newton pair on"); + // request a default neighbor list + neighbor->add_request(this, NeighConst::REQ_FULL); +} + +/* ---------------------------------------------------------------------- + init list sets the pointer to full neighbour list requested in previous function +------------------------------------------------------------------------- */ + +void PairUF3::init_list(int /*id*/, class NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ +double PairUF3::init_one(int i /*i*/, int /*j*/ j) +{ + + if (!bsplines_created) create_bsplines(); + + //init_one is called by pair.cpp at line 267 where it is squred + //at line 268 + return cut[i][j]; +} + +void PairUF3::create_bsplines() +{ + bsplines_created = 1; + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + if (setflag[i][j] != 1) + error->all(FLERR,"UF3: Not all 2-body UF potentials are set, \n\ + missing potential file for {}-{} interaction",i, j); + } + } + if (pot_3b) { + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + if (setflag_3b[i][j][k] != 1) + error->all(FLERR,"UF3: Not all 3-body UF potentials are set, \n\ + missing potential file for {}-{}-{} interaction", i, j, k); + } + } + } + } + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j], + knot_spacing_type_2b[i][j]); + UFBS2b[j][i] = UFBS2b[i][j]; + } + if (pot_3b) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = j; k < num_of_elements + 1; k++) { + std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); + UFBS3b[i][j][k] = + uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key], + knot_spacing_type_3b[i][j][k]); + std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); + UFBS3b[i][k][j] = + uf3_triplet_bspline(lmp, n3b_knot_matrix[i][k][j], n3b_coeff_matrix[key2], + knot_spacing_type_3b[i][k][j]); + } + } + } + } +} + +void PairUF3::compute(int eflag, int vflag) +{ + int i, j, k, ii, jj, kk, inum, jnum, itype, jtype, ktype; + double xtmp, ytmp, ztmp, delx, dely, delz, evdwl, fpair, fx, fy, fz; + double del_rji[3], del_rki[3], del_rkj[3]; + double fij[3], fik[3], fjk[3]; + double fji[3], fki[3], fkj[3]; + double Fi[3], Fj[3], Fk[3]; + double rsq, rij, rik, rjk; + int *ilist, *jlist, *numneigh, **firstneigh; + + ev_init(eflag, vflag); + + double **x = atom->x; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + // loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { + evdwl = 0; + i = ilist[ii]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + int numshort = 0; + for (jj = 0; jj < jnum; jj++) { + fx = 0; + fy = 0; + fz = 0; + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + + rsq = delx * delx + dely * dely + delz * delz; + jtype = type[j]; + if (rsq < cutsq[itype][jtype]) { + rij = sqrt(rsq); + + if (pot_3b) { + if (rij <= cut_3b_list[itype][jtype]) { + neighshort[numshort] = j; + if (numshort >= maxshort - 1) { + maxshort += maxshort / 2; + memory->grow(neighshort, maxshort, "pair:neighshort"); + } + numshort = numshort + 1; + } + } + + double *pair_eval = UFBS2b[itype][jtype].eval(rij); + + fpair = -1 * pair_eval[1] / rij; + + fx = delx * fpair; + fy = dely * fpair; + fz = delz * fpair; + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + f[j][0] -= fx; + f[j][1] -= fy; + f[j][2] -= fz; + + if (eflag) evdwl = pair_eval[0]; + + if (evflag) { + ev_tally_xyz(i, j, nlocal, newton_pair, evdwl, 0.0, fx, fy, fz, delx, dely, delz); + + // Centroid Stress + if (vflag_either && cvflag_atom) { + double v[6]; + + v[0] = delx * fx; + v[1] = dely * fy; + v[2] = delz * fz; + v[3] = delx * fy; + v[4] = delx * fz; + v[5] = dely * fz; + + cvatom[i][0] += 0.5 * v[0]; + cvatom[i][1] += 0.5 * v[1]; + cvatom[i][2] += 0.5 * v[2]; + cvatom[i][3] += 0.5 * v[3]; + cvatom[i][4] += 0.5 * v[4]; + cvatom[i][5] += 0.5 * v[5]; + cvatom[i][6] += 0.5 * v[3]; + cvatom[i][7] += 0.5 * v[4]; + cvatom[i][8] += 0.5 * v[5]; + + cvatom[j][0] += 0.5 * v[0]; + cvatom[j][1] += 0.5 * v[1]; + cvatom[j][2] += 0.5 * v[2]; + cvatom[j][3] += 0.5 * v[3]; + cvatom[j][4] += 0.5 * v[4]; + cvatom[j][5] += 0.5 * v[5]; + cvatom[j][6] += 0.5 * v[3]; + cvatom[j][7] += 0.5 * v[4]; + cvatom[j][8] += 0.5 * v[5]; + } + } + } + } + + // 3-body interaction + // jth atom + jnum = numshort - 1; + for (jj = 0; jj < jnum; jj++) { + fij[0] = fji[0] = 0; + fij[1] = fji[1] = 0; + fij[2] = fji[2] = 0; + j = neighshort[jj]; + jtype = type[j]; + del_rji[0] = x[j][0] - xtmp; + del_rji[1] = x[j][1] - ytmp; + del_rji[2] = x[j][2] - ztmp; + rij = + sqrt(((del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]))); + + // kth atom + for (kk = jj + 1; kk < numshort; kk++) { + + fik[0] = fki[0] = 0; + fik[1] = fki[1] = 0; + fik[2] = fki[2] = 0; + + fjk[0] = fkj[0] = 0; + fjk[1] = fkj[1] = 0; + fjk[2] = fkj[2] = 0; + + k = neighshort[kk]; + ktype = type[k]; + del_rki[0] = x[k][0] - xtmp; + del_rki[1] = x[k][1] - ytmp; + del_rki[2] = x[k][2] - ztmp; + rik = sqrt( + ((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); + + if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && + (rij >= min_cut_3b[itype][jtype][ktype][2]) && + (rik >= min_cut_3b[itype][jtype][ktype][1])) { + + del_rkj[0] = x[k][0] - x[j][0]; + del_rkj[1] = x[k][1] - x[j][1]; + del_rkj[2] = x[k][2] - x[j][2]; + rjk = sqrt( + ((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); + + if (rjk >= min_cut_3b[itype][jtype][ktype][0]){ + double *triangle_eval = UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); + + fij[0] = *(triangle_eval + 1) * (del_rji[0] / rij); + fji[0] = -fij[0]; + fik[0] = *(triangle_eval + 2) * (del_rki[0] / rik); + fki[0] = -fik[0]; + fjk[0] = *(triangle_eval + 3) * (del_rkj[0] / rjk); + fkj[0] = -fjk[0]; + + fij[1] = *(triangle_eval + 1) * (del_rji[1] / rij); + fji[1] = -fij[1]; + fik[1] = *(triangle_eval + 2) * (del_rki[1] / rik); + fki[1] = -fik[1]; + fjk[1] = *(triangle_eval + 3) * (del_rkj[1] / rjk); + fkj[1] = -fjk[1]; + + fij[2] = *(triangle_eval + 1) * (del_rji[2] / rij); + fji[2] = -fij[2]; + fik[2] = *(triangle_eval + 2) * (del_rki[2] / rik); + fki[2] = -fik[2]; + fjk[2] = *(triangle_eval + 3) * (del_rkj[2] / rjk); + fkj[2] = -fjk[2]; + + Fi[0] = fij[0] + fik[0]; + Fi[1] = fij[1] + fik[1]; + Fi[2] = fij[2] + fik[2]; + f[i][0] += Fi[0]; + f[i][1] += Fi[1]; + f[i][2] += Fi[2]; + + Fj[0] = fji[0] + fjk[0]; + Fj[1] = fji[1] + fjk[1]; + Fj[2] = fji[2] + fjk[2]; + f[j][0] += Fj[0]; + f[j][1] += Fj[1]; + f[j][2] += Fj[2]; + + Fk[0] = fki[0] + fkj[0]; + Fk[1] = fki[1] + fkj[1]; + Fk[2] = fki[2] + fkj[2]; + f[k][0] += Fk[0]; + f[k][1] += Fk[1]; + f[k][2] += Fk[2]; + + if (eflag) evdwl = *triangle_eval; + + if (evflag) { ev_tally3(i, j, k, evdwl, 0, Fj, Fk, del_rji, del_rki); + // Centroid stress 3-body term + if (vflag_either && cvflag_atom) { + double ric[3]; + ric[0] = THIRD * (-del_rji[0] - del_rki[0]); + ric[1] = THIRD * (-del_rji[1] - del_rki[1]); + ric[2] = THIRD * (-del_rji[2] - del_rki[2]); + + cvatom[i][0] += ric[0] * Fi[0]; + cvatom[i][1] += ric[1] * Fi[1]; + cvatom[i][2] += ric[2] * Fi[2]; + cvatom[i][3] += ric[0] * Fi[1]; + cvatom[i][4] += ric[0] * Fi[2]; + cvatom[i][5] += ric[1] * Fi[2]; + cvatom[i][6] += ric[1] * Fi[0]; + cvatom[i][7] += ric[2] * Fi[0]; + cvatom[i][8] += ric[2] * Fi[1]; + + double rjc[3]; + rjc[0] = THIRD * (del_rji[0] - del_rkj[0]); + rjc[1] = THIRD * (del_rji[1] - del_rkj[1]); + rjc[2] = THIRD * (del_rji[2] - del_rkj[2]); + + cvatom[j][0] += rjc[0] * Fj[0]; + cvatom[j][1] += rjc[1] * Fj[1]; + cvatom[j][2] += rjc[2] * Fj[2]; + cvatom[j][3] += rjc[0] * Fj[1]; + cvatom[j][4] += rjc[0] * Fj[2]; + cvatom[j][5] += rjc[1] * Fj[2]; + cvatom[j][6] += rjc[1] * Fj[0]; + cvatom[j][7] += rjc[2] * Fj[0]; + cvatom[j][8] += rjc[2] * Fj[1]; + + double rkc[3]; + rkc[0] = THIRD * (del_rki[0] + del_rkj[0]); + rkc[1] = THIRD * (del_rki[1] + del_rkj[1]); + rkc[2] = THIRD * (del_rki[2] + del_rkj[2]); + + cvatom[k][0] += rkc[0] * Fk[0]; + cvatom[k][1] += rkc[1] * Fk[1]; + cvatom[k][2] += rkc[2] * Fk[2]; + cvatom[k][3] += rkc[0] * Fk[1]; + cvatom[k][4] += rkc[0] * Fk[2]; + cvatom[k][5] += rkc[1] * Fk[2]; + cvatom[k][6] += rkc[1] * Fk[0]; + cvatom[k][7] += rkc[2] * Fk[0]; + cvatom[k][8] += rkc[2] * Fk[1]; + } + } + } + } + } + } + } + if (vflag_fdotr) virial_fdotr_compute(); +} + +double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) +{ + double value = 0.0; + double r = sqrt(rsq); + + if (r < cut[itype][jtype]) { + double *pair_eval = UFBS2b[itype][jtype].eval(r); + value = pair_eval[0]; + fforce = factor_lj * pair_eval[1]; + } + + return factor_lj * value; +} + +double PairUF3::memory_usage() +{ + double bytes = Pair::memory_usage(); + + bytes = 0; + + bytes += (double)5*sizeof(double); //num_of_elements, nbody_flag, + //n2body_pot_files, n3body_pot_files, + //tot_pot_files; + + bytes += (double)5*sizeof(double); //bsplines_created, coeff_matrix_dim1, + //coeff_matrix_dim2, coeff_matrix_dim3, + //coeff_matrix_elements_len + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + (num_of_elements+1)*sizeof(double); //***setflag_3b + + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut + + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + (num_of_elements+1)*sizeof(double); //***cut_3b + + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut_3b_list + + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + (num_of_elements+1)*3*sizeof(double); //min_cut_3b + + for (int i=1; i < num_of_elements+1; i++){ + for (int j=i; j < num_of_elements+1; j++){ + bytes += (double)2*n2b_knot[i][j].size()*sizeof(double); //n2b_knot + bytes += (double)2*n2b_coeff[i][j].size()*sizeof(double); //n2b_coeff + } + if (pot_3b){ + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = j; k < num_of_elements + 1; k++) { + bytes += (double)2*n3b_knot_matrix[i][j][k][0].size()*sizeof(double); + bytes += (double)2*n3b_knot_matrix[i][j][k][1].size()*sizeof(double); + bytes += (double)2*n3b_knot_matrix[i][j][k][2].size()*sizeof(double); + + std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); + + for (int l=0; l < n3b_coeff_matrix[key].size(); l++){ + for (int m=0; m < n3b_coeff_matrix[key][l].size(); m++){ + bytes += (double)2*n3b_coeff_matrix[key][l][m].size()*sizeof(double); + //key = ijk + //key = ikj + } + } + } + } + } + } + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++){ + bytes += (double)2*UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] + } + if (pot_3b) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = j; k < num_of_elements + 1; k++) { + bytes += (double)2*UFBS3b[i][j][k].memory_usage(); + } + } + } + } + + bytes += (double)(maxshort+1)*sizeof(int); //neighshort, maxshort + + return bytes; +} + diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h new file mode 100644 index 0000000000..54f0e7e2e4 --- /dev/null +++ b/src/ML-UF3/pair_uf3.h @@ -0,0 +1,88 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + * Contributing authors: Ajinkya Hire(U of Florida), + * Hendrik Kraß (U of Constance), + * Richard Hennig (U of Florida) + * ---------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(uf3,PairUF3); +// clang-format on +#else + +#ifndef LMP_PAIR_UF3_H +#define LMP_PAIR_UF3_H + +#include "uf3_pair_bspline.h" +#include "uf3_triplet_bspline.h" + +#include "pair.h" + +#include +namespace LAMMPS_NS { + +class PairUF3 : public Pair { + public: + PairUF3(class LAMMPS *); + ~PairUF3() override; + void compute(int, int) override; + void settings(int, char **) override; + void coeff(int, char **) override; + void init_style() override; + void init_list(int, class NeighList *) override; // needed for ptr to full neigh list + double init_one(int, int) override; // needed for cutoff radius for neighbour list + double single(int, int, int, int, double, double, double, double &) override; + + double memory_usage() override; + + protected: + void uf3_read_pot_file(char *potf_name); + void uf3_read_pot_file(int i, int j, char *potf_name); + void uf3_read_pot_file(int i, int j, int k, char *potf_name); + int num_of_elements, nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; + int bsplines_created; + int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; + bool pot_3b; + int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; + double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; + virtual void allocate(); + void create_bsplines(); + std::vector>> n2b_knot, n2b_coeff; + std::vector>>>> n3b_knot_matrix; + std::unordered_map>>> n3b_coeff_matrix; + std::vector> UFBS2b; + std::vector>> UFBS3b; + int *neighshort, maxshort; // short neighbor list array for 3body interaction +}; + +} // namespace LAMMPS_NS + +#endif +#endif + +/* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +*/ diff --git a/src/ML-UF3/uf3_bspline_basis2.cpp b/src/ML-UF3/uf3_bspline_basis2.cpp new file mode 100644 index 0000000000..8ae1991ce2 --- /dev/null +++ b/src/ML-UF3/uf3_bspline_basis2.cpp @@ -0,0 +1,88 @@ +#include "uf3_bspline_basis2.h" + +#include "utils.h" +#include + +using namespace LAMMPS_NS; + +// Constructor +// Initializes coefficients and knots +// Requires [knots] to have length 4 +uf3_bspline_basis2::uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double coefficient) +{ + lmp = ulmp; + + double c0, c1, c2; + + c0 = coefficient * + (pow(knots[0], 2) / + (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + c1 = coefficient * + (-2 * knots[0] / + (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + c2 = coefficient * + (1 / (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + c0 = coefficient * + (-knots[1] * knots[3] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + knots[0] * knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + c1 = coefficient * + (knots[1] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[3] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[0] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2)) + + knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + c2 = coefficient * + (-1 / (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + c0 = coefficient * + (pow(knots[3], 2) / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + c1 = coefficient * + (-2 * knots[3] / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + c2 = coefficient * + (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); +} + +uf3_bspline_basis2::~uf3_bspline_basis2() {} + +// Evaluate outer-left part of spline +double uf3_bspline_basis2::eval0(double rsq, double r) +{ + return rsq * constants[2] + r * constants[1] + constants[0]; +} + +// Evaluate center-left part of spline +double uf3_bspline_basis2::eval1(double rsq, double r) +{ + return rsq * constants[5] + r * constants[4] + constants[3]; +} + +// Evaluate center-right part of spline +double uf3_bspline_basis2::eval2(double rsq, double r) +{ + return rsq * constants[8] + r * constants[7] + constants[6]; +} + +double uf3_bspline_basis2::memory_usage() +{ + double bytes = 0; + + bytes += (double)constants.size()*sizeof(double); + + return bytes; +} diff --git a/src/ML-UF3/uf3_bspline_basis2.h b/src/ML-UF3/uf3_bspline_basis2.h new file mode 100644 index 0000000000..8551b097b1 --- /dev/null +++ b/src/ML-UF3/uf3_bspline_basis2.h @@ -0,0 +1,32 @@ +//De Boor's algorithm @ +//https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html +//For values outside the domain, +//extrapoltaes the left(right) hand side piece of the curve +//Only works for bspline degree upto 3 becuase of definiation of P +// +#include "pointers.h" + +#include + +#ifndef UF3_BSPLINE_BASIS2_H +#define UF3_BSPLINE_BASIS2_H + +namespace LAMMPS_NS { + +class uf3_bspline_basis2 { + private: + LAMMPS *lmp; + std::vector constants; + + public: + uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double coefficient); + ~uf3_bspline_basis2(); + double eval0(double, double); + double eval1(double, double); + double eval2(double, double); + + double memory_usage(); +}; + +} // namespace LAMMPS_NS +#endif diff --git a/src/ML-UF3/uf3_bspline_basis3.cpp b/src/ML-UF3/uf3_bspline_basis3.cpp new file mode 100644 index 0000000000..f66ac0d1dc --- /dev/null +++ b/src/ML-UF3/uf3_bspline_basis3.cpp @@ -0,0 +1,324 @@ +#include "uf3_bspline_basis3.h" + +#include "utils.h" +#include + +using namespace LAMMPS_NS; + +// Constructor +// Initializes coefficients and knots +// [knots] needs to have length 4 +uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double coefficient) +{ + lmp = ulmp; + + double c0, c1, c2, c3; + + c0 = coefficient * + (-pow(knots[0], 3) / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + c1 = coefficient * + (3 * pow(knots[0], 2) / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + c2 = coefficient * + (-3 * knots[0] / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + c3 = coefficient * + (1 / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + constants.push_back(c3); + c0 = coefficient * + (pow(knots[1], 2) * knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + pow(knots[0], 2) * knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * knots[1] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + c1 = coefficient * + (-pow(knots[1], 2) / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 2 * knots[1] * knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + pow(knots[0], 2) / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + 2 * knots[0] * knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * knots[1] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + knots[0] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + knots[1] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + c2 = coefficient * + (2 * knots[1] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + 2 * knots[0] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + knots[1] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + c3 = coefficient * + (-1 / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 1 / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + 1 / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + constants.push_back(c3); + c0 = coefficient * + (-knots[0] * pow(knots[3], 2) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[1] * knots[3] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[2] * pow(knots[4], 2) / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + c1 = coefficient * + (2 * knots[0] * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + pow(knots[3], 2) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + knots[1] * knots[3] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[3] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + 2 * knots[2] * knots[4] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) + + pow(knots[4], 2) / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + c2 = coefficient * + (-knots[0] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + 2 * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[1] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[3] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[2] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) - + 2 * knots[4] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + c3 = coefficient * + (1 / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + 1 / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + 1 / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + constants.push_back(c3); + c0 = coefficient * + (pow(knots[4], 3) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + c1 = coefficient * + (-3 * pow(knots[4], 2) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + c2 = coefficient * + (3 * knots[4] / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + c3 = coefficient * + (-1 / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + constants.push_back(c0); + constants.push_back(c1); + constants.push_back(c2); + constants.push_back(c3); +} + +uf3_bspline_basis3::~uf3_bspline_basis3() {} + +// Evaluate outer-left part of spline +double uf3_bspline_basis3::eval0(double rth, double rsq, double r) +{ + return rth * constants[3] + rsq * constants[2] + r * constants[1] + constants[0]; +} + +// Evaluate center-left part of spline +double uf3_bspline_basis3::eval1(double rth, double rsq, double r) +{ + return rth * constants[7] + rsq * constants[6] + r * constants[5] + constants[4]; +} + +// Evaluate center-right part of spline +double uf3_bspline_basis3::eval2(double rth, double rsq, double r) +{ + return rth * constants[11] + rsq * constants[10] + r * constants[9] + constants[8]; +} + +// Evaluate outer-right part of spline +double uf3_bspline_basis3::eval3(double rth, double rsq, double r) +{ + return rth * constants[15] + rsq * constants[14] + r * constants[13] + constants[12]; +} + +double uf3_bspline_basis3::memory_usage() +{ + double bytes = 0; + + bytes += (double)constants.size()*sizeof(double); + + return bytes; +} diff --git a/src/ML-UF3/uf3_bspline_basis3.h b/src/ML-UF3/uf3_bspline_basis3.h new file mode 100644 index 0000000000..d29d9b08f1 --- /dev/null +++ b/src/ML-UF3/uf3_bspline_basis3.h @@ -0,0 +1,33 @@ +//De Boor's algorithm @ +//https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html +//For values outside the domain, +//extrapoltaes the left(right) hand side piece of the curve +//Only works for bspline degree upto 3 becuase of definiation of P +// +#include "pointers.h" + +#include + +#ifndef UF3_BSPLINE_BASIS3_H +#define UF3_BSPLINE_BASIS3_H + +namespace LAMMPS_NS { + +class uf3_bspline_basis3 { + private: + LAMMPS *lmp; + std::vector constants; + + public: + uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double coefficient); + ~uf3_bspline_basis3(); + double eval0(double, double, double); + double eval1(double, double, double); + double eval2(double, double, double); + double eval3(double, double, double); + + double memory_usage(); +}; + +} // namespace LAMMPS_NS +#endif diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp new file mode 100644 index 0000000000..d4c14284f8 --- /dev/null +++ b/src/ML-UF3/uf3_pair_bspline.cpp @@ -0,0 +1,144 @@ +#include "uf3_pair_bspline.h" + +#include "uf3_bspline_basis2.h" +#include "uf3_bspline_basis3.h" + +#include "utils.h" +#include "error.h" +#include + +using namespace LAMMPS_NS; + +// Dummy constructor +uf3_pair_bspline::uf3_pair_bspline() {} + +// Constructor +// Passing vectors by reference +uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, + const std::vector &ucoeff_vect, + const int &uknot_spacing_type) +{ + lmp = ulmp; + knot_vect = uknot_vect; + coeff_vect = ucoeff_vect; + + knot_spacing_type = uknot_spacing_type; + if (knot_spacing_type==0){ + knot_spacing = knot_vect[4]-knot_vect[3]; + get_starting_index=&uf3_pair_bspline::get_starting_index_uniform; + } + else if (knot_spacing_type==1){ + knot_spacing = 0; + get_starting_index=&uf3_pair_bspline::get_starting_index_nonuniform; + } + + else + lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ + '1'(non-uniform knots)"); + + knot_vect_size = uknot_vect.size(); + coeff_vect_size = ucoeff_vect.size(); + + // Initialize B-Spline Basis Functions + for (int i = 0; i < knot_vect.size() - 4; i++) + bspline_bases.push_back(uf3_bspline_basis3(lmp, &knot_vect[i], coeff_vect[i])); + + // Initialize Coefficients and Knots for Derivatives + // The last coefficient needs to be droped + for (int i = 0; i < coeff_vect_size - 1; i++) { + double dntemp4 = 3 / (knot_vect[i + 4] - knot_vect[i + 1]); + dncoeff_vect.push_back((coeff_vect[i + 1] - coeff_vect[i]) * dntemp4); + } + //What we have is a clamped bspline -->i.e value of the bspline curve at the + //knots with multiplicity equal to the degree of bspline is equal to the coefficient + // + //Therefore for the derivative bspline the very first and last knot needs to be droped + //to change their multiplicity from 4 (necessary condition for clamped cubic bspline) + //to 3 (necessary condition for clamped quadratic bspline) + // + //Also if the coeff vector size of decreases by 1 for the derivative bspline + //knots size needs to go down by 2 as ==> knots = coefficient + degree + 1 + for (int i = 1; i < knot_vect_size - 1; i++) dnknot_vect.push_back(knot_vect[i]); + + // Initialize B-Spline Derivative Basis Functions + for (int i = 0; i < dnknot_vect.size() - 3; i++) + dnbspline_bases.push_back(uf3_bspline_basis2(lmp, &dnknot_vect[i], dncoeff_vect[i])); +} + +uf3_pair_bspline::~uf3_pair_bspline() {} + +int uf3_pair_bspline::get_starting_index_uniform(double r) +{ + return 3+(int)((r-knot_vect[0])/knot_spacing); +} + +int uf3_pair_bspline::get_starting_index_nonuniform(double r) +{ + if (knot_vect.front() <= r && r < knot_vect.back()) { + //Determine the interval for value_rij + for (int i = 3; i < knot_vect_size - 1; ++i) { + if (knot_vect[i] <= r && r < knot_vect[i + 1]) { + return i; + } + } + } +} + +double *uf3_pair_bspline::eval(double r) +{ + + // Find knot starting position + + int start_index=(this->*get_starting_index)(r); + /*if (knot_vect.front() <= r && r < knot_vect.back()) { + //Determine the interval for value_rij + for (int i = 3; i < knot_vect_size - 1; ++i) { + if (knot_vect[i] <= r && r < knot_vect[i + 1]) { + start_index = i; + break; + } + } + }*/ + + int knot_affect_start = start_index - 3; + + double rsq = r * r; + double rth = rsq * r; + + // Calculate energy + + ret_val[0] = bspline_bases[knot_affect_start + 3].eval0(rth, rsq, r); + ret_val[0] += bspline_bases[knot_affect_start + 2].eval1(rth, rsq, r); + ret_val[0] += bspline_bases[knot_affect_start + 1].eval2(rth, rsq, r); + ret_val[0] += bspline_bases[knot_affect_start].eval3(rth, rsq, r); + + // Calculate force + + ret_val[1] = dnbspline_bases[knot_affect_start + 2].eval0(rsq, r); + ret_val[1] += dnbspline_bases[knot_affect_start + 1].eval1(rsq, r); + ret_val[1] += dnbspline_bases[knot_affect_start].eval2(rsq, r); + + return ret_val; +} + +double uf3_pair_bspline::memory_usage() +{ + double bytes = 0; + + bytes += (double)2*sizeof(int); //knot_vect_size, + //coeff_vect_size + bytes += (double)knot_vect.size()*sizeof(double); //knot_vect + bytes += (double)dnknot_vect.size()*sizeof(double); //dnknot_vect + bytes += (double)coeff_vect.size()*sizeof(double); //coeff_vect + bytes += (double)dncoeff_vect.size()*sizeof(double); //dncoeff_vect + + for (int i = 0; i < knot_vect.size() - 4; i++) + bytes += (double)bspline_bases[i].memory_usage(); //bspline_basis3 + + for (int i = 0; i < dnknot_vect.size() - 3; i++) + bytes += (double)dnbspline_bases[i].memory_usage(); //bspline_basis2 + + bytes += (double)2*sizeof(double); //ret_val + + return bytes; +} diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h new file mode 100644 index 0000000000..aa3f1e8c40 --- /dev/null +++ b/src/ML-UF3/uf3_pair_bspline.h @@ -0,0 +1,55 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + 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. +------------------------------------------------------------------------- */ + +// De Boor's algorithm @ +// https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html +// For values outside the domain, it exhibits undefined behavior. +// Uses fixed B-Spline degree 3. + +#include "pointers.h" + +#include "uf3_bspline_basis2.h" +#include "uf3_bspline_basis3.h" + +#include + +#ifndef UF3_PAIR_BSPLINE_H +#define UF3_PAIR_BSPLINE_H + +namespace LAMMPS_NS { + +class uf3_pair_bspline { + private: + int knot_vect_size, coeff_vect_size; + std::vector knot_vect, dnknot_vect; + std::vector coeff_vect, dncoeff_vect; + std::vector bspline_bases; + std::vector dnbspline_bases; + int get_starting_index_uniform(double), get_starting_index_nonuniform(double); + int (uf3_pair_bspline::*get_starting_index)(double); + //double knot_spacing=0; + LAMMPS *lmp; + + public: + // dummy constructor + uf3_pair_bspline(); + uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, + const std::vector &ucoeff_vect, + const int &uknot_spacing_type); + ~uf3_pair_bspline(); + int knot_spacing_type; + double knot_spacing=0; + double ret_val[2]; + double *eval(double value_rij); + double memory_usage(); +}; +} // namespace LAMMPS_NS +#endif diff --git a/src/ML-UF3/uf3_triplet_bspline.cpp b/src/ML-UF3/uf3_triplet_bspline.cpp new file mode 100644 index 0000000000..6c5a5a19e7 --- /dev/null +++ b/src/ML-UF3/uf3_triplet_bspline.cpp @@ -0,0 +1,347 @@ +#include "uf3_triplet_bspline.h" +#include "error.h" +#include +#include + +using namespace LAMMPS_NS; + +// Dummy constructor +uf3_triplet_bspline::uf3_triplet_bspline(){}; + +// Construct a new 3D B-Spline +uf3_triplet_bspline::uf3_triplet_bspline( + LAMMPS *ulmp, const std::vector> &uknot_matrix, + const std::vector>> &ucoeff_matrix, + const int &uknot_spacing_type) +{ + lmp = ulmp; + knot_matrix = uknot_matrix; + coeff_matrix = ucoeff_matrix; + + knot_spacing_type = uknot_spacing_type; + if (knot_spacing_type==0){ + knot_spacing_ij = knot_matrix[2][4]-knot_matrix[2][3]; + knot_spacing_ik = knot_matrix[1][4]-knot_matrix[1][3]; + knot_spacing_jk = knot_matrix[0][4]-knot_matrix[0][3]; + get_starting_index=&uf3_triplet_bspline::get_starting_index_uniform; + } + else if (knot_spacing_type==1){ + knot_spacing_ij = 0; + knot_spacing_ik = 0; + knot_spacing_jk = 0; + get_starting_index=&uf3_triplet_bspline::get_starting_index_nonuniform; + } + + else + lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ + '1'(non-uniform knots)"); + + knot_vect_size_ij = knot_matrix[2].size(); + knot_vect_size_ik = knot_matrix[1].size(); + knot_vect_size_jk = knot_matrix[0].size(); + + int resolution_ij = knot_vect_size_ij - 4; + int resolution_ik = knot_vect_size_ik - 4; + int resolution_jk = knot_vect_size_jk - 4; + + // Cache Spline Basis Functions + for (int l = 0; l < resolution_ij; l++) { + bsplines_ij.push_back(uf3_bspline_basis3(lmp, &knot_matrix[2][l], 1)); + } + + for (int l = 0; l < resolution_ik; l++) { + // Reuse jk Basis if Knots match + if (knot_matrix[1][l] == knot_matrix[2][l] && knot_matrix[1][l + 1] == knot_matrix[2][l + 1] && + knot_matrix[1][l + 2] == knot_matrix[2][l + 2] && + knot_matrix[1][l + 3] == knot_matrix[2][l + 3]) + bsplines_ik.push_back(bsplines_ij[l]); + else + bsplines_ik.push_back(uf3_bspline_basis3(lmp, &knot_matrix[1][l], 1)); + } + + for (int l = 0; l < resolution_jk; l++) { + bsplines_jk.push_back(uf3_bspline_basis3(lmp, &knot_matrix[0][l], 1)); + } + + // Initialize Coefficients for Derivatives + for (int i = 0; i < coeff_matrix.size(); i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < coeff_matrix[0].size(); j++) { + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size() - 1; k++) { + double dntemp4 = 3 / (knot_matrix[0][k + 4] - knot_matrix[0][k + 1]); + dncoeff_vect.push_back((coeff_matrix[i][j][k + 1] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_jk.push_back(dncoeff_vect2); + } + + for (int i = 0; i < coeff_matrix.size(); i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < coeff_matrix[0].size() - 1; j++) { + double dntemp4 = 3 / (knot_matrix[1][j + 4] - knot_matrix[1][j + 1]); + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size(); k++) { + dncoeff_vect.push_back((coeff_matrix[i][j + 1][k] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_ik.push_back(dncoeff_vect2); + } + + for (int i = 0; i < coeff_matrix.size() - 1; i++) { + std::vector> dncoeff_vect2; + double dntemp4 = 3 / (knot_matrix[2][i + 4] - knot_matrix[2][i + 1]); + for (int j = 0; j < coeff_matrix[0].size(); j++) { + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size(); k++) { + dncoeff_vect.push_back((coeff_matrix[i + 1][j][k] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_ij.push_back(dncoeff_vect2); + } + + std::vector> dnknot_matrix; + for (int i = 0; i < knot_matrix.size(); i++) { + std::vector dnknot_vect; + for (int j = 1; j < knot_matrix[0].size() - 1; j++) { + dnknot_vect.push_back(knot_matrix[i][j]); + } + dnknot_matrix.push_back(dnknot_vect); + } + + // Cache Derivative Spline Basis Functions + for (int l = 0; l < resolution_ij - 1; l++) { + dnbsplines_ij.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[2][l], 1)); + } + + for (int l = 0; l < resolution_ik - 1; l++) { + // Reuse jk Basis if Knots match + if (dnknot_matrix[1][l] == dnknot_matrix[2][l] && + dnknot_matrix[1][l + 1] == dnknot_matrix[2][l + 1] && + dnknot_matrix[1][l + 2] == dnknot_matrix[2][l + 2]) + dnbsplines_ik.push_back(dnbsplines_ij[l]); + else + dnbsplines_ik.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[1][l], 1)); + } + + for (int l = 0; l < resolution_jk - 1; l++) { + dnbsplines_jk.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[0][l], 1)); + } +} + +// Destructor +uf3_triplet_bspline::~uf3_triplet_bspline() {} + +// Evaluate 3D B-Spline value +double *uf3_triplet_bspline::eval(double value_rij, double value_rik, double value_rjk) +{ + + // Find starting knots + + //int iknot_ij = starting_knot(knot_matrix[2], knot_vect_size_ij, value_rij) - 3; + //int iknot_ik = starting_knot(knot_matrix[1], knot_vect_size_ik, value_rik) - 3; + //int iknot_jk = starting_knot(knot_matrix[0], knot_vect_size_jk, value_rjk) - 3; + int iknot_ij = (this->*get_starting_index)(knot_matrix[2], knot_vect_size_ij, value_rij,knot_spacing_ij) - 3; + int iknot_ik = (this->*get_starting_index)(knot_matrix[1], knot_vect_size_ik, value_rik,knot_spacing_ik) - 3; + int iknot_jk = (this->*get_starting_index)(knot_matrix[0], knot_vect_size_jk, value_rjk,knot_spacing_jk) - 3; + + double rsq_ij = value_rij * value_rij; + double rsq_ik = value_rik * value_rik; + double rsq_jk = value_rjk * value_rjk; + double rth_ij = rsq_ij * value_rij; + double rth_ik = rsq_ik * value_rik; + double rth_jk = rsq_jk * value_rjk; + + // Calculate energies + + double basis_ij[4]; + basis_ij[0] = bsplines_ij[iknot_ij].eval3(rth_ij, rsq_ij, value_rij); + basis_ij[1] = bsplines_ij[iknot_ij + 1].eval2(rth_ij, rsq_ij, value_rij); + basis_ij[2] = bsplines_ij[iknot_ij + 2].eval1(rth_ij, rsq_ij, value_rij); + basis_ij[3] = bsplines_ij[iknot_ij + 3].eval0(rth_ij, rsq_ij, value_rij); + + double basis_ik[4]; + basis_ik[0] = bsplines_ik[iknot_ik].eval3(rth_ik, rsq_ik, value_rik); + basis_ik[1] = bsplines_ik[iknot_ik + 1].eval2(rth_ik, rsq_ik, value_rik); + basis_ik[2] = bsplines_ik[iknot_ik + 2].eval1(rth_ik, rsq_ik, value_rik); + basis_ik[3] = bsplines_ik[iknot_ik + 3].eval0(rth_ik, rsq_ik, value_rik); + + double basis_jk[4]; + basis_jk[0] = bsplines_jk[iknot_jk].eval3(rth_jk, rsq_jk, value_rjk); + basis_jk[1] = bsplines_jk[iknot_jk + 1].eval2(rth_jk, rsq_jk, value_rjk); + basis_jk[2] = bsplines_jk[iknot_jk + 2].eval1(rth_jk, rsq_jk, value_rjk); + basis_jk[3] = bsplines_jk[iknot_jk + 3].eval0(rth_jk, rsq_jk, value_rjk); + + ret_val[0] = 0; + ret_val[1] = 0; + ret_val[2] = 0; + ret_val[3] = 0; + + for (int i = 0; i < 4; i++) { + const double basis_iji = basis_ij[i]; // prevent repeated access of same memory location + for (int j = 0; j < 4; j++) { + const double factor = basis_iji * basis_ik[j]; // prevent repeated access of same memory location + const double* slice = &coeff_matrix[i + iknot_ij][j + iknot_ik][iknot_jk]; // declare a contigues 1D slice of memory + double tmp[4]; // declare tmp array that holds the 4 tmp values so the can be computed simultaniously in 4 separate registeres. + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + ret_val[0] += factor * sum; // use 1 fused multiply-add (FMA) + } + } + + // Calculate forces + + double dnbasis_ij[4]; + dnbasis_ij[0] = dnbsplines_ij[iknot_ij].eval2(rsq_ij, value_rij); + dnbasis_ij[1] = dnbsplines_ij[iknot_ij + 1].eval1(rsq_ij, value_rij); + dnbasis_ij[2] = dnbsplines_ij[iknot_ij + 2].eval0(rsq_ij, value_rij); + dnbasis_ij[3] = 0; + + double dnbasis_ik[4]; + dnbasis_ik[0] = dnbsplines_ik[iknot_ik].eval2(rsq_ik, value_rik); + dnbasis_ik[1] = dnbsplines_ik[iknot_ik + 1].eval1(rsq_ik, value_rik); + dnbasis_ik[2] = dnbsplines_ik[iknot_ik + 2].eval0(rsq_ik, value_rik); + dnbasis_ik[3] = 0; + + double dnbasis_jk[4]; + dnbasis_jk[0] = dnbsplines_jk[iknot_jk].eval2(rsq_jk, value_rjk); + dnbasis_jk[1] = dnbsplines_jk[iknot_jk + 1].eval1(rsq_jk, value_rjk); + dnbasis_jk[2] = dnbsplines_jk[iknot_jk + 2].eval0(rsq_jk, value_rjk); + dnbasis_jk[3] = 0; + + for (int i = 0; i < 3; i++) { + const double dnbasis_iji = dnbasis_ij[i]; + for (int j = 0; j < 4; j++) { + const double factor = dnbasis_iji * basis_ik[j]; + const double* slice = &dncoeff_matrix_ij[iknot_ij + i][iknot_ik + j][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + ret_val[1] += factor * sum; + } + } + + for (int i = 0; i < 4; i++) { + const double basis_iji = basis_ij[i]; + for (int j = 0; j < 3; j++) { + const double factor = basis_iji * dnbasis_ik[j]; + const double* slice = &dncoeff_matrix_ik[iknot_ij + i][iknot_ik + j][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + ret_val[2] += factor * sum; + } + } + + for (int i = 0; i < 4; i++) { + const double basis_iji = basis_ij[i]; + for (int j = 0; j < 4; j++) { + const double factor = basis_iji * basis_ik[j]; + const double* slice = &dncoeff_matrix_jk[iknot_ij + i][iknot_ik + j][iknot_jk]; + double tmp[3]; + tmp[0] = slice[0] * dnbasis_jk[0]; + tmp[1] = slice[1] * dnbasis_jk[1]; + tmp[2] = slice[2] * dnbasis_jk[2]; + double sum = tmp[0] + tmp[1] + tmp[2]; + ret_val[3] += factor * sum; + } + } + + return ret_val; +} + +// Find starting knot for spline evaluation + +int uf3_triplet_bspline::starting_knot(const std::vector knot_vect, int knot_vect_size, + double r) +{ + if (knot_vect.front() <= r && r < knot_vect.back()) { + for (int i = 3; i < knot_vect_size - 1; i++) { + if (knot_vect[i] <= r && r < knot_vect[i + 1]) return i; + } + } + + return 0; +} + +int uf3_triplet_bspline::get_starting_index_uniform(const std::vector knot_vect, int knot_vect_size, + double r, double knot_spacing) +{ + return 3+(int)((r-knot_vect[0])/knot_spacing); +} + +int uf3_triplet_bspline::get_starting_index_nonuniform(const std::vector knot_vect, int knot_vect_size, + double r, double knot_spacing) +{ + if (knot_vect.front() <= r && r < knot_vect.back()) { + //Determine the interval for value_rij + for (int i = 3; i < knot_vect_size - 1; ++i) { + if (knot_vect[i] <= r && r < knot_vect[i + 1]) { + return i; + } + } + } +} + +double uf3_triplet_bspline::memory_usage() +{ + double bytes = 0; + + bytes += (double) 3*sizeof(int); //knot_vect_size_ij, + //knot_vect_size_ik, + //knot_vect_size_jk; + + for (int i=0; i + +#ifndef UF3_TRIPLET_BSPLINE_H +#define UF3_TRIPLET_BSPLINE_H + +namespace LAMMPS_NS { +class uf3_triplet_bspline { + private: + LAMMPS *lmp; + int knot_vect_size_ij, knot_vect_size_ik, knot_vect_size_jk; + std::vector>> coeff_matrix, dncoeff_matrix_ij, dncoeff_matrix_ik, + dncoeff_matrix_jk; + std::vector> knot_matrix; + std::vector bsplines_ij, bsplines_ik, bsplines_jk; + std::vector dnbsplines_ij, dnbsplines_ik, dnbsplines_jk; + int get_starting_index_uniform(const std::vector, int, double, double); + int get_starting_index_nonuniform(const std::vector, int, double, double); + int (uf3_triplet_bspline::*get_starting_index)(const std::vector, int, double, double); + //double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; + //double _alignvar(, 8) ret_val[4]; // Force memory alignment on 8 byte boundaries + double ret_val[4]; + + int starting_knot(const std::vector, int, double); + + public: + //Dummy Constructor + uf3_triplet_bspline(); + uf3_triplet_bspline(LAMMPS *ulmp, const std::vector> &uknot_matrix, + const std::vector>> &ucoeff_matrix, + const int &uknot_spacing_type); + ~uf3_triplet_bspline(); + int knot_spacing_type; + double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; + double *eval(double value_rij, double value_rik, double value_rjk); + + double memory_usage(); +}; +} // namespace LAMMPS_NS +#endif From 53c6959e52a34fb882954ab2d46a384a6f077db3 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:08:07 -0400 Subject: [PATCH 012/313] Added src files for uf3/kk --- src/KOKKOS/pair_uf3_kokkos.cpp | 1722 ++++++++++++++++++++++++++++++++ src/KOKKOS/pair_uf3_kokkos.h | 199 ++++ 2 files changed, 1921 insertions(+) create mode 100644 src/KOKKOS/pair_uf3_kokkos.cpp create mode 100644 src/KOKKOS/pair_uf3_kokkos.h diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp new file mode 100644 index 0000000000..dbcdd22e3d --- /dev/null +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -0,0 +1,1722 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + * Contributing authors: Ajinkya Hire (U of Florida), + * Hendrik Kraß (U of Constance), + * Richard Hennig (U of Florida) + * ---------------------------------------------------------------------- */ + +#include "pair_uf3_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "kokkos_type.h" +#include "math_const.h" +#include "memory.h" +#include "memory_kokkos.h" +#include "neigh_list_kokkos.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "pair_kokkos.h" +#include "text_file_reader.h" +#include +#include +#include + +#include + +using namespace LAMMPS_NS; +using namespace MathConst; + +template PairUF3Kokkos::PairUF3Kokkos(LAMMPS *lmp) : PairUF3(lmp) +{ + respa_enable = 0; + + //kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | TAG_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; +} + +template PairUF3Kokkos::~PairUF3Kokkos() +{ + if (!copymode) { + memoryKK->destroy_kokkos(k_eatom, eatom); //destory eatom from host, set it to nullptr + //Also set k_eatom to empty View + memoryKK->destroy_kokkos(k_vatom, vatom); + memoryKK->destroy_kokkos(k_cutsq,cutsq); + destroy_3d(k_cut_3b,cut_3b); + destroy_4d(k_min_cut_3b,min_cut_3b); + eatom = NULL; + vatom = NULL; + cvatom = NULL; + } +} + +template +template +void PairUF3Kokkos::destroy_3d(TYPE data, typename TYPE::value_type*** &array) +{ + if (array == nullptr) return; + data = TYPE(); + memory->sfree(array); + array = nullptr; +} + +template +template +void PairUF3Kokkos::destroy_4d(TYPE data, typename TYPE::value_type**** &array) +{ + if (array == nullptr) return; + data = TYPE(); + memory->sfree(array); + array = nullptr; +} + +/* ---------------------------------------------------------------------- + * global settings + * ---------------------------------------------------------------------- */ + +template void PairUF3Kokkos::settings(int narg, char **arg) +{ + PairUF3::settings(narg, arg); + //1. Determines whether the simulation is 2-body or 2 and 3-body + //2. Set nbody_flag, num_of_elements, pot_3b +} + +/* ---------------------------------------------------------------------- + * set coeffs for one or more type pairs + * ---------------------------------------------------------------------- */ +template void PairUF3Kokkos::coeff(int narg, char **arg) +{ + PairUF3::coeff(narg,arg); + //Also calls allocate internally + //Grows arrays to the right dimensions --> setflag, cutsq, cut, knot_spacing_type_2b, + //n2b_knot, n2b_coeff, UFBS2b, n2b_knot[i], n2b_coeff[i], UFBS2b[i], setflag_3b, + //cut_3b, cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, + //UFBS3b, neighshort + // + //Also reads the pot_files_internally + + +/* copy_2d(d_cutsq, cutsq, num_of_elements + 1, num_of_elements + 1); //copy cutsq from + //host to device memory + if (pot_3b) { + copy_3d(d_cut_3b, cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + copy_2d(d_cut_3b_list, cut_3b_list, num_of_elements + 1, num_of_elements + 1); + } else { + //why are we allocating space to d_cut_3b, d_cut_3b_list if the pot is 2-body only? + Kokkos::realloc(d_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); + } + //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, + //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, + //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, + //neighshort + + //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) + //for it + create_2b_coefficients(); + if (pot_3b) create_3b_coefficients();*/ +} + +template +void PairUF3Kokkos::allocate() +{ + if (!allocated) PairUF3::allocate(); + int n = atom->ntypes; + memory->destroy(cutsq); //Why are we destroying cutsq? cutsq is allocated when + //PairUF3::coeff or PairUF3::allocate is called; in the next step when k_cutsq + //is created cut_3b is set to point to the host array of k_cutsq + //memory->destroy(cut_3b); + + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + d_cutsq = k_cutsq.template view(); //assignment; get the device + //view of k_cutsq and assign it to d_cutsq; in the header file we just + //decleared d_cutsq's type + memoryKK->create_kokkos(k_cut_3b,n+1,n+1,n+1,"threebody:cut"); + memoryKK->create_kokkos(k_min_cut_3b,n+1,n+1,n+1,3,"threebody:cut"); + d_cut_3b = k_cut_3b.template view(); + d_min_cut_3b = k_min_cut_3b.template view(); +} + + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +template void PairUF3Kokkos::init_style() +{ + + PairUF3::init_style(); + + neighflag = lmp->kokkos->neighflag; + + auto request = neighbor->find_request(this); + request->set_kokkos_host(std::is_same::value && + !std::is_same::value); + request->set_kokkos_device(std::is_same::value); + + request->enable_full(); + request->enable_ghost(); +} + +/* ---------------------------------------------------------------------- + init list sets the pointer to full neighbour list requested in previous function +------------------------------------------------------------------------- */ + +template +void PairUF3Kokkos::init_list(int /*id*/, class NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ +template double PairUF3Kokkos::init_one(int i, int j) +{ + double cutone = PairUF3::init_one(i, j); + + if (!coefficients_created) create_coefficients(); + + k_cutsq.h_view(i,j) = k_cutsq.h_view(j,i) = cutone*cutone; //Update the k_cutsq's + //host memory + k_cutsq.template modify(); //Record that k_cutsq's host memory has + //been modified + + return cutone; +} + +template void PairUF3Kokkos::create_coefficients() +{ + coefficients_created = 1; + + /*for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + //Check for knot_spacing type + //Currently only uniform is supported + if (UFBS2b[i][j].knot_spacing_type != 0) + error->all(FLERR,"UF3Kokkos: Currently only uniform knot-spacing is suupoted"); + } + }*/ + + if (pot_3b){ + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + /*if (UFBS3b[i][j][k].knot_spacing_type != 0) + error->all(FLERR,"UF3Kokkos: Currently only uniform knot-spacing is suupoted");*/ + k_cut_3b.h_view(i,j,k) = cut_3b[i][j][k]; + + // Notice the order of min_cut_3b[i][j][k] + //In min_cut_3b[i][j][k], + //min_cut_3b[i][j][k][0] is the knot_vector along jk, + //min_cut_3b[i][j][k][1] is the knot_vector along ik, + //min_cut_3b[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + k_min_cut_3b.h_view(i,j,k,0) = min_cut_3b[i][j][k][0]; + k_min_cut_3b.h_view(i,j,k,1) = min_cut_3b[i][j][k][1]; + k_min_cut_3b.h_view(i,j,k,2) = min_cut_3b[i][j][k][2]; + //k_cut_3b.h_view(i,k,j) = cut_3b[i][k][j]; + } + } + } + k_cut_3b.template modify(); + k_min_cut_3b.template modify(); + } + //copy_2d(d_cutsq, cutsq, num_of_elements + 1, num_of_elements + 1); //copy cutsq from + //host to device memory + /*if (pot_3b) { + copy_3d(d_cut_3b, cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + copy_2d(d_cut_3b_list, cut_3b_list, num_of_elements + 1, num_of_elements + 1); + } else { + //why are we allocating space to d_cut_3b, d_cut_3b_list if the pot is 2-body only? + Kokkos::realloc(d_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); + }*/ + //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, + //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, + //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, + //neighshort + + //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) + //for it + create_2b_coefficients(); + if (pot_3b) create_3b_coefficients(); + +} + +template void PairUF3Kokkos::create_2b_coefficients() +{ + + // Setup interaction pair map + //TODO: Instead of using map2b and map3b use simple indexing + Kokkos::realloc(map2b, num_of_elements + 1, num_of_elements + 1); + auto map2b_view = Kokkos::create_mirror(map2b); + + int interaction_count = 0; + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + map2b_view(i, j) = interaction_count; + map2b_view(j, i) = interaction_count++; + } + } + Kokkos::deep_copy(map2b, map2b_view); + + // Count max knots for array size + + int max_knots = 0; + for (int i = 1; i < n2b_knot.size(); i++) + for (int j = i; j < n2b_knot[i].size(); j++) max_knots = max(max_knots, n2b_knot[i][j].size()); + + // Copy coefficients to view + + Kokkos::realloc(d_coefficients_2b, interaction_count, max_knots - 4); + auto d_coefficients_2b_view = Kokkos::create_mirror(d_coefficients_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int k = 0; k < n2b_coeff[i][j].size(); k++) { + d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff[i][j][k]; + } + } + } + Kokkos::deep_copy(d_coefficients_2b, d_coefficients_2b_view); + + // Copy knots from array to view + + Kokkos::realloc(d_n2b_knot, interaction_count, max_knots); + Kokkos::realloc(d_n2b_knot_spacings, interaction_count); + auto d_n2b_knot_view = Kokkos::create_mirror(d_n2b_knot); + auto d_n2b_knot_spacings_view = Kokkos::create_mirror(d_n2b_knot_spacings); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int k = 0; k < n2b_knot[i][j].size(); k++) { + d_n2b_knot_view(map2b_view(i, j), k) = n2b_knot[i][j][k]; + } + d_n2b_knot_spacings_view(map2b_view(i, j)) = UFBS2b[i][j].knot_spacing; + } + } + + Kokkos::deep_copy(d_n2b_knot, d_n2b_knot_view); + Kokkos::deep_copy(d_n2b_knot_spacings, d_n2b_knot_spacings_view); + // Set spline constants + + Kokkos::realloc(constants_2b, interaction_count, max_knots - 4); + auto constants_2b_view = Kokkos::create_mirror(constants_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int l = 0; l < n2b_knot[i][j].size() - 4; l++) { + auto c = get_constants(&n2b_knot[i][j][l], n2b_coeff[i][j][l]); + for (int k = 0; k < 16; k++) + constants_2b_view(map2b_view(i, j), l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 + : c[k]; + } + } + } + Kokkos::deep_copy(constants_2b, constants_2b_view); + + Kokkos::realloc(dnconstants_2b, interaction_count, max_knots - 5); + auto dnconstants_2b_view = Kokkos::create_mirror(dnconstants_2b); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + for (int l = 0; l < n2b_knot[i][j].size() - 5; l++) { + double dntemp4 = 3 / (n2b_knot[i][j][l + 4] - n2b_knot[i][j][l + 1]); + double coeff = (n2b_coeff[i][j][l + 1] - n2b_coeff[i][j][l]) * dntemp4; + auto c = get_dnconstants(&n2b_knot[i][j][l + 1], coeff); + for (int k = 0; k < 9; k++) + dnconstants_2b_view(map2b_view(i, j), l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + Kokkos::deep_copy(dnconstants_2b, dnconstants_2b_view); +} + +template void PairUF3Kokkos::create_3b_coefficients() +{ + // Init interaction map for 3B + + Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); + auto map3b_view = Kokkos::create_mirror(map3b); + + int interaction_count = 0; + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + map3b_view(i, j, k) = interaction_count; + interaction_count++; + // map3b_view(i, k, j) = interaction_count++; + } + } + } + Kokkos::deep_copy(map3b, map3b_view); + + // Count max knots for view + + int max_knots = 0; + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + + for (int i = 1; i < n3b_knot_matrix.size(); i++) + for (int j = 1; j < n3b_knot_matrix[i].size(); j++) + for (int k = 1; k < n3b_knot_matrix[i][j].size(); k++) + max_knots = + max(max_knots, + max(n3b_knot_matrix[i][j][k][0].size(), + max(n3b_knot_matrix[i][j][k][1].size(), n3b_knot_matrix[i][j][k][2].size()))); + + // Init knot matrix view + + Kokkos::realloc(d_n3b_knot_matrix, interaction_count, 3, max_knots); + Kokkos::realloc(d_n3b_knot_matrix_spacings, interaction_count, 3); + auto d_n3b_knot_matrix_view = Kokkos::create_mirror(d_n3b_knot_matrix); + auto d_n3b_knot_matrix_spacings_view = Kokkos::create_mirror(d_n3b_knot_matrix_spacings); + + for (int i = 1; i < n3b_knot_matrix.size(); i++) + for (int j = 1; j < n3b_knot_matrix[i].size(); j++) + for (int k = 1; k < n3b_knot_matrix[i][j].size(); k++) { + for (int m = 0; m < n3b_knot_matrix[i][j][k][0].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = n3b_knot_matrix[i][j][k][0][m]; + for (int m = 0; m < n3b_knot_matrix[i][j][k][1].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = n3b_knot_matrix[i][j][k][1][m]; + for (int m = 0; m < n3b_knot_matrix[i][j][k][2].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = n3b_knot_matrix[i][j][k][2][m]; + + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = UFBS3b[i][j][k].knot_spacing_ij; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = UFBS3b[i][j][k].knot_spacing_ik; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = UFBS3b[i][j][k].knot_spacing_jk; + } + Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); + Kokkos::deep_copy(d_n3b_knot_matrix_spacings, d_n3b_knot_matrix_spacings_view); + + // Set knots spacings + + Kokkos::realloc(d_n3b_knot_spacings, interaction_count, 3); + auto d_n3b_knot_spacings_view = Kokkos::create_mirror(d_n3b_knot_spacings); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { + d_n3b_knot_spacings_view(map3b_view(i, j, k), 0) = + 1 / (n3b_knot_matrix[i][j][k][0][5] - n3b_knot_matrix[i][j][k][0][4]); + d_n3b_knot_spacings_view(map3b_view(i, j, k), 1) = + 1 / (n3b_knot_matrix[i][j][k][1][5] - n3b_knot_matrix[i][j][k][1][4]); + d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = + 1 / (n3b_knot_matrix[i][j][k][2][5] - n3b_knot_matrix[i][j][k][2][4]); + } + } + } + Kokkos::deep_copy(d_n3b_knot_spacings, d_n3b_knot_spacings_view); + + // Copy coefficients + + Kokkos::realloc(d_coefficients_3b, interaction_count, max_knots - 4, max_knots - 4, + max_knots - 4); + auto d_coefficients_3b_view = Kokkos::create_mirror(d_coefficients_3b); + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); + for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { + for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix[key][i][j].size() - 1; k++) { + d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = n3b_coeff_matrix[key][i][j][k]; + } + } + } + } + } + } + Kokkos::deep_copy(d_coefficients_3b, d_coefficients_3b_view); + // + // Create derivative coefficients + + // TODO: Shrink size + Kokkos::realloc(d_dncoefficients_3b, interaction_count, 3, max_knots - 4, max_knots - 4, + max_knots - 4); + auto d_dncoefficients_3b_view = Kokkos::create_mirror(d_dncoefficients_3b); + + //Notice the order for d_dncoefficients_3b_view(map3b_view(n, m, o), X, i, j, k) + //d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) --> coeff for rjk + //d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) --> coeff for rik + //d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) --> coeff for rij + // + //This is because- + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); + for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { + for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix[key][i][j].size() - 1; k++) { + F_FLOAT dntemp4 = + 3 / (n3b_knot_matrix[n][m][o][0][k + 4] - n3b_knot_matrix[n][m][o][0][k + 1]); + d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = + (n3b_coeff_matrix[key][i][j][k + 1] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + } + } + } + + for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < n3b_coeff_matrix[key][i].size() - 1; j++) { + F_FLOAT dntemp4 = + 3 / (n3b_knot_matrix[n][m][o][1][j + 4] - n3b_knot_matrix[n][m][o][1][j + 1]); + std::vector dncoeff_vect; + for (int k = 0; k < n3b_coeff_matrix[key][i][j].size(); k++) { + d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = + (n3b_coeff_matrix[key][i][j + 1][k] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + } + } + } + + for (int i = 0; i < n3b_coeff_matrix[key].size() - 1; i++) { + F_FLOAT dntemp4 = + 3 / (n3b_knot_matrix[n][m][o][2][i + 4] - n3b_knot_matrix[n][m][o][2][i + 1]); + for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix[key][i][j].size(); k++) { + d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = + (n3b_coeff_matrix[key][i + 1][j][k] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + } + } + } + } + } + } + Kokkos::deep_copy(d_dncoefficients_3b, d_dncoefficients_3b_view); + + // Set spline constants + + Kokkos::realloc(constants_3b, interaction_count, 3, max_knots - 4); + auto constants_3b_view = Kokkos::create_mirror(constants_3b); + + //In n3b_knot_matrix[i][j][k], + //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + for (int l = 0; l < n3b_knot_matrix[n][m][o][2].size() - 4; l++) { + auto c = get_constants(&n3b_knot_matrix[n][m][o][2][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 0, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 0; l < n3b_knot_matrix[n][m][o][1].size() - 4; l++) { + auto c = get_constants(&n3b_knot_matrix[n][m][o][1][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 1, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 0; l < n3b_knot_matrix[n][m][o][0].size() - 4; l++) { + auto c = get_constants(&n3b_knot_matrix[n][m][o][0][l], 1); + for (int k = 0; k < 16; k++) + constants_3b_view(map3b_view(n, m, o), 2, l, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + } + Kokkos::deep_copy(constants_3b, constants_3b_view); + + Kokkos::realloc(dnconstants_3b, interaction_count, 3, max_knots - 6); + auto dnconstants_3b_view = Kokkos::create_mirror(dnconstants_3b); + + for (int n = 1; n < num_of_elements + 1; n++) { + for (int m = 1; m < num_of_elements + 1; m++) { + for (int o = 1; o < num_of_elements + 1; o++) { + for (int l = 1; l < n3b_knot_matrix[n][m][o][2].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][2][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 0, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 1; l < n3b_knot_matrix[n][m][o][1].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][1][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 1, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + for (int l = 1; l < n3b_knot_matrix[n][m][o][0].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][0][l], 1); + for (int k = 0; k < 9; k++) + dnconstants_3b_view(map3b_view(n, m, o), 2, l - 1, k) = + (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; + } + } + } + } + Kokkos::deep_copy(dnconstants_3b, dnconstants_3b_view); +} + +template +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::twobody(const int itype, const int jtype, + const F_FLOAT r, F_FLOAT &evdwl, + F_FLOAT &fpair) const +{ + + // Find knot starting position + int interaction_id = map2b(itype, jtype); + int start_index = 3; + while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; + //int start_index = 3+(int)((r-d_n2b_knot(interaction_id,0))/d_n2b_knot_spacings(interaction_id)); + + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r; + r_values[2] = r_values[1] * r_values[1]; + + if (EVFLAG) { + r_values[3] = r_values[2] * r_values[1]; + // Calculate energy + evdwl = constants_2b(interaction_id, start_index, 0); + evdwl += r_values[1] * constants_2b(interaction_id, start_index, 1); + evdwl += r_values[2] * constants_2b(interaction_id, start_index, 2); + evdwl += r_values[3] * constants_2b(interaction_id, start_index, 3); + evdwl += constants_2b(interaction_id, start_index - 1, 4); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); + evdwl += constants_2b(interaction_id, start_index - 2, 8); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); + evdwl += constants_2b(interaction_id, start_index - 3, 12); + evdwl += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); + evdwl += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); + evdwl += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); + } + + // Calculate force + fpair = dnconstants_2b(interaction_id, start_index - 1, 0); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); + fpair += dnconstants_2b(interaction_id, start_index - 2, 3); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); + fpair += dnconstants_2b(interaction_id, start_index - 3, 6); + fpair += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); + fpair += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); +} + +template +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::threebody( + const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, + const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl, F_FLOAT (&fforce)[3]) const +{ + evdwl = 0; + fforce[0] = 0; + fforce[1] = 0; + fforce[2] = 0; + + F_FLOAT evals[3][4]; + F_FLOAT dnevals[3][4]; + int start_indices[3]; + F_FLOAT r[3] = {value_rij, value_rik, value_rjk}; + int interaction_id = map3b(itype, jtype, ktype); + + auto coefficients = + Kokkos::subview(d_coefficients_3b, interaction_id, Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); + auto dncoefficients = Kokkos::subview(d_dncoefficients_3b, interaction_id, Kokkos::ALL, + Kokkos::ALL, Kokkos::ALL, Kokkos::ALL); + //Notice the 2-d in d_n3b_knot_matrix + // + //In d_n3b_knot_matrix[i][j][k], + //d_n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, + //d_n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, + //d_n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, + // + //and r[0] = rij, r[1] = rik and r[2] = rjk + //see n3b_knot_matrix and pair_uf3.cpp for more details + for (int d = 0; d < 3; d++) { + start_indices[d] = 3; + while (r[d] > d_n3b_knot_matrix(interaction_id, 2-d, start_indices[d] + 1)) start_indices[d]++; + //start_indices[d] = 3+(int)((r[d]-d_n3b_knot_matrix(interaction_id, 2-d, 0))/d_n3b_knot_matrix_spacings(interaction_id, 2-d)); + + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r[d]; + r_values[2] = r_values[1] * r_values[1]; + + r_values[3] = r_values[2] * r_values[1]; + + // Calculate energy + evals[d][0] = constants_3b(interaction_id, d, start_indices[d], 0); + evals[d][0] += r_values[1] * constants_3b(interaction_id, d, start_indices[d], 1); + evals[d][0] += r_values[2] * constants_3b(interaction_id, d, start_indices[d], 2); + evals[d][0] += r_values[3] * constants_3b(interaction_id, d, start_indices[d], 3); + evals[d][1] = constants_3b(interaction_id, d, start_indices[d] - 1, 4); + evals[d][1] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 1, 5); + evals[d][1] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 1, 6); + evals[d][1] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 1, 7); + evals[d][2] = constants_3b(interaction_id, d, start_indices[d] - 2, 8); + evals[d][2] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 2, 9); + evals[d][2] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 2, 10); + evals[d][2] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 2, 11); + evals[d][3] = constants_3b(interaction_id, d, start_indices[d] - 3, 12); + evals[d][3] += r_values[1] * constants_3b(interaction_id, d, start_indices[d] - 3, 13); + evals[d][3] += r_values[2] * constants_3b(interaction_id, d, start_indices[d] - 3, 14); + evals[d][3] += r_values[3] * constants_3b(interaction_id, d, start_indices[d] - 3, 15); + + dnevals[d][0] = dnconstants_3b(interaction_id, d, start_indices[d] - 1, 0); + dnevals[d][0] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 1); + dnevals[d][0] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 1, 2); + dnevals[d][1] = dnconstants_3b(interaction_id, d, start_indices[d] - 2, 3); + dnevals[d][1] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 4); + dnevals[d][1] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 2, 5); + dnevals[d][2] = dnconstants_3b(interaction_id, d, start_indices[d] - 3, 6); + dnevals[d][2] += r_values[1] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 7); + dnevals[d][2] += r_values[2] * dnconstants_3b(interaction_id, d, start_indices[d] - 3, 8); + dnevals[d][3] = 0; + } + + if (EVFLAG) { + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 4; k++) { + evdwl += coefficients(start_indices[0] - i, start_indices[1] - j, start_indices[2] - k) * + evals[0][i] * evals[1][j] * evals[2][k]; + } + } + } + } + + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 4; k++) { + fforce[0] += dncoefficients(0, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + dnevals[0][2 - i] * evals[1][3 - j] * evals[2][3 - k]; + } + } + } + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 3; j++) { + for (int k = 0; k < 4; k++) { + fforce[1] += dncoefficients(1, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + evals[0][3 - i] * dnevals[1][2 - j] * evals[2][3 - k]; + } + } + } + + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + for (int k = 0; k < 3; k++) { + fforce[2] += dncoefficients(2, start_indices[0] - 3 + i, start_indices[1] - 3 + j, + start_indices[2] - 3 + k) * + evals[0][3 - i] * evals[1][3 - j] * dnevals[2][2 - k]; + } + } + } +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +/*template void PairUF3Kokkos::init_style() +{ + + PairUF3::init_style(); + + neighflag = lmp->kokkos->neighflag; + + auto request = neighbor->find_request(this); + request->set_kokkos_host(std::is_same::value && + !std::is_same::value); + request->set_kokkos_device(std::is_same::value); + + request->enable_full(); + // request->enable_ghost(); +}*/ + +/* ---------------------------------------------------------------------- + init list sets the pointer to full neighbour list requested in previous function +------------------------------------------------------------------------- */ + +//template +//void PairUF3Kokkos::init_list(int /*id*/, class NeighList *ptr) +//{ +// list = ptr; +//} + +template void PairUF3Kokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + if (neighflag == FULL) no_virial_fdotr_compute = 1; + + ev_init(eflag, vflag, 0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom, eatom); + memoryKK->create_kokkos(k_eatom, eatom, maxeatom, "pair:eatom"); + d_eatom = k_eatom.view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom, vatom); + memoryKK->create_kokkos(k_vatom, vatom, maxvatom, "pair:vatom"); + d_vatom = k_vatom.view(); + } + + atomKK->sync(execution_space, datamask_read); + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); + + x = atomKK->k_x.template view(); + f = atomKK->k_f.template view(); + tag = atomKK->k_tag.template view(); + type = atomKK->k_type.template view(); + nlocal = atom->nlocal; + newton_pair = force->newton_pair; + nall = atom->nlocal + atom->nghost; + k_cutsq.template sync(); //Sync the device memory of k_cutsq with + //the array from the host memory; this updates d_cutsq also + k_cut_3b.template sync(); + k_min_cut_3b.template sync(); + + inum = list->inum; + const int ignum = inum + list->gnum; + NeighListKokkos *k_list = static_cast *>(list); + d_ilist = k_list->d_ilist; + d_numneigh = k_list->d_numneigh; + d_neighbors = k_list->d_neighbors; + + copymode = 1; + + escatter = ScatterEType(d_eatom); + fscatter = ScatterFType(f); + vscatter = ScatterVType(d_vatom); + //cvscatter = ScatterCVType(d_cvatom); + + EV_FLOAT ev; + EV_FLOAT ev_all; + + // build short neighbor list + + int max_neighs = d_neighbors.extent(1); + + if (((int)d_neighbors_short.extent(1) != max_neighs) || + ((int)d_neighbors_short.extent(0) != ignum)) { + d_neighbors_short = Kokkos::View("UF3::neighbors_short", ignum, max_neighs); + } + if (d_numneigh_short.extent(0) != ignum) + d_numneigh_short = Kokkos::View("UF3::numneighs_short", ignum); + Kokkos::parallel_for( + Kokkos::RangePolicy(0, ignum), *this); + + // loop over neighbor list of my atoms + + if (evflag){ + Kokkos::parallel_reduce( + Kokkos::RangePolicy>(0, inum), *this, ev); + } + else{ + Kokkos::parallel_for( + Kokkos::RangePolicy>(0, inum), *this); + } + ev_all += ev; + + Kokkos::Experimental::contribute(d_eatom, escatter); + Kokkos::Experimental::contribute(d_vatom, vscatter); + //Kokkos::Experimental::contribute(d_cvatom, cvscatter); + Kokkos::Experimental::contribute(f, fscatter); + + if (eflag_global) eng_vdwl += ev_all.evdwl; + if (vflag_global) { + virial[0] += ev_all.v[0]; + virial[1] += ev_all.v[1]; + virial[2] += ev_all.v[2]; + virial[3] += ev_all.v[3]; + virial[4] += ev_all.v[4]; + virial[5] += ev_all.v[5]; + } + + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.template sync(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.template sync(); + } + + if (cvflag_atom) { + //k_cvatom.template modify(); + //k_cvatom.template sync(); + } + + if (vflag_fdotr) pair_virial_fdotr_compute(this); + + copymode = 0; +} + +/* ---------------------------------------------------------------------- */ + +template +KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::operator()(TagPairUF3ComputeShortNeigh, + const int &ii) const +{ + const int i = d_ilist[ii]; + const X_FLOAT xtmp = x(i, 0); + const X_FLOAT ytmp = x(i, 1); + const X_FLOAT ztmp = x(i, 2); + + const int jnum = d_numneigh[i]; + int inside = 0; + for (int jj = 0; jj < jnum; jj++) { + int j = d_neighbors(i, jj); + j &= NEIGHMASK; + + const X_FLOAT delx = xtmp - x(j, 0); + const X_FLOAT dely = ytmp - x(j, 1); + const X_FLOAT delz = ztmp - x(j, 2); + const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; + + const int itype = type[i]; + const int jtype = type[j]; + + if (rsq <= d_cutsq(itype, jtype)) { + d_neighbors_short(i, inside) = j; + inside++; + } + } + d_numneigh_short(i) = inside; +} + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, const int &ii, + EV_FLOAT &ev) const +{ + // The f array is duplicated for OpenMP, atomic for CUDA, and neither for Serial + + auto v_f = vscatter.access(); + auto a_f = fscatter.access(); + auto a_cvatom = cvscatter.access(); + + F_FLOAT del_rji[3], del_rki[3], del_rkj[3], triangle_eval[3]; + F_FLOAT fij[3], fik[3], fjk[3]; + F_FLOAT fji[3], fki[3], fkj[3]; + F_FLOAT Fj[3], Fk[3]; + F_FLOAT evdwl = 0, evdwl3 = 0; + F_FLOAT fpair = 0; + + const int i = d_ilist[ii]; + + const tagint itag = tag[i]; + const int itype = type[i]; + const X_FLOAT xtmp = x(i, 0); + const X_FLOAT ytmp = x(i, 1); + const X_FLOAT ztmp = x(i, 2); + + // two-body interactions + + const int jnum = d_numneigh_short[i]; + + F_FLOAT fxtmpi = 0.0; + F_FLOAT fytmpi = 0.0; + F_FLOAT fztmpi = 0.0; + + for (int jj = 0; jj < jnum; jj++) { + int j = d_neighbors_short(i, jj); + j &= NEIGHMASK; + const tagint jtag = tag[j]; + + const int jtype = type[j]; + + const X_FLOAT delx = xtmp - x(j, 0); + const X_FLOAT dely = ytmp - x(j, 1); + const X_FLOAT delz = ztmp - x(j, 2); + const F_FLOAT rsq = delx * delx + dely * dely + delz * delz; + + if (rsq >= d_cutsq(itype, jtype)) continue; + + const F_FLOAT rij = sqrt(rsq); + this->template twobody(itype, jtype, rij, evdwl, fpair); + + fpair = -fpair / rij; + + fxtmpi += delx * fpair; + fytmpi += dely * fpair; + fztmpi += delz * fpair; + a_f(j, 0) -= delx * fpair; + a_f(j, 1) -= dely * fpair; + a_f(j, 2) -= delz * fpair; + + if (EVFLAG) { + if (eflag) ev.evdwl += evdwl; + if (vflag_either || eflag_atom) + this->template ev_tally(ev, i, j, evdwl, fpair, delx, dely, delz); + } + } + + // 3-body interaction + // jth atom + const int jnumm1 = jnum - 1; + for (int jj = 0; jj < jnumm1; jj++) { + int j = d_neighbors_short(i, jj); + j &= NEIGHMASK; + const int jtype = type[j]; + del_rji[0] = x(j, 0) - xtmp; + del_rji[1] = x(j, 1) - ytmp; + del_rji[2] = x(j, 2) - ztmp; + F_FLOAT rij = sqrt(del_rji[0] * del_rji[0] + del_rji[1] * del_rji[1] + del_rji[2] * del_rji[2]); + + F_FLOAT fxtmpj = 0.0; + F_FLOAT fytmpj = 0.0; + F_FLOAT fztmpj = 0.0; + + for (int kk = jj + 1; kk < jnum; kk++) { + int k = d_neighbors_short(i, kk); + k &= NEIGHMASK; + const int ktype = type[k]; + + // Notice the order of d_min_cut_3b[i][j][k] + //In d_min_cut_3b[i][j][k], + //d_min_cut_3b[i][j][k][0] is the knot_vector along jk, + //d_min_cut_3b[i][j][k][1] is the knot_vector along ik, + //d_min_cut_3b[i][j][k][2] is the knot_vector along ij, + //see pair_uf3.cpp for more details + if (rij < d_min_cut_3b(itype, jtype, ktype, 2)) continue; + if (rij > d_cut_3b(itype, jtype, ktype)) continue; + + del_rki[0] = x(k, 0) - xtmp; + del_rki[1] = x(k, 1) - ytmp; + del_rki[2] = x(k, 2) - ztmp; + F_FLOAT rik = + sqrt(del_rki[0] * del_rki[0] + del_rki[1] * del_rki[1] + del_rki[2] * del_rki[2]); + + if (rik < d_min_cut_3b(itype, jtype, ktype, 1)) continue; + if (rik > d_cut_3b(itype, ktype, jtype)) continue; + + del_rkj[0] = x(k, 0) - x(j, 0); + del_rkj[1] = x(k, 1) - x(j, 1); + del_rkj[2] = x(k, 2) - x(j, 2); + F_FLOAT rjk = + sqrt(del_rkj[0] * del_rkj[0] + del_rkj[1] * del_rkj[1] + del_rkj[2] * del_rkj[2]); + if (rjk < d_min_cut_3b(itype, jtype, ktype, 0)) continue; + this->template threebody(itype, jtype, ktype, rij, rik, rjk, evdwl3, triangle_eval); + + fij[0] = *(triangle_eval + 0) * (del_rji[0] / rij); + fji[0] = -fij[0]; + fik[0] = *(triangle_eval + 1) * (del_rki[0] / rik); + fki[0] = -fik[0]; + fjk[0] = *(triangle_eval + 2) * (del_rkj[0] / rjk); + fkj[0] = -fjk[0]; + + fij[1] = *(triangle_eval + 0) * (del_rji[1] / rij); + fji[1] = -fij[1]; + fik[1] = *(triangle_eval + 1) * (del_rki[1] / rik); + fki[1] = -fik[1]; + fjk[1] = *(triangle_eval + 2) * (del_rkj[1] / rjk); + fkj[1] = -fjk[1]; + + fij[2] = *(triangle_eval + 0) * (del_rji[2] / rij); + fji[2] = -fij[2]; + fik[2] = *(triangle_eval + 1) * (del_rki[2] / rik); + fki[2] = -fik[2]; + fjk[2] = *(triangle_eval + 2) * (del_rkj[2] / rjk); + fkj[2] = -fjk[2]; + + Fj[0] = fji[0] + fjk[0]; + Fj[1] = fji[1] + fjk[1]; + Fj[2] = fji[2] + fjk[2]; + + Fk[0] = fki[0] + fkj[0]; + Fk[1] = fki[1] + fkj[1]; + Fk[2] = fki[2] + fkj[2]; + + fxtmpi += (fij[0] + fik[0]); + fytmpi += (fij[1] + fik[1]); + fztmpi += (fij[2] + fik[2]); + fxtmpj += Fj[0]; + fytmpj += Fj[1]; + fztmpj += Fj[2]; + a_f(k, 0) += Fk[0]; + a_f(k, 1) += Fk[1]; + a_f(k, 2) += Fk[2]; + + if (EVFLAG) { + if (eflag) { ev.evdwl += evdwl3; } + if (vflag_either || eflag_atom) { + this->template ev_tally3(ev, i, j, k, evdwl3, 0.0, Fj, Fk, del_rji, del_rki); + if (cvflag_atom) { + + F_FLOAT ric[3]; + ric[0] = THIRD * (-del_rji[0] - del_rki[0]); + ric[1] = THIRD * (-del_rji[1] - del_rki[1]); + ric[2] = THIRD * (-del_rji[2] - del_rki[2]); + a_cvatom(i, 0) += ric[0] * (-Fj[0] - Fk[0]); + a_cvatom(i, 1) += ric[1] * (-Fj[1] - Fk[1]); + a_cvatom(i, 2) += ric[2] * (-Fj[2] - Fk[2]); + a_cvatom(i, 3) += ric[0] * (-Fj[1] - Fk[1]); + a_cvatom(i, 4) += ric[0] * (-Fj[2] - Fk[2]); + a_cvatom(i, 5) += ric[1] * (-Fj[2] - Fk[2]); + a_cvatom(i, 6) += ric[1] * (-Fj[0] - Fk[0]); + a_cvatom(i, 7) += ric[2] * (-Fj[0] - Fk[0]); + a_cvatom(i, 8) += ric[2] * (-Fj[1] - Fk[1]); + + double rjc[3]; + rjc[0] = THIRD * (del_rji[0] - del_rkj[0]); + rjc[1] = THIRD * (del_rji[1] - del_rkj[1]); + rjc[2] = THIRD * (del_rji[2] - del_rkj[2]); + + a_cvatom(j, 0) += rjc[0] * Fj[0]; + a_cvatom(j, 1) += rjc[1] * Fj[1]; + a_cvatom(j, 2) += rjc[2] * Fj[2]; + a_cvatom(j, 3) += rjc[0] * Fj[1]; + a_cvatom(j, 4) += rjc[0] * Fj[2]; + a_cvatom(j, 5) += rjc[1] * Fj[2]; + a_cvatom(j, 6) += rjc[1] * Fj[0]; + a_cvatom(j, 7) += rjc[2] * Fj[0]; + a_cvatom(j, 8) += rjc[2] * Fj[1]; + + double rkc[3]; + rkc[0] = THIRD * (del_rki[0] + del_rkj[0]); + rkc[1] = THIRD * (del_rki[1] + del_rkj[1]); + rkc[2] = THIRD * (del_rki[2] + del_rkj[2]); + + a_cvatom(k, 0) += rkc[0] * Fk[0]; + a_cvatom(k, 1) += rkc[1] * Fk[1]; + a_cvatom(k, 2) += rkc[2] * Fk[2]; + a_cvatom(k, 3) += rkc[0] * Fk[1]; + a_cvatom(k, 4) += rkc[0] * Fk[2]; + a_cvatom(k, 5) += rkc[1] * Fk[2]; + a_cvatom(k, 6) += rkc[1] * Fk[0]; + a_cvatom(k, 7) += rkc[2] * Fk[0]; + a_cvatom(k, 8) += rkc[2] * Fk[1]; + } + } + } + } + a_f(j, 0) += fxtmpj; + a_f(j, 1) += fytmpj; + a_f(j, 2) += fztmpj; + } + + a_f(i, 0) += fxtmpi; + a_f(i, 1) += fytmpi; + a_f(i, 2) += fztmpi; +} + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, + const int &ii) const +{ + EV_FLOAT ev; + this->template operator()(TagPairUF3ComputeFullA(), ii, ev); +} + +/* ---------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, + const F_FLOAT &fpair, const F_FLOAT &delx, const F_FLOAT &dely, + const F_FLOAT &delz) const +{ + + // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, + // and neither for Serial + + auto a_eatom = escatter.access(); + auto a_vatom = vscatter.access(); + auto a_cvatom = cvscatter.access(); + + if (eflag_atom) { + const E_FLOAT epairhalf = 0.5 * epair; + a_eatom[i] += epairhalf; + a_eatom[j] += epairhalf; + } + + if (vflag_either) { + const E_FLOAT v0 = delx * delx * fpair; + const E_FLOAT v1 = dely * dely * fpair; + const E_FLOAT v2 = delz * delz * fpair; + const E_FLOAT v3 = delx * dely * fpair; + const E_FLOAT v4 = delx * delz * fpair; + const E_FLOAT v5 = dely * delz * fpair; + + if (vflag_global) { + ev.v[0] += v0; + ev.v[1] += v1; + ev.v[2] += v2; + ev.v[3] += v3; + ev.v[4] += v4; + ev.v[5] += v5; + } + + if (vflag_atom) { + a_vatom(i, 0) += 0.5 * v0; + a_vatom(i, 1) += 0.5 * v1; + a_vatom(i, 2) += 0.5 * v2; + a_vatom(i, 3) += 0.5 * v3; + a_vatom(i, 4) += 0.5 * v4; + a_vatom(i, 5) += 0.5 * v5; + + a_vatom(j, 0) += 0.5 * v0; + a_vatom(j, 1) += 0.5 * v1; + a_vatom(j, 2) += 0.5 * v2; + a_vatom(j, 3) += 0.5 * v3; + a_vatom(j, 4) += 0.5 * v4; + a_vatom(j, 5) += 0.5 * v5; + } + + if (cvflag_atom) { + a_cvatom(i, 0) += 0.5 * v0; + a_cvatom(i, 1) += 0.5 * v1; + a_cvatom(i, 2) += 0.5 * v2; + a_cvatom(i, 3) += 0.5 * v3; + a_cvatom(i, 4) += 0.5 * v4; + a_cvatom(i, 5) += 0.5 * v5; + a_cvatom(i, 6) += 0.5 * v3; + a_cvatom(i, 7) += 0.5 * v4; + a_cvatom(i, 8) += 0.5 * v5; + a_cvatom(j, 0) += 0.5 * v0; + a_cvatom(j, 1) += 0.5 * v1; + a_cvatom(j, 2) += 0.5 * v2; + a_cvatom(j, 3) += 0.5 * v3; + a_cvatom(j, 4) += 0.5 * v4; + a_cvatom(j, 5) += 0.5 * v5; + a_cvatom(j, 6) += 0.5 * v3; + a_cvatom(j, 7) += 0.5 * v4; + a_cvatom(j, 8) += 0.5 * v5; + } + } +} + +/* ---------------------------------------------------------------------- + tally eng_vdwl and virial into global and per-atom accumulators + called by SW and hbond potentials, newton_pair is always on + virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk + ------------------------------------------------------------------------- */ + +template +template +KOKKOS_INLINE_FUNCTION void +PairUF3Kokkos::ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, + const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, + F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const +{ + F_FLOAT epairthird, v[6]; + + // The eatom and vatom arrays are duplicated for OpenMP, atomic for CUDA, + // and neither for Serial + + auto a_eatom = escatter.access(); + auto a_vatom = vscatter.access(); + + if (eflag_atom) { + epairthird = THIRD * (evdwl + ecoul); + a_eatom[i] += epairthird; + a_eatom[j] += epairthird; + a_eatom[k] += epairthird; + } + + if (vflag_either) { + v[0] = drji[0] * fj[0] + drki[0] * fk[0]; + v[1] = drji[1] * fj[1] + drki[1] * fk[1]; + v[2] = drji[2] * fj[2] + drki[2] * fk[2]; + v[3] = drji[0] * fj[1] + drki[0] * fk[1]; + v[4] = drji[0] * fj[2] + drki[0] * fk[2]; + v[5] = drji[1] * fj[2] + drki[1] * fk[2]; + + if (vflag_global) { + ev.v[0] += v[0]; + ev.v[1] += v[1]; + ev.v[2] += v[2]; + ev.v[3] += v[3]; + ev.v[4] += v[4]; + ev.v[5] += v[5]; + } + + if (vflag_atom) { + a_vatom(i, 0) += THIRD * v[0]; + a_vatom(i, 1) += THIRD * v[1]; + a_vatom(i, 2) += THIRD * v[2]; + a_vatom(i, 3) += THIRD * v[3]; + a_vatom(i, 4) += THIRD * v[4]; + a_vatom(i, 5) += THIRD * v[5]; + + a_vatom(j, 0) += THIRD * v[0]; + a_vatom(j, 1) += THIRD * v[1]; + a_vatom(j, 2) += THIRD * v[2]; + a_vatom(j, 3) += THIRD * v[3]; + a_vatom(j, 4) += THIRD * v[4]; + a_vatom(j, 5) += THIRD * v[5]; + + a_vatom(k, 0) += THIRD * v[0]; + a_vatom(k, 1) += THIRD * v[1]; + a_vatom(k, 2) += THIRD * v[2]; + a_vatom(k, 3) += THIRD * v[3]; + a_vatom(k, 4) += THIRD * v[4]; + a_vatom(k, 5) += THIRD * v[5]; + } + } +} + +/* ---------------------------------------------------------------------- + tally eng_vdwl and virial into global and per-atom accumulators + called by SW and hbond potentials, newton_pair is always on + virial = riFi + rjFj + rkFk = (rj-ri) Fj + (rk-ri) Fk = drji*fj + drki*fk + ------------------------------------------------------------------------- */ + +template +template +void PairUF3Kokkos::copy_2d(V &d, T **h, int m, int n) +{ + Kokkos::View tmp("pair::tmp", m, n); //Create tmp view(array) on + //device memory + + //auto h_view = Kokkos::create_mirror_view(tmp); + auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device + //view(array) tmp, as deep_copy is only possible for mirror views + + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + h_view(i, j) = h[i][j]; //fill mirror + } + //views with data from normal array 'h' which always lives on host memory + } + + Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) + + d = tmp; +} + +template +template +void PairUF3Kokkos::copy_3d(V &d, T ***h, int m, int n, int o) +{ + Kokkos::View tmp("pair::tmp", m, n, o); //Create tmp view(array) on + //device memory + + //auto h_view = Kokkos::create_mirror_view(tmp); //create_mirror always copies + //the data. create_mirror_view only copies data if the host cannot access the + //data + auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device + //view(array) tmp, as deep_copy is only possible for mirror views + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + for (int k = 0; k < o; k++) { h_view(i, j, k) = h[i][j][k]; } //fill mirror + //views with data from normal array 'h' which always lives on host memory + } + } + + Kokkos::deep_copy(tmp, h_view); //Deepcopy data from h_view(host) to tmp(device) + + d = tmp; +} + +template +std::vector PairUF3Kokkos::get_constants(double *knots, double coefficient) +{ + + std::vector constants(16); + + constants[0] = coefficient * + (-pow(knots[0], 3) / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[1] = coefficient * + (3 * pow(knots[0], 2) / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[2] = coefficient * + (-3 * knots[0] / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[3] = coefficient * + (1 / + (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[3])); + constants[4] = coefficient * + (pow(knots[1], 2) * knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + pow(knots[0], 2) * knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * knots[1] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + constants[5] = coefficient * + (-pow(knots[1], 2) / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 2 * knots[1] * knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + pow(knots[0], 2) / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + 2 * knots[0] * knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * knots[1] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + knots[0] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + knots[1] * knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + constants[6] = coefficient * + (2 * knots[1] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + knots[4] / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) + + 2 * knots[0] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[2] / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + knots[1] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + knots[3] / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + constants[7] = coefficient * + (-1 / + (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + knots[2] * knots[3] * knots[4]) - + 1 / + (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - + knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + 1 / + (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + + pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + constants[8] = coefficient * + (-knots[0] * pow(knots[3], 2) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[1] * knots[3] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[2] * pow(knots[4], 2) / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + constants[9] = coefficient * + (2 * knots[0] * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + pow(knots[3], 2) / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + knots[1] * knots[3] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[3] * knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + 2 * knots[2] * knots[4] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) + + pow(knots[4], 2) / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + constants[10] = coefficient * + (-knots[0] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + 2 * knots[3] / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[1] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[3] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[4] / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[2] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) - + 2 * knots[4] / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + constants[11] = coefficient * + (1 / + (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + + knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - + knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + 1 / + (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - + knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + 1 / + (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + + pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + constants[12] = coefficient * + (pow(knots[4], 3) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + constants[13] = coefficient * + (-3 * pow(knots[4], 2) / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + constants[14] = coefficient * + (3 * knots[4] / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + constants[15] = coefficient * + (-1 / + (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + + knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + + knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + + pow(knots[4], 3))); + + return constants; +} + +template +std::vector PairUF3Kokkos::get_dnconstants(double *knots, double coefficient) +{ + std::vector constants(9); + + constants[0] = coefficient * + (pow(knots[0], 2) / + (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[1] = coefficient * + (-2 * knots[0] / + (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[2] = coefficient * + (1 / (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + constants[3] = coefficient * + (-knots[1] * knots[3] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + knots[0] * knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + constants[4] = coefficient * + (knots[1] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[3] / + (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + knots[0] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2)) + + knots[2] / + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + constants[5] = coefficient * + (-1 / (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + constants[6] = coefficient * + (pow(knots[3], 2) / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + constants[7] = coefficient * + (-2 * knots[3] / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + constants[8] = coefficient * + (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + + return constants; +} + +template +double PairUF3Kokkos::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, + double /*factor_coul*/, double factor_lj, double &fforce) +{ + double value = 0.0; + double r = sqrt(rsq); + int interaction_id = map2b(itype, jtype); + int start_index = 3; + while (r > d_n2b_knot(interaction_id, start_index + 1)) start_index++; + + if (r < d_cutsq(itype, jtype)) { + F_FLOAT r_values[4]; + r_values[0] = 1; + r_values[1] = r; + r_values[2] = r_values[1] * r_values[1]; + r_values[3] = r_values[2] * r_values[1]; + + // Calculate energy + value = constants_2b(interaction_id, start_index, 0); + value += r_values[1] * constants_2b(interaction_id, start_index, 1); + value += r_values[2] * constants_2b(interaction_id, start_index, 2); + value += r_values[3] * constants_2b(interaction_id, start_index, 3); + value += constants_2b(interaction_id, start_index - 1, 4); + value += r_values[1] * constants_2b(interaction_id, start_index - 1, 5); + value += r_values[2] * constants_2b(interaction_id, start_index - 1, 6); + value += r_values[3] * constants_2b(interaction_id, start_index - 1, 7); + value += constants_2b(interaction_id, start_index - 2, 8); + value += r_values[1] * constants_2b(interaction_id, start_index - 2, 9); + value += r_values[2] * constants_2b(interaction_id, start_index - 2, 10); + value += r_values[3] * constants_2b(interaction_id, start_index - 2, 11); + value += constants_2b(interaction_id, start_index - 3, 12); + value += r_values[1] * constants_2b(interaction_id, start_index - 3, 13); + value += r_values[2] * constants_2b(interaction_id, start_index - 3, 14); + value += r_values[3] * constants_2b(interaction_id, start_index - 3, 15); + + // Calculate force + fforce = dnconstants_2b(interaction_id, start_index - 1, 0); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 1, 1); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 1, 2); + fforce += dnconstants_2b(interaction_id, start_index - 2, 3); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 2, 4); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 2, 5); + fforce += dnconstants_2b(interaction_id, start_index - 3, 6); + fforce += r_values[1] * dnconstants_2b(interaction_id, start_index - 3, 7); + fforce += r_values[2] * dnconstants_2b(interaction_id, start_index - 3, 8); + } + + return factor_lj * value; +} + +namespace LAMMPS_NS { +template class PairUF3Kokkos; +#ifdef KOKKOS_ENABLE_CUDA +template class PairUF3Kokkos; +#endif +} // namespace LAMMPS_NS diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h new file mode 100644 index 0000000000..193c65d6de --- /dev/null +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -0,0 +1,199 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + * Contributing authors: Ajinkya Hire (U of Florida), + * Hendrik Kraß (U of Constance), + * Richard Hennig (U of Florida) + * ---------------------------------------------------------------------- */ + +#ifdef PAIR_CLASS +// clang-format off +PairStyle(uf3/kk,PairUF3Kokkos) +PairStyle(uf3/kk/device,PairUF3Kokkos) +// clang-format on +#else + +#ifndef LMP_PAIR_UF3_KOKKOS_H +#define LMP_PAIR_UF3_KOKKOS_H + +#include "kokkos.h" +#include "pair_kokkos.h" +#include "pair_uf3.h" + +template struct TagPairUF3ComputeFullA {}; +struct TagPairUF3ComputeShortNeigh {}; + +namespace LAMMPS_NS { + +template class PairUF3Kokkos : public PairUF3 { + public: + PairUF3Kokkos(class LAMMPS *); + ~PairUF3Kokkos() override; + void compute(int, int) override; + void settings(int, char **) override; + void coeff(int, char **) override; + void allocate(); + void init_style() override; + void init_list(int, class NeighList *) override; // needed for ptr to full neigh list + double init_one(int, int) override; // needed for cutoff radius for neighbour list + double single(int, int, int, int, double, double, double, double &) override; + + template void copy_2d(V &d, T **h, int m, int n); + template void copy_3d(V &d, T ***h, int m, int n, int o); + + template + KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, const int &, + EV_FLOAT &) const; + + template + KOKKOS_INLINE_FUNCTION void operator()(TagPairUF3ComputeFullA, + const int &) const; + + KOKKOS_INLINE_FUNCTION + void operator()(TagPairUF3ComputeShortNeigh, const int &) const; + + enum { EnabledNeighFlags = FULL }; + enum { COUL_FLAG = 0 }; + typedef DeviceType device_type; + typedef ArrayTypes AT; + typedef EV_FLOAT value_type; + + protected: + typename AT::tdual_ffloat_2d k_cutsq;//Create a DualView, defination of tdual_ffloat_2d in kokkos_type.h + typename AT::t_ffloat_2d d_cutsq; //t_ffloat_2d = t_dev ==> Creates a new View d_cutsq + //the type of d_cutsq is decided by the Device(not host) type for the DualView k_cutsq + //Meaning the memory location of d_cutsq is the same as the Device(not host) memory location of + //k_cutsq + typedef Kokkos::DualView tdual_ffloat_3d; + typedef Kokkos::DualView tdual_ffloat_4d; + tdual_ffloat_3d k_cut_3b; + tdual_ffloat_4d k_min_cut_3b; + typename tdual_ffloat_3d::t_dev d_cut_3b; + typename tdual_ffloat_4d::t_dev d_min_cut_3b; + template void destroy_3d(TYPE data, typename TYPE::value_type*** &array); + template void destroy_4d(TYPE data, typename TYPE::value_type**** &array); + Kokkos::View /*d_cutsq,*/ d_cut_3b_list; + //Kokkos::View d_cut_3b; + + Kokkos::View d_coefficients_2b; + Kokkos::View d_dncoefficients_2b; + Kokkos::View d_n2b_knot; + Kokkos::View d_n2b_knot_spacings; + Kokkos::View map2b; + Kokkos::View constants; + Kokkos::View dnconstants; + Kokkos::View d_n3b_knot_matrix; + Kokkos::View d_coefficients_3b; + Kokkos::View d_dncoefficients_3b; + Kokkos::View d_n3b_knot_spacings; + Kokkos::View d_n3b_knot_matrix_spacings; + Kokkos::View map3b; + + Kokkos::View constants_2b; + Kokkos::View dnconstants_2b; + Kokkos::View constants_3b; + Kokkos::View dnconstants_3b; + + std::vector get_constants(double *knots, double coefficient); + std::vector get_dnconstants(double *knots, double coefficient); + + int coefficients_created = 0; + void create_coefficients(); + void create_3b_coefficients(); + void create_2b_coefficients(); + std::vector get_coefficients(const double *knots, const double coefficient) const; + std::vector get_dncoefficients(const double *knots, const double coefficient) const; + + template + void twobody(const int itype, const int jtype, const F_FLOAT r, F_FLOAT &evdwl, + F_FLOAT &fpair) const; + template + void threebody(const int itype, const int jtype, const int ktype, const F_FLOAT value_rij, + const F_FLOAT value_rik, const F_FLOAT value_rjk, F_FLOAT &evdwl3, + F_FLOAT (&fforce)[3]) const; + + template + KOKKOS_INLINE_FUNCTION void + ev_tally(EV_FLOAT &ev, const int &i, const int &j, const F_FLOAT &epair, const F_FLOAT &fpair, + const F_FLOAT &delx, const F_FLOAT &dely, const F_FLOAT &delz) const; + + template + KOKKOS_INLINE_FUNCTION void ev_tally3(EV_FLOAT &ev, const int &i, const int &j, int &k, + const F_FLOAT &evdwl, const F_FLOAT &ecoul, F_FLOAT *fj, + F_FLOAT *fk, F_FLOAT *drji, F_FLOAT *drki) const; + + typename AT::t_x_array_randomread x; + typename AT::t_f_array f; + typename AT::t_tagint_1d tag; + typename AT::t_int_1d_randomread type; + + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; + + using ScatterFType = Kokkos::Experimental::ScatterView; + ScatterFType fscatter; + using ScatterVType = Kokkos::Experimental::ScatterView; + ScatterVType vscatter; + using ScatterCVType = Kokkos::Experimental::ScatterView; + ScatterCVType cvscatter; + using ScatterEType = Kokkos::Experimental::ScatterView; + ScatterEType escatter; + + typename AT::t_neighbors_2d d_neighbors; + typename AT::t_int_1d_randomread d_ilist; + typename AT::t_int_1d_randomread d_numneigh; + + int neighflag, newton_pair; + int nlocal, nall, eflag, vflag; + + int inum; + Kokkos::View d_neighbors_short; + Kokkos::View d_numneigh_short; + + friend void pair_virial_fdotr_compute(PairUF3Kokkos *); +}; + +KOKKOS_INLINE_FUNCTION int min(int i, int j) +{ + return i < j ? i : j; +} +KOKKOS_INLINE_FUNCTION int max(int i, int j) +{ + return i > j ? i : j; +} + +} // namespace LAMMPS_NS + +#endif +#endif + + /* ERROR/WARNING messages: + +E: Illegal ... command + +Self-explanatory. Check the input script syntax and compare to the +documentation for the command. You can use -echo screen as a +command-line option when running LAMMPS to see the offending line. + +E: Incorrect args for pair coefficients + +Self-explanatory. Check the input script or data file. + +*/ From 9a23ddf88aae911f03bb061d77fd3f3cd8864350 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:08:51 -0400 Subject: [PATCH 013/313] Added ml-uf3 to cmake and make files --- cmake/CMakeLists.txt | 1 + src/Makefile | 1 + 2 files changed, 2 insertions(+) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f87c92396f..def26bdfed 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -285,6 +285,7 @@ set(STANDARD_PACKAGES ML-RANN ML-SNAP ML-POD + ML-UF3 MOFFF MOLECULE MOLFILE diff --git a/src/Makefile b/src/Makefile index b9f1bcbdef..33d7012cae 100644 --- a/src/Makefile +++ b/src/Makefile @@ -104,6 +104,7 @@ PACKAGE = \ ml-quip \ ml-rann \ ml-snap \ + ml-uf3 \ mofff \ molfile \ netcdf \ From 923e251540a795a20e12cd63e6a91dbdc3f24082 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:10:01 -0400 Subject: [PATCH 014/313] Added documentation for ml-uf3 --- doc/src/pair_style.rst | 1 + doc/src/pair_uf3.rst | 186 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 doc/src/pair_uf3.rst diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 53bf269e1c..670ba3e6ec 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -381,6 +381,7 @@ accelerated styles exist. * :doc:`tracker ` - monitor information about pairwise interactions * :doc:`tri/lj ` - LJ potential between triangles * :doc:`ufm ` - +* :doc:`uf3 ` - UF3 machine-learning potential * :doc:`vashishta ` - Vashishta 2-body and 3-body potential * :doc:`vashishta/table ` - * :doc:`wf/cut ` - Wang-Frenkel Potential for short-ranged interactions diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst new file mode 100644 index 0000000000..2a6548dee9 --- /dev/null +++ b/doc/src/pair_uf3.rst @@ -0,0 +1,186 @@ +.. index:: pair_style uf3 +.. index:: pair_style uf3/kk + +pair_style uf3 command +====================== + +Accelerator Variants: *uf3/kk* + +Syntax +"""""" + +.. code-block:: LAMMPS + + pair_style style BodyFlag NumAtomType + +* style = *uf3* or *uf3/kk* + + .. parsed-literal:: + + BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values- 2 or 3 + NumAtomType = Number of atoms types in the simulation + + + +Examples +"""""""" + +.. code-block:: LAMMPS + + pair_style uf3 3 1 + pair_coeff 1 1 Nb_Nb + pair_coeff 3b 1 1 1 Nb_Nb_Nb + + pair_style uf3 2 2 + pair_coeff 1 1 Nb_Nb + pair_coeff 1 2 Nb_Sn + pair_coeff 2 2 Sn_Sn + + pair_style uf3 3 2 + pair_coeff 1 1 Nb_Nb + pair_coeff 1 2 Nb_Sn + pair_coeff 2 2 Sn_Sn + pair_style 3b 1 1 1 Nb_Nb_Nb + pair_style 3b 1 1 2 Nb_Nb_Sn + pair_style 3b 1 2 2 Nb_Sn_Sn + pair_style 3b 2 1 1 Sn_Nb_Nb + pair_style 3b 2 1 2 Sn_Nb_Sn + pair_style 3b 2 2 2 Sn_Sn_Sn + +Description +""""""""""" + +The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) ` potential, a machine-learning interatomic potential. In UF3, the total energy of the system is defined via two- and three-body interactions: + +.. math:: + + E & = \sum_{i,j} V_2(r_{ij}) + \sum_{i,j,k} V_3 (r_{ij},r_{ik},r_{jk}) + + V_2(r_{ij}) & = \sum_{n=0}^N c_n B_n(r_{ij}) + + V_3 (r_{ij},r_{ik},r_{jk}) & = \sum_{l=0}^N_l \sum_{m=0}^N_m \sum_{n=0}^N_n c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) + +where :math:`V_2(r_{ij})` and :math:`V_3 (r_{ij},r_{ik},r_{jk})` are the two- and three-body interactions, respectively. For the two-body the summation is over all neighbours J and for the three-body the summation is over all neighbors J and K of atom I within a cutoff distance determined from the potential files. :math:`B_n(r_{ij})` are the cubic bspline basis, :math:`c_n` and :math:`c_{l,m,n}` are the machine-learned interaction parameters and :math:`N`, :math:`N_l`, :math:`N_m`, and :math:`N_n` denote the number of basis functions per spline or tensor spline dimension. + +The UF3 LAMMPS potential files are provided using multiple pair_coeff commands. A single UF3 LAMMPS potential file contains information about one particular interaction only. + +.. note:: + + Unlike other MANYBODY and ML potentials in LAMMPS, the atom type for which the specified potential file should be used for is not determined from the potential file, but is rather determined from the user provided atom type numbers after pair_coeff. + +As an example, if a LAMMPS simulation contains 2 atom types (elements 'A' and 'B'), the pair_coeff command will be- + +.. code-block:: LAMMPS + + pair_style uf3 3 2 + pair_coeff 1 1 A_A + pair_coeff 1 2 A_B + pair_coeff 2 2 B_B + pair_coeff 3b 1 1 1 A_A_A + pair_coeff 3b 1 1 2 A_A_B + pair_coeff 3b 1 2 2 A_B_B + pair_coeff 3b 2 1 1 B_A_A + pair_coeff 3b 2 1 2 B_A_B + pair_coeff 3b 2 2 2 B_B_B + +If a value of "2" is specified in the :code:`pair_style uf3` command, only the two-body potential files are needed. For 3-body interaction the first atom type is the central atom. We recommend using the :code:`generate_uf3_lammps_pots.py` script (found `here `_) for generating the UF3 LAMMPS potential files from the UF3 JSON potentials. + +LAMMPS wild-card character "*" can also be used to specify a single UF3 LAMMPS potential file for multiple interaction. For example- + +.. code-block:: LAMMPS + + pair_style uf3 3 2 + pair_coeff * * A_A + pair_coeff 3b 1 * * A_A_A + pair_coeff 3b 2 * * B_B_B + +The file A_A will be used for 2-body interaction between atom types 1-1, 1-2 and 2-2; file A_A_A will be used 3-body interaction for atom types 1-1-1, 1-1-2, 1-2-2; and so on. Note, using a single interaction file for all types of interactions is **not** the recommended way of using :code:`pair_style uf3` and will often lead to **incorrect results**. + + +UF3 LAMMPS potential files in the *potentials* directory of the LAMMPS distribution have a ".uf3" suffix. All UF3 LAMMPS potential files should start with :code:`#UF3 POT` and end with :code:`#` characters. Following shows the format of a generic 2-body UF3 LAMMPS potential file- + +.. code-block:: LAMMPS + + #UF3 POT + 2B LEADING_TRIM TRAILING_TRIM + Rij_CUTOFF NUM_OF_KNOTS + BSPLINE_KNOTS + NUM_OF_COEFF + COEFF + # + +The second line indicates whether the potential file contains data for 2-body (:code:`2B`) or 3-body (:code:`3B`) interaction. This is followed by :code:`LEADING_TRIM` and :code:`TRAILING_TRIM` number on the same line. The current implementation is only tested for :code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`. If other values are used LAMMPS is terminated after issuing an error message. The :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described by the potential file. :code:`NUM_OF_KNOTS` is the number of knots (or the length of the knot vector) present on the very next line. The :code:`BSPLINE_KNOTS` line should contain all the knots in ascending order. :code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line. All the numbers in the BSPLINE_KNOTS and COEFF line should be space-separated. + +The format of a generic 3-body UF3 LAMMPS potential file is as follow- + +.. code-block:: LAMMPS + + #UF3 POT + 3B LEADING_TRIM TRAILING_TRIM + Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ + BSPLINE_KNOTS_FOR_JK + BSPLINE_KNOTS_FOR_IK + BSPLINE_KNOTS_FOR_IJ + SHAPE_OF_COEFF_MATRIX[I][J][K] + COEFF_MATRIX[0][0][K] + COEFF_MATRIX[0][1][K] + COEFF_MATRIX[0][2][K] + . + . + . + COEFF_MATRIX[1][0][K] + COEFF_MATRIX[1][1][K] + COEFF_MATRIX[1][2][K] + . + . + . + # + +Similar to the 2-body potential file, the third line sets the cutoffs and length of the knots. The cutoff distance between atom-type I and J is :code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and between J and K is :code:`Rjk_CUTOFF`. + +.. note:: + + The current implementation only works for UF3 potentials with cutoff distances for 3-body interactions that follows :code:`2Rij_CUTOFF=2Rik_CUTOFF=Rjk_CUTOFF` relation. + +The :code:`BSPLINE_KNOTS_FOR_JK`, :code:`BSPLINE_KNOTS_FOR_IK`, and :code:`BSPLINE_KNOTS_FOR_IJ` lines (note the order) contain the knots in increasing order for atoms J and K, I and K, and atoms I and J respectively. The number of knots is defined by the :code:`NUM_OF_KNOTS_*` characters in the previous line. +The shape of the coefficient matrix is defined on the :code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` line followed by the columns of the coefficient matrix, one per line, as shown above. For example, if the coefficient matrix has the shape of 8x8x13, then :code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` will be :code:`8 8 13` followed by 64 (8x8) lines each containing 13 coefficients seperated by space. + + +Mixing, shift, table, tail correction, restart, rRESPA info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file. + +This pair style does not support the :doc:`pair_modify ` shift, table, and tail options. + +This pair style does not write its information to :doc:`binary restart files `, since it is stored in potential files. + +This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the *inner*, *middle*, *outer* keywords. + +The single() function of 'uf3' pair style only return the 2-body interaction energy. + +Restrictions +"""""""""""" + +The 'uf3' pair style is part of the ML-UF3 package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. + +This pair style requires the :doc:`newton ` setting to be "on". + +The UF3 LAMMPS potential files provided with LAMMPS (see the potentials directory) are parameterized for metal :doc:`units `. + + +Related commands +"""""""""""""""" + +:doc:`pair_coeff ` + +Default +""""""" + +none + +---------- + +.. _Xie23: + +**(Xie23)** Xie, S.R., Rupp, M. & Hennig, R.G. Ultra-fast interpretable machine-learning potentials. npj Comput Mater 9, 162 (2023). https://doi.org/10.1038/s41524-023-01092-7 From a720d0dc6785cbc02ac466620945ec26d82cbbf0 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:10:31 -0400 Subject: [PATCH 015/313] Added ml-uf3 potential files --- potentials/A_A.uf3_pot | 7 +++ potentials/A_A_A.uf3_pot | 129 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 potentials/A_A.uf3_pot create mode 100644 potentials/A_A_A.uf3_pot diff --git a/potentials/A_A.uf3_pot b/potentials/A_A.uf3_pot new file mode 100644 index 0000000000..a50b48bae9 --- /dev/null +++ b/potentials/A_A.uf3_pot @@ -0,0 +1,7 @@ +#UF3 POT +2B 0 3 nk +8.0 31 +0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 +27 +79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 +# diff --git a/potentials/A_A_A.uf3_pot b/potentials/A_A_A.uf3_pot new file mode 100644 index 0000000000..18f79c3b8a --- /dev/null +++ b/potentials/A_A_A.uf3_pot @@ -0,0 +1,129 @@ +#UF3 POT +3B 0 3 nk +8.0 4.0 4.0 23 15 15 +0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +11 11 19 +-1.1790416072105636e-06 6.589114265858035e-08 2.1094970065385374e-06 4.7014910818419987e-07 8.288423734406254e-06 0.000186151370764668 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +9.36844864368356e-06 1.9223644807676324e-05 1.9979026246524356e-05 3.627062812549574e-05 9.775578281629195e-06 -5.894357549683858e-06 6.470814473155067e-07 2.31805322174729e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00013804169495254125 0.0012238504051117233 0.01461439973735456 0.010197731078827295 0.009003775355755566 0.030381456320656558 0.024785731678029766 0.004637019267552505 -0.005938106654005813 -0.002605150959220643 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.003917873880791907 -0.0007874629498581528 -2.4595030318112164e-05 -2.8508297646329816e-06 1.8504666071760445e-07 0.0001190800388356091 0.0035373487148805376 0.00037674157183609377 0.0012087894330956167 0.0009651695201594091 4.769364472898923e-05 0.0004612591073953361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0016181071043329578 0.003179470547568356 0.008661622548635572 0.011071785334468471 0.004294892778359652 0.0017845979744737465 0.0034643761195723064 0.015112039067322293 0.022192108732694595 0.008134230944897397 0.0007595380961610584 1.6727218309602107e-05 0.00012823915020345735 0.0001971442066043176 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.00018639122271027446 0.0034767153815636618 0.018231622622978436 0.0042988446466234575 0.05300133577632108 0.7250033316881788 0.4935009383219143 0.42606157195551264 1.5039118559972142 1.2303936880370434 0.22548363428435172 -0.30298333788301807 -0.13073656424500055 -0.010403074319359695 0.005059645288601829 0.0015181780063355998 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.011510449622067839 -0.0007610595804959427 1.0172131902385016e-05 0.00448473230635448 0.2199020425072735 0.07466247888373397 0.21339517449435372 0.013531084627798973 0.04473458040783101 0.2378714243611067 0.10478901497777 0.37112701147924365 0.27817806337533985 -0.2385293501359752 -0.33578482057600856 -0.004009555340792723 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +-0.0008465335016788498 -9.208409992139663e-05 -1.1210629044433908e-05 0.004300763141885697 0.1800503541691201 0.016819879476467067 0.060737350690215776 0.042330087306607714 0.0007006095666399378 0.02251352126872946 0.011185142175963118 -0.02716513333374441 0.00952941322650142 0.02210443704516212 0.07011148238258197 0.057840211345517194 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +# From 5c536c82907fa2ad0b58ce7fbd028206e96c5cce Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 12:11:05 -0400 Subject: [PATCH 016/313] Added ml-uf3 unittest --- unittest/force-styles/tests/A_A.uf3_pot | 7 + unittest/force-styles/tests/A_A_A.uf3_pot | 129 ++++++++++++++ .../force-styles/tests/manybody-pair-uf3.yaml | 159 ++++++++++++++++++ 3 files changed, 295 insertions(+) create mode 100644 unittest/force-styles/tests/A_A.uf3_pot create mode 100644 unittest/force-styles/tests/A_A_A.uf3_pot create mode 100644 unittest/force-styles/tests/manybody-pair-uf3.yaml diff --git a/unittest/force-styles/tests/A_A.uf3_pot b/unittest/force-styles/tests/A_A.uf3_pot new file mode 100644 index 0000000000..a50b48bae9 --- /dev/null +++ b/unittest/force-styles/tests/A_A.uf3_pot @@ -0,0 +1,7 @@ +#UF3 POT +2B 0 3 nk +8.0 31 +0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 +27 +79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 +# diff --git a/unittest/force-styles/tests/A_A_A.uf3_pot b/unittest/force-styles/tests/A_A_A.uf3_pot new file mode 100644 index 0000000000..18f79c3b8a --- /dev/null +++ b/unittest/force-styles/tests/A_A_A.uf3_pot @@ -0,0 +1,129 @@ +#UF3 POT +3B 0 3 nk +8.0 4.0 4.0 23 15 15 +0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +11 11 19 +-1.1790416072105636e-06 6.589114265858035e-08 2.1094970065385374e-06 4.7014910818419987e-07 8.288423734406254e-06 0.000186151370764668 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +9.36844864368356e-06 1.9223644807676324e-05 1.9979026246524356e-05 3.627062812549574e-05 9.775578281629195e-06 -5.894357549683858e-06 6.470814473155067e-07 2.31805322174729e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00013804169495254125 0.0012238504051117233 0.01461439973735456 0.010197731078827295 0.009003775355755566 0.030381456320656558 0.024785731678029766 0.004637019267552505 -0.005938106654005813 -0.002605150959220643 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.003917873880791907 -0.0007874629498581528 -2.4595030318112164e-05 -2.8508297646329816e-06 1.8504666071760445e-07 0.0001190800388356091 0.0035373487148805376 0.00037674157183609377 0.0012087894330956167 0.0009651695201594091 4.769364472898923e-05 0.0004612591073953361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0016181071043329578 0.003179470547568356 0.008661622548635572 0.011071785334468471 0.004294892778359652 0.0017845979744737465 0.0034643761195723064 0.015112039067322293 0.022192108732694595 0.008134230944897397 0.0007595380961610584 1.6727218309602107e-05 0.00012823915020345735 0.0001971442066043176 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.00018639122271027446 0.0034767153815636618 0.018231622622978436 0.0042988446466234575 0.05300133577632108 0.7250033316881788 0.4935009383219143 0.42606157195551264 1.5039118559972142 1.2303936880370434 0.22548363428435172 -0.30298333788301807 -0.13073656424500055 -0.010403074319359695 0.005059645288601829 0.0015181780063355998 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.011510449622067839 -0.0007610595804959427 1.0172131902385016e-05 0.00448473230635448 0.2199020425072735 0.07466247888373397 0.21339517449435372 0.013531084627798973 0.04473458040783101 0.2378714243611067 0.10478901497777 0.37112701147924365 0.27817806337533985 -0.2385293501359752 -0.33578482057600856 -0.004009555340792723 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +-0.0008465335016788498 -9.208409992139663e-05 -1.1210629044433908e-05 0.004300763141885697 0.1800503541691201 0.016819879476467067 0.060737350690215776 0.042330087306607714 0.0007006095666399378 0.02251352126872946 0.011185142175963118 -0.02716513333374441 0.00952941322650142 0.02210443704516212 0.07011148238258197 0.057840211345517194 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +# diff --git a/unittest/force-styles/tests/manybody-pair-uf3.yaml b/unittest/force-styles/tests/manybody-pair-uf3.yaml new file mode 100644 index 0000000000..8ba4a24e44 --- /dev/null +++ b/unittest/force-styles/tests/manybody-pair-uf3.yaml @@ -0,0 +1,159 @@ +--- +lammps_version: 24 Mar 2022 +tags: generated +date_generated: Tue Nov 28 14:51:03 2023 +epsilon: 1e-09 +skip_tests: +prerequisites: ! | + pair uf3 +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on + variable newton_bond delete +post_commands: ! "" +input_file: in.manybody +pair_style: uf3 3 8 +pair_coeff: ! | + * * A_A.uf3_pot + 3b * * * A_A_A.uf3_pot +extract: ! "" +natoms: 64 +init_vdwl: -76.14388662099438 +init_coul: 0 +init_stress: ! |2- + 3.1223073343802071e+02 3.1503555484293474e+02 3.2087032195384182e+02 -5.2677023646012433e+00 4.1046361968856566e+01 -2.2705704820012654e-01 +init_forces: ! |2 + 1 -1.0963106297354930e+00 1.9921565797217811e+00 2.0176595423650685e+00 + 2 -2.5744974244934786e+00 8.6065313692841872e-01 -1.3343920771683084e+00 + 3 -7.5762202587571881e-01 -5.1086473746213934e-01 1.7774798100697495e+00 + 4 -1.2651178900120015e+00 2.5481168050091734e+00 1.0332353551246649e+00 + 5 -3.3301075059618213e-02 -8.6936885426915711e-01 -8.0361144939346540e-01 + 6 5.9576544655966956e-02 -5.7569733665007693e-02 -2.5260577270195245e-01 + 7 -7.8223973805485159e-01 -1.5872724248886485e+00 -4.0690678808175756e-01 + 8 1.2837377243355602e-01 6.8616887866365453e-02 3.9279992110159728e-02 + 9 1.3013607224018784e+00 -2.2234802020121042e-01 -2.5820065882172409e+00 + 10 -3.5389541898719123e-01 1.0418734269769769e+00 -6.7534263859128518e-01 + 11 1.5048713773196754e+00 -1.1607474819622305e+00 -4.1343086960946002e-01 + 12 -3.8382036374205457e+00 -1.8953194768009614e+00 -1.5975045274049304e+00 + 13 -5.1243974635480005e-01 2.8005048190722506e+00 -8.5188627697957486e-01 + 14 -4.3260615266171099e-01 1.7104546503175775e+00 4.8896255947620082e-01 + 15 -2.1729171109783061e+00 1.9610148525080886e+00 -1.7550881080125238e+00 + 16 1.3063694982664014e+00 4.0801741093678640e-01 3.3816303090167859e+00 + 17 1.0103076935514768e+00 1.3062727533124225e+00 -3.0591856171743643e+00 + 18 6.6364797168941592e-01 1.3269858177825717e+00 1.0859880651465830e+00 + 19 -4.3237772669504843e-01 1.5179601478654310e+00 -8.9399081937433889e-01 + 20 -4.1109776137187977e+00 4.8942123015814726e-01 3.0324705210921541e-02 + 21 1.0443613152888414e+00 -2.7611218991110009e-01 -3.2334333893456133e+00 + 22 -3.8840635954358733e+00 1.8543888965122868e+00 -2.7044170995178298e+00 + 23 6.4824470795616951e-01 1.1930964693491897e+00 2.3472683895454201e+00 + 24 5.6518885203578750e-01 8.9024666222906623e-01 9.9558410495963645e-01 + 25 -2.3884920507811258e-01 -1.2236748552119361e-01 9.6166740424011798e-04 + 26 -9.4060753459907698e-01 -2.9688412181022056e-01 6.7007032584453752e-01 + 27 5.0390685311588923e-01 -5.8477364114704944e-01 1.6320689076693460e+00 + 28 -8.1564347181637331e-01 1.9951358496458818e-01 3.2879220126777038e+00 + 29 -1.6141037582891811e+00 3.7621933923780954e-01 5.6865013193370151e-01 + 30 -1.2051389982059610e+00 6.5471000907223187e-02 4.6548238063076404e-02 + 31 -8.3799333021355227e-01 -4.3387478264068147e-01 -3.4488785440063413e-01 + 32 -1.8712481645378094e+00 3.1431436055998407e-02 1.1920833582466677e+00 + 33 2.1132311819974756e+00 -7.8762333052322075e-01 2.9319369786200289e+00 + 34 -7.4212669325944880e-01 1.5089695276247311e-01 6.4837671979385259e-01 + 35 4.7876606586762549e-01 -5.2894027298845681e-01 6.5312176822087242e-01 + 36 9.4335406181387005e-01 -7.7270400013223828e-01 4.8506498341757304e-01 + 37 -6.9776523536821422e-01 1.5814045923629079e+00 -1.7145687025150753e+00 + 38 8.3390581678419395e-01 -2.3460369438656256e-01 -8.1845978792256724e-01 + 39 7.9082785819764490e-01 -1.4014821253885934e+00 -3.6171284136791626e+00 + 40 1.5528260681499937e+00 -1.9423308463414859e+00 2.7454733155675826e-01 + 41 1.6230449781222470e-01 4.0254440068393893e-01 -1.0728426614941826e+00 + 42 -2.5760797297848943e+00 -2.3727612877133377e+00 -7.3694736943877159e-01 + 43 -1.4658113294445060e-01 -3.7059450064886161e+00 -2.2611910919567893e-01 + 44 2.6125365540590240e+00 -2.0393457867642488e+00 -1.7353429519549574e-01 + 45 9.1508218547652620e-01 3.2090468646350390e-01 -1.3730810235354041e+00 + 46 -1.2861926535120600e+00 -1.8325412123528377e+00 2.7409156132103112e+00 + 47 5.2214882788544981e-01 9.0702150750152088e-02 1.3758849361839385e+00 + 48 8.7060691872545093e-01 1.0333012026994193e+00 -8.8450736609033931e-01 + 49 1.6921455867723978e-01 -3.2865843167979367e+00 -2.3941507623279072e+00 + 50 1.3029435213640246e+00 1.1566980491369294e+00 -7.8373321422495534e-02 + 51 1.7782167191801962e-01 3.5869618077998595e+00 2.1417753790319543e+00 + 52 3.4939214706481048e+00 -2.4127970289820255e+00 4.1443505260596725e+00 + 53 4.5955988135622799e-01 1.4913218496577223e+00 1.3076728090591363e+00 + 54 7.0400726037068106e-01 -9.4898269328552198e-01 -7.0340401843204670e-01 + 55 1.1319661424097816e+00 -2.3442414589969114e+00 -7.7166661047173946e-01 + 56 7.7292681497946214e-01 5.4202239892193216e-01 -1.0429033367200278e+00 + 57 1.1664627895682855e+00 1.9743121270468009e-01 -3.8302192241786348e-01 + 58 1.3342985230821185e+00 -2.6808564460978351e-01 -9.3875599645237040e-01 + 59 2.1547446695381884e+00 2.5922697594917221e-01 5.5883175680123842e-01 + 60 -1.1202730918333845e+00 -4.0836109063032069e+00 -3.1463158656990915e+00 + 61 7.5258775499505959e-01 1.4742795022217277e+00 -2.2056849646259416e-01 + 62 -2.1194607090574338e+00 9.6304617778841872e-01 -5.8648933450219842e-01 + 63 2.2116847362243819e+00 -6.9485816680348522e-01 -1.2888780585377166e+00 + 64 2.0946943533672595e+00 1.7817828615230797e+00 5.2222100516662051e+00 +run_vdwl: -76.1335425447406 +run_coul: 0 +run_stress: ! |2- + 3.1227357278065733e+02 3.1510436259931976e+02 3.2097655273455166e+02 -5.2932374901106582e+00 4.0956468170617640e+01 1.5018802669860862e-01 +run_forces: ! |2 + 1 -1.1136068191144672e+00 1.9868928531451695e+00 2.0284715885889444e+00 + 2 -2.5718148688418596e+00 8.3532761170683545e-01 -1.3404690568364115e+00 + 3 -7.6676194475345183e-01 -5.0716795928532021e-01 1.7997537336742999e+00 + 4 -1.2720923579033645e+00 2.5419855255447907e+00 1.0258862987566395e+00 + 5 -4.3524258688024453e-02 -8.8004954612209696e-01 -7.9382095260610019e-01 + 6 8.9678254474529928e-02 -5.0742940694548030e-02 -2.4348008365156723e-01 + 7 -7.7364435925734953e-01 -1.5558296160053275e+00 -4.2051790182009818e-01 + 8 1.1143851887986839e-01 7.2497057799814191e-02 3.6624183488660304e-02 + 9 1.2839141188983776e+00 -2.4381166390795905e-01 -2.5926851536420066e+00 + 10 -3.6606370803571597e-01 1.0472513106007628e+00 -6.5579353351390024e-01 + 11 1.4796344435746969e+00 -1.1469564140842350e+00 -4.2766370678100751e-01 + 12 -3.8341194520315707e+00 -1.8877013457658414e+00 -1.5901839974079914e+00 + 13 -4.6650968579193675e-01 2.7962961910932282e+00 -8.2237329615475063e-01 + 14 -4.5362402854231521e-01 1.7048830533652388e+00 4.9165017205992945e-01 + 15 -2.1790730324228798e+00 1.9552241266001966e+00 -1.7453842965710837e+00 + 16 1.3028733875052598e+00 4.1039519382071737e-01 3.3783851223727419e+00 + 17 1.0049330607671125e+00 1.3021263787131616e+00 -3.0544446010601831e+00 + 18 6.3052176771903379e-01 1.3324251901771336e+00 1.0977786571785106e+00 + 19 -4.5964705284123741e-01 1.4850585747490403e+00 -8.9955925151919691e-01 + 20 -4.0843338981113764e+00 4.6843741575982639e-01 4.6947857407657889e-03 + 21 1.0581909871649149e+00 -2.9084634536392007e-01 -3.2540160500533157e+00 + 22 -3.8927799316015426e+00 1.8587085622785937e+00 -2.7125312751977178e+00 + 23 6.6350903350923252e-01 1.1973095378961089e+00 2.3524290511459478e+00 + 24 5.7143336751982488e-01 8.7715571174154605e-01 9.9432218349388102e-01 + 25 -2.4703347062300032e-01 -1.2710986429222224e-01 -1.5749033311971992e-02 + 26 -9.3451713960198701e-01 -2.7778133649821901e-01 6.6713867661147919e-01 + 27 4.9808843860149610e-01 -5.8536464204160887e-01 1.6301914265685915e+00 + 28 -8.2771277475903027e-01 2.1570720428840873e-01 3.2880151472957344e+00 + 29 -1.6048620343875755e+00 3.8486480806372897e-01 5.6967398899129529e-01 + 30 -1.1973961350199096e+00 5.1593120685595580e-02 4.1293831832017062e-02 + 31 -8.4115448475027121e-01 -4.4444260925279200e-01 -3.3858426829044269e-01 + 32 -1.8597577591090164e+00 1.2810085646854485e-02 1.1797889462030640e+00 + 33 2.1159519472471811e+00 -7.8729199670032701e-01 2.9290939088097181e+00 + 34 -7.4188497270023746e-01 1.5645497560825464e-01 6.6033973957472436e-01 + 35 4.8203360935099837e-01 -5.2533146218590032e-01 6.5589135580856639e-01 + 36 9.4037223416537397e-01 -7.6094150822319195e-01 4.5734538655438040e-01 + 37 -6.9906373360474205e-01 1.5746536313295925e+00 -1.7263112595330459e+00 + 38 8.5615988284237132e-01 -2.2431722964535125e-01 -8.0332888328255958e-01 + 39 7.8065137836247200e-01 -1.3983715176027893e+00 -3.6344006191116991e+00 + 40 1.5756754145077525e+00 -1.9548680562354619e+00 2.4171639489710248e-01 + 41 1.7946227297557377e-01 4.1626928569421628e-01 -1.0542445180049111e+00 + 42 -2.5855819286639807e+00 -2.3809591696792194e+00 -7.5444018878363772e-01 + 43 -1.5651979567151933e-01 -3.7133196766462597e+00 -2.3417783002479109e-01 + 44 2.6088788324017109e+00 -2.0370826629544276e+00 -1.7748087222007777e-01 + 45 9.0750981150111454e-01 3.1320571808181447e-01 -1.3570279945304848e+00 + 46 -1.2844641842483453e+00 -1.8271514736854049e+00 2.7652384797305016e+00 + 47 5.2355177969578193e-01 9.5756521123463834e-02 1.3725765177085687e+00 + 48 8.7731662768264451e-01 1.0414860079651591e+00 -9.0032888888892382e-01 + 49 1.4644557239036082e-01 -3.3233388609839873e+00 -2.4250592659007468e+00 + 50 1.3159886335597091e+00 1.1534831728413786e+00 -7.9023436269654135e-02 + 51 1.5810961991408728e-01 3.6227053406802825e+00 2.1622129324293375e+00 + 52 3.5238822669377128e+00 -2.4112486219526210e+00 4.1691651240037055e+00 + 53 4.6279178075715538e-01 1.5349821135997805e+00 1.3624008261786760e+00 + 54 7.0473247201702627e-01 -9.3593778743269240e-01 -7.0089892988315006e-01 + 55 1.1161312397801737e+00 -2.3385526086116117e+00 -7.5151515336312336e-01 + 56 7.6996392118239054e-01 5.3225925152027631e-01 -1.0367667800909899e+00 + 57 1.1705705890031866e+00 1.9234764366836088e-01 -3.8394944778612211e-01 + 58 1.3292217712869172e+00 -2.6420177775466325e-01 -9.5699172084102668e-01 + 59 2.1842122534627268e+00 2.6220494593377625e-01 5.4393643560229021e-01 + 60 -1.1457317620961742e+00 -4.1194027577964150e+00 -3.1920012226137322e+00 + 61 7.5501968427331045e-01 1.4824037577796831e+00 -2.0845605296052469e-01 + 62 -2.1181153169676303e+00 9.6226604332888710e-01 -5.7042120154066434e-01 + 63 2.2161829432347631e+00 -7.0548049758710407e-01 -1.3062673143062038e+00 + 64 2.1263589729936818e+00 1.8281740261598369e+00 5.2543331430537403e+00 +... From d55f750dc650e869c0cde744abffb07beec92406 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire <48733363+monk-04@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:17:43 -0400 Subject: [PATCH 017/313] Fixed typos in the UF3 equation --- doc/src/pair_uf3.rst | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index 2a6548dee9..c6fea0136c 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -54,11 +54,9 @@ The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) ` potent .. math:: - E & = \sum_{i,j} V_2(r_{ij}) + \sum_{i,j,k} V_3 (r_{ij},r_{ik},r_{jk}) - - V_2(r_{ij}) & = \sum_{n=0}^N c_n B_n(r_{ij}) - - V_3 (r_{ij},r_{ik},r_{jk}) & = \sum_{l=0}^N_l \sum_{m=0}^N_m \sum_{n=0}^N_n c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) + E & = \sum_{i,j} V_2(r_{ij}) + \sum_{i,j,k} V_3 (r_{ij},r_{ik},r_{jk}) \\ + V_2(r_{ij}) & = \sum_{n=0}^N c_n B_n(r_{ij}) \\ + V_3 (r_{ij},r_{ik},r_{jk}) & = \sum_{l=0}^{N_l} \sum_{m=0}^{N_m} \sum_{n=0}^{N_n} c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) where :math:`V_2(r_{ij})` and :math:`V_3 (r_{ij},r_{ik},r_{jk})` are the two- and three-body interactions, respectively. For the two-body the summation is over all neighbours J and for the three-body the summation is over all neighbors J and K of atom I within a cutoff distance determined from the potential files. :math:`B_n(r_{ij})` are the cubic bspline basis, :math:`c_n` and :math:`c_{l,m,n}` are the machine-learned interaction parameters and :math:`N`, :math:`N_l`, :math:`N_m`, and :math:`N_n` denote the number of basis functions per spline or tensor spline dimension. From de43263e2872e5e1d663ae41703b0a3a6cd6cf96 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 17:18:11 -0400 Subject: [PATCH 018/313] Fixed lammps developer email-id and contributing authors section. Removed some old comments --- src/KOKKOS/pair_uf3_kokkos.cpp | 11 ++++++----- src/KOKKOS/pair_uf3_kokkos.h | 11 ++++++----- src/ML-UF3/pair_uf3.cpp | 11 ++++++----- src/ML-UF3/pair_uf3.h | 11 ++++++----- src/ML-UF3/uf3_bspline_basis2.cpp | 14 ++++++++++++++ src/ML-UF3/uf3_bspline_basis2.h | 19 +++++++++++++------ src/ML-UF3/uf3_bspline_basis3.cpp | 14 ++++++++++++++ src/ML-UF3/uf3_bspline_basis3.h | 20 ++++++++++++++------ src/ML-UF3/uf3_pair_bspline.cpp | 13 +++++++++++++ src/ML-UF3/uf3_pair_bspline.h | 11 ++++------- src/ML-UF3/uf3_triplet_bspline.cpp | 13 +++++++++++++ src/ML-UF3/uf3_triplet_bspline.h | 6 ++++-- 12 files changed, 113 insertions(+), 41 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index dbcdd22e3d..aeab64a536 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -1,7 +1,7 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 @@ -12,10 +12,11 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - * Contributing authors: Ajinkya Hire (U of Florida), - * Hendrik Kraß (U of Constance), - * Richard Hennig (U of Florida) - * ---------------------------------------------------------------------- */ + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ #include "pair_uf3_kokkos.h" diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index 193c65d6de..aacd074e54 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -1,7 +1,7 @@ /* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 @@ -12,10 +12,11 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - * Contributing authors: Ajinkya Hire (U of Florida), - * Hendrik Kraß (U of Constance), - * Richard Hennig (U of Florida) - * ---------------------------------------------------------------------- */ + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ #ifdef PAIR_CLASS // clang-format off diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 4188c51ac0..946c7bbc4a 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -1,7 +1,7 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 @@ -12,10 +12,11 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - * Contributing authors: Ajinkya Hire (U of Florida), - * Hendrik Kraß (U of Constance), - * Richard Hennig (U of Florida) - * ---------------------------------------------------------------------- */ + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ #include "pair_uf3.h" #include "uf3_pair_bspline.h" diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 54f0e7e2e4..eaa16c745c 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -1,7 +1,7 @@ /* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 @@ -12,10 +12,11 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - * Contributing authors: Ajinkya Hire(U of Florida), - * Hendrik Kraß (U of Constance), - * Richard Hennig (U of Florida) - * ---------------------------------------------------------------------- */ + Contributing author: Ajinkya Hire (Univ. of Florida), + Hendrik Kraß (Univ. of Constance), + Matthias Rupp (Luxembourg Institute of Science and Technology), + Richard Hennig (Univ of Florida) +---------------------------------------------------------------------- */ #ifdef PAIR_CLASS // clang-format off diff --git a/src/ML-UF3/uf3_bspline_basis2.cpp b/src/ML-UF3/uf3_bspline_basis2.cpp index 8ae1991ce2..fb345cc10b 100644 --- a/src/ML-UF3/uf3_bspline_basis2.cpp +++ b/src/ML-UF3/uf3_bspline_basis2.cpp @@ -1,3 +1,17 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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 "uf3_bspline_basis2.h" #include "utils.h" diff --git a/src/ML-UF3/uf3_bspline_basis2.h b/src/ML-UF3/uf3_bspline_basis2.h index 8551b097b1..423a366fe0 100644 --- a/src/ML-UF3/uf3_bspline_basis2.h +++ b/src/ML-UF3/uf3_bspline_basis2.h @@ -1,9 +1,16 @@ -//De Boor's algorithm @ -//https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html -//For values outside the domain, -//extrapoltaes the left(right) hand side piece of the curve -//Only works for bspline degree upto 3 becuase of definiation of P -// +// clang-format off +/* ---------------------------------------------------------------------- + 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 "pointers.h" #include diff --git a/src/ML-UF3/uf3_bspline_basis3.cpp b/src/ML-UF3/uf3_bspline_basis3.cpp index f66ac0d1dc..0778ae82a3 100644 --- a/src/ML-UF3/uf3_bspline_basis3.cpp +++ b/src/ML-UF3/uf3_bspline_basis3.cpp @@ -1,3 +1,17 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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 "uf3_bspline_basis3.h" #include "utils.h" diff --git a/src/ML-UF3/uf3_bspline_basis3.h b/src/ML-UF3/uf3_bspline_basis3.h index d29d9b08f1..676c8da453 100644 --- a/src/ML-UF3/uf3_bspline_basis3.h +++ b/src/ML-UF3/uf3_bspline_basis3.h @@ -1,9 +1,17 @@ -//De Boor's algorithm @ -//https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html -//For values outside the domain, -//extrapoltaes the left(right) hand side piece of the curve -//Only works for bspline degree upto 3 becuase of definiation of P -// +// clang-format off +/* ---------------------------------------------------------------------- + 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 "pointers.h" #include diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp index d4c14284f8..b2fab151b1 100644 --- a/src/ML-UF3/uf3_pair_bspline.cpp +++ b/src/ML-UF3/uf3_pair_bspline.cpp @@ -1,3 +1,16 @@ +/* ---------------------------------------------------------------------- + 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 "uf3_pair_bspline.h" #include "uf3_bspline_basis2.h" diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h index aa3f1e8c40..4bd4a618b9 100644 --- a/src/ML-UF3/uf3_pair_bspline.h +++ b/src/ML-UF3/uf3_pair_bspline.h @@ -1,19 +1,16 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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. ------------------------------------------------------------------------- */ -// De Boor's algorithm @ -// https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/de-Boor.html -// For values outside the domain, it exhibits undefined behavior. -// Uses fixed B-Spline degree 3. - #include "pointers.h" #include "uf3_bspline_basis2.h" diff --git a/src/ML-UF3/uf3_triplet_bspline.cpp b/src/ML-UF3/uf3_triplet_bspline.cpp index 6c5a5a19e7..d9199d301c 100644 --- a/src/ML-UF3/uf3_triplet_bspline.cpp +++ b/src/ML-UF3/uf3_triplet_bspline.cpp @@ -1,3 +1,16 @@ +/* ---------------------------------------------------------------------- + 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 "uf3_triplet_bspline.h" #include "error.h" #include diff --git a/src/ML-UF3/uf3_triplet_bspline.h b/src/ML-UF3/uf3_triplet_bspline.h index f5cf6a1b92..6c560d8d7e 100644 --- a/src/ML-UF3/uf3_triplet_bspline.h +++ b/src/ML-UF3/uf3_triplet_bspline.h @@ -1,11 +1,13 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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. ------------------------------------------------------------------------- */ From 06c4fc6590592bedbf73f068c34db56e6084f2ee Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 17:23:47 -0400 Subject: [PATCH 019/313] Removed LAMMPS errordocs --- src/KOKKOS/pair_uf3_kokkos.h | 13 ------------- src/ML-UF3/pair_uf3.h | 13 ------------- 2 files changed, 26 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.h b/src/KOKKOS/pair_uf3_kokkos.h index aacd074e54..15c2832da1 100644 --- a/src/KOKKOS/pair_uf3_kokkos.h +++ b/src/KOKKOS/pair_uf3_kokkos.h @@ -185,16 +185,3 @@ KOKKOS_INLINE_FUNCTION int max(int i, int j) #endif #endif - /* ERROR/WARNING messages: - -E: Illegal ... command - -Self-explanatory. Check the input script syntax and compare to the -documentation for the command. You can use -echo screen as a -command-line option when running LAMMPS to see the offending line. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -*/ diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index eaa16c745c..79627e0def 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -74,16 +74,3 @@ class PairUF3 : public Pair { #endif #endif -/* ERROR/WARNING messages: - -E: Illegal ... command - -Self-explanatory. Check the input script syntax and compare to the -documentation for the command. You can use -echo screen as a -command-line option when running LAMMPS to see the offending line. - -E: Incorrect args for pair coefficients - -Self-explanatory. Check the input script or data file. - -*/ From b2809996b8ab04754bc2d146d709809009a653ff Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 25 Mar 2024 17:45:06 -0400 Subject: [PATCH 020/313] fixed trailing whitespaces --- doc/src/pair_uf3.rst | 2 +- src/KOKKOS/pair_uf3_kokkos.cpp | 26 +++++++------- src/ML-UF3/pair_uf3.cpp | 62 ++++++++++++++++---------------- src/ML-UF3/uf3_pair_bspline.cpp | 10 +++--- src/ML-UF3/uf3_pair_bspline.h | 2 +- src/ML-UF3/uf3_triplet_bspline.h | 2 +- 6 files changed, 52 insertions(+), 52 deletions(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index c6fea0136c..c4c9a5b31f 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -83,7 +83,7 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements 'A' and 'B If a value of "2" is specified in the :code:`pair_style uf3` command, only the two-body potential files are needed. For 3-body interaction the first atom type is the central atom. We recommend using the :code:`generate_uf3_lammps_pots.py` script (found `here `_) for generating the UF3 LAMMPS potential files from the UF3 JSON potentials. -LAMMPS wild-card character "*" can also be used to specify a single UF3 LAMMPS potential file for multiple interaction. For example- +LAMMPS wild-card character "*" can also be used to specify a single UF3 LAMMPS potential file for multiple interaction. For example- .. code-block:: LAMMPS diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index aeab64a536..38a820a08f 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -71,7 +71,7 @@ template PairUF3Kokkos::~PairUF3Kokkos() } template -template +template void PairUF3Kokkos::destroy_3d(TYPE data, typename TYPE::value_type*** &array) { if (array == nullptr) return; @@ -81,7 +81,7 @@ void PairUF3Kokkos::destroy_3d(TYPE data, typename TYPE::value_type* } template -template +template void PairUF3Kokkos::destroy_4d(TYPE data, typename TYPE::value_type**** &array) { if (array == nullptr) return; @@ -127,10 +127,10 @@ template void PairUF3Kokkos::coeff(int narg, char Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); } //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, - //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, + //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, //neighshort - + //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) //for it create_2b_coefficients(); @@ -147,7 +147,7 @@ void PairUF3Kokkos::allocate() //is created cut_3b is set to point to the host array of k_cutsq //memory->destroy(cut_3b); - memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); d_cutsq = k_cutsq.template view(); //assignment; get the device //view of k_cutsq and assign it to d_cutsq; in the header file we just //decleared d_cutsq's type @@ -208,7 +208,7 @@ template double PairUF3Kokkos::init_one(int i, in template void PairUF3Kokkos::create_coefficients() { coefficients_created = 1; - + /*for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { //Check for knot_spacing type @@ -253,10 +253,10 @@ template void PairUF3Kokkos::create_coefficients( Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); }*/ //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, - //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, + //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, //neighshort - + //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) //for it create_2b_coefficients(); @@ -815,7 +815,7 @@ template void PairUF3Kokkos::compute(int eflag_in //the array from the host memory; this updates d_cutsq also k_cut_3b.template sync(); k_min_cut_3b.template sync(); - + inum = list->inum; const int ignum = inum + list->gnum; NeighListKokkos *k_list = static_cast *>(list); @@ -837,7 +837,7 @@ template void PairUF3Kokkos::compute(int eflag_in int max_neighs = d_neighbors.extent(1); - if (((int)d_neighbors_short.extent(1) != max_neighs) || + if (((int)d_neighbors_short.extent(1) != max_neighs) || ((int)d_neighbors_short.extent(0) != ignum)) { d_neighbors_short = Kokkos::View("UF3::neighbors_short", ignum, max_neighs); } @@ -969,7 +969,7 @@ PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, const tagint jtag = tag[j]; const int jtype = type[j]; - + const X_FLOAT delx = xtmp - x(j, 0); const X_FLOAT dely = ytmp - x(j, 1); const X_FLOAT delz = ztmp - x(j, 2); @@ -979,7 +979,7 @@ PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, const F_FLOAT rij = sqrt(rsq); this->template twobody(itype, jtype, rij, evdwl, fpair); - + fpair = -fpair / rij; fxtmpi += delx * fpair; @@ -1341,7 +1341,7 @@ void PairUF3Kokkos::copy_3d(V &d, T ***h, int m, int n, int o) //device memory //auto h_view = Kokkos::create_mirror_view(tmp); //create_mirror always copies - //the data. create_mirror_view only copies data if the host cannot access the + //the data. create_mirror_view only copies data if the host cannot access the //data auto h_view = Kokkos::create_mirror(tmp); //Create a mirror of the device //view(array) tmp, as deep_copy is only possible for mirror views diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 946c7bbc4a..6b518c7ef1 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -106,7 +106,7 @@ number of elements detected by lammps in the structure are not same\n\ void PairUF3::coeff(int narg, char **arg) { if (!allocated) allocate(); - + if (narg != 3 && narg != 5){ /*error->warning(FLERR, "\nUF3: WARNING!! It seems that you are using the \n\ older style of specifying UF3 POT files. This style of listing \n\ @@ -194,7 +194,7 @@ void PairUF3::coeff(int narg, char **arg) // open UF3 potential file on all proc for (int i = 2; i < narg; i++) { uf3_read_pot_file(arg[i]); } if (!bsplines_created) create_bsplines(); - + // setflag check needed here for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { @@ -224,7 +224,7 @@ void PairUF3::coeff(int narg, char **arg) for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - UFBS3b[i][j][k] = + UFBS3b[i][j][k] = uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key]); UFBS3b[i][k][j] = UFBS3b[i][j][k]; } @@ -322,7 +322,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) std::string temp_line = txtfilereader.next_line(1); Tokenizer file_header(temp_line); - + if (file_header.count() != 2) error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ {} word/s",potf_name,file_header.count()); @@ -338,7 +338,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) error->all(FLERR, "UF3: Expected 4 words on 2nd line =>\n\ nBody leading_trim trailing_trim type_of_knot_spacing\n\ Found {}",temp_line); - + std::string nbody_on_file = fp2nd_line.next_string(); if (utils::strmatch(nbody_on_file,"2B")) utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n",potf_name); @@ -354,14 +354,14 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) if (trailing_trim != 3) error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ trailing_trim=3\n"); - + std::string knot_type = fp2nd_line.next_string(); if (utils::strmatch(knot_type,"uk")){ utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform\n\ knot spacing\n",potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; - } + } else if (utils::strmatch(knot_type,"nk")){ utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform\n\ knot spacing\n",potf_name); @@ -380,7 +380,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) error->all(FLERR, "UF3: Expected only 2 numbers on 3rd line =>\n\ Rij_CUTOFF NUM_OF_KNOTS\n\ Found {} number/s",fp3rd_line.count()); - + //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared cut[itype][jtype] = fp3rd_line.next_double(); cut[jtype][itype] = cut[itype][jtype]; @@ -389,7 +389,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) temp_line = txtfilereader.next_line(num_knots_2b); ValueTokenizer fp4th_line(temp_line); - + if (fp4th_line.count() != num_knots_2b) error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_2b,fp4th_line.count()); @@ -418,7 +418,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) n2b_coeff[itype][jtype][k] = fp6th_line.next_double(); n2b_coeff[jtype][itype][k] = n2b_coeff[itype][jtype][k]; } - + if (n2b_knot[itype][jtype].size() != n2b_coeff[itype][jtype].size() + 4) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); @@ -444,7 +444,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name std::string temp_line = txtfilereader.next_line(1); Tokenizer file_header(temp_line); - + if (file_header.count() != 2) error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ {} word/s",potf_name,file_header.count()); @@ -477,7 +477,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name if (trailing_trim != 3) error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ trailing_trim=3\n"); - + std::string knot_type = fp2nd_line.next_string(); if (utils::strmatch(knot_type,"uk")){ utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform\n\ @@ -496,7 +496,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name else error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots)\n\ Found {} on the 2nd line of {} pot file",knot_type,potf_name); - + temp_line = txtfilereader.next_line(6); ValueTokenizer fp3rd_line(temp_line); @@ -504,7 +504,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line =>\n\ Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ\n\ Found {} number/s",fp3rd_line.count()); - + double cut3b_rjk = fp3rd_line.next_double(); double cut3b_rij = fp3rd_line.next_double(); double cut3b_rik = fp3rd_line.next_double(); @@ -517,10 +517,10 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: 2rij=2rik!=rik, Current implementation only works \n\ for 2rij=2rik!=rik"); } - + cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); cut_3b_list[itype][ktype] = std::max(cut_3b_list[itype][ktype], cut3b_rik); - + cut_3b[itype][jtype][ktype] = cut3b_rij; cut_3b[itype][ktype][jtype] = cut3b_rik; @@ -531,7 +531,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name if (fp4th_line.count() != num_knots_3b_jk) error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_3b_jk, fp4th_line.count()); - + n3b_knot_matrix[itype][jtype][ktype].resize(3); n3b_knot_matrix[itype][ktype][jtype].resize(3); @@ -545,9 +545,9 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name n3b_knot_matrix[itype][jtype][ktype][0][i]; } - min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; + min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; //min_cut_3b[itype][jtype][ktype][0] --> cutoff for jk distance - + min_cut_3b[itype][ktype][jtype][0] = n3b_knot_matrix[itype][ktype][jtype][0][0]; if (comm->me == 0) utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_jk={} {}-{}-{}_jk={}\n", @@ -591,12 +591,12 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); for (int i = 0; i < num_knots_3b_ij; i++) { n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][1][i] = + n3b_knot_matrix[itype][ktype][jtype][1][i] = n3b_knot_matrix[itype][jtype][ktype][2][i]; } min_cut_3b[itype][jtype][ktype][2] = n3b_knot_matrix[itype][jtype][ktype][2][0]; - //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance + //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance min_cut_3b[itype][ktype][jtype][1] = n3b_knot_matrix[itype][ktype][jtype][1][0]; if (comm->me == 0) utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ij={} {}-{}-{}_ij={}\n", @@ -619,16 +619,16 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and \n\ coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); - if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) + if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and \n\ coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1",potf_name); - if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) + if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and \n\ coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1",potf_name); coeff_matrix_elements_len = coeff_matrix_dim3; - + std::string key = std::to_string(itype) + std::to_string(jtype) + std::to_string(ktype); n3b_coeff_matrix[key].resize(coeff_matrix_dim1); @@ -949,7 +949,7 @@ void PairUF3::create_bsplines() for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - UFBS3b[i][j][k] = + UFBS3b[i][j][k] = uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); @@ -1113,7 +1113,7 @@ void PairUF3::compute(int eflag, int vflag) ((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && - (rij >= min_cut_3b[itype][jtype][ktype][2]) && + (rij >= min_cut_3b[itype][jtype][ktype][2]) && (rik >= min_cut_3b[itype][jtype][ktype][1])) { del_rkj[0] = x[k][0] - x[j][0]; @@ -1247,17 +1247,17 @@ double PairUF3::memory_usage() bytes = 0; - bytes += (double)5*sizeof(double); //num_of_elements, nbody_flag, - //n2body_pot_files, n3body_pot_files, + bytes += (double)5*sizeof(double); //num_of_elements, nbody_flag, + //n2body_pot_files, n3body_pot_files, //tot_pot_files; bytes += (double)5*sizeof(double); //bsplines_created, coeff_matrix_dim1, - //coeff_matrix_dim2, coeff_matrix_dim3, + //coeff_matrix_dim2, coeff_matrix_dim3, //coeff_matrix_elements_len bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ (num_of_elements+1)*sizeof(double); //***setflag_3b - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut + bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ (num_of_elements+1)*sizeof(double); //***cut_3b @@ -1305,7 +1305,7 @@ double PairUF3::memory_usage() } } } - + bytes += (double)(maxshort+1)*sizeof(int); //neighshort, maxshort return bytes; diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp index b2fab151b1..3ecdb2f626 100644 --- a/src/ML-UF3/uf3_pair_bspline.cpp +++ b/src/ML-UF3/uf3_pair_bspline.cpp @@ -28,13 +28,13 @@ uf3_pair_bspline::uf3_pair_bspline() {} // Constructor // Passing vectors by reference uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, - const std::vector &ucoeff_vect, + const std::vector &ucoeff_vect, const int &uknot_spacing_type) { lmp = ulmp; knot_vect = uknot_vect; coeff_vect = ucoeff_vect; - + knot_spacing_type = uknot_spacing_type; if (knot_spacing_type==0){ knot_spacing = knot_vect[4]-knot_vect[3]; @@ -48,10 +48,10 @@ uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &ukno else lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ '1'(non-uniform knots)"); - + knot_vect_size = uknot_vect.size(); coeff_vect_size = ucoeff_vect.size(); - + // Initialize B-Spline Basis Functions for (int i = 0; i < knot_vect.size() - 4; i++) bspline_bases.push_back(uf3_bspline_basis3(lmp, &knot_vect[i], coeff_vect[i])); @@ -62,7 +62,7 @@ uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &ukno double dntemp4 = 3 / (knot_vect[i + 4] - knot_vect[i + 1]); dncoeff_vect.push_back((coeff_vect[i + 1] - coeff_vect[i]) * dntemp4); } - //What we have is a clamped bspline -->i.e value of the bspline curve at the + //What we have is a clamped bspline -->i.e value of the bspline curve at the //knots with multiplicity equal to the degree of bspline is equal to the coefficient // //Therefore for the derivative bspline the very first and last knot needs to be droped diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h index 4bd4a618b9..d10bfb430e 100644 --- a/src/ML-UF3/uf3_pair_bspline.h +++ b/src/ML-UF3/uf3_pair_bspline.h @@ -32,7 +32,7 @@ class uf3_pair_bspline { std::vector dnbspline_bases; int get_starting_index_uniform(double), get_starting_index_nonuniform(double); int (uf3_pair_bspline::*get_starting_index)(double); - //double knot_spacing=0; + //double knot_spacing=0; LAMMPS *lmp; public: diff --git a/src/ML-UF3/uf3_triplet_bspline.h b/src/ML-UF3/uf3_triplet_bspline.h index 6c560d8d7e..642201d879 100644 --- a/src/ML-UF3/uf3_triplet_bspline.h +++ b/src/ML-UF3/uf3_triplet_bspline.h @@ -35,7 +35,7 @@ class uf3_triplet_bspline { int get_starting_index_uniform(const std::vector, int, double, double); int get_starting_index_nonuniform(const std::vector, int, double, double); int (uf3_triplet_bspline::*get_starting_index)(const std::vector, int, double, double); - //double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; + //double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; //double _alignvar(, 8) ret_val[4]; // Force memory alignment on 8 byte boundaries double ret_val[4]; From 4e95db1bb791b69817fd7f83cc77d28d6be3333d Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 26 Mar 2024 12:34:29 -0400 Subject: [PATCH 021/313] Added uf3 details to Commands_pair, Packages_details and Packages_list --- doc/src/Commands_pair.rst | 1 + doc/src/Packages_details.rst | 26 ++++++++++++++++++++++++++ doc/src/Packages_list.rst | 5 +++++ 3 files changed, 32 insertions(+) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 9bbe216dec..b804afdfc0 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -302,6 +302,7 @@ OPT. * :doc:`tip4p/long/soft (o) ` * :doc:`tri/lj ` * :doc:`ufm (got) ` + * :doc:`uf3 (k) ` * :doc:`vashishta (gko) ` * :doc:`vashishta/table (o) ` * :doc:`wf/cut ` diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index a3d65d9d65..edac1ee3f3 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -84,6 +84,7 @@ page gives those details. * :ref:`ML-QUIP ` * :ref:`ML-RANN ` * :ref:`ML-SNAP ` + * :ref:`ML-UF3 ` * :ref:`MOFFF ` * :ref:`MOLECULE ` * :ref:`MOLFILE ` @@ -1925,6 +1926,31 @@ computes which analyze attributes of the potential. ---------- +.. _PKG-ML-UF3: + +ML-UF3 package +-------------- + +**Contents:** + +A pair style for the Ultra-Fast Forcefield potentials (UF3). UF3 is a +methodology for deriving a highly accurate classical potential which is fast to +evaluate and is fitted to a large archives of quantum mechanical (DFT) data. +The use of bspline basis set in UF3 enables the rapid evaluation of 2-body and +3-body interactions. + +**Authors:** Ajinkya C Hire (University of Florida), +Hendrik Krass (University of Constance), +Matthias Rupp (Luxembourg Institute of Science and Technology), +Richard Hennig (University of Florida) + +**Supporting info:** + +* src/ML-UF3: filenames -> commands +* :doc:`pair_style uf3 ` +* examples/uf3 +* https://github.com/uf3/uf3 + .. _PKG-MOFFF: MOFFF package diff --git a/doc/src/Packages_list.rst b/doc/src/Packages_list.rst index c0a1164513..e86e43e9ce 100644 --- a/doc/src/Packages_list.rst +++ b/doc/src/Packages_list.rst @@ -318,6 +318,11 @@ whether an extra library is needed to build and use the package: - :doc:`pair_style snap ` - snap - no + * - :ref:`ML-UF3 ` + - quantum-fitted ultra fast potentials + - :doc:`pair_style uf3 ` + - uf3 + - no * - :ref:`MOFFF ` - styles for `MOF-FF `_ force field - :doc:`pair_style buck6d/coul/gauss ` From 3a34b3eeafa63d6f9bc721c7dace2c30f489cbc3 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 26 Mar 2024 12:35:30 -0400 Subject: [PATCH 022/313] Added uf3 examples to the examples directory --- examples/README | 1 + examples/uf3/README.md | 4 ++++ examples/uf3/in.uf3.2b.W | 46 +++++++++++++++++++++++++++++++++++++++ examples/uf3/in.uf3.3b.W | 47 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 examples/uf3/README.md create mode 100644 examples/uf3/in.uf3.2b.W create mode 100644 examples/uf3/in.uf3.3b.W diff --git a/examples/README b/examples/README index 62a09f654d..a68ab9fe66 100644 --- a/examples/README +++ b/examples/README @@ -116,6 +116,7 @@ template: examples for using atom_style template and comparing to atom style mol tersoff: regression test input for Tersoff variants threebody: regression test input for a variety of threebody potentials ttm: two-temeperature model examples +uf3: examples for using uf3 potentials vashishta: models using the Vashishta potential voronoi: Voronoi tesselation via compute voronoi/atom command wall: use of reflective walls with different stochastic models diff --git a/examples/uf3/README.md b/examples/uf3/README.md new file mode 100644 index 0000000000..cfbe0b6cc2 --- /dev/null +++ b/examples/uf3/README.md @@ -0,0 +1,4 @@ +This directory contains a variety of tests for the ML-UF3 package. These include: + +in.uf3.3b.W # UF3 2-body and 3-body potential +in.uf3.2b.W # UF3 2-body potential diff --git a/examples/uf3/in.uf3.2b.W b/examples/uf3/in.uf3.2b.W new file mode 100644 index 0000000000..038189f0c7 --- /dev/null +++ b/examples/uf3/in.uf3.2b.W @@ -0,0 +1,46 @@ +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable ny equal ${nrep} +variable nz equal ${nrep} + +boundary p p p + +lattice bcc $a +region box block 0 ${nx} 0 ${ny} 0 ${nz} +create_box 1 box +create_atoms 1 box + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 2 1 +pair_coeff 1 1 W_W + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} diff --git a/examples/uf3/in.uf3.3b.W b/examples/uf3/in.uf3.3b.W new file mode 100644 index 0000000000..fa14b1347c --- /dev/null +++ b/examples/uf3/in.uf3.3b.W @@ -0,0 +1,47 @@ +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable ny equal ${nrep} +variable nz equal ${nrep} + +boundary p p p + +lattice bcc $a +region box block 0 ${nx} 0 ${ny} 0 ${nz} +create_box 1 box +create_atoms 1 box + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 3 1 +pair_coeff 1 1 W_W +pair_coeff 3b 1 1 1 W_W_W + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} From ff39a03e838018611bb423e3e3681efd35daf016 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 26 Mar 2024 13:14:32 -0400 Subject: [PATCH 023/313] Removed trailing whitespaces --- doc/src/Packages_details.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index edac1ee3f3..fa1ddf0a39 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -1933,15 +1933,15 @@ ML-UF3 package **Contents:** -A pair style for the Ultra-Fast Forcefield potentials (UF3). UF3 is a +A pair style for the Ultra-Fast Forcefield potentials (UF3). UF3 is a methodology for deriving a highly accurate classical potential which is fast to evaluate and is fitted to a large archives of quantum mechanical (DFT) data. -The use of bspline basis set in UF3 enables the rapid evaluation of 2-body and +The use of bspline basis set in UF3 enables the rapid evaluation of 2-body and 3-body interactions. **Authors:** Ajinkya C Hire (University of Florida), -Hendrik Krass (University of Constance), -Matthias Rupp (Luxembourg Institute of Science and Technology), +Hendrik Krass (University of Constance), +Matthias Rupp (Luxembourg Institute of Science and Technology), Richard Hennig (University of Florida) **Supporting info:** @@ -1949,7 +1949,7 @@ Richard Hennig (University of Florida) * src/ML-UF3: filenames -> commands * :doc:`pair_style uf3 ` * examples/uf3 -* https://github.com/uf3/uf3 +* https://github.com/uf3/uf3 .. _PKG-MOFFF: From dc0b0d8be82c70131ba12e90c35bea12e422b520 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 26 Mar 2024 13:18:26 -0400 Subject: [PATCH 024/313] Added example potential files for W --- examples/uf3/W_W | 7 ++++ examples/uf3/W_W_W | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 examples/uf3/W_W create mode 100644 examples/uf3/W_W_W diff --git a/examples/uf3/W_W b/examples/uf3/W_W new file mode 100644 index 0000000000..4197457323 --- /dev/null +++ b/examples/uf3/W_W @@ -0,0 +1,7 @@ +#UF3 POT +2B 0 3 uk +5.5 22 +0.001 0.001 0.001 0.001 0.36759999999999998 0.73419999999999996 1.1007999999999998 1.4673999999999998 1.8339999999999999 2.2005999999999997 2.5671999999999997 2.9337999999999997 3.3003999999999998 3.6669999999999998 4.0335999999999999 4.4001999999999999 4.7667999999999999 5.1334 5.5 5.5 5.5 5.5 +18 +85.256465889606673 85.256465889606673 60.118514370108457 39.372994322346095 23.019905746319598 11.095292589050336 2.5770289203919474 -0.21591409154943711 -0.41582603147952274 -0.29361205978352245 -0.23467230507950282 -0.13083777191249607 -0.031024404500506326 -0.059144784016542738 -0.037145211195670137 0 0 0 +# diff --git a/examples/uf3/W_W_W b/examples/uf3/W_W_W new file mode 100644 index 0000000000..b0b9fd5542 --- /dev/null +++ b/examples/uf3/W_W_W @@ -0,0 +1,89 @@ +#UF3 POT +3B 0 3 uk +7.0 3.5 3.5 19 13 13 +1.5 1.5 1.5 1.5 1.9583333333333333 2.4166666666666665 2.875 3.333333333333333 3.7916666666666665 4.25 4.708333333333333 5.1666666666666661 5.625 6.083333333333333 6.5416666666666661 7 7 7 7 +1.5 1.5 1.5 1.5 1.8333333333333333 2.1666666666666665 2.5 2.833333333333333 3.1666666666666665 3.5 3.5 3.5 3.5 +1.5 1.5 1.5 1.5 1.8333333333333333 2.1666666666666665 2.5 2.833333333333333 3.1666666666666665 3.5 3.5 3.5 3.5 +9 9 15 +-1.0025267383014886e-06 1.627666892216261e-10 8.48457178601592e-09 1.0410120456668556e-08 1.1330088302187643e-06 1.4224457260740182e-05 3.749471162873949e-05 3.695233634472074e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.922778833696604e-05 -1.0222423928319826e-06 -4.8075020979943344e-05 -3.8518708184701e-05 -9.794643241404816e-06 -5.109554485113297e-07 -4.104591531909916e-10 5.419385825688335e-09 2.3261619203718816e-06 0.0 0.0 0.0 0.0 0.0 0.0 +2.829068261701631e-05 3.3565662462635585e-05 -4.4282774329572976e-05 5.3019338472701156e-05 1.656981200092865e-05 5.764723793849365e-06 8.90212763080714e-06 -1.266718085517006e-06 2.431925564724538e-06 -3.3416793274446366e-07 0.0 0.0 0.0 0.0 0.0 +9.661425891180097e-09 1.1180525909838732e-07 7.372128540386131e-06 9.39083445715028e-06 1.0838653682096786e-05 9.806075321172179e-05 7.23071321840456e-05 0.00011393368280907902 7.532201192649856e-05 1.4915718900782886e-05 0.0 0.0 0.0 0.0 0.0 +4.674109331563019e-07 -5.406616138544008e-09 2.0217516565542138e-08 5.815480232140697e-06 2.377543599749233e-05 4.214830983861595e-05 -7.397778428926203e-05 7.061700585974997e-05 3.398811616466058e-05 3.0440209444922143e-05 0.00013514584901612643 0.0 0.0 0.0 0.0 +-2.18344999249825e-05 -0.00011697904895508256 -5.553581955175406e-06 2.658838454117769e-08 1.2146153008512734e-05 1.918298817375017e-05 5.40154814815751e-05 1.2944187401636162e-05 3.710536690671586e-05 1.6795050072301748e-05 -7.229556489685409e-06 8.543467581763247e-06 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.922778833696604e-05 -1.0222423928319826e-06 -4.8075020979943344e-05 -3.8518708184701e-05 -9.794643241404816e-06 -5.109554485113297e-07 -4.104591531909916e-10 5.419385825688335e-09 2.3261619203718816e-06 0.0 0.0 0.0 0.0 0.0 0.0 +4.7777593982974866e-05 2.1830415880551608e-05 -8.74161436707018e-06 7.718518436280754e-09 3.872620009304499e-06 2.2808275890118977e-05 4.9693195966817054e-05 -5.792733170014431e-06 4.574471594251372e-05 -2.840624725005251e-05 0.0 0.0 0.0 0.0 0.0 +-2.983543176137801e-05 4.9033674735689904e-05 4.195810226183578e-05 0.00010403045298571696 0.0003809288520722337 3.373314734861335e-05 1.0875278462846613e-05 2.680082116524925e-05 2.6236988936225364e-05 3.6338704048890435e-06 0.0 0.0 0.0 0.0 0.0 +2.1399512390776296e-05 2.7931318963336216e-05 1.601611374550643e-05 0.0011462578563508437 0.0020096052304490785 0.0010339536769749804 0.001014125101157229 0.00021102390605096824 -9.581571365103867e-06 -2.280019726143644e-05 3.57351467975471e-07 0.0 0.0 0.0 0.0 +6.2467013661098965e-06 2.658299496065299e-05 0.0007087760404542255 -0.002278488280232273 -0.007044271575650293 0.0038614975616579586 0.009260853457130498 -0.0010473278276317726 -8.516349321648054e-05 0.00020262630262751473 1.3414729868362445e-06 7.953262907187799e-08 0.0 0.0 0.0 +2.3603382351924323e-06 7.146280072503116e-05 0.0012361202483760594 -0.005734465078354871 -0.017135562936976125 -0.0016664758722632735 0.010195949308015286 -0.005412690557758046 -0.0029107216230642853 -0.0007612908343076258 -0.00013449226099999524 2.1468761472671134e-05 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.829068261701631e-05 3.3565662462635585e-05 -4.4282774329572976e-05 5.3019338472701156e-05 1.656981200092865e-05 5.764723793849365e-06 8.90212763080714e-06 -1.266718085517006e-06 2.431925564724538e-06 -3.3416793274446366e-07 0.0 0.0 0.0 0.0 0.0 +-2.983543176137801e-05 4.9033674735689904e-05 4.195810226183578e-05 0.00010403045298571696 0.0003809288520722337 3.373314734861335e-05 1.0875278462846613e-05 2.680082116524925e-05 2.6236988936225364e-05 3.6338704048890435e-06 0.0 0.0 0.0 0.0 0.0 +4.805582975622838e-05 3.5904852202535306e-05 0.0001861581391418004 0.011742061168666256 0.024776619721352023 0.009905830782079064 0.001165275555230131 0.0004071734306161239 0.00037033988296356686 4.258576293935207e-05 -1.0503156955159468e-06 0.0 0.0 0.0 0.0 +-5.680777858210279e-07 7.084011901144194e-05 0.0050124193537796876 0.1029510036679177 0.24007141064120838 0.17886074568759117 0.03778564255583381 -0.01538608134214139 -0.01488601265585909 -0.005013137591006775 1.477967512985198e-07 2.827576677896298e-05 0.0 0.0 0.0 +3.4701391129480595e-05 0.005680635772167662 0.07108357438929552 0.18745843365735923 0.18473391598372302 0.2461411417071668 -0.005111666129467331 -0.24038059036230178 -0.19258370027930355 -0.048958604017684836 -0.0025501911244683846 -4.982008439539256e-06 0.0 0.0 0.0 +1.8054960278101902e-05 0.011611823828717463 0.14139350699353365 0.1678085431015684 -0.22152577092526715 0.26507903411379746 0.08279760718466518 0.02879361559120084 0.04448600527937973 -0.006339073225905362 0.012182164968354765 -0.0016647733469859114 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +9.661425891180097e-09 1.1180525909838732e-07 7.372128540386131e-06 9.39083445715028e-06 1.0838653682096786e-05 9.806075321172179e-05 7.23071321840456e-05 0.00011393368280907902 7.532201192649856e-05 1.4915718900782886e-05 0.0 0.0 0.0 0.0 0.0 +2.1399512390776296e-05 2.7931318963336216e-05 1.601611374550643e-05 0.0011462578563508437 0.0020096052304490785 0.0010339536769749804 0.001014125101157229 0.00021102390605096824 -9.581571365103867e-06 -2.280019726143644e-05 3.57351467975471e-07 0.0 0.0 0.0 0.0 +-5.680777858210279e-07 7.084011901144194e-05 0.0050124193537796876 0.1029510036679177 0.24007141064120838 0.17886074568759117 0.03778564255583381 -0.01538608134214139 -0.01488601265585909 -0.005013137591006775 1.477967512985198e-07 2.827576677896298e-05 0.0 0.0 0.0 +3.224364873093737e-05 0.0005926077146340155 0.03682711928362166 0.046898795979650645 0.054125869772576704 0.49020499621758107 0.3614418794239106 0.569703720925391 0.37654073726442117 0.07453613145477757 0.002320760953344357 -4.1320810202123745e-05 0.0 0.0 0.0 +7.181321030642065e-05 0.029059269505937943 0.11884075783303522 0.21076878762972284 -0.36996025259611676 0.35312700844142586 0.16990097184555128 0.15210775765373416 0.6757140775652752 -0.10922320044264704 -0.5849697059462919 -0.027759887396949002 0.0 0.0 0.0 +9.734779590447442e-05 0.06072685888500135 0.09586373042400446 0.2700889438647233 0.06469057221256519 0.1854847883254132 0.08392153868089386 -0.03626027544891736 0.04232832520121794 0.23849583983886427 0.10911730115168922 -0.04380214407208333 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.674109331563019e-07 -5.406616138544008e-09 2.0217516565542138e-08 5.815480232140697e-06 2.377543599749233e-05 4.214830983861595e-05 -7.397778428926203e-05 7.061700585974997e-05 3.398811616466058e-05 3.0440209444922143e-05 0.00013514584901612643 0.0 0.0 0.0 0.0 +6.2467013661098965e-06 2.658299496065299e-05 0.0007087760404542255 -0.002278488280232273 -0.007044271575650293 0.0038614975616579586 0.009260853457130498 -0.0010473278276317726 -8.516349321648054e-05 0.00020262630262751473 1.3414729868362445e-06 7.953262907187799e-08 0.0 0.0 0.0 +3.4701391129480595e-05 0.005680635772167662 0.07108357438929552 0.18745843365735923 0.18473391598372302 0.2461411417071668 -0.005111666129467331 -0.24038059036230178 -0.19258370027930355 -0.048958604017684836 -0.0025501911244683846 -4.982008439539256e-06 0.0 0.0 0.0 +7.181321030642065e-05 0.029059269505937943 0.11884075783303522 0.21076878762972284 -0.36996025259611676 0.35312700844142586 0.16990097184555128 0.15210775765373416 0.6757140775652752 -0.10922320044264704 -0.5849697059462919 -0.027759887396949002 0.0 0.0 0.0 +3.8792902483003914e-05 0.01940944659869733 0.11401272918676479 0.24845559032094336 -0.029040137137018487 0.22760022061135138 -0.14408030764137164 -0.1502303415258775 0.24414290246285578 0.20048840049956973 -0.3098919852331769 0.38455675655513366 0.0 0.0 0.0 +0.0001449154156948679 0.05388868537335966 0.1340445791122114 0.1304729995514306 0.02041924003827766 0.11401975265164792 0.13440972558465583 -0.056806908474571434 0.03945347719095876 0.02504259931146615 0.04957547514580214 0.01854515348232565 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-2.18344999249825e-05 -0.00011697904895508256 -5.553581955175406e-06 2.658838454117769e-08 1.2146153008512734e-05 1.918298817375017e-05 5.40154814815751e-05 1.2944187401636162e-05 3.710536690671586e-05 1.6795050072301748e-05 -7.229556489685409e-06 8.543467581763247e-06 0.0 0.0 0.0 +2.3603382351924323e-06 7.146280072503116e-05 0.0012361202483760594 -0.005734465078354871 -0.017135562936976125 -0.0016664758722632735 0.010195949308015286 -0.005412690557758046 -0.0029107216230642853 -0.0007612908343076258 -0.00013449226099999524 2.1468761472671134e-05 0.0 0.0 0.0 +1.8054960278101902e-05 0.011611823828717463 0.14139350699353365 0.1678085431015684 -0.22152577092526715 0.26507903411379746 0.08279760718466518 0.02879361559120084 0.04448600527937973 -0.006339073225905362 0.012182164968354765 -0.0016647733469859114 0.0 0.0 0.0 +9.734779590447442e-05 0.06072685888500135 0.09586373042400446 0.2700889438647233 0.06469057221256519 0.1854847883254132 0.08392153868089386 -0.03626027544891736 0.04232832520121794 0.23849583983886427 0.10911730115168922 -0.04380214407208333 0.0 0.0 0.0 +0.0001449154156948679 0.05388868537335966 0.1340445791122114 0.1304729995514306 0.02041924003827766 0.11401975265164792 0.13440972558465583 -0.056806908474571434 0.03945347719095876 0.02504259931146615 0.04957547514580214 0.01854515348232565 0.0 0.0 0.0 +5.588250079169304e-05 -0.012017079745903034 -0.0008295411205340048 0.00043274236043781584 0.036933605134660964 -0.017759680455812197 0.15248826375477179 -0.022974467887332546 0.005116007779072725 -0.01249692329646853 -0.12288470938617652 0.022731129576009593 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +# From 7e09353e7ce46e538d85fbc09176216bc62eea7a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 06:28:23 -0400 Subject: [PATCH 025/313] add ML-UF3 to compatible CMake preset files --- cmake/presets/all_off.cmake | 1 + cmake/presets/all_on.cmake | 1 + cmake/presets/mingw-cross.cmake | 1 + cmake/presets/most.cmake | 1 + cmake/presets/windows.cmake | 1 + 5 files changed, 5 insertions(+) diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake index e078879f70..c82eb568bf 100644 --- a/cmake/presets/all_off.cmake +++ b/cmake/presets/all_off.cmake @@ -60,6 +60,7 @@ set(ALL_PACKAGES ML-QUIP ML-RANN ML-SNAP + ML-UF3 MOFFF MOLECULE MOLFILE diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake index 3f44a863f7..d909b6aca7 100644 --- a/cmake/presets/all_on.cmake +++ b/cmake/presets/all_on.cmake @@ -62,6 +62,7 @@ set(ALL_PACKAGES ML-QUIP ML-RANN ML-SNAP + ML-UF3 MOFFF MOLECULE MOLFILE diff --git a/cmake/presets/mingw-cross.cmake b/cmake/presets/mingw-cross.cmake index f3565668b2..8fdce0512f 100644 --- a/cmake/presets/mingw-cross.cmake +++ b/cmake/presets/mingw-cross.cmake @@ -50,6 +50,7 @@ set(WIN_PACKAGES ML-POD ML-RANN ML-SNAP + ML-UF3 MOFFF MOLECULE MOLFILE diff --git a/cmake/presets/most.cmake b/cmake/presets/most.cmake index 2356e24764..2ed7cbcaac 100644 --- a/cmake/presets/most.cmake +++ b/cmake/presets/most.cmake @@ -45,6 +45,7 @@ set(ALL_PACKAGES ML-IAP ML-POD ML-SNAP + ML-UF3 MOFFF MOLECULE OPENMP diff --git a/cmake/presets/windows.cmake b/cmake/presets/windows.cmake index 9655134e7f..d47e1077e8 100644 --- a/cmake/presets/windows.cmake +++ b/cmake/presets/windows.cmake @@ -42,6 +42,7 @@ set(WIN_PACKAGES ML-IAP ML-POD ML-SNAP + ML-UF3 MOFFF MOLECULE MOLFILE From f9a0ec83b4ac1244192daf3efad8ae50d34db3d8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 06:28:35 -0400 Subject: [PATCH 026/313] update .gitignore --- src/.gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index 88bb80fdc5..b0d5339054 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -169,6 +169,17 @@ /rann_*.cpp /rann_*.h +/pair_uf3.cpp +/pair_uf3.h +/uf3_bspline_basis2.cpp +/uf3_bspline_basis2.h +/uf3_bspline_basis3.cpp +/uf3_bspline_basis3.h +/uf3_pair_bspline.cpp +/uf3_pair_bspline.h +/uf3_triplet_bspline.cpp +/uf3_triplet_bspline.h + /compute_test_nbl.cpp /compute_test_nbl.h /pair_multi_lucy.cpp From 0d7c41b1c347934bcd9f334cab46fa004e83b34f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 06:30:20 -0400 Subject: [PATCH 027/313] update code owners list --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ed37fa80b9..e1d22a1732 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -38,6 +38,7 @@ src/ML-HDNNP/* @singraber src/ML-IAP/* @athomps src/ML-PACE/* @yury-lysogorskiy src/ML-POD/* @exapde +src/ML-UF3/* @monk-04 src/MOFFF/* @hheenen src/MOLFILE/* @akohlmey src/NETCDF/* @pastewka From 7323364d1dbb751e76f976b3ad2e35b4a0d2b94d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 06:35:19 -0400 Subject: [PATCH 028/313] move examples --- examples/{ => PACKAGES}/uf3/README.md | 0 examples/{ => PACKAGES}/uf3/W_W | 0 examples/{ => PACKAGES}/uf3/W_W_W | 0 examples/{ => PACKAGES}/uf3/in.uf3.2b.W | 0 examples/{ => PACKAGES}/uf3/in.uf3.3b.W | 0 examples/README | 1 - 6 files changed, 1 deletion(-) rename examples/{ => PACKAGES}/uf3/README.md (100%) rename examples/{ => PACKAGES}/uf3/W_W (100%) rename examples/{ => PACKAGES}/uf3/W_W_W (100%) rename examples/{ => PACKAGES}/uf3/in.uf3.2b.W (100%) rename examples/{ => PACKAGES}/uf3/in.uf3.3b.W (100%) diff --git a/examples/uf3/README.md b/examples/PACKAGES/uf3/README.md similarity index 100% rename from examples/uf3/README.md rename to examples/PACKAGES/uf3/README.md diff --git a/examples/uf3/W_W b/examples/PACKAGES/uf3/W_W similarity index 100% rename from examples/uf3/W_W rename to examples/PACKAGES/uf3/W_W diff --git a/examples/uf3/W_W_W b/examples/PACKAGES/uf3/W_W_W similarity index 100% rename from examples/uf3/W_W_W rename to examples/PACKAGES/uf3/W_W_W diff --git a/examples/uf3/in.uf3.2b.W b/examples/PACKAGES/uf3/in.uf3.2b.W similarity index 100% rename from examples/uf3/in.uf3.2b.W rename to examples/PACKAGES/uf3/in.uf3.2b.W diff --git a/examples/uf3/in.uf3.3b.W b/examples/PACKAGES/uf3/in.uf3.3b.W similarity index 100% rename from examples/uf3/in.uf3.3b.W rename to examples/PACKAGES/uf3/in.uf3.3b.W diff --git a/examples/README b/examples/README index a68ab9fe66..62a09f654d 100644 --- a/examples/README +++ b/examples/README @@ -116,7 +116,6 @@ template: examples for using atom_style template and comparing to atom style mol tersoff: regression test input for Tersoff variants threebody: regression test input for a variety of threebody potentials ttm: two-temeperature model examples -uf3: examples for using uf3 potentials vashishta: models using the Vashishta potential voronoi: Voronoi tesselation via compute voronoi/atom command wall: use of reflective walls with different stochastic models From fda433a7ee02928e5dc7a756cdec27764fac075f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 06:53:03 -0400 Subject: [PATCH 029/313] reformat and fix spelling and related issues --- doc/src/Packages_details.rst | 10 +- doc/src/pair_uf3.rst | 107 +++++++++++++++----- doc/utils/sphinx-config/false_positives.txt | 6 ++ 3 files changed, 94 insertions(+), 29 deletions(-) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index fa1ddf0a39..1ac8818c42 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -1933,11 +1933,11 @@ ML-UF3 package **Contents:** -A pair style for the Ultra-Fast Forcefield potentials (UF3). UF3 is a -methodology for deriving a highly accurate classical potential which is fast to -evaluate and is fitted to a large archives of quantum mechanical (DFT) data. -The use of bspline basis set in UF3 enables the rapid evaluation of 2-body and -3-body interactions. +A pair style for the ultra-fast force field potentials (UF3). UF3 is a +methodology for deriving a highly accurate classical potential which is +fast to evaluate and is fitted to a large archives of quantum mechanical +(DFT) data. The use of b-spline basis set in UF3 enables the rapid +evaluation of 2-body and 3-body interactions. **Authors:** Ajinkya C Hire (University of Florida), Hendrik Krass (University of Constance), diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index c4c9a5b31f..38122bc982 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -17,11 +17,9 @@ Syntax .. parsed-literal:: - BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values- 2 or 3 + BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values: 2 or 3 NumAtomType = Number of atoms types in the simulation - - Examples """""""" @@ -50,7 +48,12 @@ Examples Description """"""""""" -The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) ` potential, a machine-learning interatomic potential. In UF3, the total energy of the system is defined via two- and three-body interactions: +.. versionadded:: TBD + +The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) +` potential, a machine-learning interatomic potential. In UF3, +the total energy of the system is defined via two- and three-body +interactions: .. math:: @@ -58,15 +61,29 @@ The *uf3* style computes the :ref:`Ultra-Fast Force Fields (UF3) ` potent V_2(r_{ij}) & = \sum_{n=0}^N c_n B_n(r_{ij}) \\ V_3 (r_{ij},r_{ik},r_{jk}) & = \sum_{l=0}^{N_l} \sum_{m=0}^{N_m} \sum_{n=0}^{N_n} c_{l,m,n} B_l(r_{ij}) B_m(r_{ik}) B_n(r_{jk}) -where :math:`V_2(r_{ij})` and :math:`V_3 (r_{ij},r_{ik},r_{jk})` are the two- and three-body interactions, respectively. For the two-body the summation is over all neighbours J and for the three-body the summation is over all neighbors J and K of atom I within a cutoff distance determined from the potential files. :math:`B_n(r_{ij})` are the cubic bspline basis, :math:`c_n` and :math:`c_{l,m,n}` are the machine-learned interaction parameters and :math:`N`, :math:`N_l`, :math:`N_m`, and :math:`N_n` denote the number of basis functions per spline or tensor spline dimension. +where :math:`V_2(r_{ij})` and :math:`V_3 (r_{ij},r_{ik},r_{jk})` are the +two- and three-body interactions, respectively. For the two-body the +summation is over all neighbors J and for the three-body the summation +is over all neighbors J and K of atom I within a cutoff distance +determined from the potential files. :math:`B_n(r_{ij})` are the cubic +b-spline basis, :math:`c_n` and :math:`c_{l,m,n}` are the machine-learned +interaction parameters and :math:`N`, :math:`N_l`, :math:`N_m`, and +:math:`N_n` denote the number of basis functions per spline or tensor +spline dimension. -The UF3 LAMMPS potential files are provided using multiple pair_coeff commands. A single UF3 LAMMPS potential file contains information about one particular interaction only. +The UF3 LAMMPS potential files are provided using multiple pair_coeff +commands. A single UF3 LAMMPS potential file contains information about +one particular interaction only. .. note:: - Unlike other MANYBODY and ML potentials in LAMMPS, the atom type for which the specified potential file should be used for is not determined from the potential file, but is rather determined from the user provided atom type numbers after pair_coeff. + Unlike other MANYBODY and ML potentials in LAMMPS, the atom type for + which the specified potential file should be used for is not + determined from the potential file, but is rather determined from the + user provided atom type numbers after pair_coeff. -As an example, if a LAMMPS simulation contains 2 atom types (elements 'A' and 'B'), the pair_coeff command will be- +As an example, if a LAMMPS simulation contains 2 atom types (elements +'A' and 'B'), the pair_coeff command will be: .. code-block:: LAMMPS @@ -81,9 +98,15 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements 'A' and 'B pair_coeff 3b 2 1 2 B_A_B pair_coeff 3b 2 2 2 B_B_B -If a value of "2" is specified in the :code:`pair_style uf3` command, only the two-body potential files are needed. For 3-body interaction the first atom type is the central atom. We recommend using the :code:`generate_uf3_lammps_pots.py` script (found `here `_) for generating the UF3 LAMMPS potential files from the UF3 JSON potentials. +If a value of "2" is specified in the :code:`pair_style uf3` command, +only the two-body potential files are needed. For 3-body interaction the +first atom type is the central atom. We recommend using the +:code:`generate_uf3_lammps_pots.py` script (found `here +`_) for +generating the UF3 LAMMPS potential files from the UF3 JSON potentials. -LAMMPS wild-card character "*" can also be used to specify a single UF3 LAMMPS potential file for multiple interaction. For example- +LAMMPS wild-card character "*" can also be used to specify a single UF3 +LAMMPS potential file for multiple interaction. For example- .. code-block:: LAMMPS @@ -92,10 +115,18 @@ LAMMPS wild-card character "*" can also be used to specify a single UF3 LAMMPS p pair_coeff 3b 1 * * A_A_A pair_coeff 3b 2 * * B_B_B -The file A_A will be used for 2-body interaction between atom types 1-1, 1-2 and 2-2; file A_A_A will be used 3-body interaction for atom types 1-1-1, 1-1-2, 1-2-2; and so on. Note, using a single interaction file for all types of interactions is **not** the recommended way of using :code:`pair_style uf3` and will often lead to **incorrect results**. +The file A_A will be used for 2-body interaction between atom types 1-1, +1-2 and 2-2; file A_A_A will be used 3-body interaction for atom types +1-1-1, 1-1-2, 1-2-2; and so on. Note, using a single interaction file +for all types of interactions is **not** the recommended way of using +:code:`pair_style uf3` and will often lead to **incorrect results**. +---------- -UF3 LAMMPS potential files in the *potentials* directory of the LAMMPS distribution have a ".uf3" suffix. All UF3 LAMMPS potential files should start with :code:`#UF3 POT` and end with :code:`#` characters. Following shows the format of a generic 2-body UF3 LAMMPS potential file- +UF3 LAMMPS potential files in the *potentials* directory of the LAMMPS +distribution have a ".uf3" suffix. All UF3 LAMMPS potential files should +start with :code:`#UF3 POT` and end with :code:`#` characters. Following +shows the format of a generic 2-body UF3 LAMMPS potential file- .. code-block:: LAMMPS @@ -134,38 +165,66 @@ The format of a generic 3-body UF3 LAMMPS potential file is as follow- . # -Similar to the 2-body potential file, the third line sets the cutoffs and length of the knots. The cutoff distance between atom-type I and J is :code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and between J and K is :code:`Rjk_CUTOFF`. +Similar to the 2-body potential file, the third line sets the cutoffs +and length of the knots. The cutoff distance between atom-type I and J +is :code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and +between J and K is :code:`Rjk_CUTOFF`. .. note:: - The current implementation only works for UF3 potentials with cutoff distances for 3-body interactions that follows :code:`2Rij_CUTOFF=2Rik_CUTOFF=Rjk_CUTOFF` relation. + The current implementation only works for UF3 potentials with cutoff + distances for 3-body interactions that follows + :code:`2Rij_CUTOFF=2Rik_CUTOFF=Rjk_CUTOFF` relation. -The :code:`BSPLINE_KNOTS_FOR_JK`, :code:`BSPLINE_KNOTS_FOR_IK`, and :code:`BSPLINE_KNOTS_FOR_IJ` lines (note the order) contain the knots in increasing order for atoms J and K, I and K, and atoms I and J respectively. The number of knots is defined by the :code:`NUM_OF_KNOTS_*` characters in the previous line. -The shape of the coefficient matrix is defined on the :code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` line followed by the columns of the coefficient matrix, one per line, as shown above. For example, if the coefficient matrix has the shape of 8x8x13, then :code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` will be :code:`8 8 13` followed by 64 (8x8) lines each containing 13 coefficients seperated by space. +The :code:`BSPLINE_KNOTS_FOR_JK`, :code:`BSPLINE_KNOTS_FOR_IK`, and +:code:`BSPLINE_KNOTS_FOR_IJ` lines (note the order) contain the knots in +increasing order for atoms J and K, I and K, and atoms I and J +respectively. The number of knots is defined by the +:code:`NUM_OF_KNOTS_*` characters in the previous line. The shape of +the coefficient matrix is defined on the +:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` line followed by the columns of +the coefficient matrix, one per line, as shown above. For example, if +the coefficient matrix has the shape of 8x8x13, then +:code:`SHAPE_OF_COEFF_MATRIX[I][J][K]` will be :code:`8 8 13` followed +by 64 (8x8) lines each containing 13 coefficients separated by space. +---------- + +.. include:: accel_styles.rst + +---------- Mixing, shift, table, tail correction, restart, rRESPA info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" -For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file. +For atom type pairs I,J and I != J, where types I and J correspond to +two different element types, mixing is performed by LAMMPS as described +above from values in the potential file. -This pair style does not support the :doc:`pair_modify ` shift, table, and tail options. +This pair style does not support the :doc:`pair_modify ` +shift, table, and tail options. -This pair style does not write its information to :doc:`binary restart files `, since it is stored in potential files. +This pair style does not write its information to :doc:`binary restart +files `, since it is stored in potential files. -This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the *inner*, *middle*, *outer* keywords. - -The single() function of 'uf3' pair style only return the 2-body interaction energy. +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. It does not support the +*inner*, *middle*, *outer* keywords. Restrictions """""""""""" -The 'uf3' pair style is part of the ML-UF3 package. It is only enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +The 'uf3' pair style is part of the ML-UF3 package. It is only enabled +if LAMMPS was built with that package. See the :doc:`Build package +` page for more info. This pair style requires the :doc:`newton ` setting to be "on". -The UF3 LAMMPS potential files provided with LAMMPS (see the potentials directory) are parameterized for metal :doc:`units `. +The UF3 LAMMPS potential files provided with LAMMPS (see the potentials +directory) are parameterized for metal :doc:`units `. +The single() function of 'uf3' pair style only return the 2-body +interaction energy. Related commands """""""""""""""" diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 04ea69575a..3e548f3aa8 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1407,6 +1407,7 @@ Hendrik Henin Henkelman Henkes +Hennig henrich Henrich Hermitian @@ -1567,6 +1568,7 @@ interlayer intermolecular interoperable Interparticle +interpretable interstitials intertube Intr @@ -1786,6 +1788,7 @@ Koziol Kp kradius Kraker +Krass Kraus Kremer Kress @@ -3226,6 +3229,7 @@ Rudranarayan Rudzinski Runge runtime +Rupp Rutuparna rx rxd @@ -3771,6 +3775,8 @@ uChem uCond uef UEF +uf +uf3 ufm Uhlenbeck Ui From 713b308a996c9d2c2c99e6787054621cc159bc7c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 07:25:36 -0400 Subject: [PATCH 030/313] update ML-UF3 examples --- examples/PACKAGES/uf3/{W_W => W_W.uf3} | 0 examples/PACKAGES/uf3/{W_W_W => W_W_W.uf3} | 0 examples/PACKAGES/uf3/in.uf3.2b.W | 2 +- examples/PACKAGES/uf3/in.uf3.3b.W | 4 +- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 | 122 ++++++++++++++++ .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 | 122 ++++++++++++++++ .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 | 132 ++++++++++++++++++ .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 | 132 ++++++++++++++++++ 8 files changed, 511 insertions(+), 3 deletions(-) rename examples/PACKAGES/uf3/{W_W => W_W.uf3} (100%) rename examples/PACKAGES/uf3/{W_W_W => W_W_W.uf3} (100%) create mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 create mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 create mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 create mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 diff --git a/examples/PACKAGES/uf3/W_W b/examples/PACKAGES/uf3/W_W.uf3 similarity index 100% rename from examples/PACKAGES/uf3/W_W rename to examples/PACKAGES/uf3/W_W.uf3 diff --git a/examples/PACKAGES/uf3/W_W_W b/examples/PACKAGES/uf3/W_W_W.uf3 similarity index 100% rename from examples/PACKAGES/uf3/W_W_W rename to examples/PACKAGES/uf3/W_W_W.uf3 diff --git a/examples/PACKAGES/uf3/in.uf3.2b.W b/examples/PACKAGES/uf3/in.uf3.2b.W index 038189f0c7..29510ea5b1 100644 --- a/examples/PACKAGES/uf3/in.uf3.2b.W +++ b/examples/PACKAGES/uf3/in.uf3.2b.W @@ -25,7 +25,7 @@ mass 1 183.84 # # ============= set pair style pair_style uf3 2 1 -pair_coeff 1 1 W_W +pair_coeff 1 1 W_W.uf3 # # ============= Setup output diff --git a/examples/PACKAGES/uf3/in.uf3.3b.W b/examples/PACKAGES/uf3/in.uf3.3b.W index fa14b1347c..e66b38aa83 100644 --- a/examples/PACKAGES/uf3/in.uf3.3b.W +++ b/examples/PACKAGES/uf3/in.uf3.3b.W @@ -25,8 +25,8 @@ mass 1 183.84 # # ============= set pair style pair_style uf3 3 1 -pair_coeff 1 1 W_W -pair_coeff 3b 1 1 1 W_W_W +pair_coeff 1 1 W_W.uf3 +pair_coeff 3b 1 1 1 W_W_W.uf3 # # ============= Setup output diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 new file mode 100644 index 0000000000..bd4eb61bcd --- /dev/null +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 @@ -0,0 +1,122 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.187 +Lattice spacing in x,y,z = 3.187 3.187 3.187 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) + create_atoms CPU = 0.000 seconds + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 2 1 +pair_coeff 1 1 W_W.uf3 + +UF3: Opening W_W.uf3 file +UF3: W_W.uf3 file should contain UF3 potential for 1 1 +UF3: File W_W.uf3 contains 2-body UF3 potential +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform + knot spacing + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.5 + ghost atom cutoff = 6.5 + binsize = 3.25, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.113 | 3.113 | 3.113 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.9097145 0 -4.8712394 -398022.13 + 10 297.43433 -4.9093854 0 -4.8712394 -397994.78 + 20 289.88359 -4.908417 0 -4.8712393 -397922.72 + 30 277.73497 -4.9068589 0 -4.8712393 -397829.84 + 40 261.57286 -4.904786 0 -4.8712392 -397731.28 + 50 242.14207 -4.902294 0 -4.8712392 -397640.01 + 60 220.31079 -4.899494 0 -4.8712391 -397572.33 + 70 197.03391 -4.8965087 0 -4.871239 -397551.93 + 80 173.31044 -4.893466 0 -4.8712389 -397601.62 + 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 + 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 +Loop time of 0.0344773 on 1 procs for 100 steps with 128 atoms + +Performance: 125.300 ns/day, 0.192 hours/ns, 2900.463 timesteps/s, 371.259 katom-step/s +98.6% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.033145 | 0.033145 | 0.033145 | 0.0 | 96.14 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00071163 | 0.00071163 | 0.00071163 | 0.0 | 2.06 +Output | 0.0002018 | 0.0002018 | 0.0002018 | 0.0 | 0.59 +Modify | 0.00017741 | 0.00017741 | 0.00017741 | 0.0 | 0.51 +Other | | 0.0002413 | | | 0.70 + +Nlocal: 128 ave 128 max 128 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1113 ave 1113 max 1113 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 8192 ave 8192 max 8192 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8192 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 new file mode 100644 index 0000000000..4d42ef0016 --- /dev/null +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 @@ -0,0 +1,122 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.187 +Lattice spacing in x,y,z = 3.187 3.187 3.187 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) + create_atoms CPU = 0.000 seconds + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 2 1 +pair_coeff 1 1 W_W.uf3 + +UF3: Opening W_W.uf3 file +UF3: W_W.uf3 file should contain UF3 potential for 1 1 +UF3: File W_W.uf3 contains 2-body UF3 potential +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform + knot spacing + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.5 + ghost atom cutoff = 6.5 + binsize = 3.25, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.9097145 0 -4.8712394 -398022.13 + 10 297.43433 -4.9093854 0 -4.8712394 -397994.78 + 20 289.88359 -4.908417 0 -4.8712393 -397922.72 + 30 277.73497 -4.9068589 0 -4.8712393 -397829.84 + 40 261.57286 -4.904786 0 -4.8712392 -397731.28 + 50 242.14207 -4.902294 0 -4.8712392 -397640.01 + 60 220.31079 -4.899494 0 -4.8712391 -397572.33 + 70 197.03391 -4.8965087 0 -4.871239 -397551.93 + 80 173.31044 -4.893466 0 -4.8712389 -397601.62 + 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 + 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 +Loop time of 0.0111207 on 4 procs for 100 steps with 128 atoms + +Performance: 388.463 ns/day, 0.062 hours/ns, 8992.202 timesteps/s, 1.151 Matom-step/s +98.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0087312 | 0.008777 | 0.0088396 | 0.0 | 78.92 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0019835 | 0.0020323 | 0.0020742 | 0.1 | 18.27 +Output | 7.6664e-05 | 8.1924e-05 | 9.4556e-05 | 0.0 | 0.74 +Modify | 5.4618e-05 | 5.8768e-05 | 6.2489e-05 | 0.0 | 0.53 +Other | | 0.0001708 | | | 1.54 + +Nlocal: 32 ave 32 max 32 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 697 ave 697 max 697 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 2048 ave 2048 max 2048 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8192 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 new file mode 100644 index 0000000000..ad6c138b96 --- /dev/null +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 @@ -0,0 +1,132 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.187 +Lattice spacing in x,y,z = 3.187 3.187 3.187 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) + create_atoms CPU = 0.000 seconds + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 3 1 +pair_coeff 1 1 W_W.uf3 + +UF3: Opening W_W.uf3 file +UF3: W_W.uf3 file should contain UF3 potential for 1 1 +UF3: File W_W.uf3 contains 2-body UF3 potential +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform + knot spacing +pair_coeff 3b 1 1 1 W_W_W.uf3 + +UF3: Opening W_W_W.uf3 file +UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 +UF3: File W_W_W.uf3 contains 3-body UF3 potential +UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform + knot spacing +UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 +UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 +UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.5 + ghost atom cutoff = 6.5 + binsize = 3.25, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.214 | 3.214 | 3.214 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.3916353 0 -4.3531602 -21224 + 10 292.96093 -4.3907325 0 -4.3531602 -21177.095 + 20 272.60651 -4.3881219 0 -4.35316 -21038.525 + 30 241.12074 -4.3840835 0 -4.3531597 -20793.964 + 40 201.8718 -4.3790495 0 -4.3531594 -20444.219 + 50 159.06853 -4.3735596 0 -4.353159 -19996.634 + 60 117.24817 -4.3681958 0 -4.3531587 -19470.011 + 70 80.716097 -4.3635102 0 -4.3531584 -18905.505 + 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 + 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 + 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 +Loop time of 0.486699 on 1 procs for 100 steps with 128 atoms + +Performance: 8.876 ns/day, 2.704 hours/ns, 205.466 timesteps/s, 26.300 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.48518 | 0.48518 | 0.48518 | 0.0 | 99.69 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00082659 | 0.00082659 | 0.00082659 | 0.0 | 0.17 +Output | 0.00014676 | 0.00014676 | 0.00014676 | 0.0 | 0.03 +Modify | 0.00025566 | 0.00025566 | 0.00025566 | 0.0 | 0.05 +Other | | 0.0002862 | | | 0.06 + +Nlocal: 128 ave 128 max 128 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1113 ave 1113 max 1113 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 8192 ave 8192 max 8192 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8192 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 new file mode 100644 index 0000000000..56ab30c270 --- /dev/null +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 @@ -0,0 +1,132 @@ +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.187 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.187 +Lattice spacing in x,y,z = 3.187 3.187 3.187 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) + create_atoms CPU = 0.000 seconds + +mass 1 183.84 + +# # ============= set pair style + +pair_style uf3 3 1 +pair_coeff 1 1 W_W.uf3 + +UF3: Opening W_W.uf3 file +UF3: W_W.uf3 file should contain UF3 potential for 1 1 +UF3: File W_W.uf3 contains 2-body UF3 potential +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform + knot spacing +pair_coeff 3b 1 1 1 W_W_W.uf3 + +UF3: Opening W_W_W.uf3 file +UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 +UF3: File W_W_W.uf3 contains 3-body UF3 potential +UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform + knot spacing +UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 +UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 +UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 6.5 + ghost atom cutoff = 6.5 + binsize = 3.25, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.205 | 3.205 | 3.205 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.3916353 0 -4.3531602 -21224 + 10 292.96093 -4.3907325 0 -4.3531602 -21177.095 + 20 272.60651 -4.3881219 0 -4.35316 -21038.525 + 30 241.12074 -4.3840835 0 -4.3531597 -20793.964 + 40 201.8718 -4.3790495 0 -4.3531594 -20444.219 + 50 159.06853 -4.3735596 0 -4.353159 -19996.634 + 60 117.24817 -4.3681958 0 -4.3531587 -19470.011 + 70 80.716097 -4.3635102 0 -4.3531584 -18905.505 + 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 + 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 + 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 +Loop time of 0.133856 on 4 procs for 100 steps with 128 atoms + +Performance: 32.273 ns/day, 0.744 hours/ns, 747.069 timesteps/s, 95.625 katom-step/s +98.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.1196 | 0.1221 | 0.12575 | 0.7 | 91.22 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0074076 | 0.011068 | 0.01359 | 2.4 | 8.27 +Output | 0.00013888 | 0.00015365 | 0.00018854 | 0.0 | 0.11 +Modify | 0.00010546 | 0.00011783 | 0.00013025 | 0.0 | 0.09 +Other | | 0.0004172 | | | 0.31 + +Nlocal: 32 ave 32 max 32 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 697 ave 697 max 697 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 2048 ave 2048 max 2048 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8192 +Ave neighs/atom = 64 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 From fca23dac72bddfcb34d3cbfc91b9a0deac2db1f2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 27 Mar 2024 07:26:43 -0400 Subject: [PATCH 031/313] some style cleanup and simplified pair_style and pair_coeff input --- examples/PACKAGES/uf3/in.uf3.2b.W | 2 +- examples/PACKAGES/uf3/in.uf3.3b.W | 2 +- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 | 22 +-- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 | 22 +-- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 | 24 +-- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 | 24 +-- src/ML-UF3/pair_uf3.cpp | 185 ++++-------------- 7 files changed, 84 insertions(+), 197 deletions(-) diff --git a/examples/PACKAGES/uf3/in.uf3.2b.W b/examples/PACKAGES/uf3/in.uf3.2b.W index 29510ea5b1..bff3529e9c 100644 --- a/examples/PACKAGES/uf3/in.uf3.2b.W +++ b/examples/PACKAGES/uf3/in.uf3.2b.W @@ -24,7 +24,7 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 2 1 +pair_style uf3 2 pair_coeff 1 1 W_W.uf3 diff --git a/examples/PACKAGES/uf3/in.uf3.3b.W b/examples/PACKAGES/uf3/in.uf3.3b.W index e66b38aa83..9ca29293b5 100644 --- a/examples/PACKAGES/uf3/in.uf3.3b.W +++ b/examples/PACKAGES/uf3/in.uf3.3b.W @@ -24,7 +24,7 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 3 1 +pair_style uf3 3 pair_coeff 1 1 W_W.uf3 pair_coeff 3b 1 1 1 W_W_W.uf3 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 index bd4eb61bcd..4dee5c5942 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -39,10 +39,8 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 2 1 +pair_style uf3 2 pair_coeff 1 1 W_W.uf3 - -UF3: Opening W_W.uf3 file UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential UF3: File W_W.uf3 contains 2-body UF3 potential with uniform @@ -91,20 +89,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.113 | 3.113 | 3.113 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0344773 on 1 procs for 100 steps with 128 atoms +Loop time of 0.0345905 on 1 procs for 100 steps with 128 atoms -Performance: 125.300 ns/day, 0.192 hours/ns, 2900.463 timesteps/s, 371.259 katom-step/s -98.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 124.890 ns/day, 0.192 hours/ns, 2890.965 timesteps/s, 370.044 katom-step/s +99.2% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.033145 | 0.033145 | 0.033145 | 0.0 | 96.14 +Pair | 0.03333 | 0.03333 | 0.03333 | 0.0 | 96.36 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00071163 | 0.00071163 | 0.00071163 | 0.0 | 2.06 -Output | 0.0002018 | 0.0002018 | 0.0002018 | 0.0 | 0.59 -Modify | 0.00017741 | 0.00017741 | 0.00017741 | 0.0 | 0.51 -Other | | 0.0002413 | | | 0.70 +Comm | 0.00068797 | 0.00068797 | 0.00068797 | 0.0 | 1.99 +Output | 0.00015217 | 0.00015217 | 0.00015217 | 0.0 | 0.44 +Modify | 0.00019786 | 0.00019786 | 0.00019786 | 0.0 | 0.57 +Other | | 0.0002224 | | | 0.64 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 index 4d42ef0016..10936a977c 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -39,10 +39,8 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 2 1 +pair_style uf3 2 pair_coeff 1 1 W_W.uf3 - -UF3: Opening W_W.uf3 file UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential UF3: File W_W.uf3 contains 2-body UF3 potential with uniform @@ -91,20 +89,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0111207 on 4 procs for 100 steps with 128 atoms +Loop time of 0.0104225 on 4 procs for 100 steps with 128 atoms -Performance: 388.463 ns/day, 0.062 hours/ns, 8992.202 timesteps/s, 1.151 Matom-step/s -98.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 414.488 ns/day, 0.058 hours/ns, 9594.626 timesteps/s, 1.228 Matom-step/s +99.4% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.0087312 | 0.008777 | 0.0088396 | 0.0 | 78.92 +Pair | 0.0076422 | 0.0077975 | 0.0081692 | 0.2 | 74.81 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0019835 | 0.0020323 | 0.0020742 | 0.1 | 18.27 -Output | 7.6664e-05 | 8.1924e-05 | 9.4556e-05 | 0.0 | 0.74 -Modify | 5.4618e-05 | 5.8768e-05 | 6.2489e-05 | 0.0 | 0.53 -Other | | 0.0001708 | | | 1.54 +Comm | 0.001954 | 0.0022765 | 0.0024447 | 0.4 | 21.84 +Output | 7.7086e-05 | 8.2565e-05 | 9.3188e-05 | 0.0 | 0.79 +Modify | 4.8524e-05 | 5.011e-05 | 5.1759e-05 | 0.0 | 0.48 +Other | | 0.0002159 | | | 2.07 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 index ad6c138b96..3e95eb6055 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -39,17 +39,13 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 3 1 +pair_style uf3 3 pair_coeff 1 1 W_W.uf3 - -UF3: Opening W_W.uf3 file UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing pair_coeff 3b 1 1 1 W_W_W.uf3 - -UF3: Opening W_W_W.uf3 file UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 UF3: File W_W_W.uf3 contains 3-body UF3 potential UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform @@ -101,20 +97,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.214 | 3.214 | 3.214 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.486699 on 1 procs for 100 steps with 128 atoms +Loop time of 0.478107 on 1 procs for 100 steps with 128 atoms -Performance: 8.876 ns/day, 2.704 hours/ns, 205.466 timesteps/s, 26.300 katom-step/s -99.7% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 9.036 ns/day, 2.656 hours/ns, 209.158 timesteps/s, 26.772 katom-step/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.48518 | 0.48518 | 0.48518 | 0.0 | 99.69 +Pair | 0.47649 | 0.47649 | 0.47649 | 0.0 | 99.66 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00082659 | 0.00082659 | 0.00082659 | 0.0 | 0.17 -Output | 0.00014676 | 0.00014676 | 0.00014676 | 0.0 | 0.03 -Modify | 0.00025566 | 0.00025566 | 0.00025566 | 0.0 | 0.05 -Other | | 0.0002862 | | | 0.06 +Comm | 0.00082433 | 0.00082433 | 0.00082433 | 0.0 | 0.17 +Output | 0.00020504 | 0.00020504 | 0.00020504 | 0.0 | 0.04 +Modify | 0.00022769 | 0.00022769 | 0.00022769 | 0.0 | 0.05 +Other | | 0.0003635 | | | 0.08 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 index 56ab30c270..330a69ea40 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-324-gfda433a7ee-modified) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -39,17 +39,13 @@ mass 1 183.84 # # ============= set pair style -pair_style uf3 3 1 +pair_style uf3 3 pair_coeff 1 1 W_W.uf3 - -UF3: Opening W_W.uf3 file UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing pair_coeff 3b 1 1 1 W_W_W.uf3 - -UF3: Opening W_W_W.uf3 file UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 UF3: File W_W_W.uf3 contains 3-body UF3 potential UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform @@ -101,20 +97,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.205 | 3.205 | 3.205 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.133856 on 4 procs for 100 steps with 128 atoms +Loop time of 0.135192 on 4 procs for 100 steps with 128 atoms -Performance: 32.273 ns/day, 0.744 hours/ns, 747.069 timesteps/s, 95.625 katom-step/s -98.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 31.955 ns/day, 0.751 hours/ns, 739.688 timesteps/s, 94.680 katom-step/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.1196 | 0.1221 | 0.12575 | 0.7 | 91.22 +Pair | 0.11876 | 0.12259 | 0.13092 | 1.4 | 90.68 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0074076 | 0.011068 | 0.01359 | 2.4 | 8.27 -Output | 0.00013888 | 0.00015365 | 0.00018854 | 0.0 | 0.11 -Modify | 0.00010546 | 0.00011783 | 0.00013025 | 0.0 | 0.09 -Other | | 0.0004172 | | | 0.31 +Comm | 0.0035898 | 0.011903 | 0.015736 | 4.5 | 8.80 +Output | 0.00016067 | 0.00018114 | 0.00023041 | 0.0 | 0.13 +Modify | 9.9574e-05 | 0.00011041 | 0.00012152 | 0.0 | 0.08 +Other | | 0.0004092 | | | 0.30 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 6b518c7ef1..4fa87ba335 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -19,6 +19,7 @@ ---------------------------------------------------------------------- */ #include "pair_uf3.h" + #include "uf3_pair_bspline.h" #include "uf3_triplet_bspline.h" @@ -35,7 +36,9 @@ #include using namespace LAMMPS_NS; -using namespace MathConst; +using MathConst::THIRD; + +/* ---------------------------------------------------------------------- */ PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp) { @@ -45,11 +48,11 @@ PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp) neighshort = nullptr; centroidstressflag = CENTROID_AVAIL; manybody_flag = 1; - one_coeff = 0; //if 1 then allow only one coeff call of form 'pair_coeff * *' - //by setting it to 0 we will allow multiple 'pair_coeff' calls bsplines_created = 0; } +/* ---------------------------------------------------------------------- */ + PairUF3::~PairUF3() { if (copymode) return; @@ -75,18 +78,11 @@ PairUF3::~PairUF3() void PairUF3::settings(int narg, char **arg) { - if (narg != 2) - error->all(FLERR, "UF3: Invalid number of argument in pair settings\n\ - Are you running 2-body or 2 & 3-body UF potential\n\ - Also how many elements?"); + if (narg != 1) + error->all(FLERR, "Invalid number of arguments for pair_style uf3" + " Are you using a 2-body or 2 & 3-body UF potential?"); nbody_flag = utils::numeric(FLERR, arg[0], true, lmp); - num_of_elements = utils::numeric(FLERR, arg[1], true, lmp); // atom->ntypes; - if (num_of_elements != atom->ntypes) { - if (comm->me == 0) - utils::logmesg(lmp, "\nUF3: Number of elements provided in the input file and \ -number of elements detected by lammps in the structure are not same\n\ - proceed with caution\n"); - } + num_of_elements = atom->ntypes; if (nbody_flag == 2) { pot_3b = false; n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; @@ -97,7 +93,7 @@ number of elements detected by lammps in the structure are not same\n\ n3body_pot_files = num_of_elements * (num_of_elements * (num_of_elements + 1) / 2); tot_pot_files = n2body_pot_files + n3body_pot_files; } else - error->all(FLERR, "UF3: UF3 not yet implemented for {}-body", nbody_flag); + error->all(FLERR, "Pair style uf3 not (yet) implemented for {}-body terms", nbody_flag); } /* ---------------------------------------------------------------------- @@ -107,131 +103,33 @@ void PairUF3::coeff(int narg, char **arg) { if (!allocated) allocate(); - if (narg != 3 && narg != 5){ - /*error->warning(FLERR, "\nUF3: WARNING!! It seems that you are using the \n\ - older style of specifying UF3 POT files. This style of listing \n\ - all the potential files on a single line will be depcrecated in \n\ - the next version of ML-UF3");*/ - if (narg == tot_pot_files + 2) - error->all(FLERR, "UF3 The old style of listing all the potential files\n\ - on a single line is depcrecated"); - else - error->all(FLERR, "UF3: Invalid number of argument in pair coeff;\n\ - Provide the species number followed by the LAMMPS POT file\n\ - Eg. 'pair_coeff 1 1 POT_FILE' for 2-body and \n\ - 'pair_coeff 3b 1 2 2 POT_FILE' for 3-body."); - } - if (narg == 3 || narg == 5){ - int ilo, ihi, jlo, jhi, klo, khi; - if (narg == 3){ - utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); - utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); - } + if (narg != 3 && narg != 5) + error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); - if (narg == 5){ - utils::bounds(FLERR, arg[1], 1, atom->ntypes, ilo, ihi, error); - utils::bounds(FLERR, arg[2], 1, atom->ntypes, jlo, jhi, error); - utils::bounds(FLERR, arg[3], 1, atom->ntypes, klo, khi, error); - } - - if (narg == 3){ - if (utils::strmatch(arg[0],".*\\*.*") || utils::strmatch(arg[1],".*\\*.*")){ - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo, i); j <= jhi; j++) { - if (comm->me == 0) - utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[2]); - uf3_read_pot_file(i,j,arg[2]); - } - } - } - - else{ - int i = utils::inumeric(FLERR, arg[0], true, lmp); - int j = utils::inumeric(FLERR, arg[1], true, lmp); - if (comm->me == 0) - utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[2]); + int ilo, ihi, jlo, jhi, klo, khi; + if (narg == 3) { + utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo, i); j <= jhi; j++) { uf3_read_pot_file(i,j,arg[2]); } } + } else if (narg == 5) { + utils::bounds(FLERR, arg[1], 1, atom->ntypes, ilo, ihi, error); + utils::bounds(FLERR, arg[2], 1, atom->ntypes, jlo, jhi, error); + utils::bounds(FLERR, arg[3], 1, atom->ntypes, klo, khi, error); + if (!utils::strmatch(arg[0],"^3b$")) + error->all(FLERR, "Pair style uf3 3-body terms require the first argument to be 3b"); - if (narg == 5){ - if (!utils::strmatch(arg[0],"3b")) - error->all(FLERR, "UF3: Invalid argument. For 3-body the first argument\n\ - argument to pair_coeff needs to be 3b.\n\ - Example pair_coeff 3b 1 2 2 A_B_B."); - if (utils::strmatch(arg[1],".*\\*.*") || utils::strmatch(arg[2],".*\\*.*") || utils::strmatch(arg[3],".*\\*.*")){ - for (int i = ilo; i <= ihi; i++) { - for (int j = jlo; j <= jhi; j++) { - for (int k = MAX(klo, jlo); k <= khi; k++) { - if (comm->me == 0) - utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[4]); - uf3_read_pot_file(i,j,k,arg[4]); - } - } - } - } - else{ - if (comm->me == 0) - utils::logmesg(lmp, "\nUF3: Opening {} file\n", arg[4]); - int i = utils::inumeric(FLERR, arg[1], true, lmp); - int j = utils::inumeric(FLERR, arg[2], true, lmp); - int k = utils::inumeric(FLERR, arg[3], true, lmp); - uf3_read_pot_file(i,j,k,arg[4]); - } - } - } - - /*else{ - if (narg != tot_pot_files + 2) - error->all(FLERR,"UF3: Invalid number of argument in pair coeff; \n\ - Number of potential files provided is not correct"); - - error->warning(FLERR, "\nUF3: WARNING!! It seems that you are using the \n\ - older style of specifying UF3 POT files. This style of listing \n\ - all the potential files on a single line will be depcrecated in \n\ - the next version of ML-UF3"); - - // open UF3 potential file on all proc - for (int i = 2; i < narg; i++) { uf3_read_pot_file(arg[i]); } - if (!bsplines_created) create_bsplines(); - - // setflag check needed here - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - if (setflag[i][j] != 1) - error->all(FLERR,"UF3: Not all 2-body UF potentials are set, \n\ - missing potential file for {}-{} interaction",i, j); - } - } - - if (pot_3b) { - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = 1; k < num_of_elements + 1; k++) { - if (setflag_3b[i][j][k] != 1) - error->all(FLERR,"UF3: Not all 3-body UF potentials are set, \n\ - missing potential file for {}-{}-{} interaction", i, j, k); - } - } - } - } - for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j]); - UFBS2b[j][i] = UFBS2b[i][j]; - } - if (pot_3b) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = j; k < num_of_elements + 1; k++) { - std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - UFBS3b[i][j][k] = - uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key]); - UFBS3b[i][k][j] = UFBS3b[i][j][k]; + for (int i = ilo; i <= ihi; i++) { + for (int j = jlo; j <= jhi; j++) { + for (int k = MAX(klo, jlo); k <= khi; k++) { + uf3_read_pot_file(i,j,k,arg[4]); } } } } - }*/ } void PairUF3::allocate() @@ -356,13 +254,13 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) trailing_trim=3\n"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type,"uk")){ + if (utils::strmatch(knot_type,"uk")) { utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform\n\ knot spacing\n",potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; } - else if (utils::strmatch(knot_type,"nk")){ + else if (utils::strmatch(knot_type,"nk")) { utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform\n\ knot spacing\n",potf_name); knot_spacing_type_2b[itype][jtype] = 1; @@ -479,13 +377,13 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name trailing_trim=3\n"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type,"uk")){ + if (utils::strmatch(knot_type,"uk")) { utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform\n\ knot spacing\n",potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; } - else if (utils::strmatch(knot_type,"nk")){ + else if (utils::strmatch(knot_type,"nk")) { utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with non-uniform\n\ knot spacing\n",potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 1; @@ -1122,7 +1020,7 @@ void PairUF3::compute(int eflag, int vflag) rjk = sqrt( ((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); - if (rjk >= min_cut_3b[itype][jtype][ktype][0]){ + if (rjk >= min_cut_3b[itype][jtype][ktype][0]) { double *triangle_eval = UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); fij[0] = *(triangle_eval + 1) * (del_rji[0] / rij); @@ -1169,7 +1067,8 @@ void PairUF3::compute(int eflag, int vflag) if (eflag) evdwl = *triangle_eval; - if (evflag) { ev_tally3(i, j, k, evdwl, 0, Fj, Fk, del_rji, del_rki); + if (evflag) { + ev_tally3(i, j, k, evdwl, 0, Fj, Fk, del_rji, del_rki); // Centroid stress 3-body term if (vflag_either && cvflag_atom) { double ric[3]; @@ -1267,12 +1166,12 @@ double PairUF3::memory_usage() bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ (num_of_elements+1)*3*sizeof(double); //min_cut_3b - for (int i=1; i < num_of_elements+1; i++){ - for (int j=i; j < num_of_elements+1; j++){ + for (int i=1; i < num_of_elements+1; i++) { + for (int j=i; j < num_of_elements+1; j++) { bytes += (double)2*n2b_knot[i][j].size()*sizeof(double); //n2b_knot bytes += (double)2*n2b_coeff[i][j].size()*sizeof(double); //n2b_coeff } - if (pot_3b){ + if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { bytes += (double)2*n3b_knot_matrix[i][j][k][0].size()*sizeof(double); @@ -1281,8 +1180,8 @@ double PairUF3::memory_usage() std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - for (int l=0; l < n3b_coeff_matrix[key].size(); l++){ - for (int m=0; m < n3b_coeff_matrix[key][l].size(); m++){ + for (int l=0; l < n3b_coeff_matrix[key].size(); l++) { + for (int m=0; m < n3b_coeff_matrix[key][l].size(); m++) { bytes += (double)2*n3b_coeff_matrix[key][l][m].size()*sizeof(double); //key = ijk //key = ikj @@ -1294,7 +1193,7 @@ double PairUF3::memory_usage() } for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++){ + for (int j = i; j < num_of_elements + 1; j++) { bytes += (double)2*UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] } if (pot_3b) { From eb89c7a39254cc17b6e55c5e0001d4e79f9c60c9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 17:01:37 -0400 Subject: [PATCH 032/313] examples folder was moved --- doc/src/Packages_list.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Packages_list.rst b/doc/src/Packages_list.rst index e86e43e9ce..2fd4086452 100644 --- a/doc/src/Packages_list.rst +++ b/doc/src/Packages_list.rst @@ -321,7 +321,7 @@ whether an extra library is needed to build and use the package: * - :ref:`ML-UF3 ` - quantum-fitted ultra fast potentials - :doc:`pair_style uf3 ` - - uf3 + - PACKAGES/uf3 - no * - :ref:`MOFFF ` - styles for `MOF-FF `_ force field From 392c3b6d65ba0ae97f9e5787bdbff282098bd164 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 17:02:07 -0400 Subject: [PATCH 033/313] manybody and single flag need to be changed from the default when 2-body/3-body is selected --- src/ML-UF3/pair_uf3.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 4fa87ba335..9403bc3648 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -85,10 +85,12 @@ void PairUF3::settings(int narg, char **arg) num_of_elements = atom->ntypes; if (nbody_flag == 2) { pot_3b = false; + manybody_flag = 0; n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; tot_pot_files = n2body_pot_files; } else if (nbody_flag == 3) { pot_3b = true; + single_enable = 0; n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; n3body_pot_files = num_of_elements * (num_of_elements * (num_of_elements + 1) / 2); tot_pot_files = n2body_pot_files + n3body_pot_files; From a6e5c8b981236b933b2717d9447d41e32d2f2696 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 17:31:34 -0400 Subject: [PATCH 034/313] update more files and docs for .uf3 potential file extension also remove redundant files --- doc/src/pair_uf3.rst | 54 ++++---- potentials/{A_A.uf3_pot => A_A.uf3} | 0 potentials/{A_A_A.uf3_pot => A_A_A.uf3} | 0 potentials/README | 1 + unittest/force-styles/tests/A_A.uf3_pot | 7 - unittest/force-styles/tests/A_A_A.uf3_pot | 129 ------------------ .../force-styles/tests/manybody-pair-uf3.yaml | 8 +- 7 files changed, 32 insertions(+), 167 deletions(-) rename potentials/{A_A.uf3_pot => A_A.uf3} (100%) rename potentials/{A_A_A.uf3_pot => A_A_A.uf3} (100%) delete mode 100644 unittest/force-styles/tests/A_A.uf3_pot delete mode 100644 unittest/force-styles/tests/A_A_A.uf3_pot diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index 38122bc982..49ca018b85 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -25,25 +25,25 @@ Examples .. code-block:: LAMMPS - pair_style uf3 3 1 - pair_coeff 1 1 Nb_Nb - pair_coeff 3b 1 1 1 Nb_Nb_Nb + pair_style uf3 3 + pair_coeff 1 1 Nb_Nb.uf3 + pair_coeff 3b 1 1 1 Nb_Nb_Nb.uf3 - pair_style uf3 2 2 - pair_coeff 1 1 Nb_Nb - pair_coeff 1 2 Nb_Sn - pair_coeff 2 2 Sn_Sn + pair_style uf3 2 + pair_coeff 1 1 Nb_Nb.uf3 + pair_coeff 1 2 Nb_Sn.uf3 + pair_coeff 2 2 Sn_Sn.uf3 - pair_style uf3 3 2 - pair_coeff 1 1 Nb_Nb - pair_coeff 1 2 Nb_Sn - pair_coeff 2 2 Sn_Sn - pair_style 3b 1 1 1 Nb_Nb_Nb - pair_style 3b 1 1 2 Nb_Nb_Sn - pair_style 3b 1 2 2 Nb_Sn_Sn - pair_style 3b 2 1 1 Sn_Nb_Nb - pair_style 3b 2 1 2 Sn_Nb_Sn - pair_style 3b 2 2 2 Sn_Sn_Sn + pair_style uf3 3 + pair_coeff 1 1 Nb_Nb.uf3 + pair_coeff 1 2 Nb_Sn.uf3 + pair_coeff 2 2 Sn_Sn.uf3 + pair_style 3b 1 1 1 Nb_Nb_Nb.uf3 + pair_style 3b 1 1 2 Nb_Nb_Sn.uf3 + pair_style 3b 1 2 2 Nb_Sn_Sn.uf3 + pair_style 3b 2 1 1 Sn_Nb_Nb.uf3 + pair_style 3b 2 1 2 Sn_Nb_Sn.uf3 + pair_style 3b 2 2 2 Sn_Sn_Sn.uf3 Description """"""""""" @@ -87,16 +87,16 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements .. code-block:: LAMMPS - pair_style uf3 3 2 - pair_coeff 1 1 A_A - pair_coeff 1 2 A_B - pair_coeff 2 2 B_B - pair_coeff 3b 1 1 1 A_A_A - pair_coeff 3b 1 1 2 A_A_B - pair_coeff 3b 1 2 2 A_B_B - pair_coeff 3b 2 1 1 B_A_A - pair_coeff 3b 2 1 2 B_A_B - pair_coeff 3b 2 2 2 B_B_B + pair_style uf3 3 + pair_coeff 1 1 A_A.uf3 + pair_coeff 1 2 A_B.uf3 + pair_coeff 2 2 B_B.uf3 + pair_coeff 3b 1 1 1 A_A_A.uf3 + pair_coeff 3b 1 1 2 A_A_B.uf3 + pair_coeff 3b 1 2 2 A_B_B.uf3 + pair_coeff 3b 2 1 1 B_A_A.uf3 + pair_coeff 3b 2 1 2 B_A_B.uf3 + pair_coeff 3b 2 2 2 B_B_B.uf3 If a value of "2" is specified in the :code:`pair_style uf3` command, only the two-body potential files are needed. For 3-body interaction the diff --git a/potentials/A_A.uf3_pot b/potentials/A_A.uf3 similarity index 100% rename from potentials/A_A.uf3_pot rename to potentials/A_A.uf3 diff --git a/potentials/A_A_A.uf3_pot b/potentials/A_A_A.uf3 similarity index 100% rename from potentials/A_A_A.uf3_pot rename to potentials/A_A_A.uf3 diff --git a/potentials/README b/potentials/README index 2cb4a383c5..2d6d4c172a 100644 --- a/potentials/README +++ b/potentials/README @@ -118,4 +118,5 @@ sw Stillinger-Weber potential tersoff Tersoff potential tersoff.mod modified Tersoff potential tersoff.zbl Tersoff with ZBL core +uf3 UF3 potential vashishta Vashishta 2-body and 3-body potential diff --git a/unittest/force-styles/tests/A_A.uf3_pot b/unittest/force-styles/tests/A_A.uf3_pot deleted file mode 100644 index a50b48bae9..0000000000 --- a/unittest/force-styles/tests/A_A.uf3_pot +++ /dev/null @@ -1,7 +0,0 @@ -#UF3 POT -2B 0 3 nk -8.0 31 -0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 -27 -79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 -# diff --git a/unittest/force-styles/tests/A_A_A.uf3_pot b/unittest/force-styles/tests/A_A_A.uf3_pot deleted file mode 100644 index 18f79c3b8a..0000000000 --- a/unittest/force-styles/tests/A_A_A.uf3_pot +++ /dev/null @@ -1,129 +0,0 @@ -#UF3 POT -3B 0 3 nk -8.0 4.0 4.0 23 15 15 -0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 -0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 -0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 -11 11 19 --1.1790416072105636e-06 6.589114265858035e-08 2.1094970065385374e-06 4.7014910818419987e-07 8.288423734406254e-06 0.000186151370764668 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -9.36844864368356e-06 1.9223644807676324e-05 1.9979026246524356e-05 3.627062812549574e-05 9.775578281629195e-06 -5.894357549683858e-06 6.470814473155067e-07 2.31805322174729e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00013804169495254125 0.0012238504051117233 0.01461439973735456 0.010197731078827295 0.009003775355755566 0.030381456320656558 0.024785731678029766 0.004637019267552505 -0.005938106654005813 -0.002605150959220643 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 --2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 --7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.003917873880791907 -0.0007874629498581528 -2.4595030318112164e-05 -2.8508297646329816e-06 1.8504666071760445e-07 0.0001190800388356091 0.0035373487148805376 0.00037674157183609377 0.0012087894330956167 0.0009651695201594091 4.769364472898923e-05 0.0004612591073953361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 -5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 -4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 -0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0016181071043329578 0.003179470547568356 0.008661622548635572 0.011071785334468471 0.004294892778359652 0.0017845979744737465 0.0034643761195723064 0.015112039067322293 0.022192108732694595 0.008134230944897397 0.0007595380961610584 1.6727218309602107e-05 0.00012823915020345735 0.0001971442066043176 0.0 0.0 0.0 0.0 0.0 -0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 -0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 -6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 -5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 -0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 -0.00018639122271027446 0.0034767153815636618 0.018231622622978436 0.0042988446466234575 0.05300133577632108 0.7250033316881788 0.4935009383219143 0.42606157195551264 1.5039118559972142 1.2303936880370434 0.22548363428435172 -0.30298333788301807 -0.13073656424500055 -0.010403074319359695 0.005059645288601829 0.0015181780063355998 0.0 0.0 0.0 -0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 --0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 --2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 -4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 -0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 -0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 --0.011510449622067839 -0.0007610595804959427 1.0172131902385016e-05 0.00448473230635448 0.2199020425072735 0.07466247888373397 0.21339517449435372 0.013531084627798973 0.04473458040783101 0.2378714243611067 0.10478901497777 0.37112701147924365 0.27817806337533985 -0.2385293501359752 -0.33578482057600856 -0.004009555340792723 0.0 0.0 0.0 -4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 --7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 -0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 -6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 --0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 -4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 --0.0008465335016788498 -9.208409992139663e-05 -1.1210629044433908e-05 0.004300763141885697 0.1800503541691201 0.016819879476467067 0.060737350690215776 0.042330087306607714 0.0007006095666399378 0.02251352126872946 0.011185142175963118 -0.02716513333374441 0.00952941322650142 0.02210443704516212 0.07011148238258197 0.057840211345517194 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -# diff --git a/unittest/force-styles/tests/manybody-pair-uf3.yaml b/unittest/force-styles/tests/manybody-pair-uf3.yaml index 8ba4a24e44..cd7fbb9196 100644 --- a/unittest/force-styles/tests/manybody-pair-uf3.yaml +++ b/unittest/force-styles/tests/manybody-pair-uf3.yaml @@ -1,6 +1,6 @@ --- lammps_version: 24 Mar 2022 -tags: generated +tags: date_generated: Tue Nov 28 14:51:03 2023 epsilon: 1e-09 skip_tests: @@ -12,10 +12,10 @@ pre_commands: ! | variable newton_bond delete post_commands: ! "" input_file: in.manybody -pair_style: uf3 3 8 +pair_style: uf3 3 pair_coeff: ! | - * * A_A.uf3_pot - 3b * * * A_A_A.uf3_pot + * * A_A.uf3 + 3b * * * A_A_A.uf3 extract: ! "" natoms: 64 init_vdwl: -76.14388662099438 From ecb5704f250f6b19779f8f28398701ef68c7fa51 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 17:32:26 -0400 Subject: [PATCH 035/313] some formatting and logic cleanup. --- src/ML-UF3/pair_uf3.cpp | 153 +++++++++++++++++++--------------------- 1 file changed, 71 insertions(+), 82 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 9403bc3648..240174e2c4 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -208,14 +208,11 @@ void PairUF3::allocate() void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) { - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", \ - potf_name, itype, jtype); + if (comm->me == 0) + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", potf_name, itype, jtype); - if (!platform::file_is_readable(potf_name)) - error->all(FLERR, "UF3: {} file is not readable", potf_name); - - FILE *fp; - fp = utils::open_potential(potf_name, lmp, nullptr); + FILE *fp = utils::open_potential(potf_name, lmp, nullptr); + if (!fp) error->one(FLERR,"Cannot open UF3 potential file {}", potf_name); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -224,62 +221,60 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) Tokenizer file_header(temp_line); if (file_header.count() != 2) - error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ - {} word/s",potf_name,file_header.count()); + error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found " + "{} word/s",potf_name,file_header.count()); if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n\ - files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" + "files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); if (fp2nd_line.count() != 4) - error->all(FLERR, "UF3: Expected 4 words on 2nd line =>\n\ - nBody leading_trim trailing_trim type_of_knot_spacing\n\ - Found {}",temp_line); + error->all(FLERR, "UF3: Expected 4 words on 2nd line =>\n" + " nBody leading_trim trailing_trim type_of_knot_spacing\n" + " Found {}",temp_line); std::string nbody_on_file = fp2nd_line.next_string(); if (utils::strmatch(nbody_on_file,"2B")) utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n",potf_name); else - error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", - nbody_on_file); + error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); int trailing_trim = fp2nd_line.next_int(); if (leading_trim != 0) - error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ - leading_trim=0\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for " + "leading_trim=0"); if (trailing_trim != 3) - error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ - trailing_trim=3\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for " + "trailing_trim=3"); std::string knot_type = fp2nd_line.next_string(); if (utils::strmatch(knot_type,"uk")) { - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform\n\ - knot spacing\n",potf_name); + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform " + "knot spacing",potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; } else if (utils::strmatch(knot_type,"nk")) { - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform\n\ - knot spacing\n",potf_name); + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform " + "knot spacing",potf_name); knot_spacing_type_2b[itype][jtype] = 1; knot_spacing_type_2b[jtype][itype] = 1; - /*error->all(FLERR, "UF3: Current implementation only works with uniform\n\ - knot spacing");*/ + /*error->all(FLERR, "UF3: Current implementation only works with uniform " + " knot spacing");*/ } else - error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots)\n\ - Found {} on the 2nd line of {} pot file",knot_type,potf_name); + error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "Found {} on the 2nd line of {} pot file",knot_type,potf_name); temp_line = txtfilereader.next_line(1); ValueTokenizer fp3rd_line(temp_line); if (fp3rd_line.count() != 2) - error->all(FLERR, "UF3: Expected only 2 numbers on 3rd line =>\n\ - Rij_CUTOFF NUM_OF_KNOTS\n\ - Found {} number/s",fp3rd_line.count()); + error->all(FLERR, "UF3: Expected only 2 numbers on 3rd line => " + "Rij_CUTOFF NUM_OF_KNOTS. Found {} number/s",fp3rd_line.count()); //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared cut[itype][jtype] = fp3rd_line.next_double(); @@ -291,7 +286,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) ValueTokenizer fp4th_line(temp_line); if (fp4th_line.count() != num_knots_2b) - error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", + error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_2b,fp4th_line.count()); n2b_knot[itype][jtype].resize(num_knots_2b); @@ -333,11 +328,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", potf_name, itype, jtype, ktype); - if (!platform::file_is_readable(potf_name)) - error->all(FLERR, "UF3: {} file is not readable", potf_name); - - FILE *fp; - fp = utils::open_potential(potf_name, lmp, nullptr); + FILE *fp = utils::open_potential(potf_name, lmp, nullptr); + if (!fp) error->one(FLERR,"Cannot open UF3 potential file {}", potf_name); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -346,20 +338,20 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name Tokenizer file_header(temp_line); if (file_header.count() != 2) - error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found \n\ - {} word/s",potf_name,file_header.count()); + error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found " + "{} word/s",potf_name,file_header.count()); if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n\ - files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT " + "files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); if (fp2nd_line.count() != 4) - error->all(FLERR, "UF3: Expected 3 words on 2nd line =>\n\ - nBody leading_trim trailing_trim type_of_knot_spacing\n\ - Found {}",temp_line); + error->all(FLERR, "UF3: Expected 3 words on 2nd line => " + "nBody leading_trim trailing_trim type_of_knot_spacing " + "Found {}",temp_line); std::string nbody_on_file = fp2nd_line.next_string(); @@ -372,38 +364,36 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name int leading_trim = fp2nd_line.next_int(); int trailing_trim = fp2nd_line.next_int(); if (leading_trim != 0) - error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ - leading_trim=0\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for " + "leading_trim=0\n"); if (trailing_trim != 3) - error->all(FLERR, "UF3: Current implementation is throughly tested only for\n\ - trailing_trim=3\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for " + "trailing_trim=3\n"); std::string knot_type = fp2nd_line.next_string(); if (utils::strmatch(knot_type,"uk")) { - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform\n\ - knot spacing\n",potf_name); + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform " + "knot spacing\n",potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; } else if (utils::strmatch(knot_type,"nk")) { - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with non-uniform\n\ - knot spacing\n",potf_name); + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with non-uniform " + "knot spacing\n",potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 1; knot_spacing_type_3b[itype][ktype][jtype] = 1; - /*error->all(FLERR, "UF3: Current implementation only works with uniform\n\ - knot spacing");*/ } else - error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots)\n\ - Found {} on the 2nd line of {} pot file",knot_type,potf_name); + error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "Found {} on the 2nd line of {} pot file",knot_type,potf_name); temp_line = txtfilereader.next_line(6); ValueTokenizer fp3rd_line(temp_line); if (fp3rd_line.count() != 6) - error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line =>\n\ - Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ\n\ - Found {} number/s",fp3rd_line.count()); + error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line => " + "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ " + "Found {} number/s",fp3rd_line.count()); double cut3b_rjk = fp3rd_line.next_double(); double cut3b_rij = fp3rd_line.next_double(); @@ -414,8 +404,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name } if (2 * cut3b_rik != cut3b_rjk) { - error->all(FLERR, "UF3: 2rij=2rik!=rik, Current implementation only works \n\ - for 2rij=2rik!=rik"); + error->all(FLERR, "UF3: 2rij=2rik!=rik, Current implementation only works " + "for 2rij=2rik!=rik"); } cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); @@ -507,25 +497,25 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name ValueTokenizer fp7th_line(temp_line); if (fp7th_line.count() != 3) - error->all(FLERR, "UF3: Expected 3 numbers on 7th line =>\n\ - SHAPE_OF_COEFF_MATRIX[I][J][K] \n\ - found {} numbers", fp7th_line.count()); + error->all(FLERR, "UF3: Expected 3 numbers on 7th line => " + "SHAPE_OF_COEFF_MATRIX[I][J][K] " + "found {} numbers", fp7th_line.count()); coeff_matrix_dim1 = fp7th_line.next_int(); coeff_matrix_dim2 = fp7th_line.next_int(); coeff_matrix_dim3 = fp7th_line.next_int(); if (n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and \n\ - coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and " + "coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and \n\ - coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1",potf_name); + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and " + "coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1",potf_name); if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and \n\ - coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1",potf_name); + error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and " + "coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1",potf_name); coeff_matrix_elements_len = coeff_matrix_dim3; @@ -541,8 +531,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); if (coeff_line.count() != coeff_matrix_elements_len) - error->all(FLERR, "UF3: Expected {} numbers on {}th line but found \n\ - {} numbers",coeff_matrix_elements_len, line_count+8, coeff_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on {}th line but found " + "{} numbers",coeff_matrix_elements_len, line_count+8, coeff_line.count()); for (int k = 0; k < coeff_matrix_dim3; k++) { n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); } @@ -576,9 +566,8 @@ void PairUF3::uf3_read_pot_file(char *potf_name) { if (comm->me == 0) utils::logmesg(lmp, "\nUF3: Opening {} file\n", potf_name); - FILE *fp; - fp = utils::open_potential(potf_name, lmp, nullptr); - // if (fp) error->all(FLERR,"UF3: {} file not found",potf_name); + FILE *fp = utils::open_potential(potf_name, lmp, nullptr); + if (!fp) error->all(FLERR,"Cannot open UF3 potential file {}",potf_name); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -823,8 +812,8 @@ void PairUF3::create_bsplines() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { if (setflag[i][j] != 1) - error->all(FLERR,"UF3: Not all 2-body UF potentials are set, \n\ - missing potential file for {}-{} interaction",i, j); + error->all(FLERR,"UF3: Not all 2-body UF potentials are set, " + "missing potential file for {}-{} interaction",i, j); } } if (pot_3b) { @@ -832,8 +821,8 @@ void PairUF3::create_bsplines() for (int j = 1; j < num_of_elements + 1; j++) { for (int k = 1; k < num_of_elements + 1; k++) { if (setflag_3b[i][j][k] != 1) - error->all(FLERR,"UF3: Not all 3-body UF potentials are set, \n\ - missing potential file for {}-{}-{} interaction", i, j, k); + error->all(FLERR,"UF3: Not all 3-body UF potentials are set, " + "missing potential file for {}-{}-{} interaction", i, j, k); } } } @@ -1155,17 +1144,17 @@ double PairUF3::memory_usage() bytes += (double)5*sizeof(double); //bsplines_created, coeff_matrix_dim1, //coeff_matrix_dim2, coeff_matrix_dim3, //coeff_matrix_elements_len - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + bytes += (double)(num_of_elements+1)*(num_of_elements+1)* (num_of_elements+1)*sizeof(double); //***setflag_3b bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + bytes += (double)(num_of_elements+1)*(num_of_elements+1)* (num_of_elements+1)*sizeof(double); //***cut_3b bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut_3b_list - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*\ + bytes += (double)(num_of_elements+1)*(num_of_elements+1)* (num_of_elements+1)*3*sizeof(double); //min_cut_3b for (int i=1; i < num_of_elements+1; i++) { From 34f88843fa34040ca01243befeec251434fa6076 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 21:50:30 -0400 Subject: [PATCH 036/313] update example logs --- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 | 23 ++++++++--------- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 | 23 ++++++++--------- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 | 25 ++++++++----------- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 | 25 ++++++++----------- 4 files changed, 44 insertions(+), 52 deletions(-) diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 index 4dee5c5942..b1d413be3e 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -43,9 +43,7 @@ pair_style uf3 2 pair_coeff 1 1 W_W.uf3 UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform - knot spacing - +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing # # ============= Setup output @@ -64,6 +62,7 @@ velocity all create 300.0 2367804 loop geom fix 1 all nve run ${nsteps} run 100 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes max neighbors/atom: 2000, page size: 100000 @@ -89,20 +88,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.113 | 3.113 | 3.113 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0345905 on 1 procs for 100 steps with 128 atoms +Loop time of 0.0344829 on 1 procs for 100 steps with 128 atoms -Performance: 124.890 ns/day, 0.192 hours/ns, 2890.965 timesteps/s, 370.044 katom-step/s -99.2% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 125.280 ns/day, 0.192 hours/ns, 2899.990 timesteps/s, 371.199 katom-step/s +99.3% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.03333 | 0.03333 | 0.03333 | 0.0 | 96.36 +Pair | 0.033254 | 0.033254 | 0.033254 | 0.0 | 96.44 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00068797 | 0.00068797 | 0.00068797 | 0.0 | 1.99 -Output | 0.00015217 | 0.00015217 | 0.00015217 | 0.0 | 0.44 -Modify | 0.00019786 | 0.00019786 | 0.00019786 | 0.0 | 0.57 -Other | | 0.0002224 | | | 0.64 +Comm | 0.00069442 | 0.00069442 | 0.00069442 | 0.0 | 2.01 +Output | 0.0001137 | 0.0001137 | 0.0001137 | 0.0 | 0.33 +Modify | 0.0002176 | 0.0002176 | 0.0002176 | 0.0 | 0.63 +Other | | 0.0002033 | | | 0.59 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 index 10936a977c..fa1455369b 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -43,9 +43,7 @@ pair_style uf3 2 pair_coeff 1 1 W_W.uf3 UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform - knot spacing - +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing # # ============= Setup output @@ -64,6 +62,7 @@ velocity all create 300.0 2367804 loop geom fix 1 all nve run ${nsteps} run 100 +Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes max neighbors/atom: 2000, page size: 100000 @@ -89,20 +88,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0104225 on 4 procs for 100 steps with 128 atoms +Loop time of 0.00969615 on 4 procs for 100 steps with 128 atoms -Performance: 414.488 ns/day, 0.058 hours/ns, 9594.626 timesteps/s, 1.228 Matom-step/s -99.4% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 445.538 ns/day, 0.054 hours/ns, 10313.372 timesteps/s, 1.320 Matom-step/s +99.7% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.0076422 | 0.0077975 | 0.0081692 | 0.2 | 74.81 +Pair | 0.0075573 | 0.0076696 | 0.007725 | 0.1 | 79.10 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.001954 | 0.0022765 | 0.0024447 | 0.4 | 21.84 -Output | 7.7086e-05 | 8.2565e-05 | 9.3188e-05 | 0.0 | 0.79 -Modify | 4.8524e-05 | 5.011e-05 | 5.1759e-05 | 0.0 | 0.48 -Other | | 0.0002159 | | | 2.07 +Comm | 0.0017105 | 0.0017634 | 0.0018792 | 0.2 | 18.19 +Output | 6.7305e-05 | 7.2505e-05 | 8.2576e-05 | 0.0 | 0.75 +Modify | 4.551e-05 | 4.8142e-05 | 5.4109e-05 | 0.0 | 0.50 +Other | | 0.0001425 | | | 1.47 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 index 3e95eb6055..f8c3dd8af6 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -43,13 +43,10 @@ pair_style uf3 3 pair_coeff 1 1 W_W.uf3 UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform - knot spacing -pair_coeff 3b 1 1 1 W_W_W.uf3 +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacingpair_coeff 3b 1 1 1 W_W_W.uf3 UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 UF3: File W_W_W.uf3 contains 3-body UF3 potential -UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform - knot spacing +UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform knot spacing UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 @@ -97,20 +94,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.214 | 3.214 | 3.214 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.478107 on 1 procs for 100 steps with 128 atoms +Loop time of 0.477708 on 1 procs for 100 steps with 128 atoms -Performance: 9.036 ns/day, 2.656 hours/ns, 209.158 timesteps/s, 26.772 katom-step/s -99.6% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 9.043 ns/day, 2.654 hours/ns, 209.333 timesteps/s, 26.795 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.47649 | 0.47649 | 0.47649 | 0.0 | 99.66 +Pair | 0.47636 | 0.47636 | 0.47636 | 0.0 | 99.72 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00082433 | 0.00082433 | 0.00082433 | 0.0 | 0.17 -Output | 0.00020504 | 0.00020504 | 0.00020504 | 0.0 | 0.04 -Modify | 0.00022769 | 0.00022769 | 0.00022769 | 0.0 | 0.05 -Other | | 0.0003635 | | | 0.08 +Comm | 0.0007585 | 0.0007585 | 0.0007585 | 0.0 | 0.16 +Output | 0.00016112 | 0.00016112 | 0.00016112 | 0.0 | 0.03 +Modify | 0.00019415 | 0.00019415 | 0.00019415 | 0.0 | 0.04 +Other | | 0.0002393 | | | 0.05 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 index 330a69ea40..6dc5283901 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-326-g338b9b5d61) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -43,13 +43,10 @@ pair_style uf3 3 pair_coeff 1 1 W_W.uf3 UF3: W_W.uf3 file should contain UF3 potential for 1 1 UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform - knot spacing -pair_coeff 3b 1 1 1 W_W_W.uf3 +UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacingpair_coeff 3b 1 1 1 W_W_W.uf3 UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 UF3: File W_W_W.uf3 contains 3-body UF3 potential -UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform - knot spacing +UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform knot spacing UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 @@ -97,20 +94,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.205 | 3.205 | 3.205 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.135192 on 4 procs for 100 steps with 128 atoms +Loop time of 0.130504 on 4 procs for 100 steps with 128 atoms -Performance: 31.955 ns/day, 0.751 hours/ns, 739.688 timesteps/s, 94.680 katom-step/s -99.5% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 33.102 ns/day, 0.725 hours/ns, 766.258 timesteps/s, 98.081 katom-step/s +99.1% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.11876 | 0.12259 | 0.13092 | 1.4 | 90.68 +Pair | 0.1177 | 0.12008 | 0.12246 | 0.7 | 92.01 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0035898 | 0.011903 | 0.015736 | 4.5 | 8.80 -Output | 0.00016067 | 0.00018114 | 0.00023041 | 0.0 | 0.13 -Modify | 9.9574e-05 | 0.00011041 | 0.00012152 | 0.0 | 0.08 -Other | | 0.0004092 | | | 0.30 +Comm | 0.0074641 | 0.0098397 | 0.012226 | 2.4 | 7.54 +Output | 0.00012713 | 0.00013807 | 0.0001675 | 0.0 | 0.11 +Modify | 8.7486e-05 | 9.3752e-05 | 0.00010061 | 0.0 | 0.07 +Other | | 0.0003502 | | | 0.27 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 From 7c3ac315077f6bc6ae2733dc5893ab388e28f3ac Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 21:50:40 -0400 Subject: [PATCH 037/313] remove dead code --- src/KOKKOS/pair_uf3_kokkos.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 38a820a08f..7c524b8d61 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -948,8 +948,6 @@ PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, F_FLOAT fpair = 0; const int i = d_ilist[ii]; - - const tagint itag = tag[i]; const int itype = type[i]; const X_FLOAT xtmp = x(i, 0); const X_FLOAT ytmp = x(i, 1); @@ -966,8 +964,6 @@ PairUF3Kokkos::operator()(TagPairUF3ComputeFullA, for (int jj = 0; jj < jnum; jj++) { int j = d_neighbors_short(i, jj); j &= NEIGHMASK; - const tagint jtag = tag[j]; - const int jtype = type[j]; const X_FLOAT delx = xtmp - x(j, 0); From 379e212135c04e17ebb8a754cf2cbf4b59797c02 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 22:05:27 -0400 Subject: [PATCH 038/313] add system error message with failure to open potential --- src/ML-UF3/pair_uf3.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 240174e2c4..6bf2452d26 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -212,7 +212,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", potf_name, itype, jtype); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) error->one(FLERR,"Cannot open UF3 potential file {}", potf_name); + if (!fp) + error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -329,7 +330,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name potf_name, itype, jtype, ktype); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) error->one(FLERR,"Cannot open UF3 potential file {}", potf_name); + if (!fp) + error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -559,7 +561,6 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name setflag_3b[itype][jtype][ktype] = 1; setflag_3b[itype][ktype][jtype] = 1; - } void PairUF3::uf3_read_pot_file(char *potf_name) @@ -567,7 +568,8 @@ void PairUF3::uf3_read_pot_file(char *potf_name) if (comm->me == 0) utils::logmesg(lmp, "\nUF3: Opening {} file\n", potf_name); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) error->all(FLERR,"Cannot open UF3 potential file {}",potf_name); + if (!fp) + error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; From 3aae2d0c4b8597d024f83718b114014efa31438b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 22:08:36 -0400 Subject: [PATCH 039/313] apply clang-format --- src/ML-UF3/pair_uf3.cpp | 399 ++++++++++++++++++++++------------------ 1 file changed, 220 insertions(+), 179 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 6bf2452d26..cbde78a43f 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -79,7 +79,8 @@ void PairUF3::settings(int narg, char **arg) { if (narg != 1) - error->all(FLERR, "Invalid number of arguments for pair_style uf3" + error->all(FLERR, + "Invalid number of arguments for pair_style uf3" " Are you using a 2-body or 2 & 3-body UF potential?"); nbody_flag = utils::numeric(FLERR, arg[0], true, lmp); num_of_elements = atom->ntypes; @@ -105,30 +106,25 @@ void PairUF3::coeff(int narg, char **arg) { if (!allocated) allocate(); - if (narg != 3 && narg != 5) - error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); + if (narg != 3 && narg != 5) error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); int ilo, ihi, jlo, jhi, klo, khi; if (narg == 3) { utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo, i); j <= jhi; j++) { - uf3_read_pot_file(i,j,arg[2]); - } + for (int j = MAX(jlo, i); j <= jhi; j++) uf3_read_pot_file(i, j, arg[2]); } } else if (narg == 5) { utils::bounds(FLERR, arg[1], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR, arg[2], 1, atom->ntypes, jlo, jhi, error); utils::bounds(FLERR, arg[3], 1, atom->ntypes, klo, khi, error); - if (!utils::strmatch(arg[0],"^3b$")) + if (!utils::strmatch(arg[0], "^3b$")) error->all(FLERR, "Pair style uf3 3-body terms require the first argument to be 3b"); for (int i = ilo; i <= ihi; i++) { for (int j = jlo; j <= jhi; j++) { - for (int k = MAX(klo, jlo); k <= khi; k++) { - uf3_read_pot_file(i,j,k,arg[4]); - } + for (int k = MAX(klo, jlo); k <= khi; k++) uf3_read_pot_file(i, j, k, arg[4]); } } } @@ -150,7 +146,8 @@ void PairUF3::allocate() memory->create(cut, num_of_elements + 1, num_of_elements + 1, "pair:cut"); //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) //1 = non-uniform knot spacing - memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_2b"); + memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, + "pair:knot_spacing_2b"); // Contains knot_vect of 2-body potential for type i and j n2b_knot.resize(num_of_elements + 1); @@ -173,12 +170,11 @@ void PairUF3::allocate() memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, "pair:cut_3b_list"); // Contains info about minimum 3-body cutoff distance for type i, j and k memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, 3, - "pair:min_cut_3b"); - //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) - //1 = non-uniform knot spacing - memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, "pair:knot_spacing_3b"); - + "pair:min_cut_3b"); + //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) + //1 = non-uniform knot spacing + memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, "pair:knot_spacing_3b"); // setting cut_3b and setflag = 0 for (int i = 1; i < num_of_elements + 1; i++) { @@ -209,7 +205,8 @@ void PairUF3::allocate() void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) { if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", potf_name, itype, jtype); + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", potf_name, itype, + jtype); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) @@ -222,60 +219,74 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) Tokenizer file_header(temp_line); if (file_header.count() != 2) - error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found " - "{} word/s",potf_name,file_header.count()); + error->all(FLERR, + "UF3: Expected only two words on 1st line of {} but found " + "{} word/s", + potf_name, file_header.count()); if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" - "files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + error->all(FLERR, + "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" + "files contain '#UF3 POT'. Found {} in the header", + potf_name, temp_line); temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); if (fp2nd_line.count() != 4) - error->all(FLERR, "UF3: Expected 4 words on 2nd line =>\n" - " nBody leading_trim trailing_trim type_of_knot_spacing\n" - " Found {}",temp_line); + error->all(FLERR, + "UF3: Expected 4 words on 2nd line =>\n" + " nBody leading_trim trailing_trim type_of_knot_spacing\n" + " Found {}", + temp_line); std::string nbody_on_file = fp2nd_line.next_string(); - if (utils::strmatch(nbody_on_file,"2B")) - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n",potf_name); + if (utils::strmatch(nbody_on_file, "2B")) + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n", potf_name); else error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); int trailing_trim = fp2nd_line.next_int(); if (leading_trim != 0) - error->all(FLERR, "UF3: Current implementation is throughly tested only for " - "leading_trim=0"); + error->all(FLERR, + "UF3: Current implementation is throughly tested only for " + "leading_trim=0"); if (trailing_trim != 3) - error->all(FLERR, "UF3: Current implementation is throughly tested only for " - "trailing_trim=3"); + error->all(FLERR, + "UF3: Current implementation is throughly tested only for " + "trailing_trim=3"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type,"uk")) { - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with uniform " - "knot spacing",potf_name); + if (utils::strmatch(knot_type, "uk")) { + utils::logmesg(lmp, + "UF3: File {} contains 2-body UF3 potential with uniform " + "knot spacing", + potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; - } - else if (utils::strmatch(knot_type,"nk")) { - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential with non-uniform " - "knot spacing",potf_name); + } else if (utils::strmatch(knot_type, "nk")) { + utils::logmesg(lmp, + "UF3: File {} contains 2-body UF3 potential with non-uniform " + "knot spacing", + potf_name); knot_spacing_type_2b[itype][jtype] = 1; knot_spacing_type_2b[jtype][itype] = 1; /*error->all(FLERR, "UF3: Current implementation only works with uniform " " knot spacing");*/ - } - else - error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " - "Found {} on the 2nd line of {} pot file",knot_type,potf_name); + } else + error->all(FLERR, + "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "Found {} on the 2nd line of {} pot file", + knot_type, potf_name); temp_line = txtfilereader.next_line(1); ValueTokenizer fp3rd_line(temp_line); if (fp3rd_line.count() != 2) - error->all(FLERR, "UF3: Expected only 2 numbers on 3rd line => " - "Rij_CUTOFF NUM_OF_KNOTS. Found {} number/s",fp3rd_line.count()); + error->all(FLERR, + "UF3: Expected only 2 numbers on 3rd line => " + "Rij_CUTOFF NUM_OF_KNOTS. Found {} number/s", + fp3rd_line.count()); //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared cut[itype][jtype] = fp3rd_line.next_double(); @@ -287,8 +298,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) ValueTokenizer fp4th_line(temp_line); if (fp4th_line.count() != num_knots_2b) - error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", - num_knots_2b,fp4th_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_2b, + fp4th_line.count()); n2b_knot[itype][jtype].resize(num_knots_2b); n2b_knot[jtype][itype].resize(num_knots_2b); @@ -305,8 +316,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) ValueTokenizer fp6th_line(temp_line); if (fp6th_line.count() != num_of_coeff_2b) - error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", - num_of_coeff_2b, fp6th_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_of_coeff_2b, + fp6th_line.count()); n2b_coeff[itype][jtype].resize(num_of_coeff_2b); n2b_coeff[jtype][itype].resize(num_of_coeff_2b); @@ -321,13 +332,13 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) } setflag[itype][jtype] = 1; setflag[jtype][itype] = 1; + fclose(fp); } - void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) { - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", - potf_name, itype, jtype, ktype); + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", potf_name, itype, + jtype, ktype); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) @@ -340,74 +351,88 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name Tokenizer file_header(temp_line); if (file_header.count() != 2) - error->all(FLERR, "UF3: Expected only two words on 1st line of {} but found " - "{} word/s",potf_name,file_header.count()); + error->all(FLERR, + "UF3: Expected only two words on 1st line of {} but found " + "{} word/s", + potf_name, file_header.count()); if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, "UF3: {} file is not UF3 POT type, 1st line of UF3 POT " - "files contain '#UF3 POT'. Found {} in the header",potf_name,temp_line); + error->all(FLERR, + "UF3: {} file is not UF3 POT type, 1st line of UF3 POT " + "files contain '#UF3 POT'. Found {} in the header", + potf_name, temp_line); temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); if (fp2nd_line.count() != 4) - error->all(FLERR, "UF3: Expected 3 words on 2nd line => " - "nBody leading_trim trailing_trim type_of_knot_spacing " - "Found {}",temp_line); + error->all(FLERR, + "UF3: Expected 3 words on 2nd line => " + "nBody leading_trim trailing_trim type_of_knot_spacing " + "Found {}", + temp_line); std::string nbody_on_file = fp2nd_line.next_string(); - if (utils::strmatch(nbody_on_file,"3B")) - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n",potf_name); + if (utils::strmatch(nbody_on_file, "3B")) + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n", potf_name); else - error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", - nbody_on_file); + error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); int trailing_trim = fp2nd_line.next_int(); if (leading_trim != 0) - error->all(FLERR, "UF3: Current implementation is throughly tested only for " - "leading_trim=0\n"); + error->all(FLERR, + "UF3: Current implementation is throughly tested only for " + "leading_trim=0\n"); if (trailing_trim != 3) - error->all(FLERR, "UF3: Current implementation is throughly tested only for " - "trailing_trim=3\n"); + error->all(FLERR, + "UF3: Current implementation is throughly tested only for " + "trailing_trim=3\n"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type,"uk")) { - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with uniform " - "knot spacing\n",potf_name); + if (utils::strmatch(knot_type, "uk")) { + utils::logmesg(lmp, + "UF3: File {} contains 3-body UF3 potential with uniform " + "knot spacing\n", + potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; - } - else if (utils::strmatch(knot_type,"nk")) { - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential with non-uniform " - "knot spacing\n",potf_name); + } else if (utils::strmatch(knot_type, "nk")) { + utils::logmesg(lmp, + "UF3: File {} contains 3-body UF3 potential with non-uniform " + "knot spacing\n", + potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 1; knot_spacing_type_3b[itype][ktype][jtype] = 1; - } - else - error->all(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " - "Found {} on the 2nd line of {} pot file",knot_type,potf_name); + } else + error->all(FLERR, + "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "Found {} on the 2nd line of {} pot file", + knot_type, potf_name); temp_line = txtfilereader.next_line(6); ValueTokenizer fp3rd_line(temp_line); if (fp3rd_line.count() != 6) - error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line => " - "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ " - "Found {} number/s",fp3rd_line.count()); + error->all(FLERR, + "UF3: Expected only 6 numbers on 3rd line => " + "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ " + "Found {} number/s", + fp3rd_line.count()); double cut3b_rjk = fp3rd_line.next_double(); double cut3b_rij = fp3rd_line.next_double(); double cut3b_rik = fp3rd_line.next_double(); if (cut3b_rij != cut3b_rik) { - error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); + error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); } if (2 * cut3b_rik != cut3b_rjk) { - error->all(FLERR, "UF3: 2rij=2rik!=rik, Current implementation only works " - "for 2rij=2rik!=rik"); + error->all(FLERR, + "UF3: 2rij=2rik!=rik, Current implementation only works " + "for 2rij=2rik!=rik"); } cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); @@ -421,9 +446,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name ValueTokenizer fp4th_line(temp_line); if (fp4th_line.count() != num_knots_3b_jk) - error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", - num_knots_3b_jk, fp4th_line.count()); - + error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_3b_jk, + fp4th_line.count()); n3b_knot_matrix[itype][jtype][ktype].resize(3); n3b_knot_matrix[itype][ktype][jtype].resize(3); @@ -433,91 +457,96 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name for (int i = 0; i < num_knots_3b_jk; i++) { n3b_knot_matrix[itype][jtype][ktype][0][i] = fp4th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][0][i] = - n3b_knot_matrix[itype][jtype][ktype][0][i]; + n3b_knot_matrix[itype][ktype][jtype][0][i] = n3b_knot_matrix[itype][jtype][ktype][0][i]; } min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; - //min_cut_3b[itype][jtype][ktype][0] --> cutoff for jk distance + //min_cut_3b[itype][jtype][ktype][0] --> cutoff for jk distance min_cut_3b[itype][ktype][jtype][0] = n3b_knot_matrix[itype][ktype][jtype][0][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_jk={} {}-{}-{}_jk={}\n", - potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][0], - itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][0]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_jk={} {}-{}-{}_jk={}\n", potf_name, itype, + jtype, ktype, min_cut_3b[itype][jtype][ktype][0], itype, ktype, jtype, + min_cut_3b[itype][ktype][jtype][0]); int num_knots_3b_ik = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ik); ValueTokenizer fp5th_line(temp_line); if (fp5th_line.count() != num_knots_3b_ik) - error->all(FLERR, "UF3: Expected {} numbers on 5th line but found {} numbers", - num_knots_3b_ik, fp5th_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on 5th line but found {} numbers", num_knots_3b_ik, + fp5th_line.count()); n3b_knot_matrix[itype][jtype][ktype][1].resize(num_knots_3b_ik); n3b_knot_matrix[itype][ktype][jtype][2].resize(num_knots_3b_ik); for (int i = 0; i < num_knots_3b_ik; i++) { - n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][2][i] = - n3b_knot_matrix[itype][jtype][ktype][1][i]; - } + n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); + n3b_knot_matrix[itype][ktype][jtype][2][i] = n3b_knot_matrix[itype][jtype][ktype][1][i]; + } min_cut_3b[itype][jtype][ktype][1] = n3b_knot_matrix[itype][jtype][ktype][1][0]; - //min_cut_3b[itype][jtype][ktype][1] --> cutoff for ik distance + //min_cut_3b[itype][jtype][ktype][1] --> cutoff for ik distance min_cut_3b[itype][ktype][jtype][2] = n3b_knot_matrix[itype][ktype][jtype][2][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ik={} {}-{}-{}_ik={}\n", - potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][1], - itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][2]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ik={} {}-{}-{}_ik={}\n", potf_name, itype, + jtype, ktype, min_cut_3b[itype][jtype][ktype][1], itype, ktype, jtype, + min_cut_3b[itype][ktype][jtype][2]); int num_knots_3b_ij = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ij); ValueTokenizer fp6th_line(temp_line); if (fp6th_line.count() != num_knots_3b_ij) - error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", - num_knots_3b_ij, fp5th_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_knots_3b_ij, + fp5th_line.count()); n3b_knot_matrix[itype][jtype][ktype][2].resize(num_knots_3b_ij); n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); for (int i = 0; i < num_knots_3b_ij; i++) { n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][1][i] = - n3b_knot_matrix[itype][jtype][ktype][2][i]; - } + n3b_knot_matrix[itype][ktype][jtype][1][i] = n3b_knot_matrix[itype][jtype][ktype][2][i]; + } min_cut_3b[itype][jtype][ktype][2] = n3b_knot_matrix[itype][jtype][ktype][2][0]; - //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance + //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance min_cut_3b[itype][ktype][jtype][1] = n3b_knot_matrix[itype][ktype][jtype][1][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ij={} {}-{}-{}_ij={}\n", - potf_name,itype,jtype,ktype,min_cut_3b[itype][jtype][ktype][2], - itype,ktype,jtype,min_cut_3b[itype][ktype][jtype][1]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ij={} {}-{}-{}_ij={}\n", potf_name, itype, + jtype, ktype, min_cut_3b[itype][jtype][ktype][2], itype, ktype, jtype, + min_cut_3b[itype][ktype][jtype][1]); temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); if (fp7th_line.count() != 3) - error->all(FLERR, "UF3: Expected 3 numbers on 7th line => " - "SHAPE_OF_COEFF_MATRIX[I][J][K] " - "found {} numbers", fp7th_line.count()); + error->all(FLERR, + "UF3: Expected 3 numbers on 7th line => " + "SHAPE_OF_COEFF_MATRIX[I][J][K] " + "found {} numbers", + fp7th_line.count()); coeff_matrix_dim1 = fp7th_line.next_int(); coeff_matrix_dim2 = fp7th_line.next_int(); coeff_matrix_dim3 = fp7th_line.next_int(); if (n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and " - "coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); + error->all(FLERR, + "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and " + "coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", + potf_name); if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and " - "coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1",potf_name); + error->all(FLERR, + "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and " + "coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1", + potf_name); if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) - error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and " - "coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1",potf_name); + error->all(FLERR, + "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and " + "coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1", + potf_name); coeff_matrix_elements_len = coeff_matrix_dim3; @@ -533,8 +562,8 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); if (coeff_line.count() != coeff_matrix_elements_len) - error->all(FLERR, "UF3: Expected {} numbers on {}th line but found " - "{} numbers",coeff_matrix_elements_len, line_count+8, coeff_line.count()); + error->all(FLERR, "UF3: Expected {} numbers on {}th line but found {} numbers", + coeff_matrix_elements_len, line_count + 8, coeff_line.count()); for (int k = 0; k < coeff_matrix_dim3; k++) { n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); } @@ -561,6 +590,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name setflag_3b[itype][jtype][ktype] = 1; setflag_3b[itype][ktype][jtype] = 1; + fclose(fp); } void PairUF3::uf3_read_pot_file(char *potf_name) @@ -681,12 +711,15 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i]; } - min_cut_3b[temp_type1][temp_type2][temp_type3][0] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][0] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; + min_cut_3b[temp_type1][temp_type2][temp_type3][0] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][0] = + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_0={} {}-{}-{}_0={}\n", - potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][0], - temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][0]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_0={} {}-{}-{}_0={}\n", potf_name, + temp_type1, temp_type2, temp_type3, + min_cut_3b[temp_type1][temp_type2][temp_type3][0], temp_type1, temp_type3, + temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][0]); temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); @@ -699,12 +732,15 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i]; } - min_cut_3b[temp_type1][temp_type2][temp_type3][1] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][2] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; + min_cut_3b[temp_type1][temp_type2][temp_type3][1] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][2] = + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_1={} {}-{}-{}_2={}\n", - potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][1], - temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][2]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_1={} {}-{}-{}_2={}\n", potf_name, + temp_type1, temp_type2, temp_type3, + min_cut_3b[temp_type1][temp_type2][temp_type3][1], temp_type1, temp_type3, + temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][2]); temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); @@ -717,12 +753,15 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i]; } - min_cut_3b[temp_type1][temp_type2][temp_type3][2] = n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][1] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; + min_cut_3b[temp_type1][temp_type2][temp_type3][2] = + n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; + min_cut_3b[temp_type1][temp_type3][temp_type2][1] = + n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_2={} {}-{}-{}_1={}\n", - potf_name,temp_type1,temp_type2,temp_type3,min_cut_3b[temp_type1][temp_type2][temp_type3][2], - temp_type1,temp_type3,temp_type2,min_cut_3b[temp_type1][temp_type3][temp_type2][2]); + utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_2={} {}-{}-{}_1={}\n", potf_name, + temp_type1, temp_type2, temp_type3, + min_cut_3b[temp_type1][temp_type2][temp_type3][2], temp_type1, temp_type3, + temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][2]); temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); @@ -774,6 +813,7 @@ void PairUF3::uf3_read_pot_file(char *potf_name) FLERR, "UF3: {} file does not contain right words indicating whether it is 2 or 3 body potential", potf_name); + fclose(fp); } /* ---------------------------------------------------------------------- @@ -814,8 +854,10 @@ void PairUF3::create_bsplines() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { if (setflag[i][j] != 1) - error->all(FLERR,"UF3: Not all 2-body UF potentials are set, " - "missing potential file for {}-{} interaction",i, j); + error->all(FLERR, + "UF3: Not all 2-body UF potentials are set, " + "missing potential file for {}-{} interaction", + i, j); } } if (pot_3b) { @@ -823,8 +865,10 @@ void PairUF3::create_bsplines() for (int j = 1; j < num_of_elements + 1; j++) { for (int k = 1; k < num_of_elements + 1; k++) { if (setflag_3b[i][j][k] != 1) - error->all(FLERR,"UF3: Not all 3-body UF potentials are set, " - "missing potential file for {}-{}-{} interaction", i, j, k); + error->all(FLERR, + "UF3: Not all 3-body UF potentials are set, " + "missing potential file for {}-{}-{} interaction", + i, j, k); } } } @@ -832,21 +876,19 @@ void PairUF3::create_bsplines() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j], - knot_spacing_type_2b[i][j]); + UFBS2b[i][j] = + uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j], knot_spacing_type_2b[i][j]); UFBS2b[j][i] = UFBS2b[i][j]; } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - UFBS3b[i][j][k] = - uf3_triplet_bspline(lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key], - knot_spacing_type_3b[i][j][k]); + UFBS3b[i][j][k] = uf3_triplet_bspline( + lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); - UFBS3b[i][k][j] = - uf3_triplet_bspline(lmp, n3b_knot_matrix[i][k][j], n3b_coeff_matrix[key2], - knot_spacing_type_3b[i][k][j]); + UFBS3b[i][k][j] = uf3_triplet_bspline( + lmp, n3b_knot_matrix[i][k][j], n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); } } } @@ -1004,8 +1046,8 @@ void PairUF3::compute(int eflag, int vflag) ((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && - (rij >= min_cut_3b[itype][jtype][ktype][2]) && - (rik >= min_cut_3b[itype][jtype][ktype][1])) { + (rij >= min_cut_3b[itype][jtype][ktype][2]) && + (rik >= min_cut_3b[itype][jtype][ktype][1])) { del_rkj[0] = x[k][0] - x[j][0]; del_rkj[1] = x[k][1] - x[j][1]; @@ -1139,43 +1181,43 @@ double PairUF3::memory_usage() bytes = 0; - bytes += (double)5*sizeof(double); //num_of_elements, nbody_flag, - //n2body_pot_files, n3body_pot_files, - //tot_pot_files; + bytes += (double) 5 * sizeof(double); //num_of_elements, nbody_flag, + //n2body_pot_files, n3body_pot_files, + //tot_pot_files; - bytes += (double)5*sizeof(double); //bsplines_created, coeff_matrix_dim1, - //coeff_matrix_dim2, coeff_matrix_dim3, - //coeff_matrix_elements_len - bytes += (double)(num_of_elements+1)*(num_of_elements+1)* - (num_of_elements+1)*sizeof(double); //***setflag_3b + bytes += (double) 5 * sizeof(double); //bsplines_created, coeff_matrix_dim1, + //coeff_matrix_dim2, coeff_matrix_dim3, + //coeff_matrix_elements_len + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(double); //***setflag_3b - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //cut - bytes += (double)(num_of_elements+1)*(num_of_elements+1)* - (num_of_elements+1)*sizeof(double); //***cut_3b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(double); //***cut_3b - bytes += (double)(num_of_elements+1)*(num_of_elements+1)*sizeof(double); //cut_3b_list + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //cut_3b_list - bytes += (double)(num_of_elements+1)*(num_of_elements+1)* - (num_of_elements+1)*3*sizeof(double); //min_cut_3b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3 * + sizeof(double); //min_cut_3b - for (int i=1; i < num_of_elements+1; i++) { - for (int j=i; j < num_of_elements+1; j++) { - bytes += (double)2*n2b_knot[i][j].size()*sizeof(double); //n2b_knot - bytes += (double)2*n2b_coeff[i][j].size()*sizeof(double); //n2b_coeff + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = i; j < num_of_elements + 1; j++) { + bytes += (double) 2 * n2b_knot[i][j].size() * sizeof(double); //n2b_knot + bytes += (double) 2 * n2b_coeff[i][j].size() * sizeof(double); //n2b_coeff } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double)2*n3b_knot_matrix[i][j][k][0].size()*sizeof(double); - bytes += (double)2*n3b_knot_matrix[i][j][k][1].size()*sizeof(double); - bytes += (double)2*n3b_knot_matrix[i][j][k][2].size()*sizeof(double); + bytes += (double) 2 * n3b_knot_matrix[i][j][k][0].size() * sizeof(double); + bytes += (double) 2 * n3b_knot_matrix[i][j][k][1].size() * sizeof(double); + bytes += (double) 2 * n3b_knot_matrix[i][j][k][2].size() * sizeof(double); std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - for (int l=0; l < n3b_coeff_matrix[key].size(); l++) { - for (int m=0; m < n3b_coeff_matrix[key][l].size(); m++) { - bytes += (double)2*n3b_coeff_matrix[key][l][m].size()*sizeof(double); + for (int l = 0; l < n3b_coeff_matrix[key].size(); l++) { + for (int m = 0; m < n3b_coeff_matrix[key][l].size(); m++) { + bytes += (double) 2 * n3b_coeff_matrix[key][l][m].size() * sizeof(double); //key = ijk //key = ikj } @@ -1187,19 +1229,18 @@ double PairUF3::memory_usage() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - bytes += (double)2*UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] + bytes += (double) 2 * UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double)2*UFBS3b[i][j][k].memory_usage(); + bytes += (double) 2 * UFBS3b[i][j][k].memory_usage(); } } } } - bytes += (double)(maxshort+1)*sizeof(int); //neighshort, maxshort + bytes += (double) (maxshort + 1) * sizeof(int); //neighshort, maxshort return bytes; } - From 2219e764cec7ab8113771b15f1ce641329f3f31e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 22:26:50 -0400 Subject: [PATCH 040/313] call utils::logmesg() only on rank 0, use c++ string comparisons, remove debug comments --- src/ML-UF3/pair_uf3.cpp | 76 ++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 42 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index cbde78a43f..a46268092c 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -241,9 +241,10 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) temp_line); std::string nbody_on_file = fp2nd_line.next_string(); - if (utils::strmatch(nbody_on_file, "2B")) - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n", potf_name); - else + if (nbody_on_file == "2B") { + if (comm->me == 0) + utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n", potf_name); + } else error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); @@ -258,25 +259,23 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) "trailing_trim=3"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type, "uk")) { - utils::logmesg(lmp, - "UF3: File {} contains 2-body UF3 potential with uniform " - "knot spacing", - potf_name); + if (knot_type == "uk") { + if (comm->me == 0) + utils::logmesg(lmp, + "UF3: File {} contains 2-body UF3 potential with uniform knot spacing", + potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; - } else if (utils::strmatch(knot_type, "nk")) { - utils::logmesg(lmp, - "UF3: File {} contains 2-body UF3 potential with non-uniform " - "knot spacing", - potf_name); + } else if (knot_type == "nk") { + if (comm->me == 0) + utils::logmesg(lmp, + "UF3: File {} contains 2-body UF3 potential with non-uniform knot spacing", + potf_name); knot_spacing_type_2b[itype][jtype] = 1; knot_spacing_type_2b[jtype][itype] = 1; - /*error->all(FLERR, "UF3: Current implementation only works with uniform " - " knot spacing");*/ } else error->all(FLERR, - "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots). " "Found {} on the 2nd line of {} pot file", knot_type, potf_name); @@ -337,8 +336,9 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) { - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", potf_name, itype, - jtype, ktype); + if (comm->me == 0) + utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", + potf_name, itype, jtype, ktype); FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) @@ -374,35 +374,32 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name std::string nbody_on_file = fp2nd_line.next_string(); - if (utils::strmatch(nbody_on_file, "3B")) - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n", potf_name); - else + if (nbody_on_file == "3B") { + if (comm->me == 0) + utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n", potf_name); + } else error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); int trailing_trim = fp2nd_line.next_int(); if (leading_trim != 0) - error->all(FLERR, - "UF3: Current implementation is throughly tested only for " - "leading_trim=0\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for leading_trim=0"); if (trailing_trim != 3) - error->all(FLERR, - "UF3: Current implementation is throughly tested only for " - "trailing_trim=3\n"); + error->all(FLERR, "UF3: Current implementation is throughly tested only for trailing_trim=3"); std::string knot_type = fp2nd_line.next_string(); - if (utils::strmatch(knot_type, "uk")) { - utils::logmesg(lmp, - "UF3: File {} contains 3-body UF3 potential with uniform " - "knot spacing\n", - potf_name); + if (knot_type == "uk") { + if (comm->me == 0) + utils::logmesg(lmp, + "UF3: File {} contains 3-body UF3 potential with uniform knot spacing\n", + potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; - } else if (utils::strmatch(knot_type, "nk")) { - utils::logmesg(lmp, - "UF3: File {} contains 3-body UF3 potential with non-uniform " - "knot spacing\n", - potf_name); + } else if (knot_type == "nk") { + if (comm->me == 0) + utils::logmesg(lmp, + "UF3: File {} contains 3-body UF3 potential with non-uniform knot spacing\n", + potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 1; knot_spacing_type_3b[itype][ktype][jtype] = 1; } else @@ -628,7 +625,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared cut[temp_type1][temp_type2] = fp3rd_line.next_double(); - // if(comm->me==0) utils::logmesg(lmp,"UF3: Cutoff {}\n",cutsq[temp_type1][temp_type2]); cut[temp_type2][temp_type1] = cut[temp_type1][temp_type2]; int temp_line_len = fp3rd_line.next_int(); @@ -649,18 +645,14 @@ void PairUF3::uf3_read_pot_file(char *potf_name) temp_line_len = fp5th_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); - // utils::logmesg(lmp,"UF3:11 {}",temp_line); ValueTokenizer fp6th_line(temp_line); - // if(comm->me==0) utils::logmesg(lmp,"UF3: {}\n",temp_line_len); n2b_coeff[temp_type1][temp_type2].resize(temp_line_len); n2b_coeff[temp_type2][temp_type1].resize(temp_line_len); for (int k = 0; k < temp_line_len; k++) { n2b_coeff[temp_type1][temp_type2][k] = fp6th_line.next_double(); n2b_coeff[temp_type2][temp_type1][k] = n2b_coeff[temp_type1][temp_type2][k]; - // if(comm->me==0) utils::logmesg(lmp,"UF3: {}\n",n2b_coeff[temp_type1][temp_type2][k]); } - // for(int i=0;ime==0) utils::logmesg(lmp,"UF3: {}\n",n2b_coeff[temp_type1][temp_type2][i]); if (n2b_knot[temp_type1][temp_type2].size() != n2b_coeff[temp_type1][temp_type2].size() + 4) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); From 6bdf9819427fc43b780b1b1f43d556d2b7d79ecf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 23:08:51 -0400 Subject: [PATCH 041/313] don't use pow() function for simple square --- src/ML-UF3/uf3_bspline_basis2.cpp | 42 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/ML-UF3/uf3_bspline_basis2.cpp b/src/ML-UF3/uf3_bspline_basis2.cpp index fb345cc10b..7c16ab79d0 100644 --- a/src/ML-UF3/uf3_bspline_basis2.cpp +++ b/src/ML-UF3/uf3_bspline_basis2.cpp @@ -14,10 +14,10 @@ #include "uf3_bspline_basis2.h" -#include "utils.h" -#include +#include "math_special.h" using namespace LAMMPS_NS; +using MathSpecial::square; // Constructor // Initializes coefficients and knots @@ -28,45 +28,45 @@ uf3_bspline_basis2::uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double double c0, c1, c2; - c0 = coefficient * - (pow(knots[0], 2) / - (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + c0 = coefficient + * (square(knots[0]) + / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); c1 = coefficient * - (-2 * knots[0] / - (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + (-2.0 * knots[0] / + (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); c2 = coefficient * - (1 / (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + (1.0 / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); c0 = coefficient * (-knots[1] * knots[3] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - knots[0] * knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); c1 = coefficient * (knots[1] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + knots[3] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + knots[0] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2)) + + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2])) + knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); c2 = coefficient * - (-1 / (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - - 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (-1.0 / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + 1.0 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); c0 = coefficient * - (pow(knots[3], 2) / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (square(knots[3]) / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); c1 = coefficient * - (-2 * knots[3] / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (-2.0 * knots[3] / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); c2 = coefficient * - (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (1.0 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); From 584137f104f8dda43d24a6b1b3c875674e43f3f0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 23:36:13 -0400 Subject: [PATCH 042/313] remove num_of_elements class variable, just use local copy of atom->ntypes --- src/KOKKOS/pair_uf3_kokkos.cpp | 3 +++ src/ML-UF3/pair_uf3.cpp | 7 ++++--- src/ML-UF3/pair_uf3.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 7c524b8d61..067f3200a0 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -207,6 +207,7 @@ template double PairUF3Kokkos::init_one(int i, in template void PairUF3Kokkos::create_coefficients() { + const int num_of_elements = atom->ntypes; coefficients_created = 1; /*for (int i = 1; i < num_of_elements + 1; i++) { @@ -266,6 +267,7 @@ template void PairUF3Kokkos::create_coefficients( template void PairUF3Kokkos::create_2b_coefficients() { + const int num_of_elements = atom->ntypes; // Setup interaction pair map //TODO: Instead of using map2b and map3b use simple indexing @@ -356,6 +358,7 @@ template void PairUF3Kokkos::create_2b_coefficien template void PairUF3Kokkos::create_3b_coefficients() { + const int num_of_elements = atom->ntypes; // Init interaction map for 3B Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index a46268092c..a286a01b7d 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -83,7 +83,7 @@ void PairUF3::settings(int narg, char **arg) "Invalid number of arguments for pair_style uf3" " Are you using a 2-body or 2 & 3-body UF potential?"); nbody_flag = utils::numeric(FLERR, arg[0], true, lmp); - num_of_elements = atom->ntypes; + const int num_of_elements = atom->ntypes; if (nbody_flag == 2) { pot_3b = false; manybody_flag = 0; @@ -133,6 +133,7 @@ void PairUF3::coeff(int narg, char **arg) void PairUF3::allocate() { allocated = 1; + const int num_of_elements = atom->ntypes; // Contains info about wether UF potential were found for type i and j memory->create(setflag, num_of_elements + 1, num_of_elements + 1, "pair:setflag"); @@ -842,6 +843,7 @@ double PairUF3::init_one(int i /*i*/, int /*j*/ j) void PairUF3::create_bsplines() { + const int num_of_elements = atom->ntypes; bsplines_created = 1; for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { @@ -1169,10 +1171,9 @@ double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, double PairUF3::memory_usage() { + const int num_of_elements = atom->ntypes; double bytes = Pair::memory_usage(); - bytes = 0; - bytes += (double) 5 * sizeof(double); //num_of_elements, nbody_flag, //n2body_pot_files, n3body_pot_files, //tot_pot_files; diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 79627e0def..d3e988cc1e 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -53,7 +53,7 @@ class PairUF3 : public Pair { void uf3_read_pot_file(char *potf_name); void uf3_read_pot_file(int i, int j, char *potf_name); void uf3_read_pot_file(int i, int j, int k, char *potf_name); - int num_of_elements, nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; + int nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; int bsplines_created; int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; bool pot_3b; From c5262873b0e491b6c132005628290495f060028a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 23:36:57 -0400 Subject: [PATCH 043/313] initialize all class pointers to null, delete all allocated storage --- src/ML-UF3/pair_uf3.cpp | 6 +++++- src/ML-UF3/uf3_triplet_bspline.cpp | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index a286a01b7d..f9bf8fdbf7 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -40,7 +40,9 @@ using MathConst::THIRD; /* ---------------------------------------------------------------------- */ -PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp) +PairUF3::PairUF3(LAMMPS *lmp) : + Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), + cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr) { single_enable = 1; // 1 if single() routine exists restartinfo = 0; // 1 if pair style writes restart info @@ -60,6 +62,7 @@ PairUF3::~PairUF3() memory->destroy(setflag); memory->destroy(cutsq); memory->destroy(cut); + memory->destroy(knot_spacing_type_2b); if (pot_3b) { memory->destroy(setflag_3b); @@ -67,6 +70,7 @@ PairUF3::~PairUF3() memory->destroy(cut_3b_list); memory->destroy(min_cut_3b); memory->destroy(neighshort); + memory->destroy(knot_spacing_type_3b); } } } diff --git a/src/ML-UF3/uf3_triplet_bspline.cpp b/src/ML-UF3/uf3_triplet_bspline.cpp index d9199d301c..a2087bd3a1 100644 --- a/src/ML-UF3/uf3_triplet_bspline.cpp +++ b/src/ML-UF3/uf3_triplet_bspline.cpp @@ -13,7 +13,7 @@ #include "uf3_triplet_bspline.h" #include "error.h" -#include + #include using namespace LAMMPS_NS; @@ -306,6 +306,7 @@ int uf3_triplet_bspline::get_starting_index_nonuniform(const std::vector } } } + return -1; } double uf3_triplet_bspline::memory_usage() From 1fff0a33fce72c1f0451e3a01f732ff9fbdd4f39 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 23:37:22 -0400 Subject: [PATCH 044/313] drop log messages --- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 | 22 +++--- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 | 22 +++--- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 | 26 +++--- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 | 28 +++---- src/KOKKOS/pair_uf3_kokkos.cpp | 4 +- src/ML-UF3/pair_uf3.cpp | 79 +------------------ 6 files changed, 43 insertions(+), 138 deletions(-) diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 index b1d413be3e..743e1a1e97 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -41,9 +41,7 @@ mass 1 183.84 pair_style uf3 2 pair_coeff 1 1 W_W.uf3 -UF3: W_W.uf3 file should contain UF3 potential for 1 1 -UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing + # # ============= Setup output @@ -88,20 +86,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.113 | 3.113 | 3.113 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0344829 on 1 procs for 100 steps with 128 atoms +Loop time of 0.0333361 on 1 procs for 100 steps with 128 atoms -Performance: 125.280 ns/day, 0.192 hours/ns, 2899.990 timesteps/s, 371.199 katom-step/s -99.3% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 129.589 ns/day, 0.185 hours/ns, 2999.749 timesteps/s, 383.968 katom-step/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.033254 | 0.033254 | 0.033254 | 0.0 | 96.44 +Pair | 0.032205 | 0.032205 | 0.032205 | 0.0 | 96.61 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00069442 | 0.00069442 | 0.00069442 | 0.0 | 2.01 -Output | 0.0001137 | 0.0001137 | 0.0001137 | 0.0 | 0.33 -Modify | 0.0002176 | 0.0002176 | 0.0002176 | 0.0 | 0.63 -Other | | 0.0002033 | | | 0.59 +Comm | 0.00067389 | 0.00067389 | 0.00067389 | 0.0 | 2.02 +Output | 9.6021e-05 | 9.6021e-05 | 9.6021e-05 | 0.0 | 0.29 +Modify | 0.00019596 | 0.00019596 | 0.00019596 | 0.0 | 0.59 +Other | | 0.0001652 | | | 0.50 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 index fa1455369b..3814e71f4e 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -41,9 +41,7 @@ mass 1 183.84 pair_style uf3 2 pair_coeff 1 1 W_W.uf3 -UF3: W_W.uf3 file should contain UF3 potential for 1 1 -UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacing + # # ============= Setup output @@ -88,20 +86,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes 80 173.31044 -4.893466 0 -4.8712389 -397601.62 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.00969615 on 4 procs for 100 steps with 128 atoms +Loop time of 0.0147453 on 4 procs for 100 steps with 128 atoms -Performance: 445.538 ns/day, 0.054 hours/ns, 10313.372 timesteps/s, 1.320 Matom-step/s -99.7% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 292.975 ns/day, 0.082 hours/ns, 6781.825 timesteps/s, 868.074 katom-step/s +96.0% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.0075573 | 0.0076696 | 0.007725 | 0.1 | 79.10 +Pair | 0.0086489 | 0.010103 | 0.0115 | 1.4 | 68.52 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0017105 | 0.0017634 | 0.0018792 | 0.2 | 18.19 -Output | 6.7305e-05 | 7.2505e-05 | 8.2576e-05 | 0.0 | 0.75 -Modify | 4.551e-05 | 4.8142e-05 | 5.4109e-05 | 0.0 | 0.50 -Other | | 0.0001425 | | | 1.47 +Comm | 0.0027662 | 0.0041052 | 0.0055079 | 2.1 | 27.84 +Output | 0.00012555 | 0.0001367 | 0.00015958 | 0.0 | 0.93 +Modify | 6.4367e-05 | 7.9187e-05 | 9.3374e-05 | 0.0 | 0.54 +Other | | 0.000321 | | | 2.18 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 index f8c3dd8af6..014ef3df49 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -41,15 +41,7 @@ mass 1 183.84 pair_style uf3 3 pair_coeff 1 1 W_W.uf3 -UF3: W_W.uf3 file should contain UF3 potential for 1 1 -UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacingpair_coeff 3b 1 1 1 W_W_W.uf3 -UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 -UF3: File W_W_W.uf3 contains 3-body UF3 potential -UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform knot spacing -UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 -UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 -UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 +pair_coeff 3b 1 1 1 W_W_W.uf3 # # ============= Setup output @@ -94,20 +86,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.214 | 3.214 | 3.214 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.477708 on 1 procs for 100 steps with 128 atoms +Loop time of 0.48771 on 1 procs for 100 steps with 128 atoms -Performance: 9.043 ns/day, 2.654 hours/ns, 209.333 timesteps/s, 26.795 katom-step/s +Performance: 8.858 ns/day, 2.709 hours/ns, 205.040 timesteps/s, 26.245 katom-step/s 99.7% CPU use with 1 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.47636 | 0.47636 | 0.47636 | 0.0 | 99.72 +Pair | 0.48625 | 0.48625 | 0.48625 | 0.0 | 99.70 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0007585 | 0.0007585 | 0.0007585 | 0.0 | 0.16 -Output | 0.00016112 | 0.00016112 | 0.00016112 | 0.0 | 0.03 -Modify | 0.00019415 | 0.00019415 | 0.00019415 | 0.0 | 0.04 -Other | | 0.0002393 | | | 0.05 +Comm | 0.00078 | 0.00078 | 0.00078 | 0.0 | 0.16 +Output | 0.0001819 | 0.0001819 | 0.0001819 | 0.0 | 0.04 +Modify | 0.00020794 | 0.00020794 | 0.00020794 | 0.0 | 0.04 +Other | | 0.0002902 | | | 0.06 Nlocal: 128 ave 128 max 128 min Histogram: 1 0 0 0 0 0 0 0 0 0 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 index 6dc5283901..3dfbf8e5d7 100644 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 +++ b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 @@ -1,4 +1,4 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-331-ga26c281a63) +LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) using 1 OpenMP thread(s) per MPI task # Demonstrate UF3 W potential @@ -41,15 +41,7 @@ mass 1 183.84 pair_style uf3 3 pair_coeff 1 1 W_W.uf3 -UF3: W_W.uf3 file should contain UF3 potential for 1 1 -UF3: File W_W.uf3 contains 2-body UF3 potential -UF3: File W_W.uf3 contains 2-body UF3 potential with uniform knot spacingpair_coeff 3b 1 1 1 W_W_W.uf3 -UF3: W_W_W.uf3 file should contain UF3 potential for 1 1 1 -UF3: File W_W_W.uf3 contains 3-body UF3 potential -UF3: File W_W_W.uf3 contains 3-body UF3 potential with uniform knot spacing -UF3: 3b min cutoff W_W_W.uf3 1-1-1_jk=1.5 1-1-1_jk=1.5 -UF3: 3b min cutoff W_W_W.uf3 1-1-1_ik=1.5 1-1-1_ik=1.5 -UF3: 3b min cutoff W_W_W.uf3 1-1-1_ij=1.5 1-1-1_ij=1.5 +pair_coeff 3b 1 1 1 W_W_W.uf3 # # ============= Setup output @@ -94,20 +86,20 @@ Per MPI rank memory allocation (min/avg/max) = 3.205 | 3.205 | 3.205 Mbytes 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.130504 on 4 procs for 100 steps with 128 atoms +Loop time of 0.2463 on 4 procs for 100 steps with 128 atoms -Performance: 33.102 ns/day, 0.725 hours/ns, 766.258 timesteps/s, 98.081 katom-step/s -99.1% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 17.540 ns/day, 1.368 hours/ns, 406.010 timesteps/s, 51.969 katom-step/s +98.6% CPU use with 4 MPI tasks x 1 OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 0.1177 | 0.12008 | 0.12246 | 0.7 | 92.01 +Pair | 0.12087 | 0.18077 | 0.24119 | 13.8 | 73.39 Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0074641 | 0.0098397 | 0.012226 | 2.4 | 7.54 -Output | 0.00012713 | 0.00013807 | 0.0001675 | 0.0 | 0.11 -Modify | 8.7486e-05 | 9.3752e-05 | 0.00010061 | 0.0 | 0.07 -Other | | 0.0003502 | | | 0.27 +Comm | 0.0041617 | 0.064599 | 0.12453 | 23.1 | 26.23 +Output | 0.00029596 | 0.00031702 | 0.00036352 | 0.0 | 0.13 +Modify | 0.00012969 | 0.00013491 | 0.00014544 | 0.0 | 0.05 +Other | | 0.00048 | | | 0.19 Nlocal: 32 ave 32 max 32 min Histogram: 4 0 0 0 0 0 0 0 0 0 diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 067f3200a0..5f2039fe39 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -219,7 +219,7 @@ template void PairUF3Kokkos::create_coefficients( } }*/ - if (pot_3b){ + if (pot_3b) { for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = 1; k < num_of_elements + 1; k++) { @@ -851,7 +851,7 @@ template void PairUF3Kokkos::compute(int eflag_in // loop over neighbor list of my atoms - if (evflag){ + if (evflag) { Kokkos::parallel_reduce( Kokkos::RangePolicy>(0, inum), *this, ev); } diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index f9bf8fdbf7..858f25cb8d 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -209,10 +209,6 @@ void PairUF3::allocate() void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) { - if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {}\n", potf_name, itype, - jtype); - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); @@ -246,10 +242,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) temp_line); std::string nbody_on_file = fp2nd_line.next_string(); - if (nbody_on_file == "2B") { - if (comm->me == 0) - utils::logmesg(lmp, "UF3: File {} contains 2-body UF3 potential\n", potf_name); - } else + if (nbody_on_file != "2B") error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); @@ -265,17 +258,9 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) std::string knot_type = fp2nd_line.next_string(); if (knot_type == "uk") { - if (comm->me == 0) - utils::logmesg(lmp, - "UF3: File {} contains 2-body UF3 potential with uniform knot spacing", - potf_name); knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; } else if (knot_type == "nk") { - if (comm->me == 0) - utils::logmesg(lmp, - "UF3: File {} contains 2-body UF3 potential with non-uniform knot spacing", - potf_name); knot_spacing_type_2b[itype][jtype] = 1; knot_spacing_type_2b[jtype][itype] = 1; } else @@ -341,10 +326,6 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) { - if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file should contain UF3 potential for {} {} {}\n", - potf_name, itype, jtype, ktype); - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); @@ -378,11 +359,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name temp_line); std::string nbody_on_file = fp2nd_line.next_string(); - - if (nbody_on_file == "3B") { - if (comm->me == 0) - utils::logmesg(lmp, "UF3: File {} contains 3-body UF3 potential\n", potf_name); - } else + if (nbody_on_file != "3B") error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", nbody_on_file); int leading_trim = fp2nd_line.next_int(); @@ -394,17 +371,9 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name std::string knot_type = fp2nd_line.next_string(); if (knot_type == "uk") { - if (comm->me == 0) - utils::logmesg(lmp, - "UF3: File {} contains 3-body UF3 potential with uniform knot spacing\n", - potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; } else if (knot_type == "nk") { - if (comm->me == 0) - utils::logmesg(lmp, - "UF3: File {} contains 3-body UF3 potential with non-uniform knot spacing\n", - potf_name); knot_spacing_type_3b[itype][jtype][ktype] = 1; knot_spacing_type_3b[itype][ktype][jtype] = 1; } else @@ -463,13 +432,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name } min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; - //min_cut_3b[itype][jtype][ktype][0] --> cutoff for jk distance - min_cut_3b[itype][ktype][jtype][0] = n3b_knot_matrix[itype][ktype][jtype][0][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_jk={} {}-{}-{}_jk={}\n", potf_name, itype, - jtype, ktype, min_cut_3b[itype][jtype][ktype][0], itype, ktype, jtype, - min_cut_3b[itype][ktype][jtype][0]); int num_knots_3b_ik = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ik); @@ -487,13 +450,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name } min_cut_3b[itype][jtype][ktype][1] = n3b_knot_matrix[itype][jtype][ktype][1][0]; - //min_cut_3b[itype][jtype][ktype][1] --> cutoff for ik distance - min_cut_3b[itype][ktype][jtype][2] = n3b_knot_matrix[itype][ktype][jtype][2][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ik={} {}-{}-{}_ik={}\n", potf_name, itype, - jtype, ktype, min_cut_3b[itype][jtype][ktype][1], itype, ktype, jtype, - min_cut_3b[itype][ktype][jtype][2]); int num_knots_3b_ij = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ij); @@ -511,12 +468,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name } min_cut_3b[itype][jtype][ktype][2] = n3b_knot_matrix[itype][jtype][ktype][2][0]; - //min_cut_3b[itype][jtype][ktype][2] --> cutoff for ij distance min_cut_3b[itype][ktype][jtype][1] = n3b_knot_matrix[itype][ktype][jtype][1][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_ij={} {}-{}-{}_ij={}\n", potf_name, itype, - jtype, ktype, min_cut_3b[itype][jtype][ktype][2], itype, ktype, jtype, - min_cut_3b[itype][ktype][jtype][1]); temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); @@ -597,8 +549,6 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name void PairUF3::uf3_read_pot_file(char *potf_name) { - if (comm->me == 0) utils::logmesg(lmp, "\nUF3: Opening {} file\n", potf_name); - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); @@ -613,10 +563,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) error->all(FLERR, "UF3: {} file is not UF3 POT type, found type {} {} on the file", potf_name, fp1st_line.next(), fp1st_line.next()); - if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file is of type {} {}\n", potf_name, fp1st_line.next(), - fp1st_line.next()); - temp_line = txtfilereader.next_line(1); Tokenizer fp2nd_line(temp_line); if (fp2nd_line.contains("2B") == 1) { @@ -624,9 +570,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) ValueTokenizer fp3rd_line(temp_line); int temp_type1 = fp3rd_line.next_int(); int temp_type2 = fp3rd_line.next_int(); - if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file contains 2-body UF3 potential for {} {}\n", potf_name, - temp_type1, temp_type2); //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared cut[temp_type1][temp_type2] = fp3rd_line.next_double(); @@ -670,9 +613,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) int temp_type1 = fp3rd_line.next_int(); int temp_type2 = fp3rd_line.next_int(); int temp_type3 = fp3rd_line.next_int(); - if (comm->me == 0) - utils::logmesg(lmp, "UF3: {} file contains 3-body UF3 potential for {} {} {}\n", potf_name, - temp_type1, temp_type2, temp_type3); double cut3b_rjk = fp3rd_line.next_double(); double cut3b_rij = fp3rd_line.next_double(); @@ -712,11 +652,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][0] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_0={} {}-{}-{}_0={}\n", potf_name, - temp_type1, temp_type2, temp_type3, - min_cut_3b[temp_type1][temp_type2][temp_type3][0], temp_type1, temp_type3, - temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][0]); temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); @@ -733,11 +668,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][2] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_1={} {}-{}-{}_2={}\n", potf_name, - temp_type1, temp_type2, temp_type3, - min_cut_3b[temp_type1][temp_type2][temp_type3][1], temp_type1, temp_type3, - temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][2]); temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); @@ -754,11 +684,6 @@ void PairUF3::uf3_read_pot_file(char *potf_name) n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][1] = n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; - if (comm->me == 0) - utils::logmesg(lmp, "UF3: 3b min cutoff {} {}-{}-{}_2={} {}-{}-{}_1={}\n", potf_name, - temp_type1, temp_type2, temp_type3, - min_cut_3b[temp_type1][temp_type2][temp_type3][2], temp_type1, temp_type3, - temp_type2, min_cut_3b[temp_type1][temp_type3][temp_type2][2]); temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); From a6230ba147c4e317faf72d7af5fc5740de3dc03d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 28 Mar 2024 23:49:09 -0400 Subject: [PATCH 045/313] replace pow(x,2) and pow(x,3) with square() and cube() --- src/KOKKOS/pair_uf3_kokkos.cpp | 330 ++++++++++++++--------------- src/ML-UF3/uf3_bspline_basis3.cpp | 333 +++++++++++++++--------------- 2 files changed, 333 insertions(+), 330 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 5f2039fe39..176fc9fe05 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -28,6 +28,7 @@ #include "kokkos.h" #include "kokkos_type.h" #include "math_const.h" +#include "math_special_kokkos.h" #include "memory.h" #include "memory_kokkos.h" #include "neigh_list_kokkos.h" @@ -35,14 +36,15 @@ #include "neighbor.h" #include "pair_kokkos.h" #include "text_file_reader.h" + #include #include #include -#include - using namespace LAMMPS_NS; using namespace MathConst; +using MathSpecialKokkos::cube; +using MathSpecialKokkos::square; template PairUF3Kokkos::PairUF3Kokkos(LAMMPS *lmp) : PairUF3(lmp) { @@ -1363,261 +1365,261 @@ std::vector PairUF3Kokkos::get_constants(double *knots, dou std::vector constants(16); constants[0] = coefficient * - (-pow(knots[0], 3) / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (-cube(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); constants[1] = coefficient * - (3 * pow(knots[0], 2) / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (3 * square(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); constants[2] = coefficient * (-3 * knots[0] / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); constants[3] = coefficient * (1 / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); constants[4] = coefficient * - (pow(knots[1], 2) * knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (square(knots[1]) * knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + - pow(knots[0], 2) * knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + square(knots[0]) * knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[0] * knots[1] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); constants[5] = coefficient * - (-pow(knots[1], 2) / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-square(knots[1]) / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - 2 * knots[1] * knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - - pow(knots[0], 2) / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + square(knots[0]) / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - 2 * knots[0] * knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - knots[0] * knots[1] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - knots[0] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - knots[1] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); constants[6] = coefficient * (2 * knots[1] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + 2 * knots[0] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[0] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + knots[1] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); constants[7] = coefficient * (-1 / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - 1 / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - 1 / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); constants[8] = coefficient * - (-knots[0] * pow(knots[3], 2) / + (-knots[0] * square(knots[3]) / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - knots[1] * knots[3] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - - knots[2] * pow(knots[4], 2) / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[2] * square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); constants[9] = coefficient * (2 * knots[0] * knots[3] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + - pow(knots[3], 2) / + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + square(knots[3]) / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + knots[1] * knots[3] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + knots[1] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + knots[3] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + 2 * knots[2] * knots[4] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) + - pow(knots[4], 2) / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) + + square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); constants[10] = coefficient * (-knots[0] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - 2 * knots[3] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - knots[1] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[3] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[2] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) - + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) - 2 * knots[4] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); constants[11] = coefficient * (1 / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + 1 / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + 1 / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); constants[12] = coefficient * - (pow(knots[4], 3) / + (cube(knots[4]) / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); constants[13] = coefficient * - (-3 * pow(knots[4], 2) / + (-3 * square(knots[4]) / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); constants[14] = coefficient * (3 * knots[4] / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); constants[15] = coefficient * (-1 / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); return constants; } @@ -1628,38 +1630,38 @@ std::vector PairUF3Kokkos::get_dnconstants(double *knots, d std::vector constants(9); constants[0] = coefficient * - (pow(knots[0], 2) / - (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + (square(knots[0]) / + (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); constants[1] = coefficient * (-2 * knots[0] / - (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); constants[2] = coefficient * - (1 / (pow(knots[0], 2) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); + (1 / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); constants[3] = coefficient * (-knots[1] * knots[3] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - knots[0] * knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); constants[4] = coefficient * (knots[1] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + knots[3] / - (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + + (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) + knots[0] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2)) + + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2])) + knots[2] / - (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); constants[5] = coefficient * - (-1 / (pow(knots[1], 2) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - - 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + pow(knots[2], 2))); + (-1 / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - + 1 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); constants[6] = coefficient * - (pow(knots[3], 2) / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (square(knots[3]) / + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); constants[7] = coefficient * (-2 * knots[3] / - (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); constants[8] = coefficient * - (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + pow(knots[3], 2))); + (1 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); return constants; } diff --git a/src/ML-UF3/uf3_bspline_basis3.cpp b/src/ML-UF3/uf3_bspline_basis3.cpp index 0778ae82a3..3ed256777b 100644 --- a/src/ML-UF3/uf3_bspline_basis3.cpp +++ b/src/ML-UF3/uf3_bspline_basis3.cpp @@ -14,10 +14,11 @@ #include "uf3_bspline_basis3.h" -#include "utils.h" -#include +#include "math_special.h" using namespace LAMMPS_NS; +using MathSpecial::cube; +using MathSpecial::square; // Constructor // Initializes coefficients and knots @@ -29,27 +30,27 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double double c0, c1, c2, c3; c0 = coefficient * - (-pow(knots[0], 3) / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (-cube(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); c1 = coefficient * - (3 * pow(knots[0], 2) / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (3.0 * square(knots[0]) / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); c2 = coefficient * - (-3 * knots[0] / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (-3.0 * knots[0] / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); c3 = coefficient * - (1 / - (-pow(knots[0], 3) + pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + - pow(knots[0], 2) * knots[3] - knots[0] * knots[1] * knots[2] - + (1.0 / + (-cube(knots[0]) + square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + + square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); constants.push_back(c0); @@ -57,245 +58,245 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double constants.push_back(c2); constants.push_back(c3); c0 = coefficient * - (pow(knots[1], 2) * knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (square(knots[1]) * knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + - pow(knots[0], 2) * knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + square(knots[0]) * knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[0] * knots[1] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); c1 = coefficient * - (-pow(knots[1], 2) / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-square(knots[1]) / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - - 2 * knots[1] * knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + 2.0 * knots[1] * knots[4] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - - pow(knots[0], 2) / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + square(knots[0]) / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - - 2 * knots[0] * knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - + 2.0 * knots[0] * knots[2] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - knots[0] * knots[1] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - knots[0] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) - + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) - knots[1] * knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); c2 = coefficient * - (2 * knots[1] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (2.0 * knots[1] / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + knots[4] / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) + - 2 * knots[0] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + 2.0 * knots[0] / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[2] / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) + knots[0] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + knots[1] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2)) + + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3])) + knots[3] / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); c3 = coefficient * - (-1 / - (-pow(knots[1], 3) + pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + - pow(knots[1], 2) * knots[4] - knots[1] * knots[2] * knots[3] - + (-1.0 / + (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + + square(knots[1]) * knots[4] - knots[1] * knots[2] * knots[3] - knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + knots[2] * knots[3] * knots[4]) - - 1 / - (-pow(knots[0], 2) * knots[1] + pow(knots[0], 2) * knots[2] + + 1.0 / + (-square(knots[0]) * knots[1] + square(knots[0]) * knots[2] + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - - knots[0] * pow(knots[2], 2) - knots[0] * knots[2] * knots[3] - - knots[1] * knots[2] * knots[3] + pow(knots[2], 2) * knots[3]) - - 1 / - (-knots[0] * pow(knots[1], 2) + knots[0] * knots[1] * knots[2] + + knots[0] * square(knots[2]) - knots[0] * knots[2] * knots[3] - + knots[1] * knots[2] * knots[3] + square(knots[2]) * knots[3]) - + 1.0 / + (-knots[0] * square(knots[1]) + knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + - pow(knots[1], 2) * knots[3] - knots[1] * knots[2] * knots[3] - - knots[1] * pow(knots[3], 2) + knots[2] * pow(knots[3], 2))); + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - + knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); constants.push_back(c3); c0 = coefficient * - (-knots[0] * pow(knots[3], 2) / + (-knots[0] * square(knots[3]) / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - knots[1] * knots[3] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - - knots[2] * pow(knots[4], 2) / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - + knots[2] * square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); c1 = coefficient * - (2 * knots[0] * knots[3] / + (2.0 * knots[0] * knots[3] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + - pow(knots[3], 2) / + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + square(knots[3]) / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + knots[1] * knots[3] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + knots[1] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + knots[3] * knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + - 2 * knots[2] * knots[4] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + 2.0 * knots[2] * knots[4] / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) + - pow(knots[4], 2) / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) + + square(knots[4]) / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); c2 = coefficient * (-knots[0] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - - 2 * knots[3] / + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - + 2.0 * knots[3] / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) - + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) - knots[1] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[3] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[4] / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) - + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) - knots[2] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2)) - - 2 * knots[4] / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4])) - + 2.0 * knots[4] / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); c3 = coefficient * - (1 / + (1.0 / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + - knots[0] * knots[2] * knots[3] - knots[0] * pow(knots[3], 2) + - knots[1] * knots[2] * knots[3] - knots[1] * pow(knots[3], 2) - - knots[2] * pow(knots[3], 2) + pow(knots[3], 3)) + - 1 / - (-pow(knots[1], 2) * knots[2] + pow(knots[1], 2) * knots[3] + + knots[0] * knots[2] * knots[3] - knots[0] * square(knots[3]) + + knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) - + knots[2] * square(knots[3]) + cube(knots[3])) + + 1.0 / + (-square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - - knots[1] * pow(knots[3], 2) - knots[1] * knots[3] * knots[4] - - knots[2] * knots[3] * knots[4] + pow(knots[3], 2) * knots[4]) + - 1 / - (-knots[1] * pow(knots[2], 2) + knots[1] * knots[2] * knots[3] + + knots[1] * square(knots[3]) - knots[1] * knots[3] * knots[4] - + knots[2] * knots[3] * knots[4] + square(knots[3]) * knots[4]) + + 1.0 / + (-knots[1] * square(knots[2]) + knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + - pow(knots[2], 2) * knots[4] - knots[2] * knots[3] * knots[4] - - knots[2] * pow(knots[4], 2) + knots[3] * pow(knots[4], 2))); + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - + knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); constants.push_back(c3); c0 = coefficient * - (pow(knots[4], 3) / + (cube(knots[4]) / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); c1 = coefficient * - (-3 * pow(knots[4], 2) / + (-3.0 * square(knots[4]) / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); c2 = coefficient * - (3 * knots[4] / + (3.0 * knots[4] / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); c3 = coefficient * - (-1 / + (-1.0 / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + - knots[1] * knots[3] * knots[4] - knots[1] * pow(knots[4], 2) + - knots[2] * knots[3] * knots[4] - knots[2] * pow(knots[4], 2) - knots[3] * pow(knots[4], 2) + - pow(knots[4], 3))); + knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + + cube(knots[4]))); constants.push_back(c0); constants.push_back(c1); constants.push_back(c2); From 801ceea90abda4715d03900aa95833f322443eb4 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 1 Apr 2024 18:33:02 -0400 Subject: [PATCH 046/313] Pimplifying the code Attempt-1 --- src/KOKKOS/pair_uf3_kokkos.cpp | 59 +++--- src/ML-UF3/pair_uf3.cpp | 331 ++++++++++++++++++++------------- src/ML-UF3/pair_uf3.h | 28 ++- 3 files changed, 262 insertions(+), 156 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 176fc9fe05..3be2eae34d 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -18,6 +18,7 @@ Richard Hennig (Univ of Florida) ---------------------------------------------------------------------- */ +#include "pair_uf3.h" #include "pair_uf3_kokkos.h" #include "atom_kokkos.h" @@ -55,6 +56,7 @@ template PairUF3Kokkos::PairUF3Kokkos(LAMMPS *lmp execution_space = ExecutionSpaceFromDevice::space; datamask_read = X_MASK | F_MASK | TAG_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; + } template PairUF3Kokkos::~PairUF3Kokkos() @@ -270,6 +272,8 @@ template void PairUF3Kokkos::create_coefficients( template void PairUF3Kokkos::create_2b_coefficients() { const int num_of_elements = atom->ntypes; + std::vector>>& n2b_knot = get_n2b_knot(); + std::vector>>& n2b_coeff = get_n2b_coeff(); // Setup interaction pair map //TODO: Instead of using map2b and map3b use simple indexing @@ -317,7 +321,7 @@ template void PairUF3Kokkos::create_2b_coefficien for (int k = 0; k < n2b_knot[i][j].size(); k++) { d_n2b_knot_view(map2b_view(i, j), k) = n2b_knot[i][j][k]; } - d_n2b_knot_spacings_view(map2b_view(i, j)) = UFBS2b[i][j].knot_spacing; + d_n2b_knot_spacings_view(map2b_view(i, j)) = get_knot_spacing_2b(i,j); } } @@ -361,6 +365,10 @@ template void PairUF3Kokkos::create_2b_coefficien template void PairUF3Kokkos::create_3b_coefficients() { const int num_of_elements = atom->ntypes; + std::vector>>>>& n3b_knot_matrix = + get_n3b_knot_matrix(); + //std::unordered_map>>>& + // n3b_coeff_matrix = get_n3b_coeff_matrix(); // Init interaction map for 3B Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); @@ -393,7 +401,8 @@ template void PairUF3Kokkos::create_3b_coefficien max_knots = max(max_knots, max(n3b_knot_matrix[i][j][k][0].size(), - max(n3b_knot_matrix[i][j][k][1].size(), n3b_knot_matrix[i][j][k][2].size()))); + max(n3b_knot_matrix[i][j][k][1].size(), + n3b_knot_matrix[i][j][k][2].size()))); // Init knot matrix view @@ -412,9 +421,12 @@ template void PairUF3Kokkos::create_3b_coefficien for (int m = 0; m < n3b_knot_matrix[i][j][k][2].size(); m++) d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = n3b_knot_matrix[i][j][k][2][m]; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = UFBS3b[i][j][k].knot_spacing_ij; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = UFBS3b[i][j][k].knot_spacing_ik; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = UFBS3b[i][j][k].knot_spacing_jk; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = get_knot_spacing_3b_ij(i,j,k); + //uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = get_knot_spacing_3b_ik(i,j,k); + //uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = get_knot_spacing_3b_jk(i,j,k); + //uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; } Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); Kokkos::deep_copy(d_n3b_knot_matrix_spacings, d_n3b_knot_matrix_spacings_view); @@ -448,10 +460,13 @@ template void PairUF3Kokkos::create_3b_coefficien for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { - for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix[key][i][j].size() - 1; k++) { - d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = n3b_coeff_matrix[key][i][j][k]; + std::vector>> n3b_coeff_matrix_key = + get_n3b_coeff_matrix_key(key); + for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { + for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix_key[i][j].size() - 1; k++) { + d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = + n3b_coeff_matrix_key[i][j][k]; } } } @@ -483,37 +498,39 @@ template void PairUF3Kokkos::create_3b_coefficien for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { - for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix[key][i][j].size() - 1; k++) { + std::vector>> n3b_coeff_matrix_key = + get_n3b_coeff_matrix_key(key); + for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { + for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix_key[i][j].size() - 1; k++) { F_FLOAT dntemp4 = 3 / (n3b_knot_matrix[n][m][o][0][k + 4] - n3b_knot_matrix[n][m][o][0][k + 1]); d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = - (n3b_coeff_matrix[key][i][j][k + 1] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + (n3b_coeff_matrix_key[i][j][k + 1] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < n3b_coeff_matrix[key].size(); i++) { + for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { std::vector> dncoeff_vect2; - for (int j = 0; j < n3b_coeff_matrix[key][i].size() - 1; j++) { + for (int j = 0; j < n3b_coeff_matrix_key[i].size() - 1; j++) { F_FLOAT dntemp4 = 3 / (n3b_knot_matrix[n][m][o][1][j + 4] - n3b_knot_matrix[n][m][o][1][j + 1]); std::vector dncoeff_vect; - for (int k = 0; k < n3b_coeff_matrix[key][i][j].size(); k++) { + for (int k = 0; k < n3b_coeff_matrix_key[i][j].size(); k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = - (n3b_coeff_matrix[key][i][j + 1][k] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + (n3b_coeff_matrix_key[i][j + 1][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < n3b_coeff_matrix[key].size() - 1; i++) { + for (int i = 0; i < n3b_coeff_matrix_key.size() - 1; i++) { F_FLOAT dntemp4 = 3 / (n3b_knot_matrix[n][m][o][2][i + 4] - n3b_knot_matrix[n][m][o][2][i + 1]); - for (int j = 0; j < n3b_coeff_matrix[key][i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix[key][i][j].size(); k++) { + for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < n3b_coeff_matrix_key[i][j].size(); k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = - (n3b_coeff_matrix[key][i + 1][j][k] - n3b_coeff_matrix[key][i][j][k]) * dntemp4; + (n3b_coeff_matrix_key[i + 1][j][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 858f25cb8d..4bd4e64980 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -34,6 +34,20 @@ #include "text_file_reader.h" #include +#include + +namespace LAMMPS_NS{ + struct UF3Impl { + //int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; + //double ***cut_3b, **cut_3b_list, ****min_cut_3b; + + std::vector>> n2b_knot, n2b_coeff; + std::vector>>>> n3b_knot_matrix; + std::unordered_map>>> n3b_coeff_matrix; + std::vector> UFBS2b; + std::vector>> UFBS3b; + }; +} using namespace LAMMPS_NS; using MathConst::THIRD; @@ -41,9 +55,18 @@ using MathConst::THIRD; /* ---------------------------------------------------------------------- */ PairUF3::PairUF3(LAMMPS *lmp) : + //Pair(lmp), cut(nullptr) Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr) { + uf3_impl = new UF3Impl; + //uf3_impl->setflag_3b = nullptr; + //uf3_impl->knot_spacing_type_2b = nullptr; + //uf3_impl->knot_spacing_type_3b = nullptr; + //uf3_impl->cut_3b = nullptr; + //uf3_impl->cut_3b_list = nullptr; + //uf3_impl->min_cut_3b = nullptr; + single_enable = 1; // 1 if single() routine exists restartinfo = 0; // 1 if pair style writes restart info maxshort = 10; @@ -73,6 +96,7 @@ PairUF3::~PairUF3() memory->destroy(knot_spacing_type_3b); } } + delete uf3_impl; } /* ---------------------------------------------------------------------- @@ -155,27 +179,28 @@ void PairUF3::allocate() "pair:knot_spacing_2b"); // Contains knot_vect of 2-body potential for type i and j - n2b_knot.resize(num_of_elements + 1); - n2b_coeff.resize(num_of_elements + 1); - UFBS2b.resize(num_of_elements + 1); + uf3_impl->n2b_knot.resize(num_of_elements + 1); + uf3_impl->n2b_coeff.resize(num_of_elements + 1); + uf3_impl->UFBS2b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { - n2b_knot[i].resize(num_of_elements + 1); - n2b_coeff[i].resize(num_of_elements + 1); - UFBS2b[i].resize(num_of_elements + 1); + uf3_impl->n2b_knot[i].resize(num_of_elements + 1); + uf3_impl->n2b_coeff[i].resize(num_of_elements + 1); + uf3_impl->UFBS2b[i].resize(num_of_elements + 1); } if (pot_3b) { // Contains info about wether UF potential were found for type i, j and k - memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, - "pair:setflag_3b"); + memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, "pair:setflag_3b"); // Contains info about 3-body cutoff distance for type i, j and k - memory->create(cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, - "pair:cut_3b"); + memory->create(cut_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, "pair:cut_3b"); // Contains info about 3-body cutoff distance for type i, j and k // for constructing 3-body list - memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, "pair:cut_3b_list"); + memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, + "pair:cut_3b_list"); // Contains info about minimum 3-body cutoff distance for type i, j and k - memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, 3, - "pair:min_cut_3b"); + memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, 3, "pair:min_cut_3b"); //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) //1 = non-uniform knot spacing memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, @@ -193,14 +218,14 @@ void PairUF3::allocate() } } } - n3b_knot_matrix.resize(num_of_elements + 1); - UFBS3b.resize(num_of_elements + 1); + uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); + uf3_impl->UFBS3b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { - n3b_knot_matrix[i].resize(num_of_elements + 1); - UFBS3b[i].resize(num_of_elements + 1); + uf3_impl->n3b_knot_matrix[i].resize(num_of_elements + 1); + uf3_impl->UFBS3b[i].resize(num_of_elements + 1); for (int j = 1; j < num_of_elements + 1; j++) { - n3b_knot_matrix[i][j].resize(num_of_elements + 1); - UFBS3b[i][j].resize(num_of_elements + 1); + uf3_impl->n3b_knot_matrix[i][j].resize(num_of_elements + 1); + uf3_impl->UFBS3b[i][j].resize(num_of_elements + 1); } } memory->create(neighshort, maxshort, "pair:neighshort"); @@ -290,11 +315,11 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_2b, fp4th_line.count()); - n2b_knot[itype][jtype].resize(num_knots_2b); - n2b_knot[jtype][itype].resize(num_knots_2b); + uf3_impl->n2b_knot[itype][jtype].resize(num_knots_2b); + uf3_impl->n2b_knot[jtype][itype].resize(num_knots_2b); for (int k = 0; k < num_knots_2b; k++) { - n2b_knot[itype][jtype][k] = fp4th_line.next_double(); - n2b_knot[jtype][itype][k] = n2b_knot[itype][jtype][k]; + uf3_impl->n2b_knot[itype][jtype][k] = fp4th_line.next_double(); + uf3_impl->n2b_knot[jtype][itype][k] = uf3_impl->n2b_knot[itype][jtype][k]; } temp_line = txtfilereader.next_line(1); @@ -308,14 +333,14 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_of_coeff_2b, fp6th_line.count()); - n2b_coeff[itype][jtype].resize(num_of_coeff_2b); - n2b_coeff[jtype][itype].resize(num_of_coeff_2b); + uf3_impl->n2b_coeff[itype][jtype].resize(num_of_coeff_2b); + uf3_impl->n2b_coeff[jtype][itype].resize(num_of_coeff_2b); for (int k = 0; k < num_of_coeff_2b; k++) { - n2b_coeff[itype][jtype][k] = fp6th_line.next_double(); - n2b_coeff[jtype][itype][k] = n2b_coeff[itype][jtype][k]; + uf3_impl->n2b_coeff[itype][jtype][k] = fp6th_line.next_double(); + uf3_impl->n2b_coeff[jtype][itype][k] = uf3_impl->n2b_coeff[itype][jtype][k]; } - if (n2b_knot[itype][jtype].size() != n2b_coeff[itype][jtype].size() + 4) { + if (uf3_impl->n2b_knot[itype][jtype].size() != uf3_impl->n2b_coeff[itype][jtype].size() + 4) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); } @@ -326,6 +351,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) { + int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); @@ -420,19 +446,19 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_3b_jk, fp4th_line.count()); - n3b_knot_matrix[itype][jtype][ktype].resize(3); - n3b_knot_matrix[itype][ktype][jtype].resize(3); + uf3_impl->n3b_knot_matrix[itype][jtype][ktype].resize(3); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype].resize(3); - n3b_knot_matrix[itype][jtype][ktype][0].resize(num_knots_3b_jk); - n3b_knot_matrix[itype][ktype][jtype][0].resize(num_knots_3b_jk); + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0].resize(num_knots_3b_jk); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0].resize(num_knots_3b_jk); for (int i = 0; i < num_knots_3b_jk; i++) { - n3b_knot_matrix[itype][jtype][ktype][0][i] = fp4th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][0][i] = n3b_knot_matrix[itype][jtype][ktype][0][i]; + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][i] = fp4th_line.next_double(); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][i]; } - min_cut_3b[itype][jtype][ktype][0] = n3b_knot_matrix[itype][jtype][ktype][0][0]; - min_cut_3b[itype][ktype][jtype][0] = n3b_knot_matrix[itype][ktype][jtype][0][0]; + min_cut_3b[itype][jtype][ktype][0] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][0]; + min_cut_3b[itype][ktype][jtype][0] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0][0]; int num_knots_3b_ik = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ik); @@ -442,15 +468,15 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: Expected {} numbers on 5th line but found {} numbers", num_knots_3b_ik, fp5th_line.count()); - n3b_knot_matrix[itype][jtype][ktype][1].resize(num_knots_3b_ik); - n3b_knot_matrix[itype][ktype][jtype][2].resize(num_knots_3b_ik); + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1].resize(num_knots_3b_ik); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2].resize(num_knots_3b_ik); for (int i = 0; i < num_knots_3b_ik; i++) { - n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][2][i] = n3b_knot_matrix[itype][jtype][ktype][1][i]; + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][i]; } - min_cut_3b[itype][jtype][ktype][1] = n3b_knot_matrix[itype][jtype][ktype][1][0]; - min_cut_3b[itype][ktype][jtype][2] = n3b_knot_matrix[itype][ktype][jtype][2][0]; + min_cut_3b[itype][jtype][ktype][1] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][0]; + min_cut_3b[itype][ktype][jtype][2] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2][0]; int num_knots_3b_ij = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(num_knots_3b_ij); @@ -460,15 +486,15 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_knots_3b_ij, fp5th_line.count()); - n3b_knot_matrix[itype][jtype][ktype][2].resize(num_knots_3b_ij); - n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2].resize(num_knots_3b_ij); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); for (int i = 0; i < num_knots_3b_ij; i++) { - n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); - n3b_knot_matrix[itype][ktype][jtype][1][i] = n3b_knot_matrix[itype][jtype][ktype][2][i]; + uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); + uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][i]; } - min_cut_3b[itype][jtype][ktype][2] = n3b_knot_matrix[itype][jtype][ktype][2][0]; - min_cut_3b[itype][ktype][jtype][1] = n3b_knot_matrix[itype][ktype][jtype][1][0]; + min_cut_3b[itype][jtype][ktype][2] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][0]; + min_cut_3b[itype][ktype][jtype][1] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1][0]; temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); @@ -484,19 +510,19 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name coeff_matrix_dim2 = fp7th_line.next_int(); coeff_matrix_dim3 = fp7th_line.next_int(); - if (n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) + if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and " "coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", potf_name); - if (n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) + if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and " "coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1", potf_name); - if (n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) + if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) error->all(FLERR, "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and " "coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1", @@ -505,39 +531,39 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name coeff_matrix_elements_len = coeff_matrix_dim3; std::string key = std::to_string(itype) + std::to_string(jtype) + std::to_string(ktype); - n3b_coeff_matrix[key].resize(coeff_matrix_dim1); + uf3_impl->n3b_coeff_matrix[key].resize(coeff_matrix_dim1); int line_count = 0; for (int i = 0; i < coeff_matrix_dim1; i++) { - n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); + uf3_impl->n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); for (int j = 0; j < coeff_matrix_dim2; j++) { temp_line = txtfilereader.next_line(coeff_matrix_elements_len); ValueTokenizer coeff_line(temp_line); - n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); + uf3_impl->n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); if (coeff_line.count() != coeff_matrix_elements_len) error->all(FLERR, "UF3: Expected {} numbers on {}th line but found {} numbers", coeff_matrix_elements_len, line_count + 8, coeff_line.count()); for (int k = 0; k < coeff_matrix_dim3; k++) { - n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); + uf3_impl->n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); } line_count += 1; } } std::string key2 = std::to_string(itype) + std::to_string(ktype) + std::to_string(jtype); - n3b_coeff_matrix[key2].resize(coeff_matrix_dim2); + uf3_impl->n3b_coeff_matrix[key2].resize(coeff_matrix_dim2); for (int j = 0; j < coeff_matrix_dim2; j++) { - n3b_coeff_matrix[key2][j].resize(coeff_matrix_dim1); + uf3_impl->n3b_coeff_matrix[key2][j].resize(coeff_matrix_dim1); for (int i = 0; i < coeff_matrix_dim1; i++) { - n3b_coeff_matrix[key2][j][i].resize(coeff_matrix_dim3); + uf3_impl->n3b_coeff_matrix[key2][j][i].resize(coeff_matrix_dim3); } } for (int i = 0; i < coeff_matrix_dim1; i++) { for (int j = 0; j < coeff_matrix_dim2; j++) { for (int k = 0; k < coeff_matrix_dim3; k++) { - n3b_coeff_matrix[key2][j][i][k] = n3b_coeff_matrix[key][i][j][k]; + uf3_impl->n3b_coeff_matrix[key2][j][i][k] = uf3_impl->n3b_coeff_matrix[key][i][j][k]; } } } @@ -580,11 +606,11 @@ void PairUF3::uf3_read_pot_file(char *potf_name) temp_line = txtfilereader.next_line(temp_line_len); ValueTokenizer fp4th_line(temp_line); - n2b_knot[temp_type1][temp_type2].resize(temp_line_len); - n2b_knot[temp_type2][temp_type1].resize(temp_line_len); + uf3_impl->n2b_knot[temp_type1][temp_type2].resize(temp_line_len); + uf3_impl->n2b_knot[temp_type2][temp_type1].resize(temp_line_len); for (int k = 0; k < temp_line_len; k++) { - n2b_knot[temp_type1][temp_type2][k] = fp4th_line.next_double(); - n2b_knot[temp_type2][temp_type1][k] = n2b_knot[temp_type1][temp_type2][k]; + uf3_impl->n2b_knot[temp_type1][temp_type2][k] = fp4th_line.next_double(); + uf3_impl->n2b_knot[temp_type2][temp_type1][k] = uf3_impl->n2b_knot[temp_type1][temp_type2][k]; } temp_line = txtfilereader.next_line(1); @@ -594,20 +620,21 @@ void PairUF3::uf3_read_pot_file(char *potf_name) temp_line = txtfilereader.next_line(temp_line_len); ValueTokenizer fp6th_line(temp_line); - n2b_coeff[temp_type1][temp_type2].resize(temp_line_len); - n2b_coeff[temp_type2][temp_type1].resize(temp_line_len); + uf3_impl->n2b_coeff[temp_type1][temp_type2].resize(temp_line_len); + uf3_impl->n2b_coeff[temp_type2][temp_type1].resize(temp_line_len); for (int k = 0; k < temp_line_len; k++) { - n2b_coeff[temp_type1][temp_type2][k] = fp6th_line.next_double(); - n2b_coeff[temp_type2][temp_type1][k] = n2b_coeff[temp_type1][temp_type2][k]; + uf3_impl->n2b_coeff[temp_type1][temp_type2][k] = fp6th_line.next_double(); + uf3_impl->n2b_coeff[temp_type2][temp_type1][k] = uf3_impl->n2b_coeff[temp_type1][temp_type2][k]; } - if (n2b_knot[temp_type1][temp_type2].size() != n2b_coeff[temp_type1][temp_type2].size() + 4) { + if (uf3_impl->n2b_knot[temp_type1][temp_type2].size() != uf3_impl->n2b_coeff[temp_type1][temp_type2].size() + 4) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); } setflag[temp_type1][temp_type2] = 1; setflag[temp_type2][temp_type1] = 1; } else if (fp2nd_line.contains("3B") == 1) { + int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; temp_line = txtfilereader.next_line(9); ValueTokenizer fp3rd_line(temp_line); int temp_type1 = fp3rd_line.next_int(); @@ -618,7 +645,9 @@ void PairUF3::uf3_read_pot_file(char *potf_name) double cut3b_rij = fp3rd_line.next_double(); // cut_3b[temp_type1][temp_type2] = std::max(cut3b_rij, // cut_3b[temp_type1][temp_type2]); - cut_3b_list[temp_type1][temp_type2] = std::max(cut3b_rij, cut_3b_list[temp_type1][temp_type2]); + cut_3b_list[temp_type1][temp_type2] = + std::max(cut3b_rij, cut_3b_list[temp_type1][temp_type2]); + double cut3b_rik = fp3rd_line.next_double(); if (cut3b_rij != cut3b_rik) { error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); @@ -628,7 +657,8 @@ void PairUF3::uf3_read_pot_file(char *potf_name) "UF3: 2rij=2rik!=rik, Current implementation only works for 2rij=2rik!=rik"); } // cut_3b[temp_type1][temp_type3] = std::max(cut_3b[temp_type1][temp_type3],cut3b_rik); - cut_3b_list[temp_type1][temp_type3] = std::max(cut_3b_list[temp_type1][temp_type3], cut3b_rik); + cut_3b_list[temp_type1][temp_type3] = + std::max(cut_3b_list[temp_type1][temp_type3], cut3b_rik); cut_3b[temp_type1][temp_type2][temp_type3] = cut3b_rij; cut_3b[temp_type1][temp_type3][temp_type2] = cut3b_rik; @@ -637,53 +667,53 @@ void PairUF3::uf3_read_pot_file(char *potf_name) temp_line = txtfilereader.next_line(temp_line_len); ValueTokenizer fp4th_line(temp_line); - n3b_knot_matrix[temp_type1][temp_type2][temp_type3].resize(3); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2].resize(3); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3].resize(3); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2].resize(3); - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].resize(temp_line_len); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0].resize(temp_line_len); for (int i = 0; i < temp_line_len; i++) { - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i] = fp4th_line.next_double(); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][i] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i] = fp4th_line.next_double(); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][i] = + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i]; } min_cut_3b[temp_type1][temp_type2][temp_type3][0] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][0] = - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); ValueTokenizer fp5th_line(temp_line); - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].resize(temp_line_len); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2].resize(temp_line_len); for (int i = 0; i < temp_line_len; i++) { - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i] = fp5th_line.next_double(); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][i] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i] = fp5th_line.next_double(); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][i] = + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i]; } min_cut_3b[temp_type1][temp_type2][temp_type3][1] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][2] = - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; temp_line_len = fp3rd_line.next_int(); temp_line = txtfilereader.next_line(temp_line_len); ValueTokenizer fp6th_line(temp_line); - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].resize(temp_line_len); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].resize(temp_line_len); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1].resize(temp_line_len); for (int i = 0; i < temp_line_len; i++) { - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i] = fp6th_line.next_double(); - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][i] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i] = fp6th_line.next_double(); + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][i] = + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i]; } min_cut_3b[temp_type1][temp_type2][temp_type3][2] = - n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; min_cut_3b[temp_type1][temp_type3][temp_type2][1] = - n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; + uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; temp_line = txtfilereader.next_line(3); ValueTokenizer fp7th_line(temp_line); @@ -691,17 +721,17 @@ void PairUF3::uf3_read_pot_file(char *potf_name) coeff_matrix_dim1 = fp7th_line.next_int(); coeff_matrix_dim2 = fp7th_line.next_int(); coeff_matrix_dim3 = fp7th_line.next_int(); - if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].size() != + if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].size() != coeff_matrix_dim3 + 3 + 1) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); } - if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].size() != + if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].size() != coeff_matrix_dim2 + 3 + 1) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); } - if (n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].size() != + if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].size() != coeff_matrix_dim1 + 3 + 1) { error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", potf_name); @@ -711,23 +741,24 @@ void PairUF3::uf3_read_pot_file(char *potf_name) std::string key = std::to_string(temp_type1) + std::to_string(temp_type2) + std::to_string(temp_type3); - n3b_coeff_matrix[key].resize(coeff_matrix_dim1); + uf3_impl->n3b_coeff_matrix[key].resize(coeff_matrix_dim1); for (int i = 0; i < coeff_matrix_dim1; i++) { - n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); + uf3_impl->n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); for (int j = 0; j < coeff_matrix_dim2; j++) { temp_line = txtfilereader.next_line(coeff_matrix_elements_len); ValueTokenizer coeff_line(temp_line); - n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); + uf3_impl->n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); for (int k = 0; k < coeff_matrix_dim3; k++) { - n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); + uf3_impl->n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); } } } key = std::to_string(temp_type1) + std::to_string(temp_type3) + std::to_string(temp_type2); - n3b_coeff_matrix[key] = - n3b_coeff_matrix[std::to_string(temp_type1) + std::to_string(temp_type2) + - std::to_string(temp_type3)]; + uf3_impl->n3b_coeff_matrix[key] = + uf3_impl->n3b_coeff_matrix[std::to_string(temp_type1) + + std::to_string(temp_type2) + + std::to_string(temp_type3)]; setflag_3b[temp_type1][temp_type2][temp_type3] = 1; setflag_3b[temp_type1][temp_type3][temp_type2] = 1; } else @@ -799,19 +830,20 @@ void PairUF3::create_bsplines() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - UFBS2b[i][j] = - uf3_pair_bspline(lmp, n2b_knot[i][j], n2b_coeff[i][j], knot_spacing_type_2b[i][j]); - UFBS2b[j][i] = UFBS2b[i][j]; + uf3_impl->UFBS2b[i][j] = + uf3_pair_bspline(lmp, uf3_impl->n2b_knot[i][j], uf3_impl->n2b_coeff[i][j], + knot_spacing_type_2b[i][j]); + uf3_impl->UFBS2b[j][i] = uf3_impl->UFBS2b[i][j]; } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - UFBS3b[i][j][k] = uf3_triplet_bspline( - lmp, n3b_knot_matrix[i][j][k], n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); + uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( + lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); - UFBS3b[i][k][j] = uf3_triplet_bspline( - lmp, n3b_knot_matrix[i][k][j], n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); + uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( + lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); } } } @@ -879,7 +911,7 @@ void PairUF3::compute(int eflag, int vflag) } } - double *pair_eval = UFBS2b[itype][jtype].eval(rij); + double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(rij); fpair = -1 * pair_eval[1] / rij; @@ -968,9 +1000,10 @@ void PairUF3::compute(int eflag, int vflag) rik = sqrt( ((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); - if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && - (rij >= min_cut_3b[itype][jtype][ktype][2]) && - (rik >= min_cut_3b[itype][jtype][ktype][1])) { + if ((rij <= cut_3b[itype][jtype][ktype]) && + (rik <= cut_3b[itype][ktype][jtype]) && + (rij >= min_cut_3b[itype][jtype][ktype][2]) && + (rik >= min_cut_3b[itype][jtype][ktype][1])) { del_rkj[0] = x[k][0] - x[j][0]; del_rkj[1] = x[k][1] - x[j][1]; @@ -979,7 +1012,7 @@ void PairUF3::compute(int eflag, int vflag) ((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); if (rjk >= min_cut_3b[itype][jtype][ktype][0]) { - double *triangle_eval = UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); + double *triangle_eval = uf3_impl->UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); fij[0] = *(triangle_eval + 1) * (del_rji[0] / rij); fji[0] = -fij[0]; @@ -1090,7 +1123,7 @@ double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, double r = sqrt(rsq); if (r < cut[itype][jtype]) { - double *pair_eval = UFBS2b[itype][jtype].eval(r); + double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(r); value = pair_eval[0]; fforce = factor_lj * pair_eval[1]; } @@ -1125,21 +1158,21 @@ double PairUF3::memory_usage() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - bytes += (double) 2 * n2b_knot[i][j].size() * sizeof(double); //n2b_knot - bytes += (double) 2 * n2b_coeff[i][j].size() * sizeof(double); //n2b_coeff + bytes += (double) 2 * uf3_impl->n2b_knot[i][j].size() * sizeof(double); //n2b_knot + bytes += (double) 2 * uf3_impl->n2b_coeff[i][j].size() * sizeof(double); //n2b_coeff } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double) 2 * n3b_knot_matrix[i][j][k][0].size() * sizeof(double); - bytes += (double) 2 * n3b_knot_matrix[i][j][k][1].size() * sizeof(double); - bytes += (double) 2 * n3b_knot_matrix[i][j][k][2].size() * sizeof(double); + bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][0].size() * sizeof(double); + bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][1].size() * sizeof(double); + bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][2].size() * sizeof(double); std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - for (int l = 0; l < n3b_coeff_matrix[key].size(); l++) { - for (int m = 0; m < n3b_coeff_matrix[key][l].size(); m++) { - bytes += (double) 2 * n3b_coeff_matrix[key][l][m].size() * sizeof(double); + for (int l = 0; l < uf3_impl->n3b_coeff_matrix[key].size(); l++) { + for (int m = 0; m < uf3_impl->n3b_coeff_matrix[key][l].size(); m++) { + bytes += (double) 2 * uf3_impl->n3b_coeff_matrix[key][l][m].size() * sizeof(double); //key = ijk //key = ikj } @@ -1151,12 +1184,12 @@ double PairUF3::memory_usage() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - bytes += (double) 2 * UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] + bytes += (double) 2 * uf3_impl->UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double) 2 * UFBS3b[i][j][k].memory_usage(); + bytes += (double) 2 * uf3_impl->UFBS3b[i][j][k].memory_usage(); } } } @@ -1166,3 +1199,49 @@ double PairUF3::memory_usage() return bytes; } + +//Accessor function called by pair_uf3_kokkos.cpp +//Will probably be removed once std::vector are converted to arrays +std::vector>>& PairUF3::get_n2b_knot() +{ + return uf3_impl->n2b_knot; +} + +std::vector>>& PairUF3::get_n2b_coeff() +{ + return uf3_impl->n2b_coeff; +} +//Accessor function called by pair_uf3_kokkos.cpp +//Will probably be removed once std::vector are converted to arrays +std::vector>>>>& + PairUF3::get_n3b_knot_matrix() +{ + return uf3_impl->n3b_knot_matrix; +} + +//Accessor function called by pair_uf3_kokkos.cpp +//Will probably be removed once std::vector are converted to arrays +std::vector>>& + PairUF3::get_n3b_coeff_matrix_key(std::string key) +{ + return uf3_impl->n3b_coeff_matrix[key]; +} + +double PairUF3::get_knot_spacing_2b(int i, int j) +{ + return uf3_impl->UFBS2b[i][j].knot_spacing; +} + +double PairUF3::get_knot_spacing_3b_ij(int i, int j, int k) +{ + return uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; +} +double PairUF3::get_knot_spacing_3b_ik(int i, int j, int k) +{ + return uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; +} +double PairUF3::get_knot_spacing_3b_jk(int i, int j, int k) +{ + return uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; +} + diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index d3e988cc1e..62d35d8954 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -27,12 +27,12 @@ PairStyle(uf3,PairUF3); #ifndef LMP_PAIR_UF3_H #define LMP_PAIR_UF3_H -#include "uf3_pair_bspline.h" -#include "uf3_triplet_bspline.h" +//#include "uf3_pair_bspline.h" +//#include "uf3_triplet_bspline.h" #include "pair.h" -#include +//#include namespace LAMMPS_NS { class PairUF3 : public Pair { @@ -55,17 +55,27 @@ class PairUF3 : public Pair { void uf3_read_pot_file(int i, int j, int k, char *potf_name); int nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; int bsplines_created; - int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; + //int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; bool pot_3b; int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; virtual void allocate(); void create_bsplines(); - std::vector>> n2b_knot, n2b_coeff; - std::vector>>>> n3b_knot_matrix; - std::unordered_map>>> n3b_coeff_matrix; - std::vector> UFBS2b; - std::vector>> UFBS3b; + struct UF3Impl *uf3_impl; //PIMPLE (pointer-to-implementation) + UF3Impl *get_UF3Impl(); + + //Accessor function called by pair_uf3_kokkos.cpp + //Will probably be removed once std::vector are converted to arrays + std::vector>>& get_n2b_knot(); + std::vector>>& get_n2b_coeff(); + std::vector>>>>& get_n3b_knot_matrix(); + std::vector>>& get_n3b_coeff_matrix_key(std::string key); + double get_knot_spacing_2b(int i, int j); + double get_knot_spacing_3b_ij(int i, int j, int k); + double get_knot_spacing_3b_ik(int i, int j, int k); + double get_knot_spacing_3b_jk(int i, int j, int k); + //std::vector> UFBS2b; + //std::vector>> UFBS3b; int *neighshort, maxshort; // short neighbor list array for 3body interaction }; From d3bc4c7eb83e8d6aa82747cf4d026462e5cc4ea8 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 11:18:01 -0400 Subject: [PATCH 047/313] Removed commented out code --- src/KOKKOS/pair_uf3_kokkos.cpp | 2 +- src/ML-UF3/pair_uf3.cpp | 10 ---------- src/ML-UF3/pair_uf3.h | 7 ------- 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 3be2eae34d..7bc6ef22d5 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -148,7 +148,7 @@ void PairUF3Kokkos::allocate() int n = atom->ntypes; memory->destroy(cutsq); //Why are we destroying cutsq? cutsq is allocated when //PairUF3::coeff or PairUF3::allocate is called; in the next step when k_cutsq - //is created cut_3b is set to point to the host array of k_cutsq + //is created cutsq is set to point to the host array of k_cutsq //memory->destroy(cut_3b); memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 4bd4e64980..a9a1d11acb 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -38,8 +38,6 @@ namespace LAMMPS_NS{ struct UF3Impl { - //int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; - //double ***cut_3b, **cut_3b_list, ****min_cut_3b; std::vector>> n2b_knot, n2b_coeff; std::vector>>>> n3b_knot_matrix; @@ -55,18 +53,10 @@ using MathConst::THIRD; /* ---------------------------------------------------------------------- */ PairUF3::PairUF3(LAMMPS *lmp) : - //Pair(lmp), cut(nullptr) Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr) { uf3_impl = new UF3Impl; - //uf3_impl->setflag_3b = nullptr; - //uf3_impl->knot_spacing_type_2b = nullptr; - //uf3_impl->knot_spacing_type_3b = nullptr; - //uf3_impl->cut_3b = nullptr; - //uf3_impl->cut_3b_list = nullptr; - //uf3_impl->min_cut_3b = nullptr; - single_enable = 1; // 1 if single() routine exists restartinfo = 0; // 1 if pair style writes restart info maxshort = 10; diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 62d35d8954..293d359c3f 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -27,12 +27,8 @@ PairStyle(uf3,PairUF3); #ifndef LMP_PAIR_UF3_H #define LMP_PAIR_UF3_H -//#include "uf3_pair_bspline.h" -//#include "uf3_triplet_bspline.h" - #include "pair.h" -//#include namespace LAMMPS_NS { class PairUF3 : public Pair { @@ -55,7 +51,6 @@ class PairUF3 : public Pair { void uf3_read_pot_file(int i, int j, int k, char *potf_name); int nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; int bsplines_created; - //int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; bool pot_3b; int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; @@ -74,8 +69,6 @@ class PairUF3 : public Pair { double get_knot_spacing_3b_ij(int i, int j, int k); double get_knot_spacing_3b_ik(int i, int j, int k); double get_knot_spacing_3b_jk(int i, int j, int k); - //std::vector> UFBS2b; - //std::vector>> UFBS3b; int *neighshort, maxshort; // short neighbor list array for 3body interaction }; From 7281f9327b0fd245c0659b0c09fb93b36bfe239a Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:14:28 -0400 Subject: [PATCH 048/313] Added code to check if 'UNITS:' metadata is present in the pot file or not --- src/ML-UF3/pair_uf3.cpp | 44 ++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index a9a1d11acb..f4c77e7b4c 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -234,10 +234,10 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) std::string temp_line = txtfilereader.next_line(1); Tokenizer file_header(temp_line); - if (file_header.count() != 2) + if (file_header.count() <= 2) error->all(FLERR, - "UF3: Expected only two words on 1st line of {} but found " - "{} word/s", + "UF3: Expected more than two words on 1st line of {} \n" + "but found {} word/s", potf_name, file_header.count()); if (file_header.contains("#UF3 POT") == 0) @@ -245,6 +245,12 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" "files contain '#UF3 POT'. Found {} in the header", potf_name, temp_line); + + if (file_header.contains("UNITS:") == 0) + error->all(FLERR, + "UF3: {} file does not contain the 'UNITS:' metadata in \n" + "the header", + potf_name); temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); @@ -352,18 +358,24 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name std::string temp_line = txtfilereader.next_line(1); Tokenizer file_header(temp_line); - if (file_header.count() != 2) + if (file_header.count() <= 2) error->all(FLERR, - "UF3: Expected only two words on 1st line of {} but found " - "{} word/s", + "UF3: Expected more than two words on 1st line of {} \n" + "but found {} word/s", potf_name, file_header.count()); if (file_header.contains("#UF3 POT") == 0) error->all(FLERR, - "UF3: {} file is not UF3 POT type, 1st line of UF3 POT " + "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" "files contain '#UF3 POT'. Found {} in the header", potf_name, temp_line); + if (file_header.contains("UNITS:") == 0) + error->all(FLERR, + "UF3: {} file does not contain the 'UNITS:' metadata in \n" + "the header", + potf_name); + temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); @@ -575,9 +587,23 @@ void PairUF3::uf3_read_pot_file(char *potf_name) std::string temp_line = txtfilereader.next_line(2); Tokenizer fp1st_line(temp_line); + if (fp1st_line.count() <= 2) + error->all(FLERR, + "UF3: Expected more than two words on 1st line of {} \n" + "but found {} word/s", + potf_name, fp1st_line.count()); + if (fp1st_line.contains("#UF3 POT") == 0) - error->all(FLERR, "UF3: {} file is not UF3 POT type, found type {} {} on the file", potf_name, - fp1st_line.next(), fp1st_line.next()); + error->all(FLERR, + "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" + "files contain '#UF3 POT'. Found {} in the header", + potf_name, temp_line); + + if (fp1st_line.contains("UNITS:") == 0) + error->all(FLERR, + "UF3: {} file does not contain the 'UNITS:' metadata in \n" + "the header", + potf_name); temp_line = txtfilereader.next_line(1); Tokenizer fp2nd_line(temp_line); From 3734252ed865d369c6747afe40adca39d47cf889 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:15:05 -0400 Subject: [PATCH 049/313] Replaced the A_A.uf3 and A_A_A.uf3 with uf3 lammps pot files for Nb --- potentials/Nb_Nb.uf3 | 7 +++ potentials/Nb_Nb_Nb.uf3 | 129 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 potentials/Nb_Nb.uf3 create mode 100644 potentials/Nb_Nb_Nb.uf3 diff --git a/potentials/Nb_Nb.uf3 b/potentials/Nb_Nb.uf3 new file mode 100644 index 0000000000..a8583b105d --- /dev/null +++ b/potentials/Nb_Nb.uf3 @@ -0,0 +1,7 @@ +#UF3 POT UNITS: metal DATE: 2024-04-02 12:18:15.359106 AUTHOR: Ajinkya_Hire CITATION: +2B 0 3 nk +8.0 31 +0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 +27 +79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 +# diff --git a/potentials/Nb_Nb_Nb.uf3 b/potentials/Nb_Nb_Nb.uf3 new file mode 100644 index 0000000000..ac3748b33c --- /dev/null +++ b/potentials/Nb_Nb_Nb.uf3 @@ -0,0 +1,129 @@ +#UF3 POT UNITS: metal DATE: 2024-04-02 12:18:15.359106 AUTHOR: Ajinkya_Hire CITATION: +3B 0 3 nk +8.0 4.0 4.0 23 15 15 +0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 +11 11 19 +-1.1790416072105636e-06 6.589114265858035e-08 2.1094970065385374e-06 4.7014910818419987e-07 8.288423734406254e-06 0.000186151370764668 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +9.36844864368356e-06 1.9223644807676324e-05 1.9979026246524356e-05 3.627062812549574e-05 9.775578281629195e-06 -5.894357549683858e-06 6.470814473155067e-07 2.31805322174729e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00013804169495254125 0.0012238504051117233 0.01461439973735456 0.010197731078827295 0.009003775355755566 0.030381456320656558 0.024785731678029766 0.004637019267552505 -0.005938106654005813 -0.002605150959220643 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.003917873880791907 -0.0007874629498581528 -2.4595030318112164e-05 -2.8508297646329816e-06 1.8504666071760445e-07 0.0001190800388356091 0.0035373487148805376 0.00037674157183609377 0.0012087894330956167 0.0009651695201594091 4.769364472898923e-05 0.0004612591073953361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0016181071043329578 0.003179470547568356 0.008661622548635572 0.011071785334468471 0.004294892778359652 0.0017845979744737465 0.0034643761195723064 0.015112039067322293 0.022192108732694595 0.008134230944897397 0.0007595380961610584 1.6727218309602107e-05 0.00012823915020345735 0.0001971442066043176 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +-1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 +5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 +0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 +0.00018639122271027446 0.0034767153815636618 0.018231622622978436 0.0042988446466234575 0.05300133577632108 0.7250033316881788 0.4935009383219143 0.42606157195551264 1.5039118559972142 1.2303936880370434 0.22548363428435172 -0.30298333788301807 -0.13073656424500055 -0.010403074319359695 0.005059645288601829 0.0015181780063355998 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 +-2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 +4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 +0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 +0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 +-0.011510449622067839 -0.0007610595804959427 1.0172131902385016e-05 0.00448473230635448 0.2199020425072735 0.07466247888373397 0.21339517449435372 0.013531084627798973 0.04473458040783101 0.2378714243611067 0.10478901497777 0.37112701147924365 0.27817806337533985 -0.2385293501359752 -0.33578482057600856 -0.004009555340792723 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 +-7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 +0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 +6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 +-0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 +4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 +-0.0008465335016788498 -9.208409992139663e-05 -1.1210629044433908e-05 0.004300763141885697 0.1800503541691201 0.016819879476467067 0.060737350690215776 0.042330087306607714 0.0007006095666399378 0.02251352126872946 0.011185142175963118 -0.02716513333374441 0.00952941322650142 0.02210443704516212 0.07011148238258197 0.057840211345517194 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +# From 1ef7b8132c54c86935956770fb8d10cf0625e8de Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:16:00 -0400 Subject: [PATCH 050/313] Updated A_A.uf3 to Nb_Nb.uf3 and A_A_A.uf3 to Nb_Nb_Nb.uf3 --- unittest/force-styles/tests/manybody-pair-uf3.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unittest/force-styles/tests/manybody-pair-uf3.yaml b/unittest/force-styles/tests/manybody-pair-uf3.yaml index cd7fbb9196..075891e8f4 100644 --- a/unittest/force-styles/tests/manybody-pair-uf3.yaml +++ b/unittest/force-styles/tests/manybody-pair-uf3.yaml @@ -14,8 +14,8 @@ post_commands: ! "" input_file: in.manybody pair_style: uf3 3 pair_coeff: ! | - * * A_A.uf3 - 3b * * * A_A_A.uf3 + * * Nb_Nb.uf3 + 3b * * * Nb_Nb_Nb.uf3 extract: ! "" natoms: 64 init_vdwl: -76.14388662099438 From 887ce4948a2d0294fb98d0a558556ab0dd8b2896 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:16:38 -0400 Subject: [PATCH 051/313] Removed old pot files --- potentials/A_A.uf3 | 7 --- potentials/A_A_A.uf3 | 129 ------------------------------------------- 2 files changed, 136 deletions(-) delete mode 100644 potentials/A_A.uf3 delete mode 100644 potentials/A_A_A.uf3 diff --git a/potentials/A_A.uf3 b/potentials/A_A.uf3 deleted file mode 100644 index a50b48bae9..0000000000 --- a/potentials/A_A.uf3 +++ /dev/null @@ -1,7 +0,0 @@ -#UF3 POT -2B 0 3 nk -8.0 31 -0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 -27 -79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 -# diff --git a/potentials/A_A_A.uf3 b/potentials/A_A_A.uf3 deleted file mode 100644 index 18f79c3b8a..0000000000 --- a/potentials/A_A_A.uf3 +++ /dev/null @@ -1,129 +0,0 @@ -#UF3 POT -3B 0 3 nk -8.0 4.0 4.0 23 15 15 -0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 -0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 -0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 -11 11 19 --1.1790416072105636e-06 6.589114265858035e-08 2.1094970065385374e-06 4.7014910818419987e-07 8.288423734406254e-06 0.000186151370764668 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -3.2366723157260956e-05 2.6208783380066457e-05 1.0239981836366566e-05 1.8487993936404763e-05 2.1943710009352506e-05 2.6899947783571087e-07 5.002786118380638e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -9.36844864368356e-06 1.9223644807676324e-05 1.9979026246524356e-05 3.627062812549574e-05 9.775578281629195e-06 -5.894357549683858e-06 6.470814473155067e-07 2.31805322174729e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.0696915445106504e-05 6.184559535738335e-05 5.870203846064511e-05 -1.112085789465658e-05 -4.7600144351359347e-07 -5.861397594145908e-08 1.4524208784805573e-08 2.300649782987421e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.2218614171918013e-06 5.325319655352672e-06 7.766746363269582e-06 9.361315506075464e-06 5.0417710282874456e-05 9.822946186678772e-05 0.00026400568406806884 0.00033610865151919737 0.00013239814531221768 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00013804169495254125 0.0012238504051117233 0.01461439973735456 0.010197731078827295 0.009003775355755566 0.030381456320656558 0.024785731678029766 0.004637019267552505 -0.005938106654005813 -0.002605150959220643 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 --2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 --7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.282737863089323e-05 6.328946161646202e-06 1.8329325276370316e-05 1.6423572667388823e-05 1.2653184610977003e-06 7.181714140248046e-06 3.491501462345434e-06 -7.285463619241614e-06 3.2609159022388403e-06 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.4850777249143735e-05 7.094600012126306e-05 0.00030581781354430576 0.00044661036994300023 0.00016699596636619577 1.5860625743775105e-05 9.74250537001798e-07 5.385650613476577e-06 8.091278451728344e-06 1.2460869401480828e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --0.0002216303488927365 0.0001541319391627563 4.83626397765333e-05 2.1041902272582753e-05 0.00026610797279588076 0.00045665788403242036 0.00017325291338578903 0.0035336618936866277 0.018540440861910777 0.003501320637152642 0.002219074201926699 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.003917873880791907 -0.0007874629498581528 -2.4595030318112164e-05 -2.8508297646329816e-06 1.8504666071760445e-07 0.0001190800388356091 0.0035373487148805376 0.00037674157183609377 0.0012087894330956167 0.0009651695201594091 4.769364472898923e-05 0.0004612591073953361 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 -5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 -4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 -0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -6.9413198850914024e-06 2.107626397843018e-05 1.8155172114721186e-05 2.0928626557075606e-06 1.5632037328512312e-06 -2.7335717313450097e-07 -7.2126792356200426e-09 9.213093725547886e-09 4.186629643010996e-08 8.198811769753182e-08 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0001028691918645833 0.0002737040057685444 0.0003861446001781946 0.0004042287651515365 0.0017229200225725174 0.003198296698131205 0.008774096120579751 0.011237818178923189 0.004334800036723805 0.0007344916552783145 -0.0001506915192259342 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.01652594711887213 0.011725805945708163 0.011173124362203699 0.0024178633067081135 -0.01796173780303683 -0.011618890946870497 -0.0008528234196397706 -9.706084806556783e-05 -2.754043401157181e-06 0.0001324948483342069 5.482811058752758e-05 0.0003886706609323921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.00022640297379380707 -0.0005111351623843819 0.0002024994190007784 0.00044921539785371963 0.001393999756415734 0.0011754659552919043 7.761533188706794e-05 5.8170561410888746e-05 -1.0918989217761552e-05 -2.9455190099531973e-07 2.0845708467284646e-07 1.0072947935068441e-06 2.449241542240889e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0016181071043329578 0.003179470547568356 0.008661622548635572 0.011071785334468471 0.004294892778359652 0.0017845979744737465 0.0034643761195723064 0.015112039067322293 0.022192108732694595 0.008134230944897397 0.0007595380961610584 1.6727218309602107e-05 0.00012823915020345735 0.0001971442066043176 0.0 0.0 0.0 0.0 0.0 -0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 -0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 -6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.4231393739579515e-06 3.630746449160232e-07 9.318604659023228e-07 4.92311430374376e-07 -3.701479331898353e-09 2.1280257031614452e-07 1.2240989510544568e-06 5.3432540178806065e-06 2.043230389835189e-06 3.2740024159475547e-07 6.717304982644579e-07 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --1.2482511756156149e-05 1.365124801275985e-05 1.3894049203809568e-05 2.3985465221727954e-05 3.3458449092465795e-05 0.00028172299406359233 0.00040056109827889085 0.0004621959325200118 0.0034637215474633033 0.009153352872912168 0.012804683731760212 0.010674833967812809 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.008855607599180339 0.015278371659152929 0.0023879884417463693 0.000935102721182137 0.0034651523786104546 0.005282714096158778 0.0012741283037854573 0.006268847413803995 0.004013755514818873 0.010363477891131097 0.007109323912817858 -0.0002600093944564617 -0.00034633976332068713 0.0 0.0 0.0 0.0 0.0 0.0 -5.3159155089314414e-05 1.2012438398909825e-05 3.274115317951001e-05 1.689353008824745e-05 -4.232110203859359e-07 7.656160171407207e-06 5.754938338062256e-05 0.0002687156220968384 9.768544317740195e-05 1.0129360414562531e-05 2.293272526112481e-05 1.8260890221186993e-05 1.7288534885724222e-06 1.8856324749638164e-06 0.0 0.0 0.0 0.0 0.0 -0.00033854327480422193 0.0032940012133255356 0.008932075729876752 0.012661798131960687 0.013919159699477152 0.08208818801401566 0.15644219608737447 0.4341503084393359 0.557964838826116 0.21173866865770563 0.03478604116524652 -0.007972916161324952 -0.0007132020154210059 0.0004420932693293155 0.0003860741867263207 0.0 0.0 0.0 0.0 -0.00018639122271027446 0.0034767153815636618 0.018231622622978436 0.0042988446466234575 0.05300133577632108 0.7250033316881788 0.4935009383219143 0.42606157195551264 1.5039118559972142 1.2303936880370434 0.22548363428435172 -0.30298333788301807 -0.13073656424500055 -0.010403074319359695 0.005059645288601829 0.0015181780063355998 0.0 0.0 0.0 -0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 --0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 5.196157077391817e-07 6.938124100654148e-08 7.597564197383545e-08 1.863740632660483e-07 4.437837629589167e-07 5.453941063185757e-07 1.5602917821833568e-06 3.404289212094662e-07 9.967447994956849e-07 5.8845599651090215e-06 1.5052240335012455e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.005346497059990333 -0.002010348201210142 -0.0010943235863089423 0.0001661513182702165 0.00012025969610516196 2.4949866002221845e-05 6.627236360802077e-06 3.003757825105864e-06 3.997348910159012e-05 0.000427961841918743 0.0007451357800599296 0.0011219432594133996 0.009685550613014016 0.0 0.0 0.0 0.0 0.0 0.0 --2.698386662730078e-05 2.754973422173369e-07 0.0001320534807487939 0.004372176148977807 0.0015642026255259442 0.004248632573013906 0.00040885420395593786 0.001088966135412402 0.004766232525411325 0.002205157762668968 0.007459939889093756 0.005587608653898612 -0.004720162133268877 -0.006593174803103767 0.0 0.0 0.0 0.0 0.0 -4.542360076931743e-06 1.2329326209575631e-05 1.7173803033436737e-05 5.0102066463061734e-05 1.09067765324765e-05 4.930240898900306e-05 0.00028721835291257015 0.0007503332386451459 0.00015238128535605624 -6.391111549761724e-05 -4.677072820313549e-06 -5.572104125200205e-06 2.707663268609677e-05 5.022846595129856e-05 0.00012970076559689836 0.0 0.0 0.0 0.0 -0.0005943091729493132 0.0009672866630600067 0.009096489467732383 0.01304005169719466 0.01734885651081947 0.1652472792755658 0.44880261475702005 0.6329167707872334 0.5244926606398645 0.26270394857828266 -0.10487776273847933 -0.05845317239353218 0.0032135333670803676 0.003777214235598332 0.0007681993725802362 0.00011959437074006901 0.0 0.0 0.0 -0.0005854549915295117 0.008715343377777027 0.015086646356161998 0.00551449475752511 0.16771008674532747 0.9262472909137329 0.16287454314633398 0.10026082406557575 0.8138824998965698 0.5734788502649438 0.5447903546528722 0.10618098607332271 -0.9103493511412221 -0.576660316279193 -0.03402023384277208 -0.0031478924709104684 0.0 0.0 0.0 --0.011510449622067839 -0.0007610595804959427 1.0172131902385016e-05 0.00448473230635448 0.2199020425072735 0.07466247888373397 0.21339517449435372 0.013531084627798973 0.04473458040783101 0.2378714243611067 0.10478901497777 0.37112701147924365 0.27817806337533985 -0.2385293501359752 -0.33578482057600856 -0.004009555340792723 0.0 0.0 0.0 -4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 3.196534127251379e-06 -1.1872677866681306e-06 -2.5678892066098854e-08 5.139117071436217e-09 1.1142431390092631e-06 2.0605776537608227e-06 5.297265009242829e-06 6.713907186544732e-06 2.7028644452395994e-06 1.149242737988068e-06 2.2449682976927855e-06 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.013431011504370738 0.007883426617122005 0.007935899204760883 0.005880150773602205 0.0009832099103910489 0.005414528729313218 0.0015950126575825377 0.00024127039666882992 -1.5674461809944553e-05 1.0711548076574028e-05 7.830483572860064e-06 0.00011012649333888752 0.0005497452692208139 0.0 0.0 0.0 0.0 0.0 --7.940872165606751e-05 2.276762148612182e-06 0.00010635762128769112 2.049233578255131e-05 0.00042145671490654473 0.01249692872936893 0.0020370917425772224 0.0017316344055948985 0.0006574004028558345 0.0012283310563930355 0.0014629455315045585 -4.492954039177435e-06 0.00029547002108771967 0.002683727758662211 0.004096710661285439 0.0 0.0 0.0 0.0 -0.0001650881267658455 6.548635015912796e-05 3.282822556024051e-05 7.205996516588195e-05 0.00030710620226134084 0.0007279352507540159 0.000909918529220897 0.0017257383928761386 0.00047543969768972346 -0.00030462814537952123 2.7321207199326783e-05 0.00010130812246147248 5.4817489360932934e-05 0.00012640103175376577 0.00018995742264027741 0.00023929212126678798 0.0 0.0 0.0 -6.489304732024981e-05 0.0011748014116558024 0.014162497237899634 0.024470256017495366 0.046651858009005745 0.46415330969555396 0.6536160620847673 0.38295932353650225 0.39318393240673155 0.2877811024545165 0.03747496490739291 0.2654106688863148 0.074634565935104 0.012330295300167044 -0.0004996457463809098 0.00023089219471653216 0.0 0.0 0.0 --0.00011090752856021898 0.0043805342288213535 0.0016927729283659975 0.012954305343473369 0.4368797400066579 0.7614408833500013 0.10944765261392181 0.0412051224385603 0.15805652281823218 0.2585893276179897 0.05949650977132904 0.30356693149425945 0.19493804255113664 0.5122323478146567 0.35279041052227494 -0.007488446744915854 0.0 0.0 0.0 -4.1934884152796484e-05 0.0035902058234846823 0.0005824017329515572 0.01441762880686721 0.6293209695433368 0.09572421881003676 0.08586090788885907 0.031601835145355577 0.06121858995657405 0.07315778164682188 -0.0013308261229131521 0.012882908917780034 0.13273058077548822 0.2035107778991338 0.1961396131043037 -0.04170252478795313 0.0 0.0 0.0 --0.0008465335016788498 -9.208409992139663e-05 -1.1210629044433908e-05 0.004300763141885697 0.1800503541691201 0.016819879476467067 0.060737350690215776 0.042330087306607714 0.0007006095666399378 0.02251352126872946 0.011185142175963118 -0.02716513333374441 0.00952941322650142 0.02210443704516212 0.07011148238258197 0.057840211345517194 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -# From 0809d8b72206819f4664acade72a00ca32ed3f6f Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:17:13 -0400 Subject: [PATCH 052/313] Updated documentation about METADATA in the uf3 lammps pot files --- doc/src/pair_uf3.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index 49ca018b85..4c8e25d05b 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -11,14 +11,13 @@ Syntax .. code-block:: LAMMPS - pair_style style BodyFlag NumAtomType + pair_style style BodyFlag * style = *uf3* or *uf3/kk* .. parsed-literal:: BodyFlag = Indicates whether to calculate only 2-body or 2 and 3-body interactions. Possible values: 2 or 3 - NumAtomType = Number of atoms types in the simulation Examples """""""" @@ -110,7 +109,7 @@ LAMMPS potential file for multiple interaction. For example- .. code-block:: LAMMPS - pair_style uf3 3 2 + pair_style uf3 3 pair_coeff * * A_A pair_coeff 3b 1 * * A_A_A pair_coeff 3b 2 * * B_B_B @@ -130,7 +129,7 @@ shows the format of a generic 2-body UF3 LAMMPS potential file- .. code-block:: LAMMPS - #UF3 POT + #UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE 2B LEADING_TRIM TRAILING_TRIM Rij_CUTOFF NUM_OF_KNOTS BSPLINE_KNOTS @@ -144,7 +143,7 @@ The format of a generic 3-body UF3 LAMMPS potential file is as follow- .. code-block:: LAMMPS - #UF3 POT + #UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE 3B LEADING_TRIM TRAILING_TRIM Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ BSPLINE_KNOTS_FOR_JK From c502dd4033409bb7cc781e98133f83ca3e3da68c Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Tue, 2 Apr 2024 13:20:29 -0400 Subject: [PATCH 053/313] Fixed trailing whitespace --- src/ML-UF3/pair_uf3.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index f4c77e7b4c..b6bdd7705b 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -245,7 +245,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" "files contain '#UF3 POT'. Found {} in the header", potf_name, temp_line); - + if (file_header.contains("UNITS:") == 0) error->all(FLERR, "UF3: {} file does not contain the 'UNITS:' metadata in \n" @@ -375,7 +375,7 @@ void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name "UF3: {} file does not contain the 'UNITS:' metadata in \n" "the header", potf_name); - + temp_line = txtfilereader.next_line(1); ValueTokenizer fp2nd_line(temp_line); @@ -598,7 +598,7 @@ void PairUF3::uf3_read_pot_file(char *potf_name) "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" "files contain '#UF3 POT'. Found {} in the header", potf_name, temp_line); - + if (fp1st_line.contains("UNITS:") == 0) error->all(FLERR, "UF3: {} file does not contain the 'UNITS:' metadata in \n" From 5b47038b14d768b12a791cbb0d3bbdb4ea311c62 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Fri, 5 Apr 2024 17:52:44 +0100 Subject: [PATCH 054/313] Set default trimflag to zero --- src/CG-DNA/pair_oxdna2_coaxstk.cpp | 1 + src/CG-DNA/pair_oxdna2_dh.cpp | 1 + src/CG-DNA/pair_oxdna_coaxstk.cpp | 1 + src/CG-DNA/pair_oxdna_excv.cpp | 1 + src/CG-DNA/pair_oxdna_hbond.cpp | 1 + src/CG-DNA/pair_oxdna_stk.cpp | 1 + src/CG-DNA/pair_oxdna_xstk.cpp | 1 + src/CG-DNA/pair_oxrna2_hbond.cpp | 1 + src/CG-DNA/pair_oxrna2_stk.cpp | 1 + src/CG-DNA/pair_oxrna2_xstk.cpp | 1 + 10 files changed, 10 insertions(+) diff --git a/src/CG-DNA/pair_oxdna2_coaxstk.cpp b/src/CG-DNA/pair_oxdna2_coaxstk.cpp index 527020076c..b2666c2f0f 100644 --- a/src/CG-DNA/pair_oxdna2_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna2_coaxstk.cpp @@ -40,6 +40,7 @@ PairOxdna2Coaxstk::PairOxdna2Coaxstk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index a8114c84d7..d60342e5e2 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -36,6 +36,7 @@ PairOxdna2Dh::PairOxdna2Dh(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/CG-DNA/pair_oxdna_coaxstk.cpp b/src/CG-DNA/pair_oxdna_coaxstk.cpp index 679bfbf18d..1fb0ad9b00 100644 --- a/src/CG-DNA/pair_oxdna_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna_coaxstk.cpp @@ -40,6 +40,7 @@ PairOxdnaCoaxstk::PairOxdnaCoaxstk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/CG-DNA/pair_oxdna_excv.cpp b/src/CG-DNA/pair_oxdna_excv.cpp index 254b8e18d8..60df42404d 100644 --- a/src/CG-DNA/pair_oxdna_excv.cpp +++ b/src/CG-DNA/pair_oxdna_excv.cpp @@ -42,6 +42,7 @@ PairOxdnaExcv::PairOxdnaExcv(LAMMPS *lmp) : Pair(lmp) // set comm size needed by this Pair comm_forward = 9; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/CG-DNA/pair_oxdna_hbond.cpp b/src/CG-DNA/pair_oxdna_hbond.cpp index 5b121a9113..2beadc2503 100644 --- a/src/CG-DNA/pair_oxdna_hbond.cpp +++ b/src/CG-DNA/pair_oxdna_hbond.cpp @@ -38,6 +38,7 @@ PairOxdnaHbond::PairOxdnaHbond(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; // sequence-specific base-pairing strength // A:0 C:1 G:2 T:3, 5'- [i][j] -3' diff --git a/src/CG-DNA/pair_oxdna_stk.cpp b/src/CG-DNA/pair_oxdna_stk.cpp index 1ef779dbd9..cf20d527fe 100644 --- a/src/CG-DNA/pair_oxdna_stk.cpp +++ b/src/CG-DNA/pair_oxdna_stk.cpp @@ -39,6 +39,7 @@ PairOxdnaStk::PairOxdnaStk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; // sequence-specific stacking strength // A:0 C:1 G:2 T:3, 3'- [i][j] -5' diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index 6ef6091889..1eb7caf23a 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -40,6 +40,7 @@ PairOxdnaXstk::PairOxdnaXstk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/CG-DNA/pair_oxrna2_hbond.cpp b/src/CG-DNA/pair_oxrna2_hbond.cpp index 14ecc6c659..0c4ffcb4f7 100644 --- a/src/CG-DNA/pair_oxrna2_hbond.cpp +++ b/src/CG-DNA/pair_oxrna2_hbond.cpp @@ -24,6 +24,7 @@ PairOxrna2Hbond::PairOxrna2Hbond(LAMMPS *lmp) : PairOxdnaHbond(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; // sequence-specific base-pairing strength // A:0 C:1 G:2 U:3, 5'- [i][j] -3' diff --git a/src/CG-DNA/pair_oxrna2_stk.cpp b/src/CG-DNA/pair_oxrna2_stk.cpp index f56aa572e8..8c5c9c22f5 100644 --- a/src/CG-DNA/pair_oxrna2_stk.cpp +++ b/src/CG-DNA/pair_oxrna2_stk.cpp @@ -41,6 +41,7 @@ PairOxrna2Stk::PairOxrna2Stk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; // sequence-specific stacking strength // A:0 C:1 G:2 U:3, 3'- [i][j] -5' diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index e28b6573bf..8a5fa1b1c9 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -40,6 +40,7 @@ PairOxrna2Xstk::PairOxrna2Xstk(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; writedata = 1; + trim_flag = 0; } /* ---------------------------------------------------------------------- */ From fcf8500887110c270141766850c902fba76d0e9d Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 15 Apr 2024 10:37:21 -0400 Subject: [PATCH 055/313] Added uf3_read_unified_pot_file() to read single potential file on rank 0 and communicate() to broadcast the data to other ranks Added one_ceoff --- src/ML-UF3/pair_uf3.cpp | 926 +++++++++++++++++++++++++++++++++++++++- src/ML-UF3/pair_uf3.h | 22 + 2 files changed, 935 insertions(+), 13 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index b6bdd7705b..b6986d422f 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -44,6 +44,7 @@ namespace LAMMPS_NS{ std::unordered_map>>> n3b_coeff_matrix; std::vector> UFBS2b; std::vector>> UFBS3b; + }; } @@ -58,12 +59,24 @@ PairUF3::PairUF3(LAMMPS *lmp) : { uf3_impl = new UF3Impl; single_enable = 1; // 1 if single() routine exists + one_coeff = 1; // 1 if allows only one coeff * * call restartinfo = 0; // 1 if pair style writes restart info maxshort = 10; neighshort = nullptr; centroidstressflag = CENTROID_AVAIL; manybody_flag = 1; bsplines_created = 0; + + n2b_knots_array = nullptr; + n2b_coeff_array = nullptr; + n2b_knots_array_size = nullptr; + n2b_coeff_array_size = nullptr; + + map_3b = nullptr; + n3b_knots_array = nullptr; + n3b_coeff_array = nullptr; + n3b_knots_array_size = nullptr; + n3b_coeff_array_size = nullptr; } /* ---------------------------------------------------------------------- */ @@ -76,6 +89,10 @@ PairUF3::~PairUF3() memory->destroy(cutsq); memory->destroy(cut); memory->destroy(knot_spacing_type_2b); + memory->destroy(n2b_knots_array_size); + memory->destroy(n2b_coeff_array_size); + memory->destroy(n2b_knots_array); + memory->destroy(n2b_coeff_array); if (pot_3b) { memory->destroy(setflag_3b); @@ -84,6 +101,11 @@ PairUF3::~PairUF3() memory->destroy(min_cut_3b); memory->destroy(neighshort); memory->destroy(knot_spacing_type_3b); + memory->destroy(map_3b); + memory->destroy(n3b_knots_array_size); + memory->destroy(n3b_coeff_array_size); + memory->destroy(n3b_knots_array); + memory->destroy(n3b_coeff_array); } } delete uf3_impl; @@ -115,6 +137,7 @@ void PairUF3::settings(int narg, char **arg) tot_pot_files = n2body_pot_files + n3body_pot_files; } else error->all(FLERR, "Pair style uf3 not (yet) implemented for {}-body terms", nbody_flag); + } /* ---------------------------------------------------------------------- @@ -122,11 +145,19 @@ void PairUF3::settings(int narg, char **arg) * ---------------------------------------------------------------------- */ void PairUF3::coeff(int narg, char **arg) { + if (narg != 3+atom->ntypes) + error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); + if (!allocated) allocate(); - if (narg != 3 && narg != 5) error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); + map_element2type(narg-3, arg+3, false); - int ilo, ihi, jlo, jhi, klo, khi; + if (comm->me == 0) + uf3_read_unified_pot_file(arg[2]); + communicate(); + //if (narg != 3 && narg != 5) error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); + + /*int ilo, ihi, jlo, jhi, klo, khi; if (narg == 3) { utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); @@ -145,6 +176,87 @@ void PairUF3::coeff(int narg, char **arg) for (int k = MAX(klo, jlo); k <= khi; k++) uf3_read_pot_file(i, j, k, arg[4]); } } + }*/ +} + +//Broadcast data read from potential file to all processors +void PairUF3::communicate() +{ + const int num_of_elements = atom->ntypes; + MPI_Bcast(&cut[0][0], (num_of_elements + 1)*(num_of_elements + 1), + MPI_DOUBLE, 0, world); + + MPI_Bcast(&n2b_knots_array_size[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + MPI_Bcast(&n2b_coeff_array_size[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&max_num_knots_2b, 1, MPI_INT, 0, world); + MPI_Bcast(&max_num_coeff_2b, 1, MPI_INT, 0, world); + + if (pot_3b){ + MPI_Bcast(&cut_3b_list[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); + + MPI_Bcast(&cut_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_DOUBLE, 0, world); + + MPI_Bcast(&n3b_knots_array_size[0][0], tot_interaction_count_3b*3, + MPI_INT, 0, world); + MPI_Bcast(&n3b_coeff_array_size[0][0], tot_interaction_count_3b*3, + MPI_INT, 0, world); + + MPI_Bcast(&max_num_knots_3b, 1, MPI_INT, 0, world); + MPI_Bcast(&max_num_coeff_3b, 1, MPI_INT, 0, world); + } + + if (comm->me != 0) { + memory->destroy(n2b_knots_array); + memory->destroy(n2b_coeff_array); + + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, + max_num_knots_2b, "pair:n2b_knots_array"); + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b, "pair:n2b_coeff_array"); + if (pot_3b) { + memory->destroy(n3b_knots_array); + memory->destroy(n3b_coeff_array); + + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, + max_num_knots_3b, "pair:n3b_knots_array"); + + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); + } + } + + MPI_Bcast(&knot_spacing_type_2b[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&n2b_knots_array[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); + MPI_Bcast(&n2b_coeff_array[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*max_num_coeff_2b, MPI_DOUBLE, 0, world); + + MPI_Bcast(&setflag[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + if (pot_3b) { + MPI_Bcast(&knot_spacing_type_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_INT, 0, world); + MPI_Bcast(&n3b_knots_array[0][0][0], + tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); + MPI_Bcast(&n3b_coeff_array[0][0][0][0], + tot_interaction_count_3b*max_num_coeff_3b*max_num_coeff_3b*max_num_coeff_3b, + MPI_DOUBLE, 0, world); + MPI_Bcast(&setflag_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_INT, 0, world); + MPI_Bcast(&min_cut_3b[0][0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, + MPI_DOUBLE, 0, world); } } @@ -153,6 +265,8 @@ void PairUF3::allocate() allocated = 1; const int num_of_elements = atom->ntypes; + map = new int[num_of_elements+1]; //No need to delete map as ~Pair deletes map + // Contains info about wether UF potential were found for type i and j memory->create(setflag, num_of_elements + 1, num_of_elements + 1, "pair:setflag"); @@ -168,6 +282,12 @@ void PairUF3::allocate() memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_2b"); + //Contains size of 2b knots vectors and 2b coeff matrices + memory->create(n2b_knots_array_size, num_of_elements + 1, num_of_elements + 1, + "pair:n2b_knots_array_size"); + memory->create(n2b_coeff_array_size, num_of_elements + 1, num_of_elements + 1, + "pair:n2b_coeff_array_size"); + // Contains knot_vect of 2-body potential for type i and j uf3_impl->n2b_knot.resize(num_of_elements + 1); uf3_impl->n2b_coeff.resize(num_of_elements + 1); @@ -196,7 +316,12 @@ void PairUF3::allocate() memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_3b"); - // setting cut_3b and setflag = 0 + tot_interaction_count_3b = 0; + //conatins map of I-J-K interaction + memory->create(map_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, "pair:map_3b"); + + // setting cut_3b, setflag = 0 and map_3b for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { cut_3b_list[i][j] = 0; @@ -205,9 +330,21 @@ void PairUF3::allocate() min_cut_3b[i][j][k][0] = 0; min_cut_3b[i][j][k][1] = 0; min_cut_3b[i][j][k][2] = 0; + + setflag_3b[i][j][k] = 0; + + map_3b[i][j][k] = tot_interaction_count_3b; + tot_interaction_count_3b++; } } } + + //contains sizes of 3b knots vectors and 3b coeff matrices + memory->create(n3b_knots_array_size, tot_interaction_count_3b, 3, + "pair:n3b_knots_array_size"); + memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, + "pair:n3b_coeff_array_size"); + uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); uf3_impl->UFBS3b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { @@ -219,6 +356,732 @@ void PairUF3::allocate() } } memory->create(neighshort, maxshort, "pair:neighshort"); + + } +} + +void PairUF3::uf3_read_unified_pot_file(char *potf_name) +{ + //Go through the entire file and get the sizes of knot vectors and + //coeff vectors/matrices + // + //Create arrays + // + //Go through the file again and read the knots and coefficients + // + + const int num_of_elements = atom->ntypes; + + //if (true) { + FILE *fp = utils::open_potential(potf_name, lmp, nullptr); + if (!fp) + error->all(FLERR, + "Cannot open UF3 potential file {}: {}", + potf_name, utils::getsyserror()); + + TextFileReader txtfilereader(fp, "UF3:POTFP"); + txtfilereader.ignore_comments = false; + + //while loop over the entire file, find blocks starting with #UF3 POT + //if block found read the very next line to determine 2B or 3B block + //if 2B read the knot vector and coeff vector size + //if 3B read the knot vectors and coeff matrix size + int line_counter = 1; + char *line; + while((line = txtfilereader.next_line(1))){ + Tokenizer line_token(line); + + //Detect start of a block + if (line_token.contains("#UF3 POT")) { + //Block start detected + if (line_token.contains("UNITS:") == 0) + error->all(FLERR, + "UF3: {} file does not contain the 'UNITS:' metadata in " + "the header", + potf_name); + + //Read the 2nd line of the block + std::string temp_line = txtfilereader.next_line(1); + line_counter++; + ValueTokenizer fp2nd_line(temp_line); + + std::string nbody_on_file = fp2nd_line.next_string(); + if (nbody_on_file == "2B") { + //2B block + if (fp2nd_line.count() != 6) + error->all(FLERR, "UF3: Expected 6 words on line {} of {} file " + "but found {} word/s", + line_counter, potf_name, fp2nd_line.count()); + + //get the elements + std::string element1 = fp2nd_line.next_string(); + std::string element2 = fp2nd_line.next_string(); + int itype = 0; + int jtype = 0; + for (int i=1; iall(FLERR, + "UF3: Current implementation is throughly tested only " + "for leading_trim=0"); + if (trailing_trim != 3) + error->all(FLERR, + "UF3: Current implementation is throughly tested only " + "for trailing_trim=3"); + + //read next line, should contain cutoff and size of knot vector + temp_line = txtfilereader.next_line(1); + line_counter++; + ValueTokenizer fp3rd_line(temp_line); + if (fp3rd_line.count() != 2) + error->all(FLERR, + "UF3: Expected only 2 words on 3rd line => " + "Rij_CUTOFF NUM_OF_KNOTS. Found {} word/s", + fp3rd_line.count()); + + //cut is used in init_one which is called by pair.cpp at line 267 + //where the return of init_one is squared + cut[itype][jtype] = fp3rd_line.next_double(); //MPI_Bcast + cut[jtype][itype] = cut[itype][jtype]; + + int num_knots_2b = fp3rd_line.next_int(); + n2b_knots_array_size[itype][jtype] = num_knots_2b; //MPI_Bcast + n2b_knots_array_size[jtype][itype] = num_knots_2b; //MPI_Bcast + max_num_knots_2b = std::max(max_num_knots_2b, num_knots_2b); //MPI_Bcast + + //skip next line + txtfilereader.skip_line(); + line_counter++; + + //read number of coeff + temp_line = txtfilereader.next_line(1); + line_counter++; + ValueTokenizer fp5th_line(temp_line); + + int num_coeff_2b = fp5th_line.next_int(); + n2b_coeff_array_size[itype][jtype] = num_coeff_2b; //MPI_Bcast + n2b_coeff_array_size[jtype][itype] = num_coeff_2b; //MPI_Bcast + max_num_coeff_2b = std::max(max_num_coeff_2b, num_coeff_2b); //MPI_Bcast + } + } + else if ((nbody_on_file == "3B") && (pot_3b)) { + //3B block + if (fp2nd_line.count() != 7) + error->all(FLERR, "UF3: Expected 7 words on line {} of {} file" + "but found {} word/s", + line_counter, potf_name, fp2nd_line.count()); + + if (nbody_on_file == "3B") { + //get the elements + std::string element1 = fp2nd_line.next_string(); + std::string element2 = fp2nd_line.next_string(); + std::string element3 = fp2nd_line.next_string(); + int itype = 0; + int jtype = 0; + int ktype = 0; + for (int i=1; iall(FLERR, + "UF3: Current implementation is throughly tested " + "only for leading_trim=0"); + if (trailing_trim != 3) + error->all(FLERR, + "UF3: Current implementation is throughly tested " + "only for trailing_trim=3"); + + //read next line, should contain cutoffs and size of knot vectors + temp_line = txtfilereader.next_line(6); + line_counter++; + ValueTokenizer fp3rd_line(temp_line); + + if (fp3rd_line.count() != 6) + error->all(FLERR, + "UF3: Expected only 6 numbers on 3rd line => " + "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK " + "NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ Found {} number/s", + fp3rd_line.count()); + + double cut3b_rjk = fp3rd_line.next_double(); + double cut3b_rij = fp3rd_line.next_double(); + double cut3b_rik = fp3rd_line.next_double(); + + if (cut3b_rij != cut3b_rik) + error->all(FLERR, + "UF3: rij!=rik for {}-{}-{}. " + "Current implementation only works for rij=rik", + element1, element2, element3); + + if (2 * cut3b_rik != cut3b_rjk) + error->all(FLERR, + "UF3: 2rij=2rik!=rik for {}-{}-{}. " + "Current implementation only works for 2rij=2rik!=rik", + element1, element2, element3); + + cut_3b_list[itype][jtype] = + std::max(cut3b_rij, cut_3b_list[itype][jtype]); //MPI_Bcast + cut_3b_list[itype][ktype] = + std::max(cut_3b_list[itype][ktype], cut3b_rik); //MPI_Bcast + + cut_3b[itype][jtype][ktype] = cut3b_rij; //MPI_Bcast + cut_3b[itype][ktype][jtype] = cut3b_rik; //MPI_Bcast + + int num_knots_3b_jk = fp3rd_line.next_int(); + int num_knots_3b_ik = fp3rd_line.next_int(); + int num_knots_3b_ij = fp3rd_line.next_int(); + + n3b_knots_array_size[map_3b[itype][jtype][ktype]][0] = num_knots_3b_jk; //MPI_Bcast + n3b_knots_array_size[map_3b[itype][jtype][ktype]][1] = num_knots_3b_ik; + n3b_knots_array_size[map_3b[itype][jtype][ktype]][2] = num_knots_3b_ij; + + n3b_knots_array_size[map_3b[itype][ktype][jtype]][0] = num_knots_3b_jk; //MPI_Bcast + n3b_knots_array_size[map_3b[itype][ktype][jtype]][1] = num_knots_3b_ij; + n3b_knots_array_size[map_3b[itype][ktype][jtype]][2] = num_knots_3b_ik; + + max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_jk); + max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ik); + max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ij); //MPI_Bcast + + //skip next 3 line + txtfilereader.skip_line(); + line_counter++; + txtfilereader.skip_line(); + line_counter++; + txtfilereader.skip_line(); + line_counter++; + + //read number of coeff + temp_line = txtfilereader.next_line(3); + line_counter++; + ValueTokenizer fp7th_line(temp_line); + + if (fp7th_line.count() != 3) + error->all(FLERR, + "UF3: Expected 3 numbers on 7th line => " + "SHAPE_OF_COEFF_MATRIX[I][J][K] " + "found {} numbers", + fp7th_line.count()); + + int coeff_matrix_dim1 = fp7th_line.next_int(); + int coeff_matrix_dim2 = fp7th_line.next_int(); + int coeff_matrix_dim3 = fp7th_line.next_int(); + + n3b_coeff_array_size[map_3b[itype][jtype][ktype]][0] = coeff_matrix_dim1; //MPI_Bcast + n3b_coeff_array_size[map_3b[itype][jtype][ktype]][1] = coeff_matrix_dim2; + n3b_coeff_array_size[map_3b[itype][jtype][ktype]][2] = coeff_matrix_dim3; + + n3b_coeff_array_size[map_3b[itype][ktype][jtype]][0] = coeff_matrix_dim2; + n3b_coeff_array_size[map_3b[itype][ktype][jtype]][1] = coeff_matrix_dim1; + n3b_coeff_array_size[map_3b[itype][ktype][jtype]][2] = coeff_matrix_dim3; + + max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim1); + max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim2); + max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim3); + } + } + } + else { + if (!((nbody_on_file == "3B") && (!pot_3b))) + error->all(FLERR, + "UF3: Expected either '2B' or '3B' word on line {} of {} file", + line_counter, potf_name); + } + } //if of #UF3 POT + line_counter++; + } // while + //fclose(fp); + + //Create knot and coeff arrays + if (max_num_knots_2b > 0) { + //if (comm->me == 0) + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, + max_num_knots_2b, "pair:n2b_knots_array"); + } + else + error->all(FLERR, + "UF3: Error reading the size of 2B knot vector\n" + "Possibly no 2B UF3 potential block detected in {} file", + potf_name); + + if (max_num_coeff_2b > 0) { + //if (comm->me == 0) + /*utils::logmesg(lmp, + "max_num_coeff_2b = {}\n", max_num_coeff_2b);*/ + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b, "pair:n2b_coeff_array"); + } + else + error->all(FLERR, + "UF3: Error reading the size of 2B coeff vector\n" + "Possibly no 2B UF3 potential block detected in {} file", + potf_name); + + if (pot_3b) { + if (max_num_knots_3b > 0) + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, + max_num_knots_3b, "pair:n3b_knots_array"); + + else + error->all(FLERR, + "UF3: Error reading the size of 3B knot vector\n" + "Possibly no 3B UF3 potential block detected in {} file", + potf_name); + + if (max_num_coeff_3b > 0) + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); + else + error->all(FLERR, + "UF3: Error reading the size of 3B coeff matrices\n" + "Possibly no 3B UF3 potential block detected in {} file", + potf_name); + } + + //Go back to the begning of the file + txtfilereader.rewind(); + + //Go through the file again and fill knot and coeff arrays + //while loop to read the data + //if (true) { + /*FILE *fp = utils::open_potential(potf_name, lmp, nullptr); + if (!fp) + error->all(FLERR, + "Cannot open UF3 potential file {}: {}", + potf_name, utils::getsyserror()); + + TextFileReader txtfilereader(fp, "UF3:POTFP"); + txtfilereader.ignore_comments = false; + char *line;*/ + while((line = txtfilereader.next_line(1))){ + Tokenizer line_token(line); + + //Detect start of a block + if (line_token.contains("#UF3 POT")) { + //Block start detected + //Read the 2nd line of the block + std::string temp_line = txtfilereader.next_line(1); + ValueTokenizer fp2nd_line(temp_line); + std::string nbody_on_file = fp2nd_line.next_string(); + + if (nbody_on_file == "2B") { + //get the elements + std::string element1 = fp2nd_line.next_string(); + std::string element2 = fp2nd_line.next_string(); + int itype = 0; + int jtype = 0; + for (int i=1; iall(FLERR, + "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots). " + "Found {} on the 2nd line of {}-{} interaction block", + knot_type, element1, element2); + + if ((itype != 0) && (jtype != 0)) { + //skip line containing info of cutoff and knot vect size + txtfilereader.skip_line(); + + int num_knots_2b = n2b_knots_array_size[itype][jtype]; + + temp_line = txtfilereader.next_line(num_knots_2b); + ValueTokenizer fp4th_line(temp_line); + + if (fp4th_line.count() != num_knots_2b) + error->all(FLERR, "UF3: Error readig the 2B potential block for {}-{}\n" + "Expecter {} numbers on 4th line of the block but found {} " + "numbers", num_knots_2b,fp4th_line.count()); + + for (int k = 0; k < num_knots_2b; k++) { + n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); //MPI_Bcast + n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; + } + + //skip next line + txtfilereader.skip_line(); + + int num_of_coeff_2b = n2b_coeff_array_size[itype][jtype]; + + temp_line = txtfilereader.next_line(num_of_coeff_2b); + ValueTokenizer fp6th_line(temp_line); + + if (fp6th_line.count() != num_of_coeff_2b) + error->all(FLERR, + "UF3: Error readig the 2B potential block for {}-{}\n" + "Expecter {} numbers on 6th line of the block but found {} " + "numbers", num_knots_2b,fp4th_line.count()); + + for (int k = 0; k < num_of_coeff_2b; k++) { + n2b_coeff_array[itype][jtype][k] = fp6th_line.next_double(); //MPI_Bcast + n2b_coeff_array[jtype][itype][k] = n2b_coeff_array[itype][jtype][k]; + } + + if (num_knots_2b != num_of_coeff_2b + 4) + error->all(FLERR, + "UF3: {}-{} interaction block has incorrect knot and " + "coeff data nknots!=ncoeffs + 3 + 1", + element1, element2); + + setflag[itype][jtype] = 1; //MPI_Bcast + setflag[jtype][itype] = 1; + } + } + + if ((nbody_on_file == "3B") && (pot_3b)) { + //get the elements + std::string element1 = fp2nd_line.next_string(); + std::string element2 = fp2nd_line.next_string(); + std::string element3 = fp2nd_line.next_string(); + int itype = 0; + int jtype = 0; + int ktype = 0; + for (int i=1; iall(FLERR, + "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " + "Found {} on the 2nd line of {}-{}-{} interaction block", + knot_type, element1, element2, element3); + + if ((itype != 0) && (jtype != 0) && (ktype!=0)) { + //skip line containing info of cutoffs and knot vector sizes + txtfilereader.skip_line(); + + int num_knots_3b_jk = n3b_knots_array_size[map_3b[itype][jtype][ktype]][0]; + int num_knots_3b_ik = n3b_knots_array_size[map_3b[itype][jtype][ktype]][1]; + int num_knots_3b_ij = n3b_knots_array_size[map_3b[itype][jtype][ktype]][2]; + + temp_line = txtfilereader.next_line(num_knots_3b_jk); + ValueTokenizer fp4th_line(temp_line); + if (fp4th_line.count() != num_knots_3b_jk) + error->all(FLERR, + "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "Expected {} numbers on 4th line of the block but found {} " + "numbers", element1, element2, element3, + num_knots_3b_jk, fp4th_line.count()); + + for (int i = 0; i < num_knots_3b_jk; i++) { + n3b_knots_array[map_3b[itype][jtype][ktype]][0][i] = + fp4th_line.next_double(); //MPI_Bcast + n3b_knots_array[map_3b[itype][ktype][jtype]][0][i] = + n3b_knots_array[map_3b[itype][jtype][ktype]][0][i]; + } + + min_cut_3b[itype][jtype][ktype][0] = + n3b_knots_array[map_3b[itype][jtype][ktype]][0][0]; //MPI_Bcast + min_cut_3b[itype][ktype][jtype][0] = + n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; + + temp_line = txtfilereader.next_line(num_knots_3b_ik); + ValueTokenizer fp5th_line(temp_line); + if (fp5th_line.count() != num_knots_3b_ik) + error->all(FLERR, + "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "Expected {} numbers on 5th line of the block but found {} " + "numbers", element1, element2, element3, + num_knots_3b_ik, fp5th_line.count()); + + for (int i = 0; i < num_knots_3b_ik; i++) { + n3b_knots_array[map_3b[itype][jtype][ktype]][1][i] = + fp5th_line.next_double(); //MPI_Bcast + n3b_knots_array[map_3b[itype][ktype][jtype]][2][i] = + n3b_knots_array[map_3b[itype][jtype][ktype]][1][i]; + } + + min_cut_3b[itype][jtype][ktype][1] = + n3b_knots_array[map_3b[itype][jtype][ktype]][1][0]; + min_cut_3b[itype][ktype][jtype][2] = + n3b_knots_array[map_3b[itype][ktype][jtype]][2][0]; + + temp_line = txtfilereader.next_line(num_knots_3b_ij); + ValueTokenizer fp6th_line(temp_line); + if (fp6th_line.count() != num_knots_3b_ij) + error->all(FLERR, + "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "Expected {} numbers on 6th line of the block but found {} " + "numbers", element1, element2, element3, + num_knots_3b_ij, fp6th_line.count()); + + for (int i = 0; i < num_knots_3b_ij; i++) { + n3b_knots_array[map_3b[itype][jtype][ktype]][2][i] = + fp6th_line.next_double(); + n3b_knots_array[map_3b[itype][ktype][jtype]][1][i] = + n3b_knots_array[map_3b[itype][jtype][ktype]][2][i]; + } + + min_cut_3b[itype][jtype][ktype][2] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][0]; + min_cut_3b[itype][ktype][jtype][1] = n3b_knots_array[map_3b[itype][ktype][jtype]][1][0]; + + //skip next line + txtfilereader.skip_line(); + + int coeff_matrix_dim1 = n3b_coeff_array_size[map_3b[itype][jtype][ktype]][0]; + int coeff_matrix_dim2 = n3b_coeff_array_size[map_3b[itype][jtype][ktype]][1]; + int coeff_matrix_dim3 = n3b_coeff_array_size[map_3b[itype][jtype][ktype]][2]; + + if (num_knots_3b_jk != coeff_matrix_dim3 + 3 + 1) + error->all(FLERR, + "UF3: {}-{}-{} interaction block has incorrect knot " + "(NUM_OF_KNOTS_JK) and coeff (coeff_matrix_dim3) data " + "nknots!=ncoeffs + 3 + 1", + element1, element2, element3); + + if (num_knots_3b_ik != coeff_matrix_dim2 + 3 + 1) + error->all(FLERR, + "UF3: {}-{}-{} interaction block has incorrect knot " + "(NUM_OF_KNOTS_IK) and coeff (coeff_matrix_dim2) data " + "nknots!=ncoeffs + 3 + 1", + element1, element2, element3); + + if (num_knots_3b_ij != coeff_matrix_dim1 + 3 + 1) + error->all(FLERR, + "UF3: {}-{}-{} interaction block has incorrect knot " + "(NUM_OF_KNOTS_IJ) and coeff (coeff_matrix_dim1) data " + "nknots!=ncoeffs + 3 + 1", + element1, element2, element3); + + int coeff_matrix_elements_len = coeff_matrix_dim3; + int key1 = map_3b[itype][jtype][ktype]; + int key2 = map_3b[itype][ktype][jtype]; + + int line_count = 0; + for (int i = 0; i < coeff_matrix_dim1; i++) { + for (int j = 0; j < coeff_matrix_dim2; j++) { + temp_line = txtfilereader.next_line(coeff_matrix_elements_len); + ValueTokenizer coeff_line(temp_line); + if (coeff_line.count() != coeff_matrix_elements_len) + error->all(FLERR, + "UF3: Error reading 3B potential block for {}-{}-{}\n" + "Expected {} numbers on {}th line of the block but found {} " + "numbers", element1, element2, element3, + coeff_matrix_elements_len, line_count + 8, + coeff_line.count()); + + for (int k = 0; k < coeff_matrix_dim3; k++) { + n3b_coeff_array[key1][i][j][k] = coeff_line.next_double(); + } + line_count += 1; + } + } + + for (int i = 0; i < coeff_matrix_dim1; i++) { + for (int j = 0; j < coeff_matrix_dim2; j++) { + for (int k = 0; k < coeff_matrix_dim3; k++) { + n3b_coeff_array[key2][j][i][k] = n3b_coeff_array[key1][i][j][k]; //MPI_Bcast + } + } + } + + setflag_3b[itype][jtype][ktype] = 1; //MPI_Bcast + setflag_3b[itype][ktype][jtype] = 1; + } + } + } // if #UF3 POT + } //while + fclose(fp); + + //Set interaction of atom types of the same elements + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + if (setflag[i][j] != 1){ + //i-j interaction not set + + //maybe i-j is mapped to some other atom type interaction? + int i_mapped_to = map[i]+1; //+1 as map starts from 0 + int j_mapped_to = map[j]+1; //+1 as map starts from 0 + + if ((i_mapped_to == i) && (j_mapped_to == j)) + //i-j is not mapped to some other atom type ie interaction is missing on file + error->all(FLERR, + "UF3: Potential for interaction {}-{} ie {}-{} not found " + "in {} file", + i, j, elements[i_mapped_to-1], elements[j_mapped_to-1], + potf_name); + + //utils::logmesg(lmp,"Setting stuff for {}-{} mapped to {}-{}\n",i,j, + // i_mapped_to, j_mapped_to); + + cut[i][j] = cut[i_mapped_to][j_mapped_to]; + + n2b_knots_array_size[i][j] = n2b_knots_array_size[i_mapped_to][j_mapped_to]; + n2b_coeff_array_size[i][j] = n2b_coeff_array_size[i_mapped_to][j_mapped_to]; + + knot_spacing_type_2b[i][j] = knot_spacing_type_2b[i_mapped_to][j_mapped_to]; + + for (int knot_no = 0; knot_no < max_num_knots_2b; knot_no++) + n2b_knots_array[i][j][knot_no] = + n2b_knots_array[i_mapped_to][j_mapped_to][knot_no]; + + for (int coeff_no = 0; coeff_no < max_num_coeff_2b; coeff_no++) + n2b_coeff_array[i][j][coeff_no] = + n2b_coeff_array[i_mapped_to][j_mapped_to][coeff_no]; + + setflag[i][j] = 1; + } + } + } + + if (pot_3b) { + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + //for (int k = j; k < num_of_elements + 1; k++) { + for (int k = 1; k < num_of_elements + 1; k++) { + if (setflag_3b[i][j][k] != 1) { + //i-j-k interaction not set + + //maybe i-j-k is mapped to some other atom type interaction? + int i_mapped_to = map[i]+1; //+1 as map starts from 0 + int j_mapped_to = map[j]+1; //+1 as map starts from 0 + int k_mapped_to = map[k]+1; //+1 as map starts from 0 + + if ((i_mapped_to == i) && (j_mapped_to == j) && (k_mapped_to == k)) + error->all(FLERR, + "UF3: Potential for interaction {}-{}-{} ie {}-{}-{} " + " not found in {} file", + i, j, k, elements[i_mapped_to-1], elements[j_mapped_to-1], + elements[k_mapped_to-1], potf_name); + if (setflag_3b[i_mapped_to][j_mapped_to][k_mapped_to] != 1) + error->all(FLERR, + "UF3: Interaction {}-{}-{} was mapped to {}-{}-{}, but " + "potential interaction for {}-{}-{} was not found in " + "{} file", + i, j, k, i_mapped_to, j_mapped_to, k_mapped_to, + i_mapped_to, j_mapped_to, k_mapped_to, potf_name); + + + cut_3b_list[i][j] = std::max(cut_3b_list[i_mapped_to][j_mapped_to], + cut_3b_list[i][j]); + + + cut_3b[i][j][k] = cut_3b[i_mapped_to][j_mapped_to][k_mapped_to]; + + knot_spacing_type_3b[i][j][k] = + knot_spacing_type_3b[i_mapped_to][j_mapped_to][k_mapped_to]; + + int key = map_3b[i][j][k]; + int mapped_to_key = map_3b[i_mapped_to][j_mapped_to][k_mapped_to]; + + n3b_knots_array_size[key][0] = n3b_knots_array_size[mapped_to_key][0]; + n3b_knots_array_size[key][1] = n3b_knots_array_size[mapped_to_key][1]; + n3b_knots_array_size[key][2] = n3b_knots_array_size[mapped_to_key][2]; + + n3b_coeff_array_size[key][0] = n3b_coeff_array_size[mapped_to_key][0]; + n3b_coeff_array_size[key][1] = n3b_coeff_array_size[mapped_to_key][1]; + n3b_coeff_array_size[key][2] = n3b_coeff_array_size[mapped_to_key][2]; + + min_cut_3b[i][j][k][0] = + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0];//n3b_knots_array[key][0][0]; + + min_cut_3b[i][j][k][1] = + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1];//n3b_knots_array[key][1][0]; + + min_cut_3b[i][j][k][2] = + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2];//n3b_knots_array[key][2][0]; + + for (int knot_no = 0; knot_no < n3b_knots_array_size[key][0]; knot_no++) + n3b_knots_array[key][0][knot_no] = n3b_knots_array[mapped_to_key][0][knot_no]; + + for (int knot_no = 0; knot_no < n3b_knots_array_size[key][1]; knot_no++) + n3b_knots_array[key][1][knot_no] = n3b_knots_array[mapped_to_key][1][knot_no]; + + for (int knot_no = 0; knot_no < n3b_knots_array_size[key][2]; knot_no++) + n3b_knots_array[key][2][knot_no] = n3b_knots_array[mapped_to_key][2][knot_no]; + + for (int coeff1 = 0; coeff1 < n3b_coeff_array_size[key][0]; coeff1++) + for (int coeff2 = 0; coeff2 < n3b_coeff_array_size[key][1]; coeff2++) + for (int coeff3 = 0; coeff3 < n3b_coeff_array_size[key][2]; coeff3++) + n3b_coeff_array[key][coeff1][coeff2][coeff3] = + n3b_coeff_array[mapped_to_key][coeff1][coeff2][coeff3]; + setflag_3b[i][j][k] = 1; + } + } + } + } } } @@ -826,7 +1689,7 @@ void PairUF3::create_bsplines() if (setflag[i][j] != 1) error->all(FLERR, "UF3: Not all 2-body UF potentials are set, " - "missing potential file for {}-{} interaction", + "missing potential for {}-{} interaction", i, j); } } @@ -837,7 +1700,7 @@ void PairUF3::create_bsplines() if (setflag_3b[i][j][k] != 1) error->all(FLERR, "UF3: Not all 3-body UF potentials are set, " - "missing potential file for {}-{}-{} interaction", + "missing potential for {}-{}-{} interaction", i, j, k); } } @@ -846,20 +1709,41 @@ void PairUF3::create_bsplines() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - uf3_impl->UFBS2b[i][j] = + /*uf3_impl->UFBS2b[i][j] = uf3_pair_bspline(lmp, uf3_impl->n2b_knot[i][j], uf3_impl->n2b_coeff[i][j], - knot_spacing_type_2b[i][j]); + knot_spacing_type_2b[i][j]);*/ + + uf3_impl->UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knots_array[i][j], + n2b_knots_array_size[i][j], + n2b_coeff_array[i][j], + n2b_coeff_array_size[i][j], + knot_spacing_type_2b[i][j]); uf3_impl->UFBS2b[j][i] = uf3_impl->UFBS2b[i][j]; } if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); + /*std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); - std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); + lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]);*/ + int key = map_3b[i][j][k]; + int key2 = map_3b[i][k][j]; + /*utils::logmesg(lmp, "Setting UFBS3b for {}-{}-{} map_3b={} and for {}-{}-{} " + "map_3b={}\n", i, j, k, key, i, k, j, + key2);*/ + uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( + lmp, n3b_knots_array[key], n3b_knots_array_size[key], + n3b_coeff_array[key], n3b_coeff_array_size[key], + knot_spacing_type_3b[i][j][k]); + + /*std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); + lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]);*/ + //int key2 = map_3b[i][k][j]; + uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( + lmp, n3b_knots_array[key2], n3b_knots_array_size[key2], + n3b_coeff_array[key2], n3b_coeff_array_size[key2], + knot_spacing_type_3b[i][k][j]); } } } @@ -1172,7 +2056,23 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3 * sizeof(double); //min_cut_3b - for (int i = 1; i < num_of_elements + 1; i++) { + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_knots_array_size + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_coeff_array_size + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_knots_2b * + sizeof(double); //n2b_knots_array + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * + sizeof(double); //n2b_coeff_array + + if (pot_3b) { + bytes += (double) tot_interaction_count_3b * 3 * sizeof(double); //n3b_knots_array_size + bytes += (double) tot_interaction_count_3b * 3 * sizeof(double); //n3b_coeff_array_size + bytes += (double) tot_interaction_count_3b * 3 * max_num_knots_3b * sizeof(double); //n3b_knots_array + bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * + max_num_coeff_3b * sizeof(double); //n3b_coeff_array + } + /*for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { bytes += (double) 2 * uf3_impl->n2b_knot[i][j].size() * sizeof(double); //n2b_knot bytes += (double) 2 * uf3_impl->n2b_coeff[i][j].size() * sizeof(double); //n2b_coeff @@ -1196,7 +2096,7 @@ double PairUF3::memory_usage() } } } - } + }*/ for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 293d359c3f..82ce716042 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -49,6 +49,8 @@ class PairUF3 : public Pair { void uf3_read_pot_file(char *potf_name); void uf3_read_pot_file(int i, int j, char *potf_name); void uf3_read_pot_file(int i, int j, int k, char *potf_name); + void uf3_read_unified_pot_file(char *potf_name); + void communicate(); int nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; int bsplines_created; bool pot_3b; @@ -59,6 +61,26 @@ class PairUF3 : public Pair { struct UF3Impl *uf3_impl; //PIMPLE (pointer-to-implementation) UF3Impl *get_UF3Impl(); + int max_num_knots_2b = 0; + int max_num_coeff_2b = 0; + int max_num_knots_3b = 0; + int max_num_coeff_3b = 0; + double ***n2b_knots_array, ***n2b_coeff_array; + int **n2b_knots_array_size, **n2b_coeff_array_size; + + int ***map_3b, tot_interaction_count_3b; + double ***n3b_knots_array, ****n3b_coeff_array; + int **n3b_knots_array_size, **n3b_coeff_array_size; + + /*void uf3_read_2b_pot_block(int itype, int jtype, std::string iele, + std::string jele, + TextFileReader &txtfilereader); + + void uf3_read_3b_pot_block(int itype, int jtype, int ktype, + std::string iele, std::string jele, + std::string kele, + TextFileReader &txtfilereader);*/ + //Accessor function called by pair_uf3_kokkos.cpp //Will probably be removed once std::vector are converted to arrays std::vector>>& get_n2b_knot(); From cf729fc358fc96be2ee1eed622d32fded730b775 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 15 Apr 2024 10:38:00 -0400 Subject: [PATCH 056/313] Added new constructor functions in uf3_pair_bspline and uf3_triplet_bspline to construct std::vectors of knots and coefficients rom memory block --- src/ML-UF3/uf3_pair_bspline.cpp | 56 +++++++++++ src/ML-UF3/uf3_pair_bspline.h | 7 ++ src/ML-UF3/uf3_triplet_bspline.cpp | 147 +++++++++++++++++++++++++++++ src/ML-UF3/uf3_triplet_bspline.h | 5 + 4 files changed, 215 insertions(+) diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp index 3ecdb2f626..1e8e2eeffa 100644 --- a/src/ML-UF3/uf3_pair_bspline.cpp +++ b/src/ML-UF3/uf3_pair_bspline.cpp @@ -78,6 +78,62 @@ uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &ukno dnbspline_bases.push_back(uf3_bspline_basis2(lmp, &dnknot_vect[i], dncoeff_vect[i])); } +// Constructor +// Passing arrays +uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, + const int uknot_array_size, + const double* ucoeff_array, + const int ucoeff_array_size, + const int uknot_spacing_type) +{ + lmp = ulmp; + + knot_vect = std::vector (uknot_array, uknot_array + uknot_array_size); + coeff_vect = std::vector (ucoeff_array, ucoeff_array + ucoeff_array_size); + + knot_spacing_type = uknot_spacing_type; + if (knot_spacing_type==0){ + knot_spacing = knot_vect[4]-knot_vect[3]; + get_starting_index=&uf3_pair_bspline::get_starting_index_uniform; + } + else if (knot_spacing_type==1){ + knot_spacing = 0; + get_starting_index=&uf3_pair_bspline::get_starting_index_nonuniform; + } + + else + lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ + '1'(non-uniform knots)"); + + knot_vect_size = uknot_array_size; + coeff_vect_size = ucoeff_array_size; + + // Initialize B-Spline Basis Functions + for (int i = 0; i < knot_vect.size() - 4; i++) + bspline_bases.push_back(uf3_bspline_basis3(lmp, &knot_vect[i], coeff_vect[i])); + + // Initialize Coefficients and Knots for Derivatives + // The last coefficient needs to be droped + for (int i = 0; i < coeff_vect_size - 1; i++) { + double dntemp4 = 3 / (knot_vect[i + 4] - knot_vect[i + 1]); + dncoeff_vect.push_back((coeff_vect[i + 1] - coeff_vect[i]) * dntemp4); + } + //What we have is a clamped bspline -->i.e value of the bspline curve at the + //knots with multiplicity equal to the degree of bspline is equal to the coefficient + // + //Therefore for the derivative bspline the very first and last knot needs to be droped + //to change their multiplicity from 4 (necessary condition for clamped cubic bspline) + //to 3 (necessary condition for clamped quadratic bspline) + // + //Also if the coeff vector size of decreases by 1 for the derivative bspline + //knots size needs to go down by 2 as ==> knots = coefficient + degree + 1 + for (int i = 1; i < knot_vect_size - 1; i++) dnknot_vect.push_back(knot_vect[i]); + + // Initialize B-Spline Derivative Basis Functions + for (int i = 0; i < dnknot_vect.size() - 3; i++) + dnbspline_bases.push_back(uf3_bspline_basis2(lmp, &dnknot_vect[i], dncoeff_vect[i])); +} + uf3_pair_bspline::~uf3_pair_bspline() {} int uf3_pair_bspline::get_starting_index_uniform(double r) diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h index d10bfb430e..e471f02ac4 100644 --- a/src/ML-UF3/uf3_pair_bspline.h +++ b/src/ML-UF3/uf3_pair_bspline.h @@ -41,6 +41,13 @@ class uf3_pair_bspline { uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, const std::vector &ucoeff_vect, const int &uknot_spacing_type); + + uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, + const int uknot_array_size, + const double* ucoeff_array, + const int ucoeff_array_size, + const int uknot_spacing_type); + ~uf3_pair_bspline(); int knot_spacing_type; double knot_spacing=0; diff --git a/src/ML-UF3/uf3_triplet_bspline.cpp b/src/ML-UF3/uf3_triplet_bspline.cpp index a2087bd3a1..0527599965 100644 --- a/src/ML-UF3/uf3_triplet_bspline.cpp +++ b/src/ML-UF3/uf3_triplet_bspline.cpp @@ -145,6 +145,153 @@ uf3_triplet_bspline::uf3_triplet_bspline( } } +// Construct a new 3D B-Spline from arrays +uf3_triplet_bspline::uf3_triplet_bspline( + LAMMPS *ulmp, double **uknot_array, const int *uknot_array_size, + double ***ucoeff_array, const int *ucoeff_array_size, + const int &uknot_spacing_type) +{ + lmp = ulmp; + + knot_matrix.resize(3); + //utils::logmesg(lmp, "knot_matrix dim = {} {} {}\nknots = ",uknot_array_size[0], + // uknot_array_size[1], uknot_array_size[2]); + for (int i = 0; i < 3; i++) { + knot_matrix[i].resize(uknot_array_size[i]); + //utils::logmesg(lmp, "{}= ",i); + for (int j = 0; j < uknot_array_size[i]; j++) { + //utils::logmesg(lmp, "{} ", uknot_array[i][j]); + knot_matrix[i][j] = uknot_array[i][j]; + } + //utils::logmesg(lmp,"\n"); + } + + coeff_matrix.resize(ucoeff_array_size[0]); + for (int i = 0; i < ucoeff_array_size[0]; i++) { + coeff_matrix[i].resize(ucoeff_array_size[1]); + for (int j = 0; j < ucoeff_array_size[1]; j++) { + coeff_matrix[i][j].resize(ucoeff_array_size[2]); + for (int k = 0; k < ucoeff_array_size[2]; k++){ + coeff_matrix[i][j][k] = ucoeff_array[i][j][k]; + } + } + } + + knot_spacing_type = uknot_spacing_type; + if (knot_spacing_type==0){ + knot_spacing_ij = knot_matrix[2][4]-knot_matrix[2][3]; + knot_spacing_ik = knot_matrix[1][4]-knot_matrix[1][3]; + knot_spacing_jk = knot_matrix[0][4]-knot_matrix[0][3]; + get_starting_index=&uf3_triplet_bspline::get_starting_index_uniform; + } + else if (knot_spacing_type==1){ + knot_spacing_ij = 0; + knot_spacing_ik = 0; + knot_spacing_jk = 0; + get_starting_index=&uf3_triplet_bspline::get_starting_index_nonuniform; + } + + else + lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ + '1'(non-uniform knots)"); + + knot_vect_size_ij = knot_matrix[2].size(); + knot_vect_size_ik = knot_matrix[1].size(); + knot_vect_size_jk = knot_matrix[0].size(); + + int resolution_ij = knot_vect_size_ij - 4; + int resolution_ik = knot_vect_size_ik - 4; + int resolution_jk = knot_vect_size_jk - 4; + + // Cache Spline Basis Functions + for (int l = 0; l < resolution_ij; l++) { + bsplines_ij.push_back(uf3_bspline_basis3(lmp, &knot_matrix[2][l], 1)); + } + + for (int l = 0; l < resolution_ik; l++) { + // Reuse jk Basis if Knots match + if (knot_matrix[1][l] == knot_matrix[2][l] && knot_matrix[1][l + 1] == knot_matrix[2][l + 1] && + knot_matrix[1][l + 2] == knot_matrix[2][l + 2] && + knot_matrix[1][l + 3] == knot_matrix[2][l + 3]) + bsplines_ik.push_back(bsplines_ij[l]); + else + bsplines_ik.push_back(uf3_bspline_basis3(lmp, &knot_matrix[1][l], 1)); + } + + for (int l = 0; l < resolution_jk; l++) { + bsplines_jk.push_back(uf3_bspline_basis3(lmp, &knot_matrix[0][l], 1)); + } + + // Initialize Coefficients for Derivatives + for (int i = 0; i < coeff_matrix.size(); i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < coeff_matrix[0].size(); j++) { + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size() - 1; k++) { + double dntemp4 = 3 / (knot_matrix[0][k + 4] - knot_matrix[0][k + 1]); + dncoeff_vect.push_back((coeff_matrix[i][j][k + 1] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_jk.push_back(dncoeff_vect2); + } + + for (int i = 0; i < coeff_matrix.size(); i++) { + std::vector> dncoeff_vect2; + for (int j = 0; j < coeff_matrix[0].size() - 1; j++) { + double dntemp4 = 3 / (knot_matrix[1][j + 4] - knot_matrix[1][j + 1]); + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size(); k++) { + dncoeff_vect.push_back((coeff_matrix[i][j + 1][k] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_ik.push_back(dncoeff_vect2); + } + + for (int i = 0; i < coeff_matrix.size() - 1; i++) { + std::vector> dncoeff_vect2; + double dntemp4 = 3 / (knot_matrix[2][i + 4] - knot_matrix[2][i + 1]); + for (int j = 0; j < coeff_matrix[0].size(); j++) { + std::vector dncoeff_vect; + for (int k = 0; k < coeff_matrix[0][0].size(); k++) { + dncoeff_vect.push_back((coeff_matrix[i + 1][j][k] - coeff_matrix[i][j][k]) * dntemp4); + } + dncoeff_vect2.push_back(dncoeff_vect); + } + dncoeff_matrix_ij.push_back(dncoeff_vect2); + } + + std::vector> dnknot_matrix; + for (int i = 0; i < knot_matrix.size(); i++) { + std::vector dnknot_vect; + for (int j = 1; j < knot_matrix[0].size() - 1; j++) { + dnknot_vect.push_back(knot_matrix[i][j]); + } + dnknot_matrix.push_back(dnknot_vect); + } + + // Cache Derivative Spline Basis Functions + for (int l = 0; l < resolution_ij - 1; l++) { + dnbsplines_ij.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[2][l], 1)); + } + + for (int l = 0; l < resolution_ik - 1; l++) { + // Reuse jk Basis if Knots match + if (dnknot_matrix[1][l] == dnknot_matrix[2][l] && + dnknot_matrix[1][l + 1] == dnknot_matrix[2][l + 1] && + dnknot_matrix[1][l + 2] == dnknot_matrix[2][l + 2]) + dnbsplines_ik.push_back(dnbsplines_ij[l]); + else + dnbsplines_ik.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[1][l], 1)); + } + + for (int l = 0; l < resolution_jk - 1; l++) { + dnbsplines_jk.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[0][l], 1)); + } +} + + // Destructor uf3_triplet_bspline::~uf3_triplet_bspline() {} diff --git a/src/ML-UF3/uf3_triplet_bspline.h b/src/ML-UF3/uf3_triplet_bspline.h index 642201d879..e627a61f9e 100644 --- a/src/ML-UF3/uf3_triplet_bspline.h +++ b/src/ML-UF3/uf3_triplet_bspline.h @@ -47,6 +47,11 @@ class uf3_triplet_bspline { uf3_triplet_bspline(LAMMPS *ulmp, const std::vector> &uknot_matrix, const std::vector>> &ucoeff_matrix, const int &uknot_spacing_type); + + uf3_triplet_bspline(LAMMPS *ulmp, double **uknot_array, const int *uknot_array_size, + double ***ucoeff_array, const int *ucoeff_array_size, + const int &uknot_spacing_type); + ~uf3_triplet_bspline(); int knot_spacing_type; double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; From f6c8bd117869d3379358eb59ec476f162a0f2ca1 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 15 Apr 2024 10:51:39 -0400 Subject: [PATCH 057/313] Updated pair_coeff in unittest to read only one potential file; added Nb.uf3 unified potential file --- potentials/{Nb_Nb_Nb.uf3 => Nb.uf3} | 9 ++++++++- potentials/Nb_Nb.uf3 | 7 ------- unittest/force-styles/tests/manybody-pair-uf3.yaml | 3 +-- 3 files changed, 9 insertions(+), 10 deletions(-) rename potentials/{Nb_Nb_Nb.uf3 => Nb.uf3} (95%) delete mode 100644 potentials/Nb_Nb.uf3 diff --git a/potentials/Nb_Nb_Nb.uf3 b/potentials/Nb.uf3 similarity index 95% rename from potentials/Nb_Nb_Nb.uf3 rename to potentials/Nb.uf3 index ac3748b33c..5f1cdb6f63 100644 --- a/potentials/Nb_Nb_Nb.uf3 +++ b/potentials/Nb.uf3 @@ -1,5 +1,12 @@ #UF3 POT UNITS: metal DATE: 2024-04-02 12:18:15.359106 AUTHOR: Ajinkya_Hire CITATION: -3B 0 3 nk +2B Nb Nb 0 3 nk +8.0 31 +0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 +27 +79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 +# +#UF3 POT UNITS: metal DATE: 2024-04-02 12:18:15.359106 AUTHOR: Ajinkya_Hire CITATION: +3B Nb Nb Nb 0 3 nk 8.0 4.0 4.0 23 15 15 0.001 0.001 0.001 0.001 0.50093749999999992 1.000875 1.5008124999999999 2.00075 2.5006874999999997 3.0006249999999999 3.5005624999999996 4.0004999999999997 4.5004375000000003 5.000375 5.5003124999999997 6.0002500000000003 6.5001875 7.0001249999999997 7.5000625000000003 8 8 8 8 0.001 0.001 0.001 0.001 0.50087499999999996 1.00075 1.5006249999999999 2.0005000000000002 2.500375 3.0002499999999999 3.5001250000000002 4 4 4 4 diff --git a/potentials/Nb_Nb.uf3 b/potentials/Nb_Nb.uf3 deleted file mode 100644 index a8583b105d..0000000000 --- a/potentials/Nb_Nb.uf3 +++ /dev/null @@ -1,7 +0,0 @@ -#UF3 POT UNITS: metal DATE: 2024-04-02 12:18:15.359106 AUTHOR: Ajinkya_Hire CITATION: -2B 0 3 nk -8.0 31 -0.001 0.001 0.001 0.001 0.33429166666666665 0.66758333333333331 1.000875 1.3341666666666665 1.6674583333333333 2.00075 2.3340416666666663 2.6673333333333331 3.0006249999999999 3.3339166666666666 3.667208333333333 4.0004999999999997 4.3337916666666665 4.6670833333333333 5.000375 5.3336666666666668 5.6669583333333335 6.0002500000000003 6.3335416666666671 6.6668333333333338 7.0001249999999997 7.3334166666666665 7.6667083333333332 8 8 8 8 -27 -79.140244588519465 79.140244588519465 55.85833391113556 36.597903318706138 21.358952811231141 12.290000872768841 1.9593931914091953 -0.65697974623243804 -0.85177956270573463 -0.68929688239869991 -0.46787243412973262 -0.27624655899523165 -0.11912921944351409 -0.056302369393035338 -0.0049812809608429064 0.0085637634684603507 0.0034716161454604712 -0.0058751075573311978 -0.005453415412748467 -0.0015123194244718201 0.0011577919587182201 0.001583772506713282 -0.00049823976100720228 -0.0013902809146717273 0 0 0 -# diff --git a/unittest/force-styles/tests/manybody-pair-uf3.yaml b/unittest/force-styles/tests/manybody-pair-uf3.yaml index 075891e8f4..534b489c78 100644 --- a/unittest/force-styles/tests/manybody-pair-uf3.yaml +++ b/unittest/force-styles/tests/manybody-pair-uf3.yaml @@ -14,8 +14,7 @@ post_commands: ! "" input_file: in.manybody pair_style: uf3 3 pair_coeff: ! | - * * Nb_Nb.uf3 - 3b * * * Nb_Nb_Nb.uf3 + * * Nb.uf3 Nb Nb Nb Nb Nb Nb Nb Nb extract: ! "" natoms: 64 init_vdwl: -76.14388662099438 From d468ee8f7dc462da6a852136b07175ae877df2a1 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 15 Apr 2024 15:22:22 -0400 Subject: [PATCH 058/313] Updated the code as we are no longer using std::vector for knots and coefficients --- src/KOKKOS/pair_uf3_kokkos.cpp | 180 ++++++++++++++++++++------------- 1 file changed, 107 insertions(+), 73 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 7bc6ef22d5..5e0882d90b 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -272,8 +272,8 @@ template void PairUF3Kokkos::create_coefficients( template void PairUF3Kokkos::create_2b_coefficients() { const int num_of_elements = atom->ntypes; - std::vector>>& n2b_knot = get_n2b_knot(); - std::vector>>& n2b_coeff = get_n2b_coeff(); + //std::vector>>& n2b_knot = get_n2b_knot(); + //std::vector>>& n2b_coeff = get_n2b_coeff(); // Setup interaction pair map //TODO: Instead of using map2b and map3b use simple indexing @@ -291,9 +291,9 @@ template void PairUF3Kokkos::create_2b_coefficien // Count max knots for array size - int max_knots = 0; - for (int i = 1; i < n2b_knot.size(); i++) - for (int j = i; j < n2b_knot[i].size(); j++) max_knots = max(max_knots, n2b_knot[i][j].size()); + int max_knots = max_num_knots_2b; + /*for (int i = 1; i < n2b_knot.size(); i++) + for (int j = i; j < n2b_knot[i].size(); j++) max_knots = max(max_knots, n2b_knot[i][j].size());*/ // Copy coefficients to view @@ -302,8 +302,9 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - for (int k = 0; k < n2b_coeff[i][j].size(); k++) { - d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff[i][j][k]; + for (int k = 0; k < max_num_coeff_2b; k++) { + //n2b_coeff[i][j].size(); k++) { + d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff_array[i][j][k]; } } } @@ -318,10 +319,11 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - for (int k = 0; k < n2b_knot[i][j].size(); k++) { - d_n2b_knot_view(map2b_view(i, j), k) = n2b_knot[i][j][k]; + for (int k = 0; k < max_num_knots_2b; k++) { + //n2b_knot[i][j].size(); k++) { + d_n2b_knot_view(map2b_view(i, j), k) = n2b_knots_array[i][j][k]; } - d_n2b_knot_spacings_view(map2b_view(i, j)) = get_knot_spacing_2b(i,j); + d_n2b_knot_spacings_view(map2b_view(i, j)) = n2b_knots_array[i][j][4] - n2b_knots_array[i][j][3];//get_knot_spacing_2b(i,j); } } @@ -334,8 +336,9 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - for (int l = 0; l < n2b_knot[i][j].size() - 4; l++) { - auto c = get_constants(&n2b_knot[i][j][l], n2b_coeff[i][j][l]); + for (int l = 0; l < n2b_knots_array_size[i][j] - 4; l++) { + //n2b_knot[i][j].size() - 4; l++) { + auto c = get_constants(&n2b_knots_array[i][j][l], n2b_coeff_array[i][j][l]); for (int k = 0; k < 16; k++) constants_2b_view(map2b_view(i, j), l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; @@ -349,10 +352,11 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - for (int l = 0; l < n2b_knot[i][j].size() - 5; l++) { - double dntemp4 = 3 / (n2b_knot[i][j][l + 4] - n2b_knot[i][j][l + 1]); - double coeff = (n2b_coeff[i][j][l + 1] - n2b_coeff[i][j][l]) * dntemp4; - auto c = get_dnconstants(&n2b_knot[i][j][l + 1], coeff); + for (int l = 0; l < n2b_knots_array_size[i][j] - 5; l++) { + //n2b_knot[i][j].size() - 5; l++) { + double dntemp4 = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); + double coeff = (n2b_coeff_array[i][j][l + 1] - n2b_coeff_array[i][j][l]) * dntemp4; + auto c = get_dnconstants(&n2b_knots_array[i][j][l + 1], coeff); for (int k = 0; k < 9; k++) dnconstants_2b_view(map2b_view(i, j), l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; @@ -365,8 +369,8 @@ template void PairUF3Kokkos::create_2b_coefficien template void PairUF3Kokkos::create_3b_coefficients() { const int num_of_elements = atom->ntypes; - std::vector>>>>& n3b_knot_matrix = - get_n3b_knot_matrix(); + //std::vector>>>>& n3b_knot_matrix = + // get_n3b_knot_matrix(); //std::unordered_map>>>& // n3b_coeff_matrix = get_n3b_coeff_matrix(); // Init interaction map for 3B @@ -388,21 +392,21 @@ template void PairUF3Kokkos::create_3b_coefficien // Count max knots for view - int max_knots = 0; + int max_knots = max_num_knots_3b; //In n3b_knot_matrix[i][j][k], //n3b_knot_matrix[i][j][k][0] is the knot_vector along jk, //n3b_knot_matrix[i][j][k][1] is the knot_vector along ik, //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, //see pair_uf3.cpp for more details - for (int i = 1; i < n3b_knot_matrix.size(); i++) + /*for (int i = 1; i < n3b_knot_matrix.size(); i++) for (int j = 1; j < n3b_knot_matrix[i].size(); j++) for (int k = 1; k < n3b_knot_matrix[i][j].size(); k++) max_knots = max(max_knots, max(n3b_knot_matrix[i][j][k][0].size(), max(n3b_knot_matrix[i][j][k][1].size(), - n3b_knot_matrix[i][j][k][2].size()))); + n3b_knot_matrix[i][j][k][2].size())));*/ // Init knot matrix view @@ -411,21 +415,27 @@ template void PairUF3Kokkos::create_3b_coefficien auto d_n3b_knot_matrix_view = Kokkos::create_mirror(d_n3b_knot_matrix); auto d_n3b_knot_matrix_spacings_view = Kokkos::create_mirror(d_n3b_knot_matrix_spacings); - for (int i = 1; i < n3b_knot_matrix.size(); i++) - for (int j = 1; j < n3b_knot_matrix[i].size(); j++) - for (int k = 1; k < n3b_knot_matrix[i][j].size(); k++) { - for (int m = 0; m < n3b_knot_matrix[i][j][k][0].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = n3b_knot_matrix[i][j][k][0][m]; - for (int m = 0; m < n3b_knot_matrix[i][j][k][1].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = n3b_knot_matrix[i][j][k][1][m]; - for (int m = 0; m < n3b_knot_matrix[i][j][k][2].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = n3b_knot_matrix[i][j][k][2][m]; + for (int i = 1; i < num_of_elements + 1; i++)//n3b_knot_matrix.size(); i++) + for (int j = 1; j < num_of_elements + 1; j++)//n3b_knot_matrix[i].size(); j++) + for (int k = 1; k < num_of_elements + 1; k++){//n3b_knot_matrix[i][j].size(); k++) { + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++)//n3b_knot_matrix[i][j][k][0].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = + n3b_knots_array[map_3b[i][j][k]][0][m];//n3b_knot_matrix[i][j][k][0][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++)//n3b_knot_matrix[i][j][k][1].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = + n3b_knots_array[map_3b[i][j][k]][1][m];//n3b_knot_matrix[i][j][k][1][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++)//n3b_knot_matrix[i][j][k][2].size(); m++) + d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = + n3b_knots_array[map_3b[i][j][k]][2][m];//n3b_knot_matrix[i][j][k][2][m]; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = get_knot_spacing_3b_ij(i,j,k); + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = + n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3];//get_knot_spacing_3b_ij(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = get_knot_spacing_3b_ik(i,j,k); + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = + n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3];//get_knot_spacing_3b_ik(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = get_knot_spacing_3b_jk(i,j,k); + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = + n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3];//get_knot_spacing_3b_jk(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; } Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); @@ -440,11 +450,14 @@ template void PairUF3Kokkos::create_3b_coefficien for (int j = 1; j < num_of_elements + 1; j++) { for (int k = 1; k < num_of_elements + 1; k++) { d_n3b_knot_spacings_view(map3b_view(i, j, k), 0) = - 1 / (n3b_knot_matrix[i][j][k][0][5] - n3b_knot_matrix[i][j][k][0][4]); + 1 / (n3b_knots_array[map_3b[i][j][k]][0][5] - n3b_knots_array[map_3b[i][j][k]][0][4]); + //(n3b_knot_matrix[i][j][k][0][5] - n3b_knot_matrix[i][j][k][0][4]); d_n3b_knot_spacings_view(map3b_view(i, j, k), 1) = - 1 / (n3b_knot_matrix[i][j][k][1][5] - n3b_knot_matrix[i][j][k][1][4]); + 1 / (n3b_knots_array[map_3b[i][j][k]][1][5] - n3b_knots_array[map_3b[i][j][k]][1][4]); + //(n3b_knot_matrix[i][j][k][1][5] - n3b_knot_matrix[i][j][k][1][4]); d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = - 1 / (n3b_knot_matrix[i][j][k][2][5] - n3b_knot_matrix[i][j][k][2][4]); + 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); + //(n3b_knot_matrix[i][j][k][2][5] - n3b_knot_matrix[i][j][k][2][4]); } } } @@ -459,14 +472,14 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - std::vector>> n3b_coeff_matrix_key = - get_n3b_coeff_matrix_key(key); - for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { - for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix_key[i][j].size() - 1; k++) { + //std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); + //std::vector>> n3b_coeff_matrix_key = + // get_n3b_coeff_matrix_key(key); + for (int i = 0; i < n3b_coeff_array_size[map_3b[n][m][o]][0]; i++) {//n3b_coeff_matrix_key.size(); i++) { + for (int j = 0; j < n3b_coeff_array_size[map_3b[n][m][o]][1]; j++) {//n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < n3b_coeff_array_size[map_3b[n][m][o]][2]; k++) {//n3b_coeff_matrix_key[i][j].size() - 1; k++) { d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = - n3b_coeff_matrix_key[i][j][k]; + n3b_coeff_array[map_3b[n][m][o]][i][j][k];//n3b_coeff_matrix_key[i][j][k]; } } } @@ -497,40 +510,49 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - std::vector>> n3b_coeff_matrix_key = - get_n3b_coeff_matrix_key(key); - for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { - for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix_key[i][j].size() - 1; k++) { + //std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); + //std::vector>> n3b_coeff_matrix_key = + // get_n3b_coeff_matrix_key(key); + int coeff_dim1 = n3b_coeff_array_size[map_3b[n][m][o]][0]; + int coeff_dim2 = n3b_coeff_array_size[map_3b[n][m][o]][1]; + int coeff_dim3 = n3b_coeff_array_size[map_3b[n][m][o]][2]; + for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size(); i++) { + for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size() - 1; k++) { F_FLOAT dntemp4 = - 3 / (n3b_knot_matrix[n][m][o][0][k + 4] - n3b_knot_matrix[n][m][o][0][k + 1]); + 3 / (n3b_knots_array[map_3b[n][m][o]][0][k + 4] - n3b_knots_array[map_3b[n][m][o]][0][k + 1]); + //(n3b_knot_matrix[n][m][o][0][k + 4] - n3b_knot_matrix[n][m][o][0][k + 1]); d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = - (n3b_coeff_matrix_key[i][j][k + 1] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; + (n3b_coeff_array[map_3b[n][m][o]][i][j][k + 1] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + //(n3b_coeff_matrix_key[i][j][k + 1] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < n3b_coeff_matrix_key.size(); i++) { + for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size(); i++) { std::vector> dncoeff_vect2; - for (int j = 0; j < n3b_coeff_matrix_key[i].size() - 1; j++) { + for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size() - 1; j++) { F_FLOAT dntemp4 = - 3 / (n3b_knot_matrix[n][m][o][1][j + 4] - n3b_knot_matrix[n][m][o][1][j + 1]); + 3 / (n3b_knots_array[map_3b[n][m][o]][1][j + 4] - n3b_knots_array[map_3b[n][m][o]][1][j + 1]); + //(n3b_knot_matrix[n][m][o][1][j + 4] - n3b_knot_matrix[n][m][o][1][j + 1]); std::vector dncoeff_vect; - for (int k = 0; k < n3b_coeff_matrix_key[i][j].size(); k++) { + for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size(); k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = - (n3b_coeff_matrix_key[i][j + 1][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; + (n3b_coeff_array[map_3b[n][m][o]][i][j + 1][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + //(n3b_coeff_matrix_key[i][j + 1][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < n3b_coeff_matrix_key.size() - 1; i++) { + for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size() - 1; i++) { F_FLOAT dntemp4 = - 3 / (n3b_knot_matrix[n][m][o][2][i + 4] - n3b_knot_matrix[n][m][o][2][i + 1]); - for (int j = 0; j < n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < n3b_coeff_matrix_key[i][j].size(); k++) { + 3 / (n3b_knots_array[map_3b[n][m][o]][2][i + 4] - n3b_knots_array[map_3b[n][m][o]][2][i + 1]); + //(n3b_knot_matrix[n][m][o][2][i + 4] - n3b_knot_matrix[n][m][o][2][i + 1]); + for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size(); j++) { + for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size(); k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = - (n3b_coeff_matrix_key[i + 1][j][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; + (n3b_coeff_array[map_3b[n][m][o]][i + 1][j][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; + //(n3b_coeff_matrix_key[i + 1][j][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } @@ -552,20 +574,26 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - for (int l = 0; l < n3b_knot_matrix[n][m][o][2].size() - 4; l++) { - auto c = get_constants(&n3b_knot_matrix[n][m][o][2][l], 1); + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 4; l++) { + //n3b_knot_matrix[n][m][o][2].size() - 4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); + //auto c = get_constants(&n3b_knot_matrix[n][m][o][2][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 0, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } - for (int l = 0; l < n3b_knot_matrix[n][m][o][1].size() - 4; l++) { - auto c = get_constants(&n3b_knot_matrix[n][m][o][1][l], 1); + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 4; l++) { + //n3b_knot_matrix[n][m][o][1].size() - 4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); + //auto c = get_constants(&n3b_knot_matrix[n][m][o][1][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 1, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } - for (int l = 0; l < n3b_knot_matrix[n][m][o][0].size() - 4; l++) { - auto c = get_constants(&n3b_knot_matrix[n][m][o][0][l], 1); + for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][0] -4; l++) { + //n3b_knot_matrix[n][m][o][0].size() - 4; l++) { + auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); + //auto c = get_constants(&n3b_knot_matrix[n][m][o][0][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 2, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; @@ -581,20 +609,26 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - for (int l = 1; l < n3b_knot_matrix[n][m][o][2].size() - 5; l++) { - auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][2][l], 1); + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 5; l++) { + //n3b_knot_matrix[n][m][o][2].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); + //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][2][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 0, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } - for (int l = 1; l < n3b_knot_matrix[n][m][o][1].size() - 5; l++) { - auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][1][l], 1); + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 5; l++) { + //n3b_knot_matrix[n][m][o][1].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); + //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][1][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 1, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } - for (int l = 1; l < n3b_knot_matrix[n][m][o][0].size() - 5; l++) { - auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][0][l], 1); + for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][0] - 5; l++) { + //n3b_knot_matrix[n][m][o][0].size() - 5; l++) { + auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); + //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][0][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 2, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; From 4c1be999fa8aebf264db7fe94f4cf0d095540e16 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Mon, 15 Apr 2024 15:31:42 -0400 Subject: [PATCH 059/313] Removed reference to std::vector knots and coefficients; commented out getter functions --- src/ML-UF3/pair_uf3.cpp | 38 ++++++++++++++++++++------------------ src/ML-UF3/pair_uf3.h | 4 ++-- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index b6986d422f..8e853ab35b 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -39,9 +39,9 @@ namespace LAMMPS_NS{ struct UF3Impl { - std::vector>> n2b_knot, n2b_coeff; - std::vector>>>> n3b_knot_matrix; - std::unordered_map>>> n3b_coeff_matrix; + //std::vector>> n2b_knot, n2b_coeff; + //std::vector>>>> n3b_knot_matrix; + //std::unordered_map>>> n3b_coeff_matrix; std::vector> UFBS2b; std::vector>> UFBS3b; @@ -289,12 +289,12 @@ void PairUF3::allocate() "pair:n2b_coeff_array_size"); // Contains knot_vect of 2-body potential for type i and j - uf3_impl->n2b_knot.resize(num_of_elements + 1); - uf3_impl->n2b_coeff.resize(num_of_elements + 1); + //uf3_impl->n2b_knot.resize(num_of_elements + 1); + //uf3_impl->n2b_coeff.resize(num_of_elements + 1); uf3_impl->UFBS2b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { - uf3_impl->n2b_knot[i].resize(num_of_elements + 1); - uf3_impl->n2b_coeff[i].resize(num_of_elements + 1); + //uf3_impl->n2b_knot[i].resize(num_of_elements + 1); + //uf3_impl->n2b_coeff[i].resize(num_of_elements + 1); uf3_impl->UFBS2b[i].resize(num_of_elements + 1); } if (pot_3b) { @@ -345,13 +345,13 @@ void PairUF3::allocate() memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, "pair:n3b_coeff_array_size"); - uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); + //uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); uf3_impl->UFBS3b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { - uf3_impl->n3b_knot_matrix[i].resize(num_of_elements + 1); + //uf3_impl->n3b_knot_matrix[i].resize(num_of_elements + 1); uf3_impl->UFBS3b[i].resize(num_of_elements + 1); for (int j = 1; j < num_of_elements + 1; j++) { - uf3_impl->n3b_knot_matrix[i][j].resize(num_of_elements + 1); + //uf3_impl->n3b_knot_matrix[i][j].resize(num_of_elements + 1); uf3_impl->UFBS3b[i][j].resize(num_of_elements + 1); } } @@ -1085,7 +1085,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) } } -void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) +/*void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) { FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) @@ -1646,7 +1646,7 @@ void PairUF3::uf3_read_pot_file(char *potf_name) "UF3: {} file does not contain right words indicating whether it is 2 or 3 body potential", potf_name); fclose(fp); -} +}*/ /* ---------------------------------------------------------------------- init specific to this pair style @@ -2118,25 +2118,27 @@ double PairUF3::memory_usage() //Accessor function called by pair_uf3_kokkos.cpp //Will probably be removed once std::vector are converted to arrays -std::vector>>& PairUF3::get_n2b_knot() +/*std::vector>>& PairUF3::get_n2b_knot() { return uf3_impl->n2b_knot; -} - +}*/ +/* std::vector>>& PairUF3::get_n2b_coeff() { return uf3_impl->n2b_coeff; -} +}*/ //Accessor function called by pair_uf3_kokkos.cpp //Will probably be removed once std::vector are converted to arrays +/* std::vector>>>>& PairUF3::get_n3b_knot_matrix() { return uf3_impl->n3b_knot_matrix; -} +}*/ //Accessor function called by pair_uf3_kokkos.cpp //Will probably be removed once std::vector are converted to arrays +/* std::vector>>& PairUF3::get_n3b_coeff_matrix_key(std::string key) { @@ -2160,4 +2162,4 @@ double PairUF3::get_knot_spacing_3b_jk(int i, int j, int k) { return uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; } - +*/ diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 82ce716042..4c70ab7efe 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -83,14 +83,14 @@ class PairUF3 : public Pair { //Accessor function called by pair_uf3_kokkos.cpp //Will probably be removed once std::vector are converted to arrays - std::vector>>& get_n2b_knot(); + /*std::vector>>& get_n2b_knot(); std::vector>>& get_n2b_coeff(); std::vector>>>>& get_n3b_knot_matrix(); std::vector>>& get_n3b_coeff_matrix_key(std::string key); double get_knot_spacing_2b(int i, int j); double get_knot_spacing_3b_ij(int i, int j, int k); double get_knot_spacing_3b_ik(int i, int j, int k); - double get_knot_spacing_3b_jk(int i, int j, int k); + double get_knot_spacing_3b_jk(int i, int j, int k);*/ int *neighshort, maxshort; // short neighbor list array for 3body interaction }; From e590e27faa2cff7fb194550185c3488cae6fce48 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 16 Apr 2024 19:56:37 -0400 Subject: [PATCH 060/313] create_atoms: direct type label support --- doc/src/create_atoms.rst | 12 +++++++++--- src/create_atoms.cpp | 8 ++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/src/create_atoms.rst b/doc/src/create_atoms.rst index 7f67670506..8aedf62d82 100644 --- a/doc/src/create_atoms.rst +++ b/doc/src/create_atoms.rst @@ -10,7 +10,7 @@ Syntax create_atoms type style args keyword values ... -* type = atom type (1-Ntypes) of atoms to create (offset for molecule creation) +* type = atom type (1-Ntypes or type label) of atoms to create (offset for molecule creation) * style = *box* or *region* or *single* or *mesh* or *random* .. parsed-literal:: @@ -37,7 +37,7 @@ Syntax seed = random # seed (positive integer) *basis* values = M itype M = which basis atom - itype = atom type (1-N) to assign to this basis atom + itype = atom type (1-Ntypes or type label) to assign to this basis atom *ratio* values = frac seed frac = fraction of lattice sites (0 to 1) to populate randomly seed = random # seed (positive integer) @@ -74,7 +74,13 @@ Examples .. code-block:: LAMMPS create_atoms 1 box - create_atoms 3 region regsphere basis 2 3 + + labelmap atom 1 Pt + create_atoms Pt box + + labelmap atom 1 C 2 Si + create_atoms C region regsphere basis Si C + create_atoms 3 region regsphere basis 2 3 ratio 0.5 74637 create_atoms 3 single 0 0 5 create_atoms 1 box var v set x xpos set y ypos diff --git a/src/create_atoms.cpp b/src/create_atoms.cpp index 578ce999f5..ec9d8078a2 100644 --- a/src/create_atoms.cpp +++ b/src/create_atoms.cpp @@ -89,7 +89,9 @@ void CreateAtoms::command(int narg, char **arg) // parse arguments if (narg < 2) utils::missing_cmd_args(FLERR, "create_atoms", error); - ntype = utils::inumeric(FLERR, arg[0], false, lmp); + char *typestr = utils::expand_type(FLERR, arg[0], Atom::ATOM, lmp); + ntype = utils::inumeric(FLERR, typestr?typestr:arg[0], false, lmp); + delete[] typestr; const char *meshfile; int iarg; @@ -163,7 +165,9 @@ void CreateAtoms::command(int narg, char **arg) if (strcmp(arg[iarg], "basis") == 0) { if (iarg + 3 > narg) utils::missing_cmd_args(FLERR, "create_atoms basis", error); int ibasis = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); - int itype = utils::inumeric(FLERR, arg[iarg + 2], false, lmp); + char *typestr = utils::expand_type(FLERR, arg[iarg + 2], Atom::ATOM, lmp); + int itype = utils::inumeric(FLERR, typestr?typestr:arg[iarg + 2], false, lmp); + delete[] typestr; if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes) error->all(FLERR, "Out of range basis setting '{} {}' in create_atoms command", ibasis, itype); From a1826b136473d3eba4305452af5f14707e4217e2 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Wed, 17 Apr 2024 00:16:00 -0400 Subject: [PATCH 061/313] fix_deposit: direct type label support --- doc/src/fix_deposit.rst | 6 ++++-- src/fix_deposit.cpp | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_deposit.rst b/doc/src/fix_deposit.rst index 5264999839..02cb5caff8 100644 --- a/doc/src/fix_deposit.rst +++ b/doc/src/fix_deposit.rst @@ -13,7 +13,7 @@ Syntax * ID, group-ID are documented in :doc:`fix ` command * deposit = style name of this fix command * N = # of atoms or molecules to insert -* type = atom type to assign to inserted atoms (offset for molecule insertion) +* type = atom type (1-Ntypes or type label) to assign to inserted atoms (offset for molecule insertion) * M = insert a single atom or molecule every M steps * seed = random # seed (positive integer) * one or more keyword/value pairs may be appended to args @@ -73,9 +73,11 @@ Examples fix 3 all deposit 1000 2 100 29494 region myblock local 1.0 1.0 1.0 units box fix 2 newatoms deposit 10000 1 500 12345 region disk near 2.0 vz -1.0 -0.8 - fix 4 sputter deposit 1000 2 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice fix 5 insert deposit 200 2 100 777 region disk gaussian 5.0 5.0 9.0 1.0 units box + labelmap atom 1 Au + fix 4 sputter deposit 1000 Au 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice + Description """"""""""" diff --git a/src/fix_deposit.cpp b/src/fix_deposit.cpp index d8ea665149..97e76c6ccc 100644 --- a/src/fix_deposit.cpp +++ b/src/fix_deposit.cpp @@ -59,10 +59,12 @@ FixDeposit::FixDeposit(LAMMPS *lmp, int narg, char **arg) : // required args - ninsert = utils::inumeric(FLERR,arg[3],false,lmp); - ntype = utils::inumeric(FLERR,arg[4],false,lmp); - nfreq = utils::inumeric(FLERR,arg[5],false,lmp); - seed = utils::inumeric(FLERR,arg[6],false,lmp); + ninsert = utils::inumeric(FLERR, arg[3], false, lmp); + char *typestr = utils::expand_type(FLERR, arg[4], Atom::ATOM, lmp); + ntype = utils::inumeric(FLERR, typestr?typestr:arg[4], false, lmp); + delete[] typestr; + nfreq = utils::inumeric(FLERR, arg[5], false, lmp); + seed = utils::inumeric(FLERR, arg[6], false, lmp); if (seed <= 0) error->all(FLERR,"Illegal fix deposit command"); From 18ae98201b35dc93e7409c8512bbe40a09f885d6 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Wed, 17 Apr 2024 10:51:21 -0400 Subject: [PATCH 062/313] Updated the documentation about UF3 LAMMPS potential file --- doc/src/pair_uf3.rst | 111 ++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 70 deletions(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index 4c8e25d05b..dfebf4babd 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -25,24 +25,13 @@ Examples .. code-block:: LAMMPS pair_style uf3 3 - pair_coeff 1 1 Nb_Nb.uf3 - pair_coeff 3b 1 1 1 Nb_Nb_Nb.uf3 + pair_coeff * * Nb.uf3 Nb pair_style uf3 2 - pair_coeff 1 1 Nb_Nb.uf3 - pair_coeff 1 2 Nb_Sn.uf3 - pair_coeff 2 2 Sn_Sn.uf3 + pair_coeff * * NbSn.uf3 Nb Sn pair_style uf3 3 - pair_coeff 1 1 Nb_Nb.uf3 - pair_coeff 1 2 Nb_Sn.uf3 - pair_coeff 2 2 Sn_Sn.uf3 - pair_style 3b 1 1 1 Nb_Nb_Nb.uf3 - pair_style 3b 1 1 2 Nb_Nb_Sn.uf3 - pair_style 3b 1 2 2 Nb_Sn_Sn.uf3 - pair_style 3b 2 1 1 Sn_Nb_Nb.uf3 - pair_style 3b 2 1 2 Sn_Nb_Sn.uf3 - pair_style 3b 2 2 2 Sn_Sn_Sn.uf3 + pair_coeff * * NbSn.uf3 Nb Sn Description """"""""""" @@ -70,16 +59,13 @@ interaction parameters and :math:`N`, :math:`N_l`, :math:`N_m`, and :math:`N_n` denote the number of basis functions per spline or tensor spline dimension. -The UF3 LAMMPS potential files are provided using multiple pair_coeff -commands. A single UF3 LAMMPS potential file contains information about -one particular interaction only. +With *uf3* style only a single pair_coeff command is used to indicate the +UF3 LAMMPS potential file containing all the two- and three-body interactions +followed by N additional arguments specifying the mapping of UF3 elements to +LAMMPS atom types, where N is the number of LAMMPS atom types: -.. note:: - - Unlike other MANYBODY and ML potentials in LAMMPS, the atom type for - which the specified potential file should be used for is not - determined from the potential file, but is rather determined from the - user provided atom type numbers after pair_coeff. +* UF3 LAMMPS potential file +* N elements names = mapping of UF3 elements to atom types As an example, if a LAMMPS simulation contains 2 atom types (elements 'A' and 'B'), the pair_coeff command will be: @@ -87,64 +73,37 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements .. code-block:: LAMMPS pair_style uf3 3 - pair_coeff 1 1 A_A.uf3 - pair_coeff 1 2 A_B.uf3 - pair_coeff 2 2 B_B.uf3 - pair_coeff 3b 1 1 1 A_A_A.uf3 - pair_coeff 3b 1 1 2 A_A_B.uf3 - pair_coeff 3b 1 2 2 A_B_B.uf3 - pair_coeff 3b 2 1 1 B_A_A.uf3 - pair_coeff 3b 2 1 2 B_A_B.uf3 - pair_coeff 3b 2 2 2 B_B_B.uf3 + pair_coeff * * AB.uf3 A B + +The AB.uf3 file should conatin all two-body (A-A, A-B, B-B) and three-body +(A-A-A, A-A-B, A-B-B, B-A-A, B-A-B, B-B-B). If a value of "2" is specified in the :code:`pair_style uf3` command, -only the two-body potential files are needed. For 3-body interaction the +only the two-body potentials are needed. For 3-body interaction the first atom type is the central atom. We recommend using the :code:`generate_uf3_lammps_pots.py` script (found `here -`_) for -generating the UF3 LAMMPS potential files from the UF3 JSON potentials. - -LAMMPS wild-card character "*" can also be used to specify a single UF3 -LAMMPS potential file for multiple interaction. For example- - -.. code-block:: LAMMPS - - pair_style uf3 3 - pair_coeff * * A_A - pair_coeff 3b 1 * * A_A_A - pair_coeff 3b 2 * * B_B_B - -The file A_A will be used for 2-body interaction between atom types 1-1, -1-2 and 2-2; file A_A_A will be used 3-body interaction for atom types -1-1-1, 1-1-2, 1-2-2; and so on. Note, using a single interaction file -for all types of interactions is **not** the recommended way of using -:code:`pair_style uf3` and will often lead to **incorrect results**. +`_) for +generating the UF3 LAMMPS potential file from the UF3 JSON potentials. ---------- -UF3 LAMMPS potential files in the *potentials* directory of the LAMMPS -distribution have a ".uf3" suffix. All UF3 LAMMPS potential files should -start with :code:`#UF3 POT` and end with :code:`#` characters. Following -shows the format of a generic 2-body UF3 LAMMPS potential file- +UF3 LAMMPS potential file in the *potentials* directory of the LAMMPS +distribution have a ".uf3" suffix. The interaction block in UF3 LAMMPS potential +file should start with :code:`#UF3 POT` and end with :code:`#` characters. +Following shows the format of a generic 2-body and 3-body potential block in +UF3 LAMMPS potential file- .. code-block:: LAMMPS #UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE - 2B LEADING_TRIM TRAILING_TRIM + 2B ELEMENT1 ELEMENT2 LEADING_TRIM TRAILING_TRIM Rij_CUTOFF NUM_OF_KNOTS BSPLINE_KNOTS NUM_OF_COEFF COEFF # - -The second line indicates whether the potential file contains data for 2-body (:code:`2B`) or 3-body (:code:`3B`) interaction. This is followed by :code:`LEADING_TRIM` and :code:`TRAILING_TRIM` number on the same line. The current implementation is only tested for :code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`. If other values are used LAMMPS is terminated after issuing an error message. The :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described by the potential file. :code:`NUM_OF_KNOTS` is the number of knots (or the length of the knot vector) present on the very next line. The :code:`BSPLINE_KNOTS` line should contain all the knots in ascending order. :code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line. All the numbers in the BSPLINE_KNOTS and COEFF line should be space-separated. - -The format of a generic 3-body UF3 LAMMPS potential file is as follow- - -.. code-block:: LAMMPS - #UF3 POT UNITS: units DATE: POT_GEN_DATE AUTHOR: AUTHOR_NAME CITATION: CITE - 3B LEADING_TRIM TRAILING_TRIM + 3B ELEMENT1 ELEMENT2 ELEMENT3 LEADING_TRIM TRAILING_TRIM Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ BSPLINE_KNOTS_FOR_JK BSPLINE_KNOTS_FOR_IK @@ -164,10 +123,22 @@ The format of a generic 3-body UF3 LAMMPS potential file is as follow- . # -Similar to the 2-body potential file, the third line sets the cutoffs -and length of the knots. The cutoff distance between atom-type I and J -is :code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and -between J and K is :code:`Rjk_CUTOFF`. +The second line indicates whether the block contains data for 2-body +(:code:`2B`) or 3-body (:code:`3B`) interaction. This is followed by element +combination interaction, :code:`LEADING_TRIM` and :code:`TRAILING_TRIM` +number on the same line. The current implementation is only tested for +:code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`. +If other values are used LAMMPS is terminated after issuing an error message. +The :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described +by the potential block. :code:`NUM_OF_KNOTS` is the number of knots +(or the length of the knot vector) present on the very next line. The +:code:`BSPLINE_KNOTS` line should contain all the knots in ascending order. +:code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line. +All the numbers in the BSPLINE_KNOTS and COEFF line should be space-separated. +Similar to the 2-body potential block, the third line sets the cutoffs and +length of the knots. The cutoff distance between atom-type I and J is +:code:`Rij_CUTOFF`, atom-type I and K is :code:`Rik_CUTOFF` and between +J and K is :code:`Rjk_CUTOFF`. .. note:: @@ -204,7 +175,7 @@ This pair style does not support the :doc:`pair_modify ` shift, table, and tail options. This pair style does not write its information to :doc:`binary restart -files `, since it is stored in potential files. +files `, since it is stored in potential file. This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the @@ -219,7 +190,7 @@ if LAMMPS was built with that package. See the :doc:`Build package This pair style requires the :doc:`newton ` setting to be "on". -The UF3 LAMMPS potential files provided with LAMMPS (see the potentials +The UF3 LAMMPS potential file provided with LAMMPS (see the potentials directory) are parameterized for metal :doc:`units `. The single() function of 'uf3' pair style only return the 2-body From e84540c626c88c4eb1a4edfd2f02da15d4084828 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Wed, 17 Apr 2024 14:35:00 -0400 Subject: [PATCH 063/313] fix/mol/swap: direct type label support --- doc/src/fix_mol_swap.rst | 6 ++++-- src/MC/fix_mol_swap.cpp | 12 ++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_mol_swap.rst b/doc/src/fix_mol_swap.rst index b344b9c0e6..127c0876ff 100644 --- a/doc/src/fix_mol_swap.rst +++ b/doc/src/fix_mol_swap.rst @@ -14,7 +14,7 @@ Syntax * atom/swap = style name of this fix command * N = invoke this fix every N steps * X = number of swaps to attempt every N steps -* itype,jtype = two atom types to swap with each other +* itype,jtype = two atom types (1-Ntypes or type label) to swap with each other * seed = random # seed (positive integer) * T = scaling temperature of the MC swaps (temperature units) * zero or more keyword/value pairs may be appended to args @@ -32,7 +32,9 @@ Examples .. code-block:: LAMMPS fix 2 all mol/swap 100 1 2 3 29494 300.0 ke no - fix mySwap fluid mol/swap 500 10 1 2 482798 1.0 + + labelmap atom 1 A 2 B + fix mySwap fluid mol/swap 500 10 A B 482798 1.0 Description """"""""""" diff --git a/src/MC/fix_mol_swap.cpp b/src/MC/fix_mol_swap.cpp index f496d4a9c5..666d1dd36b 100644 --- a/src/MC/fix_mol_swap.cpp +++ b/src/MC/fix_mol_swap.cpp @@ -56,10 +56,14 @@ FixMolSwap::FixMolSwap(LAMMPS *lmp, int narg, char **arg) : // parse args - nevery = utils::inumeric(FLERR,arg[3],false,lmp); - ncycles = utils::inumeric(FLERR,arg[4],false,lmp); - itype = utils::inumeric(FLERR,arg[5],false,lmp); - jtype = utils::inumeric(FLERR,arg[6],false,lmp); + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + ncycles = utils::inumeric(FLERR, arg[4], false, lmp); + char *typestr = utils::expand_type(FLERR, arg[5], Atom::ATOM, lmp); + itype = utils::inumeric(FLERR, typestr?typestr:arg[5], false, lmp); + delete[] typestr; + typestr = utils::expand_type(FLERR, arg[6], Atom::ATOM, lmp); + jtype = utils::inumeric(FLERR, typestr?typestr:arg[6], false, lmp); + delete[] typestr; seed = utils::inumeric(FLERR,arg[7],false,lmp); double temperature = utils::numeric(FLERR,arg[8],false,lmp); From 3310180a9ff8481c4bef2b990e5030f552f77026 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Wed, 17 Apr 2024 16:45:05 -0400 Subject: [PATCH 064/313] Fixed trailing whitespaces --- doc/src/pair_uf3.rst | 4 +- src/KOKKOS/pair_uf3_kokkos.cpp | 14 ++--- src/ML-UF3/pair_uf3.cpp | 98 ++++++++++++++++---------------- src/ML-UF3/pair_uf3.h | 2 +- src/ML-UF3/uf3_pair_bspline.cpp | 2 +- src/ML-UF3/uf3_pair_bspline.h | 2 +- src/ML-UF3/uf3_triplet_bspline.h | 2 +- 7 files changed, 62 insertions(+), 62 deletions(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index dfebf4babd..d89fdb21bf 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -74,7 +74,7 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements pair_style uf3 3 pair_coeff * * AB.uf3 A B - + The AB.uf3 file should conatin all two-body (A-A, A-B, B-B) and three-body (A-A-A, A-A-B, A-B-B, B-A-A, B-A-B, B-B-B). @@ -130,7 +130,7 @@ number on the same line. The current implementation is only tested for :code:`LEADING_TRIM=0` and :code:`TRAILING_TRIM=3`. If other values are used LAMMPS is terminated after issuing an error message. The :code:`Rij_CUTOFF` sets the 2-body cutoff for the interaction described -by the potential block. :code:`NUM_OF_KNOTS` is the number of knots +by the potential block. :code:`NUM_OF_KNOTS` is the number of knots (or the length of the knot vector) present on the very next line. The :code:`BSPLINE_KNOTS` line should contain all the knots in ascending order. :code:`NUM_OF_COEFF` is the number of coefficients in the :code:`COEFF` line. diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index 5e0882d90b..d24ba44d9f 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -419,22 +419,22 @@ template void PairUF3Kokkos::create_3b_coefficien for (int j = 1; j < num_of_elements + 1; j++)//n3b_knot_matrix[i].size(); j++) for (int k = 1; k < num_of_elements + 1; k++){//n3b_knot_matrix[i][j].size(); k++) { for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++)//n3b_knot_matrix[i][j][k][0].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = + d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = n3b_knots_array[map_3b[i][j][k]][0][m];//n3b_knot_matrix[i][j][k][0][m]; for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++)//n3b_knot_matrix[i][j][k][1].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = + d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = n3b_knots_array[map_3b[i][j][k]][1][m];//n3b_knot_matrix[i][j][k][1][m]; for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++)//n3b_knot_matrix[i][j][k][2].size(); m++) - d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = + d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = n3b_knots_array[map_3b[i][j][k]][2][m];//n3b_knot_matrix[i][j][k][2][m]; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3];//get_knot_spacing_3b_ij(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3];//get_knot_spacing_3b_ik(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; - d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3];//get_knot_spacing_3b_jk(i,j,k); //uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; } @@ -456,7 +456,7 @@ template void PairUF3Kokkos::create_3b_coefficien 1 / (n3b_knots_array[map_3b[i][j][k]][1][5] - n3b_knots_array[map_3b[i][j][k]][1][4]); //(n3b_knot_matrix[i][j][k][1][5] - n3b_knot_matrix[i][j][k][1][4]); d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = - 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); + 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); //(n3b_knot_matrix[i][j][k][2][5] - n3b_knot_matrix[i][j][k][2][4]); } } diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 8e853ab35b..6252f30d40 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -59,7 +59,7 @@ PairUF3::PairUF3(LAMMPS *lmp) : { uf3_impl = new UF3Impl; single_enable = 1; // 1 if single() routine exists - one_coeff = 1; // 1 if allows only one coeff * * call + one_coeff = 1; // 1 if allows only one coeff * * call restartinfo = 0; // 1 if pair style writes restart info maxshort = 10; neighshort = nullptr; @@ -190,7 +190,7 @@ void PairUF3::communicate() (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); MPI_Bcast(&n2b_coeff_array_size[0][0], (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - + MPI_Bcast(&max_num_knots_2b, 1, MPI_INT, 0, world); MPI_Bcast(&max_num_coeff_2b, 1, MPI_INT, 0, world); @@ -214,7 +214,7 @@ void PairUF3::communicate() if (comm->me != 0) { memory->destroy(n2b_knots_array); memory->destroy(n2b_coeff_array); - + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, max_num_knots_2b, "pair:n2b_knots_array"); memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, @@ -225,12 +225,12 @@ void PairUF3::communicate() memory->create(n3b_knots_array, tot_interaction_count_3b, 3, max_num_knots_3b, "pair:n3b_knots_array"); - + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); } } - + MPI_Bcast(&knot_spacing_type_2b[0][0], (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); @@ -356,7 +356,7 @@ void PairUF3::allocate() } } memory->create(neighshort, maxshort, "pair:neighshort"); - + } } @@ -372,7 +372,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) const int num_of_elements = atom->ntypes; - //if (true) { + //if (true) { FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) error->all(FLERR, @@ -412,7 +412,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Expected 6 words on line {} of {} file " "but found {} word/s", line_counter, potf_name, fp2nd_line.count()); - + //get the elements std::string element1 = fp2nd_line.next_string(); std::string element2 = fp2nd_line.next_string(); @@ -430,7 +430,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) break; } } - + if ((itype != 0) && (jtype != 0)) { //Trailing and leading trim check int leading_trim = fp2nd_line.next_int(); @@ -457,7 +457,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //cut is used in init_one which is called by pair.cpp at line 267 //where the return of init_one is squared cut[itype][jtype] = fp3rd_line.next_double(); //MPI_Bcast - cut[jtype][itype] = cut[itype][jtype]; + cut[jtype][itype] = cut[itype][jtype]; int num_knots_2b = fp3rd_line.next_int(); n2b_knots_array_size[itype][jtype] = num_knots_2b; //MPI_Bcast @@ -472,7 +472,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) temp_line = txtfilereader.next_line(1); line_counter++; ValueTokenizer fp5th_line(temp_line); - + int num_coeff_2b = fp5th_line.next_int(); n2b_coeff_array_size[itype][jtype] = num_coeff_2b; //MPI_Bcast n2b_coeff_array_size[jtype][itype] = num_coeff_2b; //MPI_Bcast @@ -485,7 +485,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Expected 7 words on line {} of {} file" "but found {} word/s", line_counter, potf_name, fp2nd_line.count()); - + if (nbody_on_file == "3B") { //get the elements std::string element1 = fp2nd_line.next_string(); @@ -512,7 +512,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) break; } } - + if ((itype != 0) && (jtype != 0) && (ktype!=0)) { //Trailing and leading trim check int leading_trim = fp2nd_line.next_int(); @@ -530,33 +530,33 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) temp_line = txtfilereader.next_line(6); line_counter++; ValueTokenizer fp3rd_line(temp_line); - + if (fp3rd_line.count() != 6) error->all(FLERR, "UF3: Expected only 6 numbers on 3rd line => " "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK " "NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ Found {} number/s", fp3rd_line.count()); - + double cut3b_rjk = fp3rd_line.next_double(); double cut3b_rij = fp3rd_line.next_double(); double cut3b_rik = fp3rd_line.next_double(); - + if (cut3b_rij != cut3b_rik) error->all(FLERR, "UF3: rij!=rik for {}-{}-{}. " "Current implementation only works for rij=rik", element1, element2, element3); - + if (2 * cut3b_rik != cut3b_rjk) error->all(FLERR, "UF3: 2rij=2rik!=rik for {}-{}-{}. " "Current implementation only works for 2rij=2rik!=rik", element1, element2, element3); - cut_3b_list[itype][jtype] = + cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); //MPI_Bcast - cut_3b_list[itype][ktype] = + cut_3b_list[itype][ktype] = std::max(cut_3b_list[itype][ktype], cut3b_rik); //MPI_Bcast cut_3b[itype][jtype][ktype] = cut3b_rij; //MPI_Bcast @@ -569,7 +569,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_knots_array_size[map_3b[itype][jtype][ktype]][0] = num_knots_3b_jk; //MPI_Bcast n3b_knots_array_size[map_3b[itype][jtype][ktype]][1] = num_knots_3b_ik; n3b_knots_array_size[map_3b[itype][jtype][ktype]][2] = num_knots_3b_ij; - + n3b_knots_array_size[map_3b[itype][ktype][jtype]][0] = num_knots_3b_jk; //MPI_Bcast n3b_knots_array_size[map_3b[itype][ktype][jtype]][1] = num_knots_3b_ij; n3b_knots_array_size[map_3b[itype][ktype][jtype]][2] = num_knots_3b_ik; @@ -577,7 +577,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_jk); max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ik); max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ij); //MPI_Bcast - + //skip next 3 line txtfilereader.skip_line(); line_counter++; @@ -597,7 +597,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "SHAPE_OF_COEFF_MATRIX[I][J][K] " "found {} numbers", fp7th_line.count()); - + int coeff_matrix_dim1 = fp7th_line.next_int(); int coeff_matrix_dim2 = fp7th_line.next_int(); int coeff_matrix_dim3 = fp7th_line.next_int(); @@ -609,7 +609,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_coeff_array_size[map_3b[itype][ktype][jtype]][0] = coeff_matrix_dim2; n3b_coeff_array_size[map_3b[itype][ktype][jtype]][1] = coeff_matrix_dim1; n3b_coeff_array_size[map_3b[itype][ktype][jtype]][2] = coeff_matrix_dim3; - + max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim1); max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim2); max_num_coeff_3b = std::max(max_num_coeff_3b,coeff_matrix_dim3); @@ -656,14 +656,14 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (max_num_knots_3b > 0) memory->create(n3b_knots_array, tot_interaction_count_3b, 3, max_num_knots_3b, "pair:n3b_knots_array"); - + else error->all(FLERR, "UF3: Error reading the size of 3B knot vector\n" "Possibly no 3B UF3 potential block detected in {} file", potf_name); - - if (max_num_coeff_3b > 0) + + if (max_num_coeff_3b > 0) memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); else @@ -673,7 +673,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) potf_name); } - //Go back to the begning of the file + //Go back to the begning of the file txtfilereader.rewind(); //Go through the file again and fill knot and coeff arrays @@ -720,7 +720,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //skip the next two tokens fp2nd_line.skip(2); - + //uk or nk? std::string knot_type = fp2nd_line.next_string(); if (knot_type == "uk") { @@ -738,7 +738,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if ((itype != 0) && (jtype != 0)) { //skip line containing info of cutoff and knot vect size txtfilereader.skip_line(); - + int num_knots_2b = n2b_knots_array_size[itype][jtype]; temp_line = txtfilereader.next_line(num_knots_2b); @@ -748,7 +748,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Error readig the 2B potential block for {}-{}\n" "Expecter {} numbers on 4th line of the block but found {} " "numbers", num_knots_2b,fp4th_line.count()); - + for (int k = 0; k < num_knots_2b; k++) { n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); //MPI_Bcast n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; @@ -810,7 +810,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) break; } } - + //skip the next two tokens fp2nd_line.skip(2); @@ -828,10 +828,10 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "Found {} on the 2nd line of {}-{}-{} interaction block", knot_type, element1, element2, element3); - if ((itype != 0) && (jtype != 0) && (ktype!=0)) { + if ((itype != 0) && (jtype != 0) && (ktype!=0)) { //skip line containing info of cutoffs and knot vector sizes txtfilereader.skip_line(); - + int num_knots_3b_jk = n3b_knots_array_size[map_3b[itype][jtype][ktype]][0]; int num_knots_3b_ik = n3b_knots_array_size[map_3b[itype][jtype][ktype]][1]; int num_knots_3b_ij = n3b_knots_array_size[map_3b[itype][jtype][ktype]][2]; @@ -904,21 +904,21 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) int coeff_matrix_dim2 = n3b_coeff_array_size[map_3b[itype][jtype][ktype]][1]; int coeff_matrix_dim3 = n3b_coeff_array_size[map_3b[itype][jtype][ktype]][2]; - if (num_knots_3b_jk != coeff_matrix_dim3 + 3 + 1) + if (num_knots_3b_jk != coeff_matrix_dim3 + 3 + 1) error->all(FLERR, "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_JK) and coeff (coeff_matrix_dim3) data " "nknots!=ncoeffs + 3 + 1", element1, element2, element3); - if (num_knots_3b_ik != coeff_matrix_dim2 + 3 + 1) + if (num_knots_3b_ik != coeff_matrix_dim2 + 3 + 1) error->all(FLERR, "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_IK) and coeff (coeff_matrix_dim2) data " "nknots!=ncoeffs + 3 + 1", element1, element2, element3); - - if (num_knots_3b_ij != coeff_matrix_dim1 + 3 + 1) + + if (num_knots_3b_ij != coeff_matrix_dim1 + 3 + 1) error->all(FLERR, "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_IJ) and coeff (coeff_matrix_dim1) data " @@ -994,11 +994,11 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) knot_spacing_type_2b[i][j] = knot_spacing_type_2b[i_mapped_to][j_mapped_to]; for (int knot_no = 0; knot_no < max_num_knots_2b; knot_no++) - n2b_knots_array[i][j][knot_no] = + n2b_knots_array[i][j][knot_no] = n2b_knots_array[i_mapped_to][j_mapped_to][knot_no]; for (int coeff_no = 0; coeff_no < max_num_coeff_2b; coeff_no++) - n2b_coeff_array[i][j][coeff_no] = + n2b_coeff_array[i][j][coeff_no] = n2b_coeff_array[i_mapped_to][j_mapped_to][coeff_no]; setflag[i][j] = 1; @@ -1013,7 +1013,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) for (int k = 1; k < num_of_elements + 1; k++) { if (setflag_3b[i][j][k] != 1) { //i-j-k interaction not set - + //maybe i-j-k is mapped to some other atom type interaction? int i_mapped_to = map[i]+1; //+1 as map starts from 0 int j_mapped_to = map[j]+1; //+1 as map starts from 0 @@ -1032,7 +1032,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "{} file", i, j, k, i_mapped_to, j_mapped_to, k_mapped_to, i_mapped_to, j_mapped_to, k_mapped_to, potf_name); - + cut_3b_list[i][j] = std::max(cut_3b_list[i_mapped_to][j_mapped_to], cut_3b_list[i][j]); @@ -1054,15 +1054,15 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_coeff_array_size[key][1] = n3b_coeff_array_size[mapped_to_key][1]; n3b_coeff_array_size[key][2] = n3b_coeff_array_size[mapped_to_key][2]; - min_cut_3b[i][j][k][0] = + min_cut_3b[i][j][k][0] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0];//n3b_knots_array[key][0][0]; - - min_cut_3b[i][j][k][1] = + + min_cut_3b[i][j][k][1] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1];//n3b_knots_array[key][1][0]; - - min_cut_3b[i][j][k][2] = + + min_cut_3b[i][j][k][2] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2];//n3b_knots_array[key][2][0]; - + for (int knot_no = 0; knot_no < n3b_knots_array_size[key][0]; knot_no++) n3b_knots_array[key][0][knot_no] = n3b_knots_array[mapped_to_key][0][knot_no]; @@ -1075,7 +1075,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) for (int coeff1 = 0; coeff1 < n3b_coeff_array_size[key][0]; coeff1++) for (int coeff2 = 0; coeff2 < n3b_coeff_array_size[key][1]; coeff2++) for (int coeff3 = 0; coeff3 < n3b_coeff_array_size[key][2]; coeff3++) - n3b_coeff_array[key][coeff1][coeff2][coeff3] = + n3b_coeff_array[key][coeff1][coeff2][coeff3] = n3b_coeff_array[mapped_to_key][coeff1][coeff2][coeff3]; setflag_3b[i][j][k] = 1; } @@ -2058,7 +2058,7 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_knots_array_size bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_coeff_array_size - + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_knots_2b * sizeof(double); //n2b_knots_array diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 4c70ab7efe..3bb0fe0381 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -75,7 +75,7 @@ class PairUF3 : public Pair { /*void uf3_read_2b_pot_block(int itype, int jtype, std::string iele, std::string jele, TextFileReader &txtfilereader); - + void uf3_read_3b_pot_block(int itype, int jtype, int ktype, std::string iele, std::string jele, std::string kele, diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp index 1e8e2eeffa..92068d117d 100644 --- a/src/ML-UF3/uf3_pair_bspline.cpp +++ b/src/ML-UF3/uf3_pair_bspline.cpp @@ -87,7 +87,7 @@ uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, const int uknot_spacing_type) { lmp = ulmp; - + knot_vect = std::vector (uknot_array, uknot_array + uknot_array_size); coeff_vect = std::vector (ucoeff_array, ucoeff_array + ucoeff_array_size); diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h index e471f02ac4..3f4fe696ef 100644 --- a/src/ML-UF3/uf3_pair_bspline.h +++ b/src/ML-UF3/uf3_pair_bspline.h @@ -41,7 +41,7 @@ class uf3_pair_bspline { uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, const std::vector &ucoeff_vect, const int &uknot_spacing_type); - + uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, const int uknot_array_size, const double* ucoeff_array, diff --git a/src/ML-UF3/uf3_triplet_bspline.h b/src/ML-UF3/uf3_triplet_bspline.h index e627a61f9e..11fb575570 100644 --- a/src/ML-UF3/uf3_triplet_bspline.h +++ b/src/ML-UF3/uf3_triplet_bspline.h @@ -47,7 +47,7 @@ class uf3_triplet_bspline { uf3_triplet_bspline(LAMMPS *ulmp, const std::vector> &uknot_matrix, const std::vector>> &ucoeff_matrix, const int &uknot_spacing_type); - + uf3_triplet_bspline(LAMMPS *ulmp, double **uknot_array, const int *uknot_array_size, double ***ucoeff_array, const int *ucoeff_array_size, const int &uknot_spacing_type); From b3e03d5188ded4751d6ae0c58c6e1de90ef21e51 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Wed, 17 Apr 2024 18:56:28 -0400 Subject: [PATCH 065/313] refactor expand_types to return int --- src/MC/fix_mol_swap.cpp | 8 ++------ src/create_atoms.cpp | 8 ++------ src/fix_deposit.cpp | 4 +--- src/utils.cpp | 14 ++++++++++++++ src/utils.h | 6 ++++++ 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/MC/fix_mol_swap.cpp b/src/MC/fix_mol_swap.cpp index 666d1dd36b..de408df204 100644 --- a/src/MC/fix_mol_swap.cpp +++ b/src/MC/fix_mol_swap.cpp @@ -58,12 +58,8 @@ FixMolSwap::FixMolSwap(LAMMPS *lmp, int narg, char **arg) : nevery = utils::inumeric(FLERR, arg[3], false, lmp); ncycles = utils::inumeric(FLERR, arg[4], false, lmp); - char *typestr = utils::expand_type(FLERR, arg[5], Atom::ATOM, lmp); - itype = utils::inumeric(FLERR, typestr?typestr:arg[5], false, lmp); - delete[] typestr; - typestr = utils::expand_type(FLERR, arg[6], Atom::ATOM, lmp); - jtype = utils::inumeric(FLERR, typestr?typestr:arg[6], false, lmp); - delete[] typestr; + itype = utils::expand_type_int(FLERR, arg[5], Atom::ATOM, lmp); + jtype = utils::expand_type_int(FLERR, arg[6], Atom::ATOM, lmp); seed = utils::inumeric(FLERR,arg[7],false,lmp); double temperature = utils::numeric(FLERR,arg[8],false,lmp); diff --git a/src/create_atoms.cpp b/src/create_atoms.cpp index ec9d8078a2..be649dae2a 100644 --- a/src/create_atoms.cpp +++ b/src/create_atoms.cpp @@ -89,9 +89,7 @@ void CreateAtoms::command(int narg, char **arg) // parse arguments if (narg < 2) utils::missing_cmd_args(FLERR, "create_atoms", error); - char *typestr = utils::expand_type(FLERR, arg[0], Atom::ATOM, lmp); - ntype = utils::inumeric(FLERR, typestr?typestr:arg[0], false, lmp); - delete[] typestr; + ntype = utils::expand_type_int(FLERR, arg[0], Atom::ATOM, lmp); const char *meshfile; int iarg; @@ -165,9 +163,7 @@ void CreateAtoms::command(int narg, char **arg) if (strcmp(arg[iarg], "basis") == 0) { if (iarg + 3 > narg) utils::missing_cmd_args(FLERR, "create_atoms basis", error); int ibasis = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); - char *typestr = utils::expand_type(FLERR, arg[iarg + 2], Atom::ATOM, lmp); - int itype = utils::inumeric(FLERR, typestr?typestr:arg[iarg + 2], false, lmp); - delete[] typestr; + int itype = utils::expand_type_int(FLERR, arg[iarg + 2], Atom::ATOM, lmp); if (ibasis <= 0 || ibasis > nbasis || itype <= 0 || itype > atom->ntypes) error->all(FLERR, "Out of range basis setting '{} {}' in create_atoms command", ibasis, itype); diff --git a/src/fix_deposit.cpp b/src/fix_deposit.cpp index 97e76c6ccc..300a30d832 100644 --- a/src/fix_deposit.cpp +++ b/src/fix_deposit.cpp @@ -60,9 +60,7 @@ FixDeposit::FixDeposit(LAMMPS *lmp, int narg, char **arg) : // required args ninsert = utils::inumeric(FLERR, arg[3], false, lmp); - char *typestr = utils::expand_type(FLERR, arg[4], Atom::ATOM, lmp); - ntype = utils::inumeric(FLERR, typestr?typestr:arg[4], false, lmp); - delete[] typestr; + ntype = utils::expand_type_int(FLERR, arg[4], Atom::ATOM, lmp); nfreq = utils::inumeric(FLERR, arg[5], false, lmp); seed = utils::inumeric(FLERR, arg[6], false, lmp); diff --git a/src/utils.cpp b/src/utils.cpp index 8aa33e14e6..b604f730a0 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -915,6 +915,20 @@ char *utils::expand_type(const char *file, int line, const std::string &str, int return nullptr; } +/* ------------------------------------------------------------------------- + Expand type string to integer-valued numeric type from labelmap. + Not guaranteed to return a valid type. + For example, type <= 0 or type > Ntypes is checked in calling routine. +------------------------------------------------------------------------- */ + +int utils::expand_type_int(const char *file, int line, const std::string &str, int mode, LAMMPS *lmp) +{ + char *typestr = expand_type(file, line, str, mode, lmp); + int out = inumeric(FLERR, typestr?typestr:str, false, lmp); + delete[] typestr; + return out; +} + /* ---------------------------------------------------------------------- Check grid reference for valid Compute or Fix which produces per-grid data errstr = name of calling command used if error is generated diff --git a/src/utils.h b/src/utils.h index 335016831d..383927ad34 100644 --- a/src/utils.h +++ b/src/utils.h @@ -379,6 +379,12 @@ namespace utils { char *expand_type(const char *file, int line, const std::string &str, int mode, LAMMPS *lmp); + /*! Expand type label string into its equivalent integer-valued numeric type + * + * This function has the same arguments as expand_type() but returns an integer value */ + + int expand_type_int(const char *file, int line, const std::string &str, int mode, LAMMPS *lmp); + /*! Check grid reference for valid Compute or Fix which produces per-grid data * * This function checks if a command argument in the input script From eec037ac5e65760bd8e435ba5c8383f2a169f0a4 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 18 Apr 2024 13:41:51 -0400 Subject: [PATCH 066/313] make use of refactored expand_type elsewhere --- src/set.cpp | 50 ++++++++++++++++---------------------------------- 1 file changed, 16 insertions(+), 34 deletions(-) diff --git a/src/set.cpp b/src/set.cpp index cee769a573..ab9b879849 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -90,22 +90,16 @@ void Set::command(int narg, char **arg) if (strcmp(arg[iarg],"type") == 0) { if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set type", error); - if (utils::strmatch(arg[iarg+1],"^v_")) varparse(arg[iarg+1],1); - else { - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::ATOM,lmp); - ivalue = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; - } + if (utils::strmatch(arg[iarg+1],"^v_")) varparse(arg[iarg+1], 1); + else ivalue = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ATOM, lmp); set(TYPE); iarg += 2; } else if (strcmp(arg[iarg],"type/fraction") == 0) { if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "set type/fraction", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::ATOM,lmp); - newtype = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; - fraction = utils::numeric(FLERR,arg[iarg+2],false,lmp); - ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + newtype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ATOM, lmp); + fraction = utils::numeric(FLERR, arg[iarg+2], false, lmp); + ivalue = utils::inumeric(FLERR, arg[iarg+3], false, lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid type value {} in set type/fraction command", newtype); if (fraction < 0.0 || fraction > 1.0) @@ -117,11 +111,9 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"type/ratio") == 0) { if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "set type/ratio", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::ATOM,lmp); - newtype = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; - fraction = utils::numeric(FLERR,arg[iarg+2],false,lmp); - ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + newtype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ATOM, lmp); + fraction = utils::numeric(FLERR, arg[iarg+2], false, lmp); + ivalue = utils::inumeric(FLERR, arg[iarg+3], false, lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid type value {} in set type/ratio command", newtype); if (fraction < 0.0 || fraction > 1.0) @@ -133,11 +125,9 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"type/subset") == 0) { if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "set type/subset", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::ATOM,lmp); - newtype = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; - nsubset = utils::bnumeric(FLERR,arg[iarg+2],false,lmp); - ivalue = utils::inumeric(FLERR,arg[iarg+3],false,lmp); + newtype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ATOM, lmp); + nsubset = utils::bnumeric(FLERR, arg[iarg+2], false, lmp); + ivalue = utils::inumeric(FLERR, arg[iarg+3], false, lmp); if (newtype <= 0 || newtype > atom->ntypes) error->all(FLERR,"Invalid type value {} in set type/subset command", newtype); if (nsubset < 0) @@ -485,9 +475,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"bond") == 0) { if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set bond", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::BOND,lmp); - ivalue = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; + ivalue = utils::expand_type_int(FLERR, arg[iarg+1], Atom::BOND, lmp); if (atom->avec->bonds_allow == 0) error->all(FLERR,"Cannot set attribute {} for atom style {}", arg[iarg], atom->get_style()); if (ivalue <= 0 || ivalue > atom->nbondtypes) @@ -497,9 +485,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"angle") == 0) { if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set angle", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::ANGLE,lmp); - ivalue = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; + ivalue = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ANGLE, lmp); if (atom->avec->angles_allow == 0) error->all(FLERR,"Cannot set attribute {} for atom style {}", arg[iarg], atom->get_style()); if (ivalue <= 0 || ivalue > atom->nangletypes) @@ -509,9 +495,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"dihedral") == 0) { if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set dihedral", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::DIHEDRAL,lmp); - ivalue = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; + ivalue = utils::expand_type_int(FLERR, arg[iarg+1], Atom::DIHEDRAL, lmp); if (atom->avec->dihedrals_allow == 0) error->all(FLERR,"Cannot set attribute {} for atom style {}", arg[iarg], atom->get_style()); if (ivalue <= 0 || ivalue > atom->ndihedraltypes) @@ -521,9 +505,7 @@ void Set::command(int narg, char **arg) } else if (strcmp(arg[iarg],"improper") == 0) { if (iarg+2 > narg) utils::missing_cmd_args(FLERR, "set improper", error); - char *typestr = utils::expand_type(FLERR,arg[iarg+1],Atom::IMPROPER,lmp); - ivalue = utils::inumeric(FLERR,typestr?typestr:arg[iarg+1],false,lmp); - delete[] typestr; + ivalue = utils::expand_type_int(FLERR, arg[iarg+1], Atom::IMPROPER, lmp); if (atom->avec->impropers_allow == 0) error->all(FLERR,"Cannot set attribute {} for atom style {}", arg[iarg], atom->get_style()); if (ivalue <= 0 || ivalue > atom->nimpropertypes) @@ -758,7 +740,7 @@ void Set::selection(int n) else select[i] = 0; } else if (style == TYPE_SELECT) { - if (char *typestr = utils::expand_type(FLERR,id,Atom::ATOM,lmp)) { + if (char *typestr = utils::expand_type(FLERR, id, Atom::ATOM, lmp)) { // is this mem leak? delete[] id; id = typestr; } From 1815a00fd05f980d3033b53b5ef58b40447acd0b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 18 Apr 2024 14:12:23 -0400 Subject: [PATCH 067/313] cleanup --- src/set.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/set.cpp b/src/set.cpp index ab9b879849..5f06f18a42 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -740,7 +740,7 @@ void Set::selection(int n) else select[i] = 0; } else if (style == TYPE_SELECT) { - if (char *typestr = utils::expand_type(FLERR, id, Atom::ATOM, lmp)) { // is this mem leak? + if (char *typestr = utils::expand_type(FLERR, id, Atom::ATOM, lmp)) { delete[] id; id = typestr; } From 267e75133aea949656400694b36df9d8232197e0 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 18 Apr 2024 14:30:27 -0400 Subject: [PATCH 068/313] generalize passthrough args --- src/utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils.cpp b/src/utils.cpp index b604f730a0..55b029fc0d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -924,7 +924,7 @@ char *utils::expand_type(const char *file, int line, const std::string &str, int int utils::expand_type_int(const char *file, int line, const std::string &str, int mode, LAMMPS *lmp) { char *typestr = expand_type(file, line, str, mode, lmp); - int out = inumeric(FLERR, typestr?typestr:str, false, lmp); + int out = inumeric(file, line, typestr?typestr:str, false, lmp); delete[] typestr; return out; } From cf6522eebb834a003a9c7f68642b9bf78a417ba4 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 18 Apr 2024 14:32:23 -0400 Subject: [PATCH 069/313] type label support for atom/swap --- doc/src/fix_atom_swap.rst | 2 +- src/MC/fix_atom_swap.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/fix_atom_swap.rst b/doc/src/fix_atom_swap.rst index aa8127561c..8810ae9cf9 100644 --- a/doc/src/fix_atom_swap.rst +++ b/doc/src/fix_atom_swap.rst @@ -21,7 +21,7 @@ Syntax .. parsed-literal:: - *types* values = two or more atom types + *types* values = two or more atom types (1-Ntypes or type label) *mu* values = chemical potential of swap types (energy units) *ke* value = *no* or *yes* *no* = no conservation of kinetic energy after atom swaps diff --git a/src/MC/fix_atom_swap.cpp b/src/MC/fix_atom_swap.cpp index 6fe0ac98b7..8807de18ad 100644 --- a/src/MC/fix_atom_swap.cpp +++ b/src/MC/fix_atom_swap.cpp @@ -171,7 +171,7 @@ void FixAtomSwap::options(int narg, char **arg) while (iarg < narg) { if (isalpha(arg[iarg][0])) break; if (nswaptypes >= atom->ntypes) error->all(FLERR, "Illegal fix atom/swap command"); - type_list[nswaptypes] = utils::numeric(FLERR, arg[iarg], false, lmp); + type_list[nswaptypes] = utils::expand_type_int(FLERR, arg[iarg], Atom::ATOM, lmp); nswaptypes++; iarg++; } From 44ec2097960ec69c4062c36706d65d05354622d2 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Mon, 22 Apr 2024 00:29:23 -0400 Subject: [PATCH 070/313] direct type label for group --- doc/src/group.rst | 13 ++++++++----- src/group.cpp | 48 ++++++++++++++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/doc/src/group.rst b/doc/src/group.rst index fb1e0fb157..41510589a3 100644 --- a/doc/src/group.rst +++ b/doc/src/group.rst @@ -20,13 +20,13 @@ Syntax *empty* = no args *region* args = region-ID *type* or *id* or *molecule* - args = list of one or more atom types, atom IDs, or molecule IDs - any entry in list can be a sequence formatted as A:B or A:B:C where + args = list of one or more atom types (1-Ntypes or type label), atom IDs, or molecule IDs + any numeric entry in list can be a sequence formatted as A:B or A:B:C where A = starting index, B = ending index, C = increment between indices, 1 if not specified args = logical value logical = "<" or "<=" or ">" or ">=" or "==" or "!=" - value = an atom type or atom ID or molecule ID (depending on *style*\ ) + value = an atom type (1-Ntypes or type label) or atom ID or molecule ID (depending on *style*\ ) args = logical value1 value2 logical = "<>" value1,value2 = atom types or atom IDs or molecule IDs (depending on *style*\ ) @@ -52,6 +52,8 @@ Examples group edge region regstrip group water type 3 4 + group water type OW HT + group sub type != C H O N group sub id 10 25 50 group sub id 10 25 50 500:1000 group sub id 100:10000:10 @@ -119,7 +121,7 @@ three styles can use arguments specified in one of two formats. The first format is a list of values (types or IDs). For example, the second command in the examples above puts all atoms of type 3 or 4 into -the group named *water*\ . Each entry in the list can be a +the group named *water*\ . Each numeric entry in the list can be a colon-separated sequence ``A:B`` or ``A:B:C``, as in two of the examples above. A "sequence" generates a sequence of values (types or IDs), with an optional increment. The first example with ``500:1000`` has the @@ -135,7 +137,8 @@ except ``<>`` take a single argument. The third example above adds all atoms with IDs from 1 to 150 to the group named *sub*\ . The logical ``<>`` means "between" and takes 2 arguments. The fourth example above adds all atoms belonging to molecules with IDs from 50 to 250 (inclusive) to -the group named polyA. +the group named polyA. For the *type* style, type labels are converted into +numeric types before being evaluated. The *variable* style evaluates a variable to determine which atoms to add to the group. It must be an :doc:`atom-style variable ` diff --git a/src/group.cpp b/src/group.cpp index a586c33ed9..baf9f377ff 100644 --- a/src/group.cpp +++ b/src/group.cpp @@ -229,12 +229,16 @@ void Group::assign(int narg, char **arg) else error->all(FLERR,"Illegal group command"); tagint bound1,bound2; - bound1 = utils::tnumeric(FLERR,arg[3],false,lmp); + if (category == TYPE) + bound1 = (tagint) utils::expand_type_int(FLERR, arg[3], Atom::ATOM, lmp); + else bound1 = utils::tnumeric(FLERR, arg[3], false, lmp); bound2 = -1; if (condition == BETWEEN) { if (narg != 5) error->all(FLERR,"Illegal group command"); - bound2 = utils::tnumeric(FLERR,arg[4],false,lmp); + if (category == TYPE) + bound2 = (tagint) utils::expand_type_int(FLERR, arg[4], Atom::ATOM, lmp); + else bound2 = utils::tnumeric(FLERR, arg[4], false, lmp); } else if (narg != 4) error->all(FLERR,"Illegal group command"); int *attribute = nullptr; @@ -304,26 +308,34 @@ void Group::assign(int narg, char **arg) else if (category == MOLECULE) tattribute = atom->molecule; else if (category == ID) tattribute = atom->tag; + char *typestr = nullptr; tagint start,stop,delta; for (int iarg = 2; iarg < narg; iarg++) { delta = 1; - try { - ValueTokenizer values(arg[iarg],":"); - start = values.next_tagint(); - if (utils::strmatch(arg[iarg],"^-?\\d+$")) { - stop = start; - } else if (utils::strmatch(arg[iarg],"^-?\\d+:-?\\d+$")) { - stop = values.next_tagint(); - } else if (utils::strmatch(arg[iarg],"^-?\\d+:-?\\d+:\\d+$")) { - stop = values.next_tagint(); - delta = values.next_tagint(); - } else throw TokenizerException("Syntax error",""); - } catch (TokenizerException &e) { - error->all(FLERR,"Incorrect range string '{}': {}",arg[iarg],e.what()); + if (category == TYPE) { + delete[] typestr; + typestr = utils::expand_type(FLERR, arg[iarg], Atom::ATOM, lmp); + if (typestr) stop = start = utils::tnumeric(FLERR, typestr, false, lmp); + } + if (typestr == nullptr) { + try { + ValueTokenizer values(arg[iarg],":"); + start = values.next_tagint(); + if (utils::strmatch(arg[iarg],"^-?\\d+$")) { + stop = start; + } else if (utils::strmatch(arg[iarg],"^-?\\d+:-?\\d+$")) { + stop = values.next_tagint(); + } else if (utils::strmatch(arg[iarg],"^-?\\d+:-?\\d+:\\d+$")) { + stop = values.next_tagint(); + delta = values.next_tagint(); + } else throw TokenizerException("Syntax error",""); + } catch (TokenizerException &e) { + error->all(FLERR,"Incorrect range string '{}': {}",arg[iarg],e.what()); + } + if (delta < 1) + error->all(FLERR,"Illegal range increment value"); } - if (delta < 1) - error->all(FLERR,"Illegal range increment value"); // add to group if attribute matches value or sequence @@ -337,6 +349,8 @@ void Group::assign(int narg, char **arg) (tattribute[i]-start) % delta == 0) mask[i] |= bit; } } + + delete[] typestr; } // style = variable From 21eeb231ae41e502e9328fbf95a0a4ea8d460aac Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Mon, 22 Apr 2024 15:27:53 -0400 Subject: [PATCH 071/313] remove bogus example --- doc/src/group.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/src/group.rst b/doc/src/group.rst index 41510589a3..15ab0c9dc8 100644 --- a/doc/src/group.rst +++ b/doc/src/group.rst @@ -53,7 +53,6 @@ Examples group edge region regstrip group water type 3 4 group water type OW HT - group sub type != C H O N group sub id 10 25 50 group sub id 10 25 50 500:1000 group sub id 100:10000:10 From b227663b3bfecc251fd472d51346605f7f0dee7b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 23 Apr 2024 10:13:50 -0400 Subject: [PATCH 072/313] restore numerical examples (duplicated in type label versions) --- doc/src/create_atoms.rst | 1 + doc/src/fix_deposit.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/src/create_atoms.rst b/doc/src/create_atoms.rst index 8aedf62d82..1faef4f62a 100644 --- a/doc/src/create_atoms.rst +++ b/doc/src/create_atoms.rst @@ -81,6 +81,7 @@ Examples labelmap atom 1 C 2 Si create_atoms C region regsphere basis Si C + create_atoms 3 region regsphere basis 2 3 create_atoms 3 region regsphere basis 2 3 ratio 0.5 74637 create_atoms 3 single 0 0 5 create_atoms 1 box var v set x xpos set y ypos diff --git a/doc/src/fix_deposit.rst b/doc/src/fix_deposit.rst index 02cb5caff8..8f88717a00 100644 --- a/doc/src/fix_deposit.rst +++ b/doc/src/fix_deposit.rst @@ -73,6 +73,7 @@ Examples fix 3 all deposit 1000 2 100 29494 region myblock local 1.0 1.0 1.0 units box fix 2 newatoms deposit 10000 1 500 12345 region disk near 2.0 vz -1.0 -0.8 + fix 4 sputter deposit 1000 2 500 12235 region sphere vz -1.0 -1.0 target 5.0 5.0 0.0 units lattice fix 5 insert deposit 200 2 100 777 region disk gaussian 5.0 5.0 9.0 1.0 units box labelmap atom 1 Au From 6e45a71de3cb26b6232ffcea00368e47df410d66 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 23 Apr 2024 10:16:46 -0400 Subject: [PATCH 073/313] restore numerical types example (duplicated with type labels) --- doc/src/fix_mol_swap.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/fix_mol_swap.rst b/doc/src/fix_mol_swap.rst index 127c0876ff..6f1263be42 100644 --- a/doc/src/fix_mol_swap.rst +++ b/doc/src/fix_mol_swap.rst @@ -32,6 +32,7 @@ Examples .. code-block:: LAMMPS fix 2 all mol/swap 100 1 2 3 29494 300.0 ke no + fix mySwap fluid mol/swap 500 10 1 2 482798 1.0 labelmap atom 1 A 2 B fix mySwap fluid mol/swap 500 10 A B 482798 1.0 From bfd5e6bbc5ab4a1b559f6d3aa22e46c4ec66339d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Apr 2024 01:55:13 -0400 Subject: [PATCH 074/313] make pip install packages in virtual environment --- .github/workflows/unittest-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/unittest-macos.yml b/.github/workflows/unittest-macos.yml index f9c2a838d6..0a9d31bd84 100644 --- a/.github/workflows/unittest-macos.yml +++ b/.github/workflows/unittest-macos.yml @@ -43,6 +43,8 @@ jobs: working-directory: build run: | ccache -z + python3 -m venv macosenv + source macosenv/bin/activate python3 -m pip install numpy python3 -m pip install pyyaml cmake -C ../cmake/presets/clang.cmake \ From e881bb307c9ea25acc7d473b60425d95d4fffd0a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 24 Apr 2024 02:45:36 -0400 Subject: [PATCH 075/313] downgrade macOS to version 13 --- .github/workflows/unittest-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unittest-macos.yml b/.github/workflows/unittest-macos.yml index 0a9d31bd84..b0bc4b2727 100644 --- a/.github/workflows/unittest-macos.yml +++ b/.github/workflows/unittest-macos.yml @@ -15,7 +15,7 @@ jobs: build: name: MacOS Unit Test if: ${{ github.repository == 'lammps/lammps' }} - runs-on: macos-latest + runs-on: macos-13 env: CCACHE_DIR: ${{ github.workspace }}/.ccache From dbca2b087dacc572c52f1e2ec48c40d763da362e Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 14:27:11 -0400 Subject: [PATCH 076/313] Made 'constants' variable public --- src/ML-UF3/uf3_bspline_basis2.h | 3 ++- src/ML-UF3/uf3_bspline_basis3.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ML-UF3/uf3_bspline_basis2.h b/src/ML-UF3/uf3_bspline_basis2.h index 423a366fe0..90c6166f8c 100644 --- a/src/ML-UF3/uf3_bspline_basis2.h +++ b/src/ML-UF3/uf3_bspline_basis2.h @@ -23,11 +23,12 @@ namespace LAMMPS_NS { class uf3_bspline_basis2 { private: LAMMPS *lmp; - std::vector constants; + //std::vector constants; public: uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double coefficient); ~uf3_bspline_basis2(); + std::vector constants; double eval0(double, double); double eval1(double, double); double eval2(double, double); diff --git a/src/ML-UF3/uf3_bspline_basis3.h b/src/ML-UF3/uf3_bspline_basis3.h index 676c8da453..099a2302c7 100644 --- a/src/ML-UF3/uf3_bspline_basis3.h +++ b/src/ML-UF3/uf3_bspline_basis3.h @@ -24,11 +24,12 @@ namespace LAMMPS_NS { class uf3_bspline_basis3 { private: LAMMPS *lmp; - std::vector constants; + //std::vector constants; public: uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double coefficient); ~uf3_bspline_basis3(); + std::vector constants; double eval0(double, double, double); double eval1(double, double, double); double eval2(double, double, double); From 9915f86f6320f2eb5e8518b71b28239e2cb07427 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 14:35:45 -0400 Subject: [PATCH 077/313] Removed UFBS2b and UFBS3b std::vector objects. These objects held the bspline basis set object (uf3_pair_bspline and uf3_triplet_bspline) for 2- and 3-body interaction at UFBS2b[itype][jtype] and UFBS3b[itype][jtype][ktype]. These std:vectors were removed. New arrays (cached_constants_2b, cached_constants_2b_deri, cached_constants_3b, cached_constants_3b_deri) were added that holds the cached coefficients of the bspline basis set. The UF3Impl PIMPLE was also removed as it is not longer needed. The memory_usage function needs to updated --- src/ML-UF3/pair_uf3.cpp | 722 +++++++++++++++++++++++++++++++++++++--- src/ML-UF3/pair_uf3.h | 17 +- 2 files changed, 691 insertions(+), 48 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 6252f30d40..125899ec61 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -20,8 +20,8 @@ #include "pair_uf3.h" -#include "uf3_pair_bspline.h" -#include "uf3_triplet_bspline.h" +#include "uf3_bspline_basis2.h" +#include "uf3_bspline_basis3.h" #include "atom.h" #include "comm.h" @@ -37,7 +37,7 @@ #include namespace LAMMPS_NS{ - struct UF3Impl { + /*struct UF3Impl { //std::vector>> n2b_knot, n2b_coeff; //std::vector>>>> n3b_knot_matrix; @@ -45,7 +45,7 @@ namespace LAMMPS_NS{ std::vector> UFBS2b; std::vector>> UFBS3b; - }; + };*/ } using namespace LAMMPS_NS; @@ -55,9 +55,10 @@ using MathConst::THIRD; PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), - cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr) + cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr), + knot_spacing_2b(nullptr), knot_spacing_3b(nullptr) { - uf3_impl = new UF3Impl; + //uf3_impl = new UF3Impl; single_enable = 1; // 1 if single() routine exists one_coeff = 1; // 1 if allows only one coeff * * call restartinfo = 0; // 1 if pair style writes restart info @@ -71,12 +72,19 @@ PairUF3::PairUF3(LAMMPS *lmp) : n2b_coeff_array = nullptr; n2b_knots_array_size = nullptr; n2b_coeff_array_size = nullptr; + cached_constants_2b = nullptr; + cached_constants_2b_deri = nullptr; map_3b = nullptr; n3b_knots_array = nullptr; n3b_coeff_array = nullptr; n3b_knots_array_size = nullptr; n3b_coeff_array_size = nullptr; + coeff_for_der_jk = nullptr; + coeff_for_der_ik = nullptr; + coeff_for_der_ij = nullptr; + cached_constants_3b = nullptr; + cached_constants_3b_deri = nullptr; } /* ---------------------------------------------------------------------- */ @@ -89,10 +97,13 @@ PairUF3::~PairUF3() memory->destroy(cutsq); memory->destroy(cut); memory->destroy(knot_spacing_type_2b); + memory->destroy(knot_spacing_2b); memory->destroy(n2b_knots_array_size); memory->destroy(n2b_coeff_array_size); memory->destroy(n2b_knots_array); memory->destroy(n2b_coeff_array); + memory->destroy(cached_constants_2b); + memory->destroy(cached_constants_2b_deri); if (pot_3b) { memory->destroy(setflag_3b); @@ -101,14 +112,20 @@ PairUF3::~PairUF3() memory->destroy(min_cut_3b); memory->destroy(neighshort); memory->destroy(knot_spacing_type_3b); + memory->destroy(knot_spacing_3b); memory->destroy(map_3b); memory->destroy(n3b_knots_array_size); memory->destroy(n3b_coeff_array_size); memory->destroy(n3b_knots_array); memory->destroy(n3b_coeff_array); + memory->destroy(coeff_for_der_jk); + memory->destroy(coeff_for_der_ik); + memory->destroy(coeff_for_der_ij); + memory->destroy(cached_constants_3b); + memory->destroy(cached_constants_3b_deri); } } - delete uf3_impl; + //delete uf3_impl; } /* ---------------------------------------------------------------------- @@ -233,6 +250,9 @@ void PairUF3::communicate() MPI_Bcast(&knot_spacing_type_2b[0][0], (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&knot_spacing_2b[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); MPI_Bcast(&n2b_knots_array[0][0][0], (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); @@ -246,6 +266,10 @@ void PairUF3::communicate() MPI_Bcast(&knot_spacing_type_3b[0][0][0], (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&knot_spacing_3b[0][0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, + MPI_INT, 0, world); MPI_Bcast(&n3b_knots_array[0][0][0], tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); MPI_Bcast(&n3b_coeff_array[0][0][0][0], @@ -280,6 +304,8 @@ void PairUF3::allocate() //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) //1 = non-uniform knot spacing memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, + "pair:knot_spacing_type_2b"); + memory->create(knot_spacing_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_2b"); //Contains size of 2b knots vectors and 2b coeff matrices @@ -291,12 +317,12 @@ void PairUF3::allocate() // Contains knot_vect of 2-body potential for type i and j //uf3_impl->n2b_knot.resize(num_of_elements + 1); //uf3_impl->n2b_coeff.resize(num_of_elements + 1); - uf3_impl->UFBS2b.resize(num_of_elements + 1); + /*uf3_impl->UFBS2b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { //uf3_impl->n2b_knot[i].resize(num_of_elements + 1); //uf3_impl->n2b_coeff[i].resize(num_of_elements + 1); uf3_impl->UFBS2b[i].resize(num_of_elements + 1); - } + }*/ if (pot_3b) { // Contains info about wether UF potential were found for type i, j and k memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, @@ -314,7 +340,9 @@ void PairUF3::allocate() //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) //1 = non-uniform knot spacing memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, "pair:knot_spacing_3b"); + num_of_elements + 1, "pair:knot_spacing_type_3b"); + memory->create(knot_spacing_3b, num_of_elements + 1, num_of_elements + 1, + num_of_elements + 1, 3, "pair:knot_spacing_3b"); tot_interaction_count_3b = 0; //conatins map of I-J-K interaction @@ -346,7 +374,7 @@ void PairUF3::allocate() "pair:n3b_coeff_array_size"); //uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); - uf3_impl->UFBS3b.resize(num_of_elements + 1); + /*uf3_impl->UFBS3b.resize(num_of_elements + 1); for (int i = 1; i < num_of_elements + 1; i++) { //uf3_impl->n3b_knot_matrix[i].resize(num_of_elements + 1); uf3_impl->UFBS3b[i].resize(num_of_elements + 1); @@ -354,7 +382,7 @@ void PairUF3::allocate() //uf3_impl->n3b_knot_matrix[i][j].resize(num_of_elements + 1); uf3_impl->UFBS3b[i][j].resize(num_of_elements + 1); } - } + }*/ memory->create(neighshort, maxshort, "pair:neighshort"); } @@ -640,9 +668,6 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) potf_name); if (max_num_coeff_2b > 0) { - //if (comm->me == 0) - /*utils::logmesg(lmp, - "max_num_coeff_2b = {}\n", max_num_coeff_2b);*/ memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, max_num_coeff_2b, "pair:n2b_coeff_array"); } @@ -754,6 +779,10 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; } + knot_spacing_2b[itype][jtype] = n2b_knots_array[itype][jtype][4] - + n2b_knots_array[itype][jtype][3]; + knot_spacing_2b[jtype][itype] = knot_spacing_2b[itype][jtype]; + //skip next line txtfilereader.skip_line(); @@ -857,6 +886,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) min_cut_3b[itype][ktype][jtype][0] = n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; + knot_spacing_3b[itype][jtype][ktype][0] = + n3b_knots_array[map_3b[itype][jtype][ktype]][0][4] - + n3b_knots_array[map_3b[itype][jtype][ktype]][0][3]; + knot_spacing_3b[itype][ktype][jtype][0] = + knot_spacing_3b[itype][jtype][ktype][0]; + temp_line = txtfilereader.next_line(num_knots_3b_ik); ValueTokenizer fp5th_line(temp_line); if (fp5th_line.count() != num_knots_3b_ik) @@ -878,6 +913,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) min_cut_3b[itype][ktype][jtype][2] = n3b_knots_array[map_3b[itype][ktype][jtype]][2][0]; + knot_spacing_3b[itype][jtype][ktype][1] = + n3b_knots_array[map_3b[itype][jtype][ktype]][1][4] - + n3b_knots_array[map_3b[itype][jtype][ktype]][1][3]; + knot_spacing_3b[itype][ktype][jtype][2] = + knot_spacing_3b[itype][jtype][ktype][1]; + temp_line = txtfilereader.next_line(num_knots_3b_ij); ValueTokenizer fp6th_line(temp_line); if (fp6th_line.count() != num_knots_3b_ij) @@ -894,8 +935,16 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_knots_array[map_3b[itype][jtype][ktype]][2][i]; } - min_cut_3b[itype][jtype][ktype][2] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][0]; - min_cut_3b[itype][ktype][jtype][1] = n3b_knots_array[map_3b[itype][ktype][jtype]][1][0]; + min_cut_3b[itype][jtype][ktype][2] = + n3b_knots_array[map_3b[itype][jtype][ktype]][2][0]; + min_cut_3b[itype][ktype][jtype][1] = + n3b_knots_array[map_3b[itype][ktype][jtype]][1][0]; + + knot_spacing_3b[itype][jtype][ktype][2] = + n3b_knots_array[map_3b[itype][jtype][ktype]][2][4] - + n3b_knots_array[map_3b[itype][jtype][ktype]][2][3]; + knot_spacing_3b[itype][ktype][jtype][1] = + knot_spacing_3b[itype][jtype][ktype][2]; //skip next line txtfilereader.skip_line(); @@ -983,15 +1032,13 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) i, j, elements[i_mapped_to-1], elements[j_mapped_to-1], potf_name); - //utils::logmesg(lmp,"Setting stuff for {}-{} mapped to {}-{}\n",i,j, - // i_mapped_to, j_mapped_to); - cut[i][j] = cut[i_mapped_to][j_mapped_to]; n2b_knots_array_size[i][j] = n2b_knots_array_size[i_mapped_to][j_mapped_to]; n2b_coeff_array_size[i][j] = n2b_coeff_array_size[i_mapped_to][j_mapped_to]; knot_spacing_type_2b[i][j] = knot_spacing_type_2b[i_mapped_to][j_mapped_to]; + knot_spacing_2b[i][j] = knot_spacing_2b[i_mapped_to][j_mapped_to]; for (int knot_no = 0; knot_no < max_num_knots_2b; knot_no++) n2b_knots_array[i][j][knot_no] = @@ -1042,6 +1089,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) knot_spacing_type_3b[i][j][k] = knot_spacing_type_3b[i_mapped_to][j_mapped_to][k_mapped_to]; + knot_spacing_3b[i][j][k][0] = + knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; + knot_spacing_3b[i][j][k][1] = + knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; + knot_spacing_3b[i][j][k][2] = + knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; int key = map_3b[i][j][k]; int mapped_to_key = map_3b[i_mapped_to][j_mapped_to][k_mapped_to]; @@ -1684,6 +1737,7 @@ void PairUF3::create_bsplines() { const int num_of_elements = atom->ntypes; bsplines_created = 1; + int spacing_type = knot_spacing_type_2b[1][1]; for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { if (setflag[i][j] != 1) @@ -1691,6 +1745,13 @@ void PairUF3::create_bsplines() "UF3: Not all 2-body UF potentials are set, " "missing potential for {}-{} interaction", i, j); + if (spacing_type != knot_spacing_type_2b[i][j]) + error->all(FLERR, + "UF3: In the current version the knot spacing type, " + "for all interactions needs to be same. For {}-{} " + "i.e. {}-{} interaction expected {}, but found {}", + i,j,elements[map[i]],elements[map[j]],spacing_type, + knot_spacing_type_2b[i][j]); } } if (pot_3b) { @@ -1702,16 +1763,39 @@ void PairUF3::create_bsplines() "UF3: Not all 3-body UF potentials are set, " "missing potential for {}-{}-{} interaction", i, j, k); + if (spacing_type != knot_spacing_type_3b[i][j][k]) + error->all(FLERR, + "UF3: In the current version the knot spacing type, " + "for all interactions needs to be same. For {}-{}-{} " + "i.e. {}-{}-{} interaction expected{}, but found {}", + i,j,k,elements[map[i]],elements[map[j]],elements[map[k]], + spacing_type,knot_spacing_type_3b[i][j][k]); } } } } - for (int i = 1; i < num_of_elements + 1; i++) { + + if (spacing_type) { + get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; + if (pot_3b) + get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; + } + else { + get_starting_index_2b = &PairUF3::get_starting_index_uniform_2b; + if (pot_3b) + get_starting_index_3b = &PairUF3::get_starting_index_uniform_3b; + } + + create_cached_constants_2b(); + if (pot_3b) + create_cached_constants_3b(); + + /*for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { - /*uf3_impl->UFBS2b[i][j] = + uf3_impl->UFBS2b[i][j] = uf3_pair_bspline(lmp, uf3_impl->n2b_knot[i][j], uf3_impl->n2b_coeff[i][j], - knot_spacing_type_2b[i][j]);*/ + knot_spacing_type_2b[i][j]); uf3_impl->UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knots_array[i][j], n2b_knots_array_size[i][j], @@ -1723,22 +1807,20 @@ void PairUF3::create_bsplines() if (pot_3b) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = j; k < num_of_elements + 1; k++) { - /*std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); + std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]);*/ + lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); int key = map_3b[i][j][k]; int key2 = map_3b[i][k][j]; - /*utils::logmesg(lmp, "Setting UFBS3b for {}-{}-{} map_3b={} and for {}-{}-{} " - "map_3b={}\n", i, j, k, key, i, k, j, - key2);*/ + uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( lmp, n3b_knots_array[key], n3b_knots_array_size[key], n3b_coeff_array[key], n3b_coeff_array_size[key], knot_spacing_type_3b[i][j][k]); - /*std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); + std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]);*/ + lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); //int key2 = map_3b[i][k][j]; uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( lmp, n3b_knots_array[key2], n3b_knots_array_size[key2], @@ -1747,6 +1829,250 @@ void PairUF3::create_bsplines() } } } + }*/ +} + +int PairUF3::get_starting_index_uniform_2b(int i, int j, double r) +{ + //return 3+(int)((r-n2b_knots_array[i][j][0])/(n2b_knots_array[i][j][4]-n2b_knots_array[i][j][3])); + return 3+(int)((r-n2b_knots_array[i][j][0])/(knot_spacing_2b[i][j])); +} + +int PairUF3::get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim) +{ + /*return 3+(int)((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ + (n3b_knots_array[map_3b[i][j][k]][knot_dim][4] - + n3b_knots_array[map_3b[i][j][k]][knot_dim][3]));*/ + return 3+(int)(((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ + knot_spacing_3b[i][j][k][knot_dim])); +} + +int PairUF3::get_starting_index_nonuniform_2b(int i, int j, double r) +{ + for (int l = 3; l < n2b_knots_array_size[i][j]-1; ++l) { + if ((n2b_knots_array[i][j][l] <= r) && (r < n2b_knots_array[i][j][l+1])) + return l; + } + return -1; +} + +int PairUF3::get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim) +{ + for (int l = 3; l < n3b_knots_array_size[map_3b[i][j][k]][knot_dim]-1; ++l) { + if ((n3b_knots_array[map_3b[i][j][k]][knot_dim][l] <= r) && + (r < n3b_knots_array[map_3b[i][j][k]][knot_dim][l+1])) + return l; + } + return -1; +} + +void PairUF3::create_cached_constants_2b() +{ + const int num_of_elements = atom->ntypes; + memory->create(cached_constants_2b, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b, 16, "pair:cached_constants_2b"); + + memory->create(cached_constants_2b_deri, num_of_elements + 1, + num_of_elements + 1, max_num_coeff_2b - 1, 9, + "pair:cached_constants_2b_deri"); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++ ) { + for (int l = 0; l < n2b_coeff_array_size[i][j]; l++) { + uf3_bspline_basis3 bspline_basis(lmp, &n2b_knots_array[i][j][l], + n2b_coeff_array[i][j][l]); + for (int cc = 0; cc < 16; cc++) { + /*if (std::isinf(bspline_basis.constants[cc]) || + std::isnan(bspline_basis.constants[cc])) + utils::logmesg(lmp, + "UF3: Bspline coefficients for" + " {}-{} interaction, {} basis set, {} constant\n", + i,j,l,cc);*/ + cached_constants_2b[i][j][l][cc] = bspline_basis.constants[cc]; + } + } + } + } + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++) { + //initialize coeff and knots for derivative + double* knots_for_deri = new double[n2b_knots_array_size[i][j]-2]; + + for (int l = 1; l < n2b_knots_array_size[i][j] - 1; l++) + knots_for_deri[l-1] = n2b_knots_array[i][j][l]; + + + double* coeff_for_deri = new double[n2b_coeff_array_size[i][j]-1]; + for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { + double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - + n2b_knots_array[i][j][l + 1]); + coeff_for_deri[l] = + (n2b_coeff_array[i][j][l+1] - n2b_coeff_array[i][j][l]) * dntemp; + } + + for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { + uf3_bspline_basis2 bspline_basis_deri(lmp, &knots_for_deri[l], + coeff_for_deri[l]); + for (int cc = 0; cc < 9; cc++) { + /*if (std::isinf(bspline_basis_deri.constants[cc]) || + std::isnan(bspline_basis_deri.constants[cc])) + utils::logmesg(lmp, + "UF3: Bspline coefficients for" + " derivative of {}-{} interaction, {}th basis set," + " {} constant\n",i,j,l,cc);*/ + cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; + } + } + delete[] knots_for_deri; + delete[] coeff_for_deri; + } + } +} + +void PairUF3::create_cached_constants_3b() +{ + const int num_of_elements = atom->ntypes; + memory->create(coeff_for_der_jk, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_jk"); + + memory->create(coeff_for_der_ik, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ik"); + + memory->create(coeff_for_der_ij, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ij"); + + memory->create(cached_constants_3b, tot_interaction_count_3b, 3, + max_num_coeff_3b, 16, "pair:cached_constants_3b"); + + memory->create(cached_constants_3b_deri, tot_interaction_count_3b, 3, + max_num_coeff_3b - 1, 9, "pair:cached_constants_3b_deri"); + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++ ) { + for(int k = 1; k < num_of_elements + 1; k++) { + int map_to = map_3b[i][j][k]; + + for (int l = 0; l < n3b_knots_array_size[map_to][2] - 4; l++) { + uf3_bspline_basis3 bspline_basis_ij(lmp, &n3b_knots_array[map_to][2][l], 1); + for (int cc = 0; cc < 16; cc++) + cached_constants_3b[map_to][0][l][cc] = bspline_basis_ij.constants[cc]; + } + + for (int l = 0; l < n3b_knots_array_size[map_to][1] - 4; l++) { + uf3_bspline_basis3 bspline_basis_ik(lmp, &n3b_knots_array[map_to][1][l], 1); + for (int cc = 0; cc < 16; cc++) + cached_constants_3b[map_to][1][l][cc] = bspline_basis_ik.constants[cc]; + } + + for (int l = 0; l < n3b_knots_array_size[map_to][0] - 4; l++) { + uf3_bspline_basis3 bspline_basis_jk(lmp, &n3b_knots_array[map_to][0][l], 1); + for (int cc = 0; cc < 16; cc++) + cached_constants_3b[map_to][2][l][cc] = bspline_basis_jk.constants[cc]; + } + } + } + } + + for (int i = 1; i < num_of_elements + 1; i++) { + for (int j = 1; j < num_of_elements + 1; j++ ) { + for(int k = 1; k < num_of_elements + 1; k++) { + int map_to = map_3b[i][j][k]; + double **knots_for_der = nullptr;//new double*[3]; + //double ***coeff_for_der_jk = nullptr; + //double ***coeff_for_der_ik = nullptr; + //double ***coeff_for_der_ij = nullptr; + + //n3b_knots_array_size[map_to][0] for jk knot vector --> always largest + memory->create(knots_for_der, 3, n3b_knots_array_size[map_to][0]-1, + "pair:knots_for_der"); + + //--deri_basis_jk + for (int l = 1; l < n3b_knots_array_size[map_to][0] - 1; l++) + knots_for_der[0][l-1] = n3b_knots_array[map_to][0][l]; + + for(int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { + for(int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { + for(int n = 0; n < n3b_coeff_array_size[map_to][2] - 1; n++) { + double dntemp = 3/(n3b_knots_array[map_to][0][n + 4] - + n3b_knots_array[map_to][0][n + 1]); + coeff_for_der_jk[map_to][l][m][n] = + ((n3b_coeff_array[map_to][l][m][n + 1] - + n3b_coeff_array[map_to][l][m][n])*dntemp); + } + } + } + + //--deri_basis_ik + for (int l = 1; l < n3b_knots_array_size[map_to][1] - 1; l++) + knots_for_der[1][l-1] = n3b_knots_array[map_to][1][l]; + + for (int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { + for (int m = 0; m < n3b_coeff_array_size[map_to][1] - 1; m++) { + double dntemp = 3/(n3b_knots_array[map_to][1][m + 4] - + n3b_knots_array[map_to][1][m + 1]); + for (int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { + coeff_for_der_ik[map_to][l][m][n] = + ((n3b_coeff_array[map_to][l][m + 1][n] - + n3b_coeff_array[map_to][l][m][n])*dntemp); + } + } + } + + //--deri_basis_ij + for (int l = 1; l < n3b_knots_array_size[map_to][2] - 1; l++) + knots_for_der[2][l-1] = n3b_knots_array[map_to][2][l]; + + for (int l = 0; l < n3b_coeff_array_size[map_to][0] - 1; l++) { + double dntemp = 3/(n3b_knots_array[map_to][2][l + 4] - + n3b_knots_array[map_to][2][l + 1]); + for(int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { + for(int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { + coeff_for_der_ij[map_to][l][m][n] = + ((n3b_coeff_array[map_to][l + 1][m][n] - + n3b_coeff_array[map_to][l][m][n]) * dntemp); + } + } + } + + //cached_constants_3b_deri + //utils::logmesg(lmp, "UF3: {} {} {}\n",i,j,k); + //utils::logmesg(lmp, "UF3: bspline_basis_deri_ij"); + for (int l = 0; l < n3b_coeff_array_size[map_to][0] - 1; l++) { + uf3_bspline_basis2 bspline_basis_deri_ij(lmp, &knots_for_der[2][l], 1); + for (int cc = 0; cc < 9; cc++) { + cached_constants_3b_deri[map_to][0][l][cc] = bspline_basis_deri_ij.constants[cc]; + //utils::logmesg(lmp," {}",bspline_basis_deri_ij.constants[cc]); + } + //utils::logmesg(lmp,"\n"); + } + + //utils::logmesg(lmp, "UF3: bspline_basis_deri_ik"); + for (int l = 0; l < n3b_coeff_array_size[map_to][1] - 1; l++) { + uf3_bspline_basis2 bspline_basis_deri_ik(lmp, &knots_for_der[1][l], 1); + for (int cc = 0; cc < 9; cc++) { + cached_constants_3b_deri[map_to][1][l][cc] = bspline_basis_deri_ik.constants[cc]; + //utils::logmesg(lmp," {}",bspline_basis_deri_ik.constants[cc]); + } + //utils::logmesg(lmp,"\n"); + } + + //utils::logmesg(lmp, "UF3: bspline_basis_deri_jk"); + for (int l = 0; l < n3b_coeff_array_size[map_to][2] - 1; l++) { + uf3_bspline_basis2 bspline_basis_deri_jk(lmp, &knots_for_der[0][l], 1); + for (int cc = 0; cc < 9; cc++) { + cached_constants_3b_deri[map_to][2][l][cc] = bspline_basis_deri_jk.constants[cc]; + //utils::logmesg(lmp," {}",bspline_basis_deri_jk.constants[cc]); + } + //utils::logmesg(lmp,"\n"); + } + + memory->destroy(knots_for_der); + //memory->destroy(coeff_for_der_jk) + //memory->destroy(coeff_for_der_ik) + //memory->destroy(coeff_for_der_ij); + } + } } } @@ -1759,6 +2085,7 @@ void PairUF3::compute(int eflag, int vflag) double fji[3], fki[3], fkj[3]; double Fi[3], Fj[3], Fk[3]; double rsq, rij, rik, rjk; + double rij_sq, rik_sq, rjk_sq; int *ilist, *jlist, *numneigh, **firstneigh; ev_init(eflag, vflag); @@ -1811,9 +2138,20 @@ void PairUF3::compute(int eflag, int vflag) } } - double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(rij); + int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,rij); - fpair = -1 * pair_eval[1] / rij; + //double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(rij); + double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + + fpair = -1 * force_2b / rij; fx = delx * fpair; fy = dely * fpair; @@ -1826,7 +2164,27 @@ void PairUF3::compute(int eflag, int vflag) f[j][1] -= fy; f[j][2] -= fz; - if (eflag) evdwl = pair_eval[0]; + if (eflag) { + //evdwl = pair_eval[0] + double rth = rsq*rij; + evdwl = cached_constants_2b[itype][jtype][knot_start_index][0]; + evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index][1]; + evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index][2]; + evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index][3]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index-1][4]; + evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-1][5]; + evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-1][6]; + evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-1][7]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index-2][8]; + evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-2][9]; + evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-2][10]; + evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-2][11]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index-3][12]; + evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-3][13]; + evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-3][14]; + evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-3][15]; + //utils::logmesg(lmp,"UF3: {} {} {} {}\n",itype,jtype,evdwl,force_2b); + }; if (evflag) { ev_tally_xyz(i, j, nlocal, newton_pair, evdwl, 0.0, fx, fy, fz, delx, dely, delz); @@ -1878,8 +2236,9 @@ void PairUF3::compute(int eflag, int vflag) del_rji[0] = x[j][0] - xtmp; del_rji[1] = x[j][1] - ytmp; del_rji[2] = x[j][2] - ztmp; - rij = - sqrt(((del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]))); + rij_sq = (del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]); + rij = sqrt(rij_sq); + //sqrt(((del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]))); // kth atom for (kk = jj + 1; kk < numshort; kk++) { @@ -1897,8 +2256,9 @@ void PairUF3::compute(int eflag, int vflag) del_rki[0] = x[k][0] - xtmp; del_rki[1] = x[k][1] - ytmp; del_rki[2] = x[k][2] - ztmp; - rik = sqrt( - ((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); + rik_sq = (del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]); + rik = sqrt(rik_sq); + //((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && @@ -1908,11 +2268,237 @@ void PairUF3::compute(int eflag, int vflag) del_rkj[0] = x[k][0] - x[j][0]; del_rkj[1] = x[k][1] - x[j][1]; del_rkj[2] = x[k][2] - x[j][2]; - rjk = sqrt( - ((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); + + rjk_sq = (del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]); + rjk = sqrt(rjk_sq); + //((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); if (rjk >= min_cut_3b[itype][jtype][ktype][0]) { - double *triangle_eval = uf3_impl->UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); + double rij_th = rij*rij_sq; + double rik_th = rik*rik_sq; + double rjk_th = rjk*rjk_sq; + //double *triangle_eval = uf3_impl->UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); + int map_to = map_3b[itype][jtype][ktype]; + int knot_start_index_ij = (this->*get_starting_index_3b)(itype,jtype,ktype,rij,2); + int knot_start_index_ik = (this->*get_starting_index_3b)(itype,jtype,ktype,rik,1); + int knot_start_index_jk = (this->*get_starting_index_3b)(itype,jtype,ktype,rjk,0); + double basis_ij[4]; + double basis_ik[4]; + double basis_jk[4]; + double basis_ij_der[3]; + double basis_ik_der[3]; + double basis_jk_der[3]; + + //--------------basis_ij + //utils::logmesg(lmp, "UF3: {} {}\n",map_to,knot_start_index_ij); + basis_ij[0] = cached_constants_3b[map_to][0][knot_start_index_ij - 3][12]; + basis_ij[0] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 3][13]; + basis_ij[0] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 3][14]; + basis_ij[0] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 3][15]; + + basis_ij[1] = cached_constants_3b[map_to][0][knot_start_index_ij - 2][8]; + basis_ij[1] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 2][9]; + basis_ij[1] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 2][10]; + basis_ij[1] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 2][11]; + + basis_ij[2] = cached_constants_3b[map_to][0][knot_start_index_ij - 1][4]; + basis_ij[2] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 1][5]; + basis_ij[2] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 1][6]; + basis_ij[2] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 1][7]; + + basis_ij[3] = cached_constants_3b[map_to][0][knot_start_index_ij][0]; + basis_ij[3] += rij*cached_constants_3b[map_to][0][knot_start_index_ij][1]; + basis_ij[3] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij][2]; + basis_ij[3] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij][3]; + + //utils::logmesg(lmp,"UF3: basis_ij = {} {} {} {}\n",basis_ij[0],basis_ij[1], + // basis_ij[2],basis_ij[3]); + + //--------------basis_ik + basis_ik[0] = cached_constants_3b[map_to][1][knot_start_index_ik - 3][12]; + basis_ik[0] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 3][13]; + basis_ik[0] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 3][14]; + basis_ik[0] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 3][15]; + + basis_ik[1] = cached_constants_3b[map_to][1][knot_start_index_ik - 2][8]; + basis_ik[1] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 2][9]; + basis_ik[1] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 2][10]; + basis_ik[1] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 2][11]; + + basis_ik[2] = cached_constants_3b[map_to][1][knot_start_index_ik - 1][4]; + basis_ik[2] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 1][5]; + basis_ik[2] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 1][6]; + basis_ik[2] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 1][7]; + + basis_ik[3] = cached_constants_3b[map_to][1][knot_start_index_ik][0]; + basis_ik[3] += rik*cached_constants_3b[map_to][1][knot_start_index_ik][1]; + basis_ik[3] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik][2]; + basis_ik[3] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik][3]; + + //utils::logmesg(lmp,"UF3: basis_ik = {} {} {} {}\n",basis_ik[0],basis_ik[1], + // basis_ik[2],basis_ik[3]); + + //--------------basis_jk + basis_jk[0] = cached_constants_3b[map_to][2][knot_start_index_jk - 3][12]; + basis_jk[0] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 3][13]; + basis_jk[0] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 3][14]; + basis_jk[0] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 3][15]; + + basis_jk[1] = cached_constants_3b[map_to][2][knot_start_index_jk - 2][8]; + basis_jk[1] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 2][9]; + basis_jk[1] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 2][10]; + basis_jk[1] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 2][11]; + + basis_jk[2] = cached_constants_3b[map_to][2][knot_start_index_jk - 1][4]; + basis_jk[2] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 1][5]; + basis_jk[2] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 1][6]; + basis_jk[2] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 1][7]; + + basis_jk[3] = cached_constants_3b[map_to][2][knot_start_index_jk][0]; + basis_jk[3] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk][1]; + basis_jk[3] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk][2]; + basis_jk[3] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk][3]; + + //utils::logmesg(lmp,"UF3: basis_jk = {} {} {} {}\n",basis_jk[0],basis_jk[1], + // basis_jk[2],basis_jk[3]); + //----------------basis_ij_der + basis_ij_der[0] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6]; + basis_ij_der[0] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7]; + basis_ij_der[0] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]; + /*utils::logmesg(lmp,"UF3 cached_constants 2 = {} {} {}\n", + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]);*/ + + basis_ij_der[1] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3]; + basis_ij_der[1] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; + basis_ij_der[1] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]; + /*utils::logmesg(lmp,"UF3 cached_constants 1 = {} {} {}\n", + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]);*/ + + basis_ij_der[2] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0]; + basis_ij_der[2] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1]; + basis_ij_der[2] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]; + /*utils::logmesg(lmp,"UF3 cached_constants 0 = {} {} {}\n", + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1], + cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]);*/ + + //utils::logmesg(lmp,"UF3: basis_ij_der = {} {} {}\n",basis_ij_der[0],basis_ij_der[1], + // basis_ij_der[2]); + + //----------------basis_ik_der + basis_ik_der[0] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][6]; + basis_ik_der[0] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][7]; + basis_ik_der[0] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][8]; + + basis_ik_der[1] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][3]; + basis_ik_der[1] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][4]; + basis_ik_der[1] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][5]; + + basis_ik_der[2] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][0]; + basis_ik_der[2] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][1]; + basis_ik_der[2] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][2]; + + //utils::logmesg(lmp,"UF3: basis_ik_der = {} {} {}\n",basis_ik_der[0],basis_ik_der[1], + // basis_ik_der[2]); + + //----------------basis_jk_der + basis_jk_der[0] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][6]; + basis_jk_der[0] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][7]; + basis_jk_der[0] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][8]; + + basis_jk_der[1] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][3]; + basis_jk_der[1] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][4]; + basis_jk_der[1] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][5]; + + basis_jk_der[2] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][0]; + basis_jk_der[2] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][1]; + basis_jk_der[2] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][2]; + + //utils::logmesg(lmp,"UF3: basis_jk_der = {} {} {}\n",basis_jk_der[0],basis_jk_der[1], + // basis_jk_der[2]); + + double triangle_eval[4] = {0,0,0,0}; + + int iknot_ij = knot_start_index_ij - 3; + int iknot_ik = knot_start_index_ik - 3; + int iknot_jk = knot_start_index_jk - 3; + + /*if (eflag) { + for (int l = 0; l < 4; l++) { + const double basis_ij_i = basis_ij[l]; + for (int m = 0; m < 4; m++) { + const double factor = basis_ij_i * basis_ik[m]; + const double* slice = + &n3b_coeff_array[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + triangle_eval[0] += factor * sum; + } + } + }*/ + //else + // triangle_eval[0] = 0; + + for (int l = 0; l < 3; l++) { + const double basis_ij_der_i = basis_ij_der[l]; + for (int m = 0; m < 4; m++) { + const double factor = basis_ij_der_i * basis_ik[m]; + const double* slice = + &coeff_for_der_ij[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + triangle_eval[1] += factor * sum; + //utils::logmesg(lmp, "UF3: {} {} {} {} {} {}\n", basis_ij_der[l], + // factor, slice[0], slice[1], slice[2], slice[3]); + } + } + + for (int l = 0; l < 4; l++) { + const double basis_ij_i = basis_ij[l]; + for (int m = 0; m < 3; m++) { + const double factor = basis_ij_i * basis_ik_der[m]; + const double* slice = + &coeff_for_der_ik[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + triangle_eval[2] += factor * sum; + } + } + + for (int l = 0; l < 4; l++) { + const double basis_ij_i = basis_ij[l]; + for (int m = 0; m < 4; m++) { + const double factor = basis_ij_i * basis_ik[m]; + const double* slice = + &coeff_for_der_jk[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; + double tmp[3]; + tmp[0] = slice[0] * basis_jk_der[0]; + tmp[1] = slice[1] * basis_jk_der[1]; + tmp[2] = slice[2] * basis_jk_der[2]; + double sum = tmp[0] + tmp[1] + tmp[2]; + triangle_eval[3] += factor * sum; + } + } + + /*utils::logmesg(lmp,"UF3: {} {} {} {} {} {} {}\n",itype,jtype,ktype, + *triangle_eval,*(triangle_eval + 1),*(triangle_eval + 2), + *(triangle_eval + 3));*/ fij[0] = *(triangle_eval + 1) * (del_rji[0] / rij); fji[0] = -fij[0]; @@ -1956,7 +2542,24 @@ void PairUF3::compute(int eflag, int vflag) f[k][1] += Fk[1]; f[k][2] += Fk[2]; - if (eflag) evdwl = *triangle_eval; + if (eflag) { + for (int l = 0; l < 4; l++) { + const double basis_ij_i = basis_ij[l]; + for (int m = 0; m < 4; m++) { + const double factor = basis_ij_i * basis_ik[m]; + const double* slice = + &n3b_coeff_array[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; + double tmp[4]; + tmp[0] = slice[0] * basis_jk[0]; + tmp[1] = slice[1] * basis_jk[1]; + tmp[2] = slice[2] * basis_jk[2]; + tmp[3] = slice[3] * basis_jk[3]; + double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; + triangle_eval[0] += factor * sum; + } + } + evdwl = *triangle_eval; + } if (evflag) { ev_tally3(i, j, k, evdwl, 0, Fj, Fk, del_rji, del_rki); @@ -2023,9 +2626,36 @@ double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, double r = sqrt(rsq); if (r < cut[itype][jtype]) { - double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(r); - value = pair_eval[0]; - fforce = factor_lj * pair_eval[1]; + int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,r); + + double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + fforce = factor_lj * force_2b; + + double rth = rsq*r; + value = cached_constants_2b[itype][jtype][knot_start_index][0]; + value += r*cached_constants_2b[itype][jtype][knot_start_index][1]; + value += rsq*cached_constants_2b[itype][jtype][knot_start_index][2]; + value += rth*cached_constants_2b[itype][jtype][knot_start_index][3]; + value += cached_constants_2b[itype][jtype][knot_start_index-1][4]; + value += r*cached_constants_2b[itype][jtype][knot_start_index-1][5]; + value += rsq*cached_constants_2b[itype][jtype][knot_start_index-1][6]; + value += rth*cached_constants_2b[itype][jtype][knot_start_index-1][7]; + value += cached_constants_2b[itype][jtype][knot_start_index-2][8]; + value += r*cached_constants_2b[itype][jtype][knot_start_index-2][9]; + value += rsq*cached_constants_2b[itype][jtype][knot_start_index-2][10]; + value += rth*cached_constants_2b[itype][jtype][knot_start_index-2][11]; + value += cached_constants_2b[itype][jtype][knot_start_index-3][12]; + value += r*cached_constants_2b[itype][jtype][knot_start_index-3][13]; + value += rsq*cached_constants_2b[itype][jtype][knot_start_index-3][14]; + value += rth*cached_constants_2b[itype][jtype][knot_start_index-3][15]; } return factor_lj * value; @@ -2098,7 +2728,7 @@ double PairUF3::memory_usage() } }*/ - for (int i = 1; i < num_of_elements + 1; i++) { + /*for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { bytes += (double) 2 * uf3_impl->UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] } @@ -2109,7 +2739,7 @@ double PairUF3::memory_usage() } } } - } + }*/ bytes += (double) (maxshort + 1) * sizeof(int); //neighshort, maxshort diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 3bb0fe0381..a300cbf838 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -56,10 +56,19 @@ class PairUF3 : public Pair { bool pot_3b; int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; + double **knot_spacing_2b, ****knot_spacing_3b; virtual void allocate(); void create_bsplines(); - struct UF3Impl *uf3_impl; //PIMPLE (pointer-to-implementation) - UF3Impl *get_UF3Impl(); + void create_cached_constants_2b(); + void create_cached_constants_3b(); + //struct UF3Impl *uf3_impl; //PIMPLE (pointer-to-implementation) + //UF3Impl *get_UF3Impl(); + int get_starting_index_uniform_2b(int i, int j, double r); + int get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim); + int get_starting_index_nonuniform_2b(int i, int j, double r); + int get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim); + int (PairUF3::*get_starting_index_2b)(int i, int j, double r); + int (PairUF3::*get_starting_index_3b)(int i, int j, int k, double r, int knot_dim); int max_num_knots_2b = 0; int max_num_coeff_2b = 0; @@ -67,10 +76,14 @@ class PairUF3 : public Pair { int max_num_coeff_3b = 0; double ***n2b_knots_array, ***n2b_coeff_array; int **n2b_knots_array_size, **n2b_coeff_array_size; + double ****cached_constants_2b, ****cached_constants_2b_deri; int ***map_3b, tot_interaction_count_3b; double ***n3b_knots_array, ****n3b_coeff_array; int **n3b_knots_array_size, **n3b_coeff_array_size; + double ****coeff_for_der_jk, ****coeff_for_der_ik,****coeff_for_der_ij; + double ****cached_constants_3b, ****cached_constants_3b_deri; + /*void uf3_read_2b_pot_block(int itype, int jtype, std::string iele, std::string jele, From e55d77470b3e0c10c6129e9c89e8ce80a10e90d5 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 15:23:48 -0400 Subject: [PATCH 078/313] Removed trailing whitespace --- src/ML-UF3/pair_uf3.cpp | 118 ++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 125899ec61..b1bacf09e6 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -250,7 +250,7 @@ void PairUF3::communicate() MPI_Bcast(&knot_spacing_type_2b[0][0], (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - + MPI_Bcast(&knot_spacing_2b[0][0], (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); @@ -779,7 +779,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; } - knot_spacing_2b[itype][jtype] = n2b_knots_array[itype][jtype][4] - + knot_spacing_2b[itype][jtype] = n2b_knots_array[itype][jtype][4] - n2b_knots_array[itype][jtype][3]; knot_spacing_2b[jtype][itype] = knot_spacing_2b[itype][jtype]; @@ -886,8 +886,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) min_cut_3b[itype][ktype][jtype][0] = n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; - knot_spacing_3b[itype][jtype][ktype][0] = - n3b_knots_array[map_3b[itype][jtype][ktype]][0][4] - + knot_spacing_3b[itype][jtype][ktype][0] = + n3b_knots_array[map_3b[itype][jtype][ktype]][0][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][0][3]; knot_spacing_3b[itype][ktype][jtype][0] = knot_spacing_3b[itype][jtype][ktype][0]; @@ -913,12 +913,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) min_cut_3b[itype][ktype][jtype][2] = n3b_knots_array[map_3b[itype][ktype][jtype]][2][0]; - knot_spacing_3b[itype][jtype][ktype][1] = + knot_spacing_3b[itype][jtype][ktype][1] = n3b_knots_array[map_3b[itype][jtype][ktype]][1][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][1][3]; knot_spacing_3b[itype][ktype][jtype][2] = knot_spacing_3b[itype][jtype][ktype][1]; - + temp_line = txtfilereader.next_line(num_knots_3b_ij); ValueTokenizer fp6th_line(temp_line); if (fp6th_line.count() != num_knots_3b_ij) @@ -943,7 +943,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) knot_spacing_3b[itype][jtype][ktype][2] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][2][3]; - knot_spacing_3b[itype][ktype][jtype][1] = + knot_spacing_3b[itype][ktype][jtype][1] = knot_spacing_3b[itype][jtype][ktype][2]; //skip next line @@ -1089,11 +1089,11 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) knot_spacing_type_3b[i][j][k] = knot_spacing_type_3b[i_mapped_to][j_mapped_to][k_mapped_to]; - knot_spacing_3b[i][j][k][0] = + knot_spacing_3b[i][j][k][0] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; - knot_spacing_3b[i][j][k][1] = + knot_spacing_3b[i][j][k][1] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; - knot_spacing_3b[i][j][k][2] = + knot_spacing_3b[i][j][k][2] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; int key = map_3b[i][j][k]; @@ -1812,7 +1812,7 @@ void PairUF3::create_bsplines() lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); int key = map_3b[i][j][k]; int key2 = map_3b[i][k][j]; - + uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( lmp, n3b_knots_array[key], n3b_knots_array_size[key], n3b_coeff_array[key], n3b_coeff_array_size[key], @@ -1841,7 +1841,7 @@ int PairUF3::get_starting_index_uniform_2b(int i, int j, double r) int PairUF3::get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim) { /*return 3+(int)((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ - (n3b_knots_array[map_3b[i][j][k]][knot_dim][4] - + (n3b_knots_array[map_3b[i][j][k]][knot_dim][4] - n3b_knots_array[map_3b[i][j][k]][knot_dim][3]));*/ return 3+(int)(((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ knot_spacing_3b[i][j][k][knot_dim])); @@ -1859,7 +1859,7 @@ int PairUF3::get_starting_index_nonuniform_2b(int i, int j, double r) int PairUF3::get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim) { for (int l = 3; l < n3b_knots_array_size[map_3b[i][j][k]][knot_dim]-1; ++l) { - if ((n3b_knots_array[map_3b[i][j][k]][knot_dim][l] <= r) && + if ((n3b_knots_array[map_3b[i][j][k]][knot_dim][l] <= r) && (r < n3b_knots_array[map_3b[i][j][k]][knot_dim][l+1])) return l; } @@ -1905,9 +1905,9 @@ void PairUF3::create_cached_constants_2b() double* coeff_for_deri = new double[n2b_coeff_array_size[i][j]-1]; for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { - double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - + double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); - coeff_for_deri[l] = + coeff_for_deri[l] = (n2b_coeff_array[i][j][l+1] - n2b_coeff_array[i][j][l]) * dntemp; } @@ -1921,7 +1921,7 @@ void PairUF3::create_cached_constants_2b() "UF3: Bspline coefficients for" " derivative of {}-{} interaction, {}th basis set," " {} constant\n",i,j,l,cc);*/ - cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; + cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; } } delete[] knots_for_deri; @@ -1938,13 +1938,13 @@ void PairUF3::create_cached_constants_3b() memory->create(coeff_for_der_ik, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ik"); - + memory->create(coeff_for_der_ij, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ij"); - + memory->create(cached_constants_3b, tot_interaction_count_3b, 3, max_num_coeff_3b, 16, "pair:cached_constants_3b"); - + memory->create(cached_constants_3b_deri, tot_interaction_count_3b, 3, max_num_coeff_3b - 1, 9, "pair:cached_constants_3b_deri"); @@ -1999,7 +1999,7 @@ void PairUF3::create_cached_constants_3b() coeff_for_der_jk[map_to][l][m][n] = ((n3b_coeff_array[map_to][l][m][n + 1] - n3b_coeff_array[map_to][l][m][n])*dntemp); - } + } } } @@ -2009,10 +2009,10 @@ void PairUF3::create_cached_constants_3b() for (int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { for (int m = 0; m < n3b_coeff_array_size[map_to][1] - 1; m++) { - double dntemp = 3/(n3b_knots_array[map_to][1][m + 4] - + double dntemp = 3/(n3b_knots_array[map_to][1][m + 4] - n3b_knots_array[map_to][1][m + 1]); for (int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { - coeff_for_der_ik[map_to][l][m][n] = + coeff_for_der_ik[map_to][l][m][n] = ((n3b_coeff_array[map_to][l][m + 1][n] - n3b_coeff_array[map_to][l][m][n])*dntemp); } @@ -2046,7 +2046,7 @@ void PairUF3::create_cached_constants_3b() } //utils::logmesg(lmp,"\n"); } - + //utils::logmesg(lmp, "UF3: bspline_basis_deri_ik"); for (int l = 0; l < n3b_coeff_array_size[map_to][1] - 1; l++) { uf3_bspline_basis2 bspline_basis_deri_ik(lmp, &knots_for_der[1][l], 1); @@ -2142,14 +2142,14 @@ void PairUF3::compute(int eflag, int vflag) //double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(rij); double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; - force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; - force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; + force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; fpair = -1 * force_2b / rij; @@ -2278,7 +2278,7 @@ void PairUF3::compute(int eflag, int vflag) double rik_th = rik*rik_sq; double rjk_th = rjk*rjk_sq; //double *triangle_eval = uf3_impl->UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); - int map_to = map_3b[itype][jtype][ktype]; + int map_to = map_3b[itype][jtype][ktype]; int knot_start_index_ij = (this->*get_starting_index_3b)(itype,jtype,ktype,rij,2); int knot_start_index_ik = (this->*get_starting_index_3b)(itype,jtype,ktype,rik,1); int knot_start_index_jk = (this->*get_starting_index_3b)(itype,jtype,ktype,rjk,0); @@ -2295,7 +2295,7 @@ void PairUF3::compute(int eflag, int vflag) basis_ij[0] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 3][13]; basis_ij[0] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 3][14]; basis_ij[0] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 3][15]; - + basis_ij[1] = cached_constants_3b[map_to][0][knot_start_index_ij - 2][8]; basis_ij[1] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 2][9]; basis_ij[1] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 2][10]; @@ -2305,12 +2305,12 @@ void PairUF3::compute(int eflag, int vflag) basis_ij[2] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 1][5]; basis_ij[2] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 1][6]; basis_ij[2] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 1][7]; - + basis_ij[3] = cached_constants_3b[map_to][0][knot_start_index_ij][0]; basis_ij[3] += rij*cached_constants_3b[map_to][0][knot_start_index_ij][1]; basis_ij[3] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij][2]; basis_ij[3] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij][3]; - + //utils::logmesg(lmp,"UF3: basis_ij = {} {} {} {}\n",basis_ij[0],basis_ij[1], // basis_ij[2],basis_ij[3]); @@ -2329,31 +2329,31 @@ void PairUF3::compute(int eflag, int vflag) basis_ik[2] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 1][5]; basis_ik[2] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 1][6]; basis_ik[2] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 1][7]; - + basis_ik[3] = cached_constants_3b[map_to][1][knot_start_index_ik][0]; basis_ik[3] += rik*cached_constants_3b[map_to][1][knot_start_index_ik][1]; basis_ik[3] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik][2]; basis_ik[3] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik][3]; - + //utils::logmesg(lmp,"UF3: basis_ik = {} {} {} {}\n",basis_ik[0],basis_ik[1], // basis_ik[2],basis_ik[3]); - + //--------------basis_jk basis_jk[0] = cached_constants_3b[map_to][2][knot_start_index_jk - 3][12]; basis_jk[0] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 3][13]; basis_jk[0] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 3][14]; basis_jk[0] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 3][15]; - + basis_jk[1] = cached_constants_3b[map_to][2][knot_start_index_jk - 2][8]; basis_jk[1] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 2][9]; basis_jk[1] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 2][10]; basis_jk[1] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 2][11]; - + basis_jk[2] = cached_constants_3b[map_to][2][knot_start_index_jk - 1][4]; basis_jk[2] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 1][5]; basis_jk[2] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 1][6]; basis_jk[2] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 1][7]; - + basis_jk[3] = cached_constants_3b[map_to][2][knot_start_index_jk][0]; basis_jk[3] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk][1]; basis_jk[3] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk][2]; @@ -2369,7 +2369,7 @@ void PairUF3::compute(int eflag, int vflag) cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]);*/ - + basis_ij_der[1] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3]; basis_ij_der[1] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; basis_ij_der[1] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]; @@ -2377,7 +2377,7 @@ void PairUF3::compute(int eflag, int vflag) cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]);*/ - + basis_ij_der[2] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0]; basis_ij_der[2] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1]; basis_ij_der[2] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]; @@ -2385,7 +2385,7 @@ void PairUF3::compute(int eflag, int vflag) cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1], cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]);*/ - + //utils::logmesg(lmp,"UF3: basis_ij_der = {} {} {}\n",basis_ij_der[0],basis_ij_der[1], // basis_ij_der[2]); @@ -2397,11 +2397,11 @@ void PairUF3::compute(int eflag, int vflag) basis_ik_der[1] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][3]; basis_ik_der[1] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][4]; basis_ik_der[1] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][5]; - + basis_ik_der[2] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][0]; basis_ik_der[2] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][1]; basis_ik_der[2] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][2]; - + //utils::logmesg(lmp,"UF3: basis_ik_der = {} {} {}\n",basis_ik_der[0],basis_ik_der[1], // basis_ik_der[2]); @@ -2409,7 +2409,7 @@ void PairUF3::compute(int eflag, int vflag) basis_jk_der[0] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][6]; basis_jk_der[0] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][7]; basis_jk_der[0] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][8]; - + basis_jk_der[1] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][3]; basis_jk_der[1] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][4]; basis_jk_der[1] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][5]; @@ -2417,10 +2417,10 @@ void PairUF3::compute(int eflag, int vflag) basis_jk_der[2] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][0]; basis_jk_der[2] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][1]; basis_jk_der[2] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][2]; - + //utils::logmesg(lmp,"UF3: basis_jk_der = {} {} {}\n",basis_jk_der[0],basis_jk_der[1], // basis_jk_der[2]); - + double triangle_eval[4] = {0,0,0,0}; int iknot_ij = knot_start_index_ij - 3; @@ -2446,12 +2446,12 @@ void PairUF3::compute(int eflag, int vflag) }*/ //else // triangle_eval[0] = 0; - + for (int l = 0; l < 3; l++) { const double basis_ij_der_i = basis_ij_der[l]; for (int m = 0; m < 4; m++) { const double factor = basis_ij_der_i * basis_ik[m]; - const double* slice = + const double* slice = &coeff_for_der_ij[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; double tmp[4]; tmp[0] = slice[0] * basis_jk[0]; @@ -2492,10 +2492,10 @@ void PairUF3::compute(int eflag, int vflag) tmp[1] = slice[1] * basis_jk_der[1]; tmp[2] = slice[2] * basis_jk_der[2]; double sum = tmp[0] + tmp[1] + tmp[2]; - triangle_eval[3] += factor * sum; + triangle_eval[3] += factor * sum; } } - + /*utils::logmesg(lmp,"UF3: {} {} {} {} {} {} {}\n",itype,jtype,ktype, *triangle_eval,*(triangle_eval + 1),*(triangle_eval + 2), *(triangle_eval + 3));*/ @@ -2629,14 +2629,14 @@ double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,r); double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; - force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; - force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; + force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; fforce = factor_lj * force_2b; double rth = rsq*r; From 49181bfe8d70959d9ae17c7be46e54acd91b8dc3 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 18:58:26 -0400 Subject: [PATCH 079/313] constants was changed from std::vector to fixed length array --- src/ML-UF3/uf3_bspline_basis2.cpp | 29 +++++++++++------- src/ML-UF3/uf3_bspline_basis2.h | 3 +- src/ML-UF3/uf3_bspline_basis3.cpp | 50 ++++++++++++++++++++----------- src/ML-UF3/uf3_bspline_basis3.h | 2 +- 4 files changed, 55 insertions(+), 29 deletions(-) diff --git a/src/ML-UF3/uf3_bspline_basis2.cpp b/src/ML-UF3/uf3_bspline_basis2.cpp index 7c16ab79d0..bb73e07970 100644 --- a/src/ML-UF3/uf3_bspline_basis2.cpp +++ b/src/ML-UF3/uf3_bspline_basis2.cpp @@ -36,9 +36,12 @@ uf3_bspline_basis2::uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); c2 = coefficient * (1.0 / (square(knots[0]) - knots[0] * knots[1] - knots[0] * knots[2] + knots[1] * knots[2])); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + constants[0] = c0; + constants[1] = c1; + constants[2] = c2; c0 = coefficient * (-knots[1] * knots[3] / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - @@ -56,9 +59,12 @@ uf3_bspline_basis2::uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double c2 = coefficient * (-1.0 / (square(knots[1]) - knots[1] * knots[2] - knots[1] * knots[3] + knots[2] * knots[3]) - 1.0 / (knots[0] * knots[1] - knots[0] * knots[2] - knots[1] * knots[2] + square(knots[2]))); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + constants[3] = c0; + constants[4] = c1; + constants[5] = c2; c0 = coefficient * (square(knots[3]) / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); @@ -67,9 +73,12 @@ uf3_bspline_basis2::uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); c2 = coefficient * (1.0 / (knots[1] * knots[2] - knots[1] * knots[3] - knots[2] * knots[3] + square(knots[3]))); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + constants[6] = c0; + constants[7] = c1; + constants[8] = c2; } uf3_bspline_basis2::~uf3_bspline_basis2() {} @@ -96,7 +105,7 @@ double uf3_bspline_basis2::memory_usage() { double bytes = 0; - bytes += (double)constants.size()*sizeof(double); + bytes += (double)9*sizeof(double); return bytes; } diff --git a/src/ML-UF3/uf3_bspline_basis2.h b/src/ML-UF3/uf3_bspline_basis2.h index 90c6166f8c..b577e0c92a 100644 --- a/src/ML-UF3/uf3_bspline_basis2.h +++ b/src/ML-UF3/uf3_bspline_basis2.h @@ -28,7 +28,8 @@ class uf3_bspline_basis2 { public: uf3_bspline_basis2(LAMMPS *ulmp, const double *knots, double coefficient); ~uf3_bspline_basis2(); - std::vector constants; + //std::vector constants; + double constants[9] = {}; double eval0(double, double); double eval1(double, double); double eval2(double, double); diff --git a/src/ML-UF3/uf3_bspline_basis3.cpp b/src/ML-UF3/uf3_bspline_basis3.cpp index 3ed256777b..b2c7aa2acb 100644 --- a/src/ML-UF3/uf3_bspline_basis3.cpp +++ b/src/ML-UF3/uf3_bspline_basis3.cpp @@ -53,10 +53,14 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double square(knots[0]) * knots[3] - knots[0] * knots[1] * knots[2] - knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + knots[1] * knots[2] * knots[3])); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); - constants.push_back(c3); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + //constants.push_back(c3); + constants[0] = c0; + constants[1] = c1; + constants[2] = c2; + constants[3] = c3; c0 = coefficient * (square(knots[1]) * knots[4] / (-cube(knots[1]) + square(knots[1]) * knots[2] + square(knots[1]) * knots[3] + @@ -161,10 +165,14 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double knots[0] * knots[1] * knots[3] - knots[0] * knots[2] * knots[3] + square(knots[1]) * knots[3] - knots[1] * knots[2] * knots[3] - knots[1] * square(knots[3]) + knots[2] * square(knots[3]))); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); - constants.push_back(c3); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + //constants.push_back(c3); + constants[4] = c0; + constants[5] = c1; + constants[6] = c2; + constants[7] = c3; c0 = coefficient * (-knots[0] * square(knots[3]) / (-knots[0] * knots[1] * knots[2] + knots[0] * knots[1] * knots[3] + @@ -269,10 +277,14 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double knots[1] * knots[2] * knots[4] - knots[1] * knots[3] * knots[4] + square(knots[2]) * knots[4] - knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) + knots[3] * square(knots[4]))); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); - constants.push_back(c3); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + //constants.push_back(c3); + constants[8] = c0; + constants[9] = c1; + constants[10] = c2; + constants[11] = c3; c0 = coefficient * (cube(knots[4]) / (-knots[1] * knots[2] * knots[3] + knots[1] * knots[2] * knots[4] + @@ -297,10 +309,14 @@ uf3_bspline_basis3::uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double knots[1] * knots[3] * knots[4] - knots[1] * square(knots[4]) + knots[2] * knots[3] * knots[4] - knots[2] * square(knots[4]) - knots[3] * square(knots[4]) + cube(knots[4]))); - constants.push_back(c0); - constants.push_back(c1); - constants.push_back(c2); - constants.push_back(c3); + //constants.push_back(c0); + //constants.push_back(c1); + //constants.push_back(c2); + //constants.push_back(c3); + constants[12] = c0; + constants[13] = c1; + constants[14] = c2; + constants[15] = c3; } uf3_bspline_basis3::~uf3_bspline_basis3() {} @@ -333,7 +349,7 @@ double uf3_bspline_basis3::memory_usage() { double bytes = 0; - bytes += (double)constants.size()*sizeof(double); + bytes += (double)16*sizeof(double); return bytes; } diff --git a/src/ML-UF3/uf3_bspline_basis3.h b/src/ML-UF3/uf3_bspline_basis3.h index 099a2302c7..70e1bbd2aa 100644 --- a/src/ML-UF3/uf3_bspline_basis3.h +++ b/src/ML-UF3/uf3_bspline_basis3.h @@ -29,7 +29,7 @@ class uf3_bspline_basis3 { public: uf3_bspline_basis3(LAMMPS *ulmp, const double *knots, double coefficient); ~uf3_bspline_basis3(); - std::vector constants; + double constants[16] = {}; double eval0(double, double, double); double eval1(double, double, double); double eval2(double, double, double); From f02c65e12e15abaf89c26fc3f616437052a6c77e Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 18:59:49 -0400 Subject: [PATCH 080/313] Removed uf3_pair_bspline and uf3_triplet_bspline --- src/ML-UF3/uf3_pair_bspline.cpp | 213 ------------ src/ML-UF3/uf3_pair_bspline.h | 59 ---- src/ML-UF3/uf3_triplet_bspline.cpp | 508 ----------------------------- src/ML-UF3/uf3_triplet_bspline.h | 63 ---- 4 files changed, 843 deletions(-) delete mode 100644 src/ML-UF3/uf3_pair_bspline.cpp delete mode 100644 src/ML-UF3/uf3_pair_bspline.h delete mode 100644 src/ML-UF3/uf3_triplet_bspline.cpp delete mode 100644 src/ML-UF3/uf3_triplet_bspline.h diff --git a/src/ML-UF3/uf3_pair_bspline.cpp b/src/ML-UF3/uf3_pair_bspline.cpp deleted file mode 100644 index 92068d117d..0000000000 --- a/src/ML-UF3/uf3_pair_bspline.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 "uf3_pair_bspline.h" - -#include "uf3_bspline_basis2.h" -#include "uf3_bspline_basis3.h" - -#include "utils.h" -#include "error.h" -#include - -using namespace LAMMPS_NS; - -// Dummy constructor -uf3_pair_bspline::uf3_pair_bspline() {} - -// Constructor -// Passing vectors by reference -uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, - const std::vector &ucoeff_vect, - const int &uknot_spacing_type) -{ - lmp = ulmp; - knot_vect = uknot_vect; - coeff_vect = ucoeff_vect; - - knot_spacing_type = uknot_spacing_type; - if (knot_spacing_type==0){ - knot_spacing = knot_vect[4]-knot_vect[3]; - get_starting_index=&uf3_pair_bspline::get_starting_index_uniform; - } - else if (knot_spacing_type==1){ - knot_spacing = 0; - get_starting_index=&uf3_pair_bspline::get_starting_index_nonuniform; - } - - else - lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ - '1'(non-uniform knots)"); - - knot_vect_size = uknot_vect.size(); - coeff_vect_size = ucoeff_vect.size(); - - // Initialize B-Spline Basis Functions - for (int i = 0; i < knot_vect.size() - 4; i++) - bspline_bases.push_back(uf3_bspline_basis3(lmp, &knot_vect[i], coeff_vect[i])); - - // Initialize Coefficients and Knots for Derivatives - // The last coefficient needs to be droped - for (int i = 0; i < coeff_vect_size - 1; i++) { - double dntemp4 = 3 / (knot_vect[i + 4] - knot_vect[i + 1]); - dncoeff_vect.push_back((coeff_vect[i + 1] - coeff_vect[i]) * dntemp4); - } - //What we have is a clamped bspline -->i.e value of the bspline curve at the - //knots with multiplicity equal to the degree of bspline is equal to the coefficient - // - //Therefore for the derivative bspline the very first and last knot needs to be droped - //to change their multiplicity from 4 (necessary condition for clamped cubic bspline) - //to 3 (necessary condition for clamped quadratic bspline) - // - //Also if the coeff vector size of decreases by 1 for the derivative bspline - //knots size needs to go down by 2 as ==> knots = coefficient + degree + 1 - for (int i = 1; i < knot_vect_size - 1; i++) dnknot_vect.push_back(knot_vect[i]); - - // Initialize B-Spline Derivative Basis Functions - for (int i = 0; i < dnknot_vect.size() - 3; i++) - dnbspline_bases.push_back(uf3_bspline_basis2(lmp, &dnknot_vect[i], dncoeff_vect[i])); -} - -// Constructor -// Passing arrays -uf3_pair_bspline::uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, - const int uknot_array_size, - const double* ucoeff_array, - const int ucoeff_array_size, - const int uknot_spacing_type) -{ - lmp = ulmp; - - knot_vect = std::vector (uknot_array, uknot_array + uknot_array_size); - coeff_vect = std::vector (ucoeff_array, ucoeff_array + ucoeff_array_size); - - knot_spacing_type = uknot_spacing_type; - if (knot_spacing_type==0){ - knot_spacing = knot_vect[4]-knot_vect[3]; - get_starting_index=&uf3_pair_bspline::get_starting_index_uniform; - } - else if (knot_spacing_type==1){ - knot_spacing = 0; - get_starting_index=&uf3_pair_bspline::get_starting_index_nonuniform; - } - - else - lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ - '1'(non-uniform knots)"); - - knot_vect_size = uknot_array_size; - coeff_vect_size = ucoeff_array_size; - - // Initialize B-Spline Basis Functions - for (int i = 0; i < knot_vect.size() - 4; i++) - bspline_bases.push_back(uf3_bspline_basis3(lmp, &knot_vect[i], coeff_vect[i])); - - // Initialize Coefficients and Knots for Derivatives - // The last coefficient needs to be droped - for (int i = 0; i < coeff_vect_size - 1; i++) { - double dntemp4 = 3 / (knot_vect[i + 4] - knot_vect[i + 1]); - dncoeff_vect.push_back((coeff_vect[i + 1] - coeff_vect[i]) * dntemp4); - } - //What we have is a clamped bspline -->i.e value of the bspline curve at the - //knots with multiplicity equal to the degree of bspline is equal to the coefficient - // - //Therefore for the derivative bspline the very first and last knot needs to be droped - //to change their multiplicity from 4 (necessary condition for clamped cubic bspline) - //to 3 (necessary condition for clamped quadratic bspline) - // - //Also if the coeff vector size of decreases by 1 for the derivative bspline - //knots size needs to go down by 2 as ==> knots = coefficient + degree + 1 - for (int i = 1; i < knot_vect_size - 1; i++) dnknot_vect.push_back(knot_vect[i]); - - // Initialize B-Spline Derivative Basis Functions - for (int i = 0; i < dnknot_vect.size() - 3; i++) - dnbspline_bases.push_back(uf3_bspline_basis2(lmp, &dnknot_vect[i], dncoeff_vect[i])); -} - -uf3_pair_bspline::~uf3_pair_bspline() {} - -int uf3_pair_bspline::get_starting_index_uniform(double r) -{ - return 3+(int)((r-knot_vect[0])/knot_spacing); -} - -int uf3_pair_bspline::get_starting_index_nonuniform(double r) -{ - if (knot_vect.front() <= r && r < knot_vect.back()) { - //Determine the interval for value_rij - for (int i = 3; i < knot_vect_size - 1; ++i) { - if (knot_vect[i] <= r && r < knot_vect[i + 1]) { - return i; - } - } - } -} - -double *uf3_pair_bspline::eval(double r) -{ - - // Find knot starting position - - int start_index=(this->*get_starting_index)(r); - /*if (knot_vect.front() <= r && r < knot_vect.back()) { - //Determine the interval for value_rij - for (int i = 3; i < knot_vect_size - 1; ++i) { - if (knot_vect[i] <= r && r < knot_vect[i + 1]) { - start_index = i; - break; - } - } - }*/ - - int knot_affect_start = start_index - 3; - - double rsq = r * r; - double rth = rsq * r; - - // Calculate energy - - ret_val[0] = bspline_bases[knot_affect_start + 3].eval0(rth, rsq, r); - ret_val[0] += bspline_bases[knot_affect_start + 2].eval1(rth, rsq, r); - ret_val[0] += bspline_bases[knot_affect_start + 1].eval2(rth, rsq, r); - ret_val[0] += bspline_bases[knot_affect_start].eval3(rth, rsq, r); - - // Calculate force - - ret_val[1] = dnbspline_bases[knot_affect_start + 2].eval0(rsq, r); - ret_val[1] += dnbspline_bases[knot_affect_start + 1].eval1(rsq, r); - ret_val[1] += dnbspline_bases[knot_affect_start].eval2(rsq, r); - - return ret_val; -} - -double uf3_pair_bspline::memory_usage() -{ - double bytes = 0; - - bytes += (double)2*sizeof(int); //knot_vect_size, - //coeff_vect_size - bytes += (double)knot_vect.size()*sizeof(double); //knot_vect - bytes += (double)dnknot_vect.size()*sizeof(double); //dnknot_vect - bytes += (double)coeff_vect.size()*sizeof(double); //coeff_vect - bytes += (double)dncoeff_vect.size()*sizeof(double); //dncoeff_vect - - for (int i = 0; i < knot_vect.size() - 4; i++) - bytes += (double)bspline_bases[i].memory_usage(); //bspline_basis3 - - for (int i = 0; i < dnknot_vect.size() - 3; i++) - bytes += (double)dnbspline_bases[i].memory_usage(); //bspline_basis2 - - bytes += (double)2*sizeof(double); //ret_val - - return bytes; -} diff --git a/src/ML-UF3/uf3_pair_bspline.h b/src/ML-UF3/uf3_pair_bspline.h deleted file mode 100644 index 3f4fe696ef..0000000000 --- a/src/ML-UF3/uf3_pair_bspline.h +++ /dev/null @@ -1,59 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 "pointers.h" - -#include "uf3_bspline_basis2.h" -#include "uf3_bspline_basis3.h" - -#include - -#ifndef UF3_PAIR_BSPLINE_H -#define UF3_PAIR_BSPLINE_H - -namespace LAMMPS_NS { - -class uf3_pair_bspline { - private: - int knot_vect_size, coeff_vect_size; - std::vector knot_vect, dnknot_vect; - std::vector coeff_vect, dncoeff_vect; - std::vector bspline_bases; - std::vector dnbspline_bases; - int get_starting_index_uniform(double), get_starting_index_nonuniform(double); - int (uf3_pair_bspline::*get_starting_index)(double); - //double knot_spacing=0; - LAMMPS *lmp; - - public: - // dummy constructor - uf3_pair_bspline(); - uf3_pair_bspline(LAMMPS *ulmp, const std::vector &uknot_vect, - const std::vector &ucoeff_vect, - const int &uknot_spacing_type); - - uf3_pair_bspline(LAMMPS *ulmp, const double* uknot_array, - const int uknot_array_size, - const double* ucoeff_array, - const int ucoeff_array_size, - const int uknot_spacing_type); - - ~uf3_pair_bspline(); - int knot_spacing_type; - double knot_spacing=0; - double ret_val[2]; - double *eval(double value_rij); - double memory_usage(); -}; -} // namespace LAMMPS_NS -#endif diff --git a/src/ML-UF3/uf3_triplet_bspline.cpp b/src/ML-UF3/uf3_triplet_bspline.cpp deleted file mode 100644 index 0527599965..0000000000 --- a/src/ML-UF3/uf3_triplet_bspline.cpp +++ /dev/null @@ -1,508 +0,0 @@ -/* ---------------------------------------------------------------------- - 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 "uf3_triplet_bspline.h" -#include "error.h" - -#include - -using namespace LAMMPS_NS; - -// Dummy constructor -uf3_triplet_bspline::uf3_triplet_bspline(){}; - -// Construct a new 3D B-Spline -uf3_triplet_bspline::uf3_triplet_bspline( - LAMMPS *ulmp, const std::vector> &uknot_matrix, - const std::vector>> &ucoeff_matrix, - const int &uknot_spacing_type) -{ - lmp = ulmp; - knot_matrix = uknot_matrix; - coeff_matrix = ucoeff_matrix; - - knot_spacing_type = uknot_spacing_type; - if (knot_spacing_type==0){ - knot_spacing_ij = knot_matrix[2][4]-knot_matrix[2][3]; - knot_spacing_ik = knot_matrix[1][4]-knot_matrix[1][3]; - knot_spacing_jk = knot_matrix[0][4]-knot_matrix[0][3]; - get_starting_index=&uf3_triplet_bspline::get_starting_index_uniform; - } - else if (knot_spacing_type==1){ - knot_spacing_ij = 0; - knot_spacing_ik = 0; - knot_spacing_jk = 0; - get_starting_index=&uf3_triplet_bspline::get_starting_index_nonuniform; - } - - else - lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ - '1'(non-uniform knots)"); - - knot_vect_size_ij = knot_matrix[2].size(); - knot_vect_size_ik = knot_matrix[1].size(); - knot_vect_size_jk = knot_matrix[0].size(); - - int resolution_ij = knot_vect_size_ij - 4; - int resolution_ik = knot_vect_size_ik - 4; - int resolution_jk = knot_vect_size_jk - 4; - - // Cache Spline Basis Functions - for (int l = 0; l < resolution_ij; l++) { - bsplines_ij.push_back(uf3_bspline_basis3(lmp, &knot_matrix[2][l], 1)); - } - - for (int l = 0; l < resolution_ik; l++) { - // Reuse jk Basis if Knots match - if (knot_matrix[1][l] == knot_matrix[2][l] && knot_matrix[1][l + 1] == knot_matrix[2][l + 1] && - knot_matrix[1][l + 2] == knot_matrix[2][l + 2] && - knot_matrix[1][l + 3] == knot_matrix[2][l + 3]) - bsplines_ik.push_back(bsplines_ij[l]); - else - bsplines_ik.push_back(uf3_bspline_basis3(lmp, &knot_matrix[1][l], 1)); - } - - for (int l = 0; l < resolution_jk; l++) { - bsplines_jk.push_back(uf3_bspline_basis3(lmp, &knot_matrix[0][l], 1)); - } - - // Initialize Coefficients for Derivatives - for (int i = 0; i < coeff_matrix.size(); i++) { - std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_matrix[0].size(); j++) { - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size() - 1; k++) { - double dntemp4 = 3 / (knot_matrix[0][k + 4] - knot_matrix[0][k + 1]); - dncoeff_vect.push_back((coeff_matrix[i][j][k + 1] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_jk.push_back(dncoeff_vect2); - } - - for (int i = 0; i < coeff_matrix.size(); i++) { - std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_matrix[0].size() - 1; j++) { - double dntemp4 = 3 / (knot_matrix[1][j + 4] - knot_matrix[1][j + 1]); - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size(); k++) { - dncoeff_vect.push_back((coeff_matrix[i][j + 1][k] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_ik.push_back(dncoeff_vect2); - } - - for (int i = 0; i < coeff_matrix.size() - 1; i++) { - std::vector> dncoeff_vect2; - double dntemp4 = 3 / (knot_matrix[2][i + 4] - knot_matrix[2][i + 1]); - for (int j = 0; j < coeff_matrix[0].size(); j++) { - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size(); k++) { - dncoeff_vect.push_back((coeff_matrix[i + 1][j][k] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_ij.push_back(dncoeff_vect2); - } - - std::vector> dnknot_matrix; - for (int i = 0; i < knot_matrix.size(); i++) { - std::vector dnknot_vect; - for (int j = 1; j < knot_matrix[0].size() - 1; j++) { - dnknot_vect.push_back(knot_matrix[i][j]); - } - dnknot_matrix.push_back(dnknot_vect); - } - - // Cache Derivative Spline Basis Functions - for (int l = 0; l < resolution_ij - 1; l++) { - dnbsplines_ij.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[2][l], 1)); - } - - for (int l = 0; l < resolution_ik - 1; l++) { - // Reuse jk Basis if Knots match - if (dnknot_matrix[1][l] == dnknot_matrix[2][l] && - dnknot_matrix[1][l + 1] == dnknot_matrix[2][l + 1] && - dnknot_matrix[1][l + 2] == dnknot_matrix[2][l + 2]) - dnbsplines_ik.push_back(dnbsplines_ij[l]); - else - dnbsplines_ik.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[1][l], 1)); - } - - for (int l = 0; l < resolution_jk - 1; l++) { - dnbsplines_jk.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[0][l], 1)); - } -} - -// Construct a new 3D B-Spline from arrays -uf3_triplet_bspline::uf3_triplet_bspline( - LAMMPS *ulmp, double **uknot_array, const int *uknot_array_size, - double ***ucoeff_array, const int *ucoeff_array_size, - const int &uknot_spacing_type) -{ - lmp = ulmp; - - knot_matrix.resize(3); - //utils::logmesg(lmp, "knot_matrix dim = {} {} {}\nknots = ",uknot_array_size[0], - // uknot_array_size[1], uknot_array_size[2]); - for (int i = 0; i < 3; i++) { - knot_matrix[i].resize(uknot_array_size[i]); - //utils::logmesg(lmp, "{}= ",i); - for (int j = 0; j < uknot_array_size[i]; j++) { - //utils::logmesg(lmp, "{} ", uknot_array[i][j]); - knot_matrix[i][j] = uknot_array[i][j]; - } - //utils::logmesg(lmp,"\n"); - } - - coeff_matrix.resize(ucoeff_array_size[0]); - for (int i = 0; i < ucoeff_array_size[0]; i++) { - coeff_matrix[i].resize(ucoeff_array_size[1]); - for (int j = 0; j < ucoeff_array_size[1]; j++) { - coeff_matrix[i][j].resize(ucoeff_array_size[2]); - for (int k = 0; k < ucoeff_array_size[2]; k++){ - coeff_matrix[i][j][k] = ucoeff_array[i][j][k]; - } - } - } - - knot_spacing_type = uknot_spacing_type; - if (knot_spacing_type==0){ - knot_spacing_ij = knot_matrix[2][4]-knot_matrix[2][3]; - knot_spacing_ik = knot_matrix[1][4]-knot_matrix[1][3]; - knot_spacing_jk = knot_matrix[0][4]-knot_matrix[0][3]; - get_starting_index=&uf3_triplet_bspline::get_starting_index_uniform; - } - else if (knot_spacing_type==1){ - knot_spacing_ij = 0; - knot_spacing_ik = 0; - knot_spacing_jk = 0; - get_starting_index=&uf3_triplet_bspline::get_starting_index_nonuniform; - } - - else - lmp->error->all(FLERR, "UF3: Expected either '0'(uniform-knots) or \n\ - '1'(non-uniform knots)"); - - knot_vect_size_ij = knot_matrix[2].size(); - knot_vect_size_ik = knot_matrix[1].size(); - knot_vect_size_jk = knot_matrix[0].size(); - - int resolution_ij = knot_vect_size_ij - 4; - int resolution_ik = knot_vect_size_ik - 4; - int resolution_jk = knot_vect_size_jk - 4; - - // Cache Spline Basis Functions - for (int l = 0; l < resolution_ij; l++) { - bsplines_ij.push_back(uf3_bspline_basis3(lmp, &knot_matrix[2][l], 1)); - } - - for (int l = 0; l < resolution_ik; l++) { - // Reuse jk Basis if Knots match - if (knot_matrix[1][l] == knot_matrix[2][l] && knot_matrix[1][l + 1] == knot_matrix[2][l + 1] && - knot_matrix[1][l + 2] == knot_matrix[2][l + 2] && - knot_matrix[1][l + 3] == knot_matrix[2][l + 3]) - bsplines_ik.push_back(bsplines_ij[l]); - else - bsplines_ik.push_back(uf3_bspline_basis3(lmp, &knot_matrix[1][l], 1)); - } - - for (int l = 0; l < resolution_jk; l++) { - bsplines_jk.push_back(uf3_bspline_basis3(lmp, &knot_matrix[0][l], 1)); - } - - // Initialize Coefficients for Derivatives - for (int i = 0; i < coeff_matrix.size(); i++) { - std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_matrix[0].size(); j++) { - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size() - 1; k++) { - double dntemp4 = 3 / (knot_matrix[0][k + 4] - knot_matrix[0][k + 1]); - dncoeff_vect.push_back((coeff_matrix[i][j][k + 1] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_jk.push_back(dncoeff_vect2); - } - - for (int i = 0; i < coeff_matrix.size(); i++) { - std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_matrix[0].size() - 1; j++) { - double dntemp4 = 3 / (knot_matrix[1][j + 4] - knot_matrix[1][j + 1]); - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size(); k++) { - dncoeff_vect.push_back((coeff_matrix[i][j + 1][k] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_ik.push_back(dncoeff_vect2); - } - - for (int i = 0; i < coeff_matrix.size() - 1; i++) { - std::vector> dncoeff_vect2; - double dntemp4 = 3 / (knot_matrix[2][i + 4] - knot_matrix[2][i + 1]); - for (int j = 0; j < coeff_matrix[0].size(); j++) { - std::vector dncoeff_vect; - for (int k = 0; k < coeff_matrix[0][0].size(); k++) { - dncoeff_vect.push_back((coeff_matrix[i + 1][j][k] - coeff_matrix[i][j][k]) * dntemp4); - } - dncoeff_vect2.push_back(dncoeff_vect); - } - dncoeff_matrix_ij.push_back(dncoeff_vect2); - } - - std::vector> dnknot_matrix; - for (int i = 0; i < knot_matrix.size(); i++) { - std::vector dnknot_vect; - for (int j = 1; j < knot_matrix[0].size() - 1; j++) { - dnknot_vect.push_back(knot_matrix[i][j]); - } - dnknot_matrix.push_back(dnknot_vect); - } - - // Cache Derivative Spline Basis Functions - for (int l = 0; l < resolution_ij - 1; l++) { - dnbsplines_ij.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[2][l], 1)); - } - - for (int l = 0; l < resolution_ik - 1; l++) { - // Reuse jk Basis if Knots match - if (dnknot_matrix[1][l] == dnknot_matrix[2][l] && - dnknot_matrix[1][l + 1] == dnknot_matrix[2][l + 1] && - dnknot_matrix[1][l + 2] == dnknot_matrix[2][l + 2]) - dnbsplines_ik.push_back(dnbsplines_ij[l]); - else - dnbsplines_ik.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[1][l], 1)); - } - - for (int l = 0; l < resolution_jk - 1; l++) { - dnbsplines_jk.push_back(uf3_bspline_basis2(lmp, &dnknot_matrix[0][l], 1)); - } -} - - -// Destructor -uf3_triplet_bspline::~uf3_triplet_bspline() {} - -// Evaluate 3D B-Spline value -double *uf3_triplet_bspline::eval(double value_rij, double value_rik, double value_rjk) -{ - - // Find starting knots - - //int iknot_ij = starting_knot(knot_matrix[2], knot_vect_size_ij, value_rij) - 3; - //int iknot_ik = starting_knot(knot_matrix[1], knot_vect_size_ik, value_rik) - 3; - //int iknot_jk = starting_knot(knot_matrix[0], knot_vect_size_jk, value_rjk) - 3; - int iknot_ij = (this->*get_starting_index)(knot_matrix[2], knot_vect_size_ij, value_rij,knot_spacing_ij) - 3; - int iknot_ik = (this->*get_starting_index)(knot_matrix[1], knot_vect_size_ik, value_rik,knot_spacing_ik) - 3; - int iknot_jk = (this->*get_starting_index)(knot_matrix[0], knot_vect_size_jk, value_rjk,knot_spacing_jk) - 3; - - double rsq_ij = value_rij * value_rij; - double rsq_ik = value_rik * value_rik; - double rsq_jk = value_rjk * value_rjk; - double rth_ij = rsq_ij * value_rij; - double rth_ik = rsq_ik * value_rik; - double rth_jk = rsq_jk * value_rjk; - - // Calculate energies - - double basis_ij[4]; - basis_ij[0] = bsplines_ij[iknot_ij].eval3(rth_ij, rsq_ij, value_rij); - basis_ij[1] = bsplines_ij[iknot_ij + 1].eval2(rth_ij, rsq_ij, value_rij); - basis_ij[2] = bsplines_ij[iknot_ij + 2].eval1(rth_ij, rsq_ij, value_rij); - basis_ij[3] = bsplines_ij[iknot_ij + 3].eval0(rth_ij, rsq_ij, value_rij); - - double basis_ik[4]; - basis_ik[0] = bsplines_ik[iknot_ik].eval3(rth_ik, rsq_ik, value_rik); - basis_ik[1] = bsplines_ik[iknot_ik + 1].eval2(rth_ik, rsq_ik, value_rik); - basis_ik[2] = bsplines_ik[iknot_ik + 2].eval1(rth_ik, rsq_ik, value_rik); - basis_ik[3] = bsplines_ik[iknot_ik + 3].eval0(rth_ik, rsq_ik, value_rik); - - double basis_jk[4]; - basis_jk[0] = bsplines_jk[iknot_jk].eval3(rth_jk, rsq_jk, value_rjk); - basis_jk[1] = bsplines_jk[iknot_jk + 1].eval2(rth_jk, rsq_jk, value_rjk); - basis_jk[2] = bsplines_jk[iknot_jk + 2].eval1(rth_jk, rsq_jk, value_rjk); - basis_jk[3] = bsplines_jk[iknot_jk + 3].eval0(rth_jk, rsq_jk, value_rjk); - - ret_val[0] = 0; - ret_val[1] = 0; - ret_val[2] = 0; - ret_val[3] = 0; - - for (int i = 0; i < 4; i++) { - const double basis_iji = basis_ij[i]; // prevent repeated access of same memory location - for (int j = 0; j < 4; j++) { - const double factor = basis_iji * basis_ik[j]; // prevent repeated access of same memory location - const double* slice = &coeff_matrix[i + iknot_ij][j + iknot_ik][iknot_jk]; // declare a contigues 1D slice of memory - double tmp[4]; // declare tmp array that holds the 4 tmp values so the can be computed simultaniously in 4 separate registeres. - tmp[0] = slice[0] * basis_jk[0]; - tmp[1] = slice[1] * basis_jk[1]; - tmp[2] = slice[2] * basis_jk[2]; - tmp[3] = slice[3] * basis_jk[3]; - double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; - ret_val[0] += factor * sum; // use 1 fused multiply-add (FMA) - } - } - - // Calculate forces - - double dnbasis_ij[4]; - dnbasis_ij[0] = dnbsplines_ij[iknot_ij].eval2(rsq_ij, value_rij); - dnbasis_ij[1] = dnbsplines_ij[iknot_ij + 1].eval1(rsq_ij, value_rij); - dnbasis_ij[2] = dnbsplines_ij[iknot_ij + 2].eval0(rsq_ij, value_rij); - dnbasis_ij[3] = 0; - - double dnbasis_ik[4]; - dnbasis_ik[0] = dnbsplines_ik[iknot_ik].eval2(rsq_ik, value_rik); - dnbasis_ik[1] = dnbsplines_ik[iknot_ik + 1].eval1(rsq_ik, value_rik); - dnbasis_ik[2] = dnbsplines_ik[iknot_ik + 2].eval0(rsq_ik, value_rik); - dnbasis_ik[3] = 0; - - double dnbasis_jk[4]; - dnbasis_jk[0] = dnbsplines_jk[iknot_jk].eval2(rsq_jk, value_rjk); - dnbasis_jk[1] = dnbsplines_jk[iknot_jk + 1].eval1(rsq_jk, value_rjk); - dnbasis_jk[2] = dnbsplines_jk[iknot_jk + 2].eval0(rsq_jk, value_rjk); - dnbasis_jk[3] = 0; - - for (int i = 0; i < 3; i++) { - const double dnbasis_iji = dnbasis_ij[i]; - for (int j = 0; j < 4; j++) { - const double factor = dnbasis_iji * basis_ik[j]; - const double* slice = &dncoeff_matrix_ij[iknot_ij + i][iknot_ik + j][iknot_jk]; - double tmp[4]; - tmp[0] = slice[0] * basis_jk[0]; - tmp[1] = slice[1] * basis_jk[1]; - tmp[2] = slice[2] * basis_jk[2]; - tmp[3] = slice[3] * basis_jk[3]; - double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; - ret_val[1] += factor * sum; - } - } - - for (int i = 0; i < 4; i++) { - const double basis_iji = basis_ij[i]; - for (int j = 0; j < 3; j++) { - const double factor = basis_iji * dnbasis_ik[j]; - const double* slice = &dncoeff_matrix_ik[iknot_ij + i][iknot_ik + j][iknot_jk]; - double tmp[4]; - tmp[0] = slice[0] * basis_jk[0]; - tmp[1] = slice[1] * basis_jk[1]; - tmp[2] = slice[2] * basis_jk[2]; - tmp[3] = slice[3] * basis_jk[3]; - double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; - ret_val[2] += factor * sum; - } - } - - for (int i = 0; i < 4; i++) { - const double basis_iji = basis_ij[i]; - for (int j = 0; j < 4; j++) { - const double factor = basis_iji * basis_ik[j]; - const double* slice = &dncoeff_matrix_jk[iknot_ij + i][iknot_ik + j][iknot_jk]; - double tmp[3]; - tmp[0] = slice[0] * dnbasis_jk[0]; - tmp[1] = slice[1] * dnbasis_jk[1]; - tmp[2] = slice[2] * dnbasis_jk[2]; - double sum = tmp[0] + tmp[1] + tmp[2]; - ret_val[3] += factor * sum; - } - } - - return ret_val; -} - -// Find starting knot for spline evaluation - -int uf3_triplet_bspline::starting_knot(const std::vector knot_vect, int knot_vect_size, - double r) -{ - if (knot_vect.front() <= r && r < knot_vect.back()) { - for (int i = 3; i < knot_vect_size - 1; i++) { - if (knot_vect[i] <= r && r < knot_vect[i + 1]) return i; - } - } - - return 0; -} - -int uf3_triplet_bspline::get_starting_index_uniform(const std::vector knot_vect, int knot_vect_size, - double r, double knot_spacing) -{ - return 3+(int)((r-knot_vect[0])/knot_spacing); -} - -int uf3_triplet_bspline::get_starting_index_nonuniform(const std::vector knot_vect, int knot_vect_size, - double r, double knot_spacing) -{ - if (knot_vect.front() <= r && r < knot_vect.back()) { - //Determine the interval for value_rij - for (int i = 3; i < knot_vect_size - 1; ++i) { - if (knot_vect[i] <= r && r < knot_vect[i + 1]) { - return i; - } - } - } - return -1; -} - -double uf3_triplet_bspline::memory_usage() -{ - double bytes = 0; - - bytes += (double) 3*sizeof(int); //knot_vect_size_ij, - //knot_vect_size_ik, - //knot_vect_size_jk; - - for (int i=0; i - -#ifndef UF3_TRIPLET_BSPLINE_H -#define UF3_TRIPLET_BSPLINE_H - -namespace LAMMPS_NS { -class uf3_triplet_bspline { - private: - LAMMPS *lmp; - int knot_vect_size_ij, knot_vect_size_ik, knot_vect_size_jk; - std::vector>> coeff_matrix, dncoeff_matrix_ij, dncoeff_matrix_ik, - dncoeff_matrix_jk; - std::vector> knot_matrix; - std::vector bsplines_ij, bsplines_ik, bsplines_jk; - std::vector dnbsplines_ij, dnbsplines_ik, dnbsplines_jk; - int get_starting_index_uniform(const std::vector, int, double, double); - int get_starting_index_nonuniform(const std::vector, int, double, double); - int (uf3_triplet_bspline::*get_starting_index)(const std::vector, int, double, double); - //double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; - //double _alignvar(, 8) ret_val[4]; // Force memory alignment on 8 byte boundaries - double ret_val[4]; - - int starting_knot(const std::vector, int, double); - - public: - //Dummy Constructor - uf3_triplet_bspline(); - uf3_triplet_bspline(LAMMPS *ulmp, const std::vector> &uknot_matrix, - const std::vector>> &ucoeff_matrix, - const int &uknot_spacing_type); - - uf3_triplet_bspline(LAMMPS *ulmp, double **uknot_array, const int *uknot_array_size, - double ***ucoeff_array, const int *ucoeff_array_size, - const int &uknot_spacing_type); - - ~uf3_triplet_bspline(); - int knot_spacing_type; - double knot_spacing_ij=0,knot_spacing_ik=0,knot_spacing_jk=0; - double *eval(double value_rij, double value_rik, double value_rjk); - - double memory_usage(); -}; -} // namespace LAMMPS_NS -#endif From 5f2cae0e088ffa7f167eb2621e5fcfbc73a2eafe Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 19:00:43 -0400 Subject: [PATCH 081/313] Commented out the uniform knot spacing logic as for more than 1 processors was getting some weird errors. Deleted commented (dead) code. Updated the memory_usage function. Reordered some functions to refelect the calling order --- src/ML-UF3/pair_uf3.cpp | 1152 ++++++--------------------------------- 1 file changed, 159 insertions(+), 993 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index b1bacf09e6..1f306b5204 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -36,18 +36,6 @@ #include #include -namespace LAMMPS_NS{ - /*struct UF3Impl { - - //std::vector>> n2b_knot, n2b_coeff; - //std::vector>>>> n3b_knot_matrix; - //std::unordered_map>>> n3b_coeff_matrix; - std::vector> UFBS2b; - std::vector>> UFBS3b; - - };*/ -} - using namespace LAMMPS_NS; using MathConst::THIRD; @@ -56,35 +44,23 @@ using MathConst::THIRD; PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr), - knot_spacing_2b(nullptr), knot_spacing_3b(nullptr) + knot_spacing_2b(nullptr), knot_spacing_3b(nullptr), n2b_knots_array(nullptr), + n2b_coeff_array(nullptr), n2b_knots_array_size(nullptr), + n2b_coeff_array_size(nullptr), cached_constants_2b(nullptr), + cached_constants_2b_deri(nullptr), map_3b(nullptr), n3b_knots_array(nullptr), + n3b_coeff_array(nullptr), n3b_knots_array_size(nullptr), + n3b_coeff_array_size(nullptr), coeff_for_der_jk(nullptr), + coeff_for_der_ik(nullptr), coeff_for_der_ij(nullptr), + cached_constants_3b(nullptr), cached_constants_3b_deri(nullptr), + neighshort(nullptr) { - //uf3_impl = new UF3Impl; single_enable = 1; // 1 if single() routine exists one_coeff = 1; // 1 if allows only one coeff * * call restartinfo = 0; // 1 if pair style writes restart info - maxshort = 10; - neighshort = nullptr; + maxshort = 20; centroidstressflag = CENTROID_AVAIL; manybody_flag = 1; bsplines_created = 0; - - n2b_knots_array = nullptr; - n2b_coeff_array = nullptr; - n2b_knots_array_size = nullptr; - n2b_coeff_array_size = nullptr; - cached_constants_2b = nullptr; - cached_constants_2b_deri = nullptr; - - map_3b = nullptr; - n3b_knots_array = nullptr; - n3b_coeff_array = nullptr; - n3b_knots_array_size = nullptr; - n3b_coeff_array_size = nullptr; - coeff_for_der_jk = nullptr; - coeff_for_der_ik = nullptr; - coeff_for_der_ij = nullptr; - cached_constants_3b = nullptr; - cached_constants_3b_deri = nullptr; } /* ---------------------------------------------------------------------- */ @@ -125,7 +101,6 @@ PairUF3::~PairUF3() memory->destroy(cached_constants_3b_deri); } } - //delete uf3_impl; } /* ---------------------------------------------------------------------- @@ -144,14 +119,9 @@ void PairUF3::settings(int narg, char **arg) if (nbody_flag == 2) { pot_3b = false; manybody_flag = 0; - n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; - tot_pot_files = n2body_pot_files; } else if (nbody_flag == 3) { pot_3b = true; single_enable = 0; - n2body_pot_files = num_of_elements * (num_of_elements + 1) / 2; - n3body_pot_files = num_of_elements * (num_of_elements * (num_of_elements + 1) / 2); - tot_pot_files = n2body_pot_files + n3body_pot_files; } else error->all(FLERR, "Pair style uf3 not (yet) implemented for {}-body terms", nbody_flag); @@ -172,116 +142,7 @@ void PairUF3::coeff(int narg, char **arg) if (comm->me == 0) uf3_read_unified_pot_file(arg[2]); communicate(); - //if (narg != 3 && narg != 5) error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); - /*int ilo, ihi, jlo, jhi, klo, khi; - if (narg == 3) { - utils::bounds(FLERR, arg[0], 1, atom->ntypes, ilo, ihi, error); - utils::bounds(FLERR, arg[1], 1, atom->ntypes, jlo, jhi, error); - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo, i); j <= jhi; j++) uf3_read_pot_file(i, j, arg[2]); - } - } else if (narg == 5) { - utils::bounds(FLERR, arg[1], 1, atom->ntypes, ilo, ihi, error); - utils::bounds(FLERR, arg[2], 1, atom->ntypes, jlo, jhi, error); - utils::bounds(FLERR, arg[3], 1, atom->ntypes, klo, khi, error); - if (!utils::strmatch(arg[0], "^3b$")) - error->all(FLERR, "Pair style uf3 3-body terms require the first argument to be 3b"); - - for (int i = ilo; i <= ihi; i++) { - for (int j = jlo; j <= jhi; j++) { - for (int k = MAX(klo, jlo); k <= khi; k++) uf3_read_pot_file(i, j, k, arg[4]); - } - } - }*/ -} - -//Broadcast data read from potential file to all processors -void PairUF3::communicate() -{ - const int num_of_elements = atom->ntypes; - MPI_Bcast(&cut[0][0], (num_of_elements + 1)*(num_of_elements + 1), - MPI_DOUBLE, 0, world); - - MPI_Bcast(&n2b_knots_array_size[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - MPI_Bcast(&n2b_coeff_array_size[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - - MPI_Bcast(&max_num_knots_2b, 1, MPI_INT, 0, world); - MPI_Bcast(&max_num_coeff_2b, 1, MPI_INT, 0, world); - - if (pot_3b){ - MPI_Bcast(&cut_3b_list[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); - - MPI_Bcast(&cut_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_DOUBLE, 0, world); - - MPI_Bcast(&n3b_knots_array_size[0][0], tot_interaction_count_3b*3, - MPI_INT, 0, world); - MPI_Bcast(&n3b_coeff_array_size[0][0], tot_interaction_count_3b*3, - MPI_INT, 0, world); - - MPI_Bcast(&max_num_knots_3b, 1, MPI_INT, 0, world); - MPI_Bcast(&max_num_coeff_3b, 1, MPI_INT, 0, world); - } - - if (comm->me != 0) { - memory->destroy(n2b_knots_array); - memory->destroy(n2b_coeff_array); - - memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, - max_num_knots_2b, "pair:n2b_knots_array"); - memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, - max_num_coeff_2b, "pair:n2b_coeff_array"); - if (pot_3b) { - memory->destroy(n3b_knots_array); - memory->destroy(n3b_coeff_array); - - memory->create(n3b_knots_array, tot_interaction_count_3b, 3, - max_num_knots_3b, "pair:n3b_knots_array"); - - memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); - } - } - - MPI_Bcast(&knot_spacing_type_2b[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - - MPI_Bcast(&knot_spacing_2b[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - - MPI_Bcast(&n2b_knots_array[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); - MPI_Bcast(&n2b_coeff_array[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*max_num_coeff_2b, MPI_DOUBLE, 0, world); - - MPI_Bcast(&setflag[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - - if (pot_3b) { - MPI_Bcast(&knot_spacing_type_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_INT, 0, world); - - MPI_Bcast(&knot_spacing_3b[0][0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, - MPI_INT, 0, world); - MPI_Bcast(&n3b_knots_array[0][0][0], - tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); - MPI_Bcast(&n3b_coeff_array[0][0][0][0], - tot_interaction_count_3b*max_num_coeff_3b*max_num_coeff_3b*max_num_coeff_3b, - MPI_DOUBLE, 0, world); - MPI_Bcast(&setflag_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_INT, 0, world); - MPI_Bcast(&min_cut_3b[0][0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, - MPI_DOUBLE, 0, world); - } } void PairUF3::allocate() @@ -314,15 +175,6 @@ void PairUF3::allocate() memory->create(n2b_coeff_array_size, num_of_elements + 1, num_of_elements + 1, "pair:n2b_coeff_array_size"); - // Contains knot_vect of 2-body potential for type i and j - //uf3_impl->n2b_knot.resize(num_of_elements + 1); - //uf3_impl->n2b_coeff.resize(num_of_elements + 1); - /*uf3_impl->UFBS2b.resize(num_of_elements + 1); - for (int i = 1; i < num_of_elements + 1; i++) { - //uf3_impl->n2b_knot[i].resize(num_of_elements + 1); - //uf3_impl->n2b_coeff[i].resize(num_of_elements + 1); - uf3_impl->UFBS2b[i].resize(num_of_elements + 1); - }*/ if (pot_3b) { // Contains info about wether UF potential were found for type i, j and k memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, @@ -373,16 +225,6 @@ void PairUF3::allocate() memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, "pair:n3b_coeff_array_size"); - //uf3_impl->n3b_knot_matrix.resize(num_of_elements + 1); - /*uf3_impl->UFBS3b.resize(num_of_elements + 1); - for (int i = 1; i < num_of_elements + 1; i++) { - //uf3_impl->n3b_knot_matrix[i].resize(num_of_elements + 1); - uf3_impl->UFBS3b[i].resize(num_of_elements + 1); - for (int j = 1; j < num_of_elements + 1; j++) { - //uf3_impl->n3b_knot_matrix[i][j].resize(num_of_elements + 1); - uf3_impl->UFBS3b[i][j].resize(num_of_elements + 1); - } - }*/ memory->create(neighshort, maxshort, "pair:neighshort"); } @@ -484,13 +326,13 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //cut is used in init_one which is called by pair.cpp at line 267 //where the return of init_one is squared - cut[itype][jtype] = fp3rd_line.next_double(); //MPI_Bcast + cut[itype][jtype] = fp3rd_line.next_double(); cut[jtype][itype] = cut[itype][jtype]; int num_knots_2b = fp3rd_line.next_int(); - n2b_knots_array_size[itype][jtype] = num_knots_2b; //MPI_Bcast - n2b_knots_array_size[jtype][itype] = num_knots_2b; //MPI_Bcast - max_num_knots_2b = std::max(max_num_knots_2b, num_knots_2b); //MPI_Bcast + n2b_knots_array_size[itype][jtype] = num_knots_2b; + n2b_knots_array_size[jtype][itype] = num_knots_2b; + max_num_knots_2b = std::max(max_num_knots_2b, num_knots_2b); //skip next line txtfilereader.skip_line(); @@ -502,9 +344,9 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp5th_line(temp_line); int num_coeff_2b = fp5th_line.next_int(); - n2b_coeff_array_size[itype][jtype] = num_coeff_2b; //MPI_Bcast - n2b_coeff_array_size[jtype][itype] = num_coeff_2b; //MPI_Bcast - max_num_coeff_2b = std::max(max_num_coeff_2b, num_coeff_2b); //MPI_Bcast + n2b_coeff_array_size[itype][jtype] = num_coeff_2b; + n2b_coeff_array_size[jtype][itype] = num_coeff_2b; + max_num_coeff_2b = std::max(max_num_coeff_2b, num_coeff_2b); } } else if ((nbody_on_file == "3B") && (pot_3b)) { @@ -583,28 +425,28 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) element1, element2, element3); cut_3b_list[itype][jtype] = - std::max(cut3b_rij, cut_3b_list[itype][jtype]); //MPI_Bcast + std::max(cut3b_rij, cut_3b_list[itype][jtype]); cut_3b_list[itype][ktype] = - std::max(cut_3b_list[itype][ktype], cut3b_rik); //MPI_Bcast + std::max(cut_3b_list[itype][ktype], cut3b_rik); - cut_3b[itype][jtype][ktype] = cut3b_rij; //MPI_Bcast - cut_3b[itype][ktype][jtype] = cut3b_rik; //MPI_Bcast + cut_3b[itype][jtype][ktype] = cut3b_rij; + cut_3b[itype][ktype][jtype] = cut3b_rik; int num_knots_3b_jk = fp3rd_line.next_int(); int num_knots_3b_ik = fp3rd_line.next_int(); int num_knots_3b_ij = fp3rd_line.next_int(); - n3b_knots_array_size[map_3b[itype][jtype][ktype]][0] = num_knots_3b_jk; //MPI_Bcast + n3b_knots_array_size[map_3b[itype][jtype][ktype]][0] = num_knots_3b_jk; n3b_knots_array_size[map_3b[itype][jtype][ktype]][1] = num_knots_3b_ik; n3b_knots_array_size[map_3b[itype][jtype][ktype]][2] = num_knots_3b_ij; - n3b_knots_array_size[map_3b[itype][ktype][jtype]][0] = num_knots_3b_jk; //MPI_Bcast + n3b_knots_array_size[map_3b[itype][ktype][jtype]][0] = num_knots_3b_jk; n3b_knots_array_size[map_3b[itype][ktype][jtype]][1] = num_knots_3b_ij; n3b_knots_array_size[map_3b[itype][ktype][jtype]][2] = num_knots_3b_ik; max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_jk); max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ik); - max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ij); //MPI_Bcast + max_num_knots_3b = std::max(max_num_knots_3b, num_knots_3b_ij); //skip next 3 line txtfilereader.skip_line(); @@ -630,7 +472,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) int coeff_matrix_dim2 = fp7th_line.next_int(); int coeff_matrix_dim3 = fp7th_line.next_int(); - n3b_coeff_array_size[map_3b[itype][jtype][ktype]][0] = coeff_matrix_dim1; //MPI_Bcast + n3b_coeff_array_size[map_3b[itype][jtype][ktype]][0] = coeff_matrix_dim1; n3b_coeff_array_size[map_3b[itype][jtype][ktype]][1] = coeff_matrix_dim2; n3b_coeff_array_size[map_3b[itype][jtype][ktype]][2] = coeff_matrix_dim3; @@ -653,11 +495,9 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) } //if of #UF3 POT line_counter++; } // while - //fclose(fp); //Create knot and coeff arrays if (max_num_knots_2b > 0) { - //if (comm->me == 0) memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, max_num_knots_2b, "pair:n2b_knots_array"); } @@ -703,16 +543,6 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //Go through the file again and fill knot and coeff arrays //while loop to read the data - //if (true) { - /*FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) - error->all(FLERR, - "Cannot open UF3 potential file {}: {}", - potf_name, utils::getsyserror()); - - TextFileReader txtfilereader(fp, "UF3:POTFP"); - txtfilereader.ignore_comments = false; - char *line;*/ while((line = txtfilereader.next_line(1))){ Tokenizer line_token(line); @@ -749,7 +579,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //uk or nk? std::string knot_type = fp2nd_line.next_string(); if (knot_type == "uk") { - knot_spacing_type_2b[itype][jtype] = 0; //MPI_Bcast + knot_spacing_type_2b[itype][jtype] = 0; knot_spacing_type_2b[jtype][itype] = 0; } else if (knot_type == "nk") { knot_spacing_type_2b[itype][jtype] = 1; @@ -775,7 +605,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "numbers", num_knots_2b,fp4th_line.count()); for (int k = 0; k < num_knots_2b; k++) { - n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); //MPI_Bcast + n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; } @@ -798,7 +628,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "numbers", num_knots_2b,fp4th_line.count()); for (int k = 0; k < num_of_coeff_2b; k++) { - n2b_coeff_array[itype][jtype][k] = fp6th_line.next_double(); //MPI_Bcast + n2b_coeff_array[itype][jtype][k] = fp6th_line.next_double(); n2b_coeff_array[jtype][itype][k] = n2b_coeff_array[itype][jtype][k]; } @@ -808,7 +638,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "coeff data nknots!=ncoeffs + 3 + 1", element1, element2); - setflag[itype][jtype] = 1; //MPI_Bcast + setflag[itype][jtype] = 1; setflag[jtype][itype] = 1; } } @@ -846,7 +676,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //uk or nk? std::string knot_type = fp2nd_line.next_string(); if (knot_type == "uk") { - knot_spacing_type_3b[itype][jtype][ktype] = 0; //MPI_Bcast + knot_spacing_type_3b[itype][jtype][ktype] = 0; knot_spacing_type_3b[itype][ktype][jtype] = 0; } else if (knot_type == "nk") { knot_spacing_type_3b[itype][jtype][ktype] = 1; @@ -876,13 +706,13 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) for (int i = 0; i < num_knots_3b_jk; i++) { n3b_knots_array[map_3b[itype][jtype][ktype]][0][i] = - fp4th_line.next_double(); //MPI_Bcast + fp4th_line.next_double(); n3b_knots_array[map_3b[itype][ktype][jtype]][0][i] = n3b_knots_array[map_3b[itype][jtype][ktype]][0][i]; } min_cut_3b[itype][jtype][ktype][0] = - n3b_knots_array[map_3b[itype][jtype][ktype]][0][0]; //MPI_Bcast + n3b_knots_array[map_3b[itype][jtype][ktype]][0][0]; min_cut_3b[itype][ktype][jtype][0] = n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; @@ -903,7 +733,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) for (int i = 0; i < num_knots_3b_ik; i++) { n3b_knots_array[map_3b[itype][jtype][ktype]][1][i] = - fp5th_line.next_double(); //MPI_Bcast + fp5th_line.next_double(); n3b_knots_array[map_3b[itype][ktype][jtype]][2][i] = n3b_knots_array[map_3b[itype][jtype][ktype]][1][i]; } @@ -1001,12 +831,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) for (int i = 0; i < coeff_matrix_dim1; i++) { for (int j = 0; j < coeff_matrix_dim2; j++) { for (int k = 0; k < coeff_matrix_dim3; k++) { - n3b_coeff_array[key2][j][i][k] = n3b_coeff_array[key1][i][j][k]; //MPI_Bcast + n3b_coeff_array[key2][j][i][k] = n3b_coeff_array[key1][i][j][k]; } } } - setflag_3b[itype][jtype][ktype] = 1; //MPI_Bcast + setflag_3b[itype][jtype][ktype] = 1; setflag_3b[itype][ktype][jtype] = 1; } } @@ -1108,13 +938,13 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_coeff_array_size[key][2] = n3b_coeff_array_size[mapped_to_key][2]; min_cut_3b[i][j][k][0] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0];//n3b_knots_array[key][0][0]; + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; min_cut_3b[i][j][k][1] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1];//n3b_knots_array[key][1][0]; + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; min_cut_3b[i][j][k][2] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2];//n3b_knots_array[key][2][0]; + min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; for (int knot_no = 0; knot_no < n3b_knots_array_size[key][0]; knot_no++) n3b_knots_array[key][0][knot_no] = n3b_knots_array[mapped_to_key][0][knot_no]; @@ -1138,569 +968,94 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) } } -/*void PairUF3::uf3_read_pot_file(int itype, int jtype, char *potf_name) +//Broadcast data read from potential file to all processors +void PairUF3::communicate() { - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) - error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); + const int num_of_elements = atom->ntypes; + MPI_Bcast(&cut[0][0], (num_of_elements + 1)*(num_of_elements + 1), + MPI_DOUBLE, 0, world); - TextFileReader txtfilereader(fp, "UF3:POTFP"); - txtfilereader.ignore_comments = false; + MPI_Bcast(&n2b_knots_array_size[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + MPI_Bcast(&n2b_coeff_array_size[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - std::string temp_line = txtfilereader.next_line(1); - Tokenizer file_header(temp_line); + MPI_Bcast(&max_num_knots_2b, 1, MPI_INT, 0, world); + MPI_Bcast(&max_num_coeff_2b, 1, MPI_INT, 0, world); - if (file_header.count() <= 2) - error->all(FLERR, - "UF3: Expected more than two words on 1st line of {} \n" - "but found {} word/s", - potf_name, file_header.count()); + if (pot_3b){ + MPI_Bcast(&cut_3b_list[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); - if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, - "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" - "files contain '#UF3 POT'. Found {} in the header", - potf_name, temp_line); + MPI_Bcast(&cut_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_DOUBLE, 0, world); - if (file_header.contains("UNITS:") == 0) - error->all(FLERR, - "UF3: {} file does not contain the 'UNITS:' metadata in \n" - "the header", - potf_name); + MPI_Bcast(&n3b_knots_array_size[0][0], tot_interaction_count_3b*3, + MPI_INT, 0, world); + MPI_Bcast(&n3b_coeff_array_size[0][0], tot_interaction_count_3b*3, + MPI_INT, 0, world); - temp_line = txtfilereader.next_line(1); - ValueTokenizer fp2nd_line(temp_line); - - if (fp2nd_line.count() != 4) - error->all(FLERR, - "UF3: Expected 4 words on 2nd line =>\n" - " nBody leading_trim trailing_trim type_of_knot_spacing\n" - " Found {}", - temp_line); - - std::string nbody_on_file = fp2nd_line.next_string(); - if (nbody_on_file != "2B") - error->all(FLERR, "UF3: Expected a 2B UF3 file but found {}", nbody_on_file); - - int leading_trim = fp2nd_line.next_int(); - int trailing_trim = fp2nd_line.next_int(); - if (leading_trim != 0) - error->all(FLERR, - "UF3: Current implementation is throughly tested only for " - "leading_trim=0"); - if (trailing_trim != 3) - error->all(FLERR, - "UF3: Current implementation is throughly tested only for " - "trailing_trim=3"); - - std::string knot_type = fp2nd_line.next_string(); - if (knot_type == "uk") { - knot_spacing_type_2b[itype][jtype] = 0; - knot_spacing_type_2b[jtype][itype] = 0; - } else if (knot_type == "nk") { - knot_spacing_type_2b[itype][jtype] = 1; - knot_spacing_type_2b[jtype][itype] = 1; - } else - error->all(FLERR, - "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots). " - "Found {} on the 2nd line of {} pot file", - knot_type, potf_name); - - temp_line = txtfilereader.next_line(1); - ValueTokenizer fp3rd_line(temp_line); - if (fp3rd_line.count() != 2) - error->all(FLERR, - "UF3: Expected only 2 numbers on 3rd line => " - "Rij_CUTOFF NUM_OF_KNOTS. Found {} number/s", - fp3rd_line.count()); - - //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared - cut[itype][jtype] = fp3rd_line.next_double(); - cut[jtype][itype] = cut[itype][jtype]; - - int num_knots_2b = fp3rd_line.next_int(); - - temp_line = txtfilereader.next_line(num_knots_2b); - ValueTokenizer fp4th_line(temp_line); - - if (fp4th_line.count() != num_knots_2b) - error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_2b, - fp4th_line.count()); - - uf3_impl->n2b_knot[itype][jtype].resize(num_knots_2b); - uf3_impl->n2b_knot[jtype][itype].resize(num_knots_2b); - for (int k = 0; k < num_knots_2b; k++) { - uf3_impl->n2b_knot[itype][jtype][k] = fp4th_line.next_double(); - uf3_impl->n2b_knot[jtype][itype][k] = uf3_impl->n2b_knot[itype][jtype][k]; + MPI_Bcast(&max_num_knots_3b, 1, MPI_INT, 0, world); + MPI_Bcast(&max_num_coeff_3b, 1, MPI_INT, 0, world); } - temp_line = txtfilereader.next_line(1); - ValueTokenizer fp5th_line(temp_line); - int num_of_coeff_2b = fp5th_line.next_int(); + if (comm->me != 0) { + memory->destroy(n2b_knots_array); + memory->destroy(n2b_coeff_array); - temp_line = txtfilereader.next_line(num_of_coeff_2b); - ValueTokenizer fp6th_line(temp_line); + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, + max_num_knots_2b, "pair:n2b_knots_array"); + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b, "pair:n2b_coeff_array"); + if (pot_3b) { + memory->destroy(n3b_knots_array); + memory->destroy(n3b_coeff_array); - if (fp6th_line.count() != num_of_coeff_2b) - error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_of_coeff_2b, - fp6th_line.count()); + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, + max_num_knots_3b, "pair:n3b_knots_array"); - uf3_impl->n2b_coeff[itype][jtype].resize(num_of_coeff_2b); - uf3_impl->n2b_coeff[jtype][itype].resize(num_of_coeff_2b); - for (int k = 0; k < num_of_coeff_2b; k++) { - uf3_impl->n2b_coeff[itype][jtype][k] = fp6th_line.next_double(); - uf3_impl->n2b_coeff[jtype][itype][k] = uf3_impl->n2b_coeff[itype][jtype][k]; + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); + } } - if (uf3_impl->n2b_knot[itype][jtype].size() != uf3_impl->n2b_coeff[itype][jtype].size() + 4) { - error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", - potf_name); + MPI_Bcast(&knot_spacing_type_2b[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&knot_spacing_2b[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + MPI_Bcast(&n2b_knots_array[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); + MPI_Bcast(&n2b_coeff_array[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*max_num_coeff_2b, MPI_DOUBLE, 0, world); + + MPI_Bcast(&setflag[0][0], + (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + + if (pot_3b) { + MPI_Bcast(&knot_spacing_type_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_INT, 0, world); + + MPI_Bcast(&knot_spacing_3b[0][0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, + MPI_INT, 0, world); + MPI_Bcast(&n3b_knots_array[0][0][0], + tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); + MPI_Bcast(&n3b_coeff_array[0][0][0][0], + tot_interaction_count_3b*max_num_coeff_3b*max_num_coeff_3b*max_num_coeff_3b, + MPI_DOUBLE, 0, world); + MPI_Bcast(&setflag_3b[0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), + MPI_INT, 0, world); + MPI_Bcast(&min_cut_3b[0][0][0][0], + (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, + MPI_DOUBLE, 0, world); } - setflag[itype][jtype] = 1; - setflag[jtype][itype] = 1; - fclose(fp); } -void PairUF3::uf3_read_pot_file(int itype, int jtype, int ktype, char *potf_name) -{ - int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) - error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); - - TextFileReader txtfilereader(fp, "UF3:POTFP"); - txtfilereader.ignore_comments = false; - - std::string temp_line = txtfilereader.next_line(1); - Tokenizer file_header(temp_line); - - if (file_header.count() <= 2) - error->all(FLERR, - "UF3: Expected more than two words on 1st line of {} \n" - "but found {} word/s", - potf_name, file_header.count()); - - if (file_header.contains("#UF3 POT") == 0) - error->all(FLERR, - "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" - "files contain '#UF3 POT'. Found {} in the header", - potf_name, temp_line); - - if (file_header.contains("UNITS:") == 0) - error->all(FLERR, - "UF3: {} file does not contain the 'UNITS:' metadata in \n" - "the header", - potf_name); - - temp_line = txtfilereader.next_line(1); - ValueTokenizer fp2nd_line(temp_line); - - if (fp2nd_line.count() != 4) - error->all(FLERR, - "UF3: Expected 3 words on 2nd line => " - "nBody leading_trim trailing_trim type_of_knot_spacing " - "Found {}", - temp_line); - - std::string nbody_on_file = fp2nd_line.next_string(); - if (nbody_on_file != "3B") - error->all(FLERR, "UF3: Expected a 3B UF3 file but found {}", nbody_on_file); - - int leading_trim = fp2nd_line.next_int(); - int trailing_trim = fp2nd_line.next_int(); - if (leading_trim != 0) - error->all(FLERR, "UF3: Current implementation is throughly tested only for leading_trim=0"); - if (trailing_trim != 3) - error->all(FLERR, "UF3: Current implementation is throughly tested only for trailing_trim=3"); - - std::string knot_type = fp2nd_line.next_string(); - if (knot_type == "uk") { - knot_spacing_type_3b[itype][jtype][ktype] = 0; - knot_spacing_type_3b[itype][ktype][jtype] = 0; - } else if (knot_type == "nk") { - knot_spacing_type_3b[itype][jtype][ktype] = 1; - knot_spacing_type_3b[itype][ktype][jtype] = 1; - } else - error->all(FLERR, - "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots) " - "Found {} on the 2nd line of {} pot file", - knot_type, potf_name); - - temp_line = txtfilereader.next_line(6); - ValueTokenizer fp3rd_line(temp_line); - - if (fp3rd_line.count() != 6) - error->all(FLERR, - "UF3: Expected only 6 numbers on 3rd line => " - "Rjk_CUTOFF Rik_CUTOFF Rij_CUTOFF NUM_OF_KNOTS_JK NUM_OF_KNOTS_IK NUM_OF_KNOTS_IJ " - "Found {} number/s", - fp3rd_line.count()); - - double cut3b_rjk = fp3rd_line.next_double(); - double cut3b_rij = fp3rd_line.next_double(); - double cut3b_rik = fp3rd_line.next_double(); - - if (cut3b_rij != cut3b_rik) { - error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); - } - - if (2 * cut3b_rik != cut3b_rjk) { - error->all(FLERR, - "UF3: 2rij=2rik!=rik, Current implementation only works " - "for 2rij=2rik!=rik"); - } - - cut_3b_list[itype][jtype] = std::max(cut3b_rij, cut_3b_list[itype][jtype]); - cut_3b_list[itype][ktype] = std::max(cut_3b_list[itype][ktype], cut3b_rik); - - cut_3b[itype][jtype][ktype] = cut3b_rij; - cut_3b[itype][ktype][jtype] = cut3b_rik; - - int num_knots_3b_jk = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(num_knots_3b_jk); - ValueTokenizer fp4th_line(temp_line); - - if (fp4th_line.count() != num_knots_3b_jk) - error->all(FLERR, "UF3: Expected {} numbers on 4th line but found {} numbers", num_knots_3b_jk, - fp4th_line.count()); - - uf3_impl->n3b_knot_matrix[itype][jtype][ktype].resize(3); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype].resize(3); - - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0].resize(num_knots_3b_jk); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0].resize(num_knots_3b_jk); - - for (int i = 0; i < num_knots_3b_jk; i++) { - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][i] = fp4th_line.next_double(); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][i]; - } - - min_cut_3b[itype][jtype][ktype][0] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0][0]; - min_cut_3b[itype][ktype][jtype][0] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][0][0]; - - int num_knots_3b_ik = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(num_knots_3b_ik); - ValueTokenizer fp5th_line(temp_line); - - if (fp5th_line.count() != num_knots_3b_ik) - error->all(FLERR, "UF3: Expected {} numbers on 5th line but found {} numbers", num_knots_3b_ik, - fp5th_line.count()); - - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1].resize(num_knots_3b_ik); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2].resize(num_knots_3b_ik); - for (int i = 0; i < num_knots_3b_ik; i++) { - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][i] = fp5th_line.next_double(); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][i]; - } - - min_cut_3b[itype][jtype][ktype][1] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1][0]; - min_cut_3b[itype][ktype][jtype][2] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][2][0]; - - int num_knots_3b_ij = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(num_knots_3b_ij); - ValueTokenizer fp6th_line(temp_line); - - if (fp6th_line.count() != num_knots_3b_ij) - error->all(FLERR, "UF3: Expected {} numbers on 6th line but found {} numbers", num_knots_3b_ij, - fp5th_line.count()); - - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2].resize(num_knots_3b_ij); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1].resize(num_knots_3b_ij); - for (int i = 0; i < num_knots_3b_ij; i++) { - uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][i] = fp6th_line.next_double(); - uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1][i] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][i]; - } - - min_cut_3b[itype][jtype][ktype][2] = uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2][0]; - min_cut_3b[itype][ktype][jtype][1] = uf3_impl->n3b_knot_matrix[itype][ktype][jtype][1][0]; - - temp_line = txtfilereader.next_line(3); - ValueTokenizer fp7th_line(temp_line); - - if (fp7th_line.count() != 3) - error->all(FLERR, - "UF3: Expected 3 numbers on 7th line => " - "SHAPE_OF_COEFF_MATRIX[I][J][K] " - "found {} numbers", - fp7th_line.count()); - - coeff_matrix_dim1 = fp7th_line.next_int(); - coeff_matrix_dim2 = fp7th_line.next_int(); - coeff_matrix_dim3 = fp7th_line.next_int(); - - if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][0].size() != coeff_matrix_dim3 + 3 + 1) - error->all(FLERR, - "UF3: {} has incorrect knot (NUM_OF_KNOTS_JK) and " - "coeff (coeff_matrix_dim3) data nknots!=ncoeffs + 3 +1", - potf_name); - - if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][1].size() != coeff_matrix_dim2 + 3 + 1) - error->all(FLERR, - "UF3: {} has incorrect knot (NUM_OF_KNOTS_IK) and " - "coeff (coeff_matrix_dim2) data nknots!=ncoeffs + 3 +1", - potf_name); - - if (uf3_impl->n3b_knot_matrix[itype][jtype][ktype][2].size() != coeff_matrix_dim1 + 3 + 1) - error->all(FLERR, - "UF3: {} has incorrect knot (NUM_OF_KNOTS_IJ) and " - "coeff ()coeff_matrix_dim1 data nknots!=ncoeffs + 3 +1", - potf_name); - - coeff_matrix_elements_len = coeff_matrix_dim3; - - std::string key = std::to_string(itype) + std::to_string(jtype) + std::to_string(ktype); - uf3_impl->n3b_coeff_matrix[key].resize(coeff_matrix_dim1); - - int line_count = 0; - for (int i = 0; i < coeff_matrix_dim1; i++) { - uf3_impl->n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); - for (int j = 0; j < coeff_matrix_dim2; j++) { - temp_line = txtfilereader.next_line(coeff_matrix_elements_len); - ValueTokenizer coeff_line(temp_line); - uf3_impl->n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); - - if (coeff_line.count() != coeff_matrix_elements_len) - error->all(FLERR, "UF3: Expected {} numbers on {}th line but found {} numbers", - coeff_matrix_elements_len, line_count + 8, coeff_line.count()); - for (int k = 0; k < coeff_matrix_dim3; k++) { - uf3_impl->n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); - } - line_count += 1; - } - } - - std::string key2 = std::to_string(itype) + std::to_string(ktype) + std::to_string(jtype); - uf3_impl->n3b_coeff_matrix[key2].resize(coeff_matrix_dim2); - for (int j = 0; j < coeff_matrix_dim2; j++) { - uf3_impl->n3b_coeff_matrix[key2][j].resize(coeff_matrix_dim1); - for (int i = 0; i < coeff_matrix_dim1; i++) { - uf3_impl->n3b_coeff_matrix[key2][j][i].resize(coeff_matrix_dim3); - } - } - - for (int i = 0; i < coeff_matrix_dim1; i++) { - for (int j = 0; j < coeff_matrix_dim2; j++) { - for (int k = 0; k < coeff_matrix_dim3; k++) { - uf3_impl->n3b_coeff_matrix[key2][j][i][k] = uf3_impl->n3b_coeff_matrix[key][i][j][k]; - } - } - } - - setflag_3b[itype][jtype][ktype] = 1; - setflag_3b[itype][ktype][jtype] = 1; - fclose(fp); -} - -void PairUF3::uf3_read_pot_file(char *potf_name) -{ - FILE *fp = utils::open_potential(potf_name, lmp, nullptr); - if (!fp) - error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); - - TextFileReader txtfilereader(fp, "UF3:POTFP"); - txtfilereader.ignore_comments = false; - - std::string temp_line = txtfilereader.next_line(2); - Tokenizer fp1st_line(temp_line); - - if (fp1st_line.count() <= 2) - error->all(FLERR, - "UF3: Expected more than two words on 1st line of {} \n" - "but found {} word/s", - potf_name, fp1st_line.count()); - - if (fp1st_line.contains("#UF3 POT") == 0) - error->all(FLERR, - "UF3: {} file is not UF3 POT type, 1st line of UF3 POT \n" - "files contain '#UF3 POT'. Found {} in the header", - potf_name, temp_line); - - if (fp1st_line.contains("UNITS:") == 0) - error->all(FLERR, - "UF3: {} file does not contain the 'UNITS:' metadata in \n" - "the header", - potf_name); - - temp_line = txtfilereader.next_line(1); - Tokenizer fp2nd_line(temp_line); - if (fp2nd_line.contains("2B") == 1) { - temp_line = txtfilereader.next_line(4); - ValueTokenizer fp3rd_line(temp_line); - int temp_type1 = fp3rd_line.next_int(); - int temp_type2 = fp3rd_line.next_int(); - - //cut is used in init_one which is called by pair.cpp at line 267 where the return of init_one is squared - cut[temp_type1][temp_type2] = fp3rd_line.next_double(); - cut[temp_type2][temp_type1] = cut[temp_type1][temp_type2]; - - int temp_line_len = fp3rd_line.next_int(); - - temp_line = txtfilereader.next_line(temp_line_len); - ValueTokenizer fp4th_line(temp_line); - - uf3_impl->n2b_knot[temp_type1][temp_type2].resize(temp_line_len); - uf3_impl->n2b_knot[temp_type2][temp_type1].resize(temp_line_len); - for (int k = 0; k < temp_line_len; k++) { - uf3_impl->n2b_knot[temp_type1][temp_type2][k] = fp4th_line.next_double(); - uf3_impl->n2b_knot[temp_type2][temp_type1][k] = uf3_impl->n2b_knot[temp_type1][temp_type2][k]; - } - - temp_line = txtfilereader.next_line(1); - ValueTokenizer fp5th_line(temp_line); - - temp_line_len = fp5th_line.next_int(); - - temp_line = txtfilereader.next_line(temp_line_len); - ValueTokenizer fp6th_line(temp_line); - uf3_impl->n2b_coeff[temp_type1][temp_type2].resize(temp_line_len); - uf3_impl->n2b_coeff[temp_type2][temp_type1].resize(temp_line_len); - - for (int k = 0; k < temp_line_len; k++) { - uf3_impl->n2b_coeff[temp_type1][temp_type2][k] = fp6th_line.next_double(); - uf3_impl->n2b_coeff[temp_type2][temp_type1][k] = uf3_impl->n2b_coeff[temp_type1][temp_type2][k]; - } - if (uf3_impl->n2b_knot[temp_type1][temp_type2].size() != uf3_impl->n2b_coeff[temp_type1][temp_type2].size() + 4) { - error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", - potf_name); - } - setflag[temp_type1][temp_type2] = 1; - setflag[temp_type2][temp_type1] = 1; - } else if (fp2nd_line.contains("3B") == 1) { - int coeff_matrix_dim1, coeff_matrix_dim2, coeff_matrix_dim3, coeff_matrix_elements_len; - temp_line = txtfilereader.next_line(9); - ValueTokenizer fp3rd_line(temp_line); - int temp_type1 = fp3rd_line.next_int(); - int temp_type2 = fp3rd_line.next_int(); - int temp_type3 = fp3rd_line.next_int(); - - double cut3b_rjk = fp3rd_line.next_double(); - double cut3b_rij = fp3rd_line.next_double(); - // cut_3b[temp_type1][temp_type2] = std::max(cut3b_rij, - // cut_3b[temp_type1][temp_type2]); - cut_3b_list[temp_type1][temp_type2] = - std::max(cut3b_rij, cut_3b_list[temp_type1][temp_type2]); - - double cut3b_rik = fp3rd_line.next_double(); - if (cut3b_rij != cut3b_rik) { - error->all(FLERR, "UF3: rij!=rik, Current implementation only works for rij=rik"); - } - if (2 * cut3b_rik != cut3b_rjk) { - error->all(FLERR, - "UF3: 2rij=2rik!=rik, Current implementation only works for 2rij=2rik!=rik"); - } - // cut_3b[temp_type1][temp_type3] = std::max(cut_3b[temp_type1][temp_type3],cut3b_rik); - cut_3b_list[temp_type1][temp_type3] = - std::max(cut_3b_list[temp_type1][temp_type3], cut3b_rik); - - cut_3b[temp_type1][temp_type2][temp_type3] = cut3b_rij; - cut_3b[temp_type1][temp_type3][temp_type2] = cut3b_rik; - - int temp_line_len = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(temp_line_len); - ValueTokenizer fp4th_line(temp_line); - - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3].resize(3); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2].resize(3); - - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].resize(temp_line_len); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0].resize(temp_line_len); - for (int i = 0; i < temp_line_len; i++) { - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i] = fp4th_line.next_double(); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][i] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][i]; - } - - min_cut_3b[temp_type1][temp_type2][temp_type3][0] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][0] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][0][0]; - - temp_line_len = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(temp_line_len); - ValueTokenizer fp5th_line(temp_line); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].resize(temp_line_len); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2].resize(temp_line_len); - for (int i = 0; i < temp_line_len; i++) { - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i] = fp5th_line.next_double(); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][i] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][i]; - } - - min_cut_3b[temp_type1][temp_type2][temp_type3][1] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][2] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][2][0]; - - temp_line_len = fp3rd_line.next_int(); - temp_line = txtfilereader.next_line(temp_line_len); - ValueTokenizer fp6th_line(temp_line); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].resize(temp_line_len); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1].resize(temp_line_len); - for (int i = 0; i < temp_line_len; i++) { - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i] = fp6th_line.next_double(); - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][i] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][i]; - } - - min_cut_3b[temp_type1][temp_type2][temp_type3][2] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2][0]; - min_cut_3b[temp_type1][temp_type3][temp_type2][1] = - uf3_impl->n3b_knot_matrix[temp_type1][temp_type3][temp_type2][1][0]; - - temp_line = txtfilereader.next_line(3); - ValueTokenizer fp7th_line(temp_line); - - coeff_matrix_dim1 = fp7th_line.next_int(); - coeff_matrix_dim2 = fp7th_line.next_int(); - coeff_matrix_dim3 = fp7th_line.next_int(); - if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][0].size() != - coeff_matrix_dim3 + 3 + 1) { - error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", - potf_name); - } - if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][1].size() != - coeff_matrix_dim2 + 3 + 1) { - error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", - potf_name); - } - if (uf3_impl->n3b_knot_matrix[temp_type1][temp_type2][temp_type3][2].size() != - coeff_matrix_dim1 + 3 + 1) { - error->all(FLERR, "UF3: {} has incorrect knot and coeff data nknots!=ncoeffs + 3 +1", - potf_name); - } - - coeff_matrix_elements_len = coeff_matrix_dim3; - - std::string key = - std::to_string(temp_type1) + std::to_string(temp_type2) + std::to_string(temp_type3); - uf3_impl->n3b_coeff_matrix[key].resize(coeff_matrix_dim1); - for (int i = 0; i < coeff_matrix_dim1; i++) { - uf3_impl->n3b_coeff_matrix[key][i].resize(coeff_matrix_dim2); - for (int j = 0; j < coeff_matrix_dim2; j++) { - temp_line = txtfilereader.next_line(coeff_matrix_elements_len); - ValueTokenizer coeff_line(temp_line); - uf3_impl->n3b_coeff_matrix[key][i][j].resize(coeff_matrix_dim3); - for (int k = 0; k < coeff_matrix_dim3; k++) { - uf3_impl->n3b_coeff_matrix[key][i][j][k] = coeff_line.next_double(); - } - } - } - - key = std::to_string(temp_type1) + std::to_string(temp_type3) + std::to_string(temp_type2); - uf3_impl->n3b_coeff_matrix[key] = - uf3_impl->n3b_coeff_matrix[std::to_string(temp_type1) + - std::to_string(temp_type2) + - std::to_string(temp_type3)]; - setflag_3b[temp_type1][temp_type2][temp_type3] = 1; - setflag_3b[temp_type1][temp_type3][temp_type2] = 1; - } else - error->all( - FLERR, - "UF3: {} file does not contain right words indicating whether it is 2 or 3 body potential", - potf_name); - fclose(fp); -}*/ - /* ---------------------------------------------------------------------- init specific to this pair style ------------------------------------------------------------------------- */ @@ -1745,13 +1100,13 @@ void PairUF3::create_bsplines() "UF3: Not all 2-body UF potentials are set, " "missing potential for {}-{} interaction", i, j); - if (spacing_type != knot_spacing_type_2b[i][j]) + /*if (spacing_type != knot_spacing_type_2b[i][j]) error->all(FLERR, "UF3: In the current version the knot spacing type, " "for all interactions needs to be same. For {}-{} " "i.e. {}-{} interaction expected {}, but found {}", i,j,elements[map[i]],elements[map[j]],spacing_type, - knot_spacing_type_2b[i][j]); + knot_spacing_type_2b[i][j]);*/ } } if (pot_3b) { @@ -1776,73 +1131,29 @@ void PairUF3::create_bsplines() } - if (spacing_type) { - get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; - if (pot_3b) - get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; - } - else { + //if (spacing_type) { + get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; + if (pot_3b) + get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; + //} + /*else { get_starting_index_2b = &PairUF3::get_starting_index_uniform_2b; if (pot_3b) get_starting_index_3b = &PairUF3::get_starting_index_uniform_3b; - } + }*/ create_cached_constants_2b(); if (pot_3b) create_cached_constants_3b(); - - /*for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - uf3_impl->UFBS2b[i][j] = - uf3_pair_bspline(lmp, uf3_impl->n2b_knot[i][j], uf3_impl->n2b_coeff[i][j], - knot_spacing_type_2b[i][j]); - - uf3_impl->UFBS2b[i][j] = uf3_pair_bspline(lmp, n2b_knots_array[i][j], - n2b_knots_array_size[i][j], - n2b_coeff_array[i][j], - n2b_coeff_array_size[i][j], - knot_spacing_type_2b[i][j]); - uf3_impl->UFBS2b[j][i] = uf3_impl->UFBS2b[i][j]; - } - if (pot_3b) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = j; k < num_of_elements + 1; k++) { - std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][j][k], uf3_impl->n3b_coeff_matrix[key], knot_spacing_type_3b[i][j][k]); - int key = map_3b[i][j][k]; - int key2 = map_3b[i][k][j]; - - uf3_impl->UFBS3b[i][j][k] = uf3_triplet_bspline( - lmp, n3b_knots_array[key], n3b_knots_array_size[key], - n3b_coeff_array[key], n3b_coeff_array_size[key], - knot_spacing_type_3b[i][j][k]); - - std::string key2 = std::to_string(i) + std::to_string(k) + std::to_string(j); - uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( - lmp, uf3_impl->n3b_knot_matrix[i][k][j], uf3_impl->n3b_coeff_matrix[key2], knot_spacing_type_3b[i][k][j]); - //int key2 = map_3b[i][k][j]; - uf3_impl->UFBS3b[i][k][j] = uf3_triplet_bspline( - lmp, n3b_knots_array[key2], n3b_knots_array_size[key2], - n3b_coeff_array[key2], n3b_coeff_array_size[key2], - knot_spacing_type_3b[i][k][j]); - } - } - } - }*/ } int PairUF3::get_starting_index_uniform_2b(int i, int j, double r) { - //return 3+(int)((r-n2b_knots_array[i][j][0])/(n2b_knots_array[i][j][4]-n2b_knots_array[i][j][3])); return 3+(int)((r-n2b_knots_array[i][j][0])/(knot_spacing_2b[i][j])); } int PairUF3::get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim) { - /*return 3+(int)((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ - (n3b_knots_array[map_3b[i][j][k]][knot_dim][4] - - n3b_knots_array[map_3b[i][j][k]][knot_dim][3]));*/ return 3+(int)(((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ knot_spacing_3b[i][j][k][knot_dim])); } @@ -1882,12 +1193,6 @@ void PairUF3::create_cached_constants_2b() uf3_bspline_basis3 bspline_basis(lmp, &n2b_knots_array[i][j][l], n2b_coeff_array[i][j][l]); for (int cc = 0; cc < 16; cc++) { - /*if (std::isinf(bspline_basis.constants[cc]) || - std::isnan(bspline_basis.constants[cc])) - utils::logmesg(lmp, - "UF3: Bspline coefficients for" - " {}-{} interaction, {} basis set, {} constant\n", - i,j,l,cc);*/ cached_constants_2b[i][j][l][cc] = bspline_basis.constants[cc]; } } @@ -1915,12 +1220,6 @@ void PairUF3::create_cached_constants_2b() uf3_bspline_basis2 bspline_basis_deri(lmp, &knots_for_deri[l], coeff_for_deri[l]); for (int cc = 0; cc < 9; cc++) { - /*if (std::isinf(bspline_basis_deri.constants[cc]) || - std::isnan(bspline_basis_deri.constants[cc])) - utils::logmesg(lmp, - "UF3: Bspline coefficients for" - " derivative of {}-{} interaction, {}th basis set," - " {} constant\n",i,j,l,cc);*/ cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; } } @@ -1979,10 +1278,7 @@ void PairUF3::create_cached_constants_3b() for(int k = 1; k < num_of_elements + 1; k++) { int map_to = map_3b[i][j][k]; double **knots_for_der = nullptr;//new double*[3]; - //double ***coeff_for_der_jk = nullptr; - //double ***coeff_for_der_ik = nullptr; - //double ***coeff_for_der_ij = nullptr; - + //n3b_knots_array_size[map_to][0] for jk knot vector --> always largest memory->create(knots_for_der, 3, n3b_knots_array_size[map_to][0]-1, "pair:knots_for_der"); @@ -2035,42 +1331,28 @@ void PairUF3::create_cached_constants_3b() } } - //cached_constants_3b_deri - //utils::logmesg(lmp, "UF3: {} {} {}\n",i,j,k); - //utils::logmesg(lmp, "UF3: bspline_basis_deri_ij"); for (int l = 0; l < n3b_coeff_array_size[map_to][0] - 1; l++) { uf3_bspline_basis2 bspline_basis_deri_ij(lmp, &knots_for_der[2][l], 1); for (int cc = 0; cc < 9; cc++) { cached_constants_3b_deri[map_to][0][l][cc] = bspline_basis_deri_ij.constants[cc]; - //utils::logmesg(lmp," {}",bspline_basis_deri_ij.constants[cc]); } - //utils::logmesg(lmp,"\n"); } - //utils::logmesg(lmp, "UF3: bspline_basis_deri_ik"); for (int l = 0; l < n3b_coeff_array_size[map_to][1] - 1; l++) { uf3_bspline_basis2 bspline_basis_deri_ik(lmp, &knots_for_der[1][l], 1); for (int cc = 0; cc < 9; cc++) { cached_constants_3b_deri[map_to][1][l][cc] = bspline_basis_deri_ik.constants[cc]; - //utils::logmesg(lmp," {}",bspline_basis_deri_ik.constants[cc]); } - //utils::logmesg(lmp,"\n"); } - //utils::logmesg(lmp, "UF3: bspline_basis_deri_jk"); for (int l = 0; l < n3b_coeff_array_size[map_to][2] - 1; l++) { uf3_bspline_basis2 bspline_basis_deri_jk(lmp, &knots_for_der[0][l], 1); for (int cc = 0; cc < 9; cc++) { cached_constants_3b_deri[map_to][2][l][cc] = bspline_basis_deri_jk.constants[cc]; - //utils::logmesg(lmp," {}",bspline_basis_deri_jk.constants[cc]); } - //utils::logmesg(lmp,"\n"); } memory->destroy(knots_for_der); - //memory->destroy(coeff_for_der_jk) - //memory->destroy(coeff_for_der_ik) - //memory->destroy(coeff_for_der_ij); } } } @@ -2140,7 +1422,6 @@ void PairUF3::compute(int eflag, int vflag) int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,rij); - //double *pair_eval = uf3_impl->UFBS2b[itype][jtype].eval(rij); double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; @@ -2165,7 +1446,6 @@ void PairUF3::compute(int eflag, int vflag) f[j][2] -= fz; if (eflag) { - //evdwl = pair_eval[0] double rth = rsq*rij; evdwl = cached_constants_2b[itype][jtype][knot_start_index][0]; evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index][1]; @@ -2183,7 +1463,6 @@ void PairUF3::compute(int eflag, int vflag) evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-3][13]; evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-3][14]; evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-3][15]; - //utils::logmesg(lmp,"UF3: {} {} {} {}\n",itype,jtype,evdwl,force_2b); }; if (evflag) { @@ -2238,7 +1517,6 @@ void PairUF3::compute(int eflag, int vflag) del_rji[2] = x[j][2] - ztmp; rij_sq = (del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]); rij = sqrt(rij_sq); - //sqrt(((del_rji[0] * del_rji[0]) + (del_rji[1] * del_rji[1]) + (del_rji[2] * del_rji[2]))); // kth atom for (kk = jj + 1; kk < numshort; kk++) { @@ -2258,7 +1536,6 @@ void PairUF3::compute(int eflag, int vflag) del_rki[2] = x[k][2] - ztmp; rik_sq = (del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]); rik = sqrt(rik_sq); - //((del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]))); if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && @@ -2271,13 +1548,12 @@ void PairUF3::compute(int eflag, int vflag) rjk_sq = (del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]); rjk = sqrt(rjk_sq); - //((del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]))); if (rjk >= min_cut_3b[itype][jtype][ktype][0]) { double rij_th = rij*rij_sq; double rik_th = rik*rik_sq; double rjk_th = rjk*rjk_sq; - //double *triangle_eval = uf3_impl->UFBS3b[itype][jtype][ktype].eval(rij, rik, rjk); + int map_to = map_3b[itype][jtype][ktype]; int knot_start_index_ij = (this->*get_starting_index_3b)(itype,jtype,ktype,rij,2); int knot_start_index_ik = (this->*get_starting_index_3b)(itype,jtype,ktype,rik,1); @@ -2290,7 +1566,6 @@ void PairUF3::compute(int eflag, int vflag) double basis_jk_der[3]; //--------------basis_ij - //utils::logmesg(lmp, "UF3: {} {}\n",map_to,knot_start_index_ij); basis_ij[0] = cached_constants_3b[map_to][0][knot_start_index_ij - 3][12]; basis_ij[0] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 3][13]; basis_ij[0] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 3][14]; @@ -2311,9 +1586,6 @@ void PairUF3::compute(int eflag, int vflag) basis_ij[3] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij][2]; basis_ij[3] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij][3]; - //utils::logmesg(lmp,"UF3: basis_ij = {} {} {} {}\n",basis_ij[0],basis_ij[1], - // basis_ij[2],basis_ij[3]); - //--------------basis_ik basis_ik[0] = cached_constants_3b[map_to][1][knot_start_index_ik - 3][12]; basis_ik[0] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 3][13]; @@ -2359,8 +1631,6 @@ void PairUF3::compute(int eflag, int vflag) basis_jk[3] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk][2]; basis_jk[3] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk][3]; - //utils::logmesg(lmp,"UF3: basis_jk = {} {} {} {}\n",basis_jk[0],basis_jk[1], - // basis_jk[2],basis_jk[3]); //----------------basis_ij_der basis_ij_der[0] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6]; basis_ij_der[0] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7]; @@ -2373,21 +1643,10 @@ void PairUF3::compute(int eflag, int vflag) basis_ij_der[1] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3]; basis_ij_der[1] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; basis_ij_der[1] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]; - /*utils::logmesg(lmp,"UF3 cached_constants 1 = {} {} {}\n", - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]);*/ basis_ij_der[2] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0]; basis_ij_der[2] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1]; basis_ij_der[2] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]; - /*utils::logmesg(lmp,"UF3 cached_constants 0 = {} {} {}\n", - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]);*/ - - //utils::logmesg(lmp,"UF3: basis_ij_der = {} {} {}\n",basis_ij_der[0],basis_ij_der[1], - // basis_ij_der[2]); //----------------basis_ik_der basis_ik_der[0] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][6]; @@ -2402,9 +1661,6 @@ void PairUF3::compute(int eflag, int vflag) basis_ik_der[2] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][1]; basis_ik_der[2] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][2]; - //utils::logmesg(lmp,"UF3: basis_ik_der = {} {} {}\n",basis_ik_der[0],basis_ik_der[1], - // basis_ik_der[2]); - //----------------basis_jk_der basis_jk_der[0] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][6]; basis_jk_der[0] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][7]; @@ -2418,35 +1674,12 @@ void PairUF3::compute(int eflag, int vflag) basis_jk_der[2] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][1]; basis_jk_der[2] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][2]; - //utils::logmesg(lmp,"UF3: basis_jk_der = {} {} {}\n",basis_jk_der[0],basis_jk_der[1], - // basis_jk_der[2]); - double triangle_eval[4] = {0,0,0,0}; int iknot_ij = knot_start_index_ij - 3; int iknot_ik = knot_start_index_ik - 3; int iknot_jk = knot_start_index_jk - 3; - /*if (eflag) { - for (int l = 0; l < 4; l++) { - const double basis_ij_i = basis_ij[l]; - for (int m = 0; m < 4; m++) { - const double factor = basis_ij_i * basis_ik[m]; - const double* slice = - &n3b_coeff_array[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; - double tmp[4]; - tmp[0] = slice[0] * basis_jk[0]; - tmp[1] = slice[1] * basis_jk[1]; - tmp[2] = slice[2] * basis_jk[2]; - tmp[3] = slice[3] * basis_jk[3]; - double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; - triangle_eval[0] += factor * sum; - } - } - }*/ - //else - // triangle_eval[0] = 0; - for (int l = 0; l < 3; l++) { const double basis_ij_der_i = basis_ij_der[l]; for (int m = 0; m < 4; m++) { @@ -2460,8 +1693,6 @@ void PairUF3::compute(int eflag, int vflag) tmp[3] = slice[3] * basis_jk[3]; double sum = tmp[0] + tmp[1] + tmp[2] + tmp[3]; triangle_eval[1] += factor * sum; - //utils::logmesg(lmp, "UF3: {} {} {} {} {} {}\n", basis_ij_der[l], - // factor, slice[0], slice[1], slice[2], slice[3]); } } @@ -2496,10 +1727,6 @@ void PairUF3::compute(int eflag, int vflag) } } - /*utils::logmesg(lmp,"UF3: {} {} {} {} {} {} {}\n",itype,jtype,ktype, - *triangle_eval,*(triangle_eval + 1),*(triangle_eval + 2), - *(triangle_eval + 3));*/ - fij[0] = *(triangle_eval + 1) * (del_rji[0] / rij); fji[0] = -fij[0]; fik[0] = *(triangle_eval + 2) * (del_rki[0] / rik); @@ -2666,15 +1893,12 @@ double PairUF3::memory_usage() const int num_of_elements = atom->ntypes; double bytes = Pair::memory_usage(); - bytes += (double) 5 * sizeof(double); //num_of_elements, nbody_flag, - //n2body_pot_files, n3body_pot_files, - //tot_pot_files; - - bytes += (double) 5 * sizeof(double); //bsplines_created, coeff_matrix_dim1, - //coeff_matrix_dim2, coeff_matrix_dim3, - //coeff_matrix_elements_len bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * - sizeof(double); //***setflag_3b + sizeof(int); //***setflag_3b + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //knot_spacing_type_2b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(int); //knot_spacing_type_3b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //cut @@ -2685,111 +1909,53 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3 * sizeof(double); //min_cut_3b - - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_knots_array_size - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //n2b_coeff_array_size + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //knot_spacing_2b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(double); //knot_spacing_3b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_knots_2b * sizeof(double); //n2b_knots_array bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * sizeof(double); //n2b_coeff_array + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_knots_array_size + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_coeff_array_size + + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * + 16 * sizeof(double); //cached_constants_2b, + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (max_num_coeff_2b-1) * + 9 * sizeof(double); //cached_constants_2b_deri + if (pot_3b) { - bytes += (double) tot_interaction_count_3b * 3 * sizeof(double); //n3b_knots_array_size - bytes += (double) tot_interaction_count_3b * 3 * sizeof(double); //n3b_coeff_array_size + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * + (num_of_elements + 1) * sizeof(int); //map_3b + bytes += (double) tot_interaction_count_3b * 3 * max_num_knots_3b * sizeof(double); //n3b_knots_array bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * max_num_coeff_3b * sizeof(double); //n3b_coeff_array + + bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_knots_array_size + bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_coeff_array_size + + bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b + * max_num_coeff_3b * 3 * sizeof(double); //coeff_for_der_jk coeff_for_der_ik coeff_for_der_ij + + bytes += (double) tot_interaction_count_3b * 3 * max_num_coeff_3b * 16 + * sizeof(double); //cached_constants_3b + bytes += (double) tot_interaction_count_3b * 3 * (max_num_coeff_3b - 1) * 16 + * sizeof(double); //cached_constants_3b_deri + } - /*for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - bytes += (double) 2 * uf3_impl->n2b_knot[i][j].size() * sizeof(double); //n2b_knot - bytes += (double) 2 * uf3_impl->n2b_coeff[i][j].size() * sizeof(double); //n2b_coeff - } - if (pot_3b) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][0].size() * sizeof(double); - bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][1].size() * sizeof(double); - bytes += (double) 2 * uf3_impl->n3b_knot_matrix[i][j][k][2].size() * sizeof(double); - std::string key = std::to_string(i) + std::to_string(j) + std::to_string(k); - - for (int l = 0; l < uf3_impl->n3b_coeff_matrix[key].size(); l++) { - for (int m = 0; m < uf3_impl->n3b_coeff_matrix[key][l].size(); m++) { - bytes += (double) 2 * uf3_impl->n3b_coeff_matrix[key][l][m].size() * sizeof(double); - //key = ijk - //key = ikj - } - } - } - } - } - }*/ - - /*for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = i; j < num_of_elements + 1; j++) { - bytes += (double) 2 * uf3_impl->UFBS2b[i][j].memory_usage(); //UFBS2b[i][j] UFBS2b[j][1] - } - if (pot_3b) { - for (int j = 1; j < num_of_elements + 1; j++) { - for (int k = j; k < num_of_elements + 1; k++) { - bytes += (double) 2 * uf3_impl->UFBS3b[i][j][k].memory_usage(); - } - } - } - }*/ - - bytes += (double) (maxshort + 1) * sizeof(int); //neighshort, maxshort + bytes += (double) maxshort * sizeof(int); //neighshort + bytes += (double) 6 * sizeof(int); //maxshort, bsplines_created, nbody_flag, + //max_num_knots_2b, max_num_coeff_2b, + //max_num_knots_3b, max_num_coeff_3b + bytes += (double) 1 * sizeof(bool); //pot_3b + return bytes; } - -//Accessor function called by pair_uf3_kokkos.cpp -//Will probably be removed once std::vector are converted to arrays -/*std::vector>>& PairUF3::get_n2b_knot() -{ - return uf3_impl->n2b_knot; -}*/ -/* -std::vector>>& PairUF3::get_n2b_coeff() -{ - return uf3_impl->n2b_coeff; -}*/ -//Accessor function called by pair_uf3_kokkos.cpp -//Will probably be removed once std::vector are converted to arrays -/* -std::vector>>>>& - PairUF3::get_n3b_knot_matrix() -{ - return uf3_impl->n3b_knot_matrix; -}*/ - -//Accessor function called by pair_uf3_kokkos.cpp -//Will probably be removed once std::vector are converted to arrays -/* -std::vector>>& - PairUF3::get_n3b_coeff_matrix_key(std::string key) -{ - return uf3_impl->n3b_coeff_matrix[key]; -} - -double PairUF3::get_knot_spacing_2b(int i, int j) -{ - return uf3_impl->UFBS2b[i][j].knot_spacing; -} - -double PairUF3::get_knot_spacing_3b_ij(int i, int j, int k) -{ - return uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; -} -double PairUF3::get_knot_spacing_3b_ik(int i, int j, int k) -{ - return uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; -} -double PairUF3::get_knot_spacing_3b_jk(int i, int j, int k) -{ - return uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; -} -*/ From 3340dd5f5499d7bfda377a560de3eb26394718d5 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 19:03:25 -0400 Subject: [PATCH 082/313] Removed unused variables and reordered the code --- src/ML-UF3/pair_uf3.h | 73 ++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 46 deletions(-) diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index a300cbf838..6c1aeae42c 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -46,65 +46,46 @@ class PairUF3 : public Pair { double memory_usage() override; protected: - void uf3_read_pot_file(char *potf_name); - void uf3_read_pot_file(int i, int j, char *potf_name); - void uf3_read_pot_file(int i, int j, int k, char *potf_name); - void uf3_read_unified_pot_file(char *potf_name); - void communicate(); - int nbody_flag, n2body_pot_files, n3body_pot_files, tot_pot_files; - int bsplines_created; - bool pot_3b; int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; double **knot_spacing_2b, ****knot_spacing_3b; - virtual void allocate(); - void create_bsplines(); - void create_cached_constants_2b(); - void create_cached_constants_3b(); - //struct UF3Impl *uf3_impl; //PIMPLE (pointer-to-implementation) - //UF3Impl *get_UF3Impl(); - int get_starting_index_uniform_2b(int i, int j, double r); - int get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim); - int get_starting_index_nonuniform_2b(int i, int j, double r); - int get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim); - int (PairUF3::*get_starting_index_2b)(int i, int j, double r); - int (PairUF3::*get_starting_index_3b)(int i, int j, int k, double r, int knot_dim); - - int max_num_knots_2b = 0; - int max_num_coeff_2b = 0; - int max_num_knots_3b = 0; - int max_num_coeff_3b = 0; + double ***n2b_knots_array, ***n2b_coeff_array; int **n2b_knots_array_size, **n2b_coeff_array_size; double ****cached_constants_2b, ****cached_constants_2b_deri; - int ***map_3b, tot_interaction_count_3b; + int ***map_3b; double ***n3b_knots_array, ****n3b_coeff_array; int **n3b_knots_array_size, **n3b_coeff_array_size; double ****coeff_for_der_jk, ****coeff_for_der_ik,****coeff_for_der_ij; double ****cached_constants_3b, ****cached_constants_3b_deri; - - /*void uf3_read_2b_pot_block(int itype, int jtype, std::string iele, - std::string jele, - TextFileReader &txtfilereader); - - void uf3_read_3b_pot_block(int itype, int jtype, int ktype, - std::string iele, std::string jele, - std::string kele, - TextFileReader &txtfilereader);*/ - - //Accessor function called by pair_uf3_kokkos.cpp - //Will probably be removed once std::vector are converted to arrays - /*std::vector>>& get_n2b_knot(); - std::vector>>& get_n2b_coeff(); - std::vector>>>>& get_n3b_knot_matrix(); - std::vector>>& get_n3b_coeff_matrix_key(std::string key); - double get_knot_spacing_2b(int i, int j); - double get_knot_spacing_3b_ij(int i, int j, int k); - double get_knot_spacing_3b_ik(int i, int j, int k); - double get_knot_spacing_3b_jk(int i, int j, int k);*/ int *neighshort, maxshort; // short neighbor list array for 3body interaction + + void uf3_read_unified_pot_file(char *potf_name); + void communicate(); + int bsplines_created; + bool pot_3b; + virtual void allocate(); + void create_bsplines(); + void create_cached_constants_2b(); + void create_cached_constants_3b(); + + int get_starting_index_uniform_2b(int i, int j, double r); + int get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim); + + int get_starting_index_nonuniform_2b(int i, int j, double r); + int get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim); + + int (PairUF3::*get_starting_index_2b)(int i, int j, double r); + int (PairUF3::*get_starting_index_3b)(int i, int j, int k, double r, int knot_dim); + + int nbody_flag = 3; + int max_num_knots_2b = 0; + int max_num_coeff_2b = 0; + int max_num_knots_3b = 0; + int max_num_coeff_3b = 0; + int tot_interaction_count_3b = 0; }; } // namespace LAMMPS_NS From ab8e4b7676ae0db90425b396563404a4955a5688 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 19:28:27 -0400 Subject: [PATCH 083/313] Fixed trailing whitespace --- src/ML-UF3/pair_uf3.cpp | 18 +++++++++--------- src/ML-UF3/pair_uf3.h | 10 +++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 1f306b5204..19bec2d811 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -1278,7 +1278,7 @@ void PairUF3::create_cached_constants_3b() for(int k = 1; k < num_of_elements + 1; k++) { int map_to = map_3b[i][j][k]; double **knots_for_der = nullptr;//new double*[3]; - + //n3b_knots_array_size[map_to][0] for jk knot vector --> always largest memory->create(knots_for_der, 3, n3b_knots_array_size[map_to][0]-1, "pair:knots_for_der"); @@ -1553,7 +1553,7 @@ void PairUF3::compute(int eflag, int vflag) double rij_th = rij*rij_sq; double rik_th = rik*rik_sq; double rjk_th = rjk*rjk_sq; - + int map_to = map_3b[itype][jtype][ktype]; int knot_start_index_ij = (this->*get_starting_index_3b)(itype,jtype,ktype,rij,2); int knot_start_index_ik = (this->*get_starting_index_3b)(itype,jtype,ktype,rik,1); @@ -1909,7 +1909,7 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3 * sizeof(double); //min_cut_3b - + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //knot_spacing_2b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //knot_spacing_3b @@ -1919,13 +1919,13 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * sizeof(double); //n2b_coeff_array - + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_knots_array_size bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_coeff_array_size - + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * 16 * sizeof(double); //cached_constants_2b, - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (max_num_coeff_2b-1) * + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (max_num_coeff_2b-1) * 9 * sizeof(double); //cached_constants_2b_deri @@ -1936,13 +1936,13 @@ double PairUF3::memory_usage() bytes += (double) tot_interaction_count_3b * 3 * max_num_knots_3b * sizeof(double); //n3b_knots_array bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * max_num_coeff_3b * sizeof(double); //n3b_coeff_array - + bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_knots_array_size bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_coeff_array_size bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * max_num_coeff_3b * 3 * sizeof(double); //coeff_for_der_jk coeff_for_der_ik coeff_for_der_ij - + bytes += (double) tot_interaction_count_3b * 3 * max_num_coeff_3b * 16 * sizeof(double); //cached_constants_3b bytes += (double) tot_interaction_count_3b * 3 * (max_num_coeff_3b - 1) * 16 @@ -1956,6 +1956,6 @@ double PairUF3::memory_usage() //max_num_knots_2b, max_num_coeff_2b, //max_num_knots_3b, max_num_coeff_3b bytes += (double) 1 * sizeof(bool); //pot_3b - + return bytes; } diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 6c1aeae42c..9c6ec5022f 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -49,7 +49,7 @@ class PairUF3 : public Pair { int ***setflag_3b, **knot_spacing_type_2b, ***knot_spacing_type_3b; double **cut, ***cut_3b, **cut_3b_list, ****min_cut_3b; double **knot_spacing_2b, ****knot_spacing_3b; - + double ***n2b_knots_array, ***n2b_coeff_array; int **n2b_knots_array_size, **n2b_coeff_array_size; double ****cached_constants_2b, ****cached_constants_2b_deri; @@ -61,7 +61,7 @@ class PairUF3 : public Pair { double ****cached_constants_3b, ****cached_constants_3b_deri; int *neighshort, maxshort; // short neighbor list array for 3body interaction - + void uf3_read_unified_pot_file(char *potf_name); void communicate(); int bsplines_created; @@ -70,13 +70,13 @@ class PairUF3 : public Pair { void create_bsplines(); void create_cached_constants_2b(); void create_cached_constants_3b(); - + int get_starting_index_uniform_2b(int i, int j, double r); int get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim); - + int get_starting_index_nonuniform_2b(int i, int j, double r); int get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim); - + int (PairUF3::*get_starting_index_2b)(int i, int j, double r); int (PairUF3::*get_starting_index_3b)(int i, int j, int k, double r, int knot_dim); From 4a8ed1bc78996d6707faddaffae6dc4d5da8a574 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Thu, 2 May 2024 19:28:58 -0400 Subject: [PATCH 084/313] Removed dead code, fixed trailing whitespace --- src/KOKKOS/pair_uf3_kokkos.cpp | 190 +++++++-------------------------- 1 file changed, 38 insertions(+), 152 deletions(-) diff --git a/src/KOKKOS/pair_uf3_kokkos.cpp b/src/KOKKOS/pair_uf3_kokkos.cpp index d24ba44d9f..4a3bcc164b 100644 --- a/src/KOKKOS/pair_uf3_kokkos.cpp +++ b/src/KOKKOS/pair_uf3_kokkos.cpp @@ -113,32 +113,13 @@ template void PairUF3Kokkos::coeff(int narg, char PairUF3::coeff(narg,arg); //Also calls allocate internally //Grows arrays to the right dimensions --> setflag, cutsq, cut, knot_spacing_type_2b, - //n2b_knot, n2b_coeff, UFBS2b, n2b_knot[i], n2b_coeff[i], UFBS2b[i], setflag_3b, - //cut_3b, cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, - //UFBS3b, neighshort + //knot_spacing_2b, n2b_knots_array_size, n2b_coeff_array_size, setflag_3b, + //cut_3b, cut_3b_list, min_cut_3b, knot_spacing_type_3b, knot_spacing_3b, + //tot_interaction_count_3b, map_3b, n3b_knots_array_size, n3b_coeff_array_size, + //neighshort // //Also reads the pot_files_internally - -/* copy_2d(d_cutsq, cutsq, num_of_elements + 1, num_of_elements + 1); //copy cutsq from - //host to device memory - if (pot_3b) { - copy_3d(d_cut_3b, cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); - copy_2d(d_cut_3b_list, cut_3b_list, num_of_elements + 1, num_of_elements + 1); - } else { - //why are we allocating space to d_cut_3b, d_cut_3b_list if the pot is 2-body only? - Kokkos::realloc(d_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); - Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); - } - //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, - //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, - //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, - //neighshort - - //UFBS2b and UFBS3b are array of objects. Bad idea to use kokkos view(array) - //for it - create_2b_coefficients(); - if (pot_3b) create_3b_coefficients();*/ } template @@ -214,21 +195,10 @@ template void PairUF3Kokkos::create_coefficients( const int num_of_elements = atom->ntypes; coefficients_created = 1; - /*for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++) { - //Check for knot_spacing type - //Currently only uniform is supported - if (UFBS2b[i][j].knot_spacing_type != 0) - error->all(FLERR,"UF3Kokkos: Currently only uniform knot-spacing is suupoted"); - } - }*/ - if (pot_3b) { for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { for (int k = 1; k < num_of_elements + 1; k++) { - /*if (UFBS3b[i][j][k].knot_spacing_type != 0) - error->all(FLERR,"UF3Kokkos: Currently only uniform knot-spacing is suupoted");*/ k_cut_3b.h_view(i,j,k) = cut_3b[i][j][k]; // Notice the order of min_cut_3b[i][j][k] @@ -240,24 +210,14 @@ template void PairUF3Kokkos::create_coefficients( k_min_cut_3b.h_view(i,j,k,0) = min_cut_3b[i][j][k][0]; k_min_cut_3b.h_view(i,j,k,1) = min_cut_3b[i][j][k][1]; k_min_cut_3b.h_view(i,j,k,2) = min_cut_3b[i][j][k][2]; - //k_cut_3b.h_view(i,k,j) = cut_3b[i][k][j]; } } } k_cut_3b.template modify(); k_min_cut_3b.template modify(); } - //copy_2d(d_cutsq, cutsq, num_of_elements + 1, num_of_elements + 1); //copy cutsq from - //host to device memory - /*if (pot_3b) { - copy_3d(d_cut_3b, cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); - copy_2d(d_cut_3b_list, cut_3b_list, num_of_elements + 1, num_of_elements + 1); - } else { - //why are we allocating space to d_cut_3b, d_cut_3b_list if the pot is 2-body only? - Kokkos::realloc(d_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); - Kokkos::realloc(d_cut_3b_list, num_of_elements + 1, num_of_elements + 1); - }*/ - //No allocation for device equivalent of --> setflag, cut, knot_spacing_type_2b, + + //No allocation on device for --> setflag, cut, knot_spacing_type_2b, //n2b_knot, n2b_coeff, n2b_knot[i], n2b_coeff[i], setflag_3b, cut_3b, //cut_3b_list, min_cut_3b, knot_spacing_type_3b, cut_3b_list, n3b_knot_matrix, //neighshort @@ -272,8 +232,6 @@ template void PairUF3Kokkos::create_coefficients( template void PairUF3Kokkos::create_2b_coefficients() { const int num_of_elements = atom->ntypes; - //std::vector>>& n2b_knot = get_n2b_knot(); - //std::vector>>& n2b_coeff = get_n2b_coeff(); // Setup interaction pair map //TODO: Instead of using map2b and map3b use simple indexing @@ -292,8 +250,6 @@ template void PairUF3Kokkos::create_2b_coefficien // Count max knots for array size int max_knots = max_num_knots_2b; - /*for (int i = 1; i < n2b_knot.size(); i++) - for (int j = i; j < n2b_knot[i].size(); j++) max_knots = max(max_knots, n2b_knot[i][j].size());*/ // Copy coefficients to view @@ -303,7 +259,6 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { for (int k = 0; k < max_num_coeff_2b; k++) { - //n2b_coeff[i][j].size(); k++) { d_coefficients_2b_view(map2b_view(i, j), k) = n2b_coeff_array[i][j][k]; } } @@ -320,10 +275,9 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { for (int k = 0; k < max_num_knots_2b; k++) { - //n2b_knot[i][j].size(); k++) { d_n2b_knot_view(map2b_view(i, j), k) = n2b_knots_array[i][j][k]; } - d_n2b_knot_spacings_view(map2b_view(i, j)) = n2b_knots_array[i][j][4] - n2b_knots_array[i][j][3];//get_knot_spacing_2b(i,j); + d_n2b_knot_spacings_view(map2b_view(i, j)) = n2b_knots_array[i][j][4] - n2b_knots_array[i][j][3]; } } @@ -353,7 +307,6 @@ template void PairUF3Kokkos::create_2b_coefficien for (int i = 1; i < num_of_elements + 1; i++) { for (int j = i; j < num_of_elements + 1; j++) { for (int l = 0; l < n2b_knots_array_size[i][j] - 5; l++) { - //n2b_knot[i][j].size() - 5; l++) { double dntemp4 = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); double coeff = (n2b_coeff_array[i][j][l + 1] - n2b_coeff_array[i][j][l]) * dntemp4; auto c = get_dnconstants(&n2b_knots_array[i][j][l + 1], coeff); @@ -369,10 +322,6 @@ template void PairUF3Kokkos::create_2b_coefficien template void PairUF3Kokkos::create_3b_coefficients() { const int num_of_elements = atom->ntypes; - //std::vector>>>>& n3b_knot_matrix = - // get_n3b_knot_matrix(); - //std::unordered_map>>>& - // n3b_coeff_matrix = get_n3b_coeff_matrix(); // Init interaction map for 3B Kokkos::realloc(map3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1); @@ -384,7 +333,6 @@ template void PairUF3Kokkos::create_3b_coefficien for (int k = 1; k < num_of_elements + 1; k++) { map3b_view(i, j, k) = interaction_count; interaction_count++; - // map3b_view(i, k, j) = interaction_count++; } } } @@ -399,14 +347,6 @@ template void PairUF3Kokkos::create_3b_coefficien //n3b_knot_matrix[i][j][k][2] is the knot_vector along ij, //see pair_uf3.cpp for more details - /*for (int i = 1; i < n3b_knot_matrix.size(); i++) - for (int j = 1; j < n3b_knot_matrix[i].size(); j++) - for (int k = 1; k < n3b_knot_matrix[i][j].size(); k++) - max_knots = - max(max_knots, - max(n3b_knot_matrix[i][j][k][0].size(), - max(n3b_knot_matrix[i][j][k][1].size(), - n3b_knot_matrix[i][j][k][2].size())));*/ // Init knot matrix view @@ -415,28 +355,27 @@ template void PairUF3Kokkos::create_3b_coefficien auto d_n3b_knot_matrix_view = Kokkos::create_mirror(d_n3b_knot_matrix); auto d_n3b_knot_matrix_spacings_view = Kokkos::create_mirror(d_n3b_knot_matrix_spacings); - for (int i = 1; i < num_of_elements + 1; i++)//n3b_knot_matrix.size(); i++) - for (int j = 1; j < num_of_elements + 1; j++)//n3b_knot_matrix[i].size(); j++) - for (int k = 1; k < num_of_elements + 1; k++){//n3b_knot_matrix[i][j].size(); k++) { - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++)//n3b_knot_matrix[i][j][k][0].size(); m++) + for (int i = 1; i < num_of_elements + 1; i++) + for (int j = 1; j < num_of_elements + 1; j++) + for (int k = 1; k < num_of_elements + 1; k++) { + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][0]; m++) d_n3b_knot_matrix_view(map3b_view(i, j, k), 0, m) = - n3b_knots_array[map_3b[i][j][k]][0][m];//n3b_knot_matrix[i][j][k][0][m]; - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++)//n3b_knot_matrix[i][j][k][1].size(); m++) + n3b_knots_array[map_3b[i][j][k]][0][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][1]; m++) d_n3b_knot_matrix_view(map3b_view(i, j, k), 1, m) = - n3b_knots_array[map_3b[i][j][k]][1][m];//n3b_knot_matrix[i][j][k][1][m]; - for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++)//n3b_knot_matrix[i][j][k][2].size(); m++) + n3b_knots_array[map_3b[i][j][k]][1][m]; + for (int m = 0; m < n3b_knots_array_size[map_3b[i][j][k]][2]; m++) d_n3b_knot_matrix_view(map3b_view(i, j, k), 2, m) = - n3b_knots_array[map_3b[i][j][k]][2][m];//n3b_knot_matrix[i][j][k][2][m]; + n3b_knots_array[map_3b[i][j][k]][2][m]; d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),2) = - n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3];//get_knot_spacing_3b_ij(i,j,k); - //uf3_impl->UFBS3b[i][j][k].knot_spacing_ij; + n3b_knots_array[map_3b[i][j][k]][2][4] - n3b_knots_array[map_3b[i][j][k]][2][3]; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),1) = - n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3];//get_knot_spacing_3b_ik(i,j,k); - //uf3_impl->UFBS3b[i][j][k].knot_spacing_ik; + n3b_knots_array[map_3b[i][j][k]][1][4] - n3b_knots_array[map_3b[i][j][k]][1][3]; + d_n3b_knot_matrix_spacings_view(map3b_view(i, j, k),0) = - n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3];//get_knot_spacing_3b_jk(i,j,k); - //uf3_impl->UFBS3b[i][j][k].knot_spacing_jk; + n3b_knots_array[map_3b[i][j][k]][0][4] - n3b_knots_array[map_3b[i][j][k]][0][3]; } Kokkos::deep_copy(d_n3b_knot_matrix, d_n3b_knot_matrix_view); Kokkos::deep_copy(d_n3b_knot_matrix_spacings, d_n3b_knot_matrix_spacings_view); @@ -451,13 +390,12 @@ template void PairUF3Kokkos::create_3b_coefficien for (int k = 1; k < num_of_elements + 1; k++) { d_n3b_knot_spacings_view(map3b_view(i, j, k), 0) = 1 / (n3b_knots_array[map_3b[i][j][k]][0][5] - n3b_knots_array[map_3b[i][j][k]][0][4]); - //(n3b_knot_matrix[i][j][k][0][5] - n3b_knot_matrix[i][j][k][0][4]); + d_n3b_knot_spacings_view(map3b_view(i, j, k), 1) = 1 / (n3b_knots_array[map_3b[i][j][k]][1][5] - n3b_knots_array[map_3b[i][j][k]][1][4]); - //(n3b_knot_matrix[i][j][k][1][5] - n3b_knot_matrix[i][j][k][1][4]); + d_n3b_knot_spacings_view(map3b_view(i, j, k), 2) = 1 / (n3b_knots_array[map_3b[i][j][k]][2][5] - n3b_knots_array[map_3b[i][j][k]][2][4]); - //(n3b_knot_matrix[i][j][k][2][5] - n3b_knot_matrix[i][j][k][2][4]); } } } @@ -472,14 +410,11 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - //std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - //std::vector>> n3b_coeff_matrix_key = - // get_n3b_coeff_matrix_key(key); - for (int i = 0; i < n3b_coeff_array_size[map_3b[n][m][o]][0]; i++) {//n3b_coeff_matrix_key.size(); i++) { - for (int j = 0; j < n3b_coeff_array_size[map_3b[n][m][o]][1]; j++) {//n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < n3b_coeff_array_size[map_3b[n][m][o]][2]; k++) {//n3b_coeff_matrix_key[i][j].size() - 1; k++) { + for (int i = 0; i < n3b_coeff_array_size[map_3b[n][m][o]][0]; i++) { + for (int j = 0; j < n3b_coeff_array_size[map_3b[n][m][o]][1]; j++) { + for (int k = 0; k < n3b_coeff_array_size[map_3b[n][m][o]][2]; k++) { d_coefficients_3b_view(map3b_view(n, m, o), i, j, k) = - n3b_coeff_array[map_3b[n][m][o]][i][j][k];//n3b_coeff_matrix_key[i][j][k]; + n3b_coeff_array[map_3b[n][m][o]][i][j][k]; } } } @@ -510,49 +445,42 @@ template void PairUF3Kokkos::create_3b_coefficien for (int n = 1; n < num_of_elements + 1; n++) { for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { - //std::string key = std::to_string(n) + std::to_string(m) + std::to_string(o); - //std::vector>> n3b_coeff_matrix_key = - // get_n3b_coeff_matrix_key(key); int coeff_dim1 = n3b_coeff_array_size[map_3b[n][m][o]][0]; int coeff_dim2 = n3b_coeff_array_size[map_3b[n][m][o]][1]; int coeff_dim3 = n3b_coeff_array_size[map_3b[n][m][o]][2]; - for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size(); i++) { - for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size() - 1; k++) { + for (int i = 0; i < coeff_dim1; i++) { + for (int j = 0; j < coeff_dim2; j++) { + for (int k = 0; k < coeff_dim3; k++) { F_FLOAT dntemp4 = 3 / (n3b_knots_array[map_3b[n][m][o]][0][k + 4] - n3b_knots_array[map_3b[n][m][o]][0][k + 1]); - //(n3b_knot_matrix[n][m][o][0][k + 4] - n3b_knot_matrix[n][m][o][0][k + 1]); + d_dncoefficients_3b_view(map3b_view(n, m, o), 2, i, j, k) = (n3b_coeff_array[map_3b[n][m][o]][i][j][k + 1] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - //(n3b_coeff_matrix_key[i][j][k + 1] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size(); i++) { + for (int i = 0; i < coeff_dim1; i++) { std::vector> dncoeff_vect2; - for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size() - 1; j++) { + for (int j = 0; j < coeff_dim2; j++) { F_FLOAT dntemp4 = 3 / (n3b_knots_array[map_3b[n][m][o]][1][j + 4] - n3b_knots_array[map_3b[n][m][o]][1][j + 1]); - //(n3b_knot_matrix[n][m][o][1][j + 4] - n3b_knot_matrix[n][m][o][1][j + 1]); + std::vector dncoeff_vect; - for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size(); k++) { + for (int k = 0; k < coeff_dim3; k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 1, i, j, k) = (n3b_coeff_array[map_3b[n][m][o]][i][j + 1][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - //(n3b_coeff_matrix_key[i][j + 1][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } - for (int i = 0; i < coeff_dim1; i++) {//n3b_coeff_matrix_key.size() - 1; i++) { + for (int i = 0; i < coeff_dim1; i++) { F_FLOAT dntemp4 = 3 / (n3b_knots_array[map_3b[n][m][o]][2][i + 4] - n3b_knots_array[map_3b[n][m][o]][2][i + 1]); - //(n3b_knot_matrix[n][m][o][2][i + 4] - n3b_knot_matrix[n][m][o][2][i + 1]); - for (int j = 0; j < coeff_dim2; j++) {//n3b_coeff_matrix_key[i].size(); j++) { - for (int k = 0; k < coeff_dim3; k++) {//n3b_coeff_matrix_key[i][j].size(); k++) { + for (int j = 0; j < coeff_dim2; j++) { + for (int k = 0; k < coeff_dim3; k++) { d_dncoefficients_3b_view(map3b_view(n, m, o), 0, i, j, k) = (n3b_coeff_array[map_3b[n][m][o]][i + 1][j][k] - n3b_coeff_array[map_3b[n][m][o]][i][j][k]) * dntemp4; - //(n3b_coeff_matrix_key[i + 1][j][k] - n3b_coeff_matrix_key[i][j][k]) * dntemp4; } } } @@ -575,25 +503,19 @@ template void PairUF3Kokkos::create_3b_coefficien for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 4; l++) { - //n3b_knot_matrix[n][m][o][2].size() - 4; l++) { auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); - //auto c = get_constants(&n3b_knot_matrix[n][m][o][2][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 0, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 4; l++) { - //n3b_knot_matrix[n][m][o][1].size() - 4; l++) { auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); - //auto c = get_constants(&n3b_knot_matrix[n][m][o][1][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 1, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } for (int l = 0; l < n3b_knots_array_size[map_3b[n][m][o]][0] -4; l++) { - //n3b_knot_matrix[n][m][o][0].size() - 4; l++) { auto c = get_constants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); - //auto c = get_constants(&n3b_knot_matrix[n][m][o][0][l], 1); for (int k = 0; k < 16; k++) constants_3b_view(map3b_view(n, m, o), 2, l, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; @@ -610,25 +532,19 @@ template void PairUF3Kokkos::create_3b_coefficien for (int m = 1; m < num_of_elements + 1; m++) { for (int o = 1; o < num_of_elements + 1; o++) { for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][2] - 5; l++) { - //n3b_knot_matrix[n][m][o][2].size() - 5; l++) { auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][2][l], 1); - //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][2][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 0, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][1] - 5; l++) { - //n3b_knot_matrix[n][m][o][1].size() - 5; l++) { auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][1][l], 1); - //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][1][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 1, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; } for (int l = 1; l < n3b_knots_array_size[map_3b[n][m][o]][0] - 5; l++) { - //n3b_knot_matrix[n][m][o][0].size() - 5; l++) { auto c = get_dnconstants(&n3b_knots_array[map_3b[n][m][o]][0][l], 1); - //auto c = get_dnconstants(&n3b_knot_matrix[n][m][o][0][l], 1); for (int k = 0; k < 9; k++) dnconstants_3b_view(map3b_view(n, m, o), 2, l - 1, k) = (std::isinf(c[k]) || std::isnan(c[k])) ? 0 : c[k]; @@ -804,36 +720,6 @@ KOKKOS_INLINE_FUNCTION void PairUF3Kokkos::threebody( } } -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -/*template void PairUF3Kokkos::init_style() -{ - - PairUF3::init_style(); - - neighflag = lmp->kokkos->neighflag; - - auto request = neighbor->find_request(this); - request->set_kokkos_host(std::is_same::value && - !std::is_same::value); - request->set_kokkos_device(std::is_same::value); - - request->enable_full(); - // request->enable_ghost(); -}*/ - -/* ---------------------------------------------------------------------- - init list sets the pointer to full neighbour list requested in previous function -------------------------------------------------------------------------- */ - -//template -//void PairUF3Kokkos::init_list(int /*id*/, class NeighList *ptr) -//{ -// list = ptr; -//} - template void PairUF3Kokkos::compute(int eflag_in, int vflag_in) { eflag = eflag_in; From ca675b557f2e1a22b97dc544a679e8563a7e9f4b Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Fri, 3 May 2024 11:23:42 +0100 Subject: [PATCH 085/313] Minor edits for python2/3 support, improved comments --- examples/PACKAGES/cgdna/util/generate.py | 14 ++++++++++---- examples/PACKAGES/cgdna/util/lmp2vis.py | 8 +++++++- examples/PACKAGES/cgdna/util/nbps.py | 12 +++++++++--- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/examples/PACKAGES/cgdna/util/generate.py b/examples/PACKAGES/cgdna/util/generate.py index e85661abb1..0d8630c88b 100644 --- a/examples/PACKAGES/cgdna/util/generate.py +++ b/examples/PACKAGES/cgdna/util/generate.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator @@ -16,16 +15,23 @@ /* ---------------------------------------------------------------------- Contributing author: Oliver Henrich (University of Strathclyde, Glasgow) ------------------------------------------------------------------------- */ -""" +Program: generate.py -""" -Import basic modules +Generates a simple initial ssDNA or dsDNA configuration from a given sequence. +For dsDNA the sequence should be preceded by the 'DOUBLE' keyword. + +Usage: +$$ python generate.py box_offset box_length sequence_file """ # for python2/3 compatibility from __future__ import print_function +#!/usr/bin/env python +""" +Import basic modules +""" import sys, os, timeit from timeit import default_timer as timer diff --git a/examples/PACKAGES/cgdna/util/lmp2vis.py b/examples/PACKAGES/cgdna/util/lmp2vis.py index 9ce856b745..ac74bdb9f6 100644 --- a/examples/PACKAGES/cgdna/util/lmp2vis.py +++ b/examples/PACKAGES/cgdna/util/lmp2vis.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator @@ -32,6 +31,13 @@ The LAMMPS trajectory input file needs to contain the following data columns: id mol type x y z vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] """ +# for python2/3 compatibility +from __future__ import print_function +#!/usr/bin/env python + +""" +Import basic modules +""" import sys, math, subprocess # converts quaternion DOF into local body reference frame diff --git a/examples/PACKAGES/cgdna/util/nbps.py b/examples/PACKAGES/cgdna/util/nbps.py index 6a60550750..d48633f391 100644 --- a/examples/PACKAGES/cgdna/util/nbps.py +++ b/examples/PACKAGES/cgdna/util/nbps.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator @@ -17,16 +16,23 @@ Contributing author: Oliver Henrich (University of Strathclyde, Glasgow) ------------------------------------------------------------------------- */ -Program: +Program: nbps.py + +Calculates the number of base pairs based on proximity of hydrogen bonding +interaction sites in oxDNA2. Usage: -$$ python +$$ python nbps.py input_filename output_filename Requirements: The LAMMPS trajectory input file needs to contain the following data columns: id mol type x y z c_quat[1] c_quat[2] c_quat[3] c_quat[4] """ +# for python2/3 compatibility +from __future__ import print_function +#!/usr/bin/env python + import sys, math, subprocess # converts quaternion DOF into local body reference frame From 775a73b67cd526b7d960af339d38fd76fa6eb2ac Mon Sep 17 00:00:00 2001 From: Kierran Falloon Date: Fri, 3 May 2024 15:00:29 +0100 Subject: [PATCH 086/313] cgDNA 'real' units and potential file reading for non-modifiable potential parameters (#15) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * oxDNA potential file reading and real units This allows for pair and bond coefficients to be read from an appropriately formatted potential file, and also allows for the use of 'real' units within oxDNA1. The correct backend coefficients for pair and bonded interactions are set when the atom vector is initialised through the "ConstantsOxdna" class, based on the units specified within the input file. * Extract seqav/seqdep and temp from potential files Also includes miscellaneous string consistency changes and removes unnecessary parameter from reader.next_line instances. * oxDNA2 potential file reading and real units This extends previous changes to oxDNA2 specific potentials, being FENE, excluded volume, coaxial stacking and Debye-Hückel. Units now default to LJ values rather than 0. * oxDNA potential files * LJ <-> real units conversion tool Converts standard oxDNA data and input file to real units, with inverse flag available for real -> LJ. * oxRNA2 potential file reading and real units For RNA, d_cs_x is treated as d_cs within ConstantsOxdna in order to reduce code duplication and complexity. * Reparameterise real units * Generalise PotentialFileReader logs * Extract stk xi and kappa from potential files This allows users to edit these values from the input script, as is documented, rather than them being within the potential files. * Real unit and potential file documentation This adds examples for real unit parameters and specific potential file documentation for each bond and pair style. --- doc/src/bond_oxdna.rst | 50 +- doc/src/pair_oxdna.rst | 74 ++- doc/src/pair_oxdna2.rst | 79 +++- doc/src/pair_oxrna2.rst | 85 +++- examples/PACKAGES/cgdna/util/lj2real.py | 604 ++++++++++++++++++++++++ potentials/oxdna.lj | 10 + potentials/oxdna.real | 10 + potentials/oxdna2.lj | 11 + potentials/oxdna2.real | 11 + potentials/oxrna2.lj | 12 + potentials/oxrna2.real | 12 + src/CG-DNA/atom_vec_oxdna.cpp | 4 + src/CG-DNA/bond_oxdna2_fene.cpp | 5 +- src/CG-DNA/bond_oxdna_fene.cpp | 46 +- src/CG-DNA/bond_oxrna2_fene.cpp | 6 +- src/CG-DNA/constants_oxdna.cpp | 69 +++ src/CG-DNA/constants_oxdna.h | 65 +++ src/CG-DNA/pair_oxdna2_coaxstk.cpp | 118 ++++- src/CG-DNA/pair_oxdna2_dh.cpp | 40 +- src/CG-DNA/pair_oxdna2_excv.cpp | 5 +- src/CG-DNA/pair_oxdna_coaxstk.cpp | 126 ++++- src/CG-DNA/pair_oxdna_excv.cpp | 88 +++- src/CG-DNA/pair_oxdna_hbond.cpp | 141 +++++- src/CG-DNA/pair_oxdna_stk.cpp | 107 ++++- src/CG-DNA/pair_oxdna_xstk.cpp | 135 +++++- src/CG-DNA/pair_oxrna2_dh.cpp | 5 +- src/CG-DNA/pair_oxrna2_excv.cpp | 6 +- src/CG-DNA/pair_oxrna2_stk.cpp | 129 ++++- src/CG-DNA/pair_oxrna2_xstk.cpp | 120 ++++- 29 files changed, 1970 insertions(+), 203 deletions(-) create mode 100644 examples/PACKAGES/cgdna/util/lj2real.py create mode 100644 potentials/oxdna.lj create mode 100644 potentials/oxdna.real create mode 100644 potentials/oxdna2.lj create mode 100644 potentials/oxdna2.real create mode 100644 potentials/oxrna2.lj create mode 100644 potentials/oxrna2.real create mode 100644 src/CG-DNA/constants_oxdna.cpp create mode 100644 src/CG-DNA/constants_oxdna.h diff --git a/doc/src/bond_oxdna.rst b/doc/src/bond_oxdna.rst index 1bce606da7..8c2ddfa5a0 100644 --- a/doc/src/bond_oxdna.rst +++ b/doc/src/bond_oxdna.rst @@ -27,6 +27,7 @@ Examples .. code-block:: LAMMPS + # LJ units bond_style oxdna/fene bond_coeff * 2.0 0.25 0.7525 @@ -36,6 +37,30 @@ Examples bond_style oxrna2/fene bond_coeff * 2.0 0.25 0.76107 + bond_style oxdna/fene + bond_coeff * oxdna.lj + + # Real units + bond_style oxdna/fene + bond_coeff * 11.92337812042065 2.1295 6.409795 + + bond_style oxdna2/fene + bond_coeff * 11.92337812042065 2.1295 6.4430152 + + bond_style oxrna2/fene + bond_coeff * 11.92337812042065 2.1295 6.482800913 + + bond_style oxrna2/fene + bond_coeff * oxrna2.real + +.. note:: + The coefficients in the above examples have to be kept fixed and cannot + be changed without reparameterizing the entire model. They are provided in forms + compatible with both *units lj* and *units real* (see documentation of :doc:`units `). + These can also be read from a potential file with correct unit style by specifying the name + of the file. Several potential files for each unit style are included in the + /potentials/ directory of the LAMMPS distribution. + Description """"""""""" @@ -73,8 +98,6 @@ commands: *oxdna2/hbond* and an additional Debye-Hueckel pair style *oxdna2/dh* have to be defined. The same applies to the oxRNA2 :ref:`(Sulc1) ` styles. - The coefficients in the above example have to be kept fixed and cannot - be changed without reparameterizing the entire model. .. note:: @@ -113,6 +136,29 @@ and for sequence-specific hydrogen-bonding and stacking interactions ---------- +Potential file reading +"""""""""""""""""""""" + +For each style oxdna, oxdna2 and oxrna2, the first parameter argument can be a filename, and if it is, no further arguments should be supplied. Therefore the following command: + +.. code-block:: LAMMPS + + bond_style oxdna/fene + bond_coeff * oxdna.lj + +will be interpreted as a request to read the (FENE) potential :ref:`(Ouldridge) ` parameters from the file with the given name. +The file can define multiple potential parameters for both bonded and pair interactions, but for the above bonded interactions there must exist in the file a line of the form: + +.. code-block:: LAMMPS + + * fene epsilon delta r0 + +There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ +directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. + +---------- + Restrictions """""""""""" diff --git a/doc/src/pair_oxdna.rst b/doc/src/pair_oxdna.rst index dab1c2a230..2781cffab8 100644 --- a/doc/src/pair_oxdna.rst +++ b/doc/src/pair_oxdna.rst @@ -49,6 +49,7 @@ Examples .. code-block:: LAMMPS + # LJ units pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk pair_coeff * * oxdna/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 pair_coeff * * oxdna/stk seqdep 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 @@ -58,6 +59,40 @@ Examples pair_coeff * * oxdna/xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 pair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65 + pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk + pair_coeff * * oxdna/excv oxdna.lj + pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna.lj + pair_coeff * * oxdna/hbond seqav oxdna.lj + pair_coeff 1 4 oxdna/hbond seqav oxdna.lj + pair_coeff 2 3 oxdna/hbond seqav oxdna.lj + pair_coeff * * oxdna/xstk oxdna.lj + pair_coeff * * oxdna/coaxstk oxdna.lj + + # Real units + pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk + pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 + pair_coeff * * oxdna/stk seqdep 300.0 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 + pair_coeff * * oxdna/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff 1 4 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff 2 3 oxdna/hbond seqdep 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 + pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 -0.65 2.0 -0.65 + + pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk + pair_coeff * * oxdna/excv oxdna.real + pair_coeff * * oxdna/stk seqav 300.0 8.01727944817084 0.005279604 oxdna.real + pair_coeff * * oxdna/hbond seqav oxdna.real + pair_coeff 1 4 oxdna/hbond seqav oxdna.real + pair_coeff 2 3 oxdna/hbond seqav oxdna.real + pair_coeff * * oxdna/xstk oxdna.real + pair_coeff * * oxdna/coaxstk oxdna.real + +.. note:: + + The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the + /potentials/ directory of the LAMMPS distribution. + Description """"""""""" @@ -85,7 +120,7 @@ for a detailed description of the oxDNA force field. *oxdna/fene* for the connectivity of the phosphate backbone (see also documentation of :doc:`bond_style oxdna/fene `). Most of the coefficients in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 in the above example) + Exceptions are the first four coefficients after *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 and corresponding *real unit* equivalents in the above examples) and the first coefficient after *oxdna/hbond* (seq=seqdep in the above example). When using a Langevin thermostat, e.g. through :doc:`fix langevin ` or :doc:`fix nve/dotc/langevin ` @@ -115,6 +150,43 @@ and :ref:`(Sulc) `. ---------- +Potential file reading +"""""""""""""""""""""" + +For each pair style above the first non-modifiable argument can be a filename, and if it is, no further arguments should be supplied. Therefore the following command: + +.. code-block:: LAMMPS + + pair_coeff 1 4 oxdna/hbond seqav oxdna.lj + +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. +The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: + +.. code-block:: LAMMPS + + 1 4 hbond + +If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: + +.. code-block:: LAMMPS + + pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk + pair_coeff * * oxdna/excv oxdna.lj + pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 + pair_coeff * * oxdna/hbond seqav oxdna.lj + pair_coeff 1 4 oxdna/hbond seqav oxdna.lj + pair_coeff 2 3 oxdna/hbond seqav oxdna.lj + pair_coeff * * oxdna/xstk oxdna.lj + pair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65 + +will read the stacking and coaxial stacking potential parameters from the manual specification and all others from the potential file *oxdna.lj*. + +There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ +directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. + +---------- + Restrictions """""""""""" diff --git a/doc/src/pair_oxdna2.rst b/doc/src/pair_oxdna2.rst index 5cac7d8f77..d1d9d741e2 100644 --- a/doc/src/pair_oxdna2.rst +++ b/doc/src/pair_oxdna2.rst @@ -57,6 +57,7 @@ Examples .. code-block:: LAMMPS + # LJ units pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh pair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 @@ -67,6 +68,43 @@ Examples pair_coeff * * oxdna2/coaxstk 58.5 0.4 0.6 0.22 0.58 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 pair_coeff * * oxdna2/dh 0.1 0.5 0.815 + pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh + pair_coeff * * oxdna2/excv oxdna2.lj + pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj + pair_coeff * * oxdna2/hbond seqdep oxdna2.lj + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj + pair_coeff * * oxdna2/xstk oxdna2.lj + pair_coeff * * oxdna2/coaxstk oxdna2.lj + pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2.lj + + # Real units + pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh + pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 + pair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 + pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 + pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 40.0 3.116592653589793 + pair_coeff * * oxdna2/dh 300.0 0.5 0.815 + + pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh + pair_coeff * * oxdna2/excv oxdna2.real + pair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 oxdna2.real + pair_coeff * * oxdna2/hbond seqdep oxdna2.real + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.real + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.real + pair_coeff * * oxdna2/xstk oxdna2.real + pair_coeff * * oxdna2/coaxstk oxdna2.real + pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2.real + +.. note:: + + The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the + /potentials/ directory of the LAMMPS distribution. + Description """"""""""" @@ -94,7 +132,7 @@ and :ref:`(Ouldridge) ` for a detailed description of the oxDNA2 fo *oxdna2/fene* for the connectivity of the phosphate backbone (see also documentation of :doc:`bond_style oxdna2/fene `). Most of the coefficients in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 in the above example), + Exceptions are the first four coefficients after *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 and corresponding *real unit* equivalents in the above examples). the first coefficient after *oxdna2/hbond* (seq=seqdep in the above example) and the three coefficients after *oxdna2/dh* (T=0.1, rhos=0.5, qeff=0.815 in the above example). When using a Langevin thermostat e.g. through :doc:`fix langevin ` or :doc:`fix nve/dotc/langevin ` @@ -122,6 +160,45 @@ Please cite also the relevant oxDNA2 publications ---------- +Potential file reading +"""""""""""""""""""""" + +For each pair style above the first non-modifiable argument can be a filename (with exception of Debye-Hueckel, for which the effective charge argument can be a filename), and if it is, no further arguments should be supplied. +Therefore the following command: + +.. code-block:: LAMMPS + + pair_coeff 1 4 oxdna2/hbond seqdep oxdna.real + +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. +The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: + +.. code-block:: LAMMPS + + 1 4 hbond + +If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: + +.. code-block:: LAMMPS + + pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh + pair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 + pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj + pair_coeff * * oxdna2/hbond seqdep oxdna2.lj + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj + pair_coeff * * oxdna2/xstk oxdna2.lj + pair_coeff * * oxdna2/coaxstk oxdna2.lj + pair_coeff * * oxdna2/dh 0.1 0.5 0.815 + +will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxdna2.lj*. + +There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ +directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. + +---------- + Restrictions """""""""""" diff --git a/doc/src/pair_oxrna2.rst b/doc/src/pair_oxrna2.rst index 7b8220740c..1726e3cbff 100644 --- a/doc/src/pair_oxrna2.rst +++ b/doc/src/pair_oxrna2.rst @@ -57,6 +57,7 @@ Examples .. code-block:: LAMMPS + # LJ units pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh pair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 @@ -68,11 +69,51 @@ Examples pair_coeff * * oxrna2/coaxstk 80 0.5 0.6 0.42 0.58 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 pair_coeff * * oxrna2/dh 0.1 0.5 1.02455 + pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh + pair_coeff * * oxrna2/excv oxrna2.lj + pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj + pair_coeff * * oxrna2/hbond seqdep oxrna2.lj + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj + pair_coeff * * oxrna2/xstk oxrna2.lj + pair_coeff * * oxrna2/coaxstk oxrna2.lj + pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2.lj + + # Real units + pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh + pair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 + pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 + pair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 + pair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 + pair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 + pair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 + pair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 + pair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 + pair_coeff * * oxrna2/dh 300.0 0.5 1.02455 + + pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh + pair_coeff * * oxrna2/excv oxrna2.real + pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2.real + pair_coeff * * oxrna2/hbond seqdep oxrna2.real + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.real + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.real + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.real + pair_coeff * * oxrna2/xstk oxrna2.real + pair_coeff * * oxrna2/coaxstk oxrna2.real + pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2.real + +.. note:: + + The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the + /potentials/ directory of the LAMMPS distribution. + Description """"""""""" The *oxrna2* pair styles compute the pairwise-additive parts of the oxDNA force field -for coarse-grained modelling of DNA. The effective interaction between the nucleotides consists of potentials for the +for coarse-grained modelling of RNA. The effective interaction between the nucleotides consists of potentials for the excluded volume interaction *oxrna2/excv*, the stacking *oxrna2/stk*, cross-stacking *oxrna2/xstk* and coaxial stacking interaction *oxrna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxrna2/dh* as well as the hydrogen-bonding interaction *oxrna2/hbond* between complementary pairs of nucleotides on @@ -95,7 +136,7 @@ and :ref:`(Ouldridge) ` for a detailed description of the oxRNA2 fo *oxrna2/fene* for the connectivity of the phosphate backbone (see also documentation of :doc:`bond_style oxrna2/fene `). Most of the coefficients in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 in the above example), + Exceptions are the first four coefficients after *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 and corresponding *real unit* equivalents in the above examples), the first coefficient after *oxrna2/hbond* (seq=seqdep in the above example) and the three coefficients after *oxrna2/dh* (T=0.1, rhos=0.5, qeff=1.02455 in the above example). When using a Langevin thermostat e.g. through :doc:`fix langevin ` or :doc:`fix nve/dotc/langevin ` @@ -123,6 +164,46 @@ Please cite also the relevant oxRNA2 publications ---------- +Potential file reading +"""""""""""""""""""""" + +For each pair style above the first non-modifiable argument can be a filename (with exception of Debye-Hueckel, for which the effective charge argument can be a filename), and if it is, no further arguments should be supplied. +Therefore the following command: + +.. code-block:: LAMMPS + + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj + +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. +The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: + +.. code-block:: LAMMPS + + 3 4 hbond + +If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: + +.. code-block:: LAMMPS + + pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh + pair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 + pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj + pair_coeff * * oxrna2/hbond seqdep oxrna2.lj + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj + pair_coeff * * oxrna2/xstk oxrna2.lj + pair_coeff * * oxrna2/coaxstk oxrna2.lj + pair_coeff * * oxrna2/dh 0.1 0.5 1.02455 + +will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxrna2.lj*. + +There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ +directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. + +---------- + Restrictions """""""""""" diff --git a/examples/PACKAGES/cgdna/util/lj2real.py b/examples/PACKAGES/cgdna/util/lj2real.py new file mode 100644 index 0000000000..7b4f3bac28 --- /dev/null +++ b/examples/PACKAGES/cgdna/util/lj2real.py @@ -0,0 +1,604 @@ +""" +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/ Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Kierran Falloon (University of Strathclyde, Glasgow) + Oliver Henrich (University of Strathclyde, Glasgow) +------------------------------------------------------------------------- */ + +Program: + +Usage: +$$ python lj2real.py [-i] +$$ [-i] flag is optional and is used to convert real -> LJ units. + +Requirements: +LAMMPS data file and input file. + +This script assumes a input and data file structure similar to those found in examples/PACKAGES/cgdna/examples/. +""" + +import datetime +import os +import sys + + +class Sections: + """Sections of the data file""" + + def __init__( + self, + bounds: bool, + masses: bool, + atoms: bool, + velocities: bool, + ellipsoids: bool, + ): + self.bounds = bounds # xlo, xhi, ylo, yhi, zlo, zhi + self.masses = masses # Masses + self.atoms = atoms # Atoms + self.velocities = velocities # Velocities + self.ellipsoids = ellipsoids # Ellipsoids + + +# Conversion factors +class ConversionFactors: + """Conversion factors for LJ to real units""" + + def __init__(self, invert: bool = False): + self.inverted = False + self.temp_conv_factor = 3000.038822 + self.energy_conv_factor = 5.961689060210325 + self.kT_conv_factor = 0.001987204155 + self.mass_conv_factor = 100.0277580236 + self.length_conv_factor = 8.518 + self.time_conv_factor = 1706.0 + self.vel_conv_factor = 0.004992966002344666 + self.angular_mom_conv_factor = 4.254188991883894 + self.density_conv_factor = 0.2687551067436886 + + self.oxdna_fene_string = "11.92337812042065 2.1295 6.409795" + self.oxdna_excv_string = "11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576" + self.oxdna_stk_string = "0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65" + self.oxdna_hbond_string = "0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + self.oxdna_hbond_1_4_2_3_string = "6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + self.oxdna_xstk_string = "3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68" + self.oxdna_coaxstk_string = "3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65" + + self.oxdna2_fene_string = "11.92337812042065 2.1295 6.4430152" + self.oxdna2_excv_string = "11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576" + self.oxdna2_stk_string = "0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65" + self.oxdna2_hbond_string = "0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + self.oxdna2_hbond_1_4_2_3_string = "6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + self.oxdna2_xstk_string = "3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68" + self.oxdna2_coaxstk_string = "4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793" + + self.oxrna2_fene_string = "11.92337812042065 2.1295 6.482800913" + self.oxrna2_excv_string = "11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576" + self.oxrna2_stk_string = "0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65" + self.oxrna2_hbond_string = "0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxrna2_hbond_1_4_2_3_3_4_string = "5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxrna2_xstk_string = "4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68" + self.oxrna2_coaxstk_string = "6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65" + + if invert: + self.invert() + + def invert(self): + """Inverts the conversion factors for real -> LJ""" + self.inverted = True + self.temp_conv_factor = 1.0 / self.temp_conv_factor + self.energy_conv_factor = 1.0 / self.energy_conv_factor + self.kT_conv_factor = 1.0 / self.kT_conv_factor + self.mass_conv_factor = 1.0 / self.mass_conv_factor + self.length_conv_factor = 1.0 / self.length_conv_factor + self.time_conv_factor = 1.0 / self.time_conv_factor + self.vel_conv_factor = 1.0 / self.vel_conv_factor + self.angular_mom_conv_factor = 1.0 / self.angular_mom_conv_factor + self.density_conv_factor = 1.0 / self.density_conv_factor + + self.oxdna_fene_string = "2.0 0.25 0.7525" + self.oxdna_excv_string = "2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32" + self.oxdna_stk_string = ( + "6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65" + ) + self.oxdna_hbond_string = "0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxdna_hbond_1_4_2_3_string = "1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxdna_xstk_string = "47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68" + self.oxdna_coaxstk_string = "46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65" + + self.oxdna2_fene_string = "2.0 0.25 0.7564" + self.oxdna2_excv_string = "2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32" + self.oxdna2_stk_string = ( + "6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65" + ) + self.oxdna2_hbond_string = "0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxdna2_hbond_1_4_2_3_string = "1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxdna2_xstk_string = "47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68" + self.oxdna2_coaxstk_string = "58.5 0.4 0.6 0.22 0.58 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793" + + self.oxrna2_fene_string = "2.0 0.25 0.761070781051" + self.oxrna2_excv_string = "2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32" + self.oxrna2_stk_string = "6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65" + self.oxrna2_hbond_string = "0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxrna2_hbond_1_4_2_3_3_4_string = "0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45" + self.oxrna2_xstk_string = "59.9626 0.5 0.6 0.42 0.58 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68" + self.oxrna2_coaxstk_string = "80 0.5 0.6 0.42 0.58 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65" + + +def check_datafile_header(line: str, sections: Sections): + """Checks for headers to modify corresponding data, since datafile is split into headers. + Modifies the Sections object to keep track of the current section. + + Args: + line (str): The line to check + masses_section (bool): If the current section is the masses section + atoms_section (bool): If the current section is the atoms section + velocities_section (bool): If the current section is the velocities section + ellipsoids_section (bool): If the current section is the ellipsoids section + """ + + if any(header in line for header in ["xlo", "xhi", "ylo", "yhi", "zlo", "zhi"]): + sections.bounds = True + sections.masses = False + sections.atoms = False + sections.velocities = False + sections.ellipsoids = False + elif "Masses" in line: + sections.bounds = False + sections.masses = True + sections.atoms = False + sections.velocities = False + sections.ellipsoids = False + elif "Atoms" in line: + sections.bounds = False + sections.masses = False + sections.atoms = True + sections.velocities = False + sections.ellipsoids = False + elif "Velocities" in line: + sections.bounds = False + sections.masses = False + sections.atoms = False + sections.velocities = True + sections.ellipsoids = False + elif "Ellipsoids" in line: + sections.bounds = False + sections.masses = False + sections.atoms = False + sections.velocities = False + sections.ellipsoids = True + elif "Bonds" in line: + sections.bounds = False + sections.masses = False + sections.atoms = False + sections.velocities = False + sections.ellipsoids = False + + +def modify_datafile(datafile_path: str, conversion_factors: ConversionFactors): + """Modifies the file by header to use real units. + + Args: + datafile_path (str): The path to the file to modify + """ + lines_changed = 0 + current_section = Sections(False, False, False, False, False) + + with open(datafile_path, "r", encoding="UTF-8") as file: + lines = file.readlines() + if conversion_factors.inverted: + lines[0] = ( + "LAMMPS data file in LJ units via oxdna lj2real.py, date " + + str(datetime.date.today()) + + "\n" + ) + else: + lines[0] = ( + "LAMMPS data file in real units via oxdna lj2real.py, date " + + str(datetime.date.today()) + + "\n" + ) + + for i, line in enumerate(lines): + check_datafile_header(line, current_section) # check for headers + + elements = line.split() + if ( + not elements + or elements[0] == "#" + or any( + header in line + for header in ["Masses", "Atoms", "Velocities", "Ellipsoids", "Bonds"] + ) + ): + continue + + # modify the line based on the current section it is in + if current_section.bounds: + elements[0:2] = [ + str(int(float(x) * conversion_factors.length_conv_factor)) + for x in elements[0:2] + ] + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + if current_section.masses: + elements[1] = str( + round(float(elements[1]) * conversion_factors.mass_conv_factor, 4) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + elif current_section.atoms: + elements[2:5] = [ + str(float(x) * conversion_factors.length_conv_factor) + for x in elements[2:5] + ] + elements[7] = str( + float(elements[7]) * conversion_factors.density_conv_factor + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + elif current_section.velocities: + elements[1:4] = [ + str(float(x) * conversion_factors.vel_conv_factor) + for x in elements[1:4] + ] + elements[4:7] = [ + str(float(x) * conversion_factors.angular_mom_conv_factor) + for x in elements[4:7] + ] + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + elif current_section.ellipsoids: + elements[1:4] = [ + str(float(x) * conversion_factors.length_conv_factor) + for x in elements[1:4] + ] + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + if conversion_factors.inverted: + new_datafile_path = datafile_path + "_lj" + else: + new_datafile_path = datafile_path + "_real" + + with open(new_datafile_path, "w", encoding="UTF-8") as file: + file.writelines(lines) + if lines_changed == 0: + print( + "Warning: No lines changed in data file. Ensure correct usage: python lj2real.py [-i]" + ) + else: + print(f"Data file lines changed: {lines_changed}") + + return new_datafile_path + + +def modify_inputfile(inputfile_path: str, conversion_factors: ConversionFactors): + """Modifies the input file line by line to use real units. + + Args: + inputfile_path (str): The path to the input file to modify + """ + + lines_changed = 0 + oxdna2_flag, oxrna2_flag = False, False + + with open(inputfile_path, "r", encoding="UTF-8") as file: + lines = file.readlines() + + for i, line in enumerate(lines): + if "oxdna2" in line and not oxdna2_flag: + oxdna2_flag = True + print("Note: oxdna2 found in input file. Using oxdna2 conversion factors.") + if "oxrna2" in line and not oxrna2_flag: + oxrna2_flag = True + print("Note: oxrna2 found in input file. Using oxrna2 conversion factors.") + if oxdna2_flag and oxrna2_flag: + print( + "Warning: Both oxdna2 and oxrna2 found in input file. Output will likely be incorrect." + ) + + if "variable T" in line: + old_value = line.split()[3] + + new_value = str( + round(float(old_value) * conversion_factors.temp_conv_factor, 1) + ) + lines[i] = line.replace(old_value, new_value) + lines_changed += 1 + + elif "units" in line: + if conversion_factors.inverted: + lines[i] = "units lj\n" + else: + lines[i] = "units real\n" + lines_changed += 1 + + elif "atom_modify" in line: + elements = line.split() + elements[3] = str( + round(float(elements[3]) * conversion_factors.length_conv_factor, 3) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "neighbor" in line: + elements = line.split() + elements[1] = str( + round(float(elements[1]) * conversion_factors.length_conv_factor, 3) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "read_data" in line: + elements = line.split() + if conversion_factors.inverted: + elements[1] = elements[1] + "_lj" + else: + elements[1] = ( + elements[1] + "_real" + ) # naming convention of datafile after conversion + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "mass" in line: + elements = line.split() + elements[4] = str( + round(float(elements[4]) * conversion_factors.mass_conv_factor, 4) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "bond_coeff" in line or "pair_coeff" in line: + if ".lj" in line or ".real" in line: + if conversion_factors.inverted: + line = line.replace(".real", ".lj") + else: + line = line.replace(".lj", ".real") + lines[i] = line + lines_changed += 1 + + if "stk" in line and "xstk" not in line and "coaxstk" not in line: + elements = line.split() + elements[6] = str( # convert xi + round( + float(elements[6]) * conversion_factors.energy_conv_factor, + 14, + ) + ) + elements[7] = str( # convert kappa + round(float(elements[7]) * conversion_factors.kT_conv_factor, 9) + ) + lines[i] = " ".join(elements) + "\n" + + else: + elements = line.split() + + if "bond_coeff" in line: + if oxdna2_flag: + elements[2:] = conversion_factors.oxdna2_fene_string.split() + elif oxrna2_flag: + elements[2:] = conversion_factors.oxrna2_fene_string.split() + else: + elements[2:] = conversion_factors.oxdna_fene_string.split() + + elif "excv" in line: + if oxdna2_flag: + elements[4:] = conversion_factors.oxdna2_excv_string.split() + elif oxrna2_flag: + elements[4:] = conversion_factors.oxrna2_excv_string.split() + else: + elements[4:] = conversion_factors.oxdna_excv_string.split() + + elif "stk" in line: + + if "coaxstk" in line: + if oxdna2_flag: + elements[4:] = ( + conversion_factors.oxdna2_coaxstk_string.split() + ) + elif oxrna2_flag: + elements[4:] = ( + conversion_factors.oxrna2_coaxstk_string.split() + ) + else: + elements[4:] = ( + conversion_factors.oxdna_coaxstk_string.split() + ) + + elif "xstk" in line: + if oxdna2_flag: + elements[4:] = conversion_factors.oxdna2_xstk_string.split() + elif oxrna2_flag: + elements[4:] = conversion_factors.oxrna2_xstk_string.split() + else: + elements[4:] = conversion_factors.oxdna_xstk_string.split() + + else: # stk + elements[6] = str( # convert xi + round( + float(elements[6]) + * conversion_factors.energy_conv_factor, + 14, + ) + ) + elements[7] = str( # convert kappa + round( + float(elements[7]) * conversion_factors.kT_conv_factor, + 9, + ) + ) + if oxdna2_flag: + elements[8:] = conversion_factors.oxdna2_stk_string.split() + elif oxrna2_flag: + elements[8:] = conversion_factors.oxrna2_stk_string.split() + else: + elements[8:] = conversion_factors.oxdna_stk_string.split() + + elif "hbond" in line: + if elements[1] == "*" and elements[2] == "*": + if oxdna2_flag: + elements[5:] = ( + conversion_factors.oxdna2_hbond_string.split() + ) + elif oxrna2_flag: + elements[5:] = ( + conversion_factors.oxrna2_hbond_string.split() + ) + else: + elements[5:] = conversion_factors.oxdna_hbond_string.split() + else: + if oxdna2_flag: + elements[5:] = ( + conversion_factors.oxdna2_hbond_1_4_2_3_string.split() + ) + elif oxrna2_flag: + elements[5:] = ( + conversion_factors.oxrna2_hbond_1_4_2_3_3_4_string.split() + ) + else: + elements[5:] = ( + conversion_factors.oxdna_hbond_1_4_2_3_string.split() + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "langevin" in line: + elements = line.split() + elements[6] = str( + round(float(elements[6]) * conversion_factors.time_conv_factor, 2) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "timestep" in line: + elements = line.split() + elements[1] = str( + round(float(elements[1]) * conversion_factors.time_conv_factor, 5) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + elif "comm_modify" in line: + elements = line.split() + elements[2] = str( + round(float(elements[2]) * conversion_factors.length_conv_factor, 1) + ) + lines[i] = " ".join(elements) + "\n" + lines_changed += 1 + + else: + continue + + if conversion_factors.inverted: + new_inputfile_path = inputfile_path + "_lj" + else: + new_inputfile_path = inputfile_path + "_real" + + with open(new_inputfile_path, "w", encoding="UTF-8") as file: + if conversion_factors.inverted: + file.write( + "# LAMMPS input file in LJ units via oxdna lj2real.py, date " + + str(datetime.date.today()) + + "\n" + ) + else: + file.write( + "# LAMMPS input file in real units via oxdna lj2real.py, date " + + str(datetime.date.today()) + + "\n" + ) + file.writelines(lines) + if lines_changed == 0: + print( + "Warning: No lines changed in input file. Ensure correct usage: python lj2real.py [-i]" + ) + else: + print(f"Input file lines changed: {lines_changed}") + + return new_inputfile_path + + +def main(): + """Main function""" + + print( + "\nLAMMPS data and input file conversion to real units via oxdna convert_data.py\n" + "Note: This script assumes a input and data file structure similar to those found in examples/PACKAGES/cgdna/examples/.\n" + "Ensure output is checked for correctness." + ) + + if len(sys.argv) > 2: + datafile_path = sys.argv[1] + inputfile_path = sys.argv[2] + invert = False + if len(sys.argv) > 3: + if sys.argv[3] == "-i": + invert = True + print("Performing real -> LJ conversion.") + else: + print( + "Invalid flag. Usage: python lj2real.py [-i]" + ) + sys.exit(1) + + if invert: + conversion_factors = ConversionFactors(invert=True) + print( + "\nUsing conversion factors (real T, m, l, t, v, ρ -> LJ T*, m*, l*, t*, v*, ρ*):" + ) + + else: + conversion_factors = ConversionFactors(invert=False) + print( + "\nUsing conversion factors (LJ T*, m*, l*, t*, v*, ρ* -> real T, m, l, t, v, ρ):" + ) + + else: + print("\nUsage: python lj2real.py [-i]") + print("\t[-i] flag is optional and is used to convert real -> LJ units.\n") + sys.exit(1) + + conversion_factors_string = ( + f"Temperature T\t≈ {round(conversion_factors.temp_conv_factor, 6)} T* (K)\n" + f"Energy ε\t≈ {round(conversion_factors.energy_conv_factor, 6)} ε* (kcal/mol)\n" + f"Mass m\t\t≈ {round(conversion_factors.mass_conv_factor, 6)} m* (g/mol)\n" + f"Length l\t≈ {round(conversion_factors.length_conv_factor, 6)} l* (Å)\n" + f"Time t\t\t≈ {round(conversion_factors.time_conv_factor, 6)} t* (fs)\n" + f"Velocity v\t≈ {round(conversion_factors.vel_conv_factor, 6)} v* (Å/fs)\n" + f"AngMom l\t≈ {round(conversion_factors.angular_mom_conv_factor, 6)} (g/mol Å^2/fs)\n" + f"Density ρ\t≈ {round(conversion_factors.density_conv_factor, 6)} ρ* (g/cm^3)\n" + f"Calculated using Sengar, Ouldridge, Henrich, Rovigatti, & Šulc. Front Mol Biosci 8 (2021). & https://docs.lammps.org/units.html.\n" + f"See examples/PACKAGES/cgdna/util/lj2real.py for exact conversion factors.\n" + ) + print(conversion_factors_string) + + print("Current directory: ", os.getcwd()) + + try: + new_datafile_path = modify_datafile(datafile_path, conversion_factors) + print(f"New data file: {new_datafile_path}") + except Exception as e: + print(f"Error modifying data file: {e}") + + try: + new_inputfile_path = modify_inputfile(inputfile_path, conversion_factors) + print(f"New input file: {new_inputfile_path}\n") + except Exception as e: + print(f"Error modifying input file: {e}") + + +if __name__ == "__main__": + main() diff --git a/potentials/oxdna.lj b/potentials/oxdna.lj new file mode 100644 index 0000000000..e737d68e15 --- /dev/null +++ b/potentials/oxdna.lj @@ -0,0 +1,10 @@ +# DATE: 2024-04-21 UNITS: lj CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk CITATION: Ouldridge, Louis, and Doye, J Chem Phys, 134, 8 (2011) +# +* fene 2.0 0.25 0.7525 +* * excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 +* * stk 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 +* * hbond 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +1 4 hbond 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +2 3 hbond 1.077 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +* * xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +* * coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65 diff --git a/potentials/oxdna.real b/potentials/oxdna.real new file mode 100644 index 0000000000..d687cbe1f4 --- /dev/null +++ b/potentials/oxdna.real @@ -0,0 +1,10 @@ +# DATE: 2024-04-26 UNITS: real CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk +# +* fene 11.92337812042065 2.1295 6.409795 +* * excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +* * stk 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +* * hbond 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +1 4 hbond 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +2 3 hbond 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +* * xstk 3.902852174 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +* * coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 -0.65 2.0 -0.65 diff --git a/potentials/oxdna2.lj b/potentials/oxdna2.lj new file mode 100644 index 0000000000..15c82f52c6 --- /dev/null +++ b/potentials/oxdna2.lj @@ -0,0 +1,11 @@ +# DATE: 2024-04-21 UNITS: lj CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk CITATION: Snodin, Randisi, Mosayebi, Šulc et. al., J Chem Phys, 142, 23 (2015) +# +* fene 2.0 0.25 0.7564 +* * excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 +* * stk 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 +* * hbond 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +1 4 hbond 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +2 3 hbond 1.0678 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +* * xstk 47.5 0.575 0.675 0.495 0.655 2.25 0.791592653589793 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +* * coaxstk 58.5 0.4 0.6 0.22 0.58 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +* * dh 0.815 diff --git a/potentials/oxdna2.real b/potentials/oxdna2.real new file mode 100644 index 0000000000..fa42412f2b --- /dev/null +++ b/potentials/oxdna2.real @@ -0,0 +1,11 @@ +# DATE: 2024-04-26 UNITS: real CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk +# +* fene 11.92337812042065 2.1295 6.4430152 +* * excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +* * stk 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +* * hbond 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +1 4 hbond 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +2 3 hbond 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +* * xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0.0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +* * coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 40.0 3.116592653589793 +* * dh 0.815 diff --git a/potentials/oxrna2.lj b/potentials/oxrna2.lj new file mode 100644 index 0000000000..f4e7c59dbb --- /dev/null +++ b/potentials/oxrna2.lj @@ -0,0 +1,12 @@ +# DATE: 2024-04-19 UNITS: lj CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk CITATION: Šulc, Romano, Ouldridge, Rovigatti, Doye, Louis, J Chem Phys, 140, 23 (2014) +# +* fene 2.0 0.25 0.761070781051 +* * excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 +* * stk 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 +* * hbond 0.0 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +1 4 hbond 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +2 3 hbond 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +3 4 hbond 0.870439 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +* * xstk 59.9626 0.5 0.6 0.42 0.58 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 +* * coaxstk 80 0.5 0.6 0.42 0.58 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 +* * dh 1.02455 diff --git a/potentials/oxrna2.real b/potentials/oxrna2.real new file mode 100644 index 0000000000..10a8d8a8b5 --- /dev/null +++ b/potentials/oxrna2.real @@ -0,0 +1,12 @@ +# DATE: 2024-04-26 UNITS: real CONTRIBUTOR: Oliver Henrich, oliver.henrich@strath.ac.uk +# +* fene 11.92337812042065 2.1295 6.482800913 +* * excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +* * stk 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +* * hbond 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +1 4 hbond 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +2 3 hbond 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +3 4 hbond 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +* * xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 +* * coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 +* * dh 1.02455 diff --git a/src/CG-DNA/atom_vec_oxdna.cpp b/src/CG-DNA/atom_vec_oxdna.cpp index d7aa7a3d01..38f78f94bf 100644 --- a/src/CG-DNA/atom_vec_oxdna.cpp +++ b/src/CG-DNA/atom_vec_oxdna.cpp @@ -12,6 +12,7 @@ ------------------------------------------------------------------------- */ #include "atom_vec_oxdna.h" +#include "constants_oxdna.h" #include "atom.h" #include "error.h" @@ -45,6 +46,9 @@ AtomVecOxdna::AtomVecOxdna(LAMMPS *lmp) : AtomVec(lmp) if (!force->newton_bond) error->warning(FLERR, "Write_data command requires newton on to preserve 3'->5' bond polarity"); + + // initialize oxDNA units + ConstantsOxdna constants(lmp); } /* ---------------------------------------------------------------------- diff --git a/src/CG-DNA/bond_oxdna2_fene.cpp b/src/CG-DNA/bond_oxdna2_fene.cpp index ace0742963..73ad827d72 100644 --- a/src/CG-DNA/bond_oxdna2_fene.cpp +++ b/src/CG-DNA/bond_oxdna2_fene.cpp @@ -15,6 +15,7 @@ ------------------------------------------------------------------------- */ #include "bond_oxdna2_fene.h" +#include "constants_oxdna.h" using namespace LAMMPS_NS; @@ -24,8 +25,8 @@ using namespace LAMMPS_NS; void BondOxdna2Fene::compute_interaction_sites(double e1[3], double e2[3], double /*e3*/[3], double r[3]) const { - constexpr double d_cs_x = -0.34; - constexpr double d_cs_y = +0.3408; + double d_cs_x = ConstantsOxdna::get_d_cs_x(); + double d_cs_y = ConstantsOxdna::get_d_cs_y(); r[0] = d_cs_x * e1[0] + d_cs_y * e2[0]; r[1] = d_cs_x * e1[1] + d_cs_y * e2[1]; diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 780b71e44c..39444a738a 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -18,10 +18,12 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "memory.h" #include "neighbor.h" +#include "potential_file_reader.h" #include "update.h" #include "math_extra.h" @@ -49,7 +51,7 @@ BondOxdnaFene::~BondOxdnaFene() void BondOxdnaFene::compute_interaction_sites(double e1[3], double /*e2*/[3], double /*e3*/[3], double r[3]) const { - constexpr double d_cs = -0.4; + double d_cs = ConstantsOxdna::get_d_cs(); r[0] = d_cs * e1[0]; r[1] = d_cs * e1[1]; @@ -295,15 +297,49 @@ void BondOxdnaFene::allocate() void BondOxdnaFene::coeff(int narg, char **arg) { - if (narg != 4) error->all(FLERR, "Incorrect args for bond coefficients in oxdna/fene"); + if (narg != 2 && narg != 4) error->all(FLERR, "Incorrect args for bond coefficients in oxdna/fene"); if (!allocated) allocate(); int ilo, ihi; utils::bounds(FLERR, arg[0], 1, atom->nbondtypes, ilo, ihi, error); - double k_one = utils::numeric(FLERR, arg[1], false, lmp); - double Delta_one = utils::numeric(FLERR, arg[2], false, lmp); - double r0_one = utils::numeric(FLERR, arg[3], false, lmp); + double k_one; + double Delta_one; + double r0_one; + + if (narg == 4) { + k_one = utils::numeric(FLERR, arg[1], false, lmp); + Delta_one = utils::numeric(FLERR, arg[2], false, lmp); + r0_one = utils::numeric(FLERR, arg[3], false, lmp); + } else { + if (comm->me == 0) { // read values from potential file + PotentialFileReader reader(lmp, arg[1], "oxdna potential", " (fene)"); + char * line; + std::string iloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && potential_name == "fene") { + k_one = values.next_double(); + Delta_one = values.next_double(); + r0_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || potential_name != "fene") error->one(FLERR, "No corresponding fene potential found in file {} for bond type {}", arg[1], arg[0]); + } + + MPI_Bcast(&k_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&Delta_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&r0_one, 1, MPI_DOUBLE, 0, world); + } int count = 0; diff --git a/src/CG-DNA/bond_oxrna2_fene.cpp b/src/CG-DNA/bond_oxrna2_fene.cpp index 5d28f744a8..4faa95ef6f 100644 --- a/src/CG-DNA/bond_oxrna2_fene.cpp +++ b/src/CG-DNA/bond_oxrna2_fene.cpp @@ -16,6 +16,8 @@ #include "bond_oxrna2_fene.h" +#include "constants_oxdna.h" + using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- @@ -25,8 +27,8 @@ using namespace LAMMPS_NS; void BondOxrna2Fene::compute_interaction_sites(double e1[3], double /*e2*/[3], double e3[3], double r[3]) const { - constexpr double d_cs_x = -0.4; - constexpr double d_cs_z = +0.2; + double d_cs_x = ConstantsOxdna::get_d_cs(); + double d_cs_z = ConstantsOxdna::get_d_cs_z(); r[0] = d_cs_x * e1[0] + d_cs_z * e3[0]; r[1] = d_cs_x * e1[1] + d_cs_z * e3[1]; diff --git a/src/CG-DNA/constants_oxdna.cpp b/src/CG-DNA/constants_oxdna.cpp new file mode 100644 index 0000000000..f3623f4dab --- /dev/null +++ b/src/CG-DNA/constants_oxdna.cpp @@ -0,0 +1,69 @@ +/* -*- 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. +------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing authors: Oliver Henrich (University of Strathclyde, Glasgow) + Kierran Falloon (University of Strathclyde, Glasgow) +------------------------------------------------------------------------- */ + +#include "constants_oxdna.h" + +namespace LAMMPS_NS { + +ConstantsOxdna::ConstantsOxdna(class LAMMPS *lmp) : Pointers(lmp) +{ + // set oxDNA units + units = update->unit_style; + real_flag = utils::strmatch(units.c_str(), "^real"); + if (real_flag) set_real_units(); +} + +// default to lj units +// oxDNA 1 parameters +double ConstantsOxdna::d_cs = -0.4; +double ConstantsOxdna::d_cst = +0.34; +double ConstantsOxdna::d_chb = +0.4; +double ConstantsOxdna::d_cb = +0.4; +// oxDNA 2 parameters +double ConstantsOxdna::d_cs_x = -0.34; +double ConstantsOxdna::d_cs_y = +0.3408; +double ConstantsOxdna::lambda_dh_one_prefactor = +0.3616455075438555; // = C1 +double ConstantsOxdna::qeff_dh_pf_one_prefactor = +0.08173808693529228; // = C2 +// oxRNA 2 parameters +double ConstantsOxdna::d_cs_z = +0.2; +double ConstantsOxdna::d_cst_x_3p = +0.4; +double ConstantsOxdna::d_cst_y_3p = +0.1; +double ConstantsOxdna::d_cst_x_5p = +0.124906078525; +double ConstantsOxdna::d_cst_y_5p = -0.00866274917473; + +void ConstantsOxdna::set_real_units() +{ + // oxDNA 1 parameters in real units + d_cs = -3.4072; + d_cst = +2.89612; + d_chb = +3.4072; + d_cb = +3.4072; + // oxDNA 2 parameters in real units + d_cs_x = -2.89612; + d_cs_y = +2.9029344; + lambda_dh_one_prefactor = +0.05624154892; // = C1 * 8.518 * sqrt(k_B/4.142e-20) + qeff_dh_pf_one_prefactor = +4.15079634587587; // = C2 * 5.961689060210325 * 8.518 + // oxRNA 2 parameters in real units + // d_cs_x = -3.4072 = d_cs for RNA + d_cs_z = +1.7036; + d_cst_x_3p = +3.4072, + d_cst_y_3p = +0.8518; + d_cst_x_5p = +1.063949977, + d_cst_y_5p = -0.07378929747; +}; + +} // namespace LAMMPS_NS diff --git a/src/CG-DNA/constants_oxdna.h b/src/CG-DNA/constants_oxdna.h new file mode 100644 index 0000000000..69defbc0ea --- /dev/null +++ b/src/CG-DNA/constants_oxdna.h @@ -0,0 +1,65 @@ +/* -*- 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. +------------------------------------------------------------------------- */ + +#ifndef CONSTANTS_OXDNA_H +#define CONSTANTS_OXDNA_H + +#include "update.h" + +namespace LAMMPS_NS { + +class ConstantsOxdna : protected Pointers { + public: + ConstantsOxdna(class LAMMPS *lmp); + virtual ~ConstantsOxdna(){}; + + // oxDNA 1 getters + static double get_d_cs() { return d_cs; } + static double get_d_cst() { return d_cst; } + static double get_d_chb() { return d_chb; } + static double get_d_cb() { return d_cb; } + + // oxDNA 2 getters + static double get_d_cs_x() { return d_cs_x; } + static double get_d_cs_y() { return d_cs_y; } + static double get_lambda_dh_one_prefactor() { return lambda_dh_one_prefactor; } + static double get_qeff_dh_pf_one_prefactor() { return qeff_dh_pf_one_prefactor; } + + // oxRNA 2 getters + static double get_d_cs_z() { return d_cs_z; } + static double get_d_cst_x_3p() { return d_cst_x_3p; } + static double get_d_cst_y_3p() { return d_cst_y_3p; } + static double get_d_cst_x_5p() { return d_cst_x_5p; } + static double get_d_cst_y_5p() { return d_cst_y_5p; } + + private: + std::string units; + bool real_flag; + void set_real_units(); + + // oxDNA 1 parameters + static double d_cs, d_cst, d_chb, d_cb; + + // oxDNA 2 parameters + static double d_cs_x, d_cs_y; + static double lambda_dh_one_prefactor, qeff_dh_pf_one_prefactor; + + // oxRNA 2 parameters + static double d_cs_z; + static double d_cst_x_3p, d_cst_y_3p; + static double d_cst_x_5p, d_cst_y_5p; +}; + +} // namespace LAMMPS_NS + +#endif diff --git a/src/CG-DNA/pair_oxdna2_coaxstk.cpp b/src/CG-DNA/pair_oxdna2_coaxstk.cpp index b2666c2f0f..bf8c8e545a 100644 --- a/src/CG-DNA/pair_oxdna2_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna2_coaxstk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -26,6 +27,7 @@ #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -113,7 +115,8 @@ void PairOxdna2Coaxstk::compute(int eflag, int vflag) double cosphi3; // distances COM-backbone site, COM-stacking site - double d_cs=-0.4, d_cst=+0.34; + double d_cs = ConstantsOxdna::get_d_cs(); + double d_cst = ConstantsOxdna::get_d_cst(); // vectors COM-backbone site, COM-stacking site in lab frame double ra_cs[3],ra_cst[3]; double rb_cs[3],rb_cst[3]; @@ -557,7 +560,7 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) { int count; - if (narg != 21) error->all(FLERR,"Incorrect args for pair coefficients in oxdna2/coaxstk"); + if (narg != 3 && narg != 21) error->all(FLERR,"Incorrect args for pair coefficients in oxdna2/coaxstk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -584,30 +587,103 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) double AA_cxst1_one, BB_cxst1_one; - k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); - cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); - cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); - cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); - cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + if (narg == 21) { + k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); - a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); - theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); - dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); - a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); - theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); - dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); - a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); - theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); - dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); - a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); - theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); - dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); - AA_cxst1_one = utils::numeric(FLERR,arg[19],false,lmp); - BB_cxst1_one = utils::numeric(FLERR,arg[20],false,lmp); + AA_cxst1_one = utils::numeric(FLERR,arg[19],false,lmp); + BB_cxst1_one = utils::numeric(FLERR,arg[20],false,lmp); + } else { + if (comm->me == 0) { // read values from potential file + PotentialFileReader reader(lmp, arg[2], "oxdna potential", " (coaxstk)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "coaxstk") { + k_cxst_one = values.next_double(); + cut_cxst_0_one = values.next_double(); + cut_cxst_c_one = values.next_double(); + cut_cxst_lo_one = values.next_double(); + cut_cxst_hi_one = values.next_double(); + + a_cxst1_one = values.next_double(); + theta_cxst1_0_one = values.next_double(); + dtheta_cxst1_ast_one = values.next_double(); + + a_cxst4_one = values.next_double(); + theta_cxst4_0_one = values.next_double(); + dtheta_cxst4_ast_one = values.next_double(); + + a_cxst5_one = values.next_double(); + theta_cxst5_0_one = values.next_double(); + dtheta_cxst5_ast_one = values.next_double(); + + a_cxst6_one = values.next_double(); + theta_cxst6_0_one = values.next_double(); + dtheta_cxst6_ast_one = values.next_double(); + + AA_cxst1_one = values.next_double(); + BB_cxst1_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA2 potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "coaxstk") error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + } + + MPI_Bcast(&k_cxst_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst1_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst1_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst4_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst4_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst4_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst5_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst5_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst5_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst6_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst6_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst6_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&AA_cxst1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&BB_cxst1_one, 1, MPI_DOUBLE, 0, world); + } b_cxst_lo_one = 0.25 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index d60342e5e2..7f38c4b96f 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -19,11 +19,13 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_extra.h" #include "memory.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -66,7 +68,8 @@ PairOxdna2Dh::~PairOxdna2Dh() void PairOxdna2Dh::compute_interaction_sites(double e1[3], double e2[3], double /*e3*/[3], double r[3]) { - double d_cs_x=-0.34, d_cs_y=+0.3408; + double d_cs_x = ConstantsOxdna::get_d_cs_x(); + double d_cs_y = ConstantsOxdna::get_d_cs_y(); r[0] = d_cs_x*e1[0] + d_cs_y*e2[0]; r[1] = d_cs_x*e1[1] + d_cs_y*e2[1]; @@ -303,7 +306,30 @@ void PairOxdna2Dh::coeff(int narg, char **arg) T = utils::numeric(FLERR,arg[2],false,lmp); rhos_dh_one = utils::numeric(FLERR,arg[3],false,lmp); - qeff_dh_one = utils::numeric(FLERR,arg[4],false,lmp); + + if (utils::strmatch(arg[4], "^[a-zA-Z0-9]*\\.[a-zA-Z]+$") == true) { // if last arg is a potential file + if (comm->me == 0) { // read value from potential file + PotentialFileReader reader(lmp, arg[4], "oxdna potential", " (dh)"); + char * line; + std::string iloc, jloc, potential_name; + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "dh") { + qeff_dh_one = values.next_double(); + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA2 potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "dh") error->one(FLERR, "No corresponding dh potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + } + MPI_Bcast(&qeff_dh_one, 1, MPI_DOUBLE, 0, world); + } else qeff_dh_one = utils::numeric(FLERR,arg[4],false,lmp); // else, it is effective charge double lambda_dh_one, kappa_dh_one, qeff_dh_pf_one; double b_dh_one, cut_dh_ast_one, cut_dh_c_one; @@ -315,7 +341,8 @@ void PairOxdna2Dh::coeff(int narg, char **arg) The numerical factor is the Debye length in s.u. lambda(T = 300 K = 0.1) = sqrt(eps_0 * eps_r * k_B * T/(2 * N_A * e^2 * 1000 mol/m^3)) - * 1/oxDNA_energy_unit + * 1/oxDNA_length_unit for LJ units, or; + * [(8.518 * sqrt(k_B / 4.142e-20))/oxDNA_length_unit] for real units (see B. Snodin et al., J. Chem. Phys. 142, 234901 (2015).) We use @@ -328,7 +355,7 @@ void PairOxdna2Dh::coeff(int narg, char **arg) oxDNA_length_unit = 8.518e-10 m */ - lambda_dh_one = 0.3616455075438555*sqrt(T/0.1/rhos_dh_one); + lambda_dh_one = ConstantsOxdna::get_lambda_dh_one_prefactor()*sqrt(T/0.1/rhos_dh_one); kappa_dh_one = 1.0/lambda_dh_one; // prefactor in DH interaction containing qeff^2 @@ -337,14 +364,15 @@ void PairOxdna2Dh::coeff(int narg, char **arg) NOTE: The numerical factor is qeff_dh_pf = e^2/(4 * pi * eps_0 * eps_r) - * 1/(oxDNA_energy_unit * oxDNA_length_unit) + * 1/(oxDNA_energy_unit * oxDNA_length_unit) for LJ units, or; + * [(~5.96169* 8.518)/(oxDNA_energy_unit * oxDNA_length_unit)] for real units (see B. Snodin et al., J. Chem. Phys. 142, 234901 (2015).) In addition to the above units we use oxDNA_energy_unit = 4.142e-20 J */ - qeff_dh_pf_one = 0.08173808693529228*qeff_dh_one*qeff_dh_one; + qeff_dh_pf_one = ConstantsOxdna::get_qeff_dh_pf_one_prefactor()*qeff_dh_one*qeff_dh_one; // smoothing parameters - determined through continuity and differentiability diff --git a/src/CG-DNA/pair_oxdna2_excv.cpp b/src/CG-DNA/pair_oxdna2_excv.cpp index f0f9ca904e..2b047dae8e 100644 --- a/src/CG-DNA/pair_oxdna2_excv.cpp +++ b/src/CG-DNA/pair_oxdna2_excv.cpp @@ -14,6 +14,7 @@ Contributing author: Oliver Henrich (University of Strathclyde, Glasgow) ------------------------------------------------------------------------- */ +#include "constants_oxdna.h" #include "pair_oxdna2_excv.h" using namespace LAMMPS_NS; @@ -24,7 +25,9 @@ using namespace LAMMPS_NS; void PairOxdna2Excv::compute_interaction_sites(double e1[3], double e2[3], double /*e3*/[3], double rs[3], double rb[3]) { - double d_cs_x = -0.34, d_cs_y = +0.3408, d_cb = +0.4; + double d_cs_x = ConstantsOxdna::get_d_cs_x(); + double d_cs_y = ConstantsOxdna::get_d_cs_y(); + double d_cb = ConstantsOxdna::get_d_cb(); rs[0] = d_cs_x * e1[0] + d_cs_y * e2[0]; rs[1] = d_cs_x * e1[1] + d_cs_y * e2[1]; diff --git a/src/CG-DNA/pair_oxdna_coaxstk.cpp b/src/CG-DNA/pair_oxdna_coaxstk.cpp index 1fb0ad9b00..3b955a7db4 100644 --- a/src/CG-DNA/pair_oxdna_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna_coaxstk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -26,6 +27,7 @@ #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -124,7 +126,8 @@ void PairOxdnaCoaxstk::compute(int eflag, int vflag) double dcdrax,dcdray,dcdraz; // distances COM-backbone site, COM-stacking site - double d_cs=-0.4, d_cst=+0.34; + double d_cs = ConstantsOxdna::get_d_cs(); + double d_cst = ConstantsOxdna::get_d_cst(); // vectors COM-backbone site, COM-stacking site in lab frame double ra_cs[3],ra_cst[3]; double rb_cs[3],rb_cst[3]; @@ -691,7 +694,7 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) { int count; - if (narg != 23) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/coaxstk"); + if (narg != 3 && narg != 23) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/coaxstk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -719,32 +722,109 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) double a_cxst3p_one, cosphi_cxst3p_ast_one, b_cxst3p_one, cosphi_cxst3p_c_one; double a_cxst4p_one, cosphi_cxst4p_ast_one, b_cxst4p_one, cosphi_cxst4p_c_one; - k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); - cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); - cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); - cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); - cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + if (narg == 23) { + k_cxst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_cxst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_cxst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_cxst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_cxst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); - a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); - theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); - dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + a_cxst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_cxst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_cxst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); - a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); - theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); - dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + a_cxst4_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_cxst4_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_cxst4_ast_one = utils::numeric(FLERR,arg[12],false,lmp); - a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); - theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); - dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + a_cxst5_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_cxst5_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_cxst5_ast_one = utils::numeric(FLERR,arg[15],false,lmp); - a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); - theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); - dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + a_cxst6_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_cxst6_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_cxst6_ast_one = utils::numeric(FLERR,arg[18],false,lmp); - a_cxst3p_one = utils::numeric(FLERR,arg[19],false,lmp); - cosphi_cxst3p_ast_one = utils::numeric(FLERR,arg[20],false,lmp); - a_cxst4p_one = utils::numeric(FLERR,arg[21],false,lmp); - cosphi_cxst4p_ast_one = utils::numeric(FLERR,arg[22],false,lmp); + a_cxst3p_one = utils::numeric(FLERR,arg[19],false,lmp); + cosphi_cxst3p_ast_one = utils::numeric(FLERR,arg[20],false,lmp); + a_cxst4p_one = utils::numeric(FLERR,arg[21],false,lmp); + cosphi_cxst4p_ast_one = utils::numeric(FLERR,arg[22],false,lmp); + } else { + if (comm->me == 0) { // read values from potential file + PotentialFileReader reader(lmp, arg[2], "oxdna potential", " (coaxstk)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "coaxstk") { + k_cxst_one = values.next_double(); + cut_cxst_0_one = values.next_double(); + cut_cxst_c_one = values.next_double(); + cut_cxst_lo_one = values.next_double(); + cut_cxst_hi_one = values.next_double(); + + a_cxst1_one = values.next_double(); + theta_cxst1_0_one = values.next_double(); + dtheta_cxst1_ast_one = values.next_double(); + + a_cxst4_one = values.next_double(); + theta_cxst4_0_one = values.next_double(); + dtheta_cxst4_ast_one = values.next_double(); + + a_cxst5_one = values.next_double(); + theta_cxst5_0_one = values.next_double(); + dtheta_cxst5_ast_one = values.next_double(); + + a_cxst6_one = values.next_double(); + theta_cxst6_0_one = values.next_double(); + dtheta_cxst6_ast_one = values.next_double(); + + a_cxst3p_one = values.next_double(); + cosphi_cxst3p_ast_one = values.next_double(); + a_cxst4p_one = values.next_double(); + cosphi_cxst4p_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "coaxstk") error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + } + + MPI_Bcast(&k_cxst_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_cxst_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst1_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst1_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst4_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst4_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst4_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst5_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst5_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst5_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst6_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_cxst6_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_cxst6_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_cxst3p_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_cxst3p_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_cxst4p_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_cxst4p_ast_one, 1, MPI_DOUBLE, 0, world); + } b_cxst_lo_one = 0.25 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one)/ (0.5 * (cut_cxst_lo_one - cut_cxst_0_one) * (cut_cxst_lo_one - cut_cxst_0_one) - diff --git a/src/CG-DNA/pair_oxdna_excv.cpp b/src/CG-DNA/pair_oxdna_excv.cpp index 60df42404d..3a98712818 100644 --- a/src/CG-DNA/pair_oxdna_excv.cpp +++ b/src/CG-DNA/pair_oxdna_excv.cpp @@ -20,12 +20,14 @@ #include "atom.h" #include "atom_vec_ellipsoid.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_extra.h" #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -97,7 +99,8 @@ PairOxdnaExcv::~PairOxdnaExcv() void PairOxdnaExcv::compute_interaction_sites(double e1[3], double /*e2*/[3], double /*e3*/[3], double rs[3], double rb[3]) { - double d_cs=-0.4, d_cb=+0.4; + double d_cs = ConstantsOxdna::get_d_cs(); + double d_cb = ConstantsOxdna::get_d_cb(); rs[0] = d_cs*e1[0]; rs[1] = d_cs*e1[1]; @@ -500,7 +503,7 @@ void PairOxdnaExcv::coeff(int narg, char **arg) { int count; - if (narg != 11) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/excv"); + if (narg != 3 && narg != 11) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/excv"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -518,12 +521,73 @@ void PairOxdnaExcv::coeff(int narg, char **arg) double epsilon_bb_one, sigma_bb_one; double cut_bb_ast_one, cut_bb_c_one, b_bb_one; - // Excluded volume interaction - // LJ parameters - epsilon_ss_one = utils::numeric(FLERR,arg[2],false,lmp); - sigma_ss_one = utils::numeric(FLERR,arg[3],false,lmp); - cut_ss_ast_one = utils::numeric(FLERR,arg[4],false,lmp); + if (narg == 11) { + // Excluded volume interaction + // LJ parameters + epsilon_ss_one = utils::numeric(FLERR,arg[2],false,lmp); + sigma_ss_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_ss_ast_one = utils::numeric(FLERR,arg[4],false,lmp); + // LJ parameters + epsilon_sb_one = utils::numeric(FLERR,arg[5],false,lmp); + sigma_sb_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_sb_ast_one = utils::numeric(FLERR,arg[7],false,lmp); + + // LJ parameters + epsilon_bb_one = utils::numeric(FLERR,arg[8],false,lmp); + sigma_bb_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_bb_ast_one = utils::numeric(FLERR,arg[10],false,lmp); + } else { + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[2], "oxdna potential", " (excv)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "excv") { + // Excluded volume interaction + // LJ parameters + epsilon_ss_one = values.next_double(); + sigma_ss_one = values.next_double(); + cut_ss_ast_one = values.next_double(); + + // LJ parameters + epsilon_sb_one = values.next_double(); + sigma_sb_one = values.next_double(); + cut_sb_ast_one = values.next_double(); + + // LJ parameters + epsilon_bb_one = values.next_double(); + sigma_bb_one = values.next_double(); + cut_bb_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "excv") error->one(FLERR, "No corresponding excv potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + } + + MPI_Bcast(&epsilon_ss_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&sigma_ss_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_ss_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&epsilon_sb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&sigma_sb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_sb_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&epsilon_bb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&sigma_bb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_bb_ast_one, 1, MPI_DOUBLE, 0, world); + } + // smoothing - determined through continuity and differentiability b_ss_one = 4.0/sigma_ss_one *(6.0*pow(sigma_ss_one/cut_ss_ast_one,7)-12.0*pow(sigma_ss_one/cut_ss_ast_one,13)) @@ -550,11 +614,6 @@ void PairOxdnaExcv::coeff(int narg, char **arg) count = 0; - // LJ parameters - epsilon_sb_one = utils::numeric(FLERR,arg[5],false,lmp); - sigma_sb_one = utils::numeric(FLERR,arg[6],false,lmp); - cut_sb_ast_one = utils::numeric(FLERR,arg[7],false,lmp); - // smoothing - determined through continuity and differentiability b_sb_one = 4.0/sigma_sb_one *(6.0*pow(sigma_sb_one/cut_sb_ast_one,7)-12.0*pow(sigma_sb_one/cut_sb_ast_one,13)) @@ -581,11 +640,6 @@ void PairOxdnaExcv::coeff(int narg, char **arg) count = 0; - // LJ parameters - epsilon_bb_one = utils::numeric(FLERR,arg[8],false,lmp); - sigma_bb_one = utils::numeric(FLERR,arg[9],false,lmp); - cut_bb_ast_one = utils::numeric(FLERR,arg[10],false,lmp); - // smoothing - determined through continuity and differentiability b_bb_one = 4.0/sigma_bb_one *(6.0*pow(sigma_bb_one/cut_bb_ast_one,7)-12.0*pow(sigma_bb_one/cut_bb_ast_one,13)) diff --git a/src/CG-DNA/pair_oxdna_hbond.cpp b/src/CG-DNA/pair_oxdna_hbond.cpp index 2beadc2503..4763f7412d 100644 --- a/src/CG-DNA/pair_oxdna_hbond.cpp +++ b/src/CG-DNA/pair_oxdna_hbond.cpp @@ -19,12 +19,14 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_extra.h" #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -145,7 +147,7 @@ void PairOxdnaHbond::compute(int eflag, int vflag) double theta8,t8dir[3],cost8; // distance COM-hbonding site - double d_chb=+0.4; + double d_chb = ConstantsOxdna::get_d_chb(); // vectors COM-h-bonding site in lab frame double ra_chb[3],rb_chb[3]; // Cartesian unit vectors in lab frame @@ -634,7 +636,7 @@ void PairOxdnaHbond::coeff(int narg, char **arg) { int count; - if (narg != 27) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/hbond"); + if (narg != 4 && narg != 27) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/hbond"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi,imod4,jmod4; @@ -671,36 +673,123 @@ void PairOxdnaHbond::coeff(int narg, char **arg) if (strcmp(arg[2],"seqav") == 0) seqdepflag = 0; if (strcmp(arg[2],"seqdep") == 0) seqdepflag = 1; - epsilon_hb_one = utils::numeric(FLERR,arg[3],false,lmp); - a_hb_one = utils::numeric(FLERR,arg[4],false,lmp); - cut_hb_0_one = utils::numeric(FLERR,arg[5],false,lmp); - cut_hb_c_one = utils::numeric(FLERR,arg[6],false,lmp); - cut_hb_lo_one = utils::numeric(FLERR,arg[7],false,lmp); - cut_hb_hi_one = utils::numeric(FLERR,arg[8],false,lmp); + if (narg == 27) { + epsilon_hb_one = utils::numeric(FLERR,arg[3],false,lmp); + a_hb_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_hb_0_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_hb_c_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_hb_lo_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_hb_hi_one = utils::numeric(FLERR,arg[8],false,lmp); - a_hb1_one = utils::numeric(FLERR,arg[9],false,lmp); - theta_hb1_0_one = utils::numeric(FLERR,arg[10],false,lmp); - dtheta_hb1_ast_one = utils::numeric(FLERR,arg[11],false,lmp); + a_hb1_one = utils::numeric(FLERR,arg[9],false,lmp); + theta_hb1_0_one = utils::numeric(FLERR,arg[10],false,lmp); + dtheta_hb1_ast_one = utils::numeric(FLERR,arg[11],false,lmp); - a_hb2_one = utils::numeric(FLERR,arg[12],false,lmp); - theta_hb2_0_one = utils::numeric(FLERR,arg[13],false,lmp); - dtheta_hb2_ast_one = utils::numeric(FLERR,arg[14],false,lmp); + a_hb2_one = utils::numeric(FLERR,arg[12],false,lmp); + theta_hb2_0_one = utils::numeric(FLERR,arg[13],false,lmp); + dtheta_hb2_ast_one = utils::numeric(FLERR,arg[14],false,lmp); - a_hb3_one = utils::numeric(FLERR,arg[15],false,lmp); - theta_hb3_0_one = utils::numeric(FLERR,arg[16],false,lmp); - dtheta_hb3_ast_one = utils::numeric(FLERR,arg[17],false,lmp); + a_hb3_one = utils::numeric(FLERR,arg[15],false,lmp); + theta_hb3_0_one = utils::numeric(FLERR,arg[16],false,lmp); + dtheta_hb3_ast_one = utils::numeric(FLERR,arg[17],false,lmp); - a_hb4_one = utils::numeric(FLERR,arg[18],false,lmp); - theta_hb4_0_one = utils::numeric(FLERR,arg[19],false,lmp); - dtheta_hb4_ast_one = utils::numeric(FLERR,arg[20],false,lmp); + a_hb4_one = utils::numeric(FLERR,arg[18],false,lmp); + theta_hb4_0_one = utils::numeric(FLERR,arg[19],false,lmp); + dtheta_hb4_ast_one = utils::numeric(FLERR,arg[20],false,lmp); - a_hb7_one = utils::numeric(FLERR,arg[21],false,lmp); - theta_hb7_0_one = utils::numeric(FLERR,arg[22],false,lmp); - dtheta_hb7_ast_one = utils::numeric(FLERR,arg[23],false,lmp); + a_hb7_one = utils::numeric(FLERR,arg[21],false,lmp); + theta_hb7_0_one = utils::numeric(FLERR,arg[22],false,lmp); + dtheta_hb7_ast_one = utils::numeric(FLERR,arg[23],false,lmp); + + a_hb8_one = utils::numeric(FLERR,arg[24],false,lmp); + theta_hb8_0_one = utils::numeric(FLERR,arg[25],false,lmp); + dtheta_hb8_ast_one = utils::numeric(FLERR,arg[26],false,lmp); + } else { // read values from potential file + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[3], "oxdna potential", " (hbond)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "hbond") { + + epsilon_hb_one = values.next_double(); + a_hb_one = values.next_double(); + cut_hb_0_one = values.next_double(); + cut_hb_c_one = values.next_double(); + cut_hb_lo_one = values.next_double(); + cut_hb_hi_one = values.next_double(); + + a_hb1_one = values.next_double(); + theta_hb1_0_one = values.next_double(); + dtheta_hb1_ast_one = values.next_double(); + + a_hb2_one = values.next_double(); + theta_hb2_0_one = values.next_double(); + dtheta_hb2_ast_one = values.next_double(); + + a_hb3_one = values.next_double(); + theta_hb3_0_one = values.next_double(); + dtheta_hb3_ast_one = values.next_double(); + + a_hb4_one = values.next_double(); + theta_hb4_0_one = values.next_double(); + dtheta_hb4_ast_one = values.next_double(); + + a_hb7_one = values.next_double(); + theta_hb7_0_one = values.next_double(); + dtheta_hb7_ast_one = values.next_double(); + + a_hb8_one = values.next_double(); + theta_hb8_0_one = values.next_double(); + dtheta_hb8_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "hbond") error->one(FLERR, "No corresponding hbond potential found in file {} for pair type {} {}", arg[3], arg[0], arg[1]); + } + + MPI_Bcast(&epsilon_hb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_hb_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_hb_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_hb_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_hb_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_hb_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb1_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb1_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb2_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb2_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb2_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb3_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb3_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb3_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb4_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb4_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb4_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb7_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb7_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb7_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_hb8_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_hb8_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_hb8_ast_one, 1, MPI_DOUBLE, 0, world); + } - a_hb8_one = utils::numeric(FLERR,arg[24],false,lmp); - theta_hb8_0_one = utils::numeric(FLERR,arg[25],false,lmp); - dtheta_hb8_ast_one = utils::numeric(FLERR,arg[26],false,lmp); b_hb_lo_one = 2*a_hb_one*exp(-a_hb_one*(cut_hb_lo_one-cut_hb_0_one))* 2*a_hb_one*exp(-a_hb_one*(cut_hb_lo_one-cut_hb_0_one))* diff --git a/src/CG-DNA/pair_oxdna_stk.cpp b/src/CG-DNA/pair_oxdna_stk.cpp index cf20d527fe..7991288c1e 100644 --- a/src/CG-DNA/pair_oxdna_stk.cpp +++ b/src/CG-DNA/pair_oxdna_stk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_extra.h" @@ -26,6 +27,7 @@ #include "mf_oxdna.h" #include "neighbor.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -223,7 +225,8 @@ void PairOxdnaStk::compute(int eflag, int vflag) double cosphi1,cosphi2,cosphi1dir[3],cosphi2dir[3]; // distances COM-backbone site, COM-stacking site - double d_cs=-0.4, d_cst=+0.34; + double d_cs = ConstantsOxdna::get_d_cs(); + double d_cst = ConstantsOxdna::get_d_cst(); // vectors COM-backbone site, COM-stacking site in lab frame double ra_cs[3],ra_cst[3]; double rb_cs[3],rb_cst[3]; @@ -775,7 +778,7 @@ void PairOxdnaStk::coeff(int narg, char **arg) { int count; - if (narg != 24) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/stk"); + if (narg != 7 && narg != 24) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/stk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi,imod4,jmod4; @@ -812,25 +815,89 @@ void PairOxdnaStk::coeff(int narg, char **arg) kappa_st_one = utils::numeric(FLERR,arg[5],false,lmp); epsilon_st_one = stacking_strength(xi_st_one, kappa_st_one, T); - a_st_one = utils::numeric(FLERR,arg[6],false,lmp); - cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); - cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); - cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); - cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); + if (narg == 24) { // values are listed in input + a_st_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); + cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); - a_st4_one = utils::numeric(FLERR,arg[11],false,lmp); - theta_st4_0_one = utils::numeric(FLERR,arg[12],false,lmp); - dtheta_st4_ast_one = utils::numeric(FLERR,arg[13],false,lmp); - a_st5_one = utils::numeric(FLERR,arg[14],false,lmp); - theta_st5_0_one = utils::numeric(FLERR,arg[15],false,lmp); - dtheta_st5_ast_one = utils::numeric(FLERR,arg[16],false,lmp); - a_st6_one = utils::numeric(FLERR,arg[17],false,lmp); - theta_st6_0_one = utils::numeric(FLERR,arg[18],false,lmp); - dtheta_st6_ast_one = utils::numeric(FLERR,arg[19],false,lmp); - a_st1_one = utils::numeric(FLERR,arg[20],false,lmp); - cosphi_st1_ast_one = utils::numeric(FLERR,arg[21],false,lmp); - a_st2_one = utils::numeric(FLERR,arg[22],false,lmp); - cosphi_st2_ast_one = utils::numeric(FLERR,arg[23],false,lmp); + a_st4_one = utils::numeric(FLERR,arg[11],false,lmp); + theta_st4_0_one = utils::numeric(FLERR,arg[12],false,lmp); + dtheta_st4_ast_one = utils::numeric(FLERR,arg[13],false,lmp); + a_st5_one = utils::numeric(FLERR,arg[14],false,lmp); + theta_st5_0_one = utils::numeric(FLERR,arg[15],false,lmp); + dtheta_st5_ast_one = utils::numeric(FLERR,arg[16],false,lmp); + a_st6_one = utils::numeric(FLERR,arg[17],false,lmp); + theta_st6_0_one = utils::numeric(FLERR,arg[18],false,lmp); + dtheta_st6_ast_one = utils::numeric(FLERR,arg[19],false,lmp); + a_st1_one = utils::numeric(FLERR,arg[20],false,lmp); + cosphi_st1_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + a_st2_one = utils::numeric(FLERR,arg[22],false,lmp); + cosphi_st2_ast_one = utils::numeric(FLERR,arg[23],false,lmp); + } else { // read values from potential file + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[6], "oxdna potential", " (stk)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "stk") { + + a_st_one = values.next_double(); + cut_st_0_one = values.next_double(); + cut_st_c_one = values.next_double(); + cut_st_lo_one = values.next_double(); + cut_st_hi_one = values.next_double(); + + a_st4_one = values.next_double(); + theta_st4_0_one = values.next_double(); + dtheta_st4_ast_one = values.next_double(); + a_st5_one = values.next_double(); + theta_st5_0_one = values.next_double(); + dtheta_st5_ast_one = values.next_double(); + a_st6_one = values.next_double(); + theta_st6_0_one = values.next_double(); + dtheta_st6_ast_one = values.next_double(); + a_st1_one = values.next_double(); + cosphi_st1_ast_one = values.next_double(); + a_st2_one = values.next_double(); + cosphi_st2_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "stk") error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + } + + MPI_Bcast(&a_st_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_st4_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st4_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st4_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st5_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st5_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st5_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st6_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st6_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st6_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_st1_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st2_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_st2_ast_one, 1, MPI_DOUBLE, 0, world); + } b_st_lo_one = 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index 1eb7caf23a..af80046b50 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -26,6 +27,7 @@ #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -122,7 +124,7 @@ void PairOxdnaXstk::compute(int eflag, int vflag) double theta8,theta8p,t8dir[3],cost8; // distance COM-h-bonding site - double d_chb=+0.4; + double d_chb = ConstantsOxdna::get_d_chb(); // vectors COM-h-bonding site in lab frame double ra_chb[3],rb_chb[3]; // Cartesian unit vectors in lab frame @@ -631,7 +633,7 @@ void PairOxdnaXstk::coeff(int narg, char **arg) { int count; - if (narg != 25) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/xstk"); + if (narg != 3 && narg != 25) error->all(FLERR,"Incorrect args for pair coefficients in oxdna/xstk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -662,35 +664,118 @@ void PairOxdnaXstk::coeff(int narg, char **arg) double a_xst8_one, theta_xst8_0_one, dtheta_xst8_ast_one; double b_xst8_one, dtheta_xst8_c_one; - k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); - cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); - cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); - cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); - cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + if (narg == 25) { + k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); - a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); - theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); - dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); - a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); - theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); - dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); - a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); - theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); - dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); - a_xst4_one = utils::numeric(FLERR,arg[16],false,lmp); - theta_xst4_0_one = utils::numeric(FLERR,arg[17],false,lmp); - dtheta_xst4_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + a_xst4_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_xst4_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_xst4_ast_one = utils::numeric(FLERR,arg[18],false,lmp); - a_xst7_one = utils::numeric(FLERR,arg[19],false,lmp); - theta_xst7_0_one = utils::numeric(FLERR,arg[20],false,lmp); - dtheta_xst7_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + a_xst7_one = utils::numeric(FLERR,arg[19],false,lmp); + theta_xst7_0_one = utils::numeric(FLERR,arg[20],false,lmp); + dtheta_xst7_ast_one = utils::numeric(FLERR,arg[21],false,lmp); - a_xst8_one = utils::numeric(FLERR,arg[22],false,lmp); - theta_xst8_0_one = utils::numeric(FLERR,arg[23],false,lmp); - dtheta_xst8_ast_one = utils::numeric(FLERR,arg[24],false,lmp); + a_xst8_one = utils::numeric(FLERR,arg[22],false,lmp); + theta_xst8_0_one = utils::numeric(FLERR,arg[23],false,lmp); + dtheta_xst8_ast_one = utils::numeric(FLERR,arg[24],false,lmp); + } else { + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[2], "oxdna potential", " (xstk)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "xstk") { + k_xst_one = values.next_double(); + cut_xst_0_one = values.next_double(); + cut_xst_c_one = values.next_double(); + cut_xst_lo_one = values.next_double(); + cut_xst_hi_one = values.next_double(); + + a_xst1_one = values.next_double(); + theta_xst1_0_one = values.next_double(); + dtheta_xst1_ast_one = values.next_double(); + + a_xst2_one = values.next_double(); + theta_xst2_0_one = values.next_double(); + dtheta_xst2_ast_one = values.next_double(); + + a_xst3_one = values.next_double(); + theta_xst3_0_one = values.next_double(); + dtheta_xst3_ast_one = values.next_double(); + + a_xst4_one = values.next_double(); + theta_xst4_0_one = values.next_double(); + dtheta_xst4_ast_one = values.next_double(); + + a_xst7_one = values.next_double(); + theta_xst7_0_one = values.next_double(); + dtheta_xst7_ast_one = values.next_double(); + + a_xst8_one = values.next_double(); + theta_xst8_0_one = values.next_double(); + dtheta_xst8_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "xstk") error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + } + + MPI_Bcast(&k_xst_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst1_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst1_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst2_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst2_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst2_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst3_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst3_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst3_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst4_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst4_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst4_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst7_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst7_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst7_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst8_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst8_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst8_ast_one, 1, MPI_DOUBLE, 0, world); + } b_xst_lo_one = 0.25 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one)/ diff --git a/src/CG-DNA/pair_oxrna2_dh.cpp b/src/CG-DNA/pair_oxrna2_dh.cpp index eceda90768..1495e1f2ee 100644 --- a/src/CG-DNA/pair_oxrna2_dh.cpp +++ b/src/CG-DNA/pair_oxrna2_dh.cpp @@ -16,6 +16,8 @@ #include "pair_oxrna2_dh.h" +#include "constants_oxdna.h" + using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- @@ -24,7 +26,8 @@ using namespace LAMMPS_NS; void PairOxrna2Dh::compute_interaction_sites(double e1[3], double /*e2*/[3], double e3[3], double r[3]) { - double d_cs_x = -0.4, d_cs_z = +0.2; + double d_cs_x = ConstantsOxdna::get_d_cs(); + double d_cs_z = ConstantsOxdna::get_d_cs_z(); r[0] = d_cs_x * e1[0] + d_cs_z * e3[0]; r[1] = d_cs_x * e1[1] + d_cs_z * e3[1]; diff --git a/src/CG-DNA/pair_oxrna2_excv.cpp b/src/CG-DNA/pair_oxrna2_excv.cpp index a49497ef5a..7dda4f9434 100644 --- a/src/CG-DNA/pair_oxrna2_excv.cpp +++ b/src/CG-DNA/pair_oxrna2_excv.cpp @@ -17,6 +17,8 @@ #include "pair_oxrna2_excv.h" +#include "constants_oxdna.h" + using namespace LAMMPS_NS; /* ---------------------------------------------------------------------- @@ -25,7 +27,9 @@ using namespace LAMMPS_NS; void PairOxrna2Excv::compute_interaction_sites(double e1[3], double /*e2*/[3], double e3[3], double rs[3], double rb[3]) { - double d_cs_x=-0.4, d_cs_z=+0.2, d_cb=+0.4; + double d_cs_x = ConstantsOxdna::get_d_cs(); + double d_cs_z = ConstantsOxdna::get_d_cs_z(); + double d_cb = ConstantsOxdna::get_d_cb(); rs[0] = d_cs_x*e1[0] + d_cs_z*e3[0]; rs[1] = d_cs_x*e1[1] + d_cs_z*e3[1]; diff --git a/src/CG-DNA/pair_oxrna2_stk.cpp b/src/CG-DNA/pair_oxrna2_stk.cpp index 8c5c9c22f5..630b8f3c5b 100644 --- a/src/CG-DNA/pair_oxrna2_stk.cpp +++ b/src/CG-DNA/pair_oxrna2_stk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -27,6 +28,7 @@ #include "mf_oxdna.h" #include "neighbor.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -233,9 +235,12 @@ void PairOxrna2Stk::compute(int eflag, int vflag) double cosphi1,cosphi2,cosphi1dir[3],cosphi2dir[3]; // distances COM-backbone site, COM-3' and COM-5' stacking site - double d_cs_x=-0.4, d_cs_z=+0.2; - double d_cst_x_3p=+0.4, d_cst_y_3p=+0.1; - double d_cst_x_5p=+0.124906078525, d_cst_y_5p=-0.00866274917473; + double d_cs_x = ConstantsOxdna::get_d_cs(); + double d_cs_z = ConstantsOxdna::get_d_cs_z(); + double d_cst_x_3p = ConstantsOxdna::get_d_cst_x_3p(); + double d_cst_y_3p = ConstantsOxdna::get_d_cst_y_3p(); + double d_cst_x_5p = ConstantsOxdna::get_d_cst_x_5p(); + double d_cst_y_5p = ConstantsOxdna::get_d_cst_y_5p(); // 3' and p5' auxiliary vectors double d3p_x=-0.462510,d3p_y=-0.528218,d3p_z=+0.712089; @@ -842,7 +847,7 @@ void PairOxrna2Stk::coeff(int narg, char **arg) { int count; - if (narg != 27) error->all(FLERR,"Incorrect args for pair coefficients in oxrna2/stk"); + if (narg != 7 && narg != 27) error->all(FLERR,"Incorrect args for pair coefficients in oxrna2/stk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -882,30 +887,104 @@ void PairOxrna2Stk::coeff(int narg, char **arg) kappa_st_one = utils::numeric(FLERR,arg[5],false,lmp); epsilon_st_one = stacking_strength(xi_st_one, kappa_st_one, T); - a_st_one = utils::numeric(FLERR,arg[6],false,lmp); - cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); - cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); - cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); - cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); + if (narg == 27) { + a_st_one = utils::numeric(FLERR,arg[6],false,lmp); + cut_st_0_one = utils::numeric(FLERR,arg[7],false,lmp); + cut_st_c_one = utils::numeric(FLERR,arg[8],false,lmp); + cut_st_lo_one = utils::numeric(FLERR,arg[9],false,lmp); + cut_st_hi_one = utils::numeric(FLERR,arg[10],false,lmp); - a_st5_one = utils::numeric(FLERR,arg[11],false,lmp); - theta_st5_0_one = utils::numeric(FLERR,arg[12],false,lmp); - dtheta_st5_ast_one = utils::numeric(FLERR,arg[13],false,lmp); - a_st6_one = utils::numeric(FLERR,arg[14],false,lmp); - theta_st6_0_one = utils::numeric(FLERR,arg[15],false,lmp); - dtheta_st6_ast_one = utils::numeric(FLERR,arg[16],false,lmp); + a_st5_one = utils::numeric(FLERR,arg[11],false,lmp); + theta_st5_0_one = utils::numeric(FLERR,arg[12],false,lmp); + dtheta_st5_ast_one = utils::numeric(FLERR,arg[13],false,lmp); + a_st6_one = utils::numeric(FLERR,arg[14],false,lmp); + theta_st6_0_one = utils::numeric(FLERR,arg[15],false,lmp); + dtheta_st6_ast_one = utils::numeric(FLERR,arg[16],false,lmp); - a_st9_one = utils::numeric(FLERR,arg[17],false,lmp); - theta_st9_0_one = utils::numeric(FLERR,arg[18],false,lmp); - dtheta_st9_ast_one = utils::numeric(FLERR,arg[19],false,lmp); - a_st10_one = utils::numeric(FLERR,arg[20],false,lmp); - theta_st10_0_one = utils::numeric(FLERR,arg[21],false,lmp); - dtheta_st10_ast_one = utils::numeric(FLERR,arg[22],false,lmp); + a_st9_one = utils::numeric(FLERR,arg[17],false,lmp); + theta_st9_0_one = utils::numeric(FLERR,arg[18],false,lmp); + dtheta_st9_ast_one = utils::numeric(FLERR,arg[19],false,lmp); + a_st10_one = utils::numeric(FLERR,arg[20],false,lmp); + theta_st10_0_one = utils::numeric(FLERR,arg[21],false,lmp); + dtheta_st10_ast_one = utils::numeric(FLERR,arg[22],false,lmp); - a_st1_one = utils::numeric(FLERR,arg[23],false,lmp); - cosphi_st1_ast_one = utils::numeric(FLERR,arg[24],false,lmp); - a_st2_one = utils::numeric(FLERR,arg[25],false,lmp); - cosphi_st2_ast_one = utils::numeric(FLERR,arg[26],false,lmp); + a_st1_one = utils::numeric(FLERR,arg[23],false,lmp); + cosphi_st1_ast_one = utils::numeric(FLERR,arg[24],false,lmp); + a_st2_one = utils::numeric(FLERR,arg[25],false,lmp); + cosphi_st2_ast_one = utils::numeric(FLERR,arg[26],false,lmp); + } else { // read values from potential file + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[6], "oxdna potential", " (stk)"); + char * line; + std::string iloc, jloc, potential_name; + + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "stk") { + + a_st_one = values.next_double(); + cut_st_0_one = values.next_double(); + cut_st_c_one = values.next_double(); + cut_st_lo_one = values.next_double(); + cut_st_hi_one = values.next_double(); + + a_st5_one = values.next_double(); + theta_st5_0_one = values.next_double(); + dtheta_st5_ast_one = values.next_double(); + a_st6_one = values.next_double(); + theta_st6_0_one = values.next_double(); + dtheta_st6_ast_one = values.next_double(); + + a_st9_one = values.next_double(); + theta_st9_0_one = values.next_double(); + dtheta_st9_ast_one = values.next_double(); + a_st10_one = values.next_double(); + theta_st10_0_one = values.next_double(); + dtheta_st10_ast_one = values.next_double(); + + a_st1_one = values.next_double(); + cosphi_st1_ast_one = values.next_double(); + a_st2_one = values.next_double(); + cosphi_st2_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "stk") error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + } + + MPI_Bcast(&a_st_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_st_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_st5_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st5_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st5_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st6_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st6_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st6_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_st9_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st9_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st9_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st10_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_st10_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_st10_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_st1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_st1_ast_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&a_st2_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cosphi_st2_ast_one, 1, MPI_DOUBLE, 0, world); + } b_st_lo_one = 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* 2*a_st_one*exp(-a_st_one*(cut_st_lo_one-cut_st_0_one))* diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index 8a5fa1b1c9..c5f4218d8f 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -19,6 +19,7 @@ #include "atom.h" #include "comm.h" +#include "constants_oxdna.h" #include "error.h" #include "force.h" #include "math_const.h" @@ -26,6 +27,7 @@ #include "memory.h" #include "mf_oxdna.h" #include "neigh_list.h" +#include "potential_file_reader.h" #include #include @@ -116,7 +118,7 @@ void PairOxrna2Xstk::compute(int eflag, int vflag) double theta8,theta8p,t8dir[3],cost8; // distance COM-h-bonding site - double d_chb=+0.4; + double d_chb = ConstantsOxdna::get_d_chb(); // vectors COM-h-bonding site in lab frame double ra_chb[3],rb_chb[3]; @@ -581,7 +583,7 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) { int count; - if (narg != 22) error->all(FLERR,"Incorrect args for pair coefficients in oxrna2/xstk"); + if (narg != 3 && narg != 22) error->all(FLERR,"Incorrect args for pair coefficients in oxrna2/xstk"); if (!allocated) allocate(); int ilo,ihi,jlo,jhi; @@ -609,32 +611,106 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) double a_xst8_one, theta_xst8_0_one, dtheta_xst8_ast_one; double b_xst8_one, dtheta_xst8_c_one; - k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); - cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); - cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); - cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); - cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); + if (narg == 22) { + k_xst_one = utils::numeric(FLERR,arg[2],false,lmp); + cut_xst_0_one = utils::numeric(FLERR,arg[3],false,lmp); + cut_xst_c_one = utils::numeric(FLERR,arg[4],false,lmp); + cut_xst_lo_one = utils::numeric(FLERR,arg[5],false,lmp); + cut_xst_hi_one = utils::numeric(FLERR,arg[6],false,lmp); - a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); - theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); - dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); + a_xst1_one = utils::numeric(FLERR,arg[7],false,lmp); + theta_xst1_0_one = utils::numeric(FLERR,arg[8],false,lmp); + dtheta_xst1_ast_one = utils::numeric(FLERR,arg[9],false,lmp); - a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); - theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); - dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); + a_xst2_one = utils::numeric(FLERR,arg[10],false,lmp); + theta_xst2_0_one = utils::numeric(FLERR,arg[11],false,lmp); + dtheta_xst2_ast_one = utils::numeric(FLERR,arg[12],false,lmp); - a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); - theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); - dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); + a_xst3_one = utils::numeric(FLERR,arg[13],false,lmp); + theta_xst3_0_one = utils::numeric(FLERR,arg[14],false,lmp); + dtheta_xst3_ast_one = utils::numeric(FLERR,arg[15],false,lmp); - a_xst7_one = utils::numeric(FLERR,arg[16],false,lmp); - theta_xst7_0_one = utils::numeric(FLERR,arg[17],false,lmp); - dtheta_xst7_ast_one = utils::numeric(FLERR,arg[18],false,lmp); + a_xst7_one = utils::numeric(FLERR,arg[16],false,lmp); + theta_xst7_0_one = utils::numeric(FLERR,arg[17],false,lmp); + dtheta_xst7_ast_one = utils::numeric(FLERR,arg[18],false,lmp); - a_xst8_one = utils::numeric(FLERR,arg[19],false,lmp); - theta_xst8_0_one = utils::numeric(FLERR,arg[20],false,lmp); - dtheta_xst8_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + a_xst8_one = utils::numeric(FLERR,arg[19],false,lmp); + theta_xst8_0_one = utils::numeric(FLERR,arg[20],false,lmp); + dtheta_xst8_ast_one = utils::numeric(FLERR,arg[21],false,lmp); + } else { + if (comm->me == 0) { + PotentialFileReader reader(lmp, arg[2], "oxdna potential", " (xstk)"); + char * line; + std::string iloc, jloc, potential_name; + while(line = reader.next_line()) { + try { + ValueTokenizer values(line); + iloc = values.next_string(); + jloc = values.next_string(); + potential_name = values.next_string(); + if (iloc == arg[0] && jloc == arg[1] && potential_name == "xstk") { + k_xst_one = values.next_double(); + cut_xst_0_one = values.next_double(); + cut_xst_c_one = values.next_double(); + cut_xst_lo_one = values.next_double(); + cut_xst_hi_one = values.next_double(); + + a_xst1_one = values.next_double(); + theta_xst1_0_one = values.next_double(); + dtheta_xst1_ast_one = values.next_double(); + + a_xst2_one = values.next_double(); + theta_xst2_0_one = values.next_double(); + dtheta_xst2_ast_one = values.next_double(); + + a_xst3_one = values.next_double(); + theta_xst3_0_one = values.next_double(); + dtheta_xst3_ast_one = values.next_double(); + + a_xst7_one = values.next_double(); + theta_xst7_0_one = values.next_double(); + dtheta_xst7_ast_one = values.next_double(); + + a_xst8_one = values.next_double(); + theta_xst8_0_one = values.next_double(); + dtheta_xst8_ast_one = values.next_double(); + + break; + } else continue; + } catch (std::exception &e) { + error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); + } + } + if (iloc != arg[0] || jloc != arg[1] || potential_name != "xstk") error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + } + + MPI_Bcast(&k_xst_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_c_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_lo_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&cut_xst_hi_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst1_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst1_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst1_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst2_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst2_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst2_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst3_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst3_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst3_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst7_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst7_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst7_ast_one, 1, MPI_DOUBLE, 0, world); + + MPI_Bcast(&a_xst8_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&theta_xst8_0_one, 1, MPI_DOUBLE, 0, world); + MPI_Bcast(&dtheta_xst8_ast_one, 1, MPI_DOUBLE, 0, world); + } b_xst_lo_one = 0.25 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one)/ (0.5 * (cut_xst_lo_one - cut_xst_0_one) * (cut_xst_lo_one - cut_xst_0_one) - From 99b3233564fc74c898d429402fc7ed374ffe23f9 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Fri, 3 May 2024 16:20:57 +0100 Subject: [PATCH 087/313] Added names of new source code files --- src/.gitignore | 2 ++ src/CG-DNA/Install.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/.gitignore b/src/.gitignore index b145f81159..d7fa23a615 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -677,6 +677,8 @@ /compute_viscosity_cos.h /compute_voronoi_atom.cpp /compute_voronoi_atom.h +/constants_oxdna.cpp +/constants_oxdna.h /dihedral_charmm.cpp /dihedral_charmm.h /dihedral_class2.cpp diff --git a/src/CG-DNA/Install.sh b/src/CG-DNA/Install.sh index 3c65fac787..a979ded2d5 100755 --- a/src/CG-DNA/Install.sh +++ b/src/CG-DNA/Install.sh @@ -43,6 +43,8 @@ fi # list of files with dependcies +action constants_oxdna.cpp +action constants_oxdna.h action atom_vec_oxdna.cpp action atom_vec_oxdna.h action bond_oxdna_fene.cpp bond_fene.h From a7f4fc18154190bbbe8287b43d64fd37805db645 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Fri, 3 May 2024 12:58:59 -0400 Subject: [PATCH 088/313] Fixed bug with uniform knot spacing --- src/ML-UF3/pair_uf3.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 19bec2d811..ed4901b536 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -1024,7 +1024,7 @@ void PairUF3::communicate() (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); MPI_Bcast(&knot_spacing_2b[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); MPI_Bcast(&n2b_knots_array[0][0][0], (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); @@ -1041,7 +1041,7 @@ void PairUF3::communicate() MPI_Bcast(&knot_spacing_3b[0][0][0][0], (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, - MPI_INT, 0, world); + MPI_DOUBLE, 0, world); MPI_Bcast(&n3b_knots_array[0][0][0], tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); MPI_Bcast(&n3b_coeff_array[0][0][0][0], @@ -1131,16 +1131,16 @@ void PairUF3::create_bsplines() } - //if (spacing_type) { - get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; - if (pot_3b) - get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; - //} - /*else { + if (spacing_type) { + get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; + if (pot_3b) + get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; + } + else { get_starting_index_2b = &PairUF3::get_starting_index_uniform_2b; if (pot_3b) get_starting_index_3b = &PairUF3::get_starting_index_uniform_3b; - }*/ + } create_cached_constants_2b(); if (pot_3b) From 1cfbc04586fa5e47c30bdc10b6b62c00ddd7c22f Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Fri, 3 May 2024 18:28:33 -0400 Subject: [PATCH 089/313] Initialize setflag, n2b_coeff_array_size, n2b_knots_array_size, n3b_coeff_array_size, n3b_knots_array_size arrays to 0; fixed memory leaks; removed some dead code --- src/ML-UF3/pair_uf3.cpp | 83 ++++++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index ed4901b536..8ba7e45595 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -205,6 +205,10 @@ void PairUF3::allocate() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { cut_3b_list[i][j] = 0; + setflag[i][j] = 0; + n2b_coeff_array_size[i][j] = 0; + n2b_knots_array_size[i][j] = 0; + for (int k = 1; k < num_of_elements + 1; k++) { cut_3b[i][j][k] = 0; min_cut_3b[i][j][k][0] = 0; @@ -224,6 +228,15 @@ void PairUF3::allocate() "pair:n3b_knots_array_size"); memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, "pair:n3b_coeff_array_size"); + for (int i = 0; i < tot_interaction_count_3b; i++) { + n3b_coeff_array_size[i][0] = 0; + n3b_coeff_array_size[i][1] = 0; + n3b_coeff_array_size[i][2] = 0; + + n3b_knots_array_size[i][0] = 0; + n3b_knots_array_size[i][1] = 0; + n3b_knots_array_size[i][2] = 0; + } memory->create(neighshort, maxshort, "pair:neighshort"); @@ -344,6 +357,10 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp5th_line(temp_line); int num_coeff_2b = fp5th_line.next_int(); + if (num_coeff_2b <= 0) + error->all(FLERR, + "UF3: 0 or negative number found for num_coeff_2b" + " on line {} of the potential file",line_counter); n2b_coeff_array_size[itype][jtype] = num_coeff_2b; n2b_coeff_array_size[jtype][itype] = num_coeff_2b; max_num_coeff_2b = std::max(max_num_coeff_2b, num_coeff_2b); @@ -497,45 +514,44 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) } // while //Create knot and coeff arrays - if (max_num_knots_2b > 0) { - memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, - max_num_knots_2b, "pair:n2b_knots_array"); - } - else + if (max_num_knots_2b <= 0) error->all(FLERR, "UF3: Error reading the size of 2B knot vector\n" "Possibly no 2B UF3 potential block detected in {} file", potf_name); + memory->destroy(n2b_knots_array); + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, + max_num_knots_2b, "pair:n2b_knots_array"); - if (max_num_coeff_2b > 0) { - memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, - max_num_coeff_2b, "pair:n2b_coeff_array"); - } - else + if (max_num_coeff_2b <= 0) error->all(FLERR, "UF3: Error reading the size of 2B coeff vector\n" "Possibly no 2B UF3 potential block detected in {} file", potf_name); - if (pot_3b) { - if (max_num_knots_3b > 0) - memory->create(n3b_knots_array, tot_interaction_count_3b, 3, - max_num_knots_3b, "pair:n3b_knots_array"); + memory->destroy(n2b_coeff_array); + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b, "pair:n2b_coeff_array"); - else + + if (pot_3b) { + if (max_num_knots_3b <= 0) error->all(FLERR, "UF3: Error reading the size of 3B knot vector\n" "Possibly no 3B UF3 potential block detected in {} file", potf_name); + memory->destroy(n3b_knots_array); + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, + max_num_knots_3b, "pair:n3b_knots_array"); - if (max_num_coeff_3b > 0) - memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); - else + if (max_num_coeff_3b <= 0) error->all(FLERR, "UF3: Error reading the size of 3B coeff matrices\n" "Possibly no 3B UF3 potential block detected in {} file", potf_name); + memory->destroy(n3b_coeff_array); + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, + max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); } //Go back to the begning of the file @@ -1180,6 +1196,8 @@ int PairUF3::get_starting_index_nonuniform_3b(int i, int j, int k, double r, int void PairUF3::create_cached_constants_2b() { const int num_of_elements = atom->ntypes; + memory->destroy(cached_constants_2b); + memory->destroy(cached_constants_2b_deri); memory->create(cached_constants_2b, num_of_elements + 1, num_of_elements + 1, max_num_coeff_2b, 16, "pair:cached_constants_2b"); @@ -1202,13 +1220,17 @@ void PairUF3::create_cached_constants_2b() for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { //initialize coeff and knots for derivative - double* knots_for_deri = new double[n2b_knots_array_size[i][j]-2]; + //double* knots_for_deri = new double[n2b_knots_array_size[i][j]-2]; + double *knots_for_deri = nullptr; + memory->create(knots_for_deri, n2b_knots_array_size[i][j]-2, "pair:knots_for_deri"); for (int l = 1; l < n2b_knots_array_size[i][j] - 1; l++) knots_for_deri[l-1] = n2b_knots_array[i][j][l]; - double* coeff_for_deri = new double[n2b_coeff_array_size[i][j]-1]; + //double* coeff_for_deri = new double[n2b_coeff_array_size[i][j]-1]; + double *coeff_for_deri = nullptr; + memory->create(coeff_for_deri, n2b_coeff_array_size[i][j]-1, "pair:coeff_for_deri"); for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); @@ -1223,8 +1245,10 @@ void PairUF3::create_cached_constants_2b() cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; } } - delete[] knots_for_deri; - delete[] coeff_for_deri; + memory->destroy(knots_for_deri); + memory->destroy(coeff_for_deri); + //delete[] knots_for_deri; + //delete[] coeff_for_deri; } } } @@ -1232,6 +1256,12 @@ void PairUF3::create_cached_constants_2b() void PairUF3::create_cached_constants_3b() { const int num_of_elements = atom->ntypes; + memory->destroy(coeff_for_der_jk); + memory->destroy(coeff_for_der_ik); + memory->destroy(coeff_for_der_ij); + memory->destroy(cached_constants_3b); + memory->destroy(cached_constants_3b_deri); + memory->create(coeff_for_der_jk, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_jk"); @@ -1607,9 +1637,6 @@ void PairUF3::compute(int eflag, int vflag) basis_ik[3] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik][2]; basis_ik[3] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik][3]; - //utils::logmesg(lmp,"UF3: basis_ik = {} {} {} {}\n",basis_ik[0],basis_ik[1], - // basis_ik[2],basis_ik[3]); - //--------------basis_jk basis_jk[0] = cached_constants_3b[map_to][2][knot_start_index_jk - 3][12]; basis_jk[0] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 3][13]; @@ -1635,10 +1662,6 @@ void PairUF3::compute(int eflag, int vflag) basis_ij_der[0] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6]; basis_ij_der[0] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7]; basis_ij_der[0] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]; - /*utils::logmesg(lmp,"UF3 cached_constants 2 = {} {} {}\n", - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7], - cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]);*/ basis_ij_der[1] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3]; basis_ij_der[1] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; From fe24ddebcd70b89ca1ae7752c313351249fb3b16 Mon Sep 17 00:00:00 2001 From: Ajinkya Hire Date: Fri, 3 May 2024 18:31:12 -0400 Subject: [PATCH 090/313] Removed trailing whitespace --- src/ML-UF3/pair_uf3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 8ba7e45595..1f41ddd336 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -232,7 +232,7 @@ void PairUF3::allocate() n3b_coeff_array_size[i][0] = 0; n3b_coeff_array_size[i][1] = 0; n3b_coeff_array_size[i][2] = 0; - + n3b_knots_array_size[i][0] = 0; n3b_knots_array_size[i][1] = 0; n3b_knots_array_size[i][2] = 0; From c19db76eaecb43d8dd97c05e41b5d43c5bbbfc76 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 14:05:48 -0400 Subject: [PATCH 091/313] delete_bonds: direct type label support --- doc/src/delete_bonds.rst | 24 ++++++++++++++---------- src/delete_bonds.cpp | 30 ++++++++++++++++++++++++------ 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/doc/src/delete_bonds.rst b/doc/src/delete_bonds.rst index 0b30ae5588..e03c4b3ac7 100644 --- a/doc/src/delete_bonds.rst +++ b/doc/src/delete_bonds.rst @@ -43,6 +43,9 @@ Examples delete_bonds all bond 0*3 special delete_bonds all stats + labelmap atom 4 hc + delete_bonds all atom hc special + Description """"""""""" @@ -59,19 +62,20 @@ For all styles, by default, an interaction is only turned off (or on) if all the atoms involved are in the specified group. See the *any* keyword to change the behavior. -Several of the styles (\ *atom*, *bond*, *angle*, *dihedral*, -*improper*\ ) take a *type* as an argument. The specified *type* should -be an integer from 0 to :math:`N`, where :math:`N` is the number of relevant +Several of the styles (\ *atom*, *bond*, *angle*, *dihedral*, *improper*\ ) +take a *type* as an argument. The specified *type* can be a +:doc:`type label `. Otherwise, the type should be an +integer from 0 to :math:`N`, where :math:`N` is the number of relevant types (atom types, bond types, etc.). A value of 0 is only relevant for -style *bond*\ ; see details below. In all cases, a wildcard asterisk +style *bond*\ ; see details below. For numeric types, a wildcard asterisk can be used in place of or in conjunction with the *type* argument to specify a range of types. This takes the form "\*" or "\*n" or "m\*" or -"m\*n". If :math:`N` is the number of types, then an asterisk with no numeric -values means all types from 0 to :math:`N`. A leading asterisk means all -types from 0 to n (inclusive). A trailing asterisk means all types -from m to N (inclusive). A middle asterisk means all types from m to -n (inclusive). Note that it is fine to include a type of 0 for -non-bond styles; it will simply be ignored. +"m\*n". If :math:`N` is the number of types, then an asterisk with no +numeric values means all types from 0 to :math:`N`. A leading asterisk +means all types from 0 to n (inclusive). A trailing asterisk means all +types from m to N (inclusive). A middle asterisk means all types from m to +n (inclusive). Note that it is fine to include a type of 0 for non-bond +styles; it will simply be ignored. For style *multi* all bond, angle, dihedral, and improper interactions of any type, involving atoms in the group, are turned off. diff --git a/src/delete_bonds.cpp b/src/delete_bonds.cpp index 1f8fe71bff..056851bec1 100644 --- a/src/delete_bonds.cpp +++ b/src/delete_bonds.cpp @@ -85,19 +85,37 @@ void DeleteBonds::command(int narg, char **arg) if (narg < 3) error->all(FLERR,"Illegal delete_bonds command"); int n = -1; - if (style == ATOM) n = atom->ntypes; - if (style == BOND) n = atom->nbondtypes; - if (style == ANGLE) n = atom->nangletypes; - if (style == DIHEDRAL) n = atom->ndihedraltypes; - if (style == IMPROPER) n = atom->nimpropertypes; + char *typestr = nullptr; + if (style == ATOM) { + n = atom->ntypes; + typestr = utils::expand_type(FLERR, arg[2], Atom::ATOM, lmp); + } + if (style == BOND) { + n = atom->nbondtypes; + typestr = utils::expand_type(FLERR, arg[2], Atom::BOND, lmp); + } + if (style == ANGLE) { + n = atom->nangletypes; + typestr = utils::expand_type(FLERR, arg[2], Atom::ANGLE, lmp); + } + if (style == DIHEDRAL) { + n = atom->ndihedraltypes; + typestr = utils::expand_type(FLERR, arg[2], Atom::DIHEDRAL, lmp); + } + if (style == IMPROPER) { + n = atom->nimpropertypes; + typestr = utils::expand_type(FLERR, arg[2], Atom::IMPROPER, lmp); + } tlist = new int[n+1]; for (int i = 0; i <= n; i++) tlist[i] = 0; int nlo,nhi; - utils::bounds(FLERR,arg[2],0,n,nlo,nhi,error); + if (typestr) nlo = nhi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[2], 0, n, nlo, nhi, error); for (int i = nlo; i <= nhi; i++) tlist[i] = 1; iarg++; + delete[] typestr; } // grab optional keywords From 9d7e449767756a8b473154d2fdbadc4e1812e32c Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 15:20:53 -0400 Subject: [PATCH 092/313] fix_gcmc: direct type label support apparently changed text in doc description is just reflowing --- doc/src/fix_gcmc.rst | 71 ++++++++++++++++++++------------------------ src/MC/fix_gcmc.cpp | 30 +++++++++---------- 2 files changed, 48 insertions(+), 53 deletions(-) diff --git a/doc/src/fix_gcmc.rst b/doc/src/fix_gcmc.rst index a21e85d803..47f246c2ca 100644 --- a/doc/src/fix_gcmc.rst +++ b/doc/src/fix_gcmc.rst @@ -15,7 +15,7 @@ Syntax * N = invoke this fix every N steps * X = average number of GCMC exchanges to attempt every N steps * M = average number of MC moves to attempt every N steps -* type = atom type for inserted atoms (must be 0 if mol keyword used) +* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used) * seed = random # seed (positive integer) * T = temperature of the ideal gas reservoir (temperature units) * mu = chemical potential of the ideal gas reservoir (energy units) @@ -45,7 +45,7 @@ Syntax *group* value = group-ID group-ID = group-ID for inserted atoms (string) *grouptype* values = type group-ID - type = atom type (int) + type = atom type (1-Ntypes or type label) group-ID = group-ID for inserted atoms (string) *intra_energy* value = intramolecular energy (energy units) *tfac_insert* value = scale up/down temperature of inserted atoms (unitless) @@ -62,52 +62,47 @@ Examples fix 3 water gcmc 10 100 100 0 3456543 3.0 -2.5 0.1 mol my_one_water maxangle 180 full_energy fix 4 my_gas gcmc 1 10 10 1 123456543 300.0 -12.5 1.0 region disk + labelmap atom 1 Li + fix 2 ion gcmc 10 1000 1000 Li 29494 298.0 -0.5 0.01 + Description """"""""""" -This fix performs grand canonical Monte Carlo (GCMC) exchanges of -atoms or molecules with an imaginary ideal gas -reservoir at the specified T and chemical potential (mu) as discussed -in :ref:`(Frenkel) `. It also -attempts Monte Carlo (MC) moves (translations and molecule -rotations) within the simulation cell or -region. If used with the :doc:`fix nvt ` +This fix performs grand canonical Monte Carlo (GCMC) exchanges of atoms or +molecules with an imaginary ideal gas reservoir at the specified T and +chemical potential (mu) as discussed in :ref:`(Frenkel) `. It +also attempts Monte Carlo (MC) moves (translations and molecule rotations) +within the simulation cell or region. If used with the :doc:`fix nvt ` command, simulations in the grand canonical ensemble (muVT, constant chemical potential, constant volume, and constant temperature) can be performed. Specific uses include computing isotherms in microporous materials, or computing vapor-liquid coexistence curves. -Every N timesteps the fix attempts both GCMC exchanges -(insertions or deletions) and MC moves of gas atoms or molecules. -On those timesteps, the average number of attempted GCMC exchanges is X, -while the average number of attempted MC moves is M. -For GCMC exchanges of either molecular or atomic gasses, -these exchanges can be either deletions or insertions, -with equal probability. +Every N timesteps the fix attempts both GCMC exchanges (insertions or +deletions) and MC moves of gas atoms or molecules. On those timesteps, the +average number of attempted GCMC exchanges is X, while the average number +of attempted MC moves is M. For GCMC exchanges of either molecular or +atomic gasses, these exchanges can be either deletions or insertions, with +equal probability. -The possible choices for MC moves are translation of an atom, -translation of a molecule, and rotation of a molecule. -The relative amounts of each are determined by the optional -*mcmoves* keyword (see below). -The default behavior is as follows. -If the *mol* keyword is used, only molecule translations -and molecule rotations are performed with equal probability. -Conversely, if the *mol* keyword is not used, only atom -translations are performed. -M should typically be -chosen to be approximately equal to the expected number of gas atoms -or molecules of the given type within the simulation cell or region, -which will result in roughly one MC move per atom or molecule -per MC cycle. +The possible choices for MC moves are translation of an atom, translation +of a molecule, and rotation of a molecule. The relative amounts of each are +determined by the optional *mcmoves* keyword (see below). The default +behavior is as follows. If the *mol* keyword is used, only molecule +translations and molecule rotations are performed with equal probability. +Conversely, if the *mol* keyword is not used, only atom translations are +performed. M should typically be chosen to be approximately equal to the +expected number of gas atoms or molecules of the given type within the +simulation cell or region, which will result in roughly one MC move per +atom or molecule per MC cycle. -All inserted particles are always added to two groups: the default -group "all" and the fix group specified in the fix command. -In addition, particles are also added to any groups -specified by the *group* and *grouptype* keywords. If inserted -particles are individual atoms, they are assigned the atom type given -by the type argument. If they are molecules, the type argument has no -effect and must be set to zero. Instead, the type of each atom in the -inserted molecule is specified in the file read by the +All inserted particles are always added to two groups: the default group +"all" and the fix group specified in the fix command. In addition, +particles are also added to any groups specified by the *group* and +*grouptype* keywords. If inserted particles are individual atoms, they are +assigned the atom type given by the type argument. If they are molecules, +the type argument has no effect and must be set to zero. Instead, the type +of each atom in the inserted molecule is specified in the file read by the :doc:`molecule ` command. .. note:: diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index bd7e46b3d1..d2b48ace3b 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -94,22 +94,22 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) : // required args - nevery = utils::inumeric(FLERR,arg[3],false,lmp); - nexchanges = utils::inumeric(FLERR,arg[4],false,lmp); - nmcmoves = utils::inumeric(FLERR,arg[5],false,lmp); - ngcmc_type = utils::inumeric(FLERR,arg[6],false,lmp); - seed = utils::inumeric(FLERR,arg[7],false,lmp); - reservoir_temperature = utils::numeric(FLERR,arg[8],false,lmp); - chemical_potential = utils::numeric(FLERR,arg[9],false,lmp); - displace = utils::numeric(FLERR,arg[10],false,lmp); + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + nexchanges = utils::inumeric(FLERR, arg[4], false, lmp); + nmcmoves = utils::inumeric(FLERR, arg[5], false, lmp); + ngcmc_type = utils::expand_type_int(FLERR, arg[6], Atom::ATOM, lmp); + seed = utils::inumeric(FLERR, arg[7], false, lmp); + reservoir_temperature = utils::numeric(FLERR, arg[8], false, lmp); + chemical_potential = utils::numeric(FLERR, arg[9], false, lmp); + displace = utils::numeric(FLERR, arg[10], false, lmp); - if (nevery <= 0) error->all(FLERR,"Illegal fix gcmc command"); - if (nexchanges < 0) error->all(FLERR,"Illegal fix gcmc command"); - if (nmcmoves < 0) error->all(FLERR,"Illegal fix gcmc command"); - if (seed <= 0) error->all(FLERR,"Illegal fix gcmc command"); + if (nevery <= 0) error->all(FLERR, "Illegal fix gcmc command"); + if (nexchanges < 0) error->all(FLERR, "Illegal fix gcmc command"); + if (nmcmoves < 0) error->all(FLERR, "Illegal fix gcmc command"); + if (seed <= 0) error->all(FLERR, "Illegal fix gcmc command"); if (reservoir_temperature < 0.0) - error->all(FLERR,"Illegal fix gcmc command"); - if (displace < 0.0) error->all(FLERR,"Illegal fix gcmc command"); + error->all(FLERR, "Illegal fix gcmc command"); + if (displace < 0.0) error->all(FLERR, "Illegal fix gcmc command"); // read options from end of input line @@ -359,7 +359,7 @@ void FixGCMC::options(int narg, char **arg) ngrouptypesmax*sizeof(char *), "fix_gcmc:grouptypestrings"); } - grouptypes[ngrouptypes] = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + grouptypes[ngrouptypes] = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ATOM, lmp); grouptypestrings[ngrouptypes] = utils::strdup(arg[iarg+2]); ngrouptypes++; iarg += 3; From aa9628facfe0201839b9be36b4f1bf2327f528f9 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 15:29:43 -0400 Subject: [PATCH 093/313] fix_widom: direct type label support --- doc/src/fix_widom.rst | 5 ++++- src/MC/fix_widom.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/doc/src/fix_widom.rst b/doc/src/fix_widom.rst index 43e081800f..125edeff41 100644 --- a/doc/src/fix_widom.rst +++ b/doc/src/fix_widom.rst @@ -14,7 +14,7 @@ Syntax * widom = style name of this fix command * N = invoke this fix every N steps * M = number of Widom insertions to attempt every N steps -* type = atom type for inserted atoms (must be 0 if mol keyword used) +* type = atom type (1-Ntypes or type label) for inserted atoms (must be 0 if mol keyword used) * seed = random # seed (positive integer) * T = temperature of the system (temperature units) * zero or more keyword/value pairs may be appended to args @@ -38,6 +38,9 @@ Examples fix 2 gas widom 1 50000 1 19494 2.0 fix 3 water widom 1000 100 0 29494 300.0 mol h2omol full_energy + labelmap atom 1 Li + fix 2 ion widom 1 50000 Li 19494 2.0 + Description """"""""""" diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index 9871dc8f60..7e98a118a2 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -77,11 +77,11 @@ FixWidom::FixWidom(LAMMPS *lmp, int narg, char **arg) : // required args - nevery = utils::inumeric(FLERR,arg[3],false,lmp); - ninsertions = utils::inumeric(FLERR,arg[4],false,lmp); - nwidom_type = utils::inumeric(FLERR,arg[5],false,lmp); - seed = utils::inumeric(FLERR,arg[6],false,lmp); - insertion_temperature = utils::numeric(FLERR,arg[7],false,lmp); + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + ninsertions = utils::inumeric(FLERR, arg[4], false, lmp); + nwidom_type = utils::expand_type_int(FLERR, arg[5], Atom::ATOM, lmp); + seed = utils::inumeric(FLERR, arg[6], false, lmp); + insertion_temperature = utils::numeric(FLERR, arg[7], false, lmp); if (nevery <= 0) error->all(FLERR,"Invalid fix widom every argument: {}", nevery); if (ninsertions < 0) error->all(FLERR,"Invalid fix widom insertions argument: {}", ninsertions); From d121d5a5033d5a166baaca320abf0fd3def4c76d Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 16:30:21 -0400 Subject: [PATCH 094/313] bond/create: direct type label support --- doc/src/fix_bond_create.rst | 18 +++++++++++------- src/MC/fix_bond_create.cpp | 29 ++++++++++++++--------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/doc/src/fix_bond_create.rst b/doc/src/fix_bond_create.rst index bc5e1b83f8..0d818b2eae 100644 --- a/doc/src/fix_bond_create.rst +++ b/doc/src/fix_bond_create.rst @@ -17,9 +17,9 @@ Syntax * ID, group-ID are documented in :doc:`fix ` command * bond/create = style name of this fix command * Nevery = attempt bond creation every this many steps -* itype,jtype = atoms of itype can bond to atoms of jtype +* itype,jtype = atoms of itype can bond to atoms of jtype (1-Ntypes or type label) * Rmin = 2 atoms separated by less than Rmin can bond (distance units) -* bondtype = type of created bonds +* bondtype = type of created bonds (integer or type label) * zero or more keyword/value pairs may be appended to args * keyword = *iparam* or *jparam* or *prob* or *atype* or *dtype* or *itype* or *aconstrain* @@ -27,19 +27,19 @@ Syntax *iparam* values = maxbond, newtype maxbond = max # of bonds of bondtype the itype atom can have - newtype = change the itype atom to this type when maxbonds exist + newtype = change the itype atom to this type when maxbonds exist (1-Ntypes or type label) *jparam* values = maxbond, newtype maxbond = max # of bonds of bondtype the jtype atom can have - newtype = change the jtype atom to this type when maxbonds exist + newtype = change the jtype atom to this type when maxbonds exist (1-Ntypes or type label) *prob* values = fraction seed fraction = create a bond with this probability if otherwise eligible seed = random number seed (positive integer) *atype* value = angletype - angletype = type of created angles + angletype = type of created angles (integer or type label) *dtype* value = dihedraltype - dihedraltype = type of created dihedrals + dihedraltype = type of created dihedrals (integer or type label) *itype* value = impropertype - impropertype = type of created impropers + impropertype = type of created impropers (integer or type label) *aconstrain* value = amin amax amin = minimal angle at which new bonds can be created amax = maximal angle at which new bonds can be created @@ -54,6 +54,10 @@ Examples fix 5 all bond/create 1 3 3 0.8 1 prob 0.5 85784 iparam 2 3 atype 1 dtype 2 fix 5 all bond/create/angle 10 1 2 1.122 1 aconstrain 120 180 prob 1 4928459 iparam 2 1 jparam 2 2 + labelmap atom 1 c1 2 n2 + labelmap bond 1 c1-n2 + fix 5 all bond/create 10 c1 n2 0.8 c1-n2 + Description """"""""""" diff --git a/src/MC/fix_bond_create.cpp b/src/MC/fix_bond_create.cpp index 8922bde55f..589625cc16 100644 --- a/src/MC/fix_bond_create.cpp +++ b/src/MC/fix_bond_create.cpp @@ -59,10 +59,10 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - iatomtype = utils::inumeric(FLERR,arg[4],false,lmp); - jatomtype = utils::inumeric(FLERR,arg[5],false,lmp); + iatomtype = utils::expand_type_int(FLERR, arg[4], Atom::ATOM, lmp); + jatomtype = utils::expand_type_int(FLERR, arg[5], Atom::ATOM, lmp); double cutoff = utils::numeric(FLERR,arg[6],false,lmp); - btype = utils::inumeric(FLERR,arg[7],false,lmp); + btype = utils::expand_type_int(FLERR, arg[7], Atom::BOND, lmp); if (iatomtype < 1 || iatomtype > atom->ntypes || jatomtype < 1 || jatomtype > atom->ntypes) @@ -92,49 +92,49 @@ FixBondCreate::FixBondCreate(LAMMPS *lmp, int narg, char **arg) : while (iarg < narg) { if (strcmp(arg[iarg],"iparam") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - imaxbond = utils::inumeric(FLERR,arg[iarg+1],false,lmp); - inewtype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + imaxbond = utils::inumeric(FLERR, arg[iarg+1], false, lmp); + inewtype = utils::expand_type_int(FLERR, arg[iarg+2], Atom::ATOM, lmp); if (imaxbond < 0) error->all(FLERR,"Illegal fix bond/create command"); if (inewtype < 1 || inewtype > atom->ntypes) error->all(FLERR,"Invalid atom type in fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"jparam") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - jmaxbond = utils::inumeric(FLERR,arg[iarg+1],false,lmp); - jnewtype = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + jmaxbond = utils::inumeric(FLERR, arg[iarg+1], false, lmp); + jnewtype = utils::expand_type_int(FLERR, arg[iarg+2], Atom::ATOM, lmp); if (jmaxbond < 0) error->all(FLERR,"Illegal fix bond/create command"); if (jnewtype < 1 || jnewtype > atom->ntypes) error->all(FLERR,"Invalid atom type in fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"prob") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create command"); - fraction = utils::numeric(FLERR,arg[iarg+1],false,lmp); - seed = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + fraction = utils::numeric(FLERR, arg[iarg+1], false, lmp); + seed = utils::inumeric(FLERR, arg[iarg+2], false, lmp); if (fraction < 0.0 || fraction > 1.0) error->all(FLERR,"Illegal fix bond/create command"); if (seed <= 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 3; } else if (strcmp(arg[iarg],"atype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - atype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + atype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::ANGLE, lmp); if (atype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"dtype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - dtype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + dtype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::DIHEDRAL, lmp); if (dtype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"itype") == 0) { if (iarg+2 > narg) error->all(FLERR,"Illegal fix bond/create command"); - itype = utils::inumeric(FLERR,arg[iarg+1],false,lmp); + itype = utils::expand_type_int(FLERR, arg[iarg+1], Atom::IMPROPER, lmp); if (itype < 0) error->all(FLERR,"Illegal fix bond/create command"); iarg += 2; } else if (strcmp(arg[iarg],"aconstrain") == 0 && strcmp(style,"bond/create/angle") == 0) { if (iarg+3 > narg) error->all(FLERR,"Illegal fix bond/create/angle command"); - amin = utils::numeric(FLERR,arg[iarg+1],false,lmp); - amax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); + amin = utils::numeric(FLERR, arg[iarg+1], false, lmp); + amax = utils::inumeric(FLERR, arg[iarg+2], false, lmp); if (amin >= amax) error->all(FLERR,"Illegal fix bond/create/angle command"); if (amin < 0 || amin > 180) @@ -1430,4 +1430,3 @@ double FixBondCreate::memory_usage() bytes += (double)nmax * sizeof(double); return bytes; } - From 8fc1a8ec7fb464cda8a8bb175295a6e28aac1b5f Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 16:34:17 -0400 Subject: [PATCH 095/313] start off with simpler labelmap example --- doc/src/labelmap.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/labelmap.rst b/doc/src/labelmap.rst index 9e3d705101..ebc07fe5b3 100644 --- a/doc/src/labelmap.rst +++ b/doc/src/labelmap.rst @@ -24,6 +24,7 @@ Examples .. code-block:: LAMMPS + labelmap atom 1 c1 2 hc 3 cp 4 nt labelmap atom 3 carbon 4 'c3"' 5 "c1'" 6 "c#" labelmap atom $(label2type(atom,carbon)) C # change type label from 'carbon' to 'C' labelmap clear From c5c7e6fb744ab9ba1aa065b0e8a82f790fd563f7 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 16:40:40 -0400 Subject: [PATCH 096/313] bond/break: direct type label support --- doc/src/fix_bond_break.rst | 2 +- src/MC/fix_bond_break.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/fix_bond_break.rst b/doc/src/fix_bond_break.rst index a0f7fad581..cfa29d8275 100644 --- a/doc/src/fix_bond_break.rst +++ b/doc/src/fix_bond_break.rst @@ -13,7 +13,7 @@ Syntax * ID, group-ID are documented in :doc:`fix ` command * bond/break = style name of this fix command * Nevery = attempt bond breaking every this many steps -* bondtype = type of bonds to break +* bondtype = type of bonds to break (integer or type label) * Rmax = bond longer than Rmax can break (distance units) * zero or more keyword/value pairs may be appended * keyword = *prob* diff --git a/src/MC/fix_bond_break.cpp b/src/MC/fix_bond_break.cpp index bb3e725c96..94ec5a89bb 100644 --- a/src/MC/fix_bond_break.cpp +++ b/src/MC/fix_bond_break.cpp @@ -46,8 +46,8 @@ FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) : MPI_Comm_rank(world,&me); MPI_Comm_size(world,&nprocs); - nevery = utils::inumeric(FLERR,arg[3],false,lmp); - if (nevery <= 0) error->all(FLERR,"Illegal fix bond/break command"); + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + if (nevery <= 0) error->all(FLERR, "Illegal fix bond/break command"); force_reneighbor = 1; next_reneighbor = -1; @@ -56,8 +56,8 @@ FixBondBreak::FixBondBreak(LAMMPS *lmp, int narg, char **arg) : global_freq = 1; extvector = 0; - btype = utils::inumeric(FLERR,arg[4],false,lmp); - cutoff = utils::numeric(FLERR,arg[5],false,lmp); + btype = utils::expand_type_int(FLERR, arg[4], Atom::BOND, lmp); + cutoff = utils::numeric(FLERR, arg[5], false, lmp); if (btype < 1 || btype > atom->nbondtypes) error->all(FLERR,"Invalid bond type in fix bond/break command"); From 4d1e4814b780161deb59fe7fb0570a4f8b8f2e97 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 19:13:29 -0400 Subject: [PATCH 097/313] fix adapt: direct type label support make utils::bound type aware? i.e., Atom:BOND argument instead of atom->nbondtypes --- doc/src/fix_adapt.rst | 21 +++++++++++-------- src/fix_adapt.cpp | 48 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/doc/src/fix_adapt.rst b/doc/src/fix_adapt.rst index f857a6333c..7a551b554f 100644 --- a/doc/src/fix_adapt.rst +++ b/doc/src/fix_adapt.rst @@ -21,17 +21,17 @@ Syntax *pair* args = pstyle pparam I J v_name pstyle = pair style name (e.g., lj/cut) pparam = parameter to adapt over time - I,J = type pair(s) to set parameter for + I,J = type pair(s) to set parameter for (integer or type label) v_name = variable with name that calculates value of pparam *bond* args = bstyle bparam I v_name bstyle = bond style name (e.g., harmonic) bparam = parameter to adapt over time - I = type bond to set parameter for + I = type bond to set parameter for (integer or type label) v_name = variable with name that calculates value of bparam *angle* args = astyle aparam I v_name astyle = angle style name (e.g., harmonic) aparam = parameter to adapt over time - I = type angle to set parameter for + I = type angle to set parameter for (integer or type label) v_name = variable with name that calculates value of aparam *kspace* arg = v_name v_name = variable with name that calculates scale factor on :math:`k`-space terms @@ -254,10 +254,12 @@ should be specified to indicate which type pairs to apply it to. If a global parameter is specified, the :math:`I` and :math:`J` settings still need to be specified, but are ignored. -Similar to the :doc:`pair_coeff command `, :math:`I` and :math:`J` -can be specified in one of two ways. Explicit numeric values can be used for -each, as in the first example above. :math:`I \le J` is required. LAMMPS sets -the coefficients for the symmetric :math:`J,I` interaction to the same values. +Similar to the :doc:`pair_coeff command `, :math:`I` and +:math:`J` can be specified in one of several ways. Explicit numeric values +can be used for each, as in the first example above. Or, one or both of +the types in the I,J pair can be a :doc:`type label `. +LAMMPS sets the coefficients for the symmetric :math:`J,I` interaction to +the same values. A wild-card asterisk can be used in place of or in conjunction with the :math:`I,J` arguments to set the coefficients for multiple pairs of atom @@ -266,8 +268,9 @@ is the number of atom types, then an asterisk with no numeric values means all types from 1 to :math:`N`. A leading asterisk means all types from 1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` (inclusive). A middle asterisk means all types from m to n -(inclusive). Note that only type pairs with :math:`I \le J` are considered; if -asterisks imply type pairs where :math:`J < I`, they are ignored. +(inclusive). For the asterisk syntax, note that only type pairs with +:math:`I \le J` are considered; if asterisks imply type pairs where +:math:`J < I`, they are ignored. IMPORTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay ` is being used, then the *pstyle* will be a sub-style diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 2a10b9d603..91e4ce7585 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -99,10 +99,32 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].pair = nullptr; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR,arg[iarg+3],1,atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi,error); - utils::bounds(FLERR,arg[iarg+4],1,atom->ntypes, - adapt[nadapt].jlo,adapt[nadapt].jhi,error); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; + typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); + utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); + delete[] typestr; + + // switch i,j if i > j, if wildcards were not used + + if ( (adapt[nadapt].ilo == adapt[nadapt].ihi) && + (adapt[nadapt].jlo == adapt[nadapt].jhi) && + (adapt[nadapt].ilo > adapt[nadapt].jlo) ) { + adapt[nadapt].jlo = adapt[nadapt].ihi; + adapt[nadapt].ilo = adapt[nadapt].jhi; + adapt[nadapt].ihi = adapt[nadapt].ilo; + adapt[nadapt].jhi = adapt[nadapt].jlo; + } + if (utils::strmatch(arg[iarg+5],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+5]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+6, arg[iarg+5]); @@ -114,8 +136,13 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].bond = nullptr; adapt[nadapt].bstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].bparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR,arg[iarg+3],1,atom->nbondtypes, - adapt[nadapt].ilo,adapt[nadapt].ihi,error); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::BOND, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); @@ -127,8 +154,13 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].angle = nullptr; adapt[nadapt].astyle = utils::strdup(arg[iarg+1]); adapt[nadapt].aparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR,arg[iarg+3],1,atom->nangletypes, - adapt[nadapt].ilo,adapt[nadapt].ihi,error); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ANGLE, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); From ff05d45c74c34763e5fe99a9dd3adc5be1ed4d91 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 19:37:42 -0400 Subject: [PATCH 098/313] adapt/fep: direct type label support --- doc/src/fix_adapt_fep.rst | 15 +++++++++------ src/FEP/fix_adapt_fep.cpp | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/doc/src/fix_adapt_fep.rst b/doc/src/fix_adapt_fep.rst index 474fc799de..a27bbbdb7c 100644 --- a/doc/src/fix_adapt_fep.rst +++ b/doc/src/fix_adapt_fep.rst @@ -218,10 +218,12 @@ be specified to indicate which type pairs to apply it to. If a global parameter is specified, the *I* and *J* settings still need to be specified, but are ignored. -Similar to the :doc:`pair_coeff command `, I and J can be -specified in one of two ways. Explicit numeric values can be used for -each, as in the first example above. :math:`I \le J` is required. LAMMPS sets -the coefficients for the symmetric J,I interaction to the same values. +Similar to the :doc:`pair_coeff command `, :math:`I` and +:math:`J` can be specified in one of several ways. Explicit numeric values +can be used for each, as in the first example above. Or, one or both of +the types in the I,J pair can be a :doc:`type label `. +LAMMPS sets the coefficients for the symmetric :math:`J,I` interaction to +the same values. A wild-card asterisk can be used in place of or in conjunction with the :math:`I,J` arguments to set the coefficients for multiple pairs of atom @@ -230,8 +232,9 @@ the number of atom types, then an asterisk with no numeric values means all types from 1 to :math:`N`. A leading asterisk means all types from 1 to n (inclusive). A trailing asterisk means all types from m to :math:`N` (inclusive). A middle asterisk means all types from m to n -(inclusive). Note that only type pairs with :math:`I \le J` are considered; if -asterisks imply type pairs where :math:`J < I`, they are ignored. +(inclusive). For the asterisk syntax, note that only type pairs with +:math:`I \le J` are considered; if asterisks imply type pairs where +:math:`J < I`, they are ignored. IMPROTANT NOTE: If :doc:`pair_style hybrid or hybrid/overlay ` is being used, then the *pstyle* will be a sub-style name. You must specify diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index e0c5868e96..ff8889c7b5 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -91,10 +91,32 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].which = PAIR; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR,arg[iarg+3],1,atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi,error); - utils::bounds(FLERR,arg[iarg+4],1,atom->ntypes, - adapt[nadapt].jlo,adapt[nadapt].jhi,error); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; + typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); + utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); + delete[] typestr; + + // switch i,j if i > j, if wildcards were not used + + if ( (adapt[nadapt].ilo == adapt[nadapt].ihi) && + (adapt[nadapt].jlo == adapt[nadapt].jhi) && + (adapt[nadapt].ilo > adapt[nadapt].jlo) ) { + adapt[nadapt].jlo = adapt[nadapt].ihi; + adapt[nadapt].ilo = adapt[nadapt].jhi; + adapt[nadapt].ihi = adapt[nadapt].ilo; + adapt[nadapt].jhi = adapt[nadapt].jlo; + } + if (utils::strmatch(arg[iarg+5],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+5]+2); } else error->all(FLERR,"Illegal fix adapt/fep command"); @@ -118,8 +140,13 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal fix adapt/fep command"); - utils::bounds(FLERR,arg[iarg+2],1,atom->ntypes, - adapt[nadapt].ilo,adapt[nadapt].ihi,error); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+2], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+3],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+3]+2); } else error->all(FLERR,"Illegal fix adapt/fep command"); From 5d35392ccaa33acd1d11170d04d888eb87a9525b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 19:49:19 -0400 Subject: [PATCH 099/313] finish adapt docs --- doc/src/fix_adapt.rst | 3 +++ doc/src/fix_adapt_fep.rst | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/src/fix_adapt.rst b/doc/src/fix_adapt.rst index 7a551b554f..03aef12a6c 100644 --- a/doc/src/fix_adapt.rst +++ b/doc/src/fix_adapt.rst @@ -67,6 +67,9 @@ Examples variable ramp_up equal "ramp(0.01,0.5)" fix stretch all adapt 1 bond harmonic r0 1 v_ramp_up + labelmap atom 1 c1 + fix 1 all adapt 1 pair soft a c1 c1 v_prefactor + Description """"""""""" diff --git a/doc/src/fix_adapt_fep.rst b/doc/src/fix_adapt_fep.rst index a27bbbdb7c..3bcdfc5035 100644 --- a/doc/src/fix_adapt_fep.rst +++ b/doc/src/fix_adapt_fep.rst @@ -21,13 +21,13 @@ Syntax *pair* args = pstyle pparam I J v_name pstyle = pair style name (e.g., lj/cut) pparam = parameter to adapt over time - I,J = type pair(s) to set parameter for + I,J = type pair(s) to set parameter for (integer or type label) v_name = variable with name that calculates value of pparam *kspace* arg = v_name v_name = variable with name that calculates scale factor on K-space terms *atom* args = aparam v_name aparam = parameter to adapt over time - I = type(s) to set parameter for + I = type(s) to set parameter for (integer or type label) v_name = variable with name that calculates value of aparam * zero or more keyword/value pairs may be appended @@ -56,6 +56,9 @@ Examples fix 1 all adapt/fep 1 pair lj/cut epsilon * * v_scale1 coul/cut scale 3 3 v_scale2 scale yes reset yes fix 1 all adapt/fep 10 atom diameter 1 v_size + labelmap atom 1 c1 + fix 1 all adapt/fep 1 pair soft a c1 c1 v_prefactor + Example input scripts available: examples/PACKAGES/fep From 2492c57c8ea77dc51e4385c27b5b2820e0299c37 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sat, 11 May 2024 20:14:18 -0400 Subject: [PATCH 100/313] typos --- src/FEP/fix_adapt_fep.cpp | 6 +++--- src/fix_adapt.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index ff8889c7b5..f457a12adf 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -96,14 +96,14 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : if (typestr) adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); + adapt[nadapt].ilo, adapt[nadapt].ihi, error); delete[] typestr; typestr = nullptr; typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); if (typestr) adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); + else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); delete[] typestr; // switch i,j if i > j, if wildcards were not used diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 91e4ce7585..d68c5f368a 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -104,14 +104,14 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : if (typestr) adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); + adapt[nadapt].ilo, adapt[nadapt].ihi, error); delete[] typestr; typestr = nullptr; typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); if (typestr) adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); + else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); delete[] typestr; // switch i,j if i > j, if wildcards were not used From 25d4b3484d83913e3825e7b9d0ef013fa02a461b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 01:00:09 -0400 Subject: [PATCH 101/313] example with augmented utils::bounds option to check for type label --- src/FEP/fix_adapt_fep.cpp | 27 ++++++--------------------- src/atom.h | 2 +- src/fix_adapt.cpp | 36 ++++++++---------------------------- src/utils.cpp | 21 +++++++++++++++------ src/utils.h | 6 ++++-- 5 files changed, 34 insertions(+), 58 deletions(-) diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index f457a12adf..e1d7376b59 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -91,20 +91,10 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].which = PAIR; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; - typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); - delete[] typestr; + utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); + utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error, Atom::ATOM); // switch i,j if i > j, if wildcards were not used @@ -140,13 +130,8 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal fix adapt/fep command"); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+2], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); if (utils::strmatch(arg[iarg+3],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+3]+2); } else error->all(FLERR,"Illegal fix adapt/fep command"); diff --git a/src/atom.h b/src/atom.h index f238b2d5b1..5d270097ca 100644 --- a/src/atom.h +++ b/src/atom.h @@ -33,7 +33,7 @@ class Atom : protected Pointers { enum { DOUBLE, INT, BIGINT }; enum { GROW = 0, RESTART = 1, BORDER = 2 }; enum { ATOMIC = 0, MOLECULAR = 1, TEMPLATE = 2 }; - enum { ATOM = 0, BOND = 1, ANGLE = 2, DIHEDRAL = 3, IMPROPER = 4 }; + enum { ATOM = 0, BOND = 1, ANGLE = 2, DIHEDRAL = 3, IMPROPER = 4, NONTYPE = 5 }; enum { NUMERIC = 0, LABELS = 1 }; enum { MAP_NONE = 0, MAP_ARRAY = 1, MAP_HASH = 2, MAP_YES = 3 }; diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index d68c5f368a..438d31a5f9 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -99,20 +99,10 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].pair = nullptr; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; - typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); - delete[] typestr; + utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); + utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error, Atom::ATOM); // switch i,j if i > j, if wildcards were not used @@ -136,13 +126,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].bond = nullptr; adapt[nadapt].bstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].bparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::BOND, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::BOND); if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); @@ -154,13 +139,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].angle = nullptr; adapt[nadapt].astyle = utils::strdup(arg[iarg+1]); adapt[nadapt].aparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ANGLE, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ANGLE); if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); diff --git a/src/utils.cpp b/src/utils.cpp index 55b029fc0d..013b67dfc2 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -596,15 +596,24 @@ tagint utils::tnumeric(const char *file, int line, const char *str, bool do_abor /* ---------------------------------------------------------------------- compute bounds implied by numeric str with a possible wildcard asterisk + if str is a single number or type label, return nlo = nhi = label2type(str) ------------------------------------------------------------------------- */ // clang-format off template -void utils::bounds(const char *file, int line, const std::string &str, - bigint nmin, bigint nmax, TYPE &nlo, TYPE &nhi, Error *error) +void utils::bounds(const char *file, int line, const std::string &str, bigint nmin, + bigint nmax, TYPE &nlo, TYPE &nhi, Error *error, int mode = Atom::NONTYPE) { nlo = nhi = -1; - // check for illegal charcters + if (mode != Atom::NONTYPE) { + char *typestr; + if ( typestr = utils::expand_type(FLERR, str, mode, lmp) ) + nlo = nhi = utils::inumeric(FLERR, typestr, false, lmp); + delete[] typestr; + if (nlo > -1) return; + } + + // check for illegal characters size_t found = str.find_first_not_of("*-0123456789"); if (found != std::string::npos) { if (error) error->all(file, line, "Invalid range string: {}", str); @@ -642,11 +651,11 @@ void utils::bounds(const char *file, int line, const std::string &str, } template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, int &, int &, Error *); + bigint, bigint, int &, int &, Error *, int); template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, long &, long &, Error *); + bigint, bigint, long &, long &, Error *, int); template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, long long &, long long &, Error *); + bigint, bigint, long long &, long long &, Error *, int); // clang-format on /* ------------------------------------------------------------------------- diff --git a/src/utils.h b/src/utils.h index 383927ad34..6cb67a0d9f 100644 --- a/src/utils.h +++ b/src/utils.h @@ -310,9 +310,10 @@ namespace utils { /*! Compute index bounds derived from a string with a possible wildcard * * This functions processes the string in *str* and set the values of *nlo* - * and *nhi* according to the following five cases: + * and *nhi* according to the following six cases: * * - a single number, i: nlo = i; nhi = i; + * - a single type label, typestr: nlo = nhi = label2type(typestr) * - a single asterisk, \*: nlo = nmin; nhi = nmax; * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; * - a single asterisk followed by a number, \*i: nlo = nmin; nhi = i; @@ -325,11 +326,12 @@ namespace utils { * \param nmax largest allowed upper bound * \param nlo lower bound * \param nhi upper bound + * \param mode select labelmap using constants from Atom class * \param error pointer to Error class for out-of-bounds messages */ template void bounds(const char *file, int line, const std::string &str, bigint nmin, bigint nmax, - TYPE &nlo, TYPE &nhi, Error *error); + TYPE &nlo, TYPE &nhi, Error *error, int mode); /*! Expand list of arguments when containing fix/compute wildcards * From 61b9469fd1dc2df8bf9f8cabe384cfe4c80e1487 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 02:00:48 -0400 Subject: [PATCH 102/313] Revert "example with augmented utils::bounds" This reverts commit 25d4b3484d83913e3825e7b9d0ef013fa02a461b. --- src/FEP/fix_adapt_fep.cpp | 27 +++++++++++++++++++++------ src/atom.h | 2 +- src/fix_adapt.cpp | 36 ++++++++++++++++++++++++++++-------- src/utils.cpp | 21 ++++++--------------- src/utils.h | 6 ++---- 5 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index e1d7376b59..f457a12adf 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -91,10 +91,20 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].which = PAIR; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); - utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error, Atom::ATOM); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; + typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); + delete[] typestr; // switch i,j if i > j, if wildcards were not used @@ -130,8 +140,13 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal fix adapt/fep command"); - utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+2], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+3],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+3]+2); } else error->all(FLERR,"Illegal fix adapt/fep command"); diff --git a/src/atom.h b/src/atom.h index 5d270097ca..f238b2d5b1 100644 --- a/src/atom.h +++ b/src/atom.h @@ -33,7 +33,7 @@ class Atom : protected Pointers { enum { DOUBLE, INT, BIGINT }; enum { GROW = 0, RESTART = 1, BORDER = 2 }; enum { ATOMIC = 0, MOLECULAR = 1, TEMPLATE = 2 }; - enum { ATOM = 0, BOND = 1, ANGLE = 2, DIHEDRAL = 3, IMPROPER = 4, NONTYPE = 5 }; + enum { ATOM = 0, BOND = 1, ANGLE = 2, DIHEDRAL = 3, IMPROPER = 4 }; enum { NUMERIC = 0, LABELS = 1 }; enum { MAP_NONE = 0, MAP_ARRAY = 1, MAP_HASH = 2, MAP_YES = 3 }; diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 438d31a5f9..d68c5f368a 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -99,10 +99,20 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].pair = nullptr; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ATOM); - utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error, Atom::ATOM); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; + typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); + if (typestr) + adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error); + delete[] typestr; // switch i,j if i > j, if wildcards were not used @@ -126,8 +136,13 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].bond = nullptr; adapt[nadapt].bstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].bparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::BOND); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::BOND, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); @@ -139,8 +154,13 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].angle = nullptr; adapt[nadapt].astyle = utils::strdup(arg[iarg+1]); adapt[nadapt].aparam = utils::strdup(arg[iarg+2]); - utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error, Atom::ANGLE); + char *typestr = nullptr; + typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ANGLE, lmp); + if (typestr) + adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); + else utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error); + delete[] typestr; if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); diff --git a/src/utils.cpp b/src/utils.cpp index 013b67dfc2..55b029fc0d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -596,24 +596,15 @@ tagint utils::tnumeric(const char *file, int line, const char *str, bool do_abor /* ---------------------------------------------------------------------- compute bounds implied by numeric str with a possible wildcard asterisk - if str is a single number or type label, return nlo = nhi = label2type(str) ------------------------------------------------------------------------- */ // clang-format off template -void utils::bounds(const char *file, int line, const std::string &str, bigint nmin, - bigint nmax, TYPE &nlo, TYPE &nhi, Error *error, int mode = Atom::NONTYPE) +void utils::bounds(const char *file, int line, const std::string &str, + bigint nmin, bigint nmax, TYPE &nlo, TYPE &nhi, Error *error) { nlo = nhi = -1; - if (mode != Atom::NONTYPE) { - char *typestr; - if ( typestr = utils::expand_type(FLERR, str, mode, lmp) ) - nlo = nhi = utils::inumeric(FLERR, typestr, false, lmp); - delete[] typestr; - if (nlo > -1) return; - } - - // check for illegal characters + // check for illegal charcters size_t found = str.find_first_not_of("*-0123456789"); if (found != std::string::npos) { if (error) error->all(file, line, "Invalid range string: {}", str); @@ -651,11 +642,11 @@ void utils::bounds(const char *file, int line, const std::string &str, bigint nm } template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, int &, int &, Error *, int); + bigint, bigint, int &, int &, Error *); template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, long &, long &, Error *, int); + bigint, bigint, long &, long &, Error *); template void utils::bounds<>(const char *, int, const std::string &, - bigint, bigint, long long &, long long &, Error *, int); + bigint, bigint, long long &, long long &, Error *); // clang-format on /* ------------------------------------------------------------------------- diff --git a/src/utils.h b/src/utils.h index 6cb67a0d9f..383927ad34 100644 --- a/src/utils.h +++ b/src/utils.h @@ -310,10 +310,9 @@ namespace utils { /*! Compute index bounds derived from a string with a possible wildcard * * This functions processes the string in *str* and set the values of *nlo* - * and *nhi* according to the following six cases: + * and *nhi* according to the following five cases: * * - a single number, i: nlo = i; nhi = i; - * - a single type label, typestr: nlo = nhi = label2type(typestr) * - a single asterisk, \*: nlo = nmin; nhi = nmax; * - a single number followed by an asterisk, i\*: nlo = i; nhi = nmax; * - a single asterisk followed by a number, \*i: nlo = nmin; nhi = i; @@ -326,12 +325,11 @@ namespace utils { * \param nmax largest allowed upper bound * \param nlo lower bound * \param nhi upper bound - * \param mode select labelmap using constants from Atom class * \param error pointer to Error class for out-of-bounds messages */ template void bounds(const char *file, int line, const std::string &str, bigint nmin, bigint nmax, - TYPE &nlo, TYPE &nhi, Error *error, int mode); + TYPE &nlo, TYPE &nhi, Error *error); /*! Expand list of arguments when containing fix/compute wildcards * From 44b99b6b76f4fc249334d9cb770dec0fd5cac38b Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 14:30:55 -0400 Subject: [PATCH 103/313] bounds() wrapper for type labels --- src/utils.cpp | 26 +++++++++++++++++++++++++- src/utils.h | 13 +++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/utils.cpp b/src/utils.cpp index 55b029fc0d..4c299eec15 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -604,7 +604,7 @@ void utils::bounds(const char *file, int line, const std::string &str, { nlo = nhi = -1; - // check for illegal charcters + // check for illegal characters size_t found = str.find_first_not_of("*-0123456789"); if (found != std::string::npos) { if (error) error->all(file, line, "Invalid range string: {}", str); @@ -647,6 +647,30 @@ template void utils::bounds<>(const char *, int, const std::string &, bigint, bigint, long &, long &, Error *); template void utils::bounds<>(const char *, int, const std::string &, bigint, bigint, long long &, long long &, Error *); + +/* ---------------------------------------------------------------------- + wrapper for bounds() that accepts type label input +------------------------------------------------------------------------- */ + +template +void utils::bounds_typelabel(const char *file, int line, const std::string &str, bigint nmin, + bigint nmax, TYPE &nlo, TYPE &nhi, Error *error, LAMMPS *lmp, int mode) +{ + nlo = nhi = -1; + char *typestr; + if ( typestr = utils::expand_type(FLERR, str, mode, lmp) ) + nlo = nhi = utils::inumeric(FLERR, typestr, false, lmp); + delete[] typestr; + if (nlo > -1) return; + else utils::bounds(file, line, str, nmin, nmax, nlo, nhi, error); +} + +template void utils::bounds_typelabel<>(const char *, int, const std::string &, + bigint, bigint, int &, int &, Error *, LAMMPS *, int); +template void utils::bounds_typelabel<>(const char *, int, const std::string &, + bigint, bigint, long &, long &, Error *, LAMMPS *, int); +template void utils::bounds_typelabel<>(const char *, int, const std::string &, + bigint, bigint, long long &, long long &, Error *, LAMMPS *, int); // clang-format on /* ------------------------------------------------------------------------- diff --git a/src/utils.h b/src/utils.h index 383927ad34..01264bdb8e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -331,6 +331,19 @@ namespace utils { void bounds(const char *file, int line, const std::string &str, bigint nmin, bigint nmax, TYPE &nlo, TYPE &nhi, Error *error); + /*! Same as bounds(), but supports type labels + * + * This functions adds the following case: + * + * - a single type label, typestr: nlo = nhi = label2type(typestr) + * + * \param lmp pointer to top-level LAMMPS class instance + * \param mode select labelmap using constants from Atom class */ + + template + void bounds_typelabel(const char *file, int line, const std::string &str, bigint nmin, bigint nmax, + TYPE &nlo, TYPE &nhi, Error *error, LAMMPS *lmp, int mode); + /*! Expand list of arguments when containing fix/compute wildcards * * This function searches the list of arguments in *arg* for strings From c324afeaf1afc243aa36148cfab24a7207a34d99 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 15:50:41 -0400 Subject: [PATCH 104/313] fix/adapt/fep: use bounds_typelabel --- src/FEP/fix_adapt_fep.cpp | 27 ++++++--------------------- src/fix_adapt.cpp | 36 ++++++++---------------------------- 2 files changed, 14 insertions(+), 49 deletions(-) diff --git a/src/FEP/fix_adapt_fep.cpp b/src/FEP/fix_adapt_fep.cpp index f457a12adf..668a3c2260 100644 --- a/src/FEP/fix_adapt_fep.cpp +++ b/src/FEP/fix_adapt_fep.cpp @@ -91,20 +91,10 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].which = PAIR; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; - typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); - delete[] typestr; + utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ATOM); + utils::bounds_typelabel(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error, lmp, Atom::ATOM); // switch i,j if i > j, if wildcards were not used @@ -140,13 +130,8 @@ FixAdaptFEP::FixAdaptFEP(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].aparam = CHARGE; chgflag = 1; } else error->all(FLERR,"Illegal fix adapt/fep command"); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+2], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+2], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds_typelabel(FLERR, arg[iarg+2], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ATOM); if (utils::strmatch(arg[iarg+3],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+3]+2); } else error->all(FLERR,"Illegal fix adapt/fep command"); diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index d68c5f368a..d1fa4b3312 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -99,20 +99,10 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].pair = nullptr; adapt[nadapt].pstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].pparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->ntypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; - typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+4], Atom::ATOM, lmp); - if (typestr) - adapt[nadapt].jlo = adapt[nadapt].jhi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+4], 1, atom->ntypes, - adapt[nadapt].jlo, adapt[nadapt].jhi, error); - delete[] typestr; + utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->ntypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ATOM); + utils::bounds_typelabel(FLERR, arg[iarg+4], 1, atom->ntypes, + adapt[nadapt].jlo, adapt[nadapt].jhi, error, lmp, Atom::ATOM); // switch i,j if i > j, if wildcards were not used @@ -136,13 +126,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].bond = nullptr; adapt[nadapt].bstyle = utils::strdup(arg[iarg+1]); adapt[nadapt].bparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::BOND, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->nbondtypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->nbondtypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::BOND); if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); @@ -154,13 +139,8 @@ FixAdapt::FixAdapt(LAMMPS *lmp, int narg, char **arg) : adapt[nadapt].angle = nullptr; adapt[nadapt].astyle = utils::strdup(arg[iarg+1]); adapt[nadapt].aparam = utils::strdup(arg[iarg+2]); - char *typestr = nullptr; - typestr = utils::expand_type(FLERR, arg[iarg+3], Atom::ANGLE, lmp); - if (typestr) - adapt[nadapt].ilo = adapt[nadapt].ihi = utils::inumeric(FLERR, typestr, false, lmp); - else utils::bounds(FLERR, arg[iarg+3], 1, atom->nangletypes, - adapt[nadapt].ilo, adapt[nadapt].ihi, error); - delete[] typestr; + utils::bounds_typelabel(FLERR, arg[iarg+3], 1, atom->nangletypes, + adapt[nadapt].ilo, adapt[nadapt].ihi, error, lmp, Atom::ANGLE); if (utils::strmatch(arg[iarg+4],"^v_")) { adapt[nadapt].var = utils::strdup(arg[iarg+4]+2); } else error->all(FLERR,"Argument #{} must be variable not {}", iarg+5, arg[iarg+4]); From f007be620a1e721875bece17d35679e2b03610c6 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 16:11:36 -0400 Subject: [PATCH 105/313] compute_rdf: direct type label support type label that is the same as the keyword ('cutoff') will break things. if syntax is otherwise 'correct', then will throw a syntax error. perhaps could run through typelabels to check first? --- doc/src/compute_rdf.rst | 22 ++++++++++++---------- src/compute_rdf.cpp | 18 ++++++++++++++---- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/doc/src/compute_rdf.rst b/doc/src/compute_rdf.rst index 85e758016e..1330c6f300 100644 --- a/doc/src/compute_rdf.rst +++ b/doc/src/compute_rdf.rst @@ -13,8 +13,8 @@ Syntax * ID, group-ID are documented in :doc:`compute ` command * rdf = style name of this compute command * Nbin = number of RDF bins -* itypeN = central atom type for Nth RDF histogram (see asterisk form below) -* jtypeN = distribution atom type for Nth RDF histogram (see asterisk form below) +* itypeN = central atom type for Nth RDF histogram (integer, type label, or asterisk form) +* jtypeN = distribution atom type for Nth RDF histogram (integer, type label, or asterisk form) * zero or more keyword/value pairs may be appended * keyword = *cutoff* @@ -96,14 +96,16 @@ is computed for :math:`g(r)` between all atom types. If one or more pairs are listed, then a separate histogram is generated for each *itype*,\ *jtype* pair. -The *itypeN* and *jtypeN* settings can be specified in one of two -ways. An explicit numeric value can be used, as in the fourth example -above. Or a wild-card asterisk can be used to specify a range of atom -types. This takes the form "\*" or "\*n" or "m\*" or "m\*n". If -:math:`N` is the number of atom types, then an asterisk with no numeric values -means all types from 1 to :math:`N`. A leading asterisk means all types from 1 -to n (inclusive). A trailing asterisk means all types from m to :math:`N` -(inclusive). A middle asterisk means all types from m to n (inclusive). +The *itypeN* and *jtypeN* settings can be specified in one of three +ways. One or both of the types in the I,J pair can be a +:doc:`type label `. Or an explicit numeric value can be +used, as in the fourth example above. Or a wild-card asterisk can be used +to specify a range of atom types. This takes the form "\*" or "\*n" or +"m\*" or "m\*n". If :math:`N` is the number of atom types, then an asterisk +with no numeric values means all types from 1 to :math:`N`. A leading +asterisk means all types from 1 to n (inclusive). A trailing asterisk +means all types from m to :math:`N` (inclusive). A middle asterisk means +all types from m to n (inclusive). If both *itypeN* and *jtypeN* are single values, as in the fourth example above, this means that a :math:`g(r)` is computed where atoms of type *itypeN* diff --git a/src/compute_rdf.cpp b/src/compute_rdf.cpp index 89f3c91017..d5639bbb34 100644 --- a/src/compute_rdf.cpp +++ b/src/compute_rdf.cpp @@ -102,10 +102,20 @@ ComputeRDF::ComputeRDF(LAMMPS *lmp, int narg, char **arg) : } else { iarg = 4; for (int ipair = 0; ipair < npairs; ipair++) { - utils::bounds(FLERR,arg[iarg],1,atom->ntypes,ilo[ipair],ihi[ipair],error); - utils::bounds(FLERR,arg[iarg+1],1,atom->ntypes,jlo[ipair],jhi[ipair],error); - if (ilo[ipair] > ihi[ipair] || jlo[ipair] > jhi[ipair]) - error->all(FLERR,"Illegal compute rdf command"); + utils::bounds_typelabel(FLERR, arg[iarg], 1, atom->ntypes, ilo[ipair], ihi[ipair], error, lmp, Atom::ATOM); + utils::bounds_typelabel(FLERR, arg[iarg+1], 1, atom->ntypes, jlo[ipair], jhi[ipair], error, lmp, Atom::ATOM); + + // switch i,j if i > j, if wildcards were not used + + if ( (ilo[ipair] == ihi[ipair]) && + (jlo[ipair] == jhi[ipair]) && + (ilo[ipair] > jlo[ipair]) ) { + jlo[ipair] = ihi[ipair]; + ilo[ipair] = jhi[ipair]; + ihi[ipair] = ilo[ipair]; + jhi[ipair] = jlo[ipair]; + } + iarg += 2; } } From fc32826cd7cdf509d34e25747c7a0ff1811ba348 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 16:44:24 -0400 Subject: [PATCH 106/313] more uses of bounds_typelabel --- src/atom.cpp | 10 +++------- src/set.cpp | 6 +----- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/atom.cpp b/src/atom.cpp index 7edf4760d2..c51be44d1d 100644 --- a/src/atom.cpp +++ b/src/atom.cpp @@ -1956,18 +1956,14 @@ void Atom::set_mass(const char *file, int line, int /*narg*/, char **arg) if (mass == nullptr) error->all(file,line, "Cannot set per-type atom mass for atom style {}", atom_style); - char *typestr = utils::expand_type(file, line, arg[0], Atom::ATOM, lmp); - const std::string str = typestr ? typestr : arg[0]; - delete[] typestr; - int lo, hi; - utils::bounds(file, line, str, 1, ntypes, lo, hi, error); + utils::bounds_typelabel(file, line, arg[0], 1, ntypes, lo, hi, error, lmp, Atom::ATOM); if ((lo < 1) || (hi > ntypes)) - error->all(file, line, "Invalid atom type {} for atom mass", str); + error->all(file, line, "Invalid atom type {} for atom mass", arg[0]); const double value = utils::numeric(FLERR, arg[1], false, lmp); if (value <= 0.0) - error->all(file, line, "Invalid atom mass value {} for type {}", value, str); + error->all(file, line, "Invalid atom mass value {} for type {}", value, arg[0]); for (int itype = lo; itype <= hi; itype++) { mass[itype] = value; diff --git a/src/set.cpp b/src/set.cpp index 5f06f18a42..1a81cd32ba 100644 --- a/src/set.cpp +++ b/src/set.cpp @@ -740,11 +740,7 @@ void Set::selection(int n) else select[i] = 0; } else if (style == TYPE_SELECT) { - if (char *typestr = utils::expand_type(FLERR, id, Atom::ATOM, lmp)) { - delete[] id; - id = typestr; - } - utils::bounds(FLERR,id,1,atom->ntypes,nlo,nhi,error); + utils::bounds_typelabel(FLERR,id,1,atom->ntypes,nlo,nhi,error,lmp,Atom::ATOM); int *type = atom->type; for (int i = 0; i < n; i++) From d1fe92c658dc3c34d84343e7620e6021177949b3 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 17:32:03 -0400 Subject: [PATCH 107/313] charge/regulation: direct type label support --- doc/src/fix_charge_regulation.rst | 11 +++++++---- src/MC/fix_charge_regulation.cpp | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/src/fix_charge_regulation.rst b/doc/src/fix_charge_regulation.rst index 091eeae417..fe77deb91e 100644 --- a/doc/src/fix_charge_regulation.rst +++ b/doc/src/fix_charge_regulation.rst @@ -13,8 +13,8 @@ Syntax * ID, group-ID are documented in fix command * charge/regulation = style name of this fix command -* cation_type = atom type of free cations -* anion_type = atom type of free anions +* cation_type = atom type of free cations (integer or type label) +* anion_type = atom type of free anions (integer or type label) * zero or more keyword/value pairs may be appended @@ -27,8 +27,8 @@ Syntax *pIp* value = activity (effective concentration) of free cations (in the -log10 representation) *pIm* value = activity (effective concentration) of free anions (in the -log10 representation) *pKs* value = solvent self-dissociation constant (in the -log10 representation) - *acid_type* = atom type of acid groups - *base_type* = atom type of base groups + *acid_type* = atom type of acid groups (integer or type label) + *base_type* = atom type of base groups (integer or type label) *lunit_nm* value = unit length used by LAMMPS (# in the units of nanometers) *temp* value = temperature *tempfixid* value = fix ID of temperature thermostat @@ -51,6 +51,9 @@ Examples fix chareg all charge/regulation 1 2 acid_type 3 base_type 4 pKa 5.0 pKb 6.0 pH 7.0 pIp 3.0 pIm 3.0 nevery 200 nmc 200 seed 123 tempfixid fT fix chareg all charge/regulation 1 2 pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0 + labelmap atom 1 H+ 2 OH- + fix chareg all charge/regulation H+ OH- pIp 3 pIm 3 onlysalt yes 2 -1 seed 123 tag yes temp 1.0 + Description """"""""""" diff --git a/src/MC/fix_charge_regulation.cpp b/src/MC/fix_charge_regulation.cpp index 4358513095..cd035781c8 100644 --- a/src/MC/fix_charge_regulation.cpp +++ b/src/MC/fix_charge_regulation.cpp @@ -97,8 +97,8 @@ FixChargeRegulation::FixChargeRegulation(LAMMPS *lmp, int narg, char **arg) : energy_stored = 0; // necessary to specify the free ion types - cation_type = utils::inumeric(FLERR, arg[3], false, lmp); - anion_type = utils::inumeric(FLERR, arg[4], false, lmp); + cation_type = utils::expand_type_int(FLERR, arg[3], Atom::ATOM, lmp); + anion_type = utils::expand_type_int(FLERR, arg[4], Atom::ATOM, lmp); // set defaults and read optional arguments options(narg - 5, &arg[5]); @@ -1398,11 +1398,11 @@ void FixChargeRegulation::options(int narg, char **arg) { iarg += 2; } else if (strcmp(arg[iarg], "acid_type") == 0) { if (iarg + 2 > narg) error->all(FLERR, "Illegal fix charge/regulation command"); - acid_type = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + acid_type = utils::expand_type_int(FLERR, arg[iarg + 1], Atom::ATOM, lmp); iarg += 2; } else if (strcmp(arg[iarg], "base_type") == 0) { if (iarg + 2 > narg) error->all(FLERR, "Illegal fix charge/regulation command"); - base_type = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + base_type = utils::expand_type_int(FLERR, arg[iarg + 1], Atom::ATOM, lmp); iarg += 2; } else if (strcmp(arg[iarg], "pH") == 0) { if (iarg + 2 > narg) error->all(FLERR, "Illegal fix charge/regulation command"); From def7c40ece1fd064c9db6d9cd5db1f585c40e781 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Sun, 12 May 2024 18:40:48 -0400 Subject: [PATCH 108/313] add citeme --- src/label_map.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/label_map.cpp b/src/label_map.cpp index 67b1ae480d..52bf3f92f2 100644 --- a/src/label_map.cpp +++ b/src/label_map.cpp @@ -14,6 +14,7 @@ #include "label_map.h" #include "atom.h" +#include "citeme.h" #include "comm.h" #include "error.h" #include "force.h" @@ -22,6 +23,19 @@ using namespace LAMMPS_NS; +static const char cite_type_label_framework[] = + "Type Label Framework: https://doi.org/10.1021/acs.jpcb.3c08419\n\n" + "@Article{Gissinger24,\n" + " author = {Jacob R. Gissinger, Ilia Nikiforov, Yaser Afshar, Brendon Waters, Moon-ki Choi," + " Daniel S. Karls, Alexander Stukowski, Wonpil Im, Hendrik Heinz, Axel Kohlmeyer, and Ellad B. Tadmor},\n" + " title = {Type Label Framework for Bonded Force Fields in LAMMPS},\n" + " journal = {J. Phys. Chem. B},\n" + " year = 2024,\n" + " volume = 128,\n" + " number = 13,\n" + " pages = {3282–-3297}\n" + "}\n\n"; + /* ---------------------------------------------------------------------- */ LabelMap::LabelMap(LAMMPS *_lmp, int _natomtypes, int _nbondtypes, int _nangletypes, @@ -30,6 +44,8 @@ LabelMap::LabelMap(LAMMPS *_lmp, int _natomtypes, int _nbondtypes, int _nanglety natomtypes(_natomtypes), nbondtypes(_nbondtypes), nangletypes(_nangletypes), ndihedraltypes(_ndihedraltypes), nimpropertypes(_nimpropertypes) { + if (lmp->citeme) lmp->citeme->add(cite_type_label_framework); + lmap2lmap.atom = lmap2lmap.bond = lmap2lmap.angle = lmap2lmap.dihedral = lmap2lmap.improper = nullptr; reset_type_labels(); From b3fc34f2400a660ed0a04d4557659d1ea653ac2b Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Wed, 1 May 2024 09:10:30 +0200 Subject: [PATCH 109/313] Try a (dirty) fix to the i-pi neighbor list update problem --- src/MISC/fix_ipi.cpp | 33 ++++++++++++++++++++++++++++++--- src/neighbor.cpp | 7 ++++++- src/neighbor.h | 7 ++++--- 3 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 30a6fe893d..f9b98c0a2d 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -30,6 +30,7 @@ #include "update.h" #include +#include using namespace LAMMPS_NS; using namespace FixConst; @@ -363,10 +364,36 @@ void FixIPI::initial_integrate(int /*vflag*/) // has to be be done before invoking Irregular::migrate_atoms() // since it requires atoms be inside simulation box + + if (neighbor->ncalls == 0) { + if (domain->triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - domain->reset_box(); - if (domain->triclinic) domain->lamda2x(atom->nlocal); + domain->pbc(); + domain->reset_box(); + if (domain->triclinic) domain->lamda2x(atom->nlocal); + } else { // for some reason this fails if it's called on the first step. + // "unwraps" the trajectory because we have no guarantee of what has happened + // server-side to the atoms folding + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] -= neighbor->xhold[i][0]; + x[i][1] -= neighbor->xhold[i][1]; + x[i][2] -= neighbor->xhold[i][2]; + } + } + if (domain->triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + domain->reset_box(); + if (domain->triclinic) domain->lamda2x(atom->nlocal); + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += neighbor->xhold[i][0]; + x[i][1] += neighbor->xhold[i][1]; + x[i][2] += neighbor->xhold[i][2]; + } + } + } + /**/ // move atoms to new processors via irregular() // only needed if migrate_check() says an atom moves to far diff --git a/src/neighbor.cpp b/src/neighbor.cpp index c5cbe0e885..10b2542ba6 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -53,6 +53,7 @@ #include #include +#include using namespace LAMMPS_NS; using namespace NeighConst; @@ -2384,12 +2385,16 @@ int Neighbor::check_distance() dely = x[i][1] - xhold[i][1]; delz = x[i][2] - xhold[i][2]; rsq = delx*delx + dely*dely + delz*delz; - if (rsq > deltasq) flag = 1; + if (rsq > deltasq) { + std::cout<<"jump: "<< rsq< Date: Wed, 1 May 2024 16:09:41 +0200 Subject: [PATCH 110/313] Minimally-invasive implementation of the ipi-side modification --- src/MISC/fix_ipi.cpp | 45 ++++++++++++++++++++++++-------------------- src/neighbor.cpp | 17 +++++++++++------ src/neighbor.h | 8 ++++---- 3 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index f9b98c0a2d..54a1db1dcc 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -365,36 +365,41 @@ void FixIPI::initial_integrate(int /*vflag*/) // since it requires atoms be inside simulation box - if (neighbor->ncalls == 0) { - - if (domain->triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - domain->reset_box(); - if (domain->triclinic) domain->lamda2x(atom->nlocal); - } else { // for some reason this fails if it's called on the first step. - // "unwraps" the trajectory because we have no guarantee of what has happened - // server-side to the atoms folding - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] -= neighbor->xhold[i][0]; - x[i][1] -= neighbor->xhold[i][1]; - x[i][2] -= neighbor->xhold[i][2]; - } - } + if (neighbor->ncalls == 0) { + // just fold coordinates at the first step if (domain->triclinic) domain->x2lamda(atom->nlocal); domain->pbc(); domain->reset_box(); if (domain->triclinic) domain->lamda2x(atom->nlocal); + } else { + // "unwraps" the trajectory because we have no guarantee of what has + // happened server-side to the atoms folding, and we want to have continuous + // trajectories to build NL in a meaningful way + + auto xhold = neighbor->get_xhold(); for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { - x[i][0] += neighbor->xhold[i][0]; - x[i][1] += neighbor->xhold[i][1]; - x[i][2] += neighbor->xhold[i][2]; + x[i][0] -= xhold[i][0]; + x[i][1] -= xhold[i][1]; + x[i][2] -= xhold[i][2]; + } + } + // applies PBC to the displacements + if (domain->triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + domain->reset_box(); + if (domain->triclinic) domain->lamda2x(atom->nlocal); + // "unwrapped" positions + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + x[i][0] += xhold[i][0]; + x[i][1] += xhold[i][1]; + x[i][2] += xhold[i][2]; } } } - /**/ + std::cout<<"NL stats: "<ago<<" since last update\n"; // move atoms to new processors via irregular() // only needed if migrate_check() says an atom moves to far if (domain->triclinic) domain->x2lamda(atom->nlocal); diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 10b2542ba6..ccff846edd 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -53,7 +53,6 @@ #include #include -#include using namespace LAMMPS_NS; using namespace NeighConst; @@ -2385,16 +2384,12 @@ int Neighbor::check_distance() dely = x[i][1] - xhold[i][1]; delz = x[i][2] - xhold[i][2]; rsq = delx*delx + dely*dely + delz*delz; - if (rsq > deltasq) { - std::cout<<"jump: "<< rsq< deltasq) flag = 1; } int flagall; MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_MAX,world); if (flagall && ago == MAX(every,delay)) ndanger++; - std::cout<<" neigh update flags "<< flagall<< " "<< ago << " "<all(FLERR, "trying to access uninitialized xhold list"); + } + return xhold; +} + /* ---------------------------------------------------------------------- add pair of atoms to bondlist array will only persist until the next neighbor build diff --git a/src/neighbor.h b/src/neighbor.h index 24fcb2b993..8533fe5efa 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -58,8 +58,7 @@ class Neighbor : protected Pointers { double *bboxlo, *bboxhi; // ptrs to full domain bounding box // different for orthog vs triclinic - double **xhold; // atom coords at last neighbor build - int maxhold; // size of xhold array + // exclusion info, used by NeighPair int exclude; // 0 if no type/group exclusions, 1 if yes @@ -176,6 +175,7 @@ class Neighbor : protected Pointers { double memory_usage(); bigint last_setup_bins; // step of last neighbor::setup_bins() call + double **get_xhold(); // access the latest-computed neighbor list positions protected: int me, nprocs; @@ -191,8 +191,8 @@ class Neighbor : protected Pointers { double triggersq; // trigger = build when atom moves this dist - //double **xhold; // atom coords at last neighbor build - //int maxhold; // size of xhold array + double **xhold; // atom coords at last neighbor build + int maxhold; // size of xhold array int boxcheck; // 1 if need to store box size double boxlo_hold[3], boxhi_hold[3]; // box size at last neighbor build From fe19a7efb5b055a22ae449c90913be5131415a87 Mon Sep 17 00:00:00 2001 From: Davide Tisi <47503434+DavideTisi@users.noreply.github.com> Date: Wed, 1 May 2024 16:12:28 +0200 Subject: [PATCH 111/313] disable Nagle's algorithm for internet socket --- src/MISC/fix_ipi.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 54a1db1dcc..bc2d4b99e9 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -49,6 +49,7 @@ using namespace FixConst; #ifndef _WIN32 #include #include +#include #include #include #include @@ -79,7 +80,7 @@ static void open_socket(int &sockfd, int inet, int port, char *host, Error *erro error: pointer to a LAMMPS Error object */ { - int ai_err; + int ai_err,flagNagle; #ifdef _WIN32 error->one(FLERR, "i-PI socket implementation requires UNIX environment"); @@ -101,6 +102,11 @@ static void open_socket(int &sockfd, int inet, int port, char *host, Error *erro sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); if (sockfd < 0) error->one(FLERR, "Error creating socket for fix ipi"); + // set TCP_NODELAY=1 to disable Nagle's algorithm as it slows down the small transactions for i-PI + flagNagle = 1; + int result_TCP = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&flagNagle, sizeof(int)); + if (result_TCP < 0) { perror("Error setting TCP_NODELAY"); } + // makes connection if (connect(sockfd, res->ai_addr, res->ai_addrlen) < 0) error->one(FLERR, "Error opening INET socket: wrong port or server unreachable"); From ad90c9836f50a4a677cd900bc3760ca65240cea9 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Wed, 1 May 2024 17:20:53 +0200 Subject: [PATCH 112/313] Just some additional comments, and removed debug output --- src/MISC/fix_ipi.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index bc2d4b99e9..8f4e58dcf6 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -369,8 +369,6 @@ void FixIPI::initial_integrate(int /*vflag*/) // ensure atoms are in current box & update box via shrink-wrap // has to be be done before invoking Irregular::migrate_atoms() // since it requires atoms be inside simulation box - - if (neighbor->ncalls == 0) { // just fold coordinates at the first step if (domain->triclinic) domain->x2lamda(atom->nlocal); @@ -380,7 +378,7 @@ void FixIPI::initial_integrate(int /*vflag*/) } else { // "unwraps" the trajectory because we have no guarantee of what has // happened server-side to the atoms folding, and we want to have continuous - // trajectories to build NL in a meaningful way + // trajectories to build NL in a meaningful way and as rarely as possible auto xhold = neighbor->get_xhold(); for (int i = 0; i < nlocal; i++) { @@ -395,7 +393,7 @@ void FixIPI::initial_integrate(int /*vflag*/) domain->pbc(); domain->reset_box(); if (domain->triclinic) domain->lamda2x(atom->nlocal); - // "unwrapped" positions + // recovers "unwrapped" positions for (int i = 0; i < nlocal; i++) { if (mask[i] & groupbit) { x[i][0] += xhold[i][0]; @@ -405,7 +403,6 @@ void FixIPI::initial_integrate(int /*vflag*/) } } - std::cout<<"NL stats: "<ago<<" since last update\n"; // move atoms to new processors via irregular() // only needed if migrate_check() says an atom moves to far if (domain->triclinic) domain->x2lamda(atom->nlocal); @@ -490,6 +487,7 @@ void FixIPI::final_integrate() retstr[0]=0; if (master) { + // check for new messages while (true) { readbuffer(ipisock, header, MSGLEN, error); header[MSGLEN]=0; @@ -502,6 +500,7 @@ void FixIPI::final_integrate() error->one(FLERR, "Got EXIT message from i-PI. Now leaving!"); if (strcmp(header,"GETFORCE ") == 0) { + // return force and energy data writebuffer(ipisock,"FORCEREADY ",MSGLEN, error); writebuffer(ipisock,(char*) &pot,8, error); writebuffer(ipisock,(char*) &nat,4, error); @@ -515,6 +514,4 @@ void FixIPI::final_integrate() } hasdata=0; -} - - +} \ No newline at end of file From 7b728cd4340312e0606a17d366050c34aa67d887 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Wed, 1 May 2024 20:00:21 +0200 Subject: [PATCH 113/313] No need to go through the whole list if one atom has moved enough to trigger re-compute of the NL --- src/neighbor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/neighbor.cpp b/src/neighbor.cpp index ccff846edd..f3390b49fe 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2384,7 +2384,7 @@ int Neighbor::check_distance() dely = x[i][1] - xhold[i][1]; delz = x[i][2] - xhold[i][2]; rsq = delx*delx + dely*dely + delz*delz; - if (rsq > deltasq) flag = 1; + if (rsq > deltasq) { flag = 1; break; } } int flagall; From bc38b559418a5ab2224b3c73740a6743704bfc2e Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Thu, 2 May 2024 08:42:53 +0200 Subject: [PATCH 114/313] Removed iostream import Leftover from debugging output --- src/MISC/fix_ipi.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 8f4e58dcf6..dc75aca8e1 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -30,7 +30,6 @@ #include "update.h" #include -#include using namespace LAMMPS_NS; using namespace FixConst; @@ -514,4 +513,4 @@ void FixIPI::final_integrate() } hasdata=0; -} \ No newline at end of file +} From 2dc5931829ca6886b657220751f7820f47c4aa5d Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Mon, 13 May 2024 22:34:21 +0200 Subject: [PATCH 115/313] Fix whitespace --- src/MISC/fix_ipi.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index dc75aca8e1..43a6ae03bb 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -368,14 +368,14 @@ void FixIPI::initial_integrate(int /*vflag*/) // ensure atoms are in current box & update box via shrink-wrap // has to be be done before invoking Irregular::migrate_atoms() // since it requires atoms be inside simulation box - if (neighbor->ncalls == 0) { + if (neighbor->ncalls == 0) { // just fold coordinates at the first step if (domain->triclinic) domain->x2lamda(atom->nlocal); domain->pbc(); domain->reset_box(); if (domain->triclinic) domain->lamda2x(atom->nlocal); - } else { - // "unwraps" the trajectory because we have no guarantee of what has + } else { + // "unwraps" the trajectory because we have no guarantee of what has // happened server-side to the atoms folding, and we want to have continuous // trajectories to build NL in a meaningful way and as rarely as possible From 4302d658113059d4222c9d8503c31de0b89aeb3c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 13 May 2024 20:19:50 -0400 Subject: [PATCH 116/313] fix spelling --- doc/src/pair_uf3.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/pair_uf3.rst b/doc/src/pair_uf3.rst index d89fdb21bf..ce07e2206f 100644 --- a/doc/src/pair_uf3.rst +++ b/doc/src/pair_uf3.rst @@ -75,7 +75,7 @@ As an example, if a LAMMPS simulation contains 2 atom types (elements pair_style uf3 3 pair_coeff * * AB.uf3 A B -The AB.uf3 file should conatin all two-body (A-A, A-B, B-B) and three-body +The AB.uf3 file should contain all two-body (A-A, A-B, B-B) and three-body (A-A-A, A-A-B, A-B-B, B-A-A, B-A-B, B-B-B). If a value of "2" is specified in the :code:`pair_style uf3` command, From 17c099488af08e7b57e32438730b4326cdcaaa2b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 13 May 2024 20:20:03 -0400 Subject: [PATCH 117/313] remove unused variables --- src/replicate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/replicate.cpp b/src/replicate.cpp index e07c7d9a26..4773b731bc 100644 --- a/src/replicate.cpp +++ b/src/replicate.cpp @@ -45,7 +45,7 @@ Replicate::Replicate(LAMMPS *lmp) : Command(lmp) {} void Replicate::command(int narg, char **arg) { - int i,j,m,n; + int i,n; if (domain->box_exist == 0) error->all(FLERR,"Replicate command before simulation box is defined"); From 1f52d1769de6b64901778d1ed9a8fe2999beeae5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 13 May 2024 20:29:20 -0400 Subject: [PATCH 118/313] update ML-UF3 example --- examples/PACKAGES/uf3/Nb.uf3 | 1 + examples/PACKAGES/uf3/README.md | 4 - examples/PACKAGES/uf3/W_W.uf3 | 7 -- examples/PACKAGES/uf3/W_W_W.uf3 | 89 ------------- examples/PACKAGES/uf3/in.uf3.3b.W | 47 ------- .../PACKAGES/uf3/{in.uf3.2b.W => in.uf3.Nb} | 8 +- .../PACKAGES/uf3/log.13May24.Nb.uf3.g++.1 | 118 ++++++++++++++++++ .../PACKAGES/uf3/log.13May24.Nb.uf3.g++.4 | 118 ++++++++++++++++++ .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 | 117 ----------------- .../PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 | 117 ----------------- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 | 117 ----------------- .../PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 | 117 ----------------- 12 files changed, 241 insertions(+), 619 deletions(-) create mode 120000 examples/PACKAGES/uf3/Nb.uf3 delete mode 100644 examples/PACKAGES/uf3/README.md delete mode 100644 examples/PACKAGES/uf3/W_W.uf3 delete mode 100644 examples/PACKAGES/uf3/W_W_W.uf3 delete mode 100644 examples/PACKAGES/uf3/in.uf3.3b.W rename examples/PACKAGES/uf3/{in.uf3.2b.W => in.uf3.Nb} (88%) create mode 100644 examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.1 create mode 100644 examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.4 delete mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 delete mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 delete mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 delete mode 100644 examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 diff --git a/examples/PACKAGES/uf3/Nb.uf3 b/examples/PACKAGES/uf3/Nb.uf3 new file mode 120000 index 0000000000..cb0fdd480d --- /dev/null +++ b/examples/PACKAGES/uf3/Nb.uf3 @@ -0,0 +1 @@ +../../../potentials/Nb.uf3 \ No newline at end of file diff --git a/examples/PACKAGES/uf3/README.md b/examples/PACKAGES/uf3/README.md deleted file mode 100644 index cfbe0b6cc2..0000000000 --- a/examples/PACKAGES/uf3/README.md +++ /dev/null @@ -1,4 +0,0 @@ -This directory contains a variety of tests for the ML-UF3 package. These include: - -in.uf3.3b.W # UF3 2-body and 3-body potential -in.uf3.2b.W # UF3 2-body potential diff --git a/examples/PACKAGES/uf3/W_W.uf3 b/examples/PACKAGES/uf3/W_W.uf3 deleted file mode 100644 index 4197457323..0000000000 --- a/examples/PACKAGES/uf3/W_W.uf3 +++ /dev/null @@ -1,7 +0,0 @@ -#UF3 POT -2B 0 3 uk -5.5 22 -0.001 0.001 0.001 0.001 0.36759999999999998 0.73419999999999996 1.1007999999999998 1.4673999999999998 1.8339999999999999 2.2005999999999997 2.5671999999999997 2.9337999999999997 3.3003999999999998 3.6669999999999998 4.0335999999999999 4.4001999999999999 4.7667999999999999 5.1334 5.5 5.5 5.5 5.5 -18 -85.256465889606673 85.256465889606673 60.118514370108457 39.372994322346095 23.019905746319598 11.095292589050336 2.5770289203919474 -0.21591409154943711 -0.41582603147952274 -0.29361205978352245 -0.23467230507950282 -0.13083777191249607 -0.031024404500506326 -0.059144784016542738 -0.037145211195670137 0 0 0 -# diff --git a/examples/PACKAGES/uf3/W_W_W.uf3 b/examples/PACKAGES/uf3/W_W_W.uf3 deleted file mode 100644 index b0b9fd5542..0000000000 --- a/examples/PACKAGES/uf3/W_W_W.uf3 +++ /dev/null @@ -1,89 +0,0 @@ -#UF3 POT -3B 0 3 uk -7.0 3.5 3.5 19 13 13 -1.5 1.5 1.5 1.5 1.9583333333333333 2.4166666666666665 2.875 3.333333333333333 3.7916666666666665 4.25 4.708333333333333 5.1666666666666661 5.625 6.083333333333333 6.5416666666666661 7 7 7 7 -1.5 1.5 1.5 1.5 1.8333333333333333 2.1666666666666665 2.5 2.833333333333333 3.1666666666666665 3.5 3.5 3.5 3.5 -1.5 1.5 1.5 1.5 1.8333333333333333 2.1666666666666665 2.5 2.833333333333333 3.1666666666666665 3.5 3.5 3.5 3.5 -9 9 15 --1.0025267383014886e-06 1.627666892216261e-10 8.48457178601592e-09 1.0410120456668556e-08 1.1330088302187643e-06 1.4224457260740182e-05 3.749471162873949e-05 3.695233634472074e-05 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.922778833696604e-05 -1.0222423928319826e-06 -4.8075020979943344e-05 -3.8518708184701e-05 -9.794643241404816e-06 -5.109554485113297e-07 -4.104591531909916e-10 5.419385825688335e-09 2.3261619203718816e-06 0.0 0.0 0.0 0.0 0.0 0.0 -2.829068261701631e-05 3.3565662462635585e-05 -4.4282774329572976e-05 5.3019338472701156e-05 1.656981200092865e-05 5.764723793849365e-06 8.90212763080714e-06 -1.266718085517006e-06 2.431925564724538e-06 -3.3416793274446366e-07 0.0 0.0 0.0 0.0 0.0 -9.661425891180097e-09 1.1180525909838732e-07 7.372128540386131e-06 9.39083445715028e-06 1.0838653682096786e-05 9.806075321172179e-05 7.23071321840456e-05 0.00011393368280907902 7.532201192649856e-05 1.4915718900782886e-05 0.0 0.0 0.0 0.0 0.0 -4.674109331563019e-07 -5.406616138544008e-09 2.0217516565542138e-08 5.815480232140697e-06 2.377543599749233e-05 4.214830983861595e-05 -7.397778428926203e-05 7.061700585974997e-05 3.398811616466058e-05 3.0440209444922143e-05 0.00013514584901612643 0.0 0.0 0.0 0.0 --2.18344999249825e-05 -0.00011697904895508256 -5.553581955175406e-06 2.658838454117769e-08 1.2146153008512734e-05 1.918298817375017e-05 5.40154814815751e-05 1.2944187401636162e-05 3.710536690671586e-05 1.6795050072301748e-05 -7.229556489685409e-06 8.543467581763247e-06 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.922778833696604e-05 -1.0222423928319826e-06 -4.8075020979943344e-05 -3.8518708184701e-05 -9.794643241404816e-06 -5.109554485113297e-07 -4.104591531909916e-10 5.419385825688335e-09 2.3261619203718816e-06 0.0 0.0 0.0 0.0 0.0 0.0 -4.7777593982974866e-05 2.1830415880551608e-05 -8.74161436707018e-06 7.718518436280754e-09 3.872620009304499e-06 2.2808275890118977e-05 4.9693195966817054e-05 -5.792733170014431e-06 4.574471594251372e-05 -2.840624725005251e-05 0.0 0.0 0.0 0.0 0.0 --2.983543176137801e-05 4.9033674735689904e-05 4.195810226183578e-05 0.00010403045298571696 0.0003809288520722337 3.373314734861335e-05 1.0875278462846613e-05 2.680082116524925e-05 2.6236988936225364e-05 3.6338704048890435e-06 0.0 0.0 0.0 0.0 0.0 -2.1399512390776296e-05 2.7931318963336216e-05 1.601611374550643e-05 0.0011462578563508437 0.0020096052304490785 0.0010339536769749804 0.001014125101157229 0.00021102390605096824 -9.581571365103867e-06 -2.280019726143644e-05 3.57351467975471e-07 0.0 0.0 0.0 0.0 -6.2467013661098965e-06 2.658299496065299e-05 0.0007087760404542255 -0.002278488280232273 -0.007044271575650293 0.0038614975616579586 0.009260853457130498 -0.0010473278276317726 -8.516349321648054e-05 0.00020262630262751473 1.3414729868362445e-06 7.953262907187799e-08 0.0 0.0 0.0 -2.3603382351924323e-06 7.146280072503116e-05 0.0012361202483760594 -0.005734465078354871 -0.017135562936976125 -0.0016664758722632735 0.010195949308015286 -0.005412690557758046 -0.0029107216230642853 -0.0007612908343076258 -0.00013449226099999524 2.1468761472671134e-05 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -2.829068261701631e-05 3.3565662462635585e-05 -4.4282774329572976e-05 5.3019338472701156e-05 1.656981200092865e-05 5.764723793849365e-06 8.90212763080714e-06 -1.266718085517006e-06 2.431925564724538e-06 -3.3416793274446366e-07 0.0 0.0 0.0 0.0 0.0 --2.983543176137801e-05 4.9033674735689904e-05 4.195810226183578e-05 0.00010403045298571696 0.0003809288520722337 3.373314734861335e-05 1.0875278462846613e-05 2.680082116524925e-05 2.6236988936225364e-05 3.6338704048890435e-06 0.0 0.0 0.0 0.0 0.0 -4.805582975622838e-05 3.5904852202535306e-05 0.0001861581391418004 0.011742061168666256 0.024776619721352023 0.009905830782079064 0.001165275555230131 0.0004071734306161239 0.00037033988296356686 4.258576293935207e-05 -1.0503156955159468e-06 0.0 0.0 0.0 0.0 --5.680777858210279e-07 7.084011901144194e-05 0.0050124193537796876 0.1029510036679177 0.24007141064120838 0.17886074568759117 0.03778564255583381 -0.01538608134214139 -0.01488601265585909 -0.005013137591006775 1.477967512985198e-07 2.827576677896298e-05 0.0 0.0 0.0 -3.4701391129480595e-05 0.005680635772167662 0.07108357438929552 0.18745843365735923 0.18473391598372302 0.2461411417071668 -0.005111666129467331 -0.24038059036230178 -0.19258370027930355 -0.048958604017684836 -0.0025501911244683846 -4.982008439539256e-06 0.0 0.0 0.0 -1.8054960278101902e-05 0.011611823828717463 0.14139350699353365 0.1678085431015684 -0.22152577092526715 0.26507903411379746 0.08279760718466518 0.02879361559120084 0.04448600527937973 -0.006339073225905362 0.012182164968354765 -0.0016647733469859114 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -9.661425891180097e-09 1.1180525909838732e-07 7.372128540386131e-06 9.39083445715028e-06 1.0838653682096786e-05 9.806075321172179e-05 7.23071321840456e-05 0.00011393368280907902 7.532201192649856e-05 1.4915718900782886e-05 0.0 0.0 0.0 0.0 0.0 -2.1399512390776296e-05 2.7931318963336216e-05 1.601611374550643e-05 0.0011462578563508437 0.0020096052304490785 0.0010339536769749804 0.001014125101157229 0.00021102390605096824 -9.581571365103867e-06 -2.280019726143644e-05 3.57351467975471e-07 0.0 0.0 0.0 0.0 --5.680777858210279e-07 7.084011901144194e-05 0.0050124193537796876 0.1029510036679177 0.24007141064120838 0.17886074568759117 0.03778564255583381 -0.01538608134214139 -0.01488601265585909 -0.005013137591006775 1.477967512985198e-07 2.827576677896298e-05 0.0 0.0 0.0 -3.224364873093737e-05 0.0005926077146340155 0.03682711928362166 0.046898795979650645 0.054125869772576704 0.49020499621758107 0.3614418794239106 0.569703720925391 0.37654073726442117 0.07453613145477757 0.002320760953344357 -4.1320810202123745e-05 0.0 0.0 0.0 -7.181321030642065e-05 0.029059269505937943 0.11884075783303522 0.21076878762972284 -0.36996025259611676 0.35312700844142586 0.16990097184555128 0.15210775765373416 0.6757140775652752 -0.10922320044264704 -0.5849697059462919 -0.027759887396949002 0.0 0.0 0.0 -9.734779590447442e-05 0.06072685888500135 0.09586373042400446 0.2700889438647233 0.06469057221256519 0.1854847883254132 0.08392153868089386 -0.03626027544891736 0.04232832520121794 0.23849583983886427 0.10911730115168922 -0.04380214407208333 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -4.674109331563019e-07 -5.406616138544008e-09 2.0217516565542138e-08 5.815480232140697e-06 2.377543599749233e-05 4.214830983861595e-05 -7.397778428926203e-05 7.061700585974997e-05 3.398811616466058e-05 3.0440209444922143e-05 0.00013514584901612643 0.0 0.0 0.0 0.0 -6.2467013661098965e-06 2.658299496065299e-05 0.0007087760404542255 -0.002278488280232273 -0.007044271575650293 0.0038614975616579586 0.009260853457130498 -0.0010473278276317726 -8.516349321648054e-05 0.00020262630262751473 1.3414729868362445e-06 7.953262907187799e-08 0.0 0.0 0.0 -3.4701391129480595e-05 0.005680635772167662 0.07108357438929552 0.18745843365735923 0.18473391598372302 0.2461411417071668 -0.005111666129467331 -0.24038059036230178 -0.19258370027930355 -0.048958604017684836 -0.0025501911244683846 -4.982008439539256e-06 0.0 0.0 0.0 -7.181321030642065e-05 0.029059269505937943 0.11884075783303522 0.21076878762972284 -0.36996025259611676 0.35312700844142586 0.16990097184555128 0.15210775765373416 0.6757140775652752 -0.10922320044264704 -0.5849697059462919 -0.027759887396949002 0.0 0.0 0.0 -3.8792902483003914e-05 0.01940944659869733 0.11401272918676479 0.24845559032094336 -0.029040137137018487 0.22760022061135138 -0.14408030764137164 -0.1502303415258775 0.24414290246285578 0.20048840049956973 -0.3098919852331769 0.38455675655513366 0.0 0.0 0.0 -0.0001449154156948679 0.05388868537335966 0.1340445791122114 0.1304729995514306 0.02041924003827766 0.11401975265164792 0.13440972558465583 -0.056806908474571434 0.03945347719095876 0.02504259931146615 0.04957547514580214 0.01854515348232565 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 --2.18344999249825e-05 -0.00011697904895508256 -5.553581955175406e-06 2.658838454117769e-08 1.2146153008512734e-05 1.918298817375017e-05 5.40154814815751e-05 1.2944187401636162e-05 3.710536690671586e-05 1.6795050072301748e-05 -7.229556489685409e-06 8.543467581763247e-06 0.0 0.0 0.0 -2.3603382351924323e-06 7.146280072503116e-05 0.0012361202483760594 -0.005734465078354871 -0.017135562936976125 -0.0016664758722632735 0.010195949308015286 -0.005412690557758046 -0.0029107216230642853 -0.0007612908343076258 -0.00013449226099999524 2.1468761472671134e-05 0.0 0.0 0.0 -1.8054960278101902e-05 0.011611823828717463 0.14139350699353365 0.1678085431015684 -0.22152577092526715 0.26507903411379746 0.08279760718466518 0.02879361559120084 0.04448600527937973 -0.006339073225905362 0.012182164968354765 -0.0016647733469859114 0.0 0.0 0.0 -9.734779590447442e-05 0.06072685888500135 0.09586373042400446 0.2700889438647233 0.06469057221256519 0.1854847883254132 0.08392153868089386 -0.03626027544891736 0.04232832520121794 0.23849583983886427 0.10911730115168922 -0.04380214407208333 0.0 0.0 0.0 -0.0001449154156948679 0.05388868537335966 0.1340445791122114 0.1304729995514306 0.02041924003827766 0.11401975265164792 0.13440972558465583 -0.056806908474571434 0.03945347719095876 0.02504259931146615 0.04957547514580214 0.01854515348232565 0.0 0.0 0.0 -5.588250079169304e-05 -0.012017079745903034 -0.0008295411205340048 0.00043274236043781584 0.036933605134660964 -0.017759680455812197 0.15248826375477179 -0.022974467887332546 0.005116007779072725 -0.01249692329646853 -0.12288470938617652 0.022731129576009593 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -# diff --git a/examples/PACKAGES/uf3/in.uf3.3b.W b/examples/PACKAGES/uf3/in.uf3.3b.W deleted file mode 100644 index 9ca29293b5..0000000000 --- a/examples/PACKAGES/uf3/in.uf3.3b.W +++ /dev/null @@ -1,47 +0,0 @@ -# Demonstrate UF3 W potential - -# # ============= Initialize simulation - -variable nsteps index 100 -variable nrep equal 4 -variable a equal 3.187 -units metal - -# generate the box and atom positions using a BCC lattice - -variable nx equal ${nrep} -variable ny equal ${nrep} -variable nz equal ${nrep} - -boundary p p p - -lattice bcc $a -region box block 0 ${nx} 0 ${ny} 0 ${nz} -create_box 1 box -create_atoms 1 box - -mass 1 183.84 - -# # ============= set pair style - -pair_style uf3 3 -pair_coeff 1 1 W_W.uf3 -pair_coeff 3b 1 1 1 W_W_W.uf3 - - -# # ============= Setup output - -thermo 10 -thermo_modify norm yes - -# # ============= Set up NVE run - -timestep 0.5e-3 -neighbor 1.0 bin -neigh_modify once no every 1 delay 0 check yes - -# # ============= Run MD - -velocity all create 300.0 2367804 loop geom -fix 1 all nve -run ${nsteps} diff --git a/examples/PACKAGES/uf3/in.uf3.2b.W b/examples/PACKAGES/uf3/in.uf3.Nb similarity index 88% rename from examples/PACKAGES/uf3/in.uf3.2b.W rename to examples/PACKAGES/uf3/in.uf3.Nb index bff3529e9c..19b37ccc0b 100644 --- a/examples/PACKAGES/uf3/in.uf3.2b.W +++ b/examples/PACKAGES/uf3/in.uf3.Nb @@ -4,7 +4,7 @@ variable nsteps index 100 variable nrep equal 4 -variable a equal 3.187 +variable a equal 3.3005 units metal # generate the box and atom positions using a BCC lattice @@ -20,12 +20,12 @@ region box block 0 ${nx} 0 ${ny} 0 ${nz} create_box 1 box create_atoms 1 box -mass 1 183.84 +mass 1 92.906 # # ============= set pair style -pair_style uf3 2 -pair_coeff 1 1 W_W.uf3 +pair_style uf3 3 +pair_coeff * * Nb.uf3 Nb # # ============= Setup output diff --git a/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.1 b/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.1 new file mode 100644 index 0000000000..0c9c0bffa2 --- /dev/null +++ b/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.1 @@ -0,0 +1,118 @@ +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-199-g49f20229ad-modified) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.3005 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.3005 +Lattice spacing in x,y,z = 3.3005 3.3005 3.3005 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (13.202 13.202 13.202) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (13.202 13.202 13.202) + create_atoms CPU = 0.000 seconds + +mass 1 92.906 + +# # ============= set pair style + +pair_style uf3 3 +pair_coeff * * Nb.uf3 Nb +Reading potential file Nb.uf3 with DATE: 2024-04-02 + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.376 | 3.376 | 3.376 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.4256832 0 -4.3872081 90756.437 + 10 294.36659 -4.4249607 0 -4.3872081 91006.427 + 20 277.9021 -4.422849 0 -4.387208 91716.126 + 30 251.88303 -4.4195119 0 -4.3872078 92789.12 + 40 218.42803 -4.4152211 0 -4.3872076 94118.45 + 50 180.40641 -4.4103445 0 -4.3872073 95579.009 + 60 141.2326 -4.4053202 0 -4.3872071 97031.816 + 70 104.54429 -4.4006146 0 -4.3872068 98332.882 + 80 73.787889 -4.3966699 0 -4.3872066 99351.332 + 90 51.759956 -4.3938446 0 -4.3872064 99992.934 + 100 40.209821 -4.3923633 0 -4.3872064 100211.98 +Loop time of 0.385575 on 1 procs for 100 steps with 128 atoms + +Performance: 11.204 ns/day, 2.142 hours/ns, 259.353 timesteps/s, 33.197 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.38403 | 0.38403 | 0.38403 | 0.0 | 99.60 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.00090609 | 0.00090609 | 0.00090609 | 0.0 | 0.23 +Output | 0.00017626 | 0.00017626 | 0.00017626 | 0.0 | 0.05 +Modify | 0.00018204 | 0.00018204 | 0.00018204 | 0.0 | 0.05 +Other | | 0.0002795 | | | 0.07 + +Nlocal: 128 ave 128 max 128 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1601 ave 1601 max 1601 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 21504 ave 21504 max 21504 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 21504 +Ave neighs/atom = 168 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.4 b/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.4 new file mode 100644 index 0000000000..cd46d8da14 --- /dev/null +++ b/examples/PACKAGES/uf3/log.13May24.Nb.uf3.g++.4 @@ -0,0 +1,118 @@ +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-199-g49f20229ad-modified) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# Demonstrate UF3 W potential + +# # ============= Initialize simulation + +variable nsteps index 100 +variable nrep equal 4 +variable a equal 3.3005 +units metal + +# generate the box and atom positions using a BCC lattice + +variable nx equal ${nrep} +variable nx equal 4 +variable ny equal ${nrep} +variable ny equal 4 +variable nz equal ${nrep} +variable nz equal 4 + +boundary p p p + +lattice bcc $a +lattice bcc 3.3005 +Lattice spacing in x,y,z = 3.3005 3.3005 3.3005 +region box block 0 ${nx} 0 ${ny} 0 ${nz} +region box block 0 4 0 ${ny} 0 ${nz} +region box block 0 4 0 4 0 ${nz} +region box block 0 4 0 4 0 4 +create_box 1 box +Created orthogonal box = (0 0 0) to (13.202 13.202 13.202) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 128 atoms + using lattice units in orthogonal box = (0 0 0) to (13.202 13.202 13.202) + create_atoms CPU = 0.001 seconds + +mass 1 92.906 + +# # ============= set pair style + +pair_style uf3 3 +pair_coeff * * Nb.uf3 Nb +Reading potential file Nb.uf3 with DATE: 2024-04-02 + + +# # ============= Setup output + +thermo 10 +thermo_modify norm yes + +# # ============= Set up NVE run + +timestep 0.5e-3 +neighbor 1.0 bin +neigh_modify once no every 1 delay 0 check yes + +# # ============= Run MD + +velocity all create 300.0 2367804 loop geom +fix 1 all nve +run ${nsteps} +run 100 +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9 + ghost atom cutoff = 9 + binsize = 4.5, bins = 3 3 3 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair uf3, perpetual + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.351 | 3.351 | 3.351 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 300 -4.4256832 0 -4.3872081 90756.437 + 10 294.36659 -4.4249607 0 -4.3872081 91006.427 + 20 277.9021 -4.422849 0 -4.387208 91716.126 + 30 251.88303 -4.4195119 0 -4.3872078 92789.12 + 40 218.42803 -4.4152211 0 -4.3872076 94118.45 + 50 180.40641 -4.4103445 0 -4.3872073 95579.009 + 60 141.2326 -4.4053202 0 -4.3872071 97031.816 + 70 104.54429 -4.4006146 0 -4.3872068 98332.882 + 80 73.787889 -4.3966699 0 -4.3872066 99351.332 + 90 51.759956 -4.3938446 0 -4.3872064 99992.934 + 100 40.209821 -4.3923633 0 -4.3872064 100211.98 +Loop time of 0.11881 on 4 procs for 100 steps with 128 atoms + +Performance: 36.361 ns/day, 0.660 hours/ns, 841.679 timesteps/s, 107.735 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.10673 | 0.10875 | 0.11236 | 0.7 | 91.53 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0057324 | 0.0093477 | 0.011375 | 2.4 | 7.87 +Output | 0.00016629 | 0.00018236 | 0.00022483 | 0.0 | 0.15 +Modify | 9.4948e-05 | 0.00010621 | 0.00012066 | 0.0 | 0.09 +Other | | 0.0004263 | | | 0.36 + +Nlocal: 32 ave 32 max 32 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1049 ave 1049 max 1049 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 0 ave 0 max 0 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +FullNghs: 5376 ave 5376 max 5376 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 21504 +Ave neighs/atom = 168 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 deleted file mode 100644 index 743e1a1e97..0000000000 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.1 +++ /dev/null @@ -1,117 +0,0 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) - using 1 OpenMP thread(s) per MPI task -# Demonstrate UF3 W potential - -# # ============= Initialize simulation - -variable nsteps index 100 -variable nrep equal 4 -variable a equal 3.187 -units metal - -# generate the box and atom positions using a BCC lattice - -variable nx equal ${nrep} -variable nx equal 4 -variable ny equal ${nrep} -variable ny equal 4 -variable nz equal ${nrep} -variable nz equal 4 - -boundary p p p - -lattice bcc $a -lattice bcc 3.187 -Lattice spacing in x,y,z = 3.187 3.187 3.187 -region box block 0 ${nx} 0 ${ny} 0 ${nz} -region box block 0 4 0 ${ny} 0 ${nz} -region box block 0 4 0 4 0 ${nz} -region box block 0 4 0 4 0 4 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 128 atoms - using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) - create_atoms CPU = 0.000 seconds - -mass 1 183.84 - -# # ============= set pair style - -pair_style uf3 2 -pair_coeff 1 1 W_W.uf3 - - -# # ============= Setup output - -thermo 10 -thermo_modify norm yes - -# # ============= Set up NVE run - -timestep 0.5e-3 -neighbor 1.0 bin -neigh_modify once no every 1 delay 0 check yes - -# # ============= Run MD - -velocity all create 300.0 2367804 loop geom -fix 1 all nve -run ${nsteps} -run 100 -Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -Neighbor list info ... - update: every = 1 steps, delay = 0 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.5 - ghost atom cutoff = 6.5 - binsize = 3.25, bins = 4 4 4 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair uf3, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.113 | 3.113 | 3.113 Mbytes - Step Temp E_pair E_mol TotEng Press - 0 300 -4.9097145 0 -4.8712394 -398022.13 - 10 297.43433 -4.9093854 0 -4.8712394 -397994.78 - 20 289.88359 -4.908417 0 -4.8712393 -397922.72 - 30 277.73497 -4.9068589 0 -4.8712393 -397829.84 - 40 261.57286 -4.904786 0 -4.8712392 -397731.28 - 50 242.14207 -4.902294 0 -4.8712392 -397640.01 - 60 220.31079 -4.899494 0 -4.8712391 -397572.33 - 70 197.03391 -4.8965087 0 -4.871239 -397551.93 - 80 173.31044 -4.893466 0 -4.8712389 -397601.62 - 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 - 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0333361 on 1 procs for 100 steps with 128 atoms - -Performance: 129.589 ns/day, 0.185 hours/ns, 2999.749 timesteps/s, 383.968 katom-step/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.032205 | 0.032205 | 0.032205 | 0.0 | 96.61 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00067389 | 0.00067389 | 0.00067389 | 0.0 | 2.02 -Output | 9.6021e-05 | 9.6021e-05 | 9.6021e-05 | 0.0 | 0.29 -Modify | 0.00019596 | 0.00019596 | 0.00019596 | 0.0 | 0.59 -Other | | 0.0001652 | | | 0.50 - -Nlocal: 128 ave 128 max 128 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1113 ave 1113 max 1113 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 8192 ave 8192 max 8192 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8192 -Ave neighs/atom = 64 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 deleted file mode 100644 index 3814e71f4e..0000000000 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.2b.g++.4 +++ /dev/null @@ -1,117 +0,0 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) - using 1 OpenMP thread(s) per MPI task -# Demonstrate UF3 W potential - -# # ============= Initialize simulation - -variable nsteps index 100 -variable nrep equal 4 -variable a equal 3.187 -units metal - -# generate the box and atom positions using a BCC lattice - -variable nx equal ${nrep} -variable nx equal 4 -variable ny equal ${nrep} -variable ny equal 4 -variable nz equal ${nrep} -variable nz equal 4 - -boundary p p p - -lattice bcc $a -lattice bcc 3.187 -Lattice spacing in x,y,z = 3.187 3.187 3.187 -region box block 0 ${nx} 0 ${ny} 0 ${nz} -region box block 0 4 0 ${ny} 0 ${nz} -region box block 0 4 0 4 0 ${nz} -region box block 0 4 0 4 0 4 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 128 atoms - using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) - create_atoms CPU = 0.000 seconds - -mass 1 183.84 - -# # ============= set pair style - -pair_style uf3 2 -pair_coeff 1 1 W_W.uf3 - - -# # ============= Setup output - -thermo 10 -thermo_modify norm yes - -# # ============= Set up NVE run - -timestep 0.5e-3 -neighbor 1.0 bin -neigh_modify once no every 1 delay 0 check yes - -# # ============= Run MD - -velocity all create 300.0 2367804 loop geom -fix 1 all nve -run ${nsteps} -run 100 -Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule -Neighbor list info ... - update: every = 1 steps, delay = 0 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.5 - ghost atom cutoff = 6.5 - binsize = 3.25, bins = 4 4 4 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair uf3, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes - Step Temp E_pair E_mol TotEng Press - 0 300 -4.9097145 0 -4.8712394 -398022.13 - 10 297.43433 -4.9093854 0 -4.8712394 -397994.78 - 20 289.88359 -4.908417 0 -4.8712393 -397922.72 - 30 277.73497 -4.9068589 0 -4.8712393 -397829.84 - 40 261.57286 -4.904786 0 -4.8712392 -397731.28 - 50 242.14207 -4.902294 0 -4.8712392 -397640.01 - 60 220.31079 -4.899494 0 -4.8712391 -397572.33 - 70 197.03391 -4.8965087 0 -4.871239 -397551.93 - 80 173.31044 -4.893466 0 -4.8712389 -397601.62 - 90 150.12364 -4.8904922 0 -4.8712388 -397739.2 - 100 128.38807 -4.8877046 0 -4.8712388 -397980.01 -Loop time of 0.0147453 on 4 procs for 100 steps with 128 atoms - -Performance: 292.975 ns/day, 0.082 hours/ns, 6781.825 timesteps/s, 868.074 katom-step/s -96.0% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0086489 | 0.010103 | 0.0115 | 1.4 | 68.52 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0027662 | 0.0041052 | 0.0055079 | 2.1 | 27.84 -Output | 0.00012555 | 0.0001367 | 0.00015958 | 0.0 | 0.93 -Modify | 6.4367e-05 | 7.9187e-05 | 9.3374e-05 | 0.0 | 0.54 -Other | | 0.000321 | | | 2.18 - -Nlocal: 32 ave 32 max 32 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 697 ave 697 max 697 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 2048 ave 2048 max 2048 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8192 -Ave neighs/atom = 64 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 deleted file mode 100644 index 014ef3df49..0000000000 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.1 +++ /dev/null @@ -1,117 +0,0 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) - using 1 OpenMP thread(s) per MPI task -# Demonstrate UF3 W potential - -# # ============= Initialize simulation - -variable nsteps index 100 -variable nrep equal 4 -variable a equal 3.187 -units metal - -# generate the box and atom positions using a BCC lattice - -variable nx equal ${nrep} -variable nx equal 4 -variable ny equal ${nrep} -variable ny equal 4 -variable nz equal ${nrep} -variable nz equal 4 - -boundary p p p - -lattice bcc $a -lattice bcc 3.187 -Lattice spacing in x,y,z = 3.187 3.187 3.187 -region box block 0 ${nx} 0 ${ny} 0 ${nz} -region box block 0 4 0 ${ny} 0 ${nz} -region box block 0 4 0 4 0 ${nz} -region box block 0 4 0 4 0 4 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) - 1 by 1 by 1 MPI processor grid -create_atoms 1 box -Created 128 atoms - using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) - create_atoms CPU = 0.000 seconds - -mass 1 183.84 - -# # ============= set pair style - -pair_style uf3 3 -pair_coeff 1 1 W_W.uf3 -pair_coeff 3b 1 1 1 W_W_W.uf3 - - -# # ============= Setup output - -thermo 10 -thermo_modify norm yes - -# # ============= Set up NVE run - -timestep 0.5e-3 -neighbor 1.0 bin -neigh_modify once no every 1 delay 0 check yes - -# # ============= Run MD - -velocity all create 300.0 2367804 loop geom -fix 1 all nve -run ${nsteps} -run 100 -Neighbor list info ... - update: every = 1 steps, delay = 0 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.5 - ghost atom cutoff = 6.5 - binsize = 3.25, bins = 4 4 4 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair uf3, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.214 | 3.214 | 3.214 Mbytes - Step Temp E_pair E_mol TotEng Press - 0 300 -4.3916353 0 -4.3531602 -21224 - 10 292.96093 -4.3907325 0 -4.3531602 -21177.095 - 20 272.60651 -4.3881219 0 -4.35316 -21038.525 - 30 241.12074 -4.3840835 0 -4.3531597 -20793.964 - 40 201.8718 -4.3790495 0 -4.3531594 -20444.219 - 50 159.06853 -4.3735596 0 -4.353159 -19996.634 - 60 117.24817 -4.3681958 0 -4.3531587 -19470.011 - 70 80.716097 -4.3635102 0 -4.3531584 -18905.505 - 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 - 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 - 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.48771 on 1 procs for 100 steps with 128 atoms - -Performance: 8.858 ns/day, 2.709 hours/ns, 205.040 timesteps/s, 26.245 katom-step/s -99.7% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.48625 | 0.48625 | 0.48625 | 0.0 | 99.70 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00078 | 0.00078 | 0.00078 | 0.0 | 0.16 -Output | 0.0001819 | 0.0001819 | 0.0001819 | 0.0 | 0.04 -Modify | 0.00020794 | 0.00020794 | 0.00020794 | 0.0 | 0.04 -Other | | 0.0002902 | | | 0.06 - -Nlocal: 128 ave 128 max 128 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 1113 ave 1113 max 1113 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -FullNghs: 8192 ave 8192 max 8192 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8192 -Ave neighs/atom = 64 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:00 diff --git a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 b/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 deleted file mode 100644 index 3dfbf8e5d7..0000000000 --- a/examples/PACKAGES/uf3/log.27Mar24.uf3.3b.g++.4 +++ /dev/null @@ -1,117 +0,0 @@ -LAMMPS (7 Feb 2024 - Development - patch_7Feb2024_update1-337-g6bdf981942-modified) - using 1 OpenMP thread(s) per MPI task -# Demonstrate UF3 W potential - -# # ============= Initialize simulation - -variable nsteps index 100 -variable nrep equal 4 -variable a equal 3.187 -units metal - -# generate the box and atom positions using a BCC lattice - -variable nx equal ${nrep} -variable nx equal 4 -variable ny equal ${nrep} -variable ny equal 4 -variable nz equal ${nrep} -variable nz equal 4 - -boundary p p p - -lattice bcc $a -lattice bcc 3.187 -Lattice spacing in x,y,z = 3.187 3.187 3.187 -region box block 0 ${nx} 0 ${ny} 0 ${nz} -region box block 0 4 0 ${ny} 0 ${nz} -region box block 0 4 0 4 0 ${nz} -region box block 0 4 0 4 0 4 -create_box 1 box -Created orthogonal box = (0 0 0) to (12.748 12.748 12.748) - 1 by 2 by 2 MPI processor grid -create_atoms 1 box -Created 128 atoms - using lattice units in orthogonal box = (0 0 0) to (12.748 12.748 12.748) - create_atoms CPU = 0.000 seconds - -mass 1 183.84 - -# # ============= set pair style - -pair_style uf3 3 -pair_coeff 1 1 W_W.uf3 -pair_coeff 3b 1 1 1 W_W_W.uf3 - - -# # ============= Setup output - -thermo 10 -thermo_modify norm yes - -# # ============= Set up NVE run - -timestep 0.5e-3 -neighbor 1.0 bin -neigh_modify once no every 1 delay 0 check yes - -# # ============= Run MD - -velocity all create 300.0 2367804 loop geom -fix 1 all nve -run ${nsteps} -run 100 -Neighbor list info ... - update: every = 1 steps, delay = 0 steps, check = yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 6.5 - ghost atom cutoff = 6.5 - binsize = 3.25, bins = 4 4 4 - 1 neighbor lists, perpetual/occasional/extra = 1 0 0 - (1) pair uf3, perpetual - attributes: full, newton on - pair build: full/bin/atomonly - stencil: full/bin/3d - bin: standard -Per MPI rank memory allocation (min/avg/max) = 3.205 | 3.205 | 3.205 Mbytes - Step Temp E_pair E_mol TotEng Press - 0 300 -4.3916353 0 -4.3531602 -21224 - 10 292.96093 -4.3907325 0 -4.3531602 -21177.095 - 20 272.60651 -4.3881219 0 -4.35316 -21038.525 - 30 241.12074 -4.3840835 0 -4.3531597 -20793.964 - 40 201.8718 -4.3790495 0 -4.3531594 -20444.219 - 50 159.06853 -4.3735596 0 -4.353159 -19996.634 - 60 117.24817 -4.3681958 0 -4.3531587 -19470.011 - 70 80.716097 -4.3635102 0 -4.3531584 -18905.505 - 80 53.030322 -4.3599593 0 -4.3531582 -18362.596 - 90 36.611518 -4.3578535 0 -4.3531581 -17898.612 - 100 32.512413 -4.3573279 0 -4.3531581 -17551.048 -Loop time of 0.2463 on 4 procs for 100 steps with 128 atoms - -Performance: 17.540 ns/day, 1.368 hours/ns, 406.010 timesteps/s, 51.969 katom-step/s -98.6% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.12087 | 0.18077 | 0.24119 | 13.8 | 73.39 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.0041617 | 0.064599 | 0.12453 | 23.1 | 26.23 -Output | 0.00029596 | 0.00031702 | 0.00036352 | 0.0 | 0.13 -Modify | 0.00012969 | 0.00013491 | 0.00014544 | 0.0 | 0.05 -Other | | 0.00048 | | | 0.19 - -Nlocal: 32 ave 32 max 32 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 697 ave 697 max 697 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 0 ave 0 max 0 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -FullNghs: 2048 ave 2048 max 2048 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 8192 -Ave neighs/atom = 64 -Neighbor list builds = 0 -Dangerous builds = 0 -Total wall time: 0:00:00 From b5ecea502a50c5dd71aabd7f43623716fe0d0ed6 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Tue, 14 May 2024 08:51:40 +0200 Subject: [PATCH 119/313] Changed folding logic to use minimum_image rather than pbc --- src/MISC/fix_ipi.cpp | 51 ++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index 43a6ae03bb..fcb3ed8246 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -368,37 +368,28 @@ void FixIPI::initial_integrate(int /*vflag*/) // ensure atoms are in current box & update box via shrink-wrap // has to be be done before invoking Irregular::migrate_atoms() // since it requires atoms be inside simulation box - if (neighbor->ncalls == 0) { - // just fold coordinates at the first step - if (domain->triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - domain->reset_box(); - if (domain->triclinic) domain->lamda2x(atom->nlocal); - } else { - // "unwraps" the trajectory because we have no guarantee of what has - // happened server-side to the atoms folding, and we want to have continuous - // trajectories to build NL in a meaningful way and as rarely as possible - auto xhold = neighbor->get_xhold(); - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] -= xhold[i][0]; - x[i][1] -= xhold[i][1]; - x[i][2] -= xhold[i][2]; - } - } - // applies PBC to the displacements - if (domain->triclinic) domain->x2lamda(atom->nlocal); - domain->pbc(); - domain->reset_box(); - if (domain->triclinic) domain->lamda2x(atom->nlocal); - // recovers "unwrapped" positions - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - x[i][0] += xhold[i][0]; - x[i][1] += xhold[i][1]; - x[i][2] += xhold[i][2]; - } + // folds atomic coordinates close to the origin + if (domain->triclinic) domain->x2lamda(atom->nlocal); + domain->pbc(); + domain->reset_box(); + if (domain->triclinic) domain->lamda2x(atom->nlocal); + + // ensures continuity of trajectories relative to the + // snapshot at neighbor list creation, minimizing the + // number of neighbor list updates + auto xhold = neighbor->get_xhold(); + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + auto delx = x[i][0] - xhold[i][0]; + auto dely = x[i][1] - xhold[i][1]; + auto delz = x[i][2] - xhold[i][2]; + + domain->minimum_image(delx, dely, delz); + + x[i][0] = xhold[i][0] + delx; + x[i][1] = xhold[i][1] + dely; + x[i][2] = xhold[i][2] + delz; } } From 59ce8c966c75f28d499ada57cd4af4a65f83a6cd Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 15:24:36 +0100 Subject: [PATCH 120/313] Corrected energy for capped force potential --- src/CG-DNA/bond_oxdna_fene.cpp | 35 +++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 39444a738a..7f505817f7 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -167,6 +167,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) int nlocal = atom->nlocal; int newton_bond = force->newton_bond; + const double rlogarg_min = 0.1; ebond = 0.0; ev_init(eflag, vflag); @@ -219,14 +220,34 @@ void BondOxdnaFene::compute(int eflag, int vflag) Deltasq = Delta[type] * Delta[type]; rlogarg = 1.0 - rr0sq / Deltasq; - // if r -> Delta, then rlogarg < 0.0 which is an error - // issue a warning and reset rlogarg = epsilon - // if r > 2*Delta something serious is wrong, abort + // energy + if (eflag) { + ebond = -0.5 * k[type] * log(rlogarg); + } - if (rlogarg < 0.1) { + if (rlogarg < rlogarg_min) { + // if r-r0 -> Delta, then rlogarg < 0.0 which is an error + // issue warning and reset rlogarg = rlogarg_min to cap force to + // F_max = F(r_max) = F(r_min) = F(r_0 +/- Delta*sqrt(1-rlogarg_min)) error->warning(FLERR, "FENE bond too long: {} {} {} {}", update->ntimestep, atom->tag[a], atom->tag[b], r); - rlogarg = 0.1; + rlogarg = rlogarg_min; + + // energy of capped force potential if r > r_max and r < r_min + if (eflag) { + // if overstretched E(r) = E(r_max) + F_max * (r-r_max) + if (r > r0[type]) { + ebond = -0.5 * k[type] * log(rlogarg) + + k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * + (r - r0[type] - Delta[type] * sqrt(1.0-rlogarg)); + } + // if overcompressed E(r) = E(r_min) + F_max * (r_min - r) + if (r < r0[type]) { + ebond = -0.5 * k[type] * log(rlogarg) + + k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * + (r0[type] - Delta[type] * sqrt(1.0-rlogarg) - r); + } + } } fbond = -k[type] * rr0 / rlogarg / Deltasq / r; @@ -234,10 +255,6 @@ void BondOxdnaFene::compute(int eflag, int vflag) delf[1] = delr[1] * fbond; delf[2] = delr[2] * fbond; - // energy - - if (eflag) { ebond = -0.5 * k[type] * log(rlogarg); } - // apply force and torque to each of 2 atoms if (newton_bond || a < nlocal) { From 0e9c3fb768baf0fa24dd40f98f078da66c7dca5c Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 15:26:58 +0100 Subject: [PATCH 121/313] Updated test script --- examples/PACKAGES/cgdna/examples/test.sh | 110 +++++++++++------------ 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index 152047b94b..61c6855436 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -1,6 +1,6 @@ #! /bin/bash -DATE='14Dec21' +DATE='15May24' TOL=1e-8 LMPDIR=/Users/ohenrich/Work/code/lammps @@ -26,28 +26,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex1 . cp ../data.duplex1 . - mpirun -np 1 ./lmp_mpi < in.duplex1 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex1 > /dev/null mv log.lammps log.$DATE.duplex1.g++.1 grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex1 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex1 > /dev/null mv log.lammps log.$DATE.duplex1.g++.4 grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -61,28 +61,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex2 . cp ../data.duplex2 . - mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -96,28 +96,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex1 . cp ../data.duplex1 . - mpirun -np 1 ./lmp_mpi < in.duplex1 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex1 > /dev/null mv log.lammps log.$DATE.duplex1.g++.1 grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex1 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex1 > /dev/null mv log.lammps log.$DATE.duplex1.g++.4 grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -131,28 +131,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex2 . cp ../data.duplex2 . - mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -166,28 +166,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex3 . cp ../data.duplex3 . - mpirun -np 1 ./lmp_mpi < in.duplex3 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex3 > /dev/null mv log.lammps log.$DATE.duplex3.g++.1 grep etot log.$DATE.duplex3.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex3 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex3 > /dev/null mv log.lammps log.$DATE.duplex3.g++.4 grep etot log.$DATE.duplex3.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -203,52 +203,52 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../data.duplex4.4type . cp ../data.duplex4.8type . - mpirun -np 1 ./lmp_mpi < in.duplex4.4type > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex4.4type > /dev/null mv log.lammps log.$DATE.duplex4.4type.g++.1 grep etot log.$DATE.duplex4.4type.g++.1 > e_test.4type.1.dat grep etot ../log*4type*1 > e_old.4type.1.dat - ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat + ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task 4 types passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task 4 types unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task 4 types FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex4.4type > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex4.4type > /dev/null mv log.lammps log.$DATE.duplex4.4type.g++.4 grep etot log.$DATE.duplex4.4type.g++.4 > e_test.4type.4.dat grep etot ../log*4type*4 > e_old.4type.4.dat - ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat + ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks 4 types passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks 4 types unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks 4 types FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 1 ./lmp_mpi < in.duplex4.8type > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex4.8type > /dev/null mv log.lammps log.$DATE.duplex4.8type.g++.1 grep etot log.$DATE.duplex4.8type.g++.1 > e_test.8type.1.dat grep etot ../log*8type*1 > e_old.8type.1.dat - ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat + ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task 8 types passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task 8 types unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task 8 types FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex4.8type > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex4.8type > /dev/null mv log.lammps log.$DATE.duplex4.8type.g++.4 grep etot log.$DATE.duplex4.8type.g++.4 > e_test.8type.4.dat grep etot ../log*8type*4 > e_old.8type.4.dat - ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat + ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks 8 types passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks 8 types unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks 8 types FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -262,28 +262,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.dsring . cp ../data.dsring . - mpirun -np 1 ./lmp_mpi < in.dsring > /dev/null + mpirun -np 1 ./lmp_mpi -in in.dsring > /dev/null mv log.lammps log.$DATE.dsring.g++.1 grep etot log.$DATE.dsring.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.dsring > /dev/null + mpirun -np 4 ./lmp_mpi -in in.dsring > /dev/null mv log.lammps log.$DATE.dsring.g++.4 grep etot log.$DATE.dsring.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### @@ -297,28 +297,28 @@ if [ $# -eq 1 ] && [ $1 = run ]; then cp ../in.duplex2 . cp ../data.duplex2 . - mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat + ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log else - echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log + echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log fi - mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null + mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat + ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log else - echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log + echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log fi ###################################################### From a7fe12cd7b0bb79216a939023a72a36ee1a0dfc6 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 16:07:59 +0100 Subject: [PATCH 122/313] Reformatting --- examples/PACKAGES/cgdna/examples/test.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index 61c6855436..d7c0fe825d 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -18,7 +18,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then make -j8 mpi | tee -a $EXDIR/test.log ###################################################### - echo '# Running oxDNA duplex1 test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA duplex1 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA/duplex1 mkdir test cd test @@ -53,7 +53,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA duplex2 test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA duplex2 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA/duplex2 mkdir test cd test @@ -88,7 +88,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA2 duplex1 test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA2 duplex1 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/duplex1 mkdir test cd test @@ -123,7 +123,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA2 duplex2 test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA2 duplex2 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/duplex2 mkdir test cd test @@ -158,7 +158,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA2 duplex3 test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA2 duplex3 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/duplex3 mkdir test cd test @@ -193,7 +193,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA2 unique_bp test' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA2 unique_bp test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/unique_bp mkdir test cd test @@ -254,7 +254,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxDNA2 dsring test' | tee -a $EXDIR/test.log + printf'\n# Running oxDNA2 dsring test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/dsring mkdir test cd test @@ -289,7 +289,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - echo '# Running oxRNA2 duplex2 test' | tee -a $EXDIR/test.log + printf '\n# Running oxRNA2 duplex2 test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxRNA2/duplex2 mkdir test cd test From 17e0e785ab610723860940ad350c48e19aa71f07 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 16:45:52 +0100 Subject: [PATCH 123/313] Corrected typo --- examples/PACKAGES/cgdna/examples/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index d7c0fe825d..053d957da7 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -254,7 +254,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then ###################################################### ###################################################### - printf'\n# Running oxDNA2 dsring test\n' | tee -a $EXDIR/test.log + printf '\n# Running oxDNA2 dsring test\n' | tee -a $EXDIR/test.log cd $EXDIR/oxDNA2/dsring mkdir test cd test From c0daa9550a30dbdaa7a50ab8a6545cad851e06f0 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 16:47:44 +0100 Subject: [PATCH 124/313] Reformatting --- examples/PACKAGES/cgdna/examples/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index 053d957da7..0cdc4d8d19 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -322,6 +322,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then fi ###################################################### + echo echo '# Done' | tee -a $EXDIR/test.log elif [ $# -eq 1 ] && [ $1 = clean ]; then From 5d98c073a48f23ca07acc26c9d8fc75fbbcde300 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 21:25:08 +0100 Subject: [PATCH 125/313] Capped force debugging completed --- src/CG-DNA/bond_oxdna_fene.cpp | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 7f505817f7..ef5de43a2c 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -167,7 +167,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) int nlocal = atom->nlocal; int newton_bond = force->newton_bond; - const double rlogarg_min = 0.1; + const double rlogarg_min = 0.7; ebond = 0.0; ev_init(eflag, vflag); @@ -225,29 +225,35 @@ void BondOxdnaFene::compute(int eflag, int vflag) ebond = -0.5 * k[type] * log(rlogarg); } + // switching to capped force for r-r0 -> Delta, i.e. + // r > r_max = r0 + Delta*sqrt(1-rlogarg) OR + // r < r_min = r0 - Delta*sqrt(1-rlogarg) if (rlogarg < rlogarg_min) { - // if r-r0 -> Delta, then rlogarg < 0.0 which is an error - // issue warning and reset rlogarg = rlogarg_min to cap force to - // F_max = F(r_max) = F(r_min) = F(r_0 +/- Delta*sqrt(1-rlogarg_min)) + + // issue warning, reset rlogarg and rr0 to cap force to error->warning(FLERR, "FENE bond too long: {} {} {} {}", update->ntimestep, atom->tag[a], atom->tag[b], r); rlogarg = rlogarg_min; - // energy of capped force potential if r > r_max and r < r_min - if (eflag) { - // if overstretched E(r) = E(r_max) + F_max * (r-r_max) - if (r > r0[type]) { - ebond = -0.5 * k[type] * log(rlogarg) + - k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * + // if overstretched F(r)=F(r_max)=F_max, E(r)=E(r_max)+F_max*(r-r_max) + if (r > r0[type]) { + rr0 = Delta[type]*sqrt(1.0-rlogarg); + // energy + if (eflag) { + ebond = -0.5 * k[type] * log(rlogarg) + k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * (r - r0[type] - Delta[type] * sqrt(1.0-rlogarg)); } - // if overcompressed E(r) = E(r_min) + F_max * (r_min - r) - if (r < r0[type]) { - ebond = -0.5 * k[type] * log(rlogarg) + - k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * + } + // if overcompressed F(r)=F(r_min)=F_max, E(r)=E(r_min)+F_max*(r-r_min) + else if (r < r0[type]) { + rr0 = -Delta[type]*sqrt(1.0-rlogarg); + // energy + if (eflag) { + ebond = -0.5 * k[type] * log(rlogarg) + k[type] * sqrt(1.0-rlogarg) / rlogarg / Delta[type] * (r0[type] - Delta[type] * sqrt(1.0-rlogarg) - r); } } + } fbond = -k[type] * rr0 / rlogarg / Deltasq / r; From b31071e18fa0b1d7f65bcdddc2fb94991be25487 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 22:03:56 +0100 Subject: [PATCH 126/313] Removed exit status bug --- examples/PACKAGES/cgdna/examples/test.sh | 36 ++++++++++++------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index 0cdc4d8d19..2d03dd522b 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -30,7 +30,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex1.g++.1 grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -42,7 +42,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex1.g++.4 grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -65,7 +65,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -77,7 +77,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -100,7 +100,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex1.g++.1 grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -112,7 +112,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex1.g++.4 grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -135,7 +135,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -147,7 +147,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -170,7 +170,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex3.g++.1 grep etot log.$DATE.duplex3.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -182,7 +182,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex3.g++.4 grep etot log.$DATE.duplex3.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -207,7 +207,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex4.4type.g++.1 grep etot log.$DATE.duplex4.4type.g++.1 > e_test.4type.1.dat grep etot ../log*4type*1 > e_old.4type.1.dat - ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task 4 types passed" | tee -a $EXDIR/test.log @@ -219,7 +219,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex4.4type.g++.4 grep etot log.$DATE.duplex4.4type.g++.4 > e_test.4type.4.dat grep etot ../log*4type*4 > e_old.4type.4.dat - ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks 4 types passed" | tee -a $EXDIR/test.log @@ -231,7 +231,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex4.8type.g++.1 grep etot log.$DATE.duplex4.8type.g++.1 > e_test.8type.1.dat grep etot ../log*8type*1 > e_old.8type.1.dat - ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task 8 types passed" | tee -a $EXDIR/test.log @@ -243,7 +243,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex4.8type.g++.4 grep etot log.$DATE.duplex4.8type.g++.4 > e_test.8type.4.dat grep etot ../log*8type*4 > e_old.8type.4.dat - ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks 8 types passed" | tee -a $EXDIR/test.log @@ -266,7 +266,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.dsring.g++.1 grep etot log.$DATE.dsring.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -278,7 +278,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.dsring.g++.4 grep etot log.$DATE.dsring.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log @@ -301,7 +301,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.1 grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat grep etot ../log*1 > e_old.1.dat - ndiff -relerr $TOL e_test.1.dat e_old.1.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.1.dat e_old.1.dat if [ $? -eq 0 ]; then echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log @@ -313,7 +313,7 @@ if [ $# -eq 1 ] && [ $1 = run ]; then mv log.lammps log.$DATE.duplex2.g++.4 grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat grep etot ../log*4 > e_old.4.dat - ndiff -relerr $TOL e_test.4.dat e_old.4.dat | tee -a $EXDIR/test.log + ndiff -relerr $TOL e_test.4.dat e_old.4.dat if [ $? -eq 0 ]; then echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log From 5f6f6ba0d695da5f6794e6fb19dc37d1934fe79e Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 22:19:31 +0100 Subject: [PATCH 127/313] Reset rlogarg to original value --- src/CG-DNA/bond_oxdna_fene.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index ef5de43a2c..5509de786d 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -167,7 +167,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) int nlocal = atom->nlocal; int newton_bond = force->newton_bond; - const double rlogarg_min = 0.7; + const double rlogarg_min = 0.1; ebond = 0.0; ev_init(eflag, vflag); @@ -229,7 +229,6 @@ void BondOxdnaFene::compute(int eflag, int vflag) // r > r_max = r0 + Delta*sqrt(1-rlogarg) OR // r < r_min = r0 - Delta*sqrt(1-rlogarg) if (rlogarg < rlogarg_min) { - // issue warning, reset rlogarg and rr0 to cap force to error->warning(FLERR, "FENE bond too long: {} {} {} {}", update->ntimestep, atom->tag[a], atom->tag[b], r); @@ -253,7 +252,6 @@ void BondOxdnaFene::compute(int eflag, int vflag) (r0[type] - Delta[type] * sqrt(1.0-rlogarg) - r); } } - } fbond = -k[type] * rr0 / rlogarg / Deltasq / r; From 83cfa0bfdda6660b1af247b9f94bf33eb428876b Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 15 May 2024 22:50:37 +0100 Subject: [PATCH 128/313] Set rlogarg to intermediate value, force capped at 35 LJU --- src/CG-DNA/bond_oxdna_fene.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 5509de786d..7a60ae3555 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -167,7 +167,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) int nlocal = atom->nlocal; int newton_bond = force->newton_bond; - const double rlogarg_min = 0.1; + const double rlogarg_min = 0.2; ebond = 0.0; ev_init(eflag, vflag); @@ -225,11 +225,11 @@ void BondOxdnaFene::compute(int eflag, int vflag) ebond = -0.5 * k[type] * log(rlogarg); } - // switching to capped force for r-r0 -> Delta, i.e. + // switching to capped force for r-r0 -> Delta at // r > r_max = r0 + Delta*sqrt(1-rlogarg) OR // r < r_min = r0 - Delta*sqrt(1-rlogarg) if (rlogarg < rlogarg_min) { - // issue warning, reset rlogarg and rr0 to cap force to + // issue warning, reset rlogarg and rr0 to cap force error->warning(FLERR, "FENE bond too long: {} {} {} {}", update->ntimestep, atom->tag[a], atom->tag[b], r); rlogarg = rlogarg_min; @@ -243,7 +243,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) (r - r0[type] - Delta[type] * sqrt(1.0-rlogarg)); } } - // if overcompressed F(r)=F(r_min)=F_max, E(r)=E(r_min)+F_max*(r-r_min) + // if overcompressed F(r)=F(r_min)=F_max, E(r)=E(r_min)+F_max*(r_min-r) else if (r < r0[type]) { rr0 = -Delta[type]*sqrt(1.0-rlogarg); // energy From 410cda27e0a7631e5bde018f9e7fecf45e2851ca Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 16 May 2024 14:38:04 -0400 Subject: [PATCH 129/313] keyword was changed at some point --- doc/src/write_data.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/write_data.rst b/doc/src/write_data.rst index 61fada70df..e1e5b04953 100644 --- a/doc/src/write_data.rst +++ b/doc/src/write_data.rst @@ -189,4 +189,4 @@ Related commands Default """"""" -The option defaults are pair = ii and types_style = numeric. +The option defaults are pair = ii and types = numeric. From febf7c38d393c5bf126feb17e0e0584213a36713 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 16 May 2024 14:49:33 -0400 Subject: [PATCH 130/313] add reaxff/species delete citation --- doc/src/fix_reaxff_species.rst | 62 ++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/doc/src/fix_reaxff_species.rst b/doc/src/fix_reaxff_species.rst index a6da15b161..fba7fcaa93 100644 --- a/doc/src/fix_reaxff_species.rst +++ b/doc/src/fix_reaxff_species.rst @@ -134,36 +134,34 @@ value. For example, AuO.pos.\* becomes AuO.pos.0, AuO.pos.1000, etc. .. versionadded:: 3Aug2022 -The optional keyword *delete* enables the periodic removal of -molecules from the system. Criteria for deletion can be either a list -of specific chemical formulae or a range of molecular weights. -Molecules are deleted every *Nfreq* timesteps, and bond connectivity -is determined using the *Nevery* and *Nrepeat* keywords. The -*filedel* argument is the name of the output file that records the -species that are removed from the system. The *specieslist* keyword -permits specific chemical species to be deleted. The *Nspecies* -argument specifies how many species are eligible for deletion and is -followed by a list of chemical formulae, whose strings are compared to -species identified by this fix. For example, "specieslist 2 CO CO2" -deletes molecules that are identified as "CO" and "CO2" in the species -output file. When using the *specieslist* keyword, the *filedel* file -has the following format: the first line lists the chemical formulae -eligible for deletion, and each additional line contains the timestep -on which a molecule deletion occurs and the number of each species -deleted on that timestep. The *masslimit* keyword permits deletion of -molecules with molecular weights between *massmin* and *massmax*. -When using the *masslimit* keyword, each line of the *filedel* file -contains the timestep on which deletions occurs, followed by how many -of each species are deleted (with quantities preceding chemical -formulae). The *specieslist* and *masslimit* keywords cannot both be -used in the same *reaxff/species* fix. The *delete_rate_limit* -keyword can enforce an upper limit on the overall rate of molecule -deletion. The number of deletion occurrences is limited to Nlimit -within an interval of Nsteps timesteps. Nlimit can be specified with -an equal-style :doc:`variable `. When using the -*delete_rate_limit* keyword, no deletions are permitted to occur -within the first Nsteps timesteps of the first run (after reading a -either a data or restart file). +The optional keyword *delete* enables the periodic removal of molecules +from the system :ref:`(Gissinger) `. Criteria for deletion can +be either a list of specific chemical formulae or a range of molecular +weights. Molecules are deleted every *Nfreq* timesteps, and bond +connectivity is determined using the *Nevery* and *Nrepeat* keywords. The +*filedel* argument is the name of the output file that records the species +that are removed from the system. The *specieslist* keyword permits +specific chemical species to be deleted. The *Nspecies* argument specifies +how many species are eligible for deletion and is followed by a list of +chemical formulae, whose strings are compared to species identified by this +fix. For example, "specieslist 2 CO CO2" deletes molecules that are +identified as "CO" and "CO2" in the species output file. When using the +*specieslist* keyword, the *filedel* file has the following format: the +first line lists the chemical formulae eligible for deletion, and each +additional line contains the timestep on which a molecule deletion occurs +and the number of each species deleted on that timestep. The *masslimit* +keyword permits deletion of molecules with molecular weights between +*massmin* and *massmax*. When using the *masslimit* keyword, each line of +the *filedel* file contains the timestep on which deletions occurs, +followed by how many of each species are deleted (with quantities preceding +chemical formulae). The *specieslist* and *masslimit* keywords cannot both +be used in the same *reaxff/species* fix. The *delete_rate_limit* keyword +can enforce an upper limit on the overall rate of molecule deletion. The +number of deletion occurrences is limited to Nlimit within an interval of +Nsteps timesteps. Nlimit can be specified with an equal-style +:doc:`variable `. When using the *delete_rate_limit* keyword, no +deletions are permitted to occur within the first Nsteps timesteps of the +first run (after reading a either a data or restart file). ---------- @@ -235,3 +233,7 @@ Default The default values for bond-order cutoffs are 0.3 for all I-J pairs. The default element symbols are taken from the ReaxFF pair_coeff command. Position files are not written by default. + +.. _Delete: + +**(Gissinger)** Jacob R. Gissinger, Scott R. Zavada, Joseph G. Smith, Josh Kemppainen, Ivan Gallegos, Gregory M. Odegard, Emilie J. Siochi, and Kristopher E. Wise, Carbon, 202, 336-347 (2023). From 9c5d9686f55d800dfd0c1d70488bda5856227945 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 16 May 2024 15:03:03 -0400 Subject: [PATCH 131/313] deform/pressure is in EXTRA-FIX --- doc/src/fix_deform_pressure.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/src/fix_deform_pressure.rst b/doc/src/fix_deform_pressure.rst index 1490390988..25ad5bfeca 100644 --- a/doc/src/fix_deform_pressure.rst +++ b/doc/src/fix_deform_pressure.rst @@ -311,6 +311,10 @@ This fix is not invoked during :doc:`energy minimization `. Restrictions """""""""""" +This fix is part of the EXTRA-FIX package. It is only enabled if LAMMPS +was built with that package. See the :doc:`Build package ` +page for more info. + You cannot apply x, y, or z deformations to a dimension that is shrink-wrapped via the :doc:`boundary ` command. From f2d236eca192c5235f7d8376e42eb77030a7f44d Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 16 May 2024 15:08:02 -0400 Subject: [PATCH 132/313] improper styles moved to EXTRA-MOLECULE --- doc/src/improper_cossq.rst | 4 ++-- doc/src/improper_distance.rst | 4 ++-- doc/src/improper_fourier.rst | 4 ++-- doc/src/improper_ring.rst | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/src/improper_cossq.rst b/doc/src/improper_cossq.rst index 27cb6e5538..75c14cbc44 100644 --- a/doc/src/improper_cossq.rst +++ b/doc/src/improper_cossq.rst @@ -64,8 +64,8 @@ Restrictions """""""""""" This improper style can only be used if LAMMPS was built with the -MOLECULE package. See the :doc:`Build package ` doc -page for more info. +EXTRA-MOLECULE package. See the :doc:`Build package ` +doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/improper_distance.rst b/doc/src/improper_distance.rst index 545222e0a3..73953785c4 100644 --- a/doc/src/improper_distance.rst +++ b/doc/src/improper_distance.rst @@ -54,8 +54,8 @@ Restrictions """""""""""" This improper style can only be used if LAMMPS was built with the -MOLECULE package. See the :doc:`Build package ` doc -page for more info. +EXTRA-MOLECULE package. See the :doc:`Build package ` +doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/improper_fourier.rst b/doc/src/improper_fourier.rst index 5852a57038..bde584fb87 100644 --- a/doc/src/improper_fourier.rst +++ b/doc/src/improper_fourier.rst @@ -60,8 +60,8 @@ Restrictions """""""""""" This angle style can only be used if LAMMPS was built with the -MOLECULE package. See the :doc:`Build package ` doc -page for more info. +EXTRA-MOLECULE package. See the :doc:`Build package ` +doc page for more info. Related commands """""""""""""""" diff --git a/doc/src/improper_ring.rst b/doc/src/improper_ring.rst index 99eed00b90..4bad4c9656 100644 --- a/doc/src/improper_ring.rst +++ b/doc/src/improper_ring.rst @@ -72,8 +72,8 @@ Restrictions """""""""""" This improper style can only be used if LAMMPS was built with the -MOLECULE package. See the :doc:`Build package ` doc -page for more info. +EXTRA-MOLECULE package. See the :doc:`Build package ` +doc page for more info. Related commands """""""""""""""" From 51f009c2733debe853cce7be70ed0b74104b6199 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 16 May 2024 15:21:45 -0400 Subject: [PATCH 133/313] incorrect pair-coul package listings --- doc/src/pair_coul.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/src/pair_coul.rst b/doc/src/pair_coul.rst index f22bc974b0..14cc4851f6 100644 --- a/doc/src/pair_coul.rst +++ b/doc/src/pair_coul.rst @@ -379,10 +379,11 @@ These pair styles can only be used via the *pair* keyword of the Restrictions """""""""""" -The *coul/cut/global*, *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles -are part of the KSPACE package. They are only enabled if LAMMPS was built -with that package. See the :doc:`Build package ` doc page -for more info. +The *coul/long*, *coul/msm*, *coul/streitz*, and *tip4p/long* styles are +part of the KSPACE package. The *coul/cut/global* and *coul/exclude* are +part of the EXTRA-PAIR package. A pair style is only enabled if LAMMPS was +built with its corresponding package. See the :doc:`Build package ` +doc page for more info. Related commands """""""""""""""" From 00cb38e82381a9d90a242d51217e0add9961cca7 Mon Sep 17 00:00:00 2001 From: Kierran Falloon Date: Mon, 20 May 2024 15:08:06 +0100 Subject: [PATCH 134/313] real unit and potential file examples (#16) --- .../{ => lj_units}/oxDNA/duplex1/data.duplex1 | 0 .../{ => lj_units}/oxDNA/duplex1/in.duplex1 | 0 .../oxDNA/duplex1/log.2Jul21.duplex1.g++.1 | 0 .../oxDNA/duplex1/log.2Jul21.duplex1.g++.4 | 0 .../{ => lj_units}/oxDNA/duplex2/data.duplex2 | 0 .../{ => lj_units}/oxDNA/duplex2/in.duplex2 | 0 .../oxDNA/duplex2/log.2Jul21.duplex2.g++.1 | 0 .../oxDNA/duplex2/log.2Jul21.duplex2.g++.4 | 0 .../oxDNA/potential_file}/data.duplex1 | 0 .../lj_units/oxDNA/potential_file/in.duplex1 | 70 + .../potential_file/log.19May24.duplex1.g++.1 | 1113 ++++++++++++++++ .../potential_file/log.19May24.duplex1.g++.4 | 1113 ++++++++++++++++ .../{ => lj_units}/oxDNA2/dsring/data.dsring | 0 .../{ => lj_units}/oxDNA2/dsring/in.dsring | 0 .../oxDNA2/dsring/log.2Jul21.dsring.g++.1 | 0 .../oxDNA2/dsring/log.2Jul21.dsring.g++.4 | 0 .../lj_units/oxDNA2/duplex1/data.duplex1 | 68 + .../{ => lj_units}/oxDNA2/duplex1/in.duplex1 | 0 .../oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 | 0 .../oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 | 0 .../oxDNA2/duplex2/data.duplex2 | 0 .../{ => lj_units}/oxDNA2/duplex2/in.duplex2 | 0 .../oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 | 0 .../oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 | 0 .../oxDNA2/duplex3/data.duplex3 | 0 .../{ => lj_units}/oxDNA2/duplex3/in.duplex3 | 0 .../oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 | 0 .../oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 | 0 .../oxDNA2/potential_file/data.duplex1 | 68 + .../lj_units/oxDNA2/potential_file/in.duplex1 | 72 ++ .../potential_file/log.19May24.duplex1.g++.1 | 1120 ++++++++++++++++ .../potential_file/log.19May24.duplex1.g++.4 | 1120 ++++++++++++++++ .../oxDNA2/unique_bp/data.duplex4.4type | 0 .../oxDNA2/unique_bp/data.duplex4.8type | 0 .../oxDNA2/unique_bp/generate_unique.py | 0 .../oxDNA2/unique_bp/in.duplex4.4type | 0 .../oxDNA2/unique_bp/in.duplex4.8type | 0 .../unique_bp/log.2Jul21.duplex4.4type.g++.1 | 0 .../unique_bp/log.2Jul21.duplex4.4type.g++.4 | 0 .../unique_bp/log.2Jul21.duplex4.8type.g++.1 | 0 .../unique_bp/log.2Jul21.duplex4.8type.g++.4 | 0 .../oxRNA2/duplex2/data.duplex2 | 0 .../{ => lj_units}/oxRNA2/duplex2/in.duplex2 | 0 .../oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 | 0 .../oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 | 0 .../oxRNA2/potential_file/data.duplex2 | 91 ++ .../lj_units/oxRNA2/potential_file/in.duplex2 | 73 ++ .../potential_file/log.19May24.duplex2.g++.1 | 1121 +++++++++++++++++ .../potential_file/log.19May24.duplex2.g++.4 | 1121 +++++++++++++++++ .../cgdna/examples/{ => lj_units}/test.sh | 0 .../real_units/oxDNA/duplex1/data.duplex1 | 68 + .../real_units/oxDNA/duplex1/in.duplex1 | 71 ++ .../oxDNA/duplex1/log.19May24.duplex1.g++.1 | 1105 ++++++++++++++++ .../oxDNA/duplex1/log.19May24.duplex1.g++.4 | 1105 ++++++++++++++++ .../real_units/oxDNA/duplex2/data.duplex2 | 91 ++ .../real_units/oxDNA/duplex2/in.duplex2 | 71 ++ .../oxDNA/duplex2/log.19May24.duplex1.g++.1 | 1105 ++++++++++++++++ .../oxDNA/duplex2/log.19May24.duplex1.g++.4 | 1105 ++++++++++++++++ .../oxDNA/potential_file/data.duplex1 | 68 + .../oxDNA/potential_file/in.duplex1 | 71 ++ .../potential_file/log.19May24.duplex1.g++.1 | 1113 ++++++++++++++++ .../potential_file/log.19May24.duplex1.g++.4 | 1113 ++++++++++++++++ .../real_units/oxDNA2/dsring/data.dsring | 622 +++++++++ .../real_units/oxDNA2/dsring/in.dsring | 73 ++ .../oxDNA2/dsring/log.19May24.dsring.g++.1 | 211 ++++ .../oxDNA2/dsring/log.19May24.dsring.g++.4 | 211 ++++ .../real_units/oxDNA2/duplex1/data.duplex1 | 68 + .../real_units/oxDNA2/duplex1/in.duplex1 | 73 ++ .../oxDNA2/duplex1/log.19May24.duplex1.g++.1 | 1111 ++++++++++++++++ .../oxDNA2/duplex1/log.19May24.duplex1.g++.4 | 1111 ++++++++++++++++ .../real_units/oxDNA2/duplex2/data.duplex2 | 91 ++ .../real_units/oxDNA2/duplex2/in.duplex2 | 73 ++ .../oxDNA2/duplex2/log.19May24.duplex2.g++.1 | 1111 ++++++++++++++++ .../oxDNA2/duplex2/log.19May24.duplex2.g++.4 | 1111 ++++++++++++++++ .../real_units/oxDNA2/duplex3/data.duplex3 | 68 + .../real_units/oxDNA2/duplex3/in.duplex3 | 73 ++ .../oxDNA2/duplex3/log.19May24.duplex3.g++.1 | 1111 ++++++++++++++++ .../oxDNA2/duplex3/log.19May24.duplex3.g++.4 | 1111 ++++++++++++++++ .../oxDNA2/potential_file/data.duplex1 | 68 + .../oxDNA2/potential_file/in.duplex1 | 74 ++ .../potential_file/log.19May24.duplex1.g++.1 | 1118 ++++++++++++++++ .../potential_file/log.19May24.duplex1.g++.4 | 1118 ++++++++++++++++ .../oxDNA2/unique_bp/data.duplex4.4type | 132 ++ .../oxDNA2/unique_bp/data.duplex4.8type | 136 ++ .../oxDNA2/unique_bp/generate_unique.py | 828 ++++++++++++ .../oxDNA2/unique_bp/in.duplex4.4type | 87 ++ .../oxDNA2/unique_bp/in.duplex4.8type | 87 ++ .../unique_bp/log.19May24.duplex4.4type.g++.1 | 1111 ++++++++++++++++ .../unique_bp/log.19May24.duplex4.4type.g++.4 | 1111 ++++++++++++++++ .../unique_bp/log.19May24.duplex4.8type.g++.1 | 1111 ++++++++++++++++ .../unique_bp/log.19May24.duplex4.8type.g++.4 | 1111 ++++++++++++++++ .../real_units/oxRNA2/duplex2/data.duplex2 | 91 ++ .../real_units/oxRNA2/duplex2/in.duplex2 | 74 ++ .../oxRNA2/duplex2/log.19May24.duplex2.g++.1 | 1111 ++++++++++++++++ .../oxRNA2/duplex2/log.19May24.duplex2.g++.4 | 1111 ++++++++++++++++ .../oxRNA2/potential_file/data.duplex2 | 91 ++ .../oxRNA2/potential_file/in.duplex2 | 74 ++ .../potential_file/log.19May24.duplex2.g++.1 | 1121 +++++++++++++++++ .../potential_file/log.19May24.duplex2.g++.4 | 1121 +++++++++++++++++ 99 files changed, 35351 insertions(+) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex1/data.duplex1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex1/in.duplex1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex1/log.2Jul21.duplex1.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex1/log.2Jul21.duplex1.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex2/data.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex2/in.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex2/log.2Jul21.duplex2.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA/duplex2/log.2Jul21.duplex2.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{oxDNA2/duplex1 => lj_units/oxDNA/potential_file}/data.duplex1 (100%) create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/dsring/data.dsring (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/dsring/in.dsring (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/dsring/log.2Jul21.dsring.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/dsring/log.2Jul21.dsring.g++.4 (100%) create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/data.duplex1 rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex1/in.duplex1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex2/data.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex2/in.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex3/data.duplex3 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex3/in.duplex3 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 (100%) create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/data.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/data.duplex4.4type (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/data.duplex4.8type (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/generate_unique.py (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/in.duplex4.4type (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/in.duplex4.8type (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.4 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxRNA2/duplex2/data.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxRNA2/duplex2/in.duplex2 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 (100%) rename examples/PACKAGES/cgdna/examples/{ => lj_units}/oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 (100%) create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/data.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 rename examples/PACKAGES/cgdna/examples/{ => lj_units}/test.sh (100%) create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/data.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/data.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/in.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/data.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/data.dsring create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/in.dsring create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/data.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/data.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/in.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/data.duplex3 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/in.duplex3 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/data.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.4type create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.8type create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/generate_unique.py create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.4type create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.8type create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/data.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/in.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/data.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 create mode 100644 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex1/data.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/data.duplex1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex1/data.duplex1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/data.duplex1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex1/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/in.duplex1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex1/in.duplex1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/in.duplex1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex1/log.2Jul21.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/log.2Jul21.duplex1.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex1/log.2Jul21.duplex1.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/log.2Jul21.duplex1.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex1/log.2Jul21.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/log.2Jul21.duplex1.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex1/log.2Jul21.duplex1.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex1/log.2Jul21.duplex1.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/data.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex2/data.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/data.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/in.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex2/in.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/in.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex2/log.2Jul21.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/log.2Jul21.duplex2.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex2/log.2Jul21.duplex2.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/log.2Jul21.duplex2.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA/duplex2/log.2Jul21.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/log.2Jul21.duplex2.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA/duplex2/log.2Jul21.duplex2.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/duplex2/log.2Jul21.duplex2.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/data.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/data.duplex1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/data.duplex1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/data.duplex1 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 new file mode 100644 index 0000000000..c58c69e94e --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 @@ -0,0 +1,70 @@ +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 0.1 + +units lj + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 1.0 + +# Pair interactions require lists of neighbours to be calculated +neighbor 2.0 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 3.1575 + +group all type 1 4 + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * oxdna.lj +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv oxdna.lj +pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna.lj +pair_coeff * * oxdna/hbond seqav oxdna.lj +pair_coeff 1 4 oxdna/hbond seqav oxdna.lj +pair_coeff 2 3 oxdna/hbond seqav oxdna.lj +pair_coeff * * oxdna/xstk oxdna.lj +pair_coeff * * oxdna/coaxstk oxdna.lj + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 2.5 457145 angmom 10 + +timestep 1e-5 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 3.8 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..6bee219ed2 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 @@ -0,0 +1,1113 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna.lj with DATE: 2024-04-21 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (stk) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (xstk) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (coaxstk) file oxdna.lj with DATE: 2024-04-21 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.9560004 + ghost atom cutoff = 3.8 + binsize = 1.4780002, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +0 ekin = 1.10853632272819 | erot = 2.81573649976629 | epot = -13.0576219534369 | etot = -9.13334913094246 +Per MPI rank memory allocation (min/avg/max) = 7.196 | 7.196 | 7.196 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.082113802 -1.3488546 0.043092397 -1.1949086 -4.6816211e-05 64000 +1000 ekin = 1.08024346604046 | erot = 2.90873406534668 | epot = -13.1223266626202 | etot = -9.13334913123308 +2000 ekin = 1.05028450914437 | erot = 2.98006324808558 | epot = -13.1636968886591 | etot = -9.13334913142915 +3000 ekin = 1.01964458529397 | erot = 3.02592193798632 | epot = -13.1789156547658 | etot = -9.13334913148547 +4000 ekin = 0.989515033089539 | erot = 3.04428486059471 | epot = -13.1671490250724 | etot = -9.13334913138813 +5000 ekin = 0.961283929687833 | erot = 3.03510855539557 | epot = -13.1297416162282 | etot = -9.1333491311448 +6000 ekin = 0.936412193404256 | erot = 3.00022299571975 | epot = -13.0699843199583 | etot = -9.13334913083425 +7000 ekin = 0.916233699107968 | erot = 2.9427713444016 | epot = -12.9923541739966 | etot = -9.13334913048708 +8000 ekin = 0.901760662506268 | erot = 2.86671228744164 | epot = -12.9018220800865 | etot = -9.13334913013854 +9000 ekin = 0.893571390067878 | erot = 2.77649686780604 | epot = -12.8034173876806 | etot = -9.13334912980663 +10000 ekin = 0.891805685056846 | erot = 2.67686855006733 | epot = -12.7020233645915 | etot = -9.13334912946735 +11000 ekin = 0.896243557993589 | erot = 2.57266042063118 | epot = -12.6022531078194 | etot = -9.13334912919463 +12000 ekin = 0.906416039154816 | erot = 2.46827537271555 | epot = -12.5080405408347 | etot = -9.13334912896432 +13000 ekin = 0.92170409177849 | erot = 2.36760645470833 | epot = -12.4226596752787 | etot = -9.13334912879187 +14000 ekin = 0.941405275130076 | erot = 2.27374941641175 | epot = -12.3485038202328 | etot = -9.13334912869097 +15000 ekin = 0.964770892951774 | erot = 2.18876720165113 | epot = -12.2868872232635 | etot = -9.1333491286606 +16000 ekin = 0.991029016801085 | erot = 2.11380018376645 | epot = -12.2381783292304 | etot = -9.13334912866287 +17000 ekin = 1.01940907375712 | erot = 2.04893605182119 | epot = -12.2016942543554 | etot = -9.13334912877713 +18000 ekin = 1.04917923728265 | erot = 1.99335017578102 | epot = -12.1758785419804 | etot = -9.13334912891671 +19000 ekin = 1.07969247848165 | erot = 1.94569933362972 | epot = -12.158740941176 | etot = -9.13334912906464 +20000 ekin = 1.11043268152286 | erot = 1.90411175657085 | epot = -12.1478935672811 | etot = -9.13334912918742 +21000 ekin = 1.14104909735584 | erot = 1.86695882979252 | epot = -12.1413570564146 | etot = -9.13334912926621 +22000 ekin = 1.171368218481 | erot = 1.83313674901907 | epot = -12.1378540967919 | etot = -9.13334912929187 +23000 ekin = 1.20137634097694 | erot = 1.80222523558988 | epot = -12.1369507058331 | etot = -9.13334912926625 +24000 ekin = 1.23117249622901 | erot = 1.77451266102198 | epot = -12.1390342864515 | etot = -9.13334912920046 +25000 ekin = 1.26089526640646 | erot = 1.75088411697602 | epot = -12.1451285124968 | etot = -9.13334912911432 +26000 ekin = 1.29063712254633 | erot = 1.73259428379513 | epot = -12.1565805353675 | etot = -9.13334912902604 +27000 ekin = 1.32035987087031 | erot = 1.72114061671182 | epot = -12.174849616541 | etot = -9.13334912895886 +28000 ekin = 1.349804606588 | erot = 1.71795709927862 | epot = -12.2011108348018 | etot = -9.13334912893516 +29000 ekin = 1.37841624051165 | erot = 1.72414013785746 | epot = -12.2359055073441 | etot = -9.13334912897504 +30000 ekin = 1.40529015727357 | erot = 1.74019656639673 | epot = -12.2788358527638 | etot = -9.13334912909354 +31000 ekin = 1.42915801743401 | erot = 1.76583252336954 | epot = -12.3283396701 | etot = -9.13334912929648 +32000 ekin = 1.44843712560546 | erot = 1.79982181745345 | epot = -12.3816080726339 | etot = -9.13334912957502 +33000 ekin = 1.46136904668685 | erot = 1.84000474140077 | epot = -12.4347229179884 | etot = -9.13334912990075 +34000 ekin = 1.4662594078552 | erot = 1.88346459856621 | epot = -12.4830731366474 | etot = -9.13334913022599 +35000 ekin = 1.46179739484312 | erot = 1.92688889524942 | epot = -12.5220354205851 | etot = -9.1333491304926 +36000 ekin = 1.44738855724081 | erot = 1.96705754746498 | epot = -12.5477952353503 | etot = -9.13334913064453 +37000 ekin = 1.42340054468554 | erot = 2.00129614949928 | epot = -12.5580458249024 | etot = -9.13334913071753 +38000 ekin = 1.39122781542986 | erot = 2.02761655303766 | epot = -12.5521934990546 | etot = -9.13334913058709 +39000 ekin = 1.35313842096822 | erot = 2.04547852103605 | epot = -12.5319660723435 | etot = -9.13334913033923 +40000 ekin = 1.31193587699368 | erot = 2.05554364627561 | epot = -12.5008286533154 | etot = -9.1333491300461 +41000 ekin = 1.27054093924549 | erot = 2.05894429581373 | epot = -12.4628343648331 | etot = -9.13334912977385 +42000 ekin = 1.23161000992333 | erot = 2.0569489325571 | epot = -12.4219080720067 | etot = -9.13334912952632 +43000 ekin = 1.197239697595 | erot = 2.0508575807566 | epot = -12.3814464076994 | etot = -9.13334912934785 +44000 ekin = 1.16880185864005 | erot = 2.0417223836063 | epot = -12.3438733714903 | etot = -9.13334912924393 +45000 ekin = 1.14690787175727 | erot = 2.03029950061775 | epot = -12.3105565015798 | etot = -9.13334912920477 +46000 ekin = 1.13147919636059 | erot = 2.01712256175377 | epot = -12.2819508873242 | etot = -9.13334912920983 +47000 ekin = 1.1218930049273 | erot = 2.00264798837259 | epot = -12.257890122535 | etot = -9.13334912923509 +48000 ekin = 1.11716788112736 | erot = 1.98739120721195 | epot = -12.2379082176345 | etot = -9.1333491292952 +49000 ekin = 1.11615794795258 | erot = 1.97187368108376 | epot = -12.2213807583349 | etot = -9.13334912929852 +50000 ekin = 1.11772326336409 | erot = 1.95708534394627 | epot = -12.2081577365825 | etot = -9.13334912927216 +51000 ekin = 1.12084924497886 | erot = 1.94437394210217 | epot = -12.1985723162996 | etot = -9.13334912921861 +52000 ekin = 1.12470549785263 | erot = 1.93529800314869 | epot = -12.1933526301508 | etot = -9.13334912914952 +53000 ekin = 1.12864556674986 | erot = 1.93145365271658 | epot = -12.1934483485496 | etot = -9.13334912908316 +54000 ekin = 1.13216113523098 | erot = 1.934302748755 | epot = -12.199813013012 | etot = -9.13334912902602 +55000 ekin = 1.13481106600243 | erot = 1.94490436967235 | epot = -12.213064564702 | etot = -9.13334912902726 +56000 ekin = 1.13614343535825 | erot = 1.96361884590779 | epot = -12.233111410353 | etot = -9.13334912908696 +57000 ekin = 1.13563178311291 | erot = 1.99002978527238 | epot = -12.2590106975985 | etot = -9.13334912921317 +58000 ekin = 1.13263976908255 | erot = 2.02286978616489 | epot = -12.2888586846525 | etot = -9.13334912940509 +59000 ekin = 1.12642426113443 | erot = 2.060044134417 | epot = -12.3198175252028 | etot = -9.13334912965135 +60000 ekin = 1.11618536041545 | erot = 2.09876774945537 | epot = -12.3483022398004 | etot = -9.13334912992961 +61000 ekin = 1.10116810417879 | erot = 2.13581434618261 | epot = -12.3703315805683 | etot = -9.13334913020688 +62000 ekin = 1.08081637521816 | erot = 2.16786879318294 | epot = -12.3820342988433 | etot = -9.13334913044215 +63000 ekin = 1.05497014428163 | erot = 2.19194503254428 | epot = -12.3802643074575 | etot = -9.13334913063164 +64000 ekin = 1.0240860160317 | erot = 2.20562384873122 | epot = -12.3630589954179 | etot = -9.13334913065501 +65000 ekin = 0.989434415807808 | erot = 2.20769180278649 | epot = -12.3304753491251 | etot = -9.13334913053076 +66000 ekin = 0.953195593563941 | erot = 2.19842250482619 | epot = -12.2849672286538 | etot = -9.13334913026364 +67000 ekin = 0.918366365968281 | erot = 2.17942400884171 | epot = -12.2311395047047 | etot = -9.13334912989468 +68000 ekin = 0.888467814666263 | erot = 2.15321364358189 | epot = -12.1750305877199 | etot = -9.13334912947174 +69000 ekin = 0.867150037001592 | erot = 2.1228863370436 | epot = -12.1233855031206 | etot = -9.13334912907539 +70000 ekin = 0.857579951604684 | erot = 2.09151913845136 | epot = -12.0824482188428 | etot = -9.13334912878676 +71000 ekin = 0.861815425267379 | erot = 2.06157004239544 | epot = -12.0567345963616 | etot = -9.1333491286988 +72000 ekin = 0.880191815685361 | erot = 2.03435275439347 | epot = -12.0478936988729 | etot = -9.13334912879405 +73000 ekin = 0.911201453876568 | erot = 2.00982694750386 | epot = -12.0543775304376 | etot = -9.13334912905722 +74000 ekin = 0.951849895585039 | erot = 1.98685418272612 | epot = -12.0720532077343 | etot = -9.13334912942315 +75000 ekin = 0.998151008641185 | erot = 1.96362530027594 | epot = -12.0951254387262 | etot = -9.13334912980909 +76000 ekin = 1.04581734271591 | erot = 1.93821700241349 | epot = -12.1173834752669 | etot = -9.13334913013746 +77000 ekin = 1.09091996835708 | erot = 1.90910715282282 | epot = -12.1333762515352 | etot = -9.13334913035526 +78000 ekin = 1.13037631927927 | erot = 1.87551578135384 | epot = -12.139241231075 | etot = -9.13334913044189 +79000 ekin = 1.16219588597798 | erot = 1.8375058018326 | epot = -12.1330508182184 | etot = -9.13334913040778 +80000 ekin = 1.18548972632247 | erot = 1.79585942669989 | epot = -12.1146982833063 | etot = -9.13334913028394 +81000 ekin = 1.20030605718972 | erot = 1.75181365939749 | epot = -12.0854688466957 | etot = -9.13334913010848 +82000 ekin = 1.20737786492213 | erot = 1.70676694760221 | epot = -12.047493942439 | etot = -9.1333491299147 +83000 ekin = 1.2078605140209 | erot = 1.66205278152632 | epot = -12.0032624252718 | etot = -9.13334912972458 +84000 ekin = 1.20310991572493 | erot = 1.61882913247322 | epot = -11.9552881777461 | etot = -9.13334912954799 +85000 ekin = 1.19452073297182 | erot = 1.5780804300242 | epot = -11.905950292382 | etot = -9.13334912938601 +86000 ekin = 1.18342100682573 | erot = 1.54069268896239 | epot = -11.8574628250236 | etot = -9.13334912923547 +87000 ekin = 1.17100858957359 | erot = 1.50755090689522 | epot = -11.8119086255618 | etot = -9.13334912909303 +88000 ekin = 1.15831377551695 | erot = 1.47961680456726 | epot = -11.7712797090418 | etot = -9.13334912895759 +89000 ekin = 1.14617682817411 | erot = 1.457963781289 | epot = -11.7374897382939 | etot = -9.13334912883077 +90000 ekin = 1.13523447969431 | erot = 1.44376438030035 | epot = -11.712347988711 | etot = -9.13334912871638 +91000 ekin = 1.12591345720559 | erot = 1.43823772500959 | epot = -11.6975003108348 | etot = -9.13334912861964 +92000 ekin = 1.11843099489294 | erot = 1.44256930748531 | epot = -11.6943494309247 | etot = -9.13334912854649 +93000 ekin = 1.11280329634823 | erot = 1.457815248145 | epot = -11.7039676729954 | etot = -9.13334912850221 +94000 ekin = 1.10886209127347 | erot = 1.48480045701892 | epot = -11.7270116767845 | etot = -9.13334912849208 +95000 ekin = 1.10627886010347 | erot = 1.5239622064756 | epot = -11.7635901951108 | etot = -9.13334912853173 +96000 ekin = 1.10459509814429 | erot = 1.57519859223443 | epot = -11.8131428189846 | etot = -9.13334912860591 +97000 ekin = 1.1032594376991 | erot = 1.63800664193819 | epot = -11.8746152083619 | etot = -9.13334912872459 +98000 ekin = 1.10166959581649 | erot = 1.71130689804988 | epot = -11.946325622754 | etot = -9.13334912888766 +99000 ekin = 1.09921849385165 | erot = 1.79339905630377 | epot = -12.0259666792472 | etot = -9.1333491290918 +100000 ekin = 1.09534596880107 | erot = 1.88196872528585 | epot = -12.1106638234162 | etot = -9.13334912932927 +101000 ekin = 1.08959720755117 | erot = 1.97415616931463 | epot = -12.197102506452 | etot = -9.13334912958621 +102000 ekin = 1.08168751154814 | erot = 2.06670282185183 | epot = -12.2817394632425 | etot = -9.13334912984254 +103000 ekin = 1.07156932342311 | erot = 2.15618192508065 | epot = -12.3611003785772 | etot = -9.13334913007339 +104000 ekin = 1.05949237996068 | erot = 2.23930158373566 | epot = -12.4321430939484 | etot = -9.13334913025201 +105000 ekin = 1.04604342224872 | erot = 2.31323902285842 | epot = -12.4926315754928 | etot = -9.1333491303857 +106000 ekin = 1.03224316318554 | erot = 2.37579242095975 | epot = -12.541384714564 | etot = -9.13334913041871 +107000 ekin = 1.01951120148926 | erot = 2.42585603740555 | epot = -12.5787163692799 | etot = -9.13334913038511 +108000 ekin = 1.00875017477202 | erot = 2.46348952984478 | epot = -12.6055888348731 | etot = -9.13334913025634 +109000 ekin = 1.00109573552388 | erot = 2.48980806114952 | epot = -12.6242529267274 | etot = -9.13334913005404 +110000 ekin = 0.997931591358029 | erot = 2.50673918610782 | epot = -12.6380199072771 | etot = -9.13334912981121 +111000 ekin = 1.00076792351311 | erot = 2.51665915373025 | epot = -12.6507762068071 | etot = -9.13334912956377 +112000 ekin = 1.01109610479917 | erot = 2.52200701599638 | epot = -12.6664522501387 | etot = -9.13334912934312 +113000 ekin = 1.03019016817874 | erot = 2.52496101252873 | epot = -12.6885003099858 | etot = -9.13334912927836 +114000 ekin = 1.05821017520618 | erot = 2.52722573627506 | epot = -12.7187850407013 | etot = -9.13334912922008 +115000 ekin = 1.09472530400135 | erot = 2.53003930448821 | epot = -12.758113737719 | etot = -9.13334912922949 +116000 ekin = 1.13884650903327 | erot = 2.53414832430443 | epot = -12.8063439626437 | etot = -9.13334912930599 +117000 ekin = 1.18909444999481 | erot = 2.53980839277131 | epot = -12.8622519722148 | etot = -9.13334912944873 +118000 ekin = 1.24341490970474 | erot = 2.54678348242636 | epot = -12.9235475217869 | etot = -9.13334912965575 +119000 ekin = 1.29923662064194 | erot = 2.55432909401013 | epot = -12.986914844573 | etot = -9.13334912992098 +120000 ekin = 1.35358959215651 | erot = 2.56118615921801 | epot = -13.0481248816038 | etot = -9.1333491302293 +121000 ekin = 1.40329803815458 | erot = 2.56563135861663 | epot = -13.1022785273256 | etot = -9.13334913055438 +122000 ekin = 1.44524692196622 | erot = 2.56562448409229 | epot = -13.1442205369175 | etot = -9.13334913085895 +123000 ekin = 1.4766954080484 | erot = 2.55906317998206 | epot = -13.1691077191312 | etot = -9.1333491311007 +124000 ekin = 1.49558302658171 | erot = 2.54411105943722 | epot = -13.1730432172613 | etot = -9.13334913124241 +125000 ekin = 1.50076122489749 | erot = 2.51952798471309 | epot = -13.1536383408714 | etot = -9.13334913126079 +126000 ekin = 1.49214728684723 | erot = 2.4851593310352 | epot = -13.1106557490374 | etot = -9.13334913115499 +127000 ekin = 1.47053410713964 | erot = 2.44174480075129 | epot = -13.0456280388476 | etot = -9.13334913095664 +128000 ekin = 1.43743445323513 | erot = 2.39059049317552 | epot = -12.9613740770759 | etot = -9.13334913066526 +129000 ekin = 1.3950110970706 | erot = 2.33380120125824 | epot = -12.8621614286436 | etot = -9.13334913031473 +130000 ekin = 1.34584042016758 | erot = 2.27401545397182 | epot = -12.7532050040793 | etot = -9.13334912993989 +131000 ekin = 1.29268930786596 | erot = 2.2141013411123 | epot = -12.6401397785508 | etot = -9.13334912957252 +132000 ekin = 1.2383231561683 | erot = 2.15686384200892 | epot = -12.5285361274154 | etot = -9.13334912923819 +133000 ekin = 1.18535267681206 | erot = 2.10479906741765 | epot = -12.4235008731853 | etot = -9.13334912895557 +134000 ekin = 1.13612155562825 | erot = 2.05991346428636 | epot = -12.3293841486506 | etot = -9.13334912873599 +135000 ekin = 1.09263262326068 | erot = 2.02360952444373 | epot = -12.2495912762906 | etot = -9.13334912858618 +136000 ekin = 1.05650575788366 | erot = 1.99662030668691 | epot = -12.1864751930782 | etot = -9.13334912850765 +137000 ekin = 1.02895878679478 | erot = 1.97899212834894 | epot = -12.1413000436435 | etot = -9.13334912849981 +138000 ekin = 1.0108038899587 | erot = 1.97013512172241 | epot = -12.1142881402334 | etot = -9.13334912855233 +139000 ekin = 1.0024545939537 | erot = 1.96888144460883 | epot = -12.1046851672405 | etot = -9.13334912867798 +140000 ekin = 1.00393780740644 | erot = 1.97333010973461 | epot = -12.110617046003 | etot = -9.13334912886192 +141000 ekin = 1.01490973367059 | erot = 1.98104530944803 | epot = -12.1293041722138 | etot = -9.13334912909522 +142000 ekin = 1.03468044934444 | erot = 1.98917872502442 | epot = -12.1572083037338 | etot = -9.13334912936495 +143000 ekin = 1.06225104646203 | erot = 1.99463134790795 | epot = -12.1902315240234 | etot = -9.1333491296534 +144000 ekin = 1.09636709127279 | erot = 1.9944122031841 | epot = -12.2241284243806 | etot = -9.13334912992374 +145000 ekin = 1.1355904536215 | erot = 1.98572590466022 | epot = -12.2546654884645 | etot = -9.13334913018273 +146000 ekin = 1.1783885412212 | erot = 1.96612892354273 | epot = -12.2778665951537 | etot = -9.13334913038977 +147000 ekin = 1.22300699749208 | erot = 1.93405129394994 | epot = -12.2904074219631 | etot = -9.13334913052107 +148000 ekin = 1.26785677863045 | erot = 1.88891621350862 | epot = -12.2901221226999 | etot = -9.13334913056081 +149000 ekin = 1.31170551487325 | erot = 1.83123494690888 | epot = -12.2762895922886 | etot = -9.13334913050644 +150000 ekin = 1.35361858091221 | erot = 1.76263607509631 | epot = -12.2496037863729 | etot = -9.13334913036435 +151000 ekin = 1.39299848911448 | erot = 1.68572491420626 | epot = -12.2120725334744 | etot = -9.13334913015366 +152000 ekin = 1.42958376961927 | erot = 1.60381549112353 | epot = -12.1667483906421 | etot = -9.13334912989935 +153000 ekin = 1.46340801747606 | erot = 1.52060159601926 | epot = -12.1173587431247 | etot = -9.13334912962937 +154000 ekin = 1.4947265022457 | erot = 1.43981503875283 | epot = -12.0678906703689 | etot = -9.13334912937039 +155000 ekin = 1.52392161825085 | erot = 1.36491657683223 | epot = -12.0221873242284 | etot = -9.13334912914536 +156000 ekin = 1.55140022159557 | erot = 1.29884972381831 | epot = -11.9835990743855 | etot = -9.13334912897165 +157000 ekin = 1.57749707056585 | erot = 1.24387068637234 | epot = -11.9547168857973 | etot = -9.13334912885913 +158000 ekin = 1.60239506185777 | erot = 1.20145363967825 | epot = -11.9371978303525 | etot = -9.13334912881648 +159000 ekin = 1.62604462003778 | erot = 1.1722643676051 | epot = -11.9316581164849 | etot = -9.13334912884202 +160000 ekin = 1.64813303486535 | erot = 1.15619534708328 | epot = -11.9376775108799 | etot = -9.13334912893126 +161000 ekin = 1.66807327612965 | erot = 1.15245312716206 | epot = -11.9538755323661 | etot = -9.13334912907436 +162000 ekin = 1.68501875283039 | erot = 1.15969471512819 | epot = -11.9780625972159 | etot = -9.13334912925728 +163000 ekin = 1.69790620824654 | erot = 1.17620989126117 | epot = -12.0074652289691 | etot = -9.13334912946137 +164000 ekin = 1.70552711798372 | erot = 1.20014309389839 | epot = -12.0390193415465 | etot = -9.13334912966439 +165000 ekin = 1.70662691809321 | erot = 1.22974121417727 | epot = -12.0697172621124 | etot = -9.1333491298419 +166000 ekin = 1.70002908026818 | erot = 1.26360423252414 | epot = -12.0969824427628 | etot = -9.13334912997051 +167000 ekin = 1.6847768395585 | erot = 1.30090518403763 | epot = -12.1190311536263 | etot = -9.13334913003016 +168000 ekin = 1.66027923283153 | erot = 1.34154370359067 | epot = -12.1351720664304 | etot = -9.13334913000821 +169000 ekin = 1.62644124957695 | erot = 1.38619810991384 | epot = -12.1459884893936 | etot = -9.13334912990284 +170000 ekin = 1.58375251890743 | erot = 1.43625221626174 | epot = -12.1533538648943 | etot = -9.13334912972516 +171000 ekin = 1.53331003043897 | erot = 1.49359459893387 | epot = -12.1602537588717 | etot = -9.13334912949887 +172000 ekin = 1.47676106161376 | erot = 1.56031583407019 | epot = -12.1704260249395 | etot = -9.13334912925556 +173000 ekin = 1.41695754705503 | erot = 1.63848249765388 | epot = -12.188789173044 | etot = -9.13334912833514 +174000 ekin = 1.35937684304463 | erot = 1.72968793645213 | epot = -12.2224139078248 | etot = -9.13334912832799 +175000 ekin = 1.30537540818794 | erot = 1.83369980102236 | epot = -12.2724243375748 | etot = -9.1333491283645 +176000 ekin = 1.25571357800289 | erot = 1.94952726339923 | epot = -12.3385899698484 | etot = -9.1333491284463 +177000 ekin = 1.21104692225301 | erot = 2.07558802224364 | epot = -12.4199840730635 | etot = -9.13334912856686 +178000 ekin = 1.17189512057028 | erot = 2.20976079574622 | epot = -12.5150050450636 | etot = -9.13334912874708 +179000 ekin = 1.13864315857366 | erot = 2.3494989013287 | epot = -12.621491188811 | etot = -9.13334912890866 +180000 ekin = 1.1115662183559 | erot = 2.49234008539987 | epot = -12.7372554328242 | etot = -9.1333491290684 +181000 ekin = 1.09087167613583 | erot = 2.63567357536121 | epot = -12.8598943807494 | etot = -9.13334912925234 +182000 ekin = 1.07675226579839 | erot = 2.77693577183311 | epot = -12.9870371670188 | etot = -9.13334912938731 +183000 ekin = 1.0694229423415 | erot = 2.91405263083417 | epot = -13.1168247026758 | etot = -9.13334912950008 +184000 ekin = 1.06913488705837 | erot = 3.04520163111631 | epot = -13.2476856477696 | etot = -9.13334912959493 +185000 ekin = 1.0761434592279 | erot = 3.1687577292989 | epot = -13.3782503182119 | etot = -9.13334912968511 +186000 ekin = 1.09060563376751 | erot = 3.28317984154817 | epot = -13.5071346051096 | etot = -9.13334912979391 +187000 ekin = 1.11239929858152 | erot = 3.38683780589046 | epot = -13.6325862344238 | etot = -9.13334912995179 +188000 ekin = 1.14088837562649 | erot = 3.47780595660469 | epot = -13.752043462419 | etot = -9.1333491301878 +189000 ekin = 1.17469755695859 | erot = 3.55369218298205 | epot = -13.8617388704563 | etot = -9.13334913051562 +190000 ekin = 1.21158961983354 | erot = 3.61161008256034 | epot = -13.9565488333125 | etot = -9.13334913091859 +191000 ekin = 1.24837558083747 | erot = 3.64780345127522 | epot = -14.0295281634879 | etot = -9.13334913137525 +192000 ekin = 1.28102311682986 | erot = 3.65810395428969 | epot = -14.072476202787 | etot = -9.13334913166741 +193000 ekin = 1.30598320817013 | erot = 3.64139295006481 | epot = -14.0807252900248 | etot = -9.1333491317899 +194000 ekin = 1.32049648836661 | erot = 3.59844552363031 | epot = -14.0522911436922 | etot = -9.13334913169526 +195000 ekin = 1.32298604774318 | erot = 3.53212928134951 | epot = -13.9884644604293 | etot = -9.13334913133662 +196000 ekin = 1.31323645162616 | erot = 3.44751612705317 | epot = -13.8941017095236 | etot = -9.13334913084423 +197000 ekin = 1.2922893469819 | erot = 3.35072340322514 | epot = -13.7763618804991 | etot = -9.13334913029208 +198000 ekin = 1.26212633786675 | erot = 3.24789114382014 | epot = -13.6433666114233 | etot = -9.13334912973641 +199000 ekin = 1.22527047461754 | erot = 3.14483705467229 | epot = -13.5034566585633 | etot = -9.1333491292735 +200000 ekin = 1.18441799207269 | erot = 3.04594245963017 | epot = -13.3637095806219 | etot = -9.13334912891904 +201000 ekin = 1.14216630511971 | erot = 2.95390025492375 | epot = -13.2294156887273 | etot = -9.13334912868379 +202000 ekin = 1.10084220211764 | erot = 2.86987712396365 | epot = -13.1040684546434 | etot = -9.13334912856213 +203000 ekin = 1.06240856569024 | erot = 2.79366067226848 | epot = -12.9894183664997 | etot = -9.13334912854095 +204000 ekin = 1.02841768821225 | erot = 2.72389144275529 | epot = -12.8856582595718 | etot = -9.13334912860426 +205000 ekin = 0.999988405220766 | erot = 2.65832732458335 | epot = -12.7916648585388 | etot = -9.13334912873468 +206000 ekin = 0.977799621225092 | erot = 2.59412391514213 | epot = -12.7052726652796 | etot = -9.13334912891242 +207000 ekin = 0.962105653965326 | erot = 2.52813792126146 | epot = -12.6235927043397 | etot = -9.13334912911289 +208000 ekin = 0.952783648018753 | erot = 2.45726642892344 | epot = -12.5433992062486 | etot = -9.13334912930642 +209000 ekin = 0.949416945748423 | erot = 2.37882137049759 | epot = -12.4615874457066 | etot = -9.13334912946056 +210000 ekin = 0.951402263215106 | erot = 2.29090939419268 | epot = -12.3756607869543 | etot = -9.13334912954655 +211000 ekin = 0.958051952077502 | erot = 2.19275562021938 | epot = -12.2841567018438 | etot = -9.13334912954694 +212000 ekin = 0.968659667700392 | erot = 2.08489619855889 | epot = -12.1869049957199 | etot = -9.1333491294606 +213000 ekin = 0.982515908119897 | erot = 1.96918422281075 | epot = -12.0850492602326 | etot = -9.133349129302 +214000 ekin = 0.998888701919718 | erot = 1.84860041862004 | epot = -11.9808382496358 | etot = -9.13334912909602 +215000 ekin = 1.01700134912567 | erot = 1.72690897492254 | epot = -11.8772594529195 | etot = -9.1333491288713 +216000 ekin = 1.03603050122455 | erot = 1.60822693577902 | epot = -11.7776065656588 | etot = -9.1333491286552 +217000 ekin = 1.05512477228475 | erot = 1.49657917533865 | epot = -11.6850530760952 | etot = -9.13334912847181 +218000 ekin = 1.07342860744192 | erot = 1.39550092670239 | epot = -11.6022786624838 | etot = -9.13334912833947 +219000 ekin = 1.09009860355586 | erot = 1.30773521951603 | epot = -11.531182951341 | etot = -9.13334912826909 +220000 ekin = 1.10431207607362 | erot = 1.23505496062922 | epot = -11.4727161649658 | etot = -9.13334912826295 +221000 ekin = 1.1152771799306 | erot = 1.17821867809274 | epot = -11.4268449863378 | etot = -9.13334912831449 +222000 ekin = 1.12225437592988 | erot = 1.13704823944158 | epot = -11.3926517437815 | etot = -9.13334912841 +223000 ekin = 1.12459297621428 | erot = 1.11060060825111 | epot = -11.3685427129971 | etot = -9.13334912853171 +224000 ekin = 1.12177911879634 | erot = 1.09739625543922 | epot = -11.352524502896 | etot = -9.1333491286604 +225000 ekin = 1.11348637905772 | erot = 1.09566402531927 | epot = -11.3424995331557 | etot = -9.13334912877874 +226000 ekin = 1.09961800000724 | erot = 1.10360909760937 | epot = -11.336576226485 | etot = -9.13334912886838 +227000 ekin = 1.08033165066238 | erot = 1.11952730043402 | epot = -11.3332080800318 | etot = -9.13334912893538 +228000 ekin = 1.056046028728 | erot = 1.14187865421858 | epot = -11.3312738119169 | etot = -9.13334912897035 +229000 ekin = 1.02742418663527 | erot = 1.16938489301674 | epot = -11.3301582086284 | etot = -9.13334912897636 +230000 ekin = 0.995339184991783 | erot = 1.20102048198616 | epot = -11.3297087959367 | etot = -9.13334912895879 +231000 ekin = 0.960829492708881 | erot = 1.23597735762307 | epot = -11.3301559792542 | etot = -9.13334912892228 +232000 ekin = 0.925050432735401 | erot = 1.27360958612393 | epot = -11.3320091477352 | etot = -9.13334912887592 +233000 ekin = 0.889225435959866 | erot = 1.31337910210641 | epot = -11.3359536668891 | etot = -9.13334912882285 +234000 ekin = 0.854600006628788 | erot = 1.35483402381932 | epot = -11.3427831592146 | etot = -9.13334912876651 +235000 ekin = 0.822390924845208 | erot = 1.39757430015849 | epot = -11.3533143537192 | etot = -9.13334912871546 +236000 ekin = 0.793732848711787 | erot = 1.4412143339908 | epot = -11.3682963113761 | etot = -9.13334912867351 +237000 ekin = 0.769632191219323 | erot = 1.48535644446078 | epot = -11.3883377643262 | etot = -9.13334912864607 +238000 ekin = 0.75091899336586 | erot = 1.52956143549222 | epot = -11.4138295574954 | etot = -9.13334912863731 +239000 ekin = 0.738206267496961 | erot = 1.57333361162157 | epot = -11.4448890077674 | etot = -9.13334912864883 +240000 ekin = 0.731862193743725 | erot = 1.6161314997423 | epot = -11.4813428221651 | etot = -9.13334912867903 +241000 ekin = 0.731999328001734 | erot = 1.6574109045686 | epot = -11.522759361293 | etot = -9.13334912872263 +242000 ekin = 0.738482620156991 | erot = 1.69669130986306 | epot = -11.5685230587936 | etot = -9.1333491287736 +243000 ekin = 0.750955042325049 | erot = 1.73364929482319 | epot = -11.6179534659678 | etot = -9.13334912881953 +244000 ekin = 0.768877080466275 | erot = 1.76822360275613 | epot = -11.6704498120764 | etot = -9.13334912885403 +245000 ekin = 0.791573929294317 | erot = 1.8006804512131 | epot = -11.7256035093787 | etot = -9.13334912887131 +246000 ekin = 0.818282914271255 | erot = 1.83164107445169 | epot = -11.7832731175934 | etot = -9.13334912887047 +247000 ekin = 0.848193621601422 | erot = 1.8620509655523 | epot = -11.8435937160095 | etot = -9.13334912885574 +248000 ekin = 0.880474358635257 | erot = 1.89308546777779 | epot = -11.9069089552494 | etot = -9.13334912883634 +249000 ekin = 0.914280881219071 | erot = 1.92599713223872 | epot = -11.9736271422835 | etot = -9.13334912882575 +250000 ekin = 0.94874673071633 | erot = 1.96192054843713 | epot = -12.0440164079935 | etot = -9.13334912884 +251000 ekin = 0.982959063854246 | erot = 2.00165977259888 | epot = -12.1179679653479 | etot = -9.13334912889475 +252000 ekin = 1.0159294824985 | erot = 2.04549252396353 | epot = -12.1947711354629 | etot = -9.13334912900091 +253000 ekin = 1.04657777483982 | erot = 2.0930344130595 | epot = -12.2729613170591 | etot = -9.13334912915976 +254000 ekin = 1.0737354175508 | erot = 2.14319803018439 | epot = -12.3502825770981 | etot = -9.13334912936293 +255000 ekin = 1.09620163163036 | erot = 2.1943096672054 | epot = -12.4238604284173 | etot = -9.1333491295815 +256000 ekin = 1.11287206428163 | erot = 2.24438579427434 | epot = -12.4906069883387 | etot = -9.1333491297827 +257000 ekin = 1.12287782510643 | erot = 2.29146665865411 | epot = -12.5476936136919 | etot = -9.13334912993136 +258000 ekin = 1.12572293500286 | erot = 2.33396623628278 | epot = -12.5930383012896 | etot = -9.13334913000396 +259000 ekin = 1.12139026023667 | erot = 2.37095948468564 | epot = -12.625698874911 | etot = -9.13334912998872 +260000 ekin = 1.11036122819352 | erot = 2.40229658115407 | epot = -12.6460069392476 | etot = -9.13334912990001 +261000 ekin = 1.09354805445105 | erot = 2.42847877902947 | epot = -12.6553759632427 | etot = -9.13334912976214 +262000 ekin = 1.07216031825818 | erot = 2.45046938603056 | epot = -12.6559788338926 | etot = -9.13334912960391 +263000 ekin = 1.04754368718327 | erot = 2.46943297797226 | epot = -12.6503257946122 | etot = -9.13334912945668 +264000 ekin = 1.02102495133862 | erot = 2.4864784463718 | epot = -12.6408525270506 | etot = -9.13334912934016 +265000 ekin = 0.993788783443946 | erot = 2.5024706313643 | epot = -12.629608544077 | etot = -9.13334912926878 +266000 ekin = 0.966800247930228 | erot = 2.51790683905048 | epot = -12.6180562162305 | etot = -9.13334912924975 +267000 ekin = 0.94078424945952 | erot = 2.53283827184844 | epot = -12.6069716505897 | etot = -9.13334912928175 +268000 ekin = 0.916272152394679 | erot = 2.54684612152533 | epot = -12.5964674032731 | etot = -9.13334912935312 +269000 ekin = 0.893722172477494 | erot = 2.55907244306974 | epot = -12.5861437450346 | etot = -9.13334912948737 +270000 ekin = 0.873709285129105 | erot = 2.56799722891236 | epot = -12.5750556436018 | etot = -9.13334912956034 +271000 ekin = 0.857156433251675 | erot = 2.57226369508363 | epot = -12.5627692579079 | etot = -9.13334912957259 +272000 ekin = 0.845541083724106 | erot = 2.57096110909458 | epot = -12.5498513223267 | etot = -9.13334912950806 +273000 ekin = 0.840983736969804 | erot = 2.56364270819377 | epot = -12.5379755745175 | etot = -9.13334912935396 +274000 ekin = 0.846103061110532 | erot = 2.55054497183587 | epot = -12.5299971620894 | etot = -9.13334912914304 +275000 ekin = 0.863570741244998 | erot = 2.53260377851043 | epot = -12.5295236486812 | etot = -9.13334912892575 +276000 ekin = 0.895419299415327 | erot = 2.5111464501477 | epot = -12.5399148783705 | etot = -9.13334912880747 +277000 ekin = 0.942302359418886 | erot = 2.48734970425681 | epot = -12.5630011925122 | etot = -9.13334912883649 +278000 ekin = 1.002990699416 | erot = 2.46199112036415 | epot = -12.5983309488098 | etot = -9.13334912902969 +279000 ekin = 1.07434561589273 | erot = 2.43529774590776 | epot = -12.6429924911398 | etot = -9.13334912933935 +280000 ekin = 1.15182340984047 | erot = 2.40711596365535 | epot = -12.6922885031803 | etot = -9.13334912968444 +281000 ekin = 1.23030856581836 | erot = 2.37726964751256 | epot = -12.7409273433239 | etot = -9.13334912999297 +282000 ekin = 1.30483974879791 | erot = 2.34551973870794 | epot = -12.7837086176988 | etot = -9.13334913019294 +283000 ekin = 1.37151257999464 | erot = 2.31231452819903 | epot = -12.8171762384381 | etot = -9.13334913024448 +284000 ekin = 1.42789685319405 | erot = 2.27901843146221 | epot = -12.8402644148115 | etot = -9.13334913015527 +285000 ekin = 1.47299679574484 | erot = 2.24762833985835 | epot = -12.8539742655638 | etot = -9.1333491299606 +286000 ekin = 1.50701906587717 | erot = 2.22050056283345 | epot = -12.8608687584215 | etot = -9.13334912971088 +287000 ekin = 1.53099472144781 | erot = 2.19999584806517 | epot = -12.864339698972 | etot = -9.13334912945897 +288000 ekin = 1.54636449768891 | erot = 2.18811490987512 | epot = -12.8678285368147 | etot = -9.13334912925069 +289000 ekin = 1.5546116349122 | erot = 2.18618804174371 | epot = -12.8741488057733 | etot = -9.13334912911742 +290000 ekin = 1.55699428674689 | erot = 2.19466879450611 | epot = -12.8850122103266 | etot = -9.13334912907358 +291000 ekin = 1.55439775255667 | erot = 2.21306131818002 | epot = -12.9008081998533 | etot = -9.13334912911663 +292000 ekin = 1.54729960240284 | erot = 2.23998314422001 | epot = -12.9206318758538 | etot = -9.133349129231 +293000 ekin = 1.53582108608433 | erot = 2.27333490842391 | epot = -12.9425051239025 | etot = -9.13334912939425 +294000 ekin = 1.51982864506212 | erot = 2.31049721096887 | epot = -12.9636749856262 | etot = -9.13334912959518 +295000 ekin = 1.49905154213373 | erot = 2.34851873983962 | epot = -12.9809194117667 | etot = -9.13334912979334 +296000 ekin = 1.4731936480285 | erot = 2.38443281021098 | epot = -12.9909755882221 | etot = -9.13334912998259 +297000 ekin = 1.44203124546029 | erot = 2.41536854589973 | epot = -12.9907489215099 | etot = -9.13334913014992 +298000 ekin = 1.40549976702148 | erot = 2.43867409046127 | epot = -12.9775229877653 | etot = -9.13334913028256 +299000 ekin = 1.36377241662864 | erot = 2.4520487180048 | epot = -12.9491702650004 | etot = -9.13334913036692 +300000 ekin = 1.31732711912216 | erot = 2.45368408092609 | epot = -12.9043603304391 | etot = -9.13334913039084 +301000 ekin = 1.26699022414775 | erot = 2.44240353914634 | epot = -12.8427428936402 | etot = -9.13334913034613 +302000 ekin = 1.21394210637208 | erot = 2.41777278593002 | epot = -12.7650640225336 | etot = -9.13334913023146 +303000 ekin = 1.15967414429375 | erot = 2.38015189683698 | epot = -12.6731751711849 | etot = -9.13334913005414 +304000 ekin = 1.1058972625133 | erot = 2.33066939618209 | epot = -12.5699157885246 | etot = -9.13334912982919 +305000 ekin = 1.05441504199289 | erot = 2.27111808933752 | epot = -12.4588822609065 | etot = -9.13334912957608 +306000 ekin = 1.00698421397174 | erot = 2.20379218514098 | epot = -12.3441255284277 | etot = -9.13334912931499 +307000 ekin = 0.965188337627758 | erot = 2.13129764385454 | epot = -12.2298351105455 | etot = -9.13334912906317 +308000 ekin = 0.930345631944655 | erot = 2.05636814615613 | epot = -12.1200629069335 | etot = -9.13334912883274 +309000 ekin = 0.903461768093119 | erot = 1.98167791132915 | epot = -12.0184888080546 | etot = -9.13334912863236 +310000 ekin = 0.885228515008137 | erot = 1.90967870211614 | epot = -11.928256345589 | etot = -9.13334912846471 +311000 ekin = 0.876047647700593 | erot = 1.84263812610081 | epot = -11.8520349021336 | etot = -9.1333491283322 +312000 ekin = 0.876068182199119 | erot = 1.78248869456911 | epot = -11.7919060050066 | etot = -9.13334912823841 +313000 ekin = 0.885223985970029 | erot = 1.73072892882235 | epot = -11.7493020429815 | etot = -9.13334912818911 +314000 ekin = 0.903258342515253 | erot = 1.68832066988359 | epot = -11.7249281405904 | etot = -9.13334912819159 +315000 ekin = 0.929731391718592 | erot = 1.65558558099713 | epot = -11.7186661009688 | etot = -9.13334912825309 +316000 ekin = 0.964013828970858 | erot = 1.63211973509021 | epot = -11.7294826924394 | etot = -9.1333491283783 +317000 ekin = 1.00527629211699 | erot = 1.61675326466453 | epot = -11.7553786853479 | etot = -9.1333491285664 +318000 ekin = 1.05248736450163 | erot = 1.60758570940549 | epot = -11.7934222027153 | etot = -9.13334912880819 +319000 ekin = 1.1044333286817 | erot = 1.60212494474497 | epot = -11.8399074025109 | etot = -9.13334912908421 +320000 ekin = 1.1597692492087 | erot = 1.59754526105393 | epot = -11.8906636396272 | etot = -9.13334912936456 +321000 ekin = 1.2171035230572 | erot = 1.5910555451816 | epot = -11.9415081978521 | etot = -9.13334912961331 +322000 ekin = 1.27510751189521 | erot = 1.58033324923083 | epot = -11.9887898909203 | etot = -9.13334912979421 +323000 ekin = 1.33263084645762 | erot = 1.56394390937339 | epot = -12.0299238857107 | etot = -9.13334912987968 +324000 ekin = 1.38879590712265 | erot = 1.54164678485237 | epot = -12.063791821834 | etot = -9.13334912985893 +325000 ekin = 1.44304623679759 | erot = 1.51450056885262 | epot = -12.0908959353912 | etot = -9.13334912974094 +326000 ekin = 1.49513435445731 | erot = 1.48473073066047 | epot = -12.1132142146707 | etot = -9.13334912955292 +327000 ekin = 1.54505065938393 | erot = 1.4553840086034 | epot = -12.1337837973215 | etot = -9.13334912933419 +328000 ekin = 1.59290981434296 | erot = 1.42984788209339 | epot = -12.1561068255639 | etot = -9.13334912912751 +329000 ekin = 1.63881860975664 | erot = 1.41133335467791 | epot = -12.1835010934064 | etot = -9.1333491289718 +330000 ekin = 1.68274896183131 | erot = 1.40240729591343 | epot = -12.218505386642 | etot = -9.13334912889729 +331000 ekin = 1.72443467169599 | erot = 1.40463116342023 | epot = -12.2624149640395 | etot = -9.1333491289233 +332000 ekin = 1.76330533674359 | erot = 1.41833479327455 | epot = -12.3149892590745 | etot = -9.1333491290564 +333000 ekin = 1.79846823309319 | erot = 1.44253834966228 | epot = -12.3743557120445 | etot = -9.13334912928905 +334000 ekin = 1.82874900591132 | erot = 1.47503277033862 | epot = -12.4371309058477 | etot = -9.13334912959778 +335000 ekin = 1.8527961611585 | erot = 1.51263570197517 | epot = -12.4987809930765 | etot = -9.1333491299428 +336000 ekin = 1.86927630558798 | erot = 1.55160162438179 | epot = -12.5542270602388 | etot = -9.13334913026902 +337000 ekin = 1.87711735413951 | erot = 1.58820049773354 | epot = -12.5986669823879 | etot = -9.13334913051487 +338000 ekin = 1.87574840923178 | erot = 1.61938868722965 | epot = -12.6284862270854 | etot = -9.13334913062394 +339000 ekin = 1.86534866362725 | erot = 1.64338736517895 | epot = -12.642085159367 | etot = -9.13334913056081 +340000 ekin = 1.84695798886992 | erot = 1.66009075059819 | epot = -12.6403978697906 | etot = -9.13334913032249 +341000 ekin = 1.82243969076641 | erot = 1.67114820362656 | epot = -12.6269370243339 | etot = -9.13334912994089 +342000 ekin = 1.79428655955863 | erot = 1.67969211618972 | epot = -12.6073278052237 | etot = -9.13334912947535 +343000 ekin = 1.76531632972518 | erot = 1.68978090506938 | epot = -12.5884463637906 | etot = -9.13334912899607 +344000 ekin = 1.73833039739252 | erot = 1.70570000747066 | epot = -12.5773795334329 | etot = -9.13334912856973 +345000 ekin = 1.71580589060231 | erot = 1.73127559556374 | epot = -12.5804306144146 | etot = -9.13334912824853 +346000 ekin = 1.69966353097544 | erot = 1.76931234934783 | epot = -12.6023250083902 | etot = -9.13334912806694 +347000 ekin = 1.69112042623226 | erot = 1.82120184302293 | epot = -12.645671397299 | etot = -9.13334912804384 +348000 ekin = 1.69061396982694 | erot = 1.88669704033623 | epot = -12.7106601383494 | etot = -9.13334912818626 +349000 ekin = 1.69777681788133 | erot = 1.96382926866199 | epot = -12.794955215034 | etot = -9.13334912849066 +350000 ekin = 1.71145115010181 | erot = 2.04895591402545 | epot = -12.8937561930696 | etot = -9.13334912894229 +351000 ekin = 1.72974629646103 | erot = 2.13695636910498 | epot = -13.0000517950758 | etot = -9.13334912950983 +352000 ekin = 1.75015893903866 | erot = 2.22162008456598 | epot = -13.1051281537444 | etot = -9.13334913013976 +353000 ekin = 1.76978034905491 | erot = 2.29627029645961 | epot = -13.1993997762708 | etot = -9.13334913075623 +354000 ekin = 1.78560210911906 | erot = 2.35462017023395 | epot = -13.2735714106196 | etot = -9.13334913126658 +355000 ekin = 1.79489785472806 | erot = 2.39176336004141 | epot = -13.3200103463507 | etot = -9.13334913158127 +356000 ekin = 1.79561393246573 | erot = 2.40509186859492 | epot = -13.3340549326994 | etot = -9.13334913163879 +357000 ekin = 1.78667091072634 | erot = 2.39487614134892 | epot = -13.3148961835031 | etot = -9.13334913142788 +358000 ekin = 1.76810167230531 | erot = 2.36429897994129 | epot = -13.2657497831711 | etot = -9.13334913092448 +359000 ekin = 1.74170569044722 | erot = 2.31907684809606 | epot = -13.1941316689281 | etot = -9.13334913038481 +360000 ekin = 1.70943632676222 | erot = 2.26611368397256 | epot = -13.1088991405414 | etot = -9.13334912980664 +361000 ekin = 1.67315005965478 | erot = 2.21234166615806 | epot = -13.018840855099 | etot = -9.13334912928617 +362000 ekin = 1.63480994001595 | erot = 2.16376887379898 | epot = -12.9319279427065 | etot = -9.13334912889153 +363000 ekin = 1.59622606057555 | erot = 2.12469986683813 | epot = -12.8542750560706 | etot = -9.13334912865692 +364000 ekin = 1.5589020583379 | erot = 2.09734631559819 | epot = -12.7895975025215 | etot = -9.13334912858545 +365000 ekin = 1.52397421076772 | erot = 2.08181308416711 | epot = -12.7391364235913 | etot = -9.13334912865645 +366000 ekin = 1.49221260734006 | erot = 2.07639009796189 | epot = -12.701951834135 | etot = -9.13334912883309 +367000 ekin = 1.46405952364948 | erot = 2.07805510122142 | epot = -12.6754637539433 | etot = -9.13334912907236 +368000 ekin = 1.43967726932382 | erot = 2.08307216057574 | epot = -12.6560985592331 | etot = -9.13334912933359 +369000 ekin = 1.41899010811481 | erot = 2.08756917147258 | epot = -12.6399084091724 | etot = -9.13334912958505 +370000 ekin = 1.40171557356767 | erot = 2.08800173652873 | epot = -12.6230664399019 | etot = -9.13334912980549 +371000 ekin = 1.38739280854876 | erot = 2.08146226240639 | epot = -12.6022042009371 | etot = -9.13334912998193 +372000 ekin = 1.375423403086 | erot = 2.06585193702358 | epot = -12.5746244702138 | etot = -9.13334913010421 +373000 ekin = 1.36513752357924 | erot = 2.03996886737186 | epot = -12.5384555211132 | etot = -9.13334913016208 +374000 ekin = 1.35583949105185 | erot = 2.00351975772513 | epot = -12.4927083789465 | etot = -9.13334913016951 +375000 ekin = 1.3469415771146 | erot = 1.95716038268622 | epot = -12.4374510898688 | etot = -9.13334913006802 +376000 ekin = 1.33814968105267 | erot = 1.90258032253411 | epot = -12.374079133484 | etot = -9.1333491298972 +377000 ekin = 1.32936261120809 | erot = 1.84227265725305 | epot = -12.3049843981379 | etot = -9.13334912967674 +378000 ekin = 1.32063159991346 | erot = 1.77926043319111 | epot = -12.2332411625435 | etot = -9.13334912943897 +379000 ekin = 1.31208340368852 | erot = 1.71672941783702 | epot = -12.1621619507414 | etot = -9.13334912921587 +380000 ekin = 1.30384179784202 | erot = 1.65764204155844 | epot = -12.0948329684338 | etot = -9.13334912903333 +381000 ekin = 1.29657917475819 | erot = 1.60487100826734 | epot = -12.0347993118452 | etot = -9.1333491288197 +382000 ekin = 1.29092190134678 | erot = 1.56061067707121 | epot = -11.9848817072432 | etot = -9.13334912882517 +383000 ekin = 1.28620909068409 | erot = 1.52536833770036 | epot = -11.9449265572231 | etot = -9.13334912883862 +384000 ekin = 1.28205683099616 | erot = 1.49922806168849 | epot = -11.9146340215161 | etot = -9.13334912883142 +385000 ekin = 1.27850478017856 | erot = 1.48216189144843 | epot = -11.8940158004142 | etot = -9.13334912878723 +386000 ekin = 1.27603762173984 | erot = 1.47423730493031 | epot = -11.8836240553802 | etot = -9.13334912871007 +387000 ekin = 1.27548287271899 | erot = 1.47565716104753 | epot = -11.8844891623902 | etot = -9.13334912862373 +388000 ekin = 1.27780044585774 | erot = 1.48660964097436 | epot = -11.8977592153985 | etot = -9.13334912856639 +389000 ekin = 1.28381262703564 | erot = 1.50697425852414 | epot = -11.9241360141384 | etot = -9.13334912857858 +390000 ekin = 1.29393930260842 | erot = 1.5359803506825 | epot = -11.9632687819857 | etot = -9.13334912869483 +391000 ekin = 1.30800074456097 | erot = 1.57190984924444 | epot = -12.0132597227344 | etot = -9.13334912892897 +392000 ekin = 1.32513099179446 | erot = 1.61197584867697 | epot = -12.0704559697433 | etot = -9.13334912927191 +393000 ekin = 1.34382543000147 | erot = 1.65241448883368 | epot = -12.1295890485249 | etot = -9.13334912968977 +394000 ekin = 1.36212102398643 | erot = 1.68881012624722 | epot = -12.1842802803624 | etot = -9.13334913012874 +395000 ekin = 1.37788072140321 | erot = 1.7166159305402 | epot = -12.2278457824674 | etot = -9.133349130524 +396000 ekin = 1.3891315451241 | erot = 1.73181112618322 | epot = -12.2542918021046 | etot = -9.13334913079729 +397000 ekin = 1.39439357479747 | erot = 1.73153617599057 | epot = -12.2592788817204 | etot = -9.13334913093237 +398000 ekin = 1.39293904659196 | erot = 1.71441550438758 | epot = -12.2407036818553 | etot = -9.13334913087581 +399000 ekin = 1.38493174777447 | erot = 1.68094766350892 | epot = -12.1992285419451 | etot = -9.13334913066174 +400000 ekin = 1.37142116074107 | erot = 1.63330764197893 | epot = -12.1380779330254 | etot = -9.13334913030538 +401000 ekin = 1.35412991252456 | erot = 1.57501044311705 | epot = -12.0624894855338 | etot = -9.13334912989223 +402000 ekin = 1.33517991856915 | erot = 1.51048364980033 | epot = -11.9790126977739 | etot = -9.13334912940442 +403000 ekin = 1.31709653187286 | erot = 1.44458891478893 | epot = -11.8950345756002 | etot = -9.1333491289384 +404000 ekin = 1.30234590493894 | erot = 1.38198365576712 | epot = -11.8176786892411 | etot = -9.13334912853505 +405000 ekin = 1.29301391716292 | erot = 1.32673455588809 | epot = -11.7530976012888 | etot = -9.13334912823777 +406000 ekin = 1.2906546746281 | erot = 1.28204116436323 | epot = -11.7060449670169 | etot = -9.13334912802553 +407000 ekin = 1.29643237294816 | erot = 1.25006436588362 | epot = -11.6798458667507 | etot = -9.13334912791893 +408000 ekin = 1.31094700615268 | erot = 1.23190986721473 | epot = -11.6762060012832 | etot = -9.13334912791582 +409000 ekin = 1.33422438303379 | erot = 1.2276348975221 | epot = -11.6952084085706 | etot = -9.13334912801469 +410000 ekin = 1.36572014154963 | erot = 1.23628017302459 | epot = -11.7353494427862 | etot = -9.13334912821197 +411000 ekin = 1.40432668760761 | erot = 1.25592548503539 | epot = -11.7936013011441 | etot = -9.13334912850106 +412000 ekin = 1.44839088645853 | erot = 1.28379672627828 | epot = -11.8655367416044 | etot = -9.1333491288676 +413000 ekin = 1.49576795241833 | erot = 1.31646032748912 | epot = -11.9455774091907 | etot = -9.13334912928325 +414000 ekin = 1.54394920889439 | erot = 1.35014055217853 | epot = -12.0274388907764 | etot = -9.13334912970352 +415000 ekin = 1.59029421705134 | erot = 1.38116660571177 | epot = -12.1048099528334 | etot = -9.1333491300703 +416000 ekin = 1.63235973909082 | erot = 1.40649922749302 | epot = -12.1722080969089 | etot = -9.13334913032505 +417000 ekin = 1.66825800489195 | erot = 1.42422016761186 | epot = -12.2258273029357 | etot = -9.13334913043192 +418000 ekin = 1.69693219837217 | erot = 1.43381449957501 | epot = -12.2640958283216 | etot = -9.13334913037439 +419000 ekin = 1.71824951894772 | erot = 1.43620625779646 | epot = -12.2878049069281 | etot = -9.13334913018396 +420000 ekin = 1.73288337430552 | erot = 1.43350825350801 | epot = -12.2997407577245 | etot = -9.13334912991093 +421000 ekin = 1.74204129532364 | erot = 1.42856028674966 | epot = -12.3039507116832 | etot = -9.13334912960995 +422000 ekin = 1.747137018077 | erot = 1.42445618730832 | epot = -12.3049423347126 | etot = -9.13334912932731 +423000 ekin = 1.74949063384699 | erot = 1.42413436044387 | epot = -12.306974123395 | etot = -9.1333491291041 +424000 ekin = 1.75009754642992 | erot = 1.43005641925135 | epot = -12.3135030946279 | etot = -9.13334912894662 +425000 ekin = 1.74947257256707 | erot = 1.444124008023 | epot = -12.3269457094739 | etot = -9.13334912888379 +426000 ekin = 1.69664946387304 | erot = 1.40011304962389 | epot = -12.2301116345961 | etot = -9.13334912109913 +427000 ekin = 1.76448154346204 | erot = 1.46695774970338 | epot = -12.3647884699843 | etot = -9.13334917681884 +428000 ekin = 1.77864040382746 | erot = 1.51204937412204 | epot = -12.4240389057571 | etot = -9.13334912780757 +429000 ekin = 1.77744254090666 | erot = 1.55645173379844 | epot = -12.4672434028093 | etot = -9.13334912810418 +430000 ekin = 1.7686448171393 | erot = 1.60567169371135 | epot = -12.5076656392882 | etot = -9.13334912843752 +431000 ekin = 1.75041443993065 | erot = 1.656556385141 | epot = -12.5403199538331 | etot = -9.13334912876141 +432000 ekin = 1.72143753020943 | erot = 1.70559294341285 | epot = -12.5603796026436 | etot = -9.13334912902135 +433000 ekin = 1.68129756274214 | erot = 1.74934007551085 | epot = -12.5639867674179 | etot = -9.13334912916489 +434000 ekin = 1.63077650979966 | erot = 1.78490039303256 | epot = -12.5490260319869 | etot = -9.13334912915467 +435000 ekin = 1.57198882084486 | erot = 1.81033246556167 | epot = -12.515670415387 | etot = -9.13334912898049 +436000 ekin = 1.50828072851469 | erot = 1.82489908961086 | epot = -12.4665289467905 | etot = -9.13334912866496 +437000 ekin = 1.44388315301224 | erot = 1.82908776307999 | epot = -12.4063200443506 | etot = -9.13334912825842 +438000 ekin = 1.38337900429711 | erot = 1.82441107452547 | epot = -12.3411392066475 | etot = -9.13334912782494 +439000 ekin = 1.33110407576218 | erot = 1.81306694504111 | epot = -12.2775201482279 | etot = -9.13334912742462 +440000 ekin = 1.29061754888995 | erot = 1.797574755084 | epot = -12.221541431074 | etot = -9.1333491271001 +441000 ekin = 1.26434687832149 | erot = 1.7804860060744 | epot = -12.178182011266 | etot = -9.13334912687011 +442000 ekin = 1.25344985037915 | erot = 1.76421040799475 | epot = -12.1510093851077 | etot = -9.13334912673382 +443000 ekin = 1.25787308938395 | erot = 1.7509340047674 | epot = -12.1421562208302 | etot = -9.13334912667889 +444000 ekin = 1.27654491138783 | erot = 1.74256727852053 | epot = -12.1524613166015 | etot = -9.13334912669317 +445000 ekin = 1.30762960642458 | erot = 1.74066161517062 | epot = -12.1816403483642 | etot = -9.13334912676901 +446000 ekin = 1.34878485335209 | erot = 1.74626611357119 | epot = -12.2284000938274 | etot = -9.13334912690415 +447000 ekin = 1.39739993763723 | erot = 1.75974793458104 | epot = -12.2904969993182 | etot = -9.13334912709987 +448000 ekin = 1.45076649190894 | erot = 1.78060717934165 | epot = -12.3647227986027 | etot = -9.13334912735207 +449000 ekin = 1.50623999605352 | erot = 1.80738848344728 | epot = -12.4469776071503 | etot = -9.13334912764947 +450000 ekin = 1.56138908054594 | erot = 1.83773497344371 | epot = -12.5324731819605 | etot = -9.13334912797084 +451000 ekin = 1.61412412964519 | erot = 1.86859865234448 | epot = -12.6160719102763 | etot = -9.13334912828666 +452000 ekin = 1.66280931630107 | erot = 1.896585480364 | epot = -12.6927439252279 | etot = -9.13334912856284 +453000 ekin = 1.70634971637084 | erot = 1.91837476586823 | epot = -12.7580736110105 | etot = -9.13334912877139 +454000 ekin = 1.74423056750362 | erot = 1.93111374790659 | epot = -12.8086934443054 | etot = -9.13334912889515 +455000 ekin = 1.77648988409882 | erot = 1.93270291378201 | epot = -12.8425419268134 | etot = -9.13334912893253 +456000 ekin = 1.80361911556738 | erot = 1.92192628287829 | epot = -12.8588945273419 | etot = -9.1333491288962 +457000 ekin = 1.8264001670622 | erot = 1.89842961389973 | epot = -12.8581789097702 | etot = -9.13334912880823 +458000 ekin = 1.84570455025944 | erot = 1.86259298695776 | epot = -12.8416466659122 | etot = -9.13334912869503 +459000 ekin = 1.86229070170956 | erot = 1.8153534231518 | epot = -12.8109932534391 | etot = -9.13334912857775 +460000 ekin = 1.87663848085872 | erot = 1.75803306182823 | epot = -12.7680206711605 | etot = -9.13334912847359 +461000 ekin = 1.88883864523193 | erot = 1.6921974638434 | epot = -12.7143852374645 | etot = -9.13334912838912 +462000 ekin = 1.89856203652303 | erot = 1.61956678027482 | epot = -12.6514779451224 | etot = -9.13334912832454 +463000 ekin = 1.90510221764477 | erot = 1.54196437877891 | epot = -12.5804157246998 | etot = -9.13334912827614 +464000 ekin = 1.90747686786656 | erot = 1.4612799319853 | epot = -12.5021059280867 | etot = -9.13334912823483 +465000 ekin = 1.9045797735616 | erot = 1.37946070091786 | epot = -12.4173896026653 | etot = -9.1333491281858 +466000 ekin = 1.89536572152326 | erot = 1.29851485172206 | epot = -12.3272297013668 | etot = -9.13334912812148 +467000 ekin = 1.87901831709977 | erot = 1.22048659414433 | epot = -12.23285403928 | etot = -9.13334912803586 +468000 ekin = 1.85509917792058 | erot = 1.14739126284092 | epot = -12.1358395686896 | etot = -9.13334912792812 +469000 ekin = 1.82366605107319 | erot = 1.08110787535124 | epot = -12.0381230542268 | etot = -9.13334912780234 +470000 ekin = 1.7853521607561 | erot = 1.02324127043709 | epot = -11.9419425588574 | etot = -9.13334912766423 +471000 ekin = 1.7414105151338 | erot = 0.974982090043943 | epot = -11.8497417326969 | etot = -9.13334912751916 +472000 ekin = 1.69372019705931 | erot = 0.937000644455253 | epot = -11.7640699688863 | etot = -9.13334912737171 +473000 ekin = 1.6447363277097 | erot = 0.909402534932154 | epot = -11.6874879898691 | etot = -9.13334912722722 +474000 ekin = 1.5973499517736 | erot = 0.891755018431853 | epot = -11.6224540973011 | etot = -9.13334912709562 +475000 ekin = 1.55462885495252 | erot = 0.883174765260568 | epot = -11.5711527472047 | etot = -9.13334912699162 +476000 ekin = 1.51944866261163 | erot = 0.882459888569966 | epot = -11.5352576781134 | etot = -9.1333491269318 +477000 ekin = 1.49408243529036 | erot = 0.888250161717261 | epot = -11.5156817239355 | etot = -9.1333491269279 +478000 ekin = 1.47985622585634 | erot = 0.899197335533166 | epot = -11.5124026883716 | etot = -9.13334912698206 +479000 ekin = 1.47695373952855 | erot = 0.914115348457805 | epot = -11.5244182150803 | etot = -9.13334912709393 +480000 ekin = 1.48439477575462 | erot = 0.932072516621168 | epot = -11.5498164196182 | etot = -9.13334912724239 +481000 ekin = 1.50022741217527 | erot = 0.952423999184411 | epot = -11.5860005387821 | etot = -9.13334912742244 +482000 ekin = 1.52172985963446 | erot = 0.97475421184665 | epot = -11.6298331991077 | etot = -9.13334912762659 +483000 ekin = 1.54567018241534 | erot = 0.998770450814866 | epot = -11.6777897610761 | etot = -9.13334912784592 +484000 ekin = 1.5685861472313 | erot = 1.02419763510865 | epot = -11.7261329104088 | etot = -9.1333491280688 +485000 ekin = 1.58707346955127 | erot = 1.05070585623149 | epot = -11.7711284540624 | etot = -9.13334912827961 +486000 ekin = 1.59807103603154 | erot = 1.07788995424692 | epot = -11.8093101187385 | etot = -9.13334912845999 +487000 ekin = 1.59911980804505 | erot = 1.10529931942179 | epot = -11.8377682560599 | etot = -9.13334912859303 +488000 ekin = 1.58856342116736 | erot = 1.13249736396222 | epot = -11.8544099137967 | etot = -9.13334912866709 +489000 ekin = 1.56566142904791 | erot = 1.15911683125798 | epot = -11.8581273889847 | etot = -9.13334912867881 +490000 ekin = 1.53060268554749 | erot = 1.18488502427328 | epot = -11.8488368384543 | etot = -9.13334912863355 +491000 ekin = 1.48443427069566 | erot = 1.20959914015976 | epot = -11.8273825393281 | etot = -9.13334912847264 +492000 ekin = 1.42930345354542 | erot = 1.23291829593324 | epot = -11.7955708778628 | etot = -9.13334912838418 +493000 ekin = 1.3674956414523 | erot = 1.25438544605066 | epot = -11.7552302157787 | etot = -9.13334912827576 +494000 ekin = 1.30137262988138 | erot = 1.27348228002512 | epot = -11.7082040380618 | etot = -9.13334912815528 +495000 ekin = 1.23360970817057 | erot = 1.28954660636107 | epot = -11.6565054425592 | etot = -9.13334912802759 +496000 ekin = 1.16375548640953 | erot = 1.30023195608579 | epot = -11.5973366205401 | etot = -9.13334917804474 +497000 ekin = 1.02574644939849 | erot = 1.24927230426271 | epot = -11.4083678755035 | etot = -9.13334912184225 +498000 ekin = 1.13339044616365 | erot = 1.24939677704376 | epot = -11.5161363891151 | etot = -9.13334916590768 +499000 ekin = 1.1643476239325 | erot = 1.25864673154937 | epot = -11.5563434800381 | etot = -9.13334912455626 +500000 ekin = 1.16768486506762 | erot = 1.25769344443886 | epot = -11.5587274345815 | etot = -9.13334912507499 +501000 ekin = 1.1755989549752 | erot = 1.2503891544258 | epot = -11.559337234304 | etot = -9.13334912490305 +502000 ekin = 1.18926606273897 | erot = 1.23784323633022 | epot = -11.5604584237503 | etot = -9.13334912468111 +503000 ekin = 1.20982408114902 | erot = 1.22204157664311 | epot = -11.565214782232 | etot = -9.13334912443988 +504000 ekin = 1.23811782736999 | erot = 1.20572865378421 | epot = -11.5771956053585 | etot = -9.13334912420434 +505000 ekin = 1.27460966228739 | erot = 1.19199209322131 | epot = -11.59995087951 | etot = -9.13334912400132 +506000 ekin = 1.31928047819545 | erot = 1.18393687677876 | epot = -11.6365664788295 | etot = -9.13334912385525 +507000 ekin = 1.3715770090045 | erot = 1.18435118386581 | epot = -11.6892773166538 | etot = -9.13334912378344 +508000 ekin = 1.43042502721483 | erot = 1.19541187481579 | epot = -11.7591860258242 | etot = -9.13334912379356 +509000 ekin = 1.49431413372792 | erot = 1.21846596295654 | epot = -11.846129220568 | etot = -9.13334912388354 +510000 ekin = 1.56143815899919 | erot = 1.25390781315394 | epot = -11.9486950961969 | etot = -9.13334912404381 +511000 ekin = 1.62985405359467 | erot = 1.30115550673995 | epot = -12.0643586845959 | etot = -9.13334912426124 +512000 ekin = 1.69760948238373 | erot = 1.35871536004307 | epot = -12.1896739669509 | etot = -9.1333491245241 +513000 ekin = 1.76279412854719 | erot = 1.42431355746776 | epot = -12.32045681084 | etot = -9.13334912482506 +514000 ekin = 1.82349978434154 | erot = 1.49507387317791 | epot = -12.4519227826782 | etot = -9.13334912515872 +515000 ekin = 1.87772649131677 | erot = 1.56773414236142 | epot = -12.5788097591923 | etot = -9.1333491255141 +516000 ekin = 1.92332299298482 | erot = 1.63891274675915 | epot = -12.69558486561 | etot = -9.13334912586601 +517000 ekin = 1.95805681102052 | erot = 1.70543998934056 | epot = -12.7968459265345 | etot = -9.1333491261734 +518000 ekin = 1.97984991947006 | erot = 1.76473849815274 | epot = -12.8779375440109 | etot = -9.1333491263881 +519000 ekin = 1.98711819296696 | erot = 1.81518192784922 | epot = -12.9356492472873 | etot = -9.13334912647111 +520000 ekin = 1.97908911077209 | erot = 1.85632478175102 | epot = -12.9687630189357 | etot = -9.13334912641256 +521000 ekin = 1.95594858056403 | erot = 1.88892760796725 | epot = -12.978225314758 | etot = -9.13334912622669 +522000 ekin = 1.91881161738194 | erot = 1.91475582237519 | epot = -12.9669165657085 | etot = -9.1333491259514 +523000 ekin = 1.86954045343306 | erot = 1.93620351350347 | epot = -12.9390930925726 | etot = -9.13334912563611 +524000 ekin = 1.81047332181718 | erot = 1.95582271022186 | epot = -12.8996451573712 | etot = -9.13334912533215 +525000 ekin = 1.74413482435723 | erot = 1.97582576721634 | epot = -12.8533097166606 | etot = -9.13334912508703 +526000 ekin = 1.67297434024948 | erot = 1.99761678040473 | epot = -12.8039402455928 | etot = -9.13334912493856 +527000 ekin = 1.59916865616217 | erot = 2.02141684187625 | epot = -12.7539346229455 | etot = -9.13334912490706 +528000 ekin = 1.52452149634667 | erot = 2.04605877912579 | epot = -12.7039294004615 | etot = -9.13334912498898 +529000 ekin = 1.4504814163804 | erot = 2.06903286947785 | epot = -12.6528634110109 | etot = -9.13334912515263 +530000 ekin = 1.37827485203354 | erot = 2.08683821123061 | epot = -12.5984621886057 | etot = -9.1333491253415 +531000 ekin = 1.30911544825154 | erot = 2.09562136598167 | epot = -12.53808593972 | etot = -9.13334912548683 +532000 ekin = 1.24441932206878 | erot = 2.09198653946278 | epot = -12.4697549870582 | etot = -9.13334912552664 +533000 ekin = 1.18594679653148 | erot = 2.07377924595488 | epot = -12.3930751679106 | etot = -9.13334912542429 +534000 ekin = 1.13581312461376 | erot = 2.04062941960208 | epot = -12.3097916693946 | etot = -9.13334912517874 +535000 ekin = 1.09635528031422 | erot = 1.99411201499615 | epot = -12.2238164201335 | etot = -9.13334912482314 +536000 ekin = 1.06988655695605 | erot = 1.93750945181515 | epot = -12.1407451331851 | etot = -9.13334912441391 +537000 ekin = 1.05839509271265 | erot = 1.87547351818717 | epot = -12.0672177348934 | etot = -9.1333491239936 +538000 ekin = 1.06323891385521 | erot = 1.81331424698605 | epot = -12.0099022845203 | etot = -9.13334912367902 +539000 ekin = 1.08487929969981 | erot = 1.75562392314816 | epot = -11.9738523463418 | etot = -9.13334912349383 +540000 ekin = 1.12268189022981 | erot = 1.70611667318581 | epot = -11.9621476868903 | etot = -9.13334912347465 +541000 ekin = 1.17481105395874 | erot = 1.66717481230911 | epot = -11.9753349899066 | etot = -9.13334912363877 +542000 ekin = 1.23824417790952 | erot = 1.63956314455245 | epot = -12.0111564464417 | etot = -9.13334912397975 +543000 ekin = 1.30892832432068 | erot = 1.62236761446663 | epot = -12.0646450632504 | etot = -9.13334912446311 +544000 ekin = 1.38208514507537 | erot = 1.61318872881518 | epot = -12.1286229989214 | etot = -9.1333491250308 +545000 ekin = 1.45263801176084 | erot = 1.60857948401539 | epot = -12.1945666213831 | etot = -9.1333491256069 +546000 ekin = 1.51570974605567 | erot = 1.60467377472626 | epot = -12.2537326468929 | etot = -9.133349126111 +547000 ekin = 1.56711452712117 | erot = 1.59788800381426 | epot = -12.2983516574103 | etot = -9.13334912647489 +548000 ekin = 1.60376221827898 | erot = 1.58554162816415 | epot = -12.3226529730993 | etot = -9.13334912665618 +549000 ekin = 1.6239104162608 | erot = 1.56625626420984 | epot = -12.3235158071168 | etot = -9.13334912664616 +550000 ekin = 1.62723358008838 | erot = 1.54012357328336 | epot = -12.3007062798175 | etot = -9.13334912644577 +551000 ekin = 1.61471889891529 | erot = 1.50851459570431 | epot = -12.2565826207644 | etot = -9.13334912614485 +552000 ekin = 1.58843016682267 | erot = 1.47348936383955 | epot = -12.1952686564325 | etot = -9.13334912577033 +553000 ekin = 1.55120098109845 | erot = 1.43753302718781 | epot = -12.122083133656 | etot = -9.13334912536972 +554000 ekin = 1.50631636213089 | erot = 1.40318755322937 | epot = -12.0428530403387 | etot = -9.13334912497846 +555000 ekin = 1.4572287898642 | erot = 1.37279698199754 | epot = -11.9633748964818 | etot = -9.13334912462009 +556000 ekin = 1.40732293285075 | erot = 1.3483759063889 | epot = -11.8890479635463 | etot = -9.13334912430663 +557000 ekin = 1.35973750772758 | erot = 1.33157707038824 | epot = -11.8246637021589 | etot = -9.13334912404312 +558000 ekin = 1.31723590732834 | erot = 1.32371628032663 | epot = -11.7743013114869 | etot = -9.13334912383197 +559000 ekin = 1.28211028309013 | erot = 1.32580526483731 | epot = -11.741264671604 | etot = -9.1333491236766 +560000 ekin = 1.25610590404742 | erot = 1.33855626265929 | epot = -11.7280112902901 | etot = -9.13334912358343 +561000 ekin = 1.24035844263181 | erot = 1.36234138770408 | epot = -11.7360489538967 | etot = -9.13334912356079 +562000 ekin = 1.23534624012527 | erot = 1.39711468447578 | epot = -11.7658100482175 | etot = -9.13334912361642 +563000 ekin = 1.24087113988324 | erot = 1.44233150298486 | epot = -11.8165517666192 | etot = -9.13334912375111 +564000 ekin = 1.25609129142956 | erot = 1.4969187586782 | epot = -11.8863591740616 | etot = -9.13334912395381 +565000 ekin = 1.27963015842528 | erot = 1.55937933471346 | epot = -11.9723586173274 | etot = -9.13334912418865 +566000 ekin = 1.30976945418407 | erot = 1.62795664726333 | epot = -12.0710752258958 | etot = -9.13334912444839 +567000 ekin = 1.344698735113 | erot = 1.70073738337239 | epot = -12.1787852431764 | etot = -9.13334912469102 +568000 ekin = 1.38275779930764 | erot = 1.77591787230402 | epot = -12.2920247965167 | etot = -9.13334912490504 +569000 ekin = 1.42260294142294 | erot = 1.85183127902069 | epot = -12.4077833455384 | etot = -9.1333491250948 +570000 ekin = 1.46311433096022 | erot = 1.92670412004672 | epot = -12.5231675763748 | etot = -9.13334912536789 +571000 ekin = 1.50327753328857 | erot = 1.99853100880341 | epot = -12.6351576677733 | etot = -9.13334912568128 +572000 ekin = 1.54192966726581 | erot = 2.06497613729518 | epot = -12.7402549304361 | etot = -9.13334912587511 +573000 ekin = 1.57823855406838 | erot = 2.12427016696112 | epot = -12.835857846987 | etot = -9.13334912595753 +574000 ekin = 1.61207502224081 | erot = 2.17570201380447 | epot = -12.9211261619157 | etot = -9.13334912587043 +575000 ekin = 1.64402582173477 | erot = 2.22028441013993 | epot = -12.9976593575004 | etot = -9.13334912562575 +576000 ekin = 1.67538587678027 | erot = 2.26042238856247 | epot = -13.0691573906338 | etot = -9.13334912529101 +577000 ekin = 1.70789209378595 | erot = 2.29915883242291 | epot = -13.1404000511767 | etot = -9.13334912496781 +578000 ekin = 1.74326819508035 | erot = 2.33909725076145 | epot = -13.2157145705905 | etot = -9.13334912474872 +579000 ekin = 1.7827223183793 | erot = 2.38182643841946 | epot = -13.2978978814936 | etot = -9.13334912469486 +580000 ekin = 1.82652189372618 | erot = 2.42751679139504 | epot = -13.3873878099544 | etot = -9.13334912483318 +581000 ekin = 1.87370675175069 | erot = 2.47480205693684 | epot = -13.4818579338617 | etot = -9.13334912517416 +582000 ekin = 1.92197052578215 | erot = 2.52092715153037 | epot = -13.5762468029727 | etot = -9.13334912566015 +583000 ekin = 1.96774925896673 | erot = 2.56227660801418 | epot = -13.6633749932215 | etot = -9.13334912624057 +584000 ekin = 2.0065737454006 | erot = 2.59498886542612 | epot = -13.7349117376471 | etot = -9.13334912682034 +585000 ekin = 2.03371871575598 | erot = 2.61566274200138 | epot = -13.7827305850398 | etot = -9.1333491272824 +586000 ekin = 2.04507827703247 | erot = 2.62214006251252 | epot = -13.8005674670615 | etot = -9.13334912751656 +587000 ekin = 2.03806243485687 | erot = 2.6141199488886 | epot = -13.7855315112053 | etot = -9.13334912745978 +588000 ekin = 2.01223115184467 | erot = 2.59335030111899 | epot = -13.7389305800891 | etot = -9.13334912712544 +589000 ekin = 1.96942837554751 | erot = 2.56324673362657 | epot = -13.6660242357784 | etot = -9.13334912660433 +590000 ekin = 1.91334419959251 | erot = 2.52801524733212 | epot = -13.5747085729566 | etot = -9.13334912603195 +591000 ekin = 1.84865383331094 | erot = 2.49158313368622 | epot = -13.4735860925327 | etot = -9.13334912553558 +592000 ekin = 1.78006004420174 | erot = 2.45674050608108 | epot = -13.370149675468 | etot = -9.13334912518518 +593000 ekin = 1.71159279762799 | erot = 2.42478693108793 | epot = -13.2697288536947 | etot = -9.13334912497879 +594000 ekin = 1.6463494640605 | erot = 2.39569805900865 | epot = -13.1753966479402 | etot = -9.13334912487103 +595000 ekin = 1.58659479949651 | erot = 2.36854432556728 | epot = -13.088488249883 | etot = -9.13334912481918 +596000 ekin = 1.53398103552138 | erot = 2.34182175784987 | epot = -13.0091519181817 | etot = -9.13334912481045 +597000 ekin = 1.48969441623305 | erot = 2.31355286210216 | epot = -12.9365964031866 | etot = -9.13334912485139 +598000 ekin = 1.45449014891121 | erot = 2.28129539495559 | epot = -12.8691346688093 | etot = -9.13334912494246 +599000 ekin = 1.42868283606617 | erot = 2.24230571379428 | epot = -12.8043376749212 | etot = -9.1333491250608 +600000 ekin = 1.41215819513413 | erot = 2.19421771508927 | epot = -12.7397250351208 | etot = -9.13334912489744 +601000 ekin = 1.40437980064227 | erot = 2.13675092848109 | epot = -12.674479854184 | etot = -9.1333491250606 +602000 ekin = 1.4044246685369 | erot = 2.06863595764279 | epot = -12.6064097512979 | etot = -9.13334912511825 +603000 ekin = 1.41112302449957 | erot = 1.98998056957538 | epot = -12.5344527191462 | etot = -9.13334912507128 +604000 ekin = 1.42310135152474 | erot = 1.90274524322857 | epot = -12.4591957196977 | etot = -9.13334912494436 +605000 ekin = 1.43883447822767 | erot = 1.81030632011133 | epot = -12.3824899231105 | etot = -9.13334912477148 +606000 ekin = 1.45673760095441 | erot = 1.71684240504894 | epot = -12.3069291305871 | etot = -9.1333491245837 +607000 ekin = 1.47529863713372 | erot = 1.62672298753086 | epot = -12.2353707490674 | etot = -9.13334912440278 +608000 ekin = 1.49323166610551 | erot = 1.54399943869127 | epot = -12.1705802290369 | etot = -9.1333491242401 +609000 ekin = 1.50961256615932 | erot = 1.47208306433965 | epot = -12.1150447546085 | etot = -9.13334912410951 +610000 ekin = 1.52396039431504 | erot = 1.41350705715129 | epot = -12.0708165754609 | etot = -9.13334912399459 +611000 ekin = 1.53622860047253 | erot = 1.36992443741221 | epot = -12.0395021618086 | etot = -9.13334912392381 +612000 ekin = 1.54668536626352 | erot = 1.3420536287302 | epot = -12.022088118904 | etot = -9.13334912391032 +613000 ekin = 1.55571309695795 | erot = 1.32960894335998 | epot = -12.0186711642892 | etot = -9.13334912397123 +614000 ekin = 1.56356369221823 | erot = 1.33131277562582 | epot = -12.0282255919648 | etot = -9.1333491241207 +615000 ekin = 1.57013881826772 | erot = 1.34494539761769 | epot = -12.0484333402228 | etot = -9.1333491243374 +616000 ekin = 1.57485681904011 | erot = 1.36757312206254 | epot = -12.0757790657607 | etot = -9.13334912465809 +617000 ekin = 1.57672646781302 | erot = 1.39546251366762 | epot = -12.1055381065033 | etot = -9.13334912502266 +618000 ekin = 1.57456346737885 | erot = 1.42448013453559 | epot = -12.1323927272923 | etot = -9.13334912537787 +619000 ekin = 1.56732946470188 | erot = 1.45059208152766 | epot = -12.1512706718918 | etot = -9.13334912566229 +620000 ekin = 1.55451321753947 | erot = 1.47039334455551 | epot = -12.1582556879147 | etot = -9.13334912581971 +621000 ekin = 1.53644782338443 | erot = 1.48161304590915 | epot = -12.1514099951067 | etot = -9.13334912581315 +622000 ekin = 1.51447783518411 | erot = 1.48347710481868 | epot = -12.1313040656377 | etot = -9.13334912563487 +623000 ekin = 1.4909296073309 | erot = 1.47683215248821 | epot = -12.1011108851279 | etot = -9.13334912530878 +624000 ekin = 1.46886130170089 | erot = 1.46422198591475 | epot = -12.0664324125264 | etot = -9.13334912491077 +625000 ekin = 1.45155188812702 | erot = 1.44918251594185 | epot = -12.034083528553 | etot = -9.1333491244841 +626000 ekin = 1.44224748157969 | erot = 1.43533399591641 | epot = -12.0109306015691 | etot = -9.13334912407302 +627000 ekin = 1.44381530880042 | erot = 1.42638005354647 | epot = -12.003544486083 | etot = -9.13334912373614 +628000 ekin = 1.4583308162018 | erot = 1.42560824875086 | epot = -12.0172881884907 | etot = -9.13334912353806 +629000 ekin = 1.48676985537134 | erot = 1.43535417576979 | epot = -12.0554731546297 | etot = -9.13334912348854 +630000 ekin = 1.52866417049231 | erot = 1.45689184513358 | epot = -12.1189051392522 | etot = -9.13334912362626 +631000 ekin = 1.58193413339033 | erot = 1.49015054897492 | epot = -12.2054338063838 | etot = -9.1333491240185 +632000 ekin = 1.64234851055789 | erot = 1.53357750658868 | epot = -12.3092751416895 | etot = -9.13334912454295 +633000 ekin = 1.70466841197193 | erot = 1.58426390210063 | epot = -12.4222814392228 | etot = -9.13334912515021 +634000 ekin = 1.76318354699534 | erot = 1.63860587790572 | epot = -12.5351385506359 | etot = -9.13334912573484 +635000 ekin = 1.81242625034957 | erot = 1.6930662732065 | epot = -12.6388416497418 | etot = -9.13334912618573 +636000 ekin = 1.84805557838285 | erot = 1.74492785470072 | epot = -12.7263325594988 | etot = -9.13334912641528 +637000 ekin = 1.86755595284879 | erot = 1.79286465559239 | epot = -12.7937697348522 | etot = -9.13334912641101 +638000 ekin = 1.87047357468901 | erot = 1.83697965057398 | epot = -12.8408023514706 | etot = -9.13334912620759 +639000 ekin = 1.85817220593361 | erot = 1.87849437006589 | epot = -12.8700157018816 | etot = -9.13334912588206 +640000 ekin = 1.83325502874958 | erot = 1.91930247136563 | epot = -12.885906625629 | etot = -9.13334912551383 +641000 ekin = 1.79889805051541 | erot = 1.96149522932208 | epot = -12.8937424049962 | etot = -9.13334912515873 +642000 ekin = 1.75833330344853 | erot = 2.00701454517116 | epot = -12.8986969734754 | etot = -9.13334912485567 +643000 ekin = 1.7145240073858 | erot = 2.05742054585042 | epot = -12.9052936778327 | etot = -9.13334912459647 +644000 ekin = 1.67006045206594 | erot = 2.11379950766605 | epot = -12.9172090841632 | etot = -9.13334912443116 +645000 ekin = 1.6271016919367 | erot = 2.17652829047733 | epot = -12.9369791067725 | etot = -9.13334912435849 +646000 ekin = 1.58731920571063 | erot = 2.24499987972293 | epot = -12.9656682098048 | etot = -9.13334912437124 +647000 ekin = 1.55192879849992 | erot = 2.31774723145711 | epot = -13.0030251544506 | etot = -9.1333491244936 +648000 ekin = 1.52155547404462 | erot = 2.39216849405107 | epot = -13.0470730928249 | etot = -9.13334912472924 +649000 ekin = 1.49615701172559 | erot = 2.46459269466501 | epot = -13.0940988314669 | etot = -9.13334912507634 +650000 ekin = 1.47495820408152 | erot = 2.53042613107585 | epot = -13.1387334606775 | etot = -9.13334912552013 +651000 ekin = 1.45644758275942 | erot = 2.58442104122347 | epot = -13.1742177500117 | etot = -9.13334912602884 +652000 ekin = 1.43848054670144 | erot = 2.62109720356023 | epot = -13.1929268768094 | etot = -9.13334912654773 +653000 ekin = 1.41853538646796 | erot = 2.63533318879136 | epot = -13.1872177022577 | etot = -9.13334912699843 +654000 ekin = 1.39414099594742 | erot = 2.6231144598761 | epot = -13.1506045831159 | etot = -9.13334912729234 +655000 ekin = 1.36342278664596 | erot = 2.58232798191637 | epot = -13.079099895894 | etot = -9.13334912733166 +656000 ekin = 1.32754554560004 | erot = 2.5134399730674 | epot = -12.9743346448115 | etot = -9.13334912614407 +657000 ekin = 1.0773875979354 | erot = 2.44669612963344 | epot = -12.6574327808031 | etot = -9.1333490532343 +658000 ekin = 1.00652014229837 | erot = 2.49084781646746 | epot = -12.6307170433245 | etot = -9.1333490845587 +659000 ekin = 1.0724008501772 | erot = 2.42929901831599 | epot = -12.6350489837806 | etot = -9.13334911528737 +660000 ekin = 1.09381648980751 | erot = 2.30102308261678 | epot = -12.5281886879207 | etot = -9.13334911549642 +661000 ekin = 1.11701334337948 | erot = 2.16959631554218 | epot = -12.4199587738168 | etot = -9.13334911489519 +662000 ekin = 1.14263894057925 | erot = 2.04231481245762 | epot = -12.3183028674869 | etot = -9.13334911444999 +663000 ekin = 1.17093665277013 | erot = 1.92510458369694 | epot = -12.2293903506443 | etot = -9.13334911417719 +664000 ekin = 1.20146324496735 | erot = 1.82207009510847 | epot = -12.1568824541656 | etot = -9.13334911408975 +665000 ekin = 1.23289032447861 | erot = 1.73564836427598 | epot = -12.1018878027966 | etot = -9.13334911404202 +666000 ekin = 1.2634046445509 | erot = 1.66702592668068 | epot = -12.0637796854962 | etot = -9.13334911426459 +667000 ekin = 1.29102574814457 | erot = 1.61488086820359 | epot = -12.0392557309122 | etot = -9.13334911456403 +668000 ekin = 1.31376054134788 | erot = 1.57649712773579 | epot = -12.0236067839909 | etot = -9.13334911490723 +669000 ekin = 1.32989404565327 | erot = 1.54828621181468 | epot = -12.0115293726975 | etot = -9.13334911522951 +670000 ekin = 1.33826340890624 | erot = 1.52640844797349 | epot = -11.9980209723658 | etot = -9.13334911548607 +671000 ekin = 1.33847461323227 | erot = 1.50724764864701 | epot = -11.9790713775213 | etot = -9.13334911564201 +672000 ekin = 1.3310196955457 | erot = 1.48781306139119 | epot = -11.9521818726164 | etot = -9.13334911567954 +673000 ekin = 1.31737035051081 | erot = 1.46610228052956 | epot = -11.916821746603 | etot = -9.13334911556259 +674000 ekin = 1.29992521798111 | erot = 1.44131241760667 | epot = -11.8745867509648 | etot = -9.13334911537702 +675000 ekin = 1.28129254582443 | erot = 1.41347048294432 | epot = -11.8281121439055 | etot = -9.13334911513675 +676000 ekin = 1.26413925333674 | erot = 1.38336835396468 | epot = -11.780856722188 | etot = -9.13334911488654 +677000 ekin = 1.25080949629945 | erot = 1.35227525692334 | epot = -11.7364338679145 | etot = -9.13334911469175 +678000 ekin = 1.24240325883856 | erot = 1.32122246363524 | epot = -11.6969748370321 | etot = -9.13334911455833 +679000 ekin = 1.23935164124742 | erot = 1.2912444646096 | epot = -11.6639452203564 | etot = -9.1333491144994 +680000 ekin = 1.24151057851686 | erot = 1.26358348831183 | epot = -11.638443181175 | etot = -9.13334911434632 +681000 ekin = 1.24810791985327 | erot = 1.2399896630032 | epot = -11.6214466973226 | etot = -9.13334911446615 +682000 ekin = 1.25738088472489 | erot = 1.22073219170612 | epot = -11.6114621910613 | etot = -9.13334911463026 +683000 ekin = 1.26715254864019 | erot = 1.2055490969498 | epot = -11.6060507604005 | etot = -9.13334911481056 +684000 ekin = 1.27521936884227 | erot = 1.1939299525669 | epot = -11.6024984363882 | etot = -9.13334911497905 +685000 ekin = 1.27965818657898 | erot = 1.18525667281205 | epot = -11.5982639744954 | etot = -9.13334911510434 +686000 ekin = 1.27906445706477 | erot = 1.17887846190965 | epot = -11.5912920341658 | etot = -9.13334911519141 +687000 ekin = 1.27268261753878 | erot = 1.17407129022315 | epot = -11.5801030230226 | etot = -9.13334911526067 +688000 ekin = 1.26041914406529 | erot = 1.17007604783625 | epot = -11.5638443071302 | etot = -9.13334911522864 +689000 ekin = 1.24287938495418 | erot = 1.16656725574487 | epot = -11.542795755857 | etot = -9.1333491151579 +690000 ekin = 1.22118240404812 | erot = 1.16336387131318 | epot = -11.5178953904215 | etot = -9.1333491150602 +691000 ekin = 1.19679867225218 | erot = 1.1603733923323 | epot = -11.4905211795315 | etot = -9.13334911494706 +692000 ekin = 1.17139142555508 | erot = 1.15758648593198 | epot = -11.4623270263156 | etot = -9.13334911482852 +693000 ekin = 1.14685376597351 | erot = 1.15519232867503 | epot = -11.43539520919 | etot = -9.13334911454148 +694000 ekin = 1.12537035278837 | erot = 1.15368599836397 | epot = -11.412405465606 | etot = -9.13334911445361 +695000 ekin = 1.10824764597647 | erot = 1.15324052660653 | epot = -11.3948372869662 | etot = -9.13334911438318 +696000 ekin = 1.09641524899318 | erot = 1.15407441364792 | epot = -11.3838387769767 | etot = -9.13334911433562 +697000 ekin = 1.09040706959969 | erot = 1.15645735234579 | epot = -11.3802135362638 | etot = -9.13334911431836 +698000 ekin = 1.09030542376423 | erot = 1.16063392710817 | epot = -11.3842884652019 | etot = -9.13334911432953 +699000 ekin = 1.09552536142149 | erot = 1.16669639941964 | epot = -11.3955708752043 | etot = -9.13334911436317 +700000 ekin = 1.10527379803376 | erot = 1.17478862116044 | epot = -11.413411533631 | etot = -9.13334911443681 +701000 ekin = 1.11851271408306 | erot = 1.18492470948339 | epot = -11.4367865380917 | etot = -9.13334911452528 +702000 ekin = 1.13395549372905 | erot = 1.19694667251844 | epot = -11.4642512808785 | etot = -9.13334911463097 +703000 ekin = 1.15018285433436 | erot = 1.2105705597151 | epot = -11.4941025287949 | etot = -9.13334911474541 +704000 ekin = 1.16576673458005 | erot = 1.22535908060259 | epot = -11.524474930041 | etot = -9.13334911485839 +705000 ekin = 1.1793891550362 | erot = 1.24076765314177 | epot = -11.5535059231369 | etot = -9.13334911495895 +706000 ekin = 1.18994261306461 | erot = 1.25622348494723 | epot = -11.5795152130483 | etot = -9.13334911503649 +707000 ekin = 1.19660107195649 | erot = 1.27122780267428 | epot = -11.601177989713 | etot = -9.13334911508226 +708000 ekin = 1.19885615186834 | erot = 1.28546332267772 | epot = -11.617668589637 | etot = -9.13334911509095 +709000 ekin = 1.19651981509624 | erot = 1.29888532038569 | epot = -11.6287542505429 | etot = -9.13334911506102 +710000 ekin = 1.1896995749728 | erot = 1.31177606554515 | epot = -11.6348247555135 | etot = -9.13334911499554 +711000 ekin = 1.17875387602993 | erot = 1.32474791483259 | epot = -11.6368509057646 | etot = -9.1333491149021 +712000 ekin = 1.16423391784039 | erot = 1.33868945229385 | epot = -11.6362724849257 | etot = -9.13334911479148 +713000 ekin = 1.14681758773241 | erot = 1.35466305350979 | epot = -11.634829755921 | etot = -9.13334911467886 +714000 ekin = 1.12724173590803 | erot = 1.37373509014099 | epot = -11.6343259406274 | etot = -9.13334911457843 +715000 ekin = 1.10624050750102 | erot = 1.39681075797783 | epot = -11.636400379983 | etot = -9.13334911450419 +716000 ekin = 1.08449847089099 | erot = 1.42446438144571 | epot = -11.642311966804 | etot = -9.13334911446735 +717000 ekin = 1.06262586730388 | erot = 1.45678801963117 | epot = -11.6527630014097 | etot = -9.13334911447468 +718000 ekin = 1.0411605651787 | erot = 1.49328580499053 | epot = -11.6677954846958 | etot = -9.13334911452653 +719000 ekin = 1.02059756446753 | erot = 1.53283565406685 | epot = -11.6867823331507 | etot = -9.13334911461631 +720000 ekin = 1.00144276091413 | erot = 1.57373478107905 | epot = -11.7085266567238 | etot = -9.13334911473058 +721000 ekin = 0.984282698240148 | erot = 1.61383653731177 | epot = -11.7314683504017 | etot = -9.13334911484982 +722000 ekin = 0.969856334574313 | erot = 1.65076935458844 | epot = -11.7539748041187 | etot = -9.13334911495596 +723000 ekin = 0.959109074095741 | erot = 1.68219090540859 | epot = -11.7746490945272 | etot = -9.1333491150229 +724000 ekin = 0.953206498551791 | erot = 1.70610525280311 | epot = -11.7926608663937 | etot = -9.13334911503875 +725000 ekin = 0.953487871457924 | erot = 1.72112406445268 | epot = -11.8079610509099 | etot = -9.13334911499929 +726000 ekin = 0.961348420447912 | erot = 1.72664218756335 | epot = -11.8213397229241 | etot = -9.1333491149128 +727000 ekin = 0.97805518699853 | erot = 1.72290320032706 | epot = -11.8343075021228 | etot = -9.13334911479718 +728000 ekin = 1.0045258249759 | erot = 1.71095374107079 | epot = -11.8488286807208 | etot = -9.1333491146741 +729000 ekin = 1.04110137579816 | erot = 1.69252215340752 | epot = -11.8669726437755 | etot = -9.13334911456981 +730000 ekin = 1.08735958690232 | erot = 1.66981008957876 | epot = -11.8905187909885 | etot = -9.13334911450745 +731000 ekin = 1.14200418374975 | erot = 1.64524141705888 | epot = -11.9205947153133 | etot = -9.13334911450468 +732000 ekin = 1.20285318014156 | erot = 1.62119095712991 | epot = -11.9573932518439 | etot = -9.13334911457242 +733000 ekin = 1.26692596391395 | erot = 1.5997652890977 | epot = -12.0000403677157 | etot = -9.13334911470405 +734000 ekin = 1.3306440641792 | erot = 1.58254289880402 | epot = -12.0465360778929 | etot = -9.13334911490972 +735000 ekin = 1.3901348438841 | erot = 1.57032898633128 | epot = -12.0938129453762 | etot = -9.13334911516082 +736000 ekin = 1.44157509139514 | erot = 1.56317476788492 | epot = -12.1380989747094 | etot = -9.1333491154293 +737000 ekin = 1.48157845589663 | erot = 1.56044545881387 | epot = -12.1753730303891 | etot = -9.13334911567864 +738000 ekin = 1.50757504378022 | erot = 1.56100911666954 | epot = -12.2019332763196 | etot = -9.13334911586983 +739000 ekin = 1.51813561812344 | erot = 1.56352092529404 | epot = -12.2150056593848 | etot = -9.13334911596734 +740000 ekin = 1.51318914849279 | erot = 1.56675183784976 | epot = -12.2132901022895 | etot = -9.13334911594693 +741000 ekin = 1.494088658301 | erot = 1.56989906103947 | epot = -12.1973368351411 | etot = -9.13334911580064 +742000 ekin = 1.46350061535639 | erot = 1.57280025700594 | epot = -12.1696499879049 | etot = -9.13334911554256 +743000 ekin = 1.42512524133893 | erot = 1.57593310600626 | epot = -12.1344074625137 | etot = -9.13334911516847 +744000 ekin = 1.38338487585334 | erot = 1.5805436127817 | epot = -12.0972776034334 | etot = -9.1333491147984 +745000 ekin = 1.34281951274038 | erot = 1.58823582840455 | epot = -12.0644044556013 | etot = -9.13334911445635 +746000 ekin = 1.30747334765451 | erot = 1.60047096980636 | epot = -12.0412934316595 | etot = -9.13334911419865 +747000 ekin = 1.28046646005545 | erot = 1.61821768665577 | epot = -12.0320332608048 | etot = -9.13334911409364 +748000 ekin = 1.2636795592375 | erot = 1.64132893143221 | epot = -12.0383576048404 | etot = -9.13334911417067 +749000 ekin = 1.2574293442015 | erot = 1.66831440024257 | epot = -12.0590928588826 | etot = -9.1333491144385 +750000 ekin = 1.26047795507978 | erot = 1.69628448614573 | epot = -12.090111556077 | etot = -9.13334911485146 +751000 ekin = 1.27026186447295 | erot = 1.72133386885839 | epot = -12.1249448486719 | etot = -9.13334911534054 +752000 ekin = 1.28339547086523 | erot = 1.73919075505692 | epot = -12.1559353417316 | etot = -9.13334911580946 +753000 ekin = 1.29635957466786 | erot = 1.74596876191851 | epot = -12.1756774528061 | etot = -9.13334911621977 +754000 ekin = 1.30599158741058 | erot = 1.73885024063263 | epot = -12.1781909444319 | etot = -9.13334911638871 +755000 ekin = 1.31024888116237 | erot = 1.71683511468117 | epot = -12.1604331121855 | etot = -9.13334911634191 +756000 ekin = 1.30846938321599 | erot = 1.68097972249568 | epot = -12.122798221804 | etot = -9.13334911609235 +757000 ekin = 1.30124985041447 | erot = 1.63419006476499 | epot = -12.0687890308692 | etot = -9.1333491156897 +758000 ekin = 1.29019641090577 | erot = 1.58073563388991 | epot = -12.0042811600005 | etot = -9.13334911520485 +759000 ekin = 1.27761222227675 | erot = 1.52554636406469 | epot = -11.9365077010407 | etot = -9.13334911469927 +760000 ekin = 1.26609069506809 | erot = 1.47348693038545 | epot = -11.8729267397129 | etot = -9.1333491142594 +761000 ekin = 1.25808964011679 | erot = 1.4286955046248 | epot = -11.8201342586658 | etot = -9.13334911392424 +762000 ekin = 1.25572222200592 | erot = 1.39407442311272 | epot = -11.783145758868 | etot = -9.13334911374938 +763000 ekin = 1.26054534569765 | erot = 1.37090045944091 | epot = -11.7647949188348 | etot = -9.13334911369624 +764000 ekin = 1.27353435439959 | erot = 1.35887199086233 | epot = -11.7657554590542 | etot = -9.13334911379228 +765000 ekin = 1.29496682599886 | erot = 1.35616457698051 | epot = -11.7844805169728 | etot = -9.13334911399346 +766000 ekin = 1.32454629042167 | erot = 1.35977679502717 | epot = -11.8176721997125 | etot = -9.1333491142637 +767000 ekin = 1.36163954271813 | erot = 1.36618632223691 | epot = -11.8611749795106 | etot = -9.13334911455553 +768000 ekin = 1.40531019892548 | erot = 1.37181010083209 | epot = -11.9104694145872 | etot = -9.13334911482959 +769000 ekin = 1.45446512869009 | erot = 1.37353498051008 | epot = -11.9613492242412 | etot = -9.133349115041 +770000 ekin = 1.50793050152268 | erot = 1.36921125649596 | epot = -12.0104908732554 | etot = -9.13334911523675 +771000 ekin = 1.56389616693286 | erot = 1.35775090660939 | epot = -12.0549961888008 | etot = -9.13334911525855 +772000 ekin = 1.62113703504456 | erot = 1.33970323504921 | epot = -12.0941893852832 | etot = -9.1333491151894 +773000 ekin = 1.67872851569461 | erot = 1.31702982988939 | epot = -12.1291074606468 | etot = -9.13334911506284 +774000 ekin = 1.73569257108714 | erot = 1.29264163250421 | epot = -12.1616833185143 | etot = -9.13334911492296 +775000 ekin = 1.79085656133396 | erot = 1.26988000052048 | epot = -12.1940856766665 | etot = -9.13334911481206 +776000 ekin = 1.84276100467974 | erot = 1.25197534038132 | epot = -12.2280854598203 | etot = -9.13334911475925 +777000 ekin = 1.88967118603443 | erot = 1.24159765891606 | epot = -12.2646179597232 | etot = -9.13334911477269 +778000 ekin = 1.92971622260319 | erot = 1.2405758321466 | epot = -12.3036411695912 | etot = -9.13334911484138 +779000 ekin = 1.96113164254476 | erot = 1.24980912493539 | epot = -12.3442898824213 | etot = -9.13334911494117 +780000 ekin = 1.98254203385816 | erot = 1.26932045667053 | epot = -12.385211605573 | etot = -9.13334911504432 +781000 ekin = 1.99321406405247 | erot = 1.29840823518634 | epot = -12.424971414369 | etot = -9.13334911513024 +782000 ekin = 1.99321095940316 | erot = 1.33580885492091 | epot = -12.4623689295127 | etot = -9.13334911518861 +783000 ekin = 1.98342491293014 | erot = 1.37983642298321 | epot = -12.4966104511316 | etot = -9.13334911521824 +784000 ekin = 1.96551238429564 | erot = 1.42849371621145 | epot = -12.5273552156776 | etot = -9.13334911517052 +785000 ekin = 1.94195910111626 | erot = 1.47961348821668 | epot = -12.5549217044948 | etot = -9.13334911516186 +786000 ekin = 1.91549982325751 | erot = 1.53087711626559 | epot = -12.5797260546598 | etot = -9.13334911513665 +787000 ekin = 1.8890291593285 | erot = 1.5799756597558 | epot = -12.6023539341779 | etot = -9.13334911509364 +788000 ekin = 1.86553746553843 | erot = 1.624786460251 | epot = -12.6236730408275 | etot = -9.13334911503805 +789000 ekin = 1.84793067284063 | erot = 1.6635057242642 | epot = -12.6447855120696 | etot = -9.13334911496478 +790000 ekin = 1.83884831412084 | erot = 1.6947732587169 | epot = -12.6669706877328 | etot = -9.13334911489506 +791000 ekin = 1.84038435201475 | erot = 1.71768127848555 | epot = -12.6914147453562 | etot = -9.13334911485594 +792000 ekin = 1.85374621231288 | erot = 1.73169683790445 | epot = -12.7187921650957 | etot = -9.13334911487841 +793000 ekin = 1.87892178729818 | erot = 1.73653576924259 | epot = -12.7488066715272 | etot = -9.13334911498642 +794000 ekin = 1.91440510045617 | erot = 1.73204169928025 | epot = -12.7797959149158 | etot = -9.1333491151794 +795000 ekin = 1.9572669787266 | erot = 1.71818976217474 | epot = -12.8088058563225 | etot = -9.13334911542115 +796000 ekin = 2.00360851779916 | erot = 1.69525335459208 | epot = -12.8322109880396 | etot = -9.13334911564835 +797000 ekin = 2.04914358120658 | erot = 1.66405946741855 | epot = -12.8465521644156 | etot = -9.13334911579048 +798000 ekin = 2.08995546227692 | erot = 1.6262374595251 | epot = -12.8495420376053 | etot = -9.13334911580325 +799000 ekin = 2.12309292251422 | erot = 1.58427028116194 | epot = -12.8407123193635 | etot = -9.13334911568735 +800000 ekin = 2.14682990847686 | erot = 1.54126138559232 | epot = -12.8214404095517 | etot = -9.13334911548252 +801000 ekin = 2.16058282772883 | erot = 1.50048202046929 | epot = -12.7944139634446 | etot = -9.13334911524647 +802000 ekin = 2.16461511109508 | erot = 1.4648661550268 | epot = -12.7628303811528 | etot = -9.13334911503096 +803000 ekin = 2.15969104316568 | erot = 1.43661335441871 | epot = -12.7296535124535 | etot = -9.13334911486915 +804000 ekin = 2.14679128687981 | erot = 1.41698988507951 | epot = -12.6971302867191 | etot = -9.1333491147598 +805000 ekin = 2.12692065944037 | erot = 1.40638520514516 | epot = -12.6666549793105 | etot = -9.13334911472493 +806000 ekin = 2.10099028263577 | erot = 1.40422932574766 | epot = -12.6385687231448 | etot = -9.13334911476135 +807000 ekin = 2.06982763841923 | erot = 1.40909451158422 | epot = -12.6122712648422 | etot = -9.13334911483878 +808000 ekin = 2.03419092297893 | erot = 1.41919422166591 | epot = -12.5867342595742 | etot = -9.13334911492934 +809000 ekin = 1.99478586656104 | erot = 1.43238858340905 | epot = -12.5605235650235 | etot = -9.1333491150534 +810000 ekin = 1.95230744546777 | erot = 1.44625258192922 | epot = -12.5319091425729 | etot = -9.1333491151759 +811000 ekin = 1.90747094188883 | erot = 1.45847148723609 | epot = -12.4992915444085 | etot = -9.13334911528359 +812000 ekin = 1.86102893102719 | erot = 1.46703963548782 | epot = -12.4614176818789 | etot = -9.13334911536387 +813000 ekin = 1.81416432243589 | erot = 1.4704986890784 | epot = -12.4180121266511 | etot = -9.13334911513678 +814000 ekin = 1.76902926167611 | erot = 1.46826739311543 | epot = -12.3706457700776 | etot = -9.13334911528603 +815000 ekin = 1.71533069952235 | erot = 1.45797598424652 | epot = -12.3066557947939 | etot = -9.13334911102499 +816000 ekin = 1.68468183702939 | erot = 1.43935942019659 | epot = -12.2573903676342 | etot = -9.13334911040824 +817000 ekin = 1.67569540451429 | erot = 1.4202275919336 | epot = -12.2292721045971 | etot = -9.13334910814921 +818000 ekin = 1.65431804078162 | erot = 1.40071144600318 | epot = -12.1883785945462 | etot = -9.13334910776142 +819000 ekin = 1.63740188371065 | erot = 1.38256931717011 | epot = -12.153320308267 | etot = -9.13334910738622 +820000 ekin = 1.62512170450081 | erot = 1.36928168853139 | epot = -12.1277525000567 | etot = -9.1333491070245 +821000 ekin = 1.61915909097092 | erot = 1.36404110716092 | epot = -12.11654930484 | etot = -9.13334910670812 +822000 ekin = 1.62172343975808 | erot = 1.36925913747897 | epot = -12.1243316837552 | etot = -9.1333491065182 +823000 ekin = 1.63427494812446 | erot = 1.38616632190815 | epot = -12.1537903765421 | etot = -9.13334910650952 +824000 ekin = 1.65698382617878 | erot = 1.41459711185232 | epot = -12.2049300447245 | etot = -9.1333491066934 +825000 ekin = 1.68854753273546 | erot = 1.45301631841537 | epot = -12.2749129581896 | etot = -9.13334910703881 +826000 ekin = 1.72638863496051 | erot = 1.49875661579281 | epot = -12.3584943582419 | etot = -9.13334910748853 +827000 ekin = 1.76710423380876 | erot = 1.54839439233899 | epot = -12.4488477341244 | etot = -9.13334910797666 +828000 ekin = 1.80698482334325 | erot = 1.59818184901007 | epot = -12.5385157807984 | etot = -9.13334910844504 +829000 ekin = 1.84246939970613 | erot = 1.64447465717755 | epot = -12.6202931657296 | etot = -9.13334910884588 +830000 ekin = 1.87048980344135 | erot = 1.68412933438833 | epot = -12.6879682469707 | etot = -9.133349109141 +831000 ekin = 1.88871335828747 | erot = 1.7148664541795 | epot = -12.7369289217676 | etot = -9.13334910930059 +832000 ekin = 1.89569916792697 | erot = 1.73558694751866 | epot = -12.764635224751 | etot = -9.13334910930536 +833000 ekin = 1.89096344936422 | erot = 1.74659447551969 | epot = -12.7709070340386 | etot = -9.13334910915468 +834000 ekin = 1.87493429545542 | erot = 1.74964392180539 | epot = -12.7579273261507 | etot = -9.13334910888991 +835000 ekin = 1.84878280514662 | erot = 1.74762027308213 | epot = -12.7297521867536 | etot = -9.13334910852485 +836000 ekin = 1.81414476909893 | erot = 1.74421722088884 | epot = -12.6917110981285 | etot = -9.13334910814076 +837000 ekin = 1.7727787546756 | erot = 1.74335285139652 | epot = -12.6494807138765 | etot = -9.1333491078044 +838000 ekin = 1.72624445531611 | erot = 1.74841404792743 | epot = -12.6080076108106 | etot = -9.1333491075671 +839000 ekin = 1.67568816110943 | erot = 1.76165550554581 | epot = -12.570692774111 | etot = -9.1333491074558 +840000 ekin = 1.62179135099532 | erot = 1.78387657045993 | epot = -12.539017028912 | etot = -9.13334910745679 +841000 ekin = 1.56488441151317 | erot = 1.8145657394287 | epot = -12.5127992584805 | etot = -9.13334910753866 +842000 ekin = 1.50517399563021 | erot = 1.85205645864973 | epot = -12.4905795619779 | etot = -9.133349107698 +843000 ekin = 1.44300548283947 | erot = 1.89358112522319 | epot = -12.4699357158698 | etot = -9.13334910780714 +844000 ekin = 1.3790662063083 | erot = 1.93639685186287 | epot = -12.4488121660428 | etot = -9.13334910787166 +845000 ekin = 1.31446352833072 | erot = 1.97812996436346 | epot = -12.4259426005661 | etot = -9.13334910787188 +846000 ekin = 1.25068692329101 | erot = 2.01700234953533 | epot = -12.4010383806301 | etot = -9.13334910780379 +847000 ekin = 1.18947724707585 | erot = 2.05204320491572 | epot = -12.3748695596675 | etot = -9.1333491076759 +848000 ekin = 1.13265732504311 | erot = 2.08314733277938 | epot = -12.3491537653274 | etot = -9.13334910750494 +849000 ekin = 1.08197657769554 | erot = 2.11099249694411 | epot = -12.3263181819498 | etot = -9.13334910731013 +850000 ekin = 1.03899924537585 | erot = 2.13684654284267 | epot = -12.3091948953317 | etot = -9.13334910711322 +851000 ekin = 1.00503792489241 | erot = 2.1623061869887 | epot = -12.3006932188161 | etot = -9.13334910693494 +852000 ekin = 0.981116857867558 | erot = 2.18901371773059 | epot = -12.3034796823913 | etot = -9.13334910679312 +853000 ekin = 0.967947652219077 | erot = 2.21839549971936 | epot = -12.319692258642 | etot = -9.13334910670357 +854000 ekin = 0.965908910684845 | erot = 2.25145766400305 | epot = -12.3507156813619 | etot = -9.13334910667397 +855000 ekin = 0.975031148289229 | erot = 2.28866143867603 | epot = -12.3970416936717 | etot = -9.13334910670648 +856000 ekin = 0.994993726115382 | erot = 2.32988587265752 | epot = -12.4582287055698 | etot = -9.13334910679695 +857000 ekin = 1.02514000045782 | erot = 2.37447147763668 | epot = -12.5329605850303 | etot = -9.13334910693584 +858000 ekin = 1.06451194042942 | erot = 2.4213258126328 | epot = -12.6191868601726 | etot = -9.13334910711038 +859000 ekin = 1.11189872921004 | erot = 2.46906217646423 | epot = -12.7143100129823 | etot = -9.13334910730799 +860000 ekin = 1.16588800432633 | erot = 2.51613734356883 | epot = -12.8153744554142 | etot = -9.13334910751906 +861000 ekin = 1.22490604809684 | erot = 2.56095681692958 | epot = -12.9192119727658 | etot = -9.13334910773933 +862000 ekin = 1.28723632580519 | erot = 2.60192847235763 | epot = -13.0225139061331 | etot = -9.1333491079703 +863000 ekin = 1.35101431938172 | erot = 2.63746581474587 | epot = -13.1218292423438 | etot = -9.13334910821618 +864000 ekin = 1.41420820518621 | erot = 2.66596355873972 | epot = -13.213520872406 | etot = -9.1333491084801 +865000 ekin = 1.474605629288 | erot = 2.68578195463931 | epot = -13.2937366926875 | etot = -9.13334910876019 +866000 ekin = 1.52983303720862 | erot = 2.69527584727287 | epot = -13.3584579935269 | etot = -9.13334910904543 +867000 ekin = 1.57743376517003 | erot = 2.69288933096463 | epot = -13.4036722054498 | etot = -9.13334910931511 +868000 ekin = 1.61502389037619 | erot = 2.67731200501023 | epot = -13.4256850049263 | etot = -9.13334910953988 +869000 ekin = 1.64053051308626 | erot = 2.64766625528208 | epot = -13.4215458780546 | etot = -9.1333491096863 +870000 ekin = 1.65249590025612 | erot = 2.60367561916686 | epot = -13.3895206291465 | etot = -9.13334910972348 +871000 ekin = 1.65040511754571 | erot = 2.54576053414804 | epot = -13.3295147613243 | etot = -9.13334910963058 +872000 ekin = 1.63497077371797 | erot = 2.47502461263687 | epot = -13.2433444957577 | etot = -9.13334910940288 +873000 ekin = 1.60829551087388 | erot = 2.39312864671266 | epot = -13.1347732666412 | etot = -9.13334910905463 +874000 ekin = 1.57383856498918 | erot = 2.30208675136389 | epot = -13.009274424972 | etot = -9.13334910861897 +875000 ekin = 1.53613967513714 | erot = 2.20404109164996 | epot = -12.8735298749316 | etot = -9.13334910814452 +876000 ekin = 1.50030007472729 | erot = 2.10106901468676 | epot = -12.7347181971028 | etot = -9.13334910768871 +877000 ekin = 1.47128183651296 | erot = 1.99505592487128 | epot = -12.5996868686922 | etot = -9.13334910730796 +878000 ekin = 1.45315269236055 | erot = 1.88764504253869 | epot = -12.4741468419449 | etot = -9.13334910704562 +879000 ekin = 1.44845009593538 | erot = 1.78026193724959 | epot = -12.3620611401048 | etot = -9.13334910691979 +880000 ekin = 1.45783397195063 | erot = 1.67420503622105 | epot = -12.2653881150899 | etot = -9.13334910691825 +881000 ekin = 1.48012455417224 | erot = 1.57078382964539 | epot = -12.1842574908196 | etot = -9.13334910700192 +882000 ekin = 1.5127001573733 | erot = 1.47147015192622 | epot = -12.1175194164183 | etot = -9.13334910711883 +883000 ekin = 1.55211568291855 | erot = 1.37801244883281 | epot = -12.0634772389729 | etot = -9.13334910722158 +884000 ekin = 1.59475301549602 | erot = 1.29246300163248 | epot = -12.0205651244085 | etot = -9.13334910727997 +885000 ekin = 1.63734681491989 | erot = 1.21709221485478 | epot = -11.9877881370596 | etot = -9.13334910728496 +886000 ekin = 1.6773121129974 | erot = 1.15420415260773 | epot = -11.9648653728496 | etot = -9.1333491072445 +887000 ekin = 1.71288068344983 | erot = 1.1059016506412 | epot = -11.9521314412663 | etot = -9.13334910717523 +888000 ekin = 1.74309500656233 | erot = 1.07385834531352 | epot = -11.9503024589725 | etot = -9.13334910709663 +889000 ekin = 1.7677096909044 | erot = 1.05913784424729 | epot = -11.9601966421798 | etot = -9.13334910702809 +890000 ekin = 1.78703240995309 | erot = 1.06207375035544 | epot = -11.9824552672965 | etot = -9.13334910698797 +891000 ekin = 1.80172329223837 | erot = 1.08220747466607 | epot = -12.0172798738974 | etot = -9.133349106993 +892000 ekin = 1.81257293681694 | erot = 1.11828058018496 | epot = -12.0642026240581 | etot = -9.13334910705617 +893000 ekin = 1.82028982710525 | erot = 1.16828769625244 | epot = -12.1219266305388 | etot = -9.13334910718111 +894000 ekin = 1.82533649727321 | erot = 1.22960280171717 | epot = -12.1882884063516 | etot = -9.13334910736122 +895000 ekin = 1.82785071658659 | erot = 1.2991877547125 | epot = -12.2603875788756 | etot = -9.13334910757654 +896000 ekin = 1.82766966747087 | erot = 1.373875833364 | epot = -12.3348946086321 | etot = -9.13334910779723 +897000 ekin = 1.8244460380743 | erot = 1.45069893544176 | epot = -12.4084940815062 | etot = -9.13334910799018 +898000 ekin = 1.81781661005142 | erot = 1.52720356356303 | epot = -12.4783692817419 | etot = -9.13334910812749 +899000 ekin = 1.80756915108884 | erot = 1.60168843028469 | epot = -12.5426066895668 | etot = -9.13334910819328 +900000 ekin = 1.79375843955228 | erot = 1.67330364931061 | epot = -12.600411197052 | etot = -9.13334910818907 +901000 ekin = 1.7767431847529 | erot = 1.74197941465417 | epot = -12.6520717075394 | etot = -9.1333491081323 +902000 ekin = 1.75714245727952 | erot = 1.80819394408218 | epot = -12.6986855094136 | etot = -9.13334910805189 +903000 ekin = 1.73573344440651 | erot = 1.8726332599149 | epot = -12.7417158123012 | etot = -9.13334910797977 +904000 ekin = 1.71332625907696 | erot = 1.93582474193256 | epot = -12.7825001089525 | etot = -9.13334910794303 +905000 ekin = 1.69065428569544 | erot = 1.99783248440657 | epot = -12.8218358780583 | etot = -9.13334910795628 +906000 ekin = 1.66831072855338 | erot = 2.05808381418786 | epot = -12.8597436507616 | etot = -9.13334910802032 +907000 ekin = 1.64674588303224 | erot = 2.11535919822829 | epot = -12.895454189381 | etot = -9.1333491081205 +908000 ekin = 1.62631907113484 | erot = 2.16793324011555 | epot = -12.9276014194855 | etot = -9.13334910823515 +909000 ekin = 1.60738004100026 | erot = 2.21381581982329 | epot = -12.9545449691648 | etot = -9.13334910834128 +910000 ekin = 1.59034402491222 | erot = 2.25102295600224 | epot = -12.9747160893366 | etot = -9.1333491084221 +911000 ekin = 1.57572782710918 | erot = 2.277814880823 | epot = -12.9868918164009 | etot = -9.13334910846875 +912000 ekin = 1.56413054683344 | erot = 2.29287003003948 | epot = -12.9903496853528 | etot = -9.1333491084799 +913000 ekin = 1.55616398737713 | erot = 2.29539983334109 | epot = -12.9849129291763 | etot = -9.1333491084581 +914000 ekin = 1.55235379274339 | erot = 2.28522760386805 | epot = -12.9709305050182 | etot = -9.13334910840677 +915000 ekin = 1.55303636075823 | erot = 2.26284508696911 | epot = -12.949230556057 | etot = -9.13334910832969 +916000 ekin = 1.5582700337317 | erot = 2.22943339360568 | epot = -12.9210525355706 | etot = -9.13334910823322 +917000 ekin = 1.56776924055646 | erot = 2.18681551598596 | epot = -12.8879338646704 | etot = -9.13334910812794 +918000 ekin = 1.58086450735377 | erot = 2.13731406706591 | epot = -12.8515276824491 | etot = -9.13334910802945 +919000 ekin = 1.59649190921214 | erot = 2.08351907894052 | epot = -12.8133600961064 | etot = -9.13334910795375 +920000 ekin = 1.61321892883211 | erot = 2.02800735916828 | epot = -12.7745753959137 | etot = -9.13334910791327 +921000 ekin = 1.62931395437318 | erot = 1.97307497751045 | epot = -12.7357380397974 | etot = -9.13334910791372 +922000 ekin = 1.64286104746273 | erot = 1.92053870341358 | epot = -12.6967488588275 | etot = -9.13334910795121 +923000 ekin = 1.65191234390639 | erot = 1.87163759208555 | epot = -12.6568990440064 | etot = -9.13334910801449 +924000 ekin = 1.65466206200986 | erot = 1.82703710613807 | epot = -12.6150482762349 | etot = -9.13334910808699 +925000 ekin = 1.64962158355783 | erot = 1.78691680128999 | epot = -12.5698874929983 | etot = -9.13334910815045 +926000 ekin = 1.63577435705576 | erot = 1.75111283231246 | epot = -12.5202362975557 | etot = -9.13334910818743 +927000 ekin = 1.61269412580611 | erot = 1.71928618608352 | epot = -12.4653294200734 | etot = -9.13334910818379 +928000 ekin = 1.58061327338008 | erot = 1.6910938751334 | epot = -12.4050562566434 | etot = -9.1333491081299 +929000 ekin = 1.54043465718159 | erot = 1.66634444993994 | epot = -12.3401282151427 | etot = -9.13334910802119 +930000 ekin = 1.49368612296493 | erot = 1.64511875929571 | epot = -12.2721539901209 | etot = -9.13334910786024 +931000 ekin = 1.44242020035224 | erot = 1.62783092394303 | epot = -12.2036002319534 | etot = -9.13334910765818 +932000 ekin = 1.38906420477439 | erot = 1.61520048768146 | epot = -12.1376137998919 | etot = -9.13334910743607 +933000 ekin = 1.33622958395717 | erot = 1.6081156841027 | epot = -12.0776943752833 | etot = -9.1333491072234 +934000 ekin = 1.2864948698263 | erot = 1.60739378972857 | epot = -12.0272377666101 | etot = -9.13334910705527 +935000 ekin = 1.24218246525151 | erot = 1.61347919083391 | epot = -11.9890107630505 | etot = -9.1333491069651 +936000 ekin = 1.20515312897653 | erot = 1.62614770365951 | epot = -11.964649939614 | etot = -9.13334910697793 +937000 ekin = 1.17664231216556 | erot = 1.64429583354665 | epot = -11.9542872528177 | etot = -9.13334910710546 +938000 ekin = 1.15716006420695 | erot = 1.66588444175091 | epot = -11.9563936132983 | etot = -9.13334910734043 +939000 ekin = 1.14647171711249 | erot = 1.68810326831496 | epot = -11.9679240930752 | etot = -9.13334910764771 +940000 ekin = 1.14367004081528 | erot = 1.70771457433425 | epot = -11.9847337231466 | etot = -9.13334910799707 +941000 ekin = 1.14733884563713 | erot = 1.72149292699604 | epot = -12.0021808809557 | etot = -9.13334910832257 +942000 ekin = 1.15580134680936 | erot = 1.7268730043979 | epot = -12.0160234597704 | etot = -9.1333491085631 +943000 ekin = 1.16743729513902 | erot = 1.72249936624965 | epot = -12.0232857700545 | etot = -9.13334910866583 +944000 ekin = 1.18103106475074 | erot = 1.70858712463335 | epot = -12.0229672979861 | etot = -9.13334910860203 +945000 ekin = 1.19606804454282 | erot = 1.68696892706269 | epot = -12.0163860799892 | etot = -9.13334910838369 +946000 ekin = 1.21284058109939 | erot = 1.6607587024864 | epot = -12.0069483916586 | etot = -9.13334910807286 +947000 ekin = 1.23222210572639 | erot = 1.63367011138998 | epot = -11.9992413248881 | etot = -9.1333491077717 +948000 ekin = 1.25509690715378 | erot = 1.60916358071506 | epot = -11.997609595456 | etot = -9.13334910758714 +949000 ekin = 1.28167104220527 | erot = 1.58969080393641 | epot = -12.0047109537222 | etot = -9.13334910758053 +950000 ekin = 1.31105510037785 | erot = 1.57628415674534 | epot = -12.0206883648616 | etot = -9.13334910773845 +951000 ekin = 1.34140314928201 | erot = 1.56859135849962 | epot = -12.043343615765 | etot = -9.13334910798332 +952000 ekin = 1.37054117668376 | erot = 1.56526000759508 | epot = -12.0691502925007 | etot = -9.13334910822188 +953000 ekin = 1.39670348101113 | erot = 1.56444621742767 | epot = -12.0944988068314 | etot = -9.13334910839263 +954000 ekin = 1.4189752923736 | erot = 1.56423287015354 | epot = -12.1165572710098 | etot = -9.13334910848266 +955000 ekin = 1.43729048069879 | erot = 1.56287479953591 | epot = -12.1335143887467 | etot = -9.13334910851205 +956000 ekin = 1.4521106633202 | erot = 1.55892938548409 | epot = -12.1443891573107 | etot = -9.13334910850645 +957000 ekin = 1.46402190622609 | erot = 1.55132217596935 | epot = -12.1486931906794 | etot = -9.13334910848397 +958000 ekin = 1.47342593725099 | erot = 1.53954965712517 | epot = -12.1463247028127 | etot = -9.13334910843657 +959000 ekin = 1.48038578494467 | erot = 1.52394133602027 | epot = -12.1376762293246 | etot = -9.13334910835967 +960000 ekin = 1.48460604033713 | erot = 1.50575363437733 | epot = -12.1237087829604 | etot = -9.13334910824597 +961000 ekin = 1.48549975935824 | erot = 1.48721075412757 | epot = -12.106059621579 | etot = -9.13334910809315 +962000 ekin = 1.48229853496176 | erot = 1.47141202583608 | epot = -12.087059668705 | etot = -9.1333491079072 +963000 ekin = 1.47417603271992 | erot = 1.46210240867559 | epot = -12.0696275490978 | etot = -9.13334910770234 +964000 ekin = 1.46036644524951 | erot = 1.46332191689092 | epot = -12.0570374696377 | etot = -9.13334910749723 +965000 ekin = 1.44026662181988 | erot = 1.47896324786461 | epot = -12.0525789770028 | etot = -9.13334910731835 +966000 ekin = 1.41351583400694 | erot = 1.51227943251762 | epot = -12.059144373716 | etot = -9.13334910719145 +967000 ekin = 1.38005134112423 | erot = 1.56539665062614 | epot = -12.0787970988913 | etot = -9.13334910714088 +968000 ekin = 1.34025482724925 | erot = 1.63885686277268 | epot = -12.112460797199 | etot = -9.13334910717708 +969000 ekin = 1.29476921982041 | erot = 1.73132793710645 | epot = -12.1594462642505 | etot = -9.13334910732368 +970000 ekin = 1.2444200539345 | erot = 1.83972520712468 | epot = -12.2174943685998 | etot = -9.13334910754062 +971000 ekin = 1.19046696427998 | erot = 1.95943091409337 | epot = -12.2832469861702 | etot = -9.13334910779685 +972000 ekin = 1.13463097114403 | erot = 2.08475088502484 | epot = -12.352730964219 | etot = -9.13334910805015 +973000 ekin = 1.07911059568601 | erot = 2.20953944501925 | epot = -12.4219991489639 | etot = -9.13334910825864 +974000 ekin = 1.02657367042271 | erot = 2.32774347840179 | epot = -12.4876662572494 | etot = -9.13334910842495 +975000 ekin = 0.979977932774985 | erot = 2.43392801404294 | epot = -12.5472550553053 | etot = -9.13334910848734 +976000 ekin = 0.942304887107112 | erot = 2.52399013955702 | epot = -12.5996441351383 | etot = -9.13334910847414 +977000 ekin = 0.916335295713485 | erot = 2.59517570124226 | epot = -12.644860105367 | etot = -9.13334910841129 +978000 ekin = 0.904316422898909 | erot = 2.64601698757917 | epot = -12.6836825188106 | etot = -9.13334910833249 +979000 ekin = 0.907654941515727 | erot = 2.67612704045912 | epot = -12.7171310902444 | etot = -9.1333491082696 +980000 ekin = 0.926700183442384 | erot = 2.6859274466418 | epot = -12.7459767383294 | etot = -9.13334910824517 +981000 ekin = 0.960659745244906 | erot = 2.67638285527738 | epot = -12.7703917087897 | etot = -9.13334910826743 +982000 ekin = 1.00766017971614 | erot = 2.64879736701335 | epot = -12.7898066550607 | etot = -9.13334910833125 +983000 ekin = 1.06493892794418 | erot = 2.60470505316654 | epot = -12.8029930895288 | etot = -9.13334910841807 +984000 ekin = 1.12913508942183 | erot = 2.54586103456153 | epot = -12.8083452324841 | etot = -9.1333491085007 +985000 ekin = 1.19663599745585 | erot = 2.47431116852799 | epot = -12.8042962745337 | etot = -9.13334910854988 +986000 ekin = 1.26393164267519 | erot = 2.39249159639496 | epot = -12.7897723476107 | etot = -9.13334910854057 +987000 ekin = 1.3279291023599 | erot = 2.30329384118472 | epot = -12.7645720520045 | etot = -9.13334910845984 +988000 ekin = 1.38618594051206 | erot = 2.21003704542634 | epot = -12.7295720942485 | etot = -9.13334910831007 +989000 ekin = 1.43703663164584 | erot = 2.11631776637386 | epot = -12.6867035061281 | etot = -9.13334910810837 +990000 ekin = 1.47960743025514 | erot = 2.02574976477812 | epot = -12.6387063029151 | etot = -9.13334910788184 +991000 ekin = 1.513737246519 | erot = 1.94164272478426 | epot = -12.5887290789645 | etot = -9.13334910766121 +992000 ekin = 1.53983818592076 | erot = 1.86668512517543 | epot = -12.5398724185702 | etot = -9.133349107474 +993000 ekin = 1.55873490673373 | erot = 1.80268982006506 | epot = -12.4947738341386 | etot = -9.13334910733986 +994000 ekin = 1.57151651514655 | erot = 1.7504391420723 | epot = -12.4553047644872 | etot = -9.13334910726838 +995000 ekin = 1.57942173435936 | erot = 1.70964079470146 | epot = -12.4224116363212 | etot = -9.1333491072604 +996000 ekin = 1.58376261672678 | erot = 1.67898574513841 | epot = -12.396097469174 | etot = -9.13334910730886 +997000 ekin = 1.58587878575657 | erot = 1.65629050261323 | epot = -12.3755183957718 | etot = -9.13334910740197 +998000 ekin = 1.58710748471771 | erot = 1.63870906511802 | epot = -12.3591656573593 | etot = -9.13334910752362 +999000 ekin = 1.58875603199946 | erot = 1.62299637539018 | epot = -12.3451015150474 | etot = -9.13334910765779 +1000000 ekin = 1.59207001215674 | erot = 1.60581739808023 | epot = -12.3312365180193 | etot = -9.13334910778229 + 1000000 0.11793111 -1.2674127 0.034288999 -1.0739167 -1.3883882e-05 64000 +Loop time of 9.89878 on 1 procs for 1000000 steps with 10 atoms + +Performance: 87283.501 tau/day, 101022.571 timesteps/s, 1.010 Matom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.6716 | 7.6716 | 7.6716 | 0.0 | 77.50 +Bond | 0.40131 | 0.40131 | 0.40131 | 0.0 | 4.05 +Neigh | 0.012519 | 0.012519 | 0.012519 | 0.0 | 0.13 +Comm | 0.26996 | 0.26996 | 0.26996 | 0.0 | 2.73 +Output | 0.11986 | 0.11986 | 0.11986 | 0.0 | 1.21 +Modify | 1.1336 | 1.1336 | 1.1336 | 0.0 | 11.45 +Other | | 0.2899 | | | 2.93 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:09 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..38553ab177 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 @@ -0,0 +1,1113 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna.lj with DATE: 2024-04-21 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (stk) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (xstk) file oxdna.lj with DATE: 2024-04-21 +Reading oxdna potential (coaxstk) file oxdna.lj with DATE: 2024-04-21 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 2.9560004 + ghost atom cutoff = 3.8 + binsize = 1.4780002, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +0 ekin = 1.10853632272819 | erot = 2.81573649976629 | epot = -13.057621953437 | etot = -9.13334913094248 +Per MPI rank memory allocation (min/avg/max) = 7.105 | 7.11 | 7.116 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.082113802 -1.3488546 0.043092397 -1.1949086 -4.6816211e-05 64000 +1000 ekin = 1.08024346604046 | erot = 2.90873406534668 | epot = -13.1223266626202 | etot = -9.13334913123309 +2000 ekin = 1.05028450914436 | erot = 2.98006324808558 | epot = -13.1636968886591 | etot = -9.13334913142917 +3000 ekin = 1.01964458529397 | erot = 3.02592193798631 | epot = -13.1789156547658 | etot = -9.13334913148549 +4000 ekin = 0.989515033089522 | erot = 3.04428486059471 | epot = -13.1671490250723 | etot = -9.13334913138808 +5000 ekin = 0.961283929687805 | erot = 3.03510855539557 | epot = -13.1297416162282 | etot = -9.13334913114478 +6000 ekin = 0.936412193404224 | erot = 3.00022299571977 | epot = -13.0699843199583 | etot = -9.13334913083427 +7000 ekin = 0.916233699107934 | erot = 2.94277134440163 | epot = -12.9923541739966 | etot = -9.13334913048703 +8000 ekin = 0.901760662506231 | erot = 2.86671228744168 | epot = -12.9018220800865 | etot = -9.13334913013854 +9000 ekin = 0.893571390067841 | erot = 2.77649686780611 | epot = -12.8034173876806 | etot = -9.13334912980665 +10000 ekin = 0.89180568505681 | erot = 2.6768685500674 | epot = -12.7020233645916 | etot = -9.13334912946735 +11000 ekin = 0.896243557993558 | erot = 2.57266042063126 | epot = -12.6022531078195 | etot = -9.13334912919466 +12000 ekin = 0.906416039154792 | erot = 2.46827537271563 | epot = -12.5080405408348 | etot = -9.13334912896439 +13000 ekin = 0.921704091778471 | erot = 2.3676064547084 | epot = -12.4226596752788 | etot = -9.13334912879193 +14000 ekin = 0.941405275130066 | erot = 2.27374941641182 | epot = -12.3485038202329 | etot = -9.13334912869102 +15000 ekin = 0.964770892951772 | erot = 2.18876720165118 | epot = -12.2868872232636 | etot = -9.13334912866064 +16000 ekin = 0.991029016801091 | erot = 2.11380018376647 | epot = -12.2381783292305 | etot = -9.13334912866296 +17000 ekin = 1.01940907375713 | erot = 2.04893605182118 | epot = -12.2016942543555 | etot = -9.13334912877723 +18000 ekin = 1.04917923728266 | erot = 1.99335017578097 | epot = -12.1758785419805 | etot = -9.13334912891687 +19000 ekin = 1.07969247848164 | erot = 1.94569933362964 | epot = -12.1587409411761 | etot = -9.13334912906482 +20000 ekin = 1.11043268152285 | erot = 1.90411175657075 | epot = -12.1478935672812 | etot = -9.13334912918763 +21000 ekin = 1.14104909735581 | erot = 1.8669588297924 | epot = -12.1413570564147 | etot = -9.13334912926643 +22000 ekin = 1.17136821848097 | erot = 1.83313674901893 | epot = -12.137854096792 | etot = -9.13334912929212 +23000 ekin = 1.2013763409769 | erot = 1.80222523558974 | epot = -12.1369507058332 | etot = -9.13334912926651 +24000 ekin = 1.23117249622896 | erot = 1.77451266102185 | epot = -12.1390342864516 | etot = -9.13334912920075 +25000 ekin = 1.2608952664064 | erot = 1.75088411697588 | epot = -12.1451285124969 | etot = -9.13334912911462 +26000 ekin = 1.29063712254627 | erot = 1.732594283795 | epot = -12.1565805353676 | etot = -9.13334912902628 +27000 ekin = 1.32035987087023 | erot = 1.7211406167117 | epot = -12.174849616541 | etot = -9.13334912895908 +28000 ekin = 1.34980460658792 | erot = 1.71795709927852 | epot = -12.2011108348018 | etot = -9.13334912893533 +29000 ekin = 1.37841624051157 | erot = 1.72414013785738 | epot = -12.2359055073442 | etot = -9.13334912897525 +30000 ekin = 1.40529015727349 | erot = 1.74019656639667 | epot = -12.2788358527639 | etot = -9.13334912909374 +31000 ekin = 1.42915801743393 | erot = 1.7658325233695 | epot = -12.3283396701001 | etot = -9.1333491292967 +32000 ekin = 1.44843712560538 | erot = 1.79982181745342 | epot = -12.3816080726341 | etot = -9.13334912957528 +33000 ekin = 1.46136904668678 | erot = 1.84000474140075 | epot = -12.4347229179886 | etot = -9.13334912990108 +34000 ekin = 1.46625940785513 | erot = 1.88346459856619 | epot = -12.4830731366476 | etot = -9.13334913022629 +35000 ekin = 1.46179739484305 | erot = 1.9268888952494 | epot = -12.5220354205853 | etot = -9.1333491304929 +36000 ekin = 1.44738855724074 | erot = 1.96705754746495 | epot = -12.5477952353505 | etot = -9.1333491306448 +37000 ekin = 1.42340054468546 | erot = 2.00129614949924 | epot = -12.5580458249025 | etot = -9.13334913071781 +38000 ekin = 1.39122781542977 | erot = 2.02761655303762 | epot = -12.5521934990548 | etot = -9.13334913058742 +39000 ekin = 1.35313842096812 | erot = 2.04547852103599 | epot = -12.5319660723437 | etot = -9.13334913033961 +40000 ekin = 1.31193587699358 | erot = 2.05554364627555 | epot = -12.5008286533156 | etot = -9.13334913004651 +41000 ekin = 1.27054093924537 | erot = 2.05894429581367 | epot = -12.4628343648333 | etot = -9.13334912977423 +42000 ekin = 1.23161000992319 | erot = 2.05694893255704 | epot = -12.4219080720069 | etot = -9.13334912952672 +43000 ekin = 1.19723969759484 | erot = 2.05085758075654 | epot = -12.3814464076996 | etot = -9.13334912934826 +44000 ekin = 1.16880185863986 | erot = 2.04172238360624 | epot = -12.3438733714904 | etot = -9.13334912924432 +45000 ekin = 1.14690787175705 | erot = 2.03029950061771 | epot = -12.3105565015799 | etot = -9.13334912920515 +46000 ekin = 1.13147919636034 | erot = 2.01712256175374 | epot = -12.2819508873243 | etot = -9.13334912921019 +47000 ekin = 1.12189300492702 | erot = 2.00264798837259 | epot = -12.2578901225351 | etot = -9.13334912923549 +48000 ekin = 1.11716788112706 | erot = 1.98739120721198 | epot = -12.2379082176347 | etot = -9.13334912929562 +49000 ekin = 1.11615794795226 | erot = 1.97187368108381 | epot = -12.221380758335 | etot = -9.13334912929889 +50000 ekin = 1.11772326336375 | erot = 1.95708534394636 | epot = -12.2081577365827 | etot = -9.13334912927259 +51000 ekin = 1.1208492449785 | erot = 1.94437394210229 | epot = -12.1985723162998 | etot = -9.13334912921904 +52000 ekin = 1.12470549785227 | erot = 1.93529800314884 | epot = -12.1933526301511 | etot = -9.13334912914995 +53000 ekin = 1.12864556674951 | erot = 1.93145365271676 | epot = -12.1934483485499 | etot = -9.13334912908359 +54000 ekin = 1.13216113523062 | erot = 1.93430274875519 | epot = -12.1998130130122 | etot = -9.13334912902642 +55000 ekin = 1.13481106600208 | erot = 1.94490436967254 | epot = -12.2130645647023 | etot = -9.13334912902767 +56000 ekin = 1.1361434353579 | erot = 1.96361884590798 | epot = -12.2331114103532 | etot = -9.13334912908732 +57000 ekin = 1.13563178311256 | erot = 1.99002978527255 | epot = -12.2590106975987 | etot = -9.13334912921356 +58000 ekin = 1.13263976908221 | erot = 2.02286978616504 | epot = -12.2888586846527 | etot = -9.13334912940548 +59000 ekin = 1.1264242611341 | erot = 2.06004413441712 | epot = -12.319817525203 | etot = -9.13334912965174 +60000 ekin = 1.11618536041514 | erot = 2.09876774945547 | epot = -12.3483022398006 | etot = -9.13334912993001 +61000 ekin = 1.1011681041785 | erot = 2.13581434618267 | epot = -12.3703315805685 | etot = -9.13334913020729 +62000 ekin = 1.0808163752179 | erot = 2.16786879318298 | epot = -12.3820342988434 | etot = -9.13334913044257 +63000 ekin = 1.05497014428139 | erot = 2.1919450325443 | epot = -12.3802643074577 | etot = -9.133349130632 +64000 ekin = 1.02408601603151 | erot = 2.20562384873123 | epot = -12.363058995418 | etot = -9.1333491306553 +65000 ekin = 0.989434415807667 | erot = 2.20769180278651 | epot = -12.3304753491252 | etot = -9.13334913053104 +66000 ekin = 0.953195593563851 | erot = 2.19842250482622 | epot = -12.284967228654 | etot = -9.13334913026394 +67000 ekin = 0.918366365968241 | erot = 2.17942400884177 | epot = -12.231139504705 | etot = -9.13334912989501 +68000 ekin = 0.88846781466627 | erot = 2.15321364358197 | epot = -12.1750305877204 | etot = -9.13334912947211 +69000 ekin = 0.867150037001639 | erot = 2.12288633704371 | epot = -12.123385503121 | etot = -9.13334912907568 +70000 ekin = 0.857579951604763 | erot = 2.09151913845149 | epot = -12.0824482188433 | etot = -9.13334912878702 +71000 ekin = 0.86181542526747 | erot = 2.06157004239559 | epot = -12.0567345963622 | etot = -9.13334912869911 +72000 ekin = 0.880191815685442 | erot = 2.0343527543936 | epot = -12.0478936988734 | etot = -9.13334912879437 +73000 ekin = 0.911201453876623 | erot = 2.00982694750396 | epot = -12.0543775304381 | etot = -9.13334912905754 +74000 ekin = 0.951849895585052 | erot = 1.98685418272619 | epot = -12.0720532077347 | etot = -9.13334912942345 +75000 ekin = 0.998151008641142 | erot = 1.96362530027596 | epot = -12.0951254387265 | etot = -9.13334912980944 +76000 ekin = 1.04581734271581 | erot = 1.93821700241347 | epot = -12.1173834752671 | etot = -9.13334913013781 +77000 ekin = 1.09091996835692 | erot = 1.90910715282276 | epot = -12.1333762515352 | etot = -9.13334913035557 +78000 ekin = 1.13037631927904 | erot = 1.87551578135374 | epot = -12.139241231075 | etot = -9.13334913044224 +79000 ekin = 1.1621958859777 | erot = 1.83750580183249 | epot = -12.1330508182183 | etot = -9.13334913040809 +80000 ekin = 1.18548972632215 | erot = 1.79585942669976 | epot = -12.1146982833062 | etot = -9.13334913028424 +81000 ekin = 1.20030605718936 | erot = 1.75181365939736 | epot = -12.0854688466955 | etot = -9.1333491301088 +82000 ekin = 1.20737786492176 | erot = 1.70676694760209 | epot = -12.0474939424388 | etot = -9.13334912991494 +83000 ekin = 1.20786051402051 | erot = 1.66205278152621 | epot = -12.0032624252715 | etot = -9.1333491297248 +84000 ekin = 1.20310991572454 | erot = 1.6188291324731 | epot = -11.9552881777459 | etot = -9.13334912954824 +85000 ekin = 1.19452073297143 | erot = 1.57808043002408 | epot = -11.9059502923817 | etot = -9.13334912938621 +86000 ekin = 1.18342100682536 | erot = 1.54069268896226 | epot = -11.8574628250233 | etot = -9.1333491292357 +87000 ekin = 1.17100858957323 | erot = 1.50755090689507 | epot = -11.8119086255615 | etot = -9.13334912909325 +88000 ekin = 1.15831377551661 | erot = 1.47961680456709 | epot = -11.7712797090415 | etot = -9.13334912895782 +89000 ekin = 1.1461768281738 | erot = 1.4579637812888 | epot = -11.7374897382936 | etot = -9.13334912883096 +90000 ekin = 1.13523447969402 | erot = 1.44376438030013 | epot = -11.7123479887107 | etot = -9.13334912871654 +91000 ekin = 1.12591345720532 | erot = 1.43823772500936 | epot = -11.6975003108345 | etot = -9.13334912861983 +92000 ekin = 1.11843099489269 | erot = 1.44256930748506 | epot = -11.6943494309244 | etot = -9.1333491285466 +93000 ekin = 1.112803296348 | erot = 1.45781524814474 | epot = -11.7039676729951 | etot = -9.13334912850232 +94000 ekin = 1.10886209127324 | erot = 1.48480045701866 | epot = -11.7270116767841 | etot = -9.13334912849224 +95000 ekin = 1.10627886010325 | erot = 1.52396220647535 | epot = -11.7635901951105 | etot = -9.13334912853194 +96000 ekin = 1.10459509814408 | erot = 1.57519859223418 | epot = -11.8131428189843 | etot = -9.13334912860609 +97000 ekin = 1.1032594376989 | erot = 1.63800664193795 | epot = -11.8746152083616 | etot = -9.13334912872477 +98000 ekin = 1.10166959581631 | erot = 1.71130689804966 | epot = -11.9463256227538 | etot = -9.1333491288878 +99000 ekin = 1.0992184938515 | erot = 1.79339905630356 | epot = -12.025966679247 | etot = -9.13334912909191 +100000 ekin = 1.09534596880096 | erot = 1.88196872528567 | epot = -12.110663823416 | etot = -9.13334912932934 +101000 ekin = 1.08959720755109 | erot = 1.97415616931449 | epot = -12.1971025064518 | etot = -9.13334912958625 +102000 ekin = 1.08168751154809 | erot = 2.06670282185173 | epot = -12.2817394632424 | etot = -9.13334912984258 +103000 ekin = 1.07156932342309 | erot = 2.15618192508059 | epot = -12.3611003785771 | etot = -9.1333491300734 +104000 ekin = 1.0594923799607 | erot = 2.23930158373565 | epot = -12.4321430939483 | etot = -9.13334913025199 +105000 ekin = 1.04604342224879 | erot = 2.31323902285846 | epot = -12.492631575493 | etot = -9.13334913038572 +106000 ekin = 1.03224316318565 | erot = 2.37579242095985 | epot = -12.5413847145642 | etot = -9.13334913041871 +107000 ekin = 1.01951120148941 | erot = 2.42585603740569 | epot = -12.5787163692802 | etot = -9.13334913038506 +108000 ekin = 1.00875017477221 | erot = 2.46348952984496 | epot = -12.6055888348734 | etot = -9.13334913025625 +109000 ekin = 1.00109573552412 | erot = 2.48980806114974 | epot = -12.6242529267278 | etot = -9.13334913005397 +110000 ekin = 0.997931591358304 | erot = 2.50673918610807 | epot = -12.6380199072775 | etot = -9.13334912981118 +111000 ekin = 1.00076792351343 | erot = 2.5166591537305 | epot = -12.6507762068076 | etot = -9.13334912956365 +112000 ekin = 1.01109610479951 | erot = 2.52200701599662 | epot = -12.6664522501391 | etot = -9.133349129343 +113000 ekin = 1.0301901681791 | erot = 2.52496101252893 | epot = -12.6885003099863 | etot = -9.13334912927822 +114000 ekin = 1.05821017520655 | erot = 2.52722573627522 | epot = -12.7187850407016 | etot = -9.13334912921986 +115000 ekin = 1.09472530400172 | erot = 2.5300393044883 | epot = -12.7581137377193 | etot = -9.13334912922923 +116000 ekin = 1.13884650903364 | erot = 2.53414832430445 | epot = -12.8063439626438 | etot = -9.13334912930572 +117000 ekin = 1.18909444999517 | erot = 2.53980839277126 | epot = -12.8622519722148 | etot = -9.1333491294484 +118000 ekin = 1.24341490970508 | erot = 2.54678348242624 | epot = -12.9235475217867 | etot = -9.13334912965538 +119000 ekin = 1.29923662064227 | erot = 2.55432909400996 | epot = -12.9869148445729 | etot = -9.13334912992068 +120000 ekin = 1.35358959215683 | erot = 2.5611861592178 | epot = -13.0481248816036 | etot = -9.13334913022902 +121000 ekin = 1.40329803815488 | erot = 2.5656313586164 | epot = -13.1022785273253 | etot = -9.13334913055406 +122000 ekin = 1.44524692196652 | erot = 2.56562448409207 | epot = -13.1442205369173 | etot = -9.13334913085867 +123000 ekin = 1.47669540804869 | erot = 2.55906317998187 | epot = -13.169107719131 | etot = -9.13334913110044 +124000 ekin = 1.49558302658199 | erot = 2.54411105943705 | epot = -13.1730432172612 | etot = -9.13334913124216 +125000 ekin = 1.50076122489775 | erot = 2.51952798471295 | epot = -13.1536383408713 | etot = -9.13334913126062 +126000 ekin = 1.49214728684746 | erot = 2.48515933103509 | epot = -13.1106557490374 | etot = -9.13334913115489 +127000 ekin = 1.47053410713985 | erot = 2.44174480075121 | epot = -13.0456280388476 | etot = -9.13334913095659 +128000 ekin = 1.43743445323531 | erot = 2.39059049317546 | epot = -12.961374077076 | etot = -9.13334913066526 +129000 ekin = 1.39501109707075 | erot = 2.3338012012582 | epot = -12.8621614286437 | etot = -9.13334913031472 +130000 ekin = 1.34584042016769 | erot = 2.27401545397177 | epot = -12.7532050040794 | etot = -9.13334912993992 +131000 ekin = 1.29268930786602 | erot = 2.21410134111225 | epot = -12.6401397785509 | etot = -9.1333491295726 +132000 ekin = 1.23832315616831 | erot = 2.15686384200886 | epot = -12.5285361274155 | etot = -9.13334912923836 +133000 ekin = 1.18535267681202 | erot = 2.10479906741759 | epot = -12.4235008731853 | etot = -9.13334912895568 +134000 ekin = 1.13612155562816 | erot = 2.05991346428629 | epot = -12.3293841486505 | etot = -9.133349128736 +135000 ekin = 1.09263262326054 | erot = 2.02360952444367 | epot = -12.2495912762905 | etot = -9.13334912858628 +136000 ekin = 1.05650575788347 | erot = 1.99662030668685 | epot = -12.1864751930781 | etot = -9.13334912850776 +137000 ekin = 1.02895878679454 | erot = 1.97899212834891 | epot = -12.1413000436434 | etot = -9.13334912849995 +138000 ekin = 1.01080388995842 | erot = 1.9701351217224 | epot = -12.1142881402332 | etot = -9.13334912855242 +139000 ekin = 1.00245459395339 | erot = 1.96888144460886 | epot = -12.1046851672404 | etot = -9.13334912867811 +140000 ekin = 1.0039378074061 | erot = 1.97333010973467 | epot = -12.1106170460029 | etot = -9.13334912886208 +141000 ekin = 1.01490973367025 | erot = 1.98104530944812 | epot = -12.1293041722138 | etot = -9.13334912909543 +142000 ekin = 1.03468044934409 | erot = 1.98917872502454 | epot = -12.1572083037338 | etot = -9.13334912936515 +143000 ekin = 1.06225104646168 | erot = 1.99463134790809 | epot = -12.1902315240234 | etot = -9.13334912965366 +144000 ekin = 1.09636709127245 | erot = 1.99441220318426 | epot = -12.2241284243807 | etot = -9.13334912992396 +145000 ekin = 1.13559045362118 | erot = 1.98572590466038 | epot = -12.2546654884646 | etot = -9.13334913018302 +146000 ekin = 1.17838854122089 | erot = 1.96612892354289 | epot = -12.2778665951539 | etot = -9.13334913039009 +147000 ekin = 1.2230069974918 | erot = 1.9340512939501 | epot = -12.2904074219633 | etot = -9.13334913052135 +148000 ekin = 1.2678567786302 | erot = 1.88891621350878 | epot = -12.2901221227001 | etot = -9.1333491305611 +149000 ekin = 1.31170551487303 | erot = 1.83123494690903 | epot = -12.2762895922888 | etot = -9.13334913050675 +150000 ekin = 1.35361858091203 | erot = 1.76263607509644 | epot = -12.2496037863731 | etot = -9.13334913036465 +151000 ekin = 1.39299848911433 | erot = 1.68572491420637 | epot = -12.2120725334746 | etot = -9.13334913015392 +152000 ekin = 1.42958376961915 | erot = 1.60381549112362 | epot = -12.1667483906424 | etot = -9.13334912989958 +153000 ekin = 1.46340801747597 | erot = 1.52060159601931 | epot = -12.1173587431249 | etot = -9.13334912962961 +154000 ekin = 1.49472650224564 | erot = 1.43981503875285 | epot = -12.0678906703691 | etot = -9.1333491293706 +155000 ekin = 1.52392161825082 | erot = 1.36491657683223 | epot = -12.0221873242286 | etot = -9.13334912914557 +156000 ekin = 1.55140022159559 | erot = 1.29884972381827 | epot = -11.9835990743857 | etot = -9.1333491289718 +157000 ekin = 1.57749707056591 | erot = 1.24387068637226 | epot = -11.9547168857974 | etot = -9.13334912885921 +158000 ekin = 1.60239506185786 | erot = 1.20145363967816 | epot = -11.9371978303525 | etot = -9.13334912881648 +159000 ekin = 1.62604462003791 | erot = 1.17226436760499 | epot = -11.931658116485 | etot = -9.13334912884206 +160000 ekin = 1.64813303486552 | erot = 1.15619534708316 | epot = -11.93767751088 | etot = -9.13334912893129 +161000 ekin = 1.66807327612987 | erot = 1.15245312716193 | epot = -11.9538755323662 | etot = -9.13334912907437 +162000 ekin = 1.68501875283066 | erot = 1.15969471512808 | epot = -11.978062597216 | etot = -9.13334912925728 +163000 ekin = 1.69790620824686 | erot = 1.17620989126109 | epot = -12.0074652289693 | etot = -9.13334912946133 +164000 ekin = 1.7055271179841 | erot = 1.20014309389834 | epot = -12.0390193415467 | etot = -9.13334912966428 +165000 ekin = 1.70662691809365 | erot = 1.22974121417727 | epot = -12.0697172621128 | etot = -9.13334912984184 +166000 ekin = 1.70002908026867 | erot = 1.26360423252418 | epot = -12.0969824427633 | etot = -9.13334912997049 +167000 ekin = 1.68477683955904 | erot = 1.30090518403772 | epot = -12.1190311536269 | etot = -9.1333491300301 +168000 ekin = 1.66027923283209 | erot = 1.34154370359082 | epot = -12.1351720664311 | etot = -9.13334913000816 +169000 ekin = 1.62644124957751 | erot = 1.38619810991404 | epot = -12.1459884893943 | etot = -9.13334912990279 +170000 ekin = 1.58375251890797 | erot = 1.43625221626198 | epot = -12.153353864895 | etot = -9.13334912972505 +171000 ekin = 1.53331003043946 | erot = 1.49359459893415 | epot = -12.1602537588723 | etot = -9.13334912949871 +172000 ekin = 1.47676106161418 | erot = 1.56031583407051 | epot = -12.17042602494 | etot = -9.13334912925535 +173000 ekin = 1.41695754705538 | erot = 1.63848249765424 | epot = -12.1887891730445 | etot = -9.13334912833489 +174000 ekin = 1.3593768430449 | erot = 1.72968793645253 | epot = -12.2224139078251 | etot = -9.13334912832771 +175000 ekin = 1.30537540818815 | erot = 1.83369980102279 | epot = -12.2724243375751 | etot = -9.13334912836421 +176000 ekin = 1.25571357800303 | erot = 1.94952726339969 | epot = -12.3385899698488 | etot = -9.13334912844608 +177000 ekin = 1.21104692225308 | erot = 2.07558802224412 | epot = -12.4199840730639 | etot = -9.13334912856671 +178000 ekin = 1.1718951205703 | erot = 2.20976079574673 | epot = -12.5150050450639 | etot = -9.13334912874691 +179000 ekin = 1.13864315857365 | erot = 2.34949890132923 | epot = -12.6214911888114 | etot = -9.13334912890848 +180000 ekin = 1.11156621835588 | erot = 2.49234008540043 | epot = -12.7372554328246 | etot = -9.13334912906826 +181000 ekin = 1.09087167613581 | erot = 2.63567357536181 | epot = -12.8598943807499 | etot = -9.13334912925225 +182000 ekin = 1.07675226579837 | erot = 2.77693577183374 | epot = -12.9870371670193 | etot = -9.13334912938722 +183000 ekin = 1.0694229423415 | erot = 2.91405263083485 | epot = -13.1168247026763 | etot = -9.13334912949999 +184000 ekin = 1.06913488705839 | erot = 3.04520163111703 | epot = -13.2476856477703 | etot = -9.13334912959484 +185000 ekin = 1.07614345922792 | erot = 3.16875772929967 | epot = -13.3782503182127 | etot = -9.13334912968508 +186000 ekin = 1.09060563376754 | erot = 3.28317984154898 | epot = -13.5071346051103 | etot = -9.1333491297938 +187000 ekin = 1.11239929858156 | erot = 3.38683780589129 | epot = -13.6325862344245 | etot = -9.13334912995164 +188000 ekin = 1.14088837562652 | erot = 3.47780595660551 | epot = -13.7520434624197 | etot = -9.13334913018771 +189000 ekin = 1.17469755695859 | erot = 3.55369218298284 | epot = -13.861738870457 | etot = -9.13334913051552 +190000 ekin = 1.21158961983351 | erot = 3.61161008256105 | epot = -13.9565488333131 | etot = -9.1333491309185 +191000 ekin = 1.24837558083739 | erot = 3.64780345127581 | epot = -14.0295281634884 | etot = -9.13334913137519 +192000 ekin = 1.28102311682972 | erot = 3.65810395429013 | epot = -14.0724762027872 | etot = -9.1333491316674 +193000 ekin = 1.3059832081699 | erot = 3.64139295006508 | epot = -14.0807252900248 | etot = -9.13334913178983 +194000 ekin = 1.32049648836629 | erot = 3.59844552363041 | epot = -14.0522911436919 | etot = -9.13334913169516 +195000 ekin = 1.32298604774279 | erot = 3.53212928134945 | epot = -13.9884644604287 | etot = -9.1333491313365 +196000 ekin = 1.31323645162571 | erot = 3.44751612705298 | epot = -13.8941017095228 | etot = -9.13334913084408 +197000 ekin = 1.29228934698143 | erot = 3.35072340322484 | epot = -13.7763618804982 | etot = -9.13334913029193 +198000 ekin = 1.26212633786626 | erot = 3.24789114381976 | epot = -13.6433666114223 | etot = -9.13334912973633 +199000 ekin = 1.22527047461707 | erot = 3.14483705467186 | epot = -13.5034566585623 | etot = -9.1333491292734 +200000 ekin = 1.18441799207224 | erot = 3.04594245962971 | epot = -13.3637095806209 | etot = -9.133349128919 +201000 ekin = 1.14216630511931 | erot = 2.95390025492329 | epot = -13.2294156887263 | etot = -9.13334912868374 +202000 ekin = 1.10084220211731 | erot = 2.86987712396318 | epot = -13.1040684546426 | etot = -9.13334912856206 +203000 ekin = 1.06240856568998 | erot = 2.79366067226801 | epot = -12.9894183664989 | etot = -9.13334912854089 +204000 ekin = 1.02841768821206 | erot = 2.7238914427548 | epot = -12.8856582595711 | etot = -9.13334912860425 +205000 ekin = 0.999988405220642 | erot = 2.65832732458283 | epot = -12.7916648585382 | etot = -9.1333491287347 +206000 ekin = 0.977799621225039 | erot = 2.59412391514158 | epot = -12.7052726652791 | etot = -9.13334912891246 +207000 ekin = 0.96210565396534 | erot = 2.52813792126086 | epot = -12.6235927043392 | etot = -9.13334912911298 +208000 ekin = 0.952783648018826 | erot = 2.4572664289228 | epot = -12.5433992062482 | etot = -9.13334912930654 +209000 ekin = 0.949416945748555 | erot = 2.37882137049688 | epot = -12.4615874457061 | etot = -9.13334912946071 +210000 ekin = 0.951402263215277 | erot = 2.2909093941919 | epot = -12.3756607869538 | etot = -9.13334912954662 +211000 ekin = 0.95805195207771 | erot = 2.19275562021856 | epot = -12.2841567018434 | etot = -9.13334912954713 +212000 ekin = 0.968659667700622 | erot = 2.08489619855804 | epot = -12.1869049957195 | etot = -9.1333491294608 +213000 ekin = 0.982515908120138 | erot = 1.96918422280988 | epot = -12.0850492602323 | etot = -9.13334912930225 +214000 ekin = 0.998888701919955 | erot = 1.84860041861919 | epot = -11.9808382496354 | etot = -9.13334912909625 +215000 ekin = 1.0170013491259 | erot = 1.72690897492172 | epot = -11.8772594529192 | etot = -9.13334912887158 +216000 ekin = 1.03603050122475 | erot = 1.60822693577827 | epot = -11.7776065656585 | etot = -9.13334912865547 +217000 ekin = 1.05512477228492 | erot = 1.496579175338 | epot = -11.6850530760951 | etot = -9.13334912847215 +218000 ekin = 1.07342860744204 | erot = 1.39550092670185 | epot = -11.6022786624837 | etot = -9.13334912833986 +219000 ekin = 1.09009860355593 | erot = 1.30773521951561 | epot = -11.531182951341 | etot = -9.13334912826951 +220000 ekin = 1.10431207607363 | erot = 1.23505496062892 | epot = -11.4727161649659 | etot = -9.13334912826336 +221000 ekin = 1.11527717993055 | erot = 1.17821867809255 | epot = -11.426844986338 | etot = -9.13334912831486 +222000 ekin = 1.12225437592976 | erot = 1.1370482394415 | epot = -11.3926517437816 | etot = -9.13334912841031 +223000 ekin = 1.1245929762141 | erot = 1.11060060825111 | epot = -11.3685427129973 | etot = -9.13334912853205 +224000 ekin = 1.12177911879611 | erot = 1.0973962554393 | epot = -11.3525245028961 | etot = -9.13334912866071 +225000 ekin = 1.11348637905745 | erot = 1.0956640253194 | epot = -11.3424995331558 | etot = -9.133349128779 +226000 ekin = 1.09961800000694 | erot = 1.10360909760954 | epot = -11.3365762264851 | etot = -9.13334912886863 +227000 ekin = 1.08033165066207 | erot = 1.1195273004342 | epot = -11.3332080800319 | etot = -9.13334912893563 +228000 ekin = 1.0560460287277 | erot = 1.14187865421875 | epot = -11.331273811917 | etot = -9.13334912897058 +229000 ekin = 1.02742418663498 | erot = 1.16938489301688 | epot = -11.3301582086284 | etot = -9.13334912897658 +230000 ekin = 0.995339184991514 | erot = 1.20102048198626 | epot = -11.3297087959369 | etot = -9.13334912895908 +231000 ekin = 0.960829492708653 | erot = 1.23597735762313 | epot = -11.3301559792544 | etot = -9.13334912892258 +232000 ekin = 0.925050432735229 | erot = 1.27360958612392 | epot = -11.3320091477354 | etot = -9.13334912887625 +233000 ekin = 0.889225435959757 | erot = 1.31337910210636 | epot = -11.3359536668893 | etot = -9.1333491288232 +234000 ekin = 0.854600006628753 | erot = 1.35483402381923 | epot = -11.3427831592148 | etot = -9.13334912876681 +235000 ekin = 0.822390924845247 | erot = 1.39757430015836 | epot = -11.3533143537194 | etot = -9.1333491287158 +236000 ekin = 0.793732848711906 | erot = 1.44121433399065 | epot = -11.3682963113763 | etot = -9.13334912867375 +237000 ekin = 0.76963219121953 | erot = 1.48535644446062 | epot = -11.3883377643265 | etot = -9.13334912864631 +238000 ekin = 0.750918993366152 | erot = 1.52956143549206 | epot = -11.4138295574958 | etot = -9.13334912863755 +239000 ekin = 0.738206267497332 | erot = 1.57333361162144 | epot = -11.4448890077678 | etot = -9.13334912864905 +240000 ekin = 0.731862193744161 | erot = 1.61613149974219 | epot = -11.4813428221655 | etot = -9.1333491286792 +241000 ekin = 0.731999328002225 | erot = 1.65741090456852 | epot = -11.5227593612935 | etot = -9.13334912872278 +242000 ekin = 0.738482620157526 | erot = 1.69669130986301 | epot = -11.5685230587944 | etot = -9.13334912877383 +243000 ekin = 0.75095504232561 | erot = 1.73364929482317 | epot = -11.6179534659685 | etot = -9.13334912881975 +244000 ekin = 0.768877080466842 | erot = 1.76822360275613 | epot = -11.6704498120771 | etot = -9.13334912885415 +245000 ekin = 0.79157392929488 | erot = 1.80068045121312 | epot = -11.7256035093795 | etot = -9.13334912887146 +246000 ekin = 0.818282914271808 | erot = 1.8316410744517 | epot = -11.7832731175941 | etot = -9.13334912887063 +247000 ekin = 0.84819362160195 | erot = 1.86205096555233 | epot = -11.8435937160101 | etot = -9.13334912885584 +248000 ekin = 0.880474358635757 | erot = 1.89308546777779 | epot = -11.90690895525 | etot = -9.13334912883643 +249000 ekin = 0.914280881219526 | erot = 1.9259971322387 | epot = -11.9736271422841 | etot = -9.13334912882583 +250000 ekin = 0.948746730716735 | erot = 1.96192054843707 | epot = -12.0440164079939 | etot = -9.13334912884008 +251000 ekin = 0.982959063854598 | erot = 2.00165977259877 | epot = -12.1179679653482 | etot = -9.13334912889487 +252000 ekin = 1.01592948249879 | erot = 2.04549252396337 | epot = -12.1947711354631 | etot = -9.13334912900098 +253000 ekin = 1.04657777484006 | erot = 2.09303441305928 | epot = -12.2729613170592 | etot = -9.13334912915986 +254000 ekin = 1.07373541755098 | erot = 2.14319803018411 | epot = -12.350282577098 | etot = -9.13334912936295 +255000 ekin = 1.0962016316305 | erot = 2.19430966720506 | epot = -12.4238604284171 | etot = -9.13334912958158 +256000 ekin = 1.11287206428172 | erot = 2.24438579427395 | epot = -12.4906069883384 | etot = -9.13334912978273 +257000 ekin = 1.12287782510647 | erot = 2.29146665865368 | epot = -12.5476936136915 | etot = -9.13334912993139 +258000 ekin = 1.12572293500287 | erot = 2.33396623628233 | epot = -12.5930383012892 | etot = -9.133349130004 +259000 ekin = 1.12139026023665 | erot = 2.37095948468519 | epot = -12.6256988749106 | etot = -9.13334912998877 +260000 ekin = 1.11036122819349 | erot = 2.40229658115363 | epot = -12.6460069392472 | etot = -9.13334912990009 +261000 ekin = 1.09354805445101 | erot = 2.42847877902905 | epot = -12.6553759632423 | etot = -9.13334912976222 +262000 ekin = 1.07216031825813 | erot = 2.45046938603018 | epot = -12.6559788338922 | etot = -9.13334912960391 +263000 ekin = 1.04754368718323 | erot = 2.46943297797192 | epot = -12.6503257946119 | etot = -9.13334912945675 +264000 ekin = 1.02102495133859 | erot = 2.4864784463715 | epot = -12.6408525270504 | etot = -9.13334912934026 +265000 ekin = 0.993788783443924 | erot = 2.50247063136404 | epot = -12.6296085440768 | etot = -9.13334912926887 +266000 ekin = 0.966800247930213 | erot = 2.51790683905026 | epot = -12.6180562162303 | etot = -9.1333491292498 +267000 ekin = 0.940784249459517 | erot = 2.53283827184827 | epot = -12.6069716505896 | etot = -9.13334912928181 +268000 ekin = 0.916272152394691 | erot = 2.5468461215252 | epot = -12.5964674032731 | etot = -9.13334912935317 +269000 ekin = 0.893722172477521 | erot = 2.55907244306963 | epot = -12.5861437450347 | etot = -9.13334912948752 +270000 ekin = 0.873709285129145 | erot = 2.56799722891229 | epot = -12.5750556436019 | etot = -9.13334912956044 +271000 ekin = 0.857156433251724 | erot = 2.57226369508359 | epot = -12.562769257908 | etot = -9.13334912957266 +272000 ekin = 0.845541083724155 | erot = 2.57096110909456 | epot = -12.5498513223268 | etot = -9.13334912950808 +273000 ekin = 0.840983736969839 | erot = 2.56364270819375 | epot = -12.5379755745176 | etot = -9.13334912935399 +274000 ekin = 0.846103061110545 | erot = 2.55054497183583 | epot = -12.5299971620895 | etot = -9.13334912914318 +275000 ekin = 0.863570741244989 | erot = 2.53260377851036 | epot = -12.5295236486812 | etot = -9.13334912892586 +276000 ekin = 0.895419299415286 | erot = 2.51114645014759 | epot = -12.5399148783703 | etot = -9.13334912880747 +277000 ekin = 0.942302359418826 | erot = 2.48734970425668 | epot = -12.563001192512 | etot = -9.13334912883648 +278000 ekin = 1.00299069941595 | erot = 2.46199112036399 | epot = -12.5983309488096 | etot = -9.13334912902968 +279000 ekin = 1.0743456158927 | erot = 2.4352977459076 | epot = -12.6429924911397 | etot = -9.13334912933943 +280000 ekin = 1.15182340984049 | erot = 2.4071159636552 | epot = -12.6922885031802 | etot = -9.13334912968449 +281000 ekin = 1.23030856581844 | erot = 2.37726964751242 | epot = -12.7409273433238 | etot = -9.13334912999295 +282000 ekin = 1.30483974879804 | erot = 2.34551973870782 | epot = -12.7837086176988 | etot = -9.13334913019296 +283000 ekin = 1.37151257999484 | erot = 2.31231452819892 | epot = -12.8171762384383 | etot = -9.1333491302445 +284000 ekin = 1.42789685319431 | erot = 2.27901843146214 | epot = -12.8402644148117 | etot = -9.13334913015527 +285000 ekin = 1.47299679574515 | erot = 2.24762833985833 | epot = -12.8539742655641 | etot = -9.13334912996062 +286000 ekin = 1.50701906587751 | erot = 2.2205005628335 | epot = -12.8608687584219 | etot = -9.13334912971089 +287000 ekin = 1.53099472144815 | erot = 2.19999584806531 | epot = -12.8643396989725 | etot = -9.133349129459 +288000 ekin = 1.54636449768925 | erot = 2.18811490987536 | epot = -12.8678285368153 | etot = -9.13334912925072 +289000 ekin = 1.55461163491252 | erot = 2.18618804174404 | epot = -12.874148805774 | etot = -9.13334912911742 +290000 ekin = 1.5569942867472 | erot = 2.19466879450655 | epot = -12.8850122103273 | etot = -9.13334912907358 +291000 ekin = 1.55439775255695 | erot = 2.21306131818056 | epot = -12.9008081998541 | etot = -9.13334912911663 +292000 ekin = 1.54729960240307 | erot = 2.23998314422064 | epot = -12.9206318758547 | etot = -9.13334912923097 +293000 ekin = 1.53582108608452 | erot = 2.27333490842462 | epot = -12.9425051239033 | etot = -9.13334912939421 +294000 ekin = 1.51982864506225 | erot = 2.31049721096962 | epot = -12.963674985627 | etot = -9.13334912959509 +295000 ekin = 1.4990515421338 | erot = 2.34851873984041 | epot = -12.9809194117674 | etot = -9.13334912979322 +296000 ekin = 1.47319364802849 | erot = 2.38443281021178 | epot = -12.9909755882228 | etot = -9.13334912998248 +297000 ekin = 1.44203124546021 | erot = 2.41536854590052 | epot = -12.9907489215106 | etot = -9.13334913014987 +298000 ekin = 1.40549976702133 | erot = 2.438674090462 | epot = -12.9775229877658 | etot = -9.13334913028248 +299000 ekin = 1.36377241662842 | erot = 2.45204871800543 | epot = -12.9491702650007 | etot = -9.13334913036682 +300000 ekin = 1.31732711912188 | erot = 2.4536840809266 | epot = -12.9043603304393 | etot = -9.13334913039078 +301000 ekin = 1.2669902241474 | erot = 2.44240353914669 | epot = -12.8427428936401 | etot = -9.13334913034601 +302000 ekin = 1.21394210637168 | erot = 2.41777278593021 | epot = -12.7650640225331 | etot = -9.13334913023125 +303000 ekin = 1.1596741442933 | erot = 2.380151896837 | epot = -12.6731751711843 | etot = -9.13334913005402 +304000 ekin = 1.10589726251281 | erot = 2.33066939618196 | epot = -12.5699157885238 | etot = -9.13334912982902 +305000 ekin = 1.05441504199238 | erot = 2.27111808933726 | epot = -12.4588822609056 | etot = -9.13334912957594 +306000 ekin = 1.00698421397122 | erot = 2.20379218514064 | epot = -12.3441255284267 | etot = -9.13334912931484 +307000 ekin = 0.965188337627229 | erot = 2.13129764385414 | epot = -12.2298351105443 | etot = -9.13334912906297 +308000 ekin = 0.930345631944139 | erot = 2.05636814615571 | epot = -12.1200629069324 | etot = -9.13334912883259 +309000 ekin = 0.903461768092625 | erot = 1.98167791132874 | epot = -12.0184888080534 | etot = -9.13334912863207 +310000 ekin = 0.885228515007679 | erot = 1.90967870211578 | epot = -11.9282563455879 | etot = -9.13334912846441 +311000 ekin = 0.876047647700181 | erot = 1.84263812610051 | epot = -11.8520349021326 | etot = -9.13334912833191 +312000 ekin = 0.876068182198755 | erot = 1.78248869456891 | epot = -11.7919060050058 | etot = -9.13334912823816 +313000 ekin = 0.88522398596972 | erot = 1.73072892882223 | epot = -11.7493020429808 | etot = -9.13334912818882 +314000 ekin = 0.903258342515012 | erot = 1.68832066988356 | epot = -11.7249281405897 | etot = -9.13334912819118 +315000 ekin = 0.929731391718417 | erot = 1.65558558099718 | epot = -11.7186661009682 | etot = -9.1333491282526 +316000 ekin = 0.964013828970745 | erot = 1.63211973509034 | epot = -11.7294826924389 | etot = -9.1333491283778 +317000 ekin = 1.00527629211694 | erot = 1.61675326466471 | epot = -11.7553786853475 | etot = -9.13334912856588 +318000 ekin = 1.05248736450164 | erot = 1.60758570940571 | epot = -11.7934222027149 | etot = -9.13334912880761 +319000 ekin = 1.10443332868176 | erot = 1.60212494474522 | epot = -11.8399074025106 | etot = -9.13334912908365 +320000 ekin = 1.1597692492088 | erot = 1.5975452610542 | epot = -11.890663639627 | etot = -9.133349129364 +321000 ekin = 1.21710352305734 | erot = 1.59105554518188 | epot = -11.941508197852 | etot = -9.13334912961278 +322000 ekin = 1.2751075118954 | erot = 1.58033324923112 | epot = -11.9887898909202 | etot = -9.13334912979368 +323000 ekin = 1.33263084645785 | erot = 1.56394390937369 | epot = -12.0299238857107 | etot = -9.1333491298792 +324000 ekin = 1.38879590712293 | erot = 1.54164678485268 | epot = -12.0637918218341 | etot = -9.13334912985847 +325000 ekin = 1.44304623679791 | erot = 1.51450056885294 | epot = -12.0908959353913 | etot = -9.13334912974046 +326000 ekin = 1.49513435445767 | erot = 1.4847307306608 | epot = -12.1132142146709 | etot = -9.13334912955244 +327000 ekin = 1.54505065938433 | erot = 1.45538400860376 | epot = -12.1337837973218 | etot = -9.13334912933371 +328000 ekin = 1.59290981434341 | erot = 1.4298478820938 | epot = -12.1561068255642 | etot = -9.133349129127 +329000 ekin = 1.63881860975713 | erot = 1.41133335467837 | epot = -12.1835010934069 | etot = -9.13334912897138 +330000 ekin = 1.68274896183183 | erot = 1.40240729591395 | epot = -12.2185053866427 | etot = -9.13334912889693 +331000 ekin = 1.72443467169651 | erot = 1.40463116342082 | epot = -12.2624149640402 | etot = -9.1333491289229 +332000 ekin = 1.7633053367441 | erot = 1.41833479327521 | epot = -12.3149892590753 | etot = -9.13334912905599 +333000 ekin = 1.79846823309365 | erot = 1.44253834966298 | epot = -12.3743557120453 | etot = -9.13334912928862 +334000 ekin = 1.82874900591171 | erot = 1.47503277033936 | epot = -12.4371309058484 | etot = -9.13334912959735 +335000 ekin = 1.85279616115881 | erot = 1.5126357019759 | epot = -12.498780993077 | etot = -9.13334912994232 +336000 ekin = 1.8692763055882 | erot = 1.55160162438249 | epot = -12.5542270602391 | etot = -9.13334913026845 +337000 ekin = 1.8771173541396 | erot = 1.5882004977342 | epot = -12.5986669823881 | etot = -9.1333491305143 +338000 ekin = 1.87574840923173 | erot = 1.61938868723024 | epot = -12.6284862270853 | etot = -9.13334913062332 +339000 ekin = 1.86534866362707 | erot = 1.64338736517947 | epot = -12.6420851593667 | etot = -9.13334913056018 +340000 ekin = 1.84695798886959 | erot = 1.66009075059862 | epot = -12.64039786979 | etot = -9.1333491303218 +341000 ekin = 1.82243969076597 | erot = 1.67114820362691 | epot = -12.6269370243332 | etot = -9.13334912994032 +342000 ekin = 1.79428655955809 | erot = 1.67969211618998 | epot = -12.6073278052229 | etot = -9.13334912947479 +343000 ekin = 1.76531632972456 | erot = 1.68978090506957 | epot = -12.5884463637896 | etot = -9.13334912899551 +344000 ekin = 1.73833039739185 | erot = 1.70570000747079 | epot = -12.5773795334318 | etot = -9.1333491285692 +345000 ekin = 1.7158058906016 | erot = 1.73127559556382 | epot = -12.5804306144134 | etot = -9.13334912824796 +346000 ekin = 1.69966353097473 | erot = 1.76931234934788 | epot = -12.6023250083889 | etot = -9.13334912806627 +347000 ekin = 1.69112042623157 | erot = 1.82120184302299 | epot = -12.6456713972978 | etot = -9.1333491280432 +348000 ekin = 1.69061396982628 | erot = 1.88669704033633 | epot = -12.7106601383482 | etot = -9.13334912818561 +349000 ekin = 1.69777681788073 | erot = 1.96382926866215 | epot = -12.7949552150328 | etot = -9.13334912848994 +350000 ekin = 1.71145115010129 | erot = 2.04895591402571 | epot = -12.8937561930686 | etot = -9.13334912894162 +351000 ekin = 1.72974629646061 | erot = 2.13695636910536 | epot = -13.0000517950752 | etot = -9.13334912950918 +352000 ekin = 1.75015893903836 | erot = 2.22162008456652 | epot = -13.105128153744 | etot = -9.13334913013911 +353000 ekin = 1.76978034905474 | erot = 2.29627029646031 | epot = -13.1993997762706 | etot = -9.13334913075554 +354000 ekin = 1.78560210911901 | erot = 2.35462017023483 | epot = -13.2735714106197 | etot = -9.13334913126588 +355000 ekin = 1.79489785472813 | erot = 2.39176336004244 | epot = -13.3200103463512 | etot = -9.13334913158058 +356000 ekin = 1.7956139324659 | erot = 2.40509186859607 | epot = -13.3340549327001 | etot = -9.13334913163815 +357000 ekin = 1.78667091072658 | erot = 2.39487614135014 | epot = -13.3148961835039 | etot = -9.13334913142721 +358000 ekin = 1.7681016723056 | erot = 2.3642989799425 | epot = -13.2657497831719 | etot = -9.13334913092383 +359000 ekin = 1.74170569044756 | erot = 2.31907684809719 | epot = -13.1941316689289 | etot = -9.13334913038417 +360000 ekin = 1.70943632676256 | erot = 2.26611368397356 | epot = -13.1088991405421 | etot = -9.13334912980602 +361000 ekin = 1.67315005965508 | erot = 2.2123416661589 | epot = -13.0188408550996 | etot = -9.13334912928563 +362000 ekin = 1.63480994001619 | erot = 2.16376887379963 | epot = -12.9319279427068 | etot = -9.13334912889101 +363000 ekin = 1.5962260605757 | erot = 2.1246998668386 | epot = -12.8542750560708 | etot = -9.13334912865646 +364000 ekin = 1.55890205833795 | erot = 2.09734631559849 | epot = -12.7895975025214 | etot = -9.133349128585 +365000 ekin = 1.52397421076766 | erot = 2.08181308416726 | epot = -12.7391364235909 | etot = -9.13334912865599 +366000 ekin = 1.49221260733989 | erot = 2.07639009796191 | epot = -12.7019518341345 | etot = -9.13334912883268 +367000 ekin = 1.4640595236492 | erot = 2.07805510122135 | epot = -12.6754637539425 | etot = -9.133349129072 +368000 ekin = 1.43967726932343 | erot = 2.08307216057558 | epot = -12.6560985592322 | etot = -9.13334912933319 +369000 ekin = 1.41899010811432 | erot = 2.08756917147235 | epot = -12.6399084091713 | etot = -9.13334912958465 +370000 ekin = 1.4017155735671 | erot = 2.08800173652844 | epot = -12.6230664399006 | etot = -9.13334912980506 +371000 ekin = 1.38739280854812 | erot = 2.08146226240604 | epot = -12.6022042009356 | etot = -9.13334912998148 +372000 ekin = 1.3754234030853 | erot = 2.06585193702315 | epot = -12.5746244702122 | etot = -9.13334913010378 +373000 ekin = 1.36513752357851 | erot = 2.03996886737135 | epot = -12.5384555211115 | etot = -9.13334913016165 +374000 ekin = 1.35583949105109 | erot = 2.00351975772453 | epot = -12.4927083789448 | etot = -9.13334913016913 +375000 ekin = 1.34694157711384 | erot = 1.95716038268554 | epot = -12.437451089867 | etot = -9.13334913006761 +376000 ekin = 1.33814968105194 | erot = 1.90258032253335 | epot = -12.374079133482 | etot = -9.13334912989673 +377000 ekin = 1.32936261120742 | erot = 1.84227265725224 | epot = -12.3049843981359 | etot = -9.13334912967628 +378000 ekin = 1.32063159991288 | erot = 1.77926043319027 | epot = -12.2332411625417 | etot = -9.13334912943852 +379000 ekin = 1.31208340368805 | erot = 1.71672941783618 | epot = -12.1621619507397 | etot = -9.13334912921549 +380000 ekin = 1.30384179784167 | erot = 1.65764204155762 | epot = -12.0948329684323 | etot = -9.13334912903296 +381000 ekin = 1.29657917475797 | erot = 1.60487100826659 | epot = -12.0347993118439 | etot = -9.13334912881932 +382000 ekin = 1.29092190134667 | erot = 1.56061067707055 | epot = -11.9848817072419 | etot = -9.13334912882472 +383000 ekin = 1.28620909068407 | erot = 1.52536833769981 | epot = -11.9449265572222 | etot = -9.13334912883829 +384000 ekin = 1.28205683099622 | erot = 1.49922806168804 | epot = -11.9146340215154 | etot = -9.13334912883115 +385000 ekin = 1.27850478017866 | erot = 1.48216189144808 | epot = -11.8940158004137 | etot = -9.13334912878696 +386000 ekin = 1.27603762173996 | erot = 1.47423730493007 | epot = -11.8836240553798 | etot = -9.13334912870974 +387000 ekin = 1.27548287271909 | erot = 1.47565716104739 | epot = -11.8844891623898 | etot = -9.13334912862331 +388000 ekin = 1.2778004458578 | erot = 1.4866096409743 | epot = -11.8977592153981 | etot = -9.13334912856596 +389000 ekin = 1.28381262703566 | erot = 1.50697425852415 | epot = -11.9241360141379 | etot = -9.13334912857811 +390000 ekin = 1.29393930260839 | erot = 1.53598035068258 | epot = -11.9632687819853 | etot = -9.1333491286943 +391000 ekin = 1.30800074456088 | erot = 1.5719098492446 | epot = -12.013259722734 | etot = -9.13334912892847 +392000 ekin = 1.32513099179432 | erot = 1.61197584867722 | epot = -12.0704559697429 | etot = -9.13334912927137 +393000 ekin = 1.3438254300013 | erot = 1.65241448883401 | epot = -12.1295890485245 | etot = -9.13334912968923 +394000 ekin = 1.36212102398624 | erot = 1.68881012624764 | epot = -12.1842802803621 | etot = -9.13334913012818 +395000 ekin = 1.37788072140303 | erot = 1.71661593054073 | epot = -12.2278457824672 | etot = -9.13334913052342 +396000 ekin = 1.38913154512392 | erot = 1.73181112618384 | epot = -12.2542918021045 | etot = -9.13334913079678 +397000 ekin = 1.3943935747973 | erot = 1.73153617599127 | epot = -12.2592788817204 | etot = -9.13334913093185 +398000 ekin = 1.39293904659178 | erot = 1.71441550438834 | epot = -12.2407036818554 | etot = -9.1333491308753 +399000 ekin = 1.38493174777428 | erot = 1.68094766350971 | epot = -12.1992285419453 | etot = -9.13334913066127 +400000 ekin = 1.37142116074086 | erot = 1.6333076419797 | epot = -12.1380779330255 | etot = -9.13334913030493 +401000 ekin = 1.35412991252432 | erot = 1.57501044311775 | epot = -12.0624894855338 | etot = -9.13334912989174 +402000 ekin = 1.33517991856886 | erot = 1.51048364980092 | epot = -11.9790126977736 | etot = -9.13334912940385 +403000 ekin = 1.31709653187253 | erot = 1.44458891478936 | epot = -11.8950345755997 | etot = -9.13334912893783 +404000 ekin = 1.30234590493855 | erot = 1.38198365576739 | epot = -11.8176786892404 | etot = -9.13334912853445 +405000 ekin = 1.29301391716251 | erot = 1.32673455588818 | epot = -11.7530976012879 | etot = -9.13334912823722 +406000 ekin = 1.29065467462767 | erot = 1.28204116436315 | epot = -11.7060449670158 | etot = -9.133349128025 +407000 ekin = 1.29643237294773 | erot = 1.2500643658834 | epot = -11.6798458667495 | etot = -9.13334912791839 +408000 ekin = 1.31094700615227 | erot = 1.23190986721439 | epot = -11.6762060012819 | etot = -9.13334912791524 +409000 ekin = 1.33422438303342 | erot = 1.22763489752168 | epot = -11.6952084085692 | etot = -9.13334912801405 +410000 ekin = 1.36572014154933 | erot = 1.23628017302415 | epot = -11.7353494427848 | etot = -9.13334912821129 +411000 ekin = 1.4043266876074 | erot = 1.25592548503495 | epot = -11.7936013011427 | etot = -9.13334912850032 +412000 ekin = 1.44839088645843 | erot = 1.28379672627791 | epot = -11.8655367416032 | etot = -9.13334912886682 +413000 ekin = 1.49576795241837 | erot = 1.31646032748887 | epot = -11.9455774091897 | etot = -9.13334912928247 +414000 ekin = 1.54394920889458 | erot = 1.35014055217844 | epot = -12.0274388907757 | etot = -9.13334912970263 +415000 ekin = 1.5902942170517 | erot = 1.38116660571189 | epot = -12.104809952833 | etot = -9.13334913006945 +416000 ekin = 1.63235973909137 | erot = 1.40649922749338 | epot = -12.172208096909 | etot = -9.13334913032422 +417000 ekin = 1.66825800489265 | erot = 1.42422016761247 | epot = -12.2258273029362 | etot = -9.13334913043104 +418000 ekin = 1.69693219837303 | erot = 1.43381449957587 | epot = -12.2640958283224 | etot = -9.13334913037349 +419000 ekin = 1.7182495189487 | erot = 1.43620625779753 | epot = -12.2878049069294 | etot = -9.13334913018312 +420000 ekin = 1.7328833743066 | erot = 1.43350825350923 | epot = -12.2997407577259 | etot = -9.13334912991011 +421000 ekin = 1.74204129532477 | erot = 1.42856028675097 | epot = -12.3039507116849 | etot = -9.1333491296092 +422000 ekin = 1.74713701807814 | erot = 1.42445618730966 | epot = -12.3049423347143 | etot = -9.13334912932652 +423000 ekin = 1.74949063384811 | erot = 1.42413436044518 | epot = -12.3069741233966 | etot = -9.13334912910334 +424000 ekin = 1.75009754643101 | erot = 1.43005641925257 | epot = -12.3135030946294 | etot = -9.13334912894587 +425000 ekin = 1.74947257256809 | erot = 1.4441240080241 | epot = -12.3269457094753 | etot = -9.13334912888314 +426000 ekin = 1.69664946387641 | erot = 1.40011304962925 | epot = -12.2301116346042 | etot = -9.13334912109858 +427000 ekin = 1.76448154345776 | erot = 1.46695774969997 | epot = -12.3647884699761 | etot = -9.13334917681841 +428000 ekin = 1.7786404038279 | erot = 1.51204937412251 | epot = -12.4240389057576 | etot = -9.13334912780716 +429000 ekin = 1.77744254090706 | erot = 1.55645173379881 | epot = -12.4672434028096 | etot = -9.13334912810371 +430000 ekin = 1.76864481713971 | erot = 1.60567169371162 | epot = -12.5076656392884 | etot = -9.13334912843703 +431000 ekin = 1.75041443993107 | erot = 1.6565563851412 | epot = -12.5403199538332 | etot = -9.13334912876093 +432000 ekin = 1.72143753020987 | erot = 1.70559294341302 | epot = -12.5603796026437 | etot = -9.13334912902085 +433000 ekin = 1.68129756274263 | erot = 1.74934007551102 | epot = -12.5639867674181 | etot = -9.13334912916441 +434000 ekin = 1.63077650980017 | erot = 1.78490039303275 | epot = -12.5490260319871 | etot = -9.13334912915421 +435000 ekin = 1.57198882084538 | erot = 1.81033246556191 | epot = -12.5156704153873 | etot = -9.13334912897997 +436000 ekin = 1.50828072851522 | erot = 1.82489908961114 | epot = -12.4665289467908 | etot = -9.13334912866448 +437000 ekin = 1.44388315301276 | erot = 1.82908776308031 | epot = -12.4063200443509 | etot = -9.13334912825785 +438000 ekin = 1.38337900429759 | erot = 1.82441107452581 | epot = -12.3411392066477 | etot = -9.13334912782426 +439000 ekin = 1.33110407576258 | erot = 1.81306694504145 | epot = -12.277520148228 | etot = -9.13334912742398 +440000 ekin = 1.29061754889026 | erot = 1.79757475508433 | epot = -12.221541431074 | etot = -9.13334912709939 +441000 ekin = 1.26434687832171 | erot = 1.7804860060747 | epot = -12.1781820112658 | etot = -9.13334912686943 +442000 ekin = 1.25344985037928 | erot = 1.76421040799502 | epot = -12.1510093851073 | etot = -9.13334912673305 +443000 ekin = 1.25787308938399 | erot = 1.75093400476763 | epot = -12.1421562208298 | etot = -9.13334912667816 +444000 ekin = 1.27654491138777 | erot = 1.74256727852075 | epot = -12.1524613166011 | etot = -9.13334912669253 +445000 ekin = 1.30762960642446 | erot = 1.74066161517084 | epot = -12.1816403483637 | etot = -9.13334912676842 +446000 ekin = 1.34878485335192 | erot = 1.74626611357143 | epot = -12.2284000938269 | etot = -9.13334912690351 +447000 ekin = 1.39739993763702 | erot = 1.75974793458134 | epot = -12.2904969993176 | etot = -9.13334912709922 +448000 ekin = 1.45076649190871 | erot = 1.78060717934201 | epot = -12.3647227986021 | etot = -9.13334912735142 +449000 ekin = 1.5062399960533 | erot = 1.80738848344772 | epot = -12.4469776071498 | etot = -9.13334912764873 +450000 ekin = 1.56138908054573 | erot = 1.83773497344423 | epot = -12.5324731819601 | etot = -9.13334912797012 +451000 ekin = 1.61412412964502 | erot = 1.86859865234508 | epot = -12.616071910276 | etot = -9.13334912828589 +452000 ekin = 1.66280931630096 | erot = 1.89658548036465 | epot = -12.6927439252276 | etot = -9.13334912856203 +453000 ekin = 1.70634971637078 | erot = 1.91837476586891 | epot = -12.7580736110103 | etot = -9.13334912877057 +454000 ekin = 1.74423056750361 | erot = 1.93111374790724 | epot = -12.8086934443052 | etot = -9.13334912889435 +455000 ekin = 1.77648988409887 | erot = 1.9327029137826 | epot = -12.8425419268132 | etot = -9.13334912893172 +456000 ekin = 1.80361911556749 | erot = 1.92192628287876 | epot = -12.8588945273416 | etot = -9.13334912889534 +457000 ekin = 1.82640016706236 | erot = 1.89842961390005 | epot = -12.8581789097698 | etot = -9.13334912880743 +458000 ekin = 1.84570455025966 | erot = 1.86259298695791 | epot = -12.8416466659118 | etot = -9.13334912869422 +459000 ekin = 1.86229070170983 | erot = 1.81535342315176 | epot = -12.8109932534385 | etot = -9.13334912857691 +460000 ekin = 1.87663848085905 | erot = 1.75803306182803 | epot = -12.7680206711598 | etot = -9.13334912847276 +461000 ekin = 1.88883864523233 | erot = 1.69219746384304 | epot = -12.7143852374636 | etot = -9.13334912838823 +462000 ekin = 1.89856203652349 | erot = 1.61956678027435 | epot = -12.6514779451215 | etot = -9.13334912832368 +463000 ekin = 1.9051022176453 | erot = 1.54196437877836 | epot = -12.5804157246989 | etot = -9.13334912827526 +464000 ekin = 1.90747686786717 | erot = 1.46127993198471 | epot = -12.5021059280858 | etot = -9.1333491282339 +465000 ekin = 1.90457977356229 | erot = 1.37946070091726 | epot = -12.4173896026645 | etot = -9.13334912818491 +466000 ekin = 1.89536572152405 | erot = 1.29851485172146 | epot = -12.3272297013661 | etot = -9.13334912812057 +467000 ekin = 1.87901831710062 | erot = 1.22048659414375 | epot = -12.2328540392793 | etot = -9.13334912803494 +468000 ekin = 1.85509917792147 | erot = 1.14739126284037 | epot = -12.135839568689 | etot = -9.13334912792715 +469000 ekin = 1.8236660510741 | erot = 1.08110787535072 | epot = -12.0381230542261 | etot = -9.13334912780131 +470000 ekin = 1.785352160757 | erot = 1.02324127043659 | epot = -11.9419425588568 | etot = -9.1333491276632 +471000 ekin = 1.74141051513467 | erot = 0.974982090043445 | epot = -11.8497417326962 | etot = -9.13334912751811 +472000 ekin = 1.69372019706013 | erot = 0.937000644454747 | epot = -11.7640699688855 | etot = -9.13334912737064 +473000 ekin = 1.64473632771046 | erot = 0.909402534931637 | epot = -11.6874879898683 | etot = -9.13334912722617 +474000 ekin = 1.59734995177427 | erot = 0.891755018431329 | epot = -11.6224540973001 | etot = -9.13334912709447 +475000 ekin = 1.55462885495311 | erot = 0.883174765260048 | epot = -11.5711527472037 | etot = -9.1333491269905 +476000 ekin = 1.51944866261213 | erot = 0.882459888569459 | epot = -11.5352576781123 | etot = -9.13334912693073 +477000 ekin = 1.49408243529076 | erot = 0.888250161716788 | epot = -11.5156817239344 | etot = -9.13334912692685 +478000 ekin = 1.47985622585666 | erot = 0.899197335532742 | epot = -11.5124026883704 | etot = -9.13334912698098 +479000 ekin = 1.47695373952882 | erot = 0.914115348457448 | epot = -11.5244182150791 | etot = -9.13334912709281 +480000 ekin = 1.48439477575485 | erot = 0.932072516620887 | epot = -11.549816419617 | etot = -9.13334912724127 +481000 ekin = 1.50022741217548 | erot = 0.952423999184216 | epot = -11.5860005387809 | etot = -9.13334912742123 +482000 ekin = 1.52172985963465 | erot = 0.974754211846534 | epot = -11.6298331991066 | etot = -9.13334912762538 +483000 ekin = 1.54567018241554 | erot = 0.998770450814832 | epot = -11.6777897610751 | etot = -9.13334912784471 +484000 ekin = 1.56858614723153 | erot = 1.0241976351087 | epot = -11.7261329104078 | etot = -9.13334912806762 +485000 ekin = 1.58707346955154 | erot = 1.05070585623162 | epot = -11.7711284540615 | etot = -9.1333491282783 +486000 ekin = 1.59807103603186 | erot = 1.07788995424715 | epot = -11.8093101187377 | etot = -9.13334912845869 +487000 ekin = 1.59911980804544 | erot = 1.10529931942212 | epot = -11.8377682560593 | etot = -9.1333491285917 +488000 ekin = 1.58856342116781 | erot = 1.13249736396266 | epot = -11.8544099137963 | etot = -9.13334912866581 +489000 ekin = 1.56566142904843 | erot = 1.15911683125853 | epot = -11.8581273889845 | etot = -9.13334912867754 +490000 ekin = 1.53060268554808 | erot = 1.18488502427396 | epot = -11.8488368384543 | etot = -9.13334912863223 +491000 ekin = 1.48443427069631 | erot = 1.20959914016058 | epot = -11.8273825393282 | etot = -9.13334912847127 +492000 ekin = 1.42930345354614 | erot = 1.23291829593421 | epot = -11.7955708778632 | etot = -9.13334912838287 +493000 ekin = 1.36749564145311 | erot = 1.25438544605179 | epot = -11.7552302157793 | etot = -9.13334912827441 +494000 ekin = 1.30137262988227 | erot = 1.27348228002641 | epot = -11.7082040380627 | etot = -9.133349128154 +495000 ekin = 1.23360970817153 | erot = 1.28954660636253 | epot = -11.6565054425604 | etot = -9.13334912802634 +496000 ekin = 1.16375548641149 | erot = 1.30023195608786 | epot = -11.597336620543 | etot = -9.13334917804361 +497000 ekin = 1.02574644939893 | erot = 1.24927230426525 | epot = -11.4083678755046 | etot = -9.13334912184043 +498000 ekin = 1.13339044616149 | erot = 1.24939677704534 | epot = -11.5161363891128 | etot = -9.13334916590599 +499000 ekin = 1.16434762393305 | erot = 1.25864673155132 | epot = -11.5563434800389 | etot = -9.13334912455449 +500000 ekin = 1.16768486506821 | erot = 1.2576934444408 | epot = -11.5587274345822 | etot = -9.13334912507316 +501000 ekin = 1.17559895497582 | erot = 1.25038915442767 | epot = -11.5593372343047 | etot = -9.1333491249012 +502000 ekin = 1.18926606273961 | erot = 1.23784323633194 | epot = -11.5604584237508 | etot = -9.13334912467929 +503000 ekin = 1.20982408114966 | erot = 1.22204157664462 | epot = -11.5652147822324 | etot = -9.13334912443811 +504000 ekin = 1.23811782737063 | erot = 1.20572865378543 | epot = -11.5771956053586 | etot = -9.13334912420251 +505000 ekin = 1.27460966228801 | erot = 1.19199209322219 | epot = -11.5999508795096 | etot = -9.1333491239994 +506000 ekin = 1.31928047819605 | erot = 1.18393687677926 | epot = -11.6365664788287 | etot = -9.1333491238534 +507000 ekin = 1.37157700900509 | erot = 1.18435118386592 | epot = -11.6892773166525 | etot = -9.13334912378151 +508000 ekin = 1.43042502721541 | erot = 1.1954118748155 | epot = -11.7591860258226 | etot = -9.1333491237917 +509000 ekin = 1.49431413372851 | erot = 1.21846596295587 | epot = -11.8461292205661 | etot = -9.1333491238817 +510000 ekin = 1.56143815899979 | erot = 1.25390781315292 | epot = -11.9486950961947 | etot = -9.13334912404201 +511000 ekin = 1.62985405359528 | erot = 1.30115550673861 | epot = -12.0643586845933 | etot = -9.13334912425937 +512000 ekin = 1.69760948238436 | erot = 1.35871536004144 | epot = -12.189673966948 | etot = -9.13334912452224 +513000 ekin = 1.76279412854786 | erot = 1.42431355746588 | epot = -12.320456810837 | etot = -9.13334912482321 +514000 ekin = 1.82349978434223 | erot = 1.49507387317583 | epot = -12.4519227826749 | etot = -9.1333491251568 +515000 ekin = 1.87772649131747 | erot = 1.56773414235918 | epot = -12.5788097591887 | etot = -9.13334912551208 +516000 ekin = 1.92332299298554 | erot = 1.63891274675679 | epot = -12.6955848656063 | etot = -9.13334912586395 +517000 ekin = 1.95805681102128 | erot = 1.70543998933813 | epot = -12.7968459265308 | etot = -9.13334912617134 +518000 ekin = 1.97984991947085 | erot = 1.76473849815031 | epot = -12.8779375440072 | etot = -9.13334912638607 +519000 ekin = 1.98711819296778 | erot = 1.81518192784685 | epot = -12.9356492472837 | etot = -9.1333491264691 +520000 ekin = 1.97908911077294 | erot = 1.85632478174878 | epot = -12.9687630189323 | etot = -9.13334912641058 +521000 ekin = 1.95594858056491 | erot = 1.8889276079652 | epot = -12.9782253147548 | etot = -9.13334912622471 +522000 ekin = 1.91881161738285 | erot = 1.9147558223734 | epot = -12.9669165657056 | etot = -9.13334912594938 +523000 ekin = 1.86954045343398 | erot = 1.93620351350197 | epot = -12.93909309257 | etot = -9.13334912563406 +524000 ekin = 1.8104733218181 | erot = 1.9558227102207 | epot = -12.8996451573689 | etot = -9.13334912533007 +525000 ekin = 1.74413482435815 | erot = 1.97582576721553 | epot = -12.8533097166586 | etot = -9.1333491250849 +526000 ekin = 1.67297434025038 | erot = 1.99761678040426 | epot = -12.8039402455911 | etot = -9.13334912493644 +527000 ekin = 1.59916865616304 | erot = 2.02141684187611 | epot = -12.7539346229441 | etot = -9.133349124905 +528000 ekin = 1.52452149634748 | erot = 2.04605877912595 | epot = -12.7039294004604 | etot = -9.13334912498693 +529000 ekin = 1.4504814163811 | erot = 2.06903286947822 | epot = -12.6528634110099 | etot = -9.13334912515059 +530000 ekin = 1.37827485203411 | erot = 2.08683821123111 | epot = -12.5984621886047 | etot = -9.13334912533946 +531000 ekin = 1.30911544825195 | erot = 2.09562136598219 | epot = -12.5380859397189 | etot = -9.13334912548476 +532000 ekin = 1.24441932206898 | erot = 2.09198653946324 | epot = -12.4697549870569 | etot = -9.13334912552464 +533000 ekin = 1.18594679653143 | erot = 2.07377924595515 | epot = -12.3930751679089 | etot = -9.13334912542228 +534000 ekin = 1.13581312461343 | erot = 2.04062941960209 | epot = -12.3097916693922 | etot = -9.13334912517671 +535000 ekin = 1.09635528031359 | erot = 1.99411201499583 | epot = -12.2238164201305 | etot = -9.13334912482111 +536000 ekin = 1.06988655695511 | erot = 1.93750945181444 | epot = -12.1407451331814 | etot = -9.13334912441183 +537000 ekin = 1.05839509271139 | erot = 1.87547351818609 | epot = -12.067217734889 | etot = -9.13334912399155 +538000 ekin = 1.06323891385367 | erot = 1.8133142469846 | epot = -12.0099022845153 | etot = -9.13334912367703 +539000 ekin = 1.08487929969803 | erot = 1.75562392314644 | epot = -11.9738523463361 | etot = -9.13334912349166 +540000 ekin = 1.12268189022786 | erot = 1.70611667318395 | epot = -11.9621476868843 | etot = -9.13334912347248 +541000 ekin = 1.17481105395673 | erot = 1.66717481230729 | epot = -11.9753349899007 | etot = -9.13334912363666 +542000 ekin = 1.23824417790755 | erot = 1.63956314455092 | epot = -12.0111564464361 | etot = -9.13334912397767 +543000 ekin = 1.30892832431888 | erot = 1.62236761446567 | epot = -12.0646450632456 | etot = -9.13334912446102 +544000 ekin = 1.38208514507386 | erot = 1.61318872881507 | epot = -12.1286229989176 | etot = -9.13334912502866 +545000 ekin = 1.45263801175973 | erot = 1.60857948401639 | epot = -12.1945666213809 | etot = -9.13334912560476 +546000 ekin = 1.51570974605503 | erot = 1.60467377472855 | epot = -12.2537326468924 | etot = -9.13334912610883 +547000 ekin = 1.56711452712105 | erot = 1.5978880038179 | epot = -12.2983516574116 | etot = -9.13334912647268 +548000 ekin = 1.60376221827936 | erot = 1.58554162816907 | epot = -12.3226529731024 | etot = -9.13334912665393 +549000 ekin = 1.62391041626163 | erot = 1.56625626421581 | epot = -12.3235158071214 | etot = -9.13334912664393 +550000 ekin = 1.62723358008958 | erot = 1.54012357329004 | epot = -12.3007062798231 | etot = -9.13334912644349 +551000 ekin = 1.61471889891675 | erot = 1.50851459571133 | epot = -12.2565826207707 | etot = -9.13334912614266 +552000 ekin = 1.58843016682431 | erot = 1.47348936384652 | epot = -12.195268656439 | etot = -9.13334912576819 +553000 ekin = 1.5512009811002 | erot = 1.43753302719441 | epot = -12.1220831336622 | etot = -9.13334912536755 +554000 ekin = 1.50631636213267 | erot = 1.4031875532353 | epot = -12.0428530403443 | etot = -9.13334912497632 +555000 ekin = 1.45722878986597 | erot = 1.37279698200258 | epot = -11.9633748964865 | etot = -9.13334912461799 +556000 ekin = 1.40732293285248 | erot = 1.34837590639291 | epot = -11.88904796355 | etot = -9.13334912430461 +557000 ekin = 1.35973750772925 | erot = 1.3315770703911 | epot = -11.8246637021615 | etot = -9.13334912404111 +558000 ekin = 1.31723590732991 | erot = 1.32371628032827 | epot = -11.7743013114881 | etot = -9.13334912382991 +559000 ekin = 1.28211028309157 | erot = 1.32580526483769 | epot = -11.7412646716038 | etot = -9.13334912367457 +560000 ekin = 1.25610590404874 | erot = 1.33855626265837 | epot = -11.7280112902885 | etot = -9.13334912358135 +561000 ekin = 1.24035844263297 | erot = 1.36234138770184 | epot = -11.7360489538933 | etot = -9.13334912355851 +562000 ekin = 1.23534624012624 | erot = 1.39711468447221 | epot = -11.7658100482125 | etot = -9.13334912361409 +563000 ekin = 1.24087113988399 | erot = 1.44233150297995 | epot = -11.8165517666127 | etot = -9.13334912374876 +564000 ekin = 1.25609129143005 | erot = 1.49691875867199 | epot = -11.8863591740536 | etot = -9.13334912395155 +565000 ekin = 1.2796301584255 | erot = 1.55937933470603 | epot = -11.972358617318 | etot = -9.13334912418645 +566000 ekin = 1.30976945418403 | erot = 1.62795664725485 | epot = -12.0710752258852 | etot = -9.13334912444628 +567000 ekin = 1.34469873511273 | erot = 1.70073738336314 | epot = -12.1787852431648 | etot = -9.13334912468897 +568000 ekin = 1.38275779930725 | erot = 1.77591787229441 | epot = -12.2920247965046 | etot = -9.13334912490297 +569000 ekin = 1.4226029414226 | erot = 1.85183127901131 | epot = -12.4077833455266 | etot = -9.1333491250927 +570000 ekin = 1.46311433096011 | erot = 1.92670412003824 | epot = -12.5231675763641 | etot = -9.13334912536576 +571000 ekin = 1.50327753328895 | erot = 1.99853100879653 | epot = -12.6351576677648 | etot = -9.13334912567935 +572000 ekin = 1.54192966726684 | erot = 2.06497613729043 | epot = -12.7402549304304 | etot = -9.13334912587309 +573000 ekin = 1.57823855407023 | erot = 2.12427016695884 | epot = -12.8358578469846 | etot = -9.13334912595553 +574000 ekin = 1.61207502224351 | erot = 2.17570201380467 | epot = -12.9211261619166 | etot = -9.13334912586839 +575000 ekin = 1.64402582173823 | erot = 2.22028441014227 | epot = -12.9976593575043 | etot = -9.13334912562384 +576000 ekin = 1.67538587678429 | erot = 2.26042238856638 | epot = -13.0691573906398 | etot = -9.13334912528911 +577000 ekin = 1.70789209379029 | erot = 2.29915883242772 | epot = -13.1404000511839 | etot = -9.1333491249659 +578000 ekin = 1.74326819508472 | erot = 2.33909725076652 | epot = -13.2157145705981 | etot = -9.13334912474687 +579000 ekin = 1.7827223183835 | erot = 2.38182643842429 | epot = -13.2978978815009 | etot = -9.13334912469309 +580000 ekin = 1.82652189373004 | erot = 2.42751679139928 | epot = -13.3873878099607 | etot = -9.13334912483141 +581000 ekin = 1.87370675175411 | erot = 2.47480205694032 | epot = -13.4818579338668 | etot = -9.13334912517237 +582000 ekin = 1.92197052578507 | erot = 2.52092715153303 | epot = -13.5762468029763 | etot = -9.13334912565824 +583000 ekin = 1.96774925896911 | erot = 2.56227660801606 | epot = -13.6633749932238 | etot = -9.13334912623863 +584000 ekin = 2.00657374540242 | erot = 2.59498886542731 | epot = -13.7349117376481 | etot = -9.13334912681841 +585000 ekin = 2.03371871575722 | erot = 2.61566274200203 | epot = -13.7827305850397 | etot = -9.13334912728048 +586000 ekin = 2.04507827703309 | erot = 2.62214006251279 | epot = -13.8005674670606 | etot = -9.13334912751474 +587000 ekin = 2.03806243485681 | erot = 2.61411994888867 | epot = -13.7855315112034 | etot = -9.13334912745792 +588000 ekin = 2.01223115184381 | erot = 2.59335030111902 | epot = -13.7389305800864 | etot = -9.13334912712354 +589000 ekin = 1.96942837554574 | erot = 2.56324673362673 | epot = -13.6660242357749 | etot = -9.13334912660243 +590000 ekin = 1.91334419958977 | erot = 2.52801524733261 | epot = -13.5747085729524 | etot = -9.13334912603005 +591000 ekin = 1.8486538333072 | erot = 2.49158313368731 | epot = -13.4735860925282 | etot = -9.1333491255337 +592000 ekin = 1.78006004419711 | erot = 2.45674050608303 | epot = -13.3701496754634 | etot = -9.13334912518328 +593000 ekin = 1.71159279762265 | erot = 2.42478693109097 | epot = -13.2697288536906 | etot = -9.13334912497694 +594000 ekin = 1.64634946405468 | erot = 2.39569805901288 | epot = -13.1753966479367 | etot = -9.1333491248691 +595000 ekin = 1.58659479949042 | erot = 2.3685443255726 | epot = -13.0884882498803 | etot = -9.13334912481725 +596000 ekin = 1.53398103551517 | erot = 2.34182175785605 | epot = -13.0091519181797 | etot = -9.13334912480847 +597000 ekin = 1.4896944162268 | erot = 2.31355286210882 | epot = -12.936596403185 | etot = -9.13334912484939 +598000 ekin = 1.45449014890496 | erot = 2.28129539496237 | epot = -12.8691346688077 | etot = -9.13334912494036 +599000 ekin = 1.42868283605997 | erot = 2.24230571380088 | epot = -12.8043376749196 | etot = -9.13334912505876 +600000 ekin = 1.41215819512801 | erot = 2.19421771509534 | epot = -12.7397250351187 | etot = -9.13334912489538 +601000 ekin = 1.40437980063629 | erot = 2.13675092848644 | epot = -12.6744798541813 | etot = -9.1333491250586 +602000 ekin = 1.40442466853112 | erot = 2.06863595764755 | epot = -12.6064097512949 | etot = -9.13334912511623 +603000 ekin = 1.41112302449405 | erot = 1.98998056957968 | epot = -12.5344527191431 | etot = -9.13334912506935 +604000 ekin = 1.42310135151954 | erot = 1.90274524323251 | epot = -12.4591957196945 | etot = -9.13334912494249 +605000 ekin = 1.43883447822283 | erot = 1.81030632011497 | epot = -12.3824899231074 | etot = -9.13334912476965 +606000 ekin = 1.45673760094997 | erot = 1.71684240505229 | epot = -12.3069291305841 | etot = -9.13334912458189 +607000 ekin = 1.47529863712971 | erot = 1.62672298753391 | epot = -12.2353707490645 | etot = -9.13334912440092 +608000 ekin = 1.49323166610194 | erot = 1.54399943869403 | epot = -12.1705802290343 | etot = -9.13334912423836 +609000 ekin = 1.5096125661562 | erot = 1.47208306434206 | epot = -12.115044754606 | etot = -9.13334912410772 +610000 ekin = 1.52396039431241 | erot = 1.41350705715335 | epot = -12.0708165754585 | etot = -9.13334912399274 +611000 ekin = 1.53622860047036 | erot = 1.3699244374139 | epot = -12.0395021618062 | etot = -9.13334912392191 +612000 ekin = 1.54668536626181 | erot = 1.34205362873153 | epot = -12.0220881189018 | etot = -9.13334912390848 +613000 ekin = 1.55571309695671 | erot = 1.32960894336099 | epot = -12.0186711642871 | etot = -9.13334912396935 +614000 ekin = 1.56356369221744 | erot = 1.33131277562655 | epot = -12.0282255919628 | etot = -9.13334912411877 +615000 ekin = 1.57013881826736 | erot = 1.34494539761822 | epot = -12.048433340221 | etot = -9.13334912433545 +616000 ekin = 1.57485681904016 | erot = 1.36757312206296 | epot = -12.0757790657592 | etot = -9.13334912465612 +617000 ekin = 1.57672646781345 | erot = 1.39546251366801 | epot = -12.1055381065021 | etot = -9.13334912502063 +618000 ekin = 1.57456346737962 | erot = 1.42448013453604 | epot = -12.1323927272915 | etot = -9.13334912537588 +619000 ekin = 1.56732946470294 | erot = 1.45059208152824 | epot = -12.1512706718915 | etot = -9.1333491256603 +620000 ekin = 1.55451321754076 | erot = 1.47039334455628 | epot = -12.1582556879148 | etot = -9.13334912581774 +621000 ekin = 1.53644782338588 | erot = 1.48161304591014 | epot = -12.1514099951073 | etot = -9.13334912581127 +622000 ekin = 1.51447783518566 | erot = 1.48347710481991 | epot = -12.1313040656385 | etot = -9.13334912563293 +623000 ekin = 1.49092960733246 | erot = 1.47683215248968 | epot = -12.1011108851291 | etot = -9.13334912530692 +624000 ekin = 1.46886130170239 | erot = 1.46422198591643 | epot = -12.0664324125277 | etot = -9.13334912490889 +625000 ekin = 1.45155188812839 | erot = 1.44918251594374 | epot = -12.0340835285544 | etot = -9.13334912448225 +626000 ekin = 1.44224748158087 | erot = 1.4353339959185 | epot = -12.0109306015706 | etot = -9.13334912407122 +627000 ekin = 1.44381530880132 | erot = 1.42638005354872 | epot = -12.0035444860845 | etot = -9.1333491237345 +628000 ekin = 1.45833081620235 | erot = 1.42560824875323 | epot = -12.0172881884922 | etot = -9.13334912353658 +629000 ekin = 1.48676985537149 | erot = 1.43535417577217 | epot = -12.0554731546308 | etot = -9.13334912348712 +630000 ekin = 1.528664170492 | erot = 1.4568918451359 | epot = -12.1189051392527 | etot = -9.13334912362481 +631000 ekin = 1.58193413338957 | erot = 1.49015054897711 | epot = -12.2054338063838 | etot = -9.13334912401709 +632000 ekin = 1.64234851055675 | erot = 1.53357750659073 | epot = -12.3092751416891 | etot = -9.13334912454161 +633000 ekin = 1.70466841197052 | erot = 1.58426390210257 | epot = -12.4222814392219 | etot = -9.13334912514886 +634000 ekin = 1.76318354699381 | erot = 1.63860587790759 | epot = -12.535138550635 | etot = -9.13334912573357 +635000 ekin = 1.8124262503481 | erot = 1.69306627320837 | epot = -12.638841649741 | etot = -9.13334912618454 +636000 ekin = 1.84805557838161 | erot = 1.74492785470264 | epot = -12.7263325594983 | etot = -9.13334912641409 +637000 ekin = 1.86755595284793 | erot = 1.79286465559443 | epot = -12.7937697348522 | etot = -9.13334912640983 +638000 ekin = 1.87047357468866 | erot = 1.83697965057618 | epot = -12.8408023514712 | etot = -9.13334912620637 +639000 ekin = 1.85817220593381 | erot = 1.87849437006827 | epot = -12.8700157018828 | etot = -9.13334912588074 +640000 ekin = 1.83325502875035 | erot = 1.91930247136817 | epot = -12.885906625631 | etot = -9.13334912551248 +641000 ekin = 1.79889805051669 | erot = 1.96149522932472 | epot = -12.8937424049988 | etot = -9.13334912515733 +642000 ekin = 1.75833330345023 | erot = 2.0070145451738 | epot = -12.8986969734783 | etot = -9.13334912485424 +643000 ekin = 1.7145240073878 | erot = 2.05742054585298 | epot = -12.9052936778359 | etot = -9.1333491245951 +644000 ekin = 1.67006045206809 | erot = 2.11379950766841 | epot = -12.9172090841662 | etot = -9.13334912442973 +645000 ekin = 1.62710169193889 | erot = 2.17652829047939 | epot = -12.9369791067753 | etot = -9.13334912435698 +646000 ekin = 1.58731920571272 | erot = 2.24499987972462 | epot = -12.9656682098071 | etot = -9.13334912436974 +647000 ekin = 1.5519287985018 | erot = 2.31774723145838 | epot = -13.0030251544523 | etot = -9.13334912449209 +648000 ekin = 1.52155547404621 | erot = 2.3921684940519 | epot = -13.0470730928258 | etot = -9.13334912472772 +649000 ekin = 1.49615701172682 | erot = 2.46459269466547 | epot = -13.0940988314671 | etot = -9.13334912507481 +650000 ekin = 1.47495820408236 | erot = 2.53042613107603 | epot = -13.138733460677 | etot = -9.1333491255186 +651000 ekin = 1.4564475827599 | erot = 2.58442104122353 | epot = -13.1742177500108 | etot = -9.13334912602733 +652000 ekin = 1.43848054670156 | erot = 2.62109720356034 | epot = -13.1929268768081 | etot = -9.13334912654621 +653000 ekin = 1.41853538646776 | erot = 2.63533318879173 | epot = -13.1872177022564 | etot = -9.1333491269969 +654000 ekin = 1.39414099594694 | erot = 2.62311445987691 | epot = -13.1506045831147 | etot = -9.13334912729084 +655000 ekin = 1.36342278664523 | erot = 2.58232798191781 | epot = -13.0790998958933 | etot = -9.13334912733024 +656000 ekin = 1.32754554559948 | erot = 2.51343997306954 | epot = -12.9743346448116 | etot = -9.13334912614261 +657000 ekin = 1.07738759791682 | erot = 2.44669612964251 | epot = -12.6574327807916 | etot = -9.13334905323232 +658000 ekin = 1.00652014230921 | erot = 2.49084781648346 | epot = -12.6307170433487 | etot = -9.13334908455601 +659000 ekin = 1.07240085018084 | erot = 2.42929901832081 | epot = -12.6350489837861 | etot = -9.1333491152845 +660000 ekin = 1.09381648981083 | erot = 2.30102308262149 | epot = -12.5281886879259 | etot = -9.13334911549354 +661000 ekin = 1.11701334338237 | erot = 2.16959631554663 | epot = -12.4199587738214 | etot = -9.13334911489242 +662000 ekin = 1.14263894058173 | erot = 2.04231481246177 | epot = -12.3183028674908 | etot = -9.13334911444725 +663000 ekin = 1.17093665277224 | erot = 1.92510458370076 | epot = -12.2293903506475 | etot = -9.13334911417454 +664000 ekin = 1.20146324496915 | erot = 1.8220700951119 | epot = -12.1568824541682 | etot = -9.13334911408712 +665000 ekin = 1.23289032448006 | erot = 1.73564836427905 | epot = -12.1018878027985 | etot = -9.13334911403939 +666000 ekin = 1.2634046445521 | erot = 1.66702592668336 | epot = -12.0637796854973 | etot = -9.13334911426185 +667000 ekin = 1.29102574814559 | erot = 1.61488086820582 | epot = -12.0392557309127 | etot = -9.13334911456134 +668000 ekin = 1.31376054134881 | erot = 1.57649712773753 | epot = -12.0236067839909 | etot = -9.13334911490453 +669000 ekin = 1.3298940456542 | erot = 1.54828621181595 | epot = -12.011529372697 | etot = -9.13334911522682 +670000 ekin = 1.33826340890721 | erot = 1.5264084479743 | epot = -11.9980209723649 | etot = -9.13334911548336 +671000 ekin = 1.33847461323328 | erot = 1.50724764864746 | epot = -11.9790713775201 | etot = -9.13334911563934 +672000 ekin = 1.33101969554674 | erot = 1.4878130613914 | epot = -11.952181872615 | etot = -9.13334911567686 +673000 ekin = 1.31737035051182 | erot = 1.46610228052969 | epot = -11.9168217466015 | etot = -9.13334911555997 +674000 ekin = 1.299925217982 | erot = 1.44131241760688 | epot = -11.8745867509632 | etot = -9.13334911537436 +675000 ekin = 1.28129254582506 | erot = 1.41347048294476 | epot = -11.828112143904 | etot = -9.13334911513414 +676000 ekin = 1.26413925333698 | erot = 1.38336835396547 | epot = -11.7808567221864 | etot = -9.13334911488393 +677000 ekin = 1.25080949629915 | erot = 1.35227525692454 | epot = -11.7364338679129 | etot = -9.1333491146892 +678000 ekin = 1.2424032588376 | erot = 1.32122246363687 | epot = -11.6969748370303 | etot = -9.13334911455584 +679000 ekin = 1.23935164124574 | erot = 1.29124446461166 | epot = -11.6639452203543 | etot = -9.13334911449693 +680000 ekin = 1.24151057851449 | erot = 1.26358348831428 | epot = -11.6384431811727 | etot = -9.13334911434394 +681000 ekin = 1.24810791985032 | erot = 1.23998966300598 | epot = -11.62144669732 | etot = -9.13334911446373 +682000 ekin = 1.25738088472151 | erot = 1.22073219170914 | epot = -11.6114621910585 | etot = -9.13334911462782 +683000 ekin = 1.26715254863656 | erot = 1.20554909695297 | epot = -11.6060507603977 | etot = -9.13334911480812 +684000 ekin = 1.2752193688386 | erot = 1.19392995257013 | epot = -11.6024984363854 | etot = -9.13334911497663 +685000 ekin = 1.27965818657545 | erot = 1.18525667281522 | epot = -11.5982639744926 | etot = -9.13334911510194 +686000 ekin = 1.27906445706152 | erot = 1.17887846191265 | epot = -11.5912920341632 | etot = -9.13334911518902 +687000 ekin = 1.2726826175359 | erot = 1.17407129022586 | epot = -11.58010302302 | etot = -9.13334911525825 +688000 ekin = 1.26041914406282 | erot = 1.1700760478386 | epot = -11.5638443071276 | etot = -9.1333491152262 +689000 ekin = 1.24287938495211 | erot = 1.16656725574678 | epot = -11.5427957558543 | etot = -9.13334911515544 +690000 ekin = 1.22118240404644 | erot = 1.16336387131462 | epot = -11.5178953904187 | etot = -9.13334911505765 +691000 ekin = 1.19679867225082 | erot = 1.16037339233329 | epot = -11.4905211795285 | etot = -9.13334911494444 +692000 ekin = 1.17139142555397 | erot = 1.15758648593257 | epot = -11.4623270263125 | etot = -9.13334911482593 +693000 ekin = 1.14685376597261 | erot = 1.1551923286753 | epot = -11.4353952091868 | etot = -9.13334911453894 +694000 ekin = 1.12537035278758 | erot = 1.15368599836399 | epot = -11.4124054656026 | etot = -9.13334911445106 +695000 ekin = 1.10824764597567 | erot = 1.15324052660636 | epot = -11.3948372869626 | etot = -9.13334911438055 +696000 ekin = 1.09641524899228 | erot = 1.15407441364761 | epot = -11.3838387769728 | etot = -9.13334911433286 +697000 ekin = 1.0904070695986 | erot = 1.15645735234538 | epot = -11.3802135362596 | etot = -9.13334911431564 +698000 ekin = 1.09030542376286 | erot = 1.16063392710768 | epot = -11.3842884651973 | etot = -9.13334911432678 +699000 ekin = 1.09552536141978 | erot = 1.16669639941913 | epot = -11.3955708751994 | etot = -9.13334911436046 +700000 ekin = 1.1052737980317 | erot = 1.17478862115996 | epot = -11.4134115336258 | etot = -9.13334911443418 +701000 ekin = 1.11851271408066 | erot = 1.18492470948297 | epot = -11.4367865380862 | etot = -9.13334911452258 +702000 ekin = 1.13395549372637 | erot = 1.19694667251813 | epot = -11.4642512808728 | etot = -9.13334911462828 +703000 ekin = 1.15018285433147 | erot = 1.21057055971496 | epot = -11.4941025287891 | etot = -9.13334911474272 +704000 ekin = 1.16576673457706 | erot = 1.22535908060261 | epot = -11.5244749300354 | etot = -9.13334911485575 +705000 ekin = 1.17938915503319 | erot = 1.24076765314193 | epot = -11.5535059231314 | etot = -9.13334911495629 +706000 ekin = 1.18994261306167 | erot = 1.25622348494748 | epot = -11.579515213043 | etot = -9.13334911503388 +707000 ekin = 1.19660107195369 | erot = 1.27122780267454 | epot = -11.601177989708 | etot = -9.13334911507973 +708000 ekin = 1.19885615186576 | erot = 1.28546332267785 | epot = -11.617668589632 | etot = -9.13334911508841 +709000 ekin = 1.1965198150939 | erot = 1.29888532038554 | epot = -11.628754250538 | etot = -9.13334911505853 +710000 ekin = 1.18969957497071 | erot = 1.31177606554453 | epot = -11.6348247555083 | etot = -9.13334911499308 +711000 ekin = 1.17875387602807 | erot = 1.32474791483134 | epot = -11.6368509057591 | etot = -9.13334911489969 +712000 ekin = 1.16423391783875 | erot = 1.33868945229183 | epot = -11.6362724849197 | etot = -9.13334911478913 +713000 ekin = 1.14681758773094 | erot = 1.35466305350686 | epot = -11.6348297559143 | etot = -9.1333491146765 +714000 ekin = 1.12724173590673 | erot = 1.37373509013708 | epot = -11.6343259406199 | etot = -9.13334911457606 +715000 ekin = 1.10624050749987 | erot = 1.39681075797293 | epot = -11.6364003799747 | etot = -9.13334911450186 +716000 ekin = 1.08449847088997 | erot = 1.42446438143983 | epot = -11.6423119667947 | etot = -9.13334911446493 +717000 ekin = 1.062625867303 | erot = 1.45678801962439 | epot = -11.6527630013996 | etot = -9.13334911447222 +718000 ekin = 1.04116056517795 | erot = 1.49328580498299 | epot = -11.667795484685 | etot = -9.13334911452401 +719000 ekin = 1.02059756446694 | erot = 1.53283565405871 | epot = -11.6867823331394 | etot = -9.13334911461372 +720000 ekin = 1.0014427609137 | erot = 1.57373478107053 | epot = -11.7085266567121 | etot = -9.13334911472792 +721000 ekin = 0.984282698239887 | erot = 1.61383653730308 | epot = -11.7314683503902 | etot = -9.13334911484722 +722000 ekin = 0.969856334574209 | erot = 1.65076935457979 | epot = -11.7539748041074 | etot = -9.13334911495343 +723000 ekin = 0.95910907409578 | erot = 1.68219090540018 | epot = -11.7746490945164 | etot = -9.1333491150204 +724000 ekin = 0.953206498551931 | erot = 1.70610525279512 | epot = -11.7926608663832 | etot = -9.13334911503619 +725000 ekin = 0.953487871458107 | erot = 1.72112406444521 | epot = -11.8079610509 | etot = -9.13334911499673 +726000 ekin = 0.961348420448078 | erot = 1.7266421875565 | epot = -11.8213397229149 | etot = -9.13334911491036 +727000 ekin = 0.978055186998605 | erot = 1.72290320032085 | epot = -11.8343075021142 | etot = -9.13334911479471 +728000 ekin = 1.00452582497582 | erot = 1.71095374106527 | epot = -11.8488286807127 | etot = -9.13334911467165 +729000 ekin = 1.04110137579789 | erot = 1.69252215340265 | epot = -11.8669726437678 | etot = -9.13334911456729 +730000 ekin = 1.08735958690186 | erot = 1.66981008957452 | epot = -11.8905187909812 | etot = -9.13334911450487 +731000 ekin = 1.14200418374912 | erot = 1.64524141705526 | epot = -11.9205947153065 | etot = -9.13334911450213 +732000 ekin = 1.20285318014081 | erot = 1.62119095712685 | epot = -11.9573932518376 | etot = -9.13334911456996 +733000 ekin = 1.26692596391318 | erot = 1.59976528909515 | epot = -12.0000403677099 | etot = -9.13334911470158 +734000 ekin = 1.33064406417848 | erot = 1.5825428988019 | epot = -12.0465360778876 | etot = -9.13334911490722 +735000 ekin = 1.39013484388352 | erot = 1.57032898632949 | epot = -12.0938129453713 | etot = -9.13334911515826 +736000 ekin = 1.44157509139475 | erot = 1.56317476788337 | epot = -12.1380989747049 | etot = -9.13334911542673 +737000 ekin = 1.48157845589651 | erot = 1.56044545881246 | epot = -12.1753730303849 | etot = -9.13334911567597 +738000 ekin = 1.50757504378036 | erot = 1.56100911666817 | epot = -12.2019332763157 | etot = -9.13334911586718 +739000 ekin = 1.51813561812383 | erot = 1.56352092529265 | epot = -12.2150056593813 | etot = -9.13334911596481 +740000 ekin = 1.51318914849343 | erot = 1.56675183784834 | epot = -12.2132901022861 | etot = -9.13334911594438 +741000 ekin = 1.49408865830186 | erot = 1.56989906103806 | epot = -12.1973368351381 | etot = -9.13334911579818 +742000 ekin = 1.46350061535747 | erot = 1.5728002570046 | epot = -12.1696499879022 | etot = -9.13334911554011 +743000 ekin = 1.42512524134019 | erot = 1.57593310600514 | epot = -12.1344074625113 | etot = -9.133349115166 +744000 ekin = 1.3833848758548 | erot = 1.58054361278093 | epot = -12.0972776034317 | etot = -9.13334911479593 +745000 ekin = 1.34281951274205 | erot = 1.5882358284043 | epot = -12.0644044556002 | etot = -9.13334911445384 +746000 ekin = 1.30747334765641 | erot = 1.60047096980676 | epot = -12.0412934316593 | etot = -9.13334911419612 +747000 ekin = 1.28046646005764 | erot = 1.61821768665688 | epot = -12.0320332608056 | etot = -9.13334911409104 +748000 ekin = 1.26367955924 | erot = 1.64132893143407 | epot = -12.0383576048422 | etot = -9.13334911416815 +749000 ekin = 1.2574293442043 | erot = 1.66831440024512 | epot = -12.0590928588854 | etot = -9.13334911443597 +750000 ekin = 1.26047795508285 | erot = 1.6962844861488 | epot = -12.0901115560805 | etot = -9.13334911484889 +751000 ekin = 1.27026186447622 | erot = 1.72133386886176 | epot = -12.1249448486758 | etot = -9.13334911533786 +752000 ekin = 1.28339547086858 | erot = 1.73919075506032 | epot = -12.1559353417357 | etot = -9.13334911580678 +753000 ekin = 1.2963595746712 | erot = 1.74596876192164 | epot = -12.1756774528099 | etot = -9.13334911621709 +754000 ekin = 1.3059915874138 | erot = 1.73885024063525 | epot = -12.1781909444351 | etot = -9.13334911638605 +755000 ekin = 1.31024888116544 | erot = 1.7168351146831 | epot = -12.1604331121877 | etot = -9.13334911633919 +756000 ekin = 1.30846938321887 | erot = 1.68097972249687 | epot = -12.1227982218053 | etot = -9.13334911608958 +757000 ekin = 1.30124985041718 | erot = 1.63419006476544 | epot = -12.0687890308696 | etot = -9.13334911568699 +758000 ekin = 1.29019641090838 | erot = 1.58073563388972 | epot = -12.0042811600002 | etot = -9.13334911520213 +759000 ekin = 1.27761222227934 | erot = 1.52554636406397 | epot = -11.9365077010399 | etot = -9.13334911469657 +760000 ekin = 1.26609069507073 | erot = 1.4734869303843 | epot = -11.8729267397118 | etot = -9.13334911425681 +761000 ekin = 1.25808964011953 | erot = 1.42869550462328 | epot = -11.8201342586644 | etot = -9.13334911392157 +762000 ekin = 1.25572222200879 | erot = 1.39407442311085 | epot = -11.7831457588663 | etot = -9.13334911374665 +763000 ekin = 1.26054534570068 | erot = 1.37090045943868 | epot = -11.764794918833 | etot = -9.1333491136936 +764000 ekin = 1.27353435440278 | erot = 1.35887199085961 | epot = -11.765755459052 | etot = -9.13334911378957 +765000 ekin = 1.2949668260023 | erot = 1.35616457697726 | epot = -11.7844805169704 | etot = -9.13334911399081 +766000 ekin = 1.32454629042533 | erot = 1.35977679502324 | epot = -11.8176721997097 | etot = -9.13334911426109 +767000 ekin = 1.36163954272201 | erot = 1.3661863222321 | epot = -11.861174979507 | etot = -9.13334911455294 +768000 ekin = 1.40531019892957 | erot = 1.37181010082622 | epot = -11.9104694145828 | etot = -9.13334911482705 +769000 ekin = 1.45446512869437 | erot = 1.37353498050302 | epot = -11.961349224236 | etot = -9.13334911503857 +770000 ekin = 1.50793050152716 | erot = 1.36921125648765 | epot = -12.0104908732492 | etot = -9.13334911523436 +771000 ekin = 1.5638961669376 | erot = 1.35775090659989 | epot = -12.0549961887936 | etot = -9.1333491152561 +772000 ekin = 1.62113703504958 | erot = 1.33970323503865 | epot = -12.094189385275 | etot = -9.13334911518681 +773000 ekin = 1.67872851569995 | erot = 1.317029829878 | epot = -12.1291074606382 | etot = -9.13334911506024 +774000 ekin = 1.73569257109284 | erot = 1.29264163249231 | epot = -12.1616833185055 | etot = -9.13334911492038 +775000 ekin = 1.79085656134002 | erot = 1.26988000050848 | epot = -12.194085676658 | etot = -9.1333491148095 +776000 ekin = 1.84276100468616 | erot = 1.25197534036964 | epot = -12.2280854598125 | etot = -9.1333491147567 +777000 ekin = 1.88967118604117 | erot = 1.24159765890511 | epot = -12.2646179597164 | etot = -9.13334911477014 +778000 ekin = 1.92971622261019 | erot = 1.24057583213674 | epot = -12.3036411695857 | etot = -9.13334911483877 +779000 ekin = 1.96113164255194 | erot = 1.24980912492691 | epot = -12.3442898824175 | etot = -9.13334911493862 +780000 ekin = 1.98254203386542 | erot = 1.26932045666364 | epot = -12.3852116055708 | etot = -9.13334911504177 +781000 ekin = 1.99321406405968 | erot = 1.29840823518112 | epot = -12.4249714143686 | etot = -9.13334911512778 +782000 ekin = 1.99321095941016 | erot = 1.33580885491735 | epot = -12.4623689295136 | etot = -9.13334911518613 +783000 ekin = 1.98342491293678 | erot = 1.37983642298119 | epot = -12.4966104511338 | etot = -9.13334911521582 +784000 ekin = 1.96551238430177 | erot = 1.42849371621078 | epot = -12.5273552156807 | etot = -9.13334911516811 +785000 ekin = 1.94195910112175 | erot = 1.47961348821713 | epot = -12.5549217044983 | etot = -9.13334911515939 +786000 ekin = 1.91549982326227 | erot = 1.53087711626691 | epot = -12.5797260546635 | etot = -9.13334911513429 +787000 ekin = 1.88902915933248 | erot = 1.57997565975775 | epot = -12.6023539341816 | etot = -9.13334911509139 +788000 ekin = 1.8655374655416 | erot = 1.62478646025336 | epot = -12.6236730408307 | etot = -9.13334911503573 +789000 ekin = 1.84793067284303 | erot = 1.66350572426683 | epot = -12.6447855120723 | etot = -9.13334911496242 +790000 ekin = 1.83884831412254 | erot = 1.69477325871971 | epot = -12.6669706877348 | etot = -9.13334911489259 +791000 ekin = 1.84038435201585 | erot = 1.71768127848849 | epot = -12.6914147453579 | etot = -9.13334911485354 +792000 ekin = 1.85374621231349 | erot = 1.73169683790756 | epot = -12.7187921650971 | etot = -9.13334911487601 +793000 ekin = 1.8789217872984 | erot = 1.73653576924597 | epot = -12.7488066715285 | etot = -9.13334911498412 +794000 ekin = 1.91440510045612 | erot = 1.73204169928402 | epot = -12.7797959149171 | etot = -9.13334911517698 +795000 ekin = 1.95726697872637 | erot = 1.71818976217901 | epot = -12.8088058563243 | etot = -9.13334911541889 +796000 ekin = 2.00360851779882 | erot = 1.69525335459694 | epot = -12.8322109880418 | etot = -9.13334911564608 +797000 ekin = 2.04914358120617 | erot = 1.66405946742404 | epot = -12.8465521644182 | etot = -9.13334911578802 +798000 ekin = 2.08995546227648 | erot = 1.62623745953124 | epot = -12.8495420376086 | etot = -9.1333491158009 +799000 ekin = 2.12309292251377 | erot = 1.58427028116865 | epot = -12.8407123193673 | etot = -9.13334911568487 +800000 ekin = 2.14682990847639 | erot = 1.5412613855995 | epot = -12.821440409556 | etot = -9.13334911548006 +801000 ekin = 2.16058282772835 | erot = 1.50048202047673 | epot = -12.7944139634492 | etot = -9.13334911524412 +802000 ekin = 2.16461511109456 | erot = 1.46486615503426 | epot = -12.7628303811574 | etot = -9.13334911502858 +803000 ekin = 2.15969104316506 | erot = 1.43661335442589 | epot = -12.7296535124577 | etot = -9.13334911486671 +804000 ekin = 2.14679128687906 | erot = 1.41698988508608 | epot = -12.6971302867224 | etot = -9.1333491147573 +805000 ekin = 2.12692065943943 | erot = 1.40638520515076 | epot = -12.6666549793126 | etot = -9.13334911472241 +806000 ekin = 2.10099028263459 | erot = 1.40422932575195 | epot = -12.6385687231454 | etot = -9.13334911475883 +807000 ekin = 2.06982763841779 | erot = 1.40909451158688 | epot = -12.6122712648409 | etot = -9.13334911483622 +808000 ekin = 2.0341909229772 | erot = 1.41919422166664 | epot = -12.5867342595708 | etot = -9.13334911492697 +809000 ekin = 1.99478586655906 | erot = 1.4323885834077 | epot = -12.5605235650179 | etot = -9.13334911505111 +810000 ekin = 1.95230744546565 | erot = 1.44625258192577 | epot = -12.5319091425649 | etot = -9.13334911517351 +811000 ekin = 1.90747094188675 | erot = 1.45847148723069 | epot = -12.4992915443987 | etot = -9.13334911528121 +812000 ekin = 1.86102893102544 | erot = 1.4670396354808 | epot = -12.4614176818678 | etot = -9.13334911536157 +813000 ekin = 1.81416432243492 | erot = 1.47049868907024 | epot = -12.4180121266397 | etot = -9.13334911513457 +814000 ekin = 1.76902926167641 | erot = 1.46826739310675 | epot = -12.3706457700669 | etot = -9.13334911528372 +815000 ekin = 1.71533069952284 | erot = 1.45797598423766 | epot = -12.3066557947832 | etot = -9.13334911102266 +816000 ekin = 1.68468183703544 | erot = 1.43935942018881 | epot = -12.2573903676303 | etot = -9.13334911040601 +817000 ekin = 1.67569540452249 | erot = 1.42022759192753 | epot = -12.229272104597 | etot = -9.13334910814694 +818000 ekin = 1.65431804079221 | erot = 1.40071144599893 | epot = -12.1883785945503 | etot = -9.1333491077592 +819000 ekin = 1.63740188372281 | erot = 1.38256931716781 | epot = -12.1533203082747 | etot = -9.1333491073841 +820000 ekin = 1.62512170451317 | erot = 1.36928168853097 | epot = -12.1277525000666 | etot = -9.13334910702245 +821000 ekin = 1.61915909098214 | erot = 1.36404110716217 | epot = -12.1165493048504 | etot = -9.13334910670606 +822000 ekin = 1.62172343976694 | erot = 1.36925913748166 | epot = -12.1243316837646 | etot = -9.13334910651599 +823000 ekin = 1.63427494813012 | erot = 1.38616632191204 | epot = -12.1537903765495 | etot = -9.13334910650734 +824000 ekin = 1.65698382618083 | erot = 1.41459711185718 | epot = -12.2049300447293 | etot = -9.1333491066913 +825000 ekin = 1.68854753273397 | erot = 1.45301631842097 | epot = -12.2749129581916 | etot = -9.13334910703664 +826000 ekin = 1.72638863495593 | erot = 1.49875661579892 | epot = -12.3584943582411 | etot = -9.1333491074863 +827000 ekin = 1.76710423380173 | erot = 1.54839439234532 | epot = -12.4488477341213 | etot = -9.13334910797425 +828000 ekin = 1.80698482333454 | erot = 1.5981818490163 | epot = -12.5385157807934 | etot = -9.13334910844251 +829000 ekin = 1.84246939969648 | erot = 1.64447465718334 | epot = -12.6202931657233 | etot = -9.13334910884345 +830000 ekin = 1.87048980343148 | erot = 1.68412933439335 | epot = -12.6879682469634 | etot = -9.13334910913854 +831000 ekin = 1.88871335827799 | erot = 1.71486645418346 | epot = -12.7369289217595 | etot = -9.13334910929808 +832000 ekin = 1.89569916791839 | erot = 1.73558694752135 | epot = -12.7646352247427 | etot = -9.13334910930292 +833000 ekin = 1.89096344935692 | erot = 1.74659447552094 | epot = -12.7709070340301 | etot = -9.13334910915223 +834000 ekin = 1.87493429544964 | erot = 1.74964392180512 | epot = -12.7579273261423 | etot = -9.13334910888755 +835000 ekin = 1.84878280514247 | erot = 1.74762027308025 | epot = -12.7297521867453 | etot = -9.13334910852257 +836000 ekin = 1.8141447690964 | erot = 1.74421722088535 | epot = -12.6917110981203 | etot = -9.13334910813853 +837000 ekin = 1.77277875467461 | erot = 1.74335285139141 | epot = -12.6494807138681 | etot = -9.13334910780208 +838000 ekin = 1.7262444553165 | erot = 1.74841404792074 | epot = -12.608007610802 | etot = -9.13334910756481 +839000 ekin = 1.67568816111102 | erot = 1.76165550553764 | epot = -12.5706927741021 | etot = -9.1333491074534 +840000 ekin = 1.62179135099795 | erot = 1.78387657045046 | epot = -12.5390170289028 | etot = -9.13334910745439 +841000 ekin = 1.56488441151669 | erot = 1.81456573941819 | epot = -12.5127992584711 | etot = -9.13334910753619 +842000 ekin = 1.50517399563451 | erot = 1.85205645863854 | epot = -12.4905795619685 | etot = -9.13334910769547 +843000 ekin = 1.44300548284445 | erot = 1.89358112521172 | epot = -12.4699357158607 | etot = -9.13334910780454 +844000 ekin = 1.3790662063139 | erot = 1.93639685185152 | epot = -12.4488121660344 | etot = -9.13334910786901 +845000 ekin = 1.31446352833686 | erot = 1.97812996435259 | epot = -12.4259426005586 | etot = -9.13334910786912 +846000 ekin = 1.25068692329763 | erot = 2.01700234952521 | epot = -12.4010383806239 | etot = -9.13334910780111 +847000 ekin = 1.18947724708284 | erot = 2.0520432049065 | epot = -12.3748695596627 | etot = -9.13334910767339 +848000 ekin = 1.13265732505036 | erot = 2.08314733277112 | epot = -12.3491537653239 | etot = -9.13334910750245 +849000 ekin = 1.08197657770294 | erot = 2.11099249693677 | epot = -12.3263181819474 | etot = -9.13334910730764 +850000 ekin = 1.03899924538329 | erot = 2.13684654283616 | epot = -12.3091948953303 | etot = -9.13334910711086 +851000 ekin = 1.0050379248998 | erot = 2.16230618698294 | epot = -12.3006932188152 | etot = -9.13334910693251 +852000 ekin = 0.981116857874806 | erot = 2.18901371772547 | epot = -12.303479682391 | etot = -9.13334910679072 +853000 ekin = 0.967947652226109 | erot = 2.21839549971482 | epot = -12.3196922586421 | etot = -9.13334910670121 +854000 ekin = 0.965908910691589 | erot = 2.25145766399906 | epot = -12.3507156813621 | etot = -9.13334910667145 +855000 ekin = 0.975031148295586 | erot = 2.28866143867258 | epot = -12.397041693672 | etot = -9.13334910670388 +856000 ekin = 0.994993726121242 | erot = 2.32988587265462 | epot = -12.4582287055702 | etot = -9.13334910679431 +857000 ekin = 1.02514000046305 | erot = 2.37447147763437 | epot = -12.5329605850307 | etot = -9.13334910693331 +858000 ekin = 1.06451194043388 | erot = 2.42132581263115 | epot = -12.619186860173 | etot = -9.133349107108 +859000 ekin = 1.11189872921357 | erot = 2.46906217646335 | epot = -12.7143100129825 | etot = -9.13334910730561 +860000 ekin = 1.16588800432878 | erot = 2.51613734356884 | epot = -12.8153744554145 | etot = -9.13334910751683 +861000 ekin = 1.22490604809807 | erot = 2.56095681693069 | epot = -12.9192119727658 | etot = -9.13334910773705 +862000 ekin = 1.28723632580509 | erot = 2.60192847236006 | epot = -13.0225139061332 | etot = -9.13334910796808 +863000 ekin = 1.35101431938026 | erot = 2.63746581474994 | epot = -13.1218292423441 | etot = -9.13334910821392 +864000 ekin = 1.41420820518342 | erot = 2.66596355874572 | epot = -13.213520872407 | etot = -9.13334910847785 +865000 ekin = 1.47460562928395 | erot = 2.68578195464753 | epot = -13.2937366926894 | etot = -9.13334910875787 +866000 ekin = 1.52983303720344 | erot = 2.69527584728353 | epot = -13.3584579935301 | etot = -9.1333491090431 +867000 ekin = 1.57743376516387 | erot = 2.69288933097783 | epot = -13.4036722054545 | etot = -9.13334910931283 +868000 ekin = 1.61502389036922 | erot = 2.6773120050259 | epot = -13.4256850049327 | etot = -9.13334910953756 +869000 ekin = 1.64053051307865 | erot = 2.64766625530002 | epot = -13.4215458780626 | etot = -9.13334910968391 +870000 ekin = 1.65249590024801 | erot = 2.60367561918667 | epot = -13.3895206291558 | etot = -9.13334910972108 +871000 ekin = 1.65040511753722 | erot = 2.54576053416916 | epot = -13.3295147613346 | etot = -9.13334910962825 +872000 ekin = 1.63497077370924 | erot = 2.47502461265863 | epot = -13.2433444957684 | etot = -9.13334910940055 +873000 ekin = 1.60829551086502 | erot = 2.39312864673435 | epot = -13.1347732666517 | etot = -9.13334910905235 +874000 ekin = 1.57383856498032 | erot = 2.30208675138478 | epot = -13.0092744249818 | etot = -9.13334910861673 +875000 ekin = 1.53613967512839 | erot = 2.20404109166936 | epot = -12.8735298749402 | etot = -9.13334910814241 +876000 ekin = 1.50030007471879 | erot = 2.10106901470409 | epot = -12.7347181971093 | etot = -9.13334910768647 +877000 ekin = 1.47128183650484 | erot = 1.99505592488608 | epot = -12.5996868686966 | etot = -9.13334910730565 +878000 ekin = 1.45315269235295 | erot = 1.88764504255069 | epot = -12.4741468419469 | etot = -9.13334910704327 +879000 ekin = 1.44845009592847 | erot = 1.78026193725866 | epot = -12.3620611401045 | etot = -9.13334910691736 +880000 ekin = 1.4578339719446 | erot = 1.67420503622729 | epot = -12.2653881150876 | etot = -9.13334910691574 +881000 ekin = 1.48012455416729 | erot = 1.57078382964907 | epot = -12.1842574908159 | etot = -9.13334910699952 +882000 ekin = 1.51270015736965 | erot = 1.47147015192771 | epot = -12.1175194164139 | etot = -9.13334910711658 +883000 ekin = 1.55211568291642 | erot = 1.37801244883258 | epot = -12.0634772389683 | etot = -9.13334910721927 +884000 ekin = 1.59475301549556 | erot = 1.29246300163102 | epot = -12.0205651244041 | etot = -9.13334910727755 +885000 ekin = 1.63734681492121 | erot = 1.21709221485257 | epot = -11.9877881370563 | etot = -9.1333491072825 +886000 ekin = 1.67731211300055 | erot = 1.15420415260516 | epot = -11.9648653728478 | etot = -9.1333491072421 +887000 ekin = 1.71288068345475 | erot = 1.10590165063859 | epot = -11.9521314412662 | etot = -9.13334910717285 +888000 ekin = 1.74309500656892 | erot = 1.07385834531108 | epot = -11.9503024589743 | etot = -9.13334910709431 +889000 ekin = 1.76770969091248 | erot = 1.05913784424507 | epot = -11.9601966421833 | etot = -9.13334910702578 +890000 ekin = 1.78703240996246 | erot = 1.06207375035338 | epot = -11.9824552673014 | etot = -9.13334910698558 +891000 ekin = 1.8017232922488 | erot = 1.082207474664 | epot = -12.0172798739034 | etot = -9.13334910699064 +892000 ekin = 1.81257293682823 | erot = 1.11828058018261 | epot = -12.0642026240647 | etot = -9.13334910705388 +893000 ekin = 1.82028982711721 | erot = 1.16828769624953 | epot = -12.1219266305456 | etot = -9.13334910717881 +894000 ekin = 1.8253364972857 | erot = 1.2296028017134 | epot = -12.188288406358 | etot = -9.13334910735892 +895000 ekin = 1.82785071659948 | erot = 1.29918775470761 | epot = -12.2603875788813 | etot = -9.13334910757419 +896000 ekin = 1.82766966748405 | erot = 1.37387583335774 | epot = -12.3348946086366 | etot = -9.13334910779482 +897000 ekin = 1.82444603808765 | erot = 1.45069893543395 | epot = -12.4084940815094 | etot = -9.13334910798781 +898000 ekin = 1.81781661006481 | erot = 1.52720356355353 | epot = -12.4783692817434 | etot = -9.13334910812505 +899000 ekin = 1.80756915110211 | erot = 1.60168843027344 | epot = -12.5426066895664 | etot = -9.13334910819084 +900000 ekin = 1.79375843956525 | erot = 1.67330364929765 | epot = -12.6004111970495 | etot = -9.13334910818656 +901000 ekin = 1.7767431847654 | erot = 1.74197941463959 | epot = -12.6520717075347 | etot = -9.13334910812975 +902000 ekin = 1.75714245729137 | erot = 1.8081939440662 | epot = -12.6986855094068 | etot = -9.13334910804925 +903000 ekin = 1.73573344441754 | erot = 1.8726332598978 | epot = -12.7417158122925 | etot = -9.1333491079772 +904000 ekin = 1.71332625908703 | erot = 1.93582474191466 | epot = -12.7825001089422 | etot = -9.13334910794046 +905000 ekin = 1.69065428570444 | erot = 1.99783248438824 | epot = -12.8218358780465 | etot = -9.13334910795378 +906000 ekin = 1.66831072856122 | erot = 2.05808381416944 | epot = -12.8597436507486 | etot = -9.13334910801792 +907000 ekin = 1.6467458830389 | erot = 2.11535919821009 | epot = -12.895454189367 | etot = -9.13334910811806 +908000 ekin = 1.62631907114034 | erot = 2.16793324009784 | epot = -12.9276014194707 | etot = -9.13334910823256 +909000 ekin = 1.60738004100465 | erot = 2.21381581980632 | epot = -12.9545449691496 | etot = -9.13334910833859 +910000 ekin = 1.59034402491562 | erot = 2.25102295598621 | epot = -12.9747160893212 | etot = -9.13334910841939 +911000 ekin = 1.57572782711176 | erot = 2.27781488080808 | epot = -12.9868918163859 | etot = -9.13334910846606 +912000 ekin = 1.5641305468354 | erot = 2.29287003002579 | epot = -12.9903496853383 | etot = -9.13334910847715 +913000 ekin = 1.55616398737872 | erot = 2.29539983332877 | epot = -12.9849129291629 | etot = -9.13334910845537 +914000 ekin = 1.55235379274487 | erot = 2.28522760385718 | epot = -12.970930505006 | etot = -9.13334910840395 +915000 ekin = 1.55303636075987 | erot = 2.26284508695978 | epot = -12.9492305560465 | etot = -9.13334910832683 +916000 ekin = 1.55827003373375 | erot = 2.22943339359798 | epot = -12.9210525355621 | etot = -9.13334910823033 +917000 ekin = 1.56776924055917 | erot = 2.18681551597995 | epot = -12.8879338646642 | etot = -9.1333491081251 +918000 ekin = 1.58086450735735 | erot = 2.13731406706161 | epot = -12.8515276824457 | etot = -9.13334910802674 +919000 ekin = 1.59649190921672 | erot = 2.08351907893787 | epot = -12.8133600961056 | etot = -9.13334910795102 +920000 ekin = 1.61321892883775 | erot = 2.02800735916717 | epot = -12.7745753959154 | etot = -9.13334910791047 +921000 ekin = 1.62931395437988 | erot = 1.97307497751068 | epot = -12.7357380398015 | etot = -9.1333491079109 +922000 ekin = 1.64286104747039 | erot = 1.92053870341486 | epot = -12.6967488588336 | etot = -9.13334910794835 +923000 ekin = 1.65191234391482 | erot = 1.87163759208753 | epot = -12.6568990440141 | etot = -9.13334910801172 +924000 ekin = 1.65466206201883 | erot = 1.82703710614034 | epot = -12.6150482762435 | etot = -9.13334910808429 +925000 ekin = 1.64962158356706 | erot = 1.78691680129212 | epot = -12.5698874930069 | etot = -9.1333491081477 +926000 ekin = 1.635774357065 | erot = 1.75111283231405 | epot = -12.5202362975638 | etot = -9.13334910818478 +927000 ekin = 1.61269412581515 | erot = 1.71928618608427 | epot = -12.4653294200806 | etot = -9.13334910818114 +928000 ekin = 1.58061327338877 | erot = 1.69109387513308 | epot = -12.4050562566491 | etot = -9.13334910812727 +929000 ekin = 1.5404346571899 | erot = 1.66634444993847 | epot = -12.3401282151469 | etot = -9.13334910801855 +930000 ekin = 1.49368612297294 | erot = 1.64511875929311 | epot = -12.2721539901236 | etot = -9.13334910785752 +931000 ekin = 1.44242020036011 | erot = 1.6278309239394 | epot = -12.2036002319549 | etot = -9.1333491076554 +932000 ekin = 1.38906420478236 | erot = 1.61520048767696 | epot = -12.1376137998927 | etot = -9.13334910743335 +933000 ekin = 1.33622958396548 | erot = 1.60811568409747 | epot = -12.0776943752837 | etot = -9.1333491072207 +934000 ekin = 1.28649486983519 | erot = 1.60739378972276 | epot = -12.0272377666104 | etot = -9.13334910705249 +935000 ekin = 1.24218246526119 | erot = 1.61347919082763 | epot = -11.989010763051 | etot = -9.13334910696217 +936000 ekin = 1.20515312898716 | erot = 1.62614770365281 | epot = -11.964649939615 | etot = -9.13334910697501 +937000 ekin = 1.17664231217722 | erot = 1.64429583353959 | epot = -11.9542872528193 | etot = -9.13334910710245 +938000 ekin = 1.15716006421962 | erot = 1.66588444174352 | epot = -11.9563936133005 | etot = -9.1333491073374 +939000 ekin = 1.14647171712607 | erot = 1.68810326830728 | epot = -11.9679240930781 | etot = -9.13334910764477 +940000 ekin = 1.14367004082956 | erot = 1.70771457432631 | epot = -11.9847337231501 | etot = -9.13334910799423 +941000 ekin = 1.14733884565177 | erot = 1.72149292698786 | epot = -12.0021808809595 | etot = -9.13334910831984 +942000 ekin = 1.15580134682391 | erot = 1.72687300438947 | epot = -12.0160234597736 | etot = -9.13334910856026 +943000 ekin = 1.16743729515297 | erot = 1.72249936624098 | epot = -12.0232857700571 | etot = -9.13334910866313 +944000 ekin = 1.18103106476359 | erot = 1.70858712462445 | epot = -12.0229672979874 | etot = -9.13334910859936 +945000 ekin = 1.19606804455417 | erot = 1.68696892705364 | epot = -12.0163860799888 | etot = -9.13334910838101 +946000 ekin = 1.21284058110907 | erot = 1.66075870247738 | epot = -12.0069483916567 | etot = -9.13334910807027 +947000 ekin = 1.23222210573444 | erot = 1.63367011138129 | epot = -11.9992413248847 | etot = -9.13334910776902 +948000 ekin = 1.25509690716044 | erot = 1.60916358070706 | epot = -11.9976095954519 | etot = -9.13334910758437 +949000 ekin = 1.28167104221087 | erot = 1.58969080392946 | epot = -12.0047109537182 | etot = -9.13334910757788 +950000 ekin = 1.31105510038267 | erot = 1.57628415673981 | epot = -12.0206883648584 | etot = -9.13334910773589 +951000 ekin = 1.34140314928627 | erot = 1.56859135849577 | epot = -12.0433436157629 | etot = -9.13334910798086 +952000 ekin = 1.37054117668759 | erot = 1.56526000759302 | epot = -12.0691502924999 | etot = -9.13334910821928 +953000 ekin = 1.39670348101467 | erot = 1.56444621742743 | epot = -12.0944988068321 | etot = -9.13334910839002 +954000 ekin = 1.418975292377 | erot = 1.56423287015498 | epot = -12.1165572710122 | etot = -9.1333491084802 +955000 ekin = 1.43729048070224 | erot = 1.56287479953881 | epot = -12.1335143887507 | etot = -9.13334910850965 +956000 ekin = 1.45211066332392 | erot = 1.5589293854881 | epot = -12.144389157316 | etot = -9.133349108504 +957000 ekin = 1.46402190623028 | erot = 1.55132217597402 | epot = -12.1486931906856 | etot = -9.13334910848131 +958000 ekin = 1.47342593725582 | erot = 1.53954965712998 | epot = -12.1463247028198 | etot = -9.13334910843402 +959000 ekin = 1.48038578495019 | erot = 1.52394133602467 | epot = -12.1376762293322 | etot = -9.1333491083573 +960000 ekin = 1.48460604034332 | erot = 1.50575363438079 | epot = -12.1237087829676 | etot = -9.13334910824351 +961000 ekin = 1.48549975936494 | erot = 1.48721075412964 | epot = -12.1060596215852 | etot = -9.13334910809064 +962000 ekin = 1.48229853496878 | erot = 1.4714120258364 | epot = -12.08705966871 | etot = -9.13334910790478 +963000 ekin = 1.47417603272701 | erot = 1.46210240867396 | epot = -12.0696275491009 | etot = -9.13334910769994 +964000 ekin = 1.4603664452564 | erot = 1.46332191688728 | epot = -12.0570374696385 | etot = -9.13334910749479 +965000 ekin = 1.44026662182629 | erot = 1.47896324785904 | epot = -12.0525789770013 | etot = -9.13334910731597 +966000 ekin = 1.41351583401261 | erot = 1.51227943251032 | epot = -12.059144373712 | etot = -9.13334910718905 +967000 ekin = 1.38005134112891 | erot = 1.56539665061738 | epot = -12.0787970988848 | etot = -9.1333491071385 +968000 ekin = 1.34025482725276 | erot = 1.63885686276279 | epot = -12.1124607971902 | etot = -9.13334910717463 +969000 ekin = 1.29476921982257 | erot = 1.73132793709573 | epot = -12.1594462642397 | etot = -9.13334910732141 +970000 ekin = 1.24442005393518 | erot = 1.83972520711345 | epot = -12.2174943685871 | etot = -9.13334910753846 +971000 ekin = 1.19046696427907 | erot = 1.95943091408197 | epot = -12.2832469861558 | etot = -9.13334910779477 +972000 ekin = 1.13463097114153 | erot = 2.08475088501359 | epot = -12.3527309642031 | etot = -9.13334910804801 +973000 ekin = 1.07911059568202 | erot = 2.20953944500849 | epot = -12.421999148947 | etot = -9.1333491082565 +974000 ekin = 1.0265736704174 | erot = 2.32774347839194 | epot = -12.4876662572323 | etot = -9.13334910842292 +975000 ekin = 0.979977932768695 | erot = 2.43392801403437 | epot = -12.5472550552884 | etot = -9.13334910848538 +976000 ekin = 0.942304887100263 | erot = 2.52399013955009 | epot = -12.5996441351223 | etot = -9.13334910847197 +977000 ekin = 0.916335295706531 | erot = 2.59517570123723 | epot = -12.644860105353 | etot = -9.1333491084092 +978000 ekin = 0.904316422892292 | erot = 2.6460169875762 | epot = -12.6836825187988 | etot = -9.13334910833034 +979000 ekin = 0.907654941509809 | erot = 2.67612704045827 | epot = -12.7171310902355 | etot = -9.13334910826745 +980000 ekin = 0.926700183437424 | erot = 2.68592744664294 | epot = -12.7459767383234 | etot = -9.13334910824302 +981000 ekin = 0.960659745241031 | erot = 2.67638285528021 | epot = -12.7703917087865 | etot = -9.13334910826521 +982000 ekin = 1.00766017971334 | erot = 2.64879736701747 | epot = -12.7898066550598 | etot = -9.13334910832899 +983000 ekin = 1.06493892794231 | erot = 2.60470505317151 | epot = -12.8029930895296 | etot = -9.13334910841577 +984000 ekin = 1.12913508942066 | erot = 2.54586103456691 | epot = -12.8083452324861 | etot = -9.13334910849851 +985000 ekin = 1.19663599745507 | erot = 2.47431116853344 | epot = -12.8042962745361 | etot = -9.13334910854757 +986000 ekin = 1.2639316426745 | erot = 2.39249159640019 | epot = -12.7897723476129 | etot = -9.13334910853825 +987000 ekin = 1.32792910235901 | erot = 2.30329384118958 | epot = -12.7645720520061 | etot = -9.13334910845755 +988000 ekin = 1.38618594051068 | erot = 2.21003704543074 | epot = -12.7295720942493 | etot = -9.13334910830784 +989000 ekin = 1.4370366316437 | erot = 2.11631776637777 | epot = -12.6867035061275 | etot = -9.13334910810604 +990000 ekin = 1.47960743025201 | erot = 2.02574976478159 | epot = -12.6387063029131 | etot = -9.13334910787949 +991000 ekin = 1.51373724651467 | erot = 1.94164272478737 | epot = -12.5887290789609 | etot = -9.13334910765885 +992000 ekin = 1.53983818591504 | erot = 1.86668512517839 | epot = -12.5398724185651 | etot = -9.13334910747168 +993000 ekin = 1.55873490672647 | erot = 1.80268982006813 | epot = -12.4947738341322 | etot = -9.13334910733764 +994000 ekin = 1.57151651513761 | erot = 1.75043914207588 | epot = -12.4553047644798 | etot = -9.13334910726628 +995000 ekin = 1.57942173434867 | erot = 1.70964079470597 | epot = -12.4224116363129 | etot = -9.13334910725828 +996000 ekin = 1.58376261671428 | erot = 1.67898574514433 | epot = -12.3960974691653 | etot = -9.13334910730674 +997000 ekin = 1.58587878574227 | erot = 1.65629050262104 | epot = -12.3755183957631 | etot = -9.13334910739977 +998000 ekin = 1.58710748470162 | erot = 1.63870906512813 | epot = -12.3591656573512 | etot = -9.13334910752142 +999000 ekin = 1.58875603198164 | erot = 1.62299637540287 | epot = -12.34510151504 | etot = -9.13334910765546 +1000000 ekin = 1.5920700121372 | erot = 1.6058173980956 | epot = -12.3312365180129 | etot = -9.13334910778006 + 1000000 0.11793111 -1.2674127 0.034288999 -1.0739167 -1.3883882e-05 64000 +Loop time of 10.7087 on 4 procs for 1000000 steps with 10 atoms + +Performance: 80681.753 tau/day, 93381.659 timesteps/s, 933.817 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.4032 | 4.2397 | 6.1061 | 53.2 | 39.59 +Bond | 0.12793 | 0.18606 | 0.24447 | 11.1 | 1.74 +Neigh | 0.007285 | 0.007333 | 0.007366 | 0.0 | 0.07 +Comm | 2.4191 | 4.544 | 5.5427 | 58.9 | 42.43 +Output | 0.058426 | 0.065905 | 0.08554 | 4.4 | 0.62 +Modify | 0.39789 | 0.48281 | 0.59308 | 12.1 | 4.51 +Other | | 1.183 | | | 11.05 + +Nlocal: 2.5 ave 4 max 1 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 9 max 6 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 19 max 5 min +Histogram: 2 1 0 0 0 0 0 0 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:10 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/dsring/data.dsring b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/data.dsring similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/dsring/data.dsring rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/data.dsring diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/dsring/in.dsring b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/in.dsring similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/dsring/in.dsring rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/in.dsring diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/dsring/log.2Jul21.dsring.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/log.2Jul21.dsring.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/dsring/log.2Jul21.dsring.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/log.2Jul21.dsring.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/dsring/log.2Jul21.dsring.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/log.2Jul21.dsring.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/dsring/log.2Jul21.dsring.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/dsring/log.2Jul21.dsring.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/data.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/data.duplex1 new file mode 100644 index 0000000000..54eb2beaf5 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file via write_data, version 27 May 2021 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-20 20 xlo xhi +-20 20 ylo yhi +-20 20 zlo zhi + +Masses + +1 3.1575 +2 3.1575 +3 3.1575 +4 3.1575 + +Atoms # hybrid + +1 1 -0.33741452300167507 -0.43708835412476305 0.6450685042019271 1 1 3.7269849963023267 0 0 0 +2 2 -0.32142606102826937 -0.7137743037592722 1.1817366147004618 1 1 3.7269849963023267 0 0 0 +3 3 -0.130363628207774 -0.9147144801536078 1.62581312195109 1 1 3.7269849963023267 0 0 0 +4 4 0.16795127962282844 -0.9808507459807022 2.0894908590909003 1 1 3.7269849963023267 0 0 0 +5 1 0.46370423490634166 -0.7803347954883079 2.4251986815515827 1 1 3.7269849963023267 0 0 0 +6 4 -0.4462950185476711 0.09062163051035639 2.4668941268777607 2 1 3.7269849963023267 0 0 0 +7 1 -0.03377054097560965 0.20979847489755046 2.078208732038921 2 1 3.7269849963023267 0 0 0 +8 2 0.3297325391466579 0.17657587120899895 1.7206328374934152 2 1 3.7269849963023267 0 0 0 +9 3 0.6063699309305985 0.04682595158675571 1.2335049647817748 2 1 3.7269849963023267 0 0 0 +10 4 0.8003979559814726 -0.364393011459011 0.9884025318908612 2 1 3.7269849963023267 0 0 0 + +Velocities + +1 0.320321385294804 -0.13632815939410442 -0.029398292452023418 0.3064009492028237 -0.15808560233691588 0.35878007201886397 +2 0.16868594667473025 -0.04950805613064363 0.15811007290373785 -0.07666583909321756 -0.0008074676325318194 -0.21475821019816385 +3 -0.22924557018300165 0.08381876748892438 -0.0919832851533896 0.4039387481683193 0.6123610642545824 -0.11063432848545783 +4 -0.22186204313310393 0.04952817499985707 -0.0693642101605732 -0.1358248430264938 0.4118493572385653 -0.056529305922687775 +5 0.08156431270087049 -0.2564594759800144 0.1724544416027875 0.05439894663158808 0.09338481510384318 0.3205408219238883 +6 0.03598698404367743 -0.04868642973674152 0.02860105256592922 0.04007709957283992 -0.317943400069374 0.36438025397586354 +7 -0.00822868972307372 0.047514932936351305 -0.027726409420297023 0.18356392696891796 -0.49877294396308003 0.06993313839189567 +8 -0.07177147672242379 0.1718272727853115 0.39056151182616994 -0.16728362538690794 -0.47839708820957955 -0.17897249005947627 +9 -0.1748638855727651 -0.0781638161351808 0.0560181565271157 -0.28062568580131014 0.2405396522734162 -0.4311598357169048 +10 0.18870318272756448 -0.1066780134639517 0.12610657946741227 -0.05740397100183697 0.36748833227892685 0.1498775724372025 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 1.173984503142341 1.173984503142341 1.173984503142341 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 1.173984503142341 1.173984503142341 1.173984503142341 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 1.173984503142341 1.173984503142341 1.173984503142341 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 1.173984503142341 1.173984503142341 1.173984503142341 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 1.173984503142341 1.173984503142341 1.173984503142341 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 1.173984503142341 1.173984503142341 1.173984503142341 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 1.173984503142341 1.173984503142341 1.173984503142341 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 1.173984503142341 1.173984503142341 1.173984503142341 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 1.173984503142341 1.173984503142341 1.173984503142341 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 1.173984503142341 1.173984503142341 1.173984503142341 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/in.duplex1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/in.duplex1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/in.duplex1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/log.2Jul21.duplex1.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex1/log.2Jul21.duplex1.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/data.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/data.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/data.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/in.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/in.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/in.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/log.2Jul21.duplex2.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex2/log.2Jul21.duplex2.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/data.duplex3 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/data.duplex3 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/data.duplex3 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/data.duplex3 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/in.duplex3 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/in.duplex3 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/in.duplex3 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/in.duplex3 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/log.2Jul21.duplex3.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/duplex3/log.2Jul21.duplex3.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/data.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/data.duplex1 new file mode 100644 index 0000000000..54eb2beaf5 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file via write_data, version 27 May 2021 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-20 20 xlo xhi +-20 20 ylo yhi +-20 20 zlo zhi + +Masses + +1 3.1575 +2 3.1575 +3 3.1575 +4 3.1575 + +Atoms # hybrid + +1 1 -0.33741452300167507 -0.43708835412476305 0.6450685042019271 1 1 3.7269849963023267 0 0 0 +2 2 -0.32142606102826937 -0.7137743037592722 1.1817366147004618 1 1 3.7269849963023267 0 0 0 +3 3 -0.130363628207774 -0.9147144801536078 1.62581312195109 1 1 3.7269849963023267 0 0 0 +4 4 0.16795127962282844 -0.9808507459807022 2.0894908590909003 1 1 3.7269849963023267 0 0 0 +5 1 0.46370423490634166 -0.7803347954883079 2.4251986815515827 1 1 3.7269849963023267 0 0 0 +6 4 -0.4462950185476711 0.09062163051035639 2.4668941268777607 2 1 3.7269849963023267 0 0 0 +7 1 -0.03377054097560965 0.20979847489755046 2.078208732038921 2 1 3.7269849963023267 0 0 0 +8 2 0.3297325391466579 0.17657587120899895 1.7206328374934152 2 1 3.7269849963023267 0 0 0 +9 3 0.6063699309305985 0.04682595158675571 1.2335049647817748 2 1 3.7269849963023267 0 0 0 +10 4 0.8003979559814726 -0.364393011459011 0.9884025318908612 2 1 3.7269849963023267 0 0 0 + +Velocities + +1 0.320321385294804 -0.13632815939410442 -0.029398292452023418 0.3064009492028237 -0.15808560233691588 0.35878007201886397 +2 0.16868594667473025 -0.04950805613064363 0.15811007290373785 -0.07666583909321756 -0.0008074676325318194 -0.21475821019816385 +3 -0.22924557018300165 0.08381876748892438 -0.0919832851533896 0.4039387481683193 0.6123610642545824 -0.11063432848545783 +4 -0.22186204313310393 0.04952817499985707 -0.0693642101605732 -0.1358248430264938 0.4118493572385653 -0.056529305922687775 +5 0.08156431270087049 -0.2564594759800144 0.1724544416027875 0.05439894663158808 0.09338481510384318 0.3205408219238883 +6 0.03598698404367743 -0.04868642973674152 0.02860105256592922 0.04007709957283992 -0.317943400069374 0.36438025397586354 +7 -0.00822868972307372 0.047514932936351305 -0.027726409420297023 0.18356392696891796 -0.49877294396308003 0.06993313839189567 +8 -0.07177147672242379 0.1718272727853115 0.39056151182616994 -0.16728362538690794 -0.47839708820957955 -0.17897249005947627 +9 -0.1748638855727651 -0.0781638161351808 0.0560181565271157 -0.28062568580131014 0.2405396522734162 -0.4311598357169048 +10 0.18870318272756448 -0.1066780134639517 0.12610657946741227 -0.05740397100183697 0.36748833227892685 0.1498775724372025 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 1.173984503142341 1.173984503142341 1.173984503142341 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 1.173984503142341 1.173984503142341 1.173984503142341 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 1.173984503142341 1.173984503142341 1.173984503142341 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 1.173984503142341 1.173984503142341 1.173984503142341 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 1.173984503142341 1.173984503142341 1.173984503142341 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 1.173984503142341 1.173984503142341 1.173984503142341 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 1.173984503142341 1.173984503142341 1.173984503142341 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 1.173984503142341 1.173984503142341 1.173984503142341 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 1.173984503142341 1.173984503142341 1.173984503142341 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 1.173984503142341 1.173984503142341 1.173984503142341 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 new file mode 100644 index 0000000000..80dc5cb1f5 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 @@ -0,0 +1,72 @@ +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 0.1 +variable rhos equal 0.2 + +units lj + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 1.0 + +# Pair interactions require lists of neighbours to be calculated +neighbor 2.0 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 3.1575 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * oxdna2.lj +special_bonds lj 0 1 1 + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv oxdna2.lj +pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj +pair_coeff * * oxdna2/hbond seqdep oxdna2.lj +pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj +pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj +pair_coeff * * oxdna2/xstk oxdna2.lj +pair_coeff * * oxdna2/coaxstk oxdna2.lj +pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2.lj + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 2.5 457145 angmom 10 + +timestep 1e-5 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 3.8 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..7d4a187390 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 @@ -0,0 +1,1120 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna2.lj with DATE: 2024-04-21 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (stk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (xstk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (coaxstk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (dh) file oxdna2.lj with DATE: 2024-04-21 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.3014979 + ghost atom cutoff = 4.3014979 + binsize = 2.150749, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +WARNING: Communication cutoff adjusted to 4.301497916929199 (src/comm.cpp:739) +0 ekin = 1.10853632272819 | erot = 2.81573649976629 | epot = -12.4543859162177 | etot = -8.53011309372317 +Per MPI rank memory allocation (min/avg/max) = 7.467 | 7.467 | 7.467 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.082113802 -1.3525648 0.10712616 -1.134585 -6.3346859e-05 64000 +1000 ekin = 1.07575988625876 | erot = 2.91276427031684 | epot = -12.5186372505575 | etot = -8.53011309398185 +2000 ekin = 1.05292961692331 | erot = 3.00631080619825 | epot = -12.5893535174382 | etot = -8.53011309431664 +3000 ekin = 1.0404793567822 | erot = 3.09099198685794 | epot = -12.6615844383056 | etot = -8.5301130946655 +4000 ekin = 1.03797149598187 | erot = 3.16182957406825 | epot = -12.7299141650203 | etot = -8.53011309497013 +5000 ekin = 1.04436175992637 | erot = 3.21484050133169 | epot = -12.7893153564536 | etot = -8.53011309519554 +6000 ekin = 1.058261961669 | erot = 3.24734130245542 | epot = -12.8357163594551 | etot = -8.53011309533065 +7000 ekin = 1.07813397987529 | erot = 3.25800057687377 | epot = -12.8662476521273 | etot = -8.5301130953782 +8000 ekin = 1.10242233608904 | erot = 3.2467735191286 | epot = -12.8793089505567 | etot = -8.53011309533902 +9000 ekin = 1.129661928832 | erot = 3.21481512313353 | epot = -12.8745901471786 | etot = -8.53011309521308 +10000 ekin = 1.1585736522661 | erot = 3.16442800302926 | epot = -12.8531147503057 | etot = -8.53011309501037 +11000 ekin = 1.18812580536523 | erot = 3.09887248462025 | epot = -12.8171113847418 | etot = -8.53011309475631 +12000 ekin = 1.21753508254996 | erot = 3.02200194393143 | epot = -12.769650120973 | etot = -8.53011309449156 +13000 ekin = 1.2462058323433 | erot = 2.9377430603182 | epot = -12.714061986917 | etot = -8.53011309425547 +14000 ekin = 1.27363535726518 | erot = 2.84960621277607 | epot = -12.6533546641222 | etot = -8.53011309408095 +15000 ekin = 1.29932429763742 | erot = 2.76035703495641 | epot = -12.5897944265541 | etot = -8.53011309396027 +16000 ekin = 1.32272478678523 | erot = 2.6720937631297 | epot = -12.524931643808 | etot = -8.53011309389307 +17000 ekin = 1.34324184048103 | erot = 2.58606256429308 | epot = -12.4594174987189 | etot = -8.53011309394479 +18000 ekin = 1.36028413036255 | erot = 2.50244725823279 | epot = -12.3928444826193 | etot = -8.53011309402401 +19000 ekin = 1.37335728231339 | erot = 2.42064483701932 | epot = -12.3241152134301 | etot = -8.53011309409738 +20000 ekin = 1.38218242867047 | erot = 2.34004763399705 | epot = -12.2523431568014 | etot = -8.53011309413387 +21000 ekin = 1.38682228720779 | erot = 2.26037911407475 | epot = -12.177314495392 | etot = -8.5301130941095 +22000 ekin = 1.38779551760397 | erot = 2.18193012018469 | epot = -12.0998387317994 | etot = -8.53011309401076 +23000 ekin = 1.38615925697244 | erot = 2.10566093427178 | epot = -12.0219332850808 | etot = -8.53011309383658 +24000 ekin = 1.38353970337949 | erot = 2.03315888827115 | epot = -11.9468116852494 | etot = -8.53011309359879 +25000 ekin = 1.38209065002972 | erot = 1.96646602495005 | epot = -11.878669768302 | etot = -8.53011309332227 +26000 ekin = 1.38436080324083 | erot = 1.90779815728269 | epot = -11.8222720535672 | etot = -8.53011309304368 +27000 ekin = 1.39305591970662 | erot = 1.85918805302253 | epot = -11.7823570655392 | etot = -8.53011309281007 +28000 ekin = 1.41069326836991 | erot = 1.82208843481178 | epot = -11.7628947958561 | etot = -8.53011309267439 +29000 ekin = 1.43917287732209 | erot = 1.79698086203697 | epot = -11.7662668320471 | etot = -8.53011309268808 +30000 ekin = 1.47932849918245 | erot = 1.78306055931658 | epot = -11.7925021513844 | etot = -8.53011309288539 +31000 ekin = 1.53057628219298 | erot = 1.77809666847709 | epot = -11.8387860439325 | etot = -8.53011309326246 +32000 ekin = 1.59082591350721 | erot = 1.77861870572279 | epot = -11.8995577129103 | etot = -8.53011309368031 +33000 ekin = 1.65668666319888 | erot = 1.78084924850009 | epot = -11.9676490059449 | etot = -8.5301130942459 +34000 ekin = 1.72400978324414 | erot = 1.78052778818395 | epot = -12.0346506661702 | etot = -8.53011309474212 +35000 ekin = 1.7886123825629 | erot = 1.77409588873529 | epot = -12.0928213663778 | etot = -8.53011309507956 +36000 ekin = 1.84692171859354 | erot = 1.75957152442153 | epot = -12.1366063382347 | etot = -8.53011309521964 +37000 ekin = 1.89635505211536 | erot = 1.73677582238486 | epot = -12.1632439696813 | etot = -8.53011309518103 +38000 ekin = 1.93537564106391 | erot = 1.70707948670454 | epot = -12.1725682227891 | etot = -8.53011309502064 +39000 ekin = 1.96330319937479 | erot = 1.6728321302729 | epot = -12.1662484244538 | etot = -8.53011309480614 +40000 ekin = 1.98002136738555 | erot = 1.63672123005991 | epot = -12.1468556920407 | etot = -8.53011309459527 +41000 ekin = 1.98570586801292 | erot = 1.60124465405442 | epot = -12.1170636164834 | etot = -8.53011309441608 +42000 ekin = 1.98063892667626 | erot = 1.56840871961079 | epot = -12.079160740572 | etot = -8.5301130942849 +43000 ekin = 1.96512381188785 | erot = 1.53942032547732 | epot = -12.0346572315593 | etot = -8.53011309419408 +44000 ekin = 1.93948381096135 | erot = 1.51506739642158 | epot = -11.984664301514 | etot = -8.53011309413104 +45000 ekin = 1.90411789628636 | erot = 1.49583019895571 | epot = -11.930061189321 | etot = -8.5301130940789 +46000 ekin = 1.85959054249402 | erot = 1.48193663738997 | epot = -11.8716402739046 | etot = -8.53011309402065 +47000 ekin = 1.80673127931967 | erot = 1.47351008731115 | epot = -11.8103544605731 | etot = -8.53011309394226 +48000 ekin = 1.74672194665333 | erot = 1.47069179369331 | epot = -11.7475268341802 | etot = -8.53011309383356 +49000 ekin = 1.681153790432 | erot = 1.47372603796066 | epot = -11.6849929220833 | etot = -8.53011309369066 +50000 ekin = 1.61204360764113 | erot = 1.48300481815587 | epot = -11.6251615193115 | etot = -8.53011309351451 +51000 ekin = 1.54180688827886 | erot = 1.49907572686268 | epot = -11.5709957084487 | etot = -8.53011309330713 +52000 ekin = 1.47319223880804 | erot = 1.52262764796927 | epot = -11.5259329798625 | etot = -8.53011309308518 +53000 ekin = 1.40918336186017 | erot = 1.55438319093874 | epot = -11.4936796456586 | etot = -8.53011309285965 +54000 ekin = 1.35286923285663 | erot = 1.59499333649053 | epot = -11.4779756619988 | etot = -8.53011309265166 +55000 ekin = 1.3072761010404 | erot = 1.64486884964686 | epot = -11.4822580431747 | etot = -8.53011309248741 +56000 ekin = 1.2751604136272 | erot = 1.70395929448973 | epot = -11.509232800514 | etot = -8.53011309239707 +57000 ekin = 1.25877821290722 | erot = 1.77153045261034 | epot = -11.5604217579235 | etot = -8.53011309240593 +58000 ekin = 1.25966981557396 | erot = 1.84600740239507 | epot = -11.6357903104947 | etot = -8.53011309252566 +59000 ekin = 1.27850991703401 | erot = 1.92494493442932 | epot = -11.7335679442149 | etot = -8.53011309275159 +60000 ekin = 1.31505846517354 | erot = 2.00506933713746 | epot = -11.8502408954026 | etot = -8.53011309309164 +61000 ekin = 1.36820967857684 | erot = 2.08251311350662 | epot = -11.9808358855456 | etot = -8.53011309346211 +62000 ekin = 1.43610935375693 | erot = 2.15340897405314 | epot = -12.1196314216668 | etot = -8.5301130938567 +63000 ekin = 1.51630533152245 | erot = 2.2141008432564 | epot = -12.2605192690214 | etot = -8.53011309424256 +64000 ekin = 1.60588594281051 | erot = 2.26150680600727 | epot = -12.3975058434118 | etot = -8.53011309459399 +65000 ekin = 1.70157559823965 | erot = 2.29343173619353 | epot = -12.5251204293296 | etot = -8.53011309489646 +66000 ekin = 1.79977612979946 | erot = 2.3087594351045 | epot = -12.6386486600531 | etot = -8.53011309514917 +67000 ekin = 1.89656896474264 | erot = 2.30747600160479 | epot = -12.7341580617102 | etot = -8.53011309536274 +68000 ekin = 1.98772340358698 | erot = 2.29052837543627 | epot = -12.8083648745724 | etot = -8.53011309554913 +69000 ekin = 2.06877558194363 | erot = 2.25958722526848 | epot = -12.8584759029224 | etot = -8.53011309571026 +70000 ekin = 2.13523440531619 | erot = 2.21681911735293 | epot = -12.8821666185007 | etot = -8.53011309583153 +71000 ekin = 2.18292944014516 | erot = 2.16475080910303 | epot = -12.8777933451316 | etot = -8.53011309588342 +72000 ekin = 2.20845503567845 | erot = 2.10623867450836 | epot = -12.8448068060206 | etot = -8.53011309583374 +73000 ekin = 2.20961374982505 | erot = 2.04448327477864 | epot = -12.784210120232 | etot = -8.53011309562831 +74000 ekin = 2.18583088959709 | erot = 1.98307376954797 | epot = -12.6990177544748 | etot = -8.53011309532969 +75000 ekin = 2.13819357127786 | erot = 1.92577296068263 | epot = -12.5940796268929 | etot = -8.53011309493236 +76000 ekin = 2.06931387379192 | erot = 1.87621391736368 | epot = -12.4756408856272 | etot = -8.53011309447156 +77000 ekin = 1.9831459935215 | erot = 1.83766509006144 | epot = -12.3509241775703 | etot = -8.53011309398734 +78000 ekin = 1.88464003549136 | erot = 1.81276644965514 | epot = -12.2275195786651 | etot = -8.53011309351862 +79000 ekin = 1.77934330540969 | erot = 1.80331865972863 | epot = -12.1127750582401 | etot = -8.53011309310181 +80000 ekin = 1.67297594037631 | erot = 1.81012474896281 | epot = -12.0132137821111 | etot = -8.530113092772 +81000 ekin = 1.57099416873045 | erot = 1.8328690442996 | epot = -11.9339763055923 | etot = -8.53011309256227 +82000 ekin = 1.47816348110906 | erot = 1.87002999045995 | epot = -11.8783065640684 | etot = -8.53011309249942 +83000 ekin = 1.398187784623 | erot = 1.91885160298036 | epot = -11.8471524801993 | etot = -8.5301130925959 +84000 ekin = 1.3334581452956 | erot = 1.97542175599055 | epot = -11.8389929941294 | etot = -8.53011309284326 +85000 ekin = 1.28497532516075 | erot = 2.0349061774483 | epot = -11.8499945958141 | etot = -8.530113093205 +86000 ekin = 1.25246025395582 | erot = 2.09197660059406 | epot = -11.8745499481781 | etot = -8.53011309362821 +87000 ekin = 1.23461285408012 | erot = 2.14137296784411 | epot = -11.9060989159744 | etot = -8.53011309405018 +88000 ekin = 1.22943812073932 | erot = 2.17852719424197 | epot = -11.9380784093963 | etot = -8.53011309441497 +89000 ekin = 1.23455364871357 | erot = 2.20012041252108 | epot = -11.9647871559195 | etot = -8.53011309468488 +90000 ekin = 1.247425805765 | erot = 2.20445455177206 | epot = -11.9819934523813 | etot = -8.53011309484426 +91000 ekin = 1.265533830847 | erot = 2.19157144961211 | epot = -11.9872183753549 | etot = -8.53011309489578 +92000 ekin = 1.28623000858103 | erot = 2.16295140457794 | epot = -11.9792945080807 | etot = -8.53011309492174 +93000 ekin = 1.30692364344383 | erot = 2.12123926047786 | epot = -11.9582759987369 | etot = -8.5301130948152 +94000 ekin = 1.32581527393273 | erot = 2.07018243043928 | epot = -11.9261107990066 | etot = -8.53011309463457 +95000 ekin = 1.34182901778834 | erot = 2.01402433128801 | epot = -11.8859664434698 | etot = -8.53011309439347 +96000 ekin = 1.35474622264798 | erot = 1.95709566330722 | epot = -11.8419549800687 | etot = -8.53011309411347 +97000 ekin = 1.36518588247822 | erot = 1.90343342927418 | epot = -11.7987324055815 | etot = -8.53011309382905 +98000 ekin = 1.37438024241765 | erot = 1.85642234303645 | epot = -11.7609156790417 | etot = -8.53011309358764 +99000 ekin = 1.38375494732475 | erot = 1.81846000225616 | epot = -11.7323280430252 | etot = -8.53011309344426 +100000 ekin = 1.39439154293898 | erot = 1.79066261133391 | epot = -11.715167247719 | etot = -8.53011309344614 +101000 ekin = 1.40650610053404 | erot = 1.77268374626497 | epot = -11.7093029404209 | etot = -8.53011309362194 +102000 ekin = 1.41909865539682 | erot = 1.76268825953969 | epot = -11.7119000089018 | etot = -8.53011309396524 +103000 ekin = 1.42990225853186 | erot = 1.75756086568116 | epot = -11.7175762186402 | etot = -8.53011309442723 +104000 ekin = 1.43568960458615 | erot = 1.75339758186002 | epot = -11.7192002813656 | etot = -8.53011309491945 +105000 ekin = 1.43290883108516 | erot = 1.74626770102832 | epot = -11.7092896274385 | etot = -8.530113095325 +106000 ekin = 1.41854295074815 | erot = 1.73316545657386 | epot = -11.6818215028412 | etot = -8.53011309551917 +107000 ekin = 1.39103174229079 | erot = 1.71299001598405 | epot = -11.6341348536725 | etot = -8.53011309539768 +108000 ekin = 1.35105252774001 | erot = 1.68731521419139 | epot = -11.5684808368427 | etot = -8.53011309491129 +109000 ekin = 1.30192293440573 | erot = 1.66066055824567 | epot = -11.4926965867505 | etot = -8.53011309409914 +110000 ekin = 1.24955692632171 | erot = 1.64004235665915 | epot = -11.4197123754604 | etot = -8.53011309247958 +111000 ekin = 1.20373683101899 | erot = 1.634056606309 | epot = -11.367906529011 | etot = -8.53011309168306 +112000 ekin = 1.17136800050139 | erot = 1.64951573593171 | epot = -11.3509968276174 | etot = -8.53011309118433 +113000 ekin = 1.1564373725265 | erot = 1.69002000568969 | epot = -11.3765704693516 | etot = -8.53011309113541 +114000 ekin = 1.1601666491979 | erot = 1.75506593403395 | epot = -11.4453456747906 | etot = -8.53011309155874 +115000 ekin = 1.18078581898495 | erot = 1.83995213492442 | epot = -11.5508510462439 | etot = -8.53011309233455 +116000 ekin = 1.21421955357384 | erot = 1.93685465219997 | epot = -11.6811872990251 | etot = -8.53011309325133 +117000 ekin = 1.25536144135748 | erot = 2.03668558524402 | epot = -11.8221601206889 | etot = -8.53011309408735 +118000 ekin = 1.29940451384013 | erot = 2.13109010342768 | epot = -11.9606077119492 | etot = -8.5301130946814 +119000 ekin = 1.342774776846 | erot = 2.21397393951699 | epot = -12.0868618113322 | etot = -8.53011309496919 +120000 ekin = 1.38347061820549 | erot = 2.28221236483861 | epot = -12.195796078024 | etot = -8.53011309497985 +121000 ekin = 1.42087086651048 | erot = 2.33551129662523 | epot = -12.2864952579391 | etot = -8.53011309480344 +122000 ekin = 1.4552263897788 | erot = 2.3756429290616 | epot = -12.3609824133927 | etot = -8.53011309455232 +123000 ekin = 1.4870758266584 | erot = 2.40539124222141 | epot = -12.4225801632077 | etot = -8.53011309432789 +124000 ekin = 1.51676676843718 | erot = 2.42751903858622 | epot = -12.4743989012248 | etot = -8.5301130942014 +125000 ekin = 1.54417459772326 | erot = 2.44396324559694 | epot = -12.5182509375273 | etot = -8.53011309420714 +126000 ekin = 1.56863810035605 | erot = 2.4553511272518 | epot = -12.5541023219522 | etot = -8.53011309434435 +127000 ekin = 1.58908101361901 | erot = 2.4608536627413 | epot = -12.5800477709425 | etot = -8.53011309458218 +128000 ekin = 1.6042708388842 | erot = 2.45836168530056 | epot = -12.5927456190491 | etot = -8.53011309486435 +129000 ekin = 1.61315658291869 | erot = 2.44495811201806 | epot = -12.5882277900549 | etot = -8.53011309511816 +130000 ekin = 1.61521763497857 | erot = 2.4176285931953 | epot = -12.5629593234409 | etot = -8.53011309526708 +131000 ekin = 1.61074673258805 | erot = 2.37408565093652 | epot = -12.5149454787753 | etot = -8.53011309525076 +132000 ekin = 1.60099281445321 | erot = 2.31350559905906 | epot = -12.4446115085553 | etot = -8.53011309504302 +133000 ekin = 1.58811839137735 | erot = 2.23695676757674 | epot = -12.3551882536157 | etot = -8.53011309466161 +134000 ekin = 1.57497837856358 | erot = 2.1473790715212 | epot = -12.252470544281 | etot = -8.53011309419617 +135000 ekin = 1.56467799512159 | erot = 2.04902291672221 | epot = -12.1438140054843 | etot = -8.53011309364047 +136000 ekin = 1.56033306064837 | erot = 1.94701578012998 | epot = -12.0374619338905 | etot = -8.53011309311218 +137000 ekin = 1.56479379508625 | erot = 1.84660873227816 | epot = -11.9415156200312 | etot = -8.53011309266677 +138000 ekin = 1.58030314703432 | erot = 1.75245153796743 | epot = -11.8628677773359 | etot = -8.53011309233418 +139000 ekin = 1.60833080358451 | erot = 1.6682660913931 | epot = -11.8067099870999 | etot = -8.53011309212233 +140000 ekin = 1.64949521723192 | erot = 1.59676588041006 | epot = -11.7763741896652 | etot = -8.53011309202317 +141000 ekin = 1.70355355174859 | erot = 1.53975804779895 | epot = -11.7734246915232 | etot = -8.53011309197561 +142000 ekin = 1.76943720118442 | erot = 1.49859523121387 | epot = -11.7981455244592 | etot = -8.5301130920609 +143000 ekin = 1.84530405880862 | erot = 1.47384945852753 | epot = -11.8492666095588 | etot = -8.53011309222263 +144000 ekin = 1.92861465369001 | erot = 1.46549379274654 | epot = -11.9242215388116 | etot = -8.53011309237502 +145000 ekin = 2.01648600784352 | erot = 1.47353305209478 | epot = -12.0201321527194 | etot = -8.5301130927811 +146000 ekin = 2.10458212275704 | erot = 1.49637875129038 | epot = -12.1310739673154 | etot = -8.53011309326793 +147000 ekin = 2.18785677137349 | erot = 1.5314591984994 | epot = -12.2494290636989 | etot = -8.53011309382603 +148000 ekin = 2.26104758516561 | erot = 1.57543986096036 | epot = -12.3666005405508 | etot = -8.53011309442483 +149000 ekin = 2.31910091716379 | erot = 1.62430319702598 | epot = -12.4735172091961 | etot = -8.5301130950063 +150000 ekin = 2.35773821658445 | erot = 1.67365853244669 | epot = -12.5615098445252 | etot = -8.53011309549403 +151000 ekin = 2.37405078100302 | erot = 1.7192672632974 | epot = -12.6234311401175 | etot = -8.53011309581711 +152000 ekin = 2.36692545461634 | erot = 1.75764773901451 | epot = -12.6546862895679 | etot = -8.53011309593708 +153000 ekin = 2.33712749183089 | erot = 1.78656744402825 | epot = -12.6538080317178 | etot = -8.53011309585864 +154000 ekin = 2.28703010669271 | erot = 1.80529001826454 | epot = -12.6224332205718 | etot = -8.53011309561459 +155000 ekin = 2.22017210957738 | erot = 1.81456905274742 | epot = -12.5648542575675 | etot = -8.53011309524267 +156000 ekin = 2.1408721665017 | erot = 1.81646017186521 | epot = -12.4874454331416 | etot = -8.53011309477465 +157000 ekin = 2.05398632051146 | erot = 1.81400844427825 | epot = -12.3981078590399 | etot = -8.53011309425016 +158000 ekin = 1.96465269026301 | erot = 1.81075171604371 | epot = -12.305517500103 | etot = -8.53011309379623 +159000 ekin = 1.87738211880319 | erot = 1.80975809034341 | epot = -12.2172533025062 | etot = -8.53011309335963 +160000 ekin = 1.79637755657175 | erot = 1.81368342474274 | epot = -12.1401740743796 | etot = -8.53011309306516 +161000 ekin = 1.72479660822492 | erot = 1.82417298786657 | epot = -12.0790826890673 | etot = -8.53011309297584 +162000 ekin = 1.66403255347616 | erot = 1.84141406703866 | epot = -12.0355597136254 | etot = -8.53011309311057 +163000 ekin = 1.61344211817627 | erot = 1.86416684407897 | epot = -12.0077220556812 | etot = -8.53011309342599 +164000 ekin = 1.57053136480639 | erot = 1.89024538669855 | epot = -11.990889845331 | etot = -8.53011309382611 +165000 ekin = 1.53158684055262 | erot = 1.91735211282816 | epot = -11.9790520475667 | etot = -8.53011309418588 +166000 ekin = 1.49257533008373 | erot = 1.94405290672945 | epot = -11.9667413312082 | etot = -8.53011309439505 +167000 ekin = 1.45004739614814 | erot = 1.9705428218327 | epot = -11.9507033123727 | etot = -8.53011309439191 +168000 ekin = 1.40180339426578 | erot = 1.99893184094575 | epot = -11.9308483293895 | etot = -8.53011309417795 +169000 ekin = 1.34719230179007 | erot = 2.03295603374789 | epot = -11.9102614293485 | etot = -8.53011309381054 +170000 ekin = 1.28704969495272 | erot = 2.07721655562314 | epot = -11.8943793439504 | etot = -8.53011309337457 +171000 ekin = 1.22340120606629 | erot = 2.13620458401901 | epot = -11.8897188830155 | etot = -8.53011309293021 +172000 ekin = 1.15916399135854 | erot = 2.21333149138595 | epot = -11.9026085753701 | etot = -8.5301130926256 +173000 ekin = 1.09731722457336 | erot = 2.31014635554186 | epot = -11.9375766725986 | etot = -8.53011309248333 +174000 ekin = 1.04063961884127 | erot = 2.42581098119803 | epot = -11.9965636925781 | etot = -8.53011309253885 +175000 ekin = 0.991434959332988 | erot = 2.55687374585407 | epot = -12.0784217979906 | etot = -8.53011309280354 +176000 ekin = 0.951286219743537 | erot = 2.69734247997581 | epot = -12.1787417929831 | etot = -8.53011309326378 +177000 ekin = 0.920906931255968 | erot = 2.83907560795418 | epot = -12.2900956330861 | etot = -8.530113093876 +178000 ekin = 0.900110889875814 | erot = 2.97251922257665 | epot = -12.4027432070179 | etot = -8.53011309456542 +179000 ekin = 0.887921283965376 | erot = 3.08778217993959 | epot = -12.5058165591358 | etot = -8.53011309523079 +180000 ekin = 0.882819894460815 | erot = 3.17595008457009 | epot = -12.5888830747921 | etot = -8.53011309576116 +181000 ekin = 0.883094662246449 | erot = 3.23041576817405 | epot = -12.6436235264849 | etot = -8.53011309606437 +182000 ekin = 0.887197266497044 | erot = 3.24791323274169 | epot = -12.6652235953324 | etot = -8.53011309609369 +183000 ekin = 0.894005517566804 | erot = 3.22896613968051 | epot = -12.6530847531087 | etot = -8.53011309586139 +184000 ekin = 0.902922567053578 | erot = 3.17763362003998 | epot = -12.610669282523 | etot = -8.53011309542945 +185000 ekin = 0.913819897430199 | erot = 3.10068233612809 | epot = -12.5446153284403 | etot = -8.53011309488204 +186000 ekin = 0.926892274386944 | erot = 3.00648382594885 | epot = -12.4634891947413 | etot = -8.53011309440549 +187000 ekin = 0.942359343467903 | erot = 2.90341264008055 | epot = -12.3758850774298 | etot = -8.53011309388138 +188000 ekin = 0.960415128419174 | erot = 2.7995023321508 | epot = -12.2900305539847 | etot = -8.53011309341473 +189000 ekin = 0.981336580896324 | erot = 2.702219690544 | epot = -12.2136693644689 | etot = -8.53011309302854 +190000 ekin = 1.00543372733298 | erot = 2.61771835557185 | epot = -12.1532651756636 | etot = -8.53011309275873 +191000 ekin = 1.03305642669588 | erot = 2.55042331784814 | epot = -12.1135928371337 | etot = -8.53011309258972 +192000 ekin = 1.06458819978575 | erot = 2.502951492612 | epot = -12.0976527849401 | etot = -8.53011309254235 +193000 ekin = 1.10043008600686 | erot = 2.4759146106301 | epot = -12.1064577892569 | etot = -8.53011309261996 +194000 ekin = 1.14095348227996 | erot = 2.46790659075146 | epot = -12.1389731658498 | etot = -8.53011309281836 +195000 ekin = 1.18642396462085 | erot = 2.47566002440274 | epot = -12.1921970821463 | etot = -8.53011309312271 +196000 ekin = 1.2369145605392 | erot = 2.49438862695288 | epot = -12.2614162809965 | etot = -8.53011309350438 +197000 ekin = 1.29223924615382 | erot = 2.51832160491041 | epot = -12.3406739449846 | etot = -8.53011309392038 +198000 ekin = 1.35193471466299 | erot = 2.54139178285267 | epot = -12.4234395918359 | etot = -8.53011309432024 +199000 ekin = 1.41529957065347 | erot = 2.55798242673134 | epot = -12.5033950920399 | etot = -8.53011309465512 +200000 ekin = 1.481473900578 | erot = 2.56359779441153 | epot = -12.5751847898788 | etot = -8.53011309488927 +201000 ekin = 1.54952685169028 | erot = 2.55533485734996 | epot = -12.6349748040457 | etot = -8.53011309500544 +202000 ekin = 1.61852368373095 | erot = 2.53209551772288 | epot = -12.6807322964589 | etot = -8.53011309500508 +203000 ekin = 1.68755981245379 | erot = 2.49462961612359 | epot = -12.7123025234438 | etot = -8.53011309486638 +204000 ekin = 1.75576103234987 | erot = 2.44539440890692 | epot = -12.7312685359473 | etot = -8.53011309469053 +205000 ekin = 1.82226727517107 | erot = 2.38780081716033 | epot = -12.7401811867913 | etot = -8.53011309445995 +206000 ekin = 1.88619984147264 | erot = 2.32611076719096 | epot = -12.7424237028677 | etot = -8.53011309420411 +207000 ekin = 1.94660231588624 | erot = 2.26504166017975 | epot = -12.7417570700272 | etot = -8.5301130939612 +208000 ekin = 2.00235042264584 | erot = 2.20925458967812 | epot = -12.7417181061045 | etot = -8.5301130937805 +209000 ekin = 2.05203134834761 | erot = 2.16271925047937 | epot = -12.7448636925487 | etot = -8.53011309372176 +210000 ekin = 2.09381524344858 | erot = 2.12796343491006 | epot = -12.7518917722037 | etot = -8.53011309384504 +211000 ekin = 2.12537929046187 | erot = 2.10530160183663 | epot = -12.760793986487 | etot = -8.53011309418849 +212000 ekin = 2.14398845109537 | erot = 2.09226506761566 | epot = -12.7663666134465 | etot = -8.53011309473546 +213000 ekin = 2.14685083920782 | erot = 2.08357075606551 | epot = -12.7605346906603 | etot = -8.530113095387 +214000 ekin = 2.1317793355869 | erot = 2.07198437940519 | epot = -12.7338768105377 | etot = -8.53011309554561 +215000 ekin = 2.09740576159844 | erot = 2.05243678649467 | epot = -12.6799556440651 | etot = -8.53011309597196 +216000 ekin = 2.04414786569907 | erot = 2.01980811255998 | epot = -12.5940690742957 | etot = -8.53011309603668 +217000 ekin = 1.97496281847612 | erot = 1.97035714827555 | epot = -12.4754330625051 | etot = -8.53011309575345 +218000 ekin = 1.8948373238438 | erot = 1.90369037051482 | epot = -12.3286407894934 | etot = -8.53011309513472 +219000 ekin = 1.81041467830664 | erot = 1.82278463149711 | epot = -12.1633124040823 | etot = -8.5301130942786 +220000 ekin = 1.72938454080915 | erot = 1.73330150874472 | epot = -11.9927991427904 | etot = -8.53011309323654 +221000 ekin = 1.65959820381305 | erot = 1.64273176790434 | epot = -11.8324430640329 | etot = -8.53011309231554 +222000 ekin = 1.60845034453789 | erot = 1.55815968235264 | epot = -11.6967231184019 | etot = -8.53011309151133 +223000 ekin = 1.58228239188915 | erot = 1.48580466478771 | epot = -11.5982001475875 | etot = -8.53011309091067 +224000 ekin = 1.5856976551694 | erot = 1.43046423809878 | epot = -11.5462749838454 | etot = -8.5301130905772 +225000 ekin = 1.62100953317662 | erot = 1.39504063224572 | epot = -11.5461632559814 | etot = -8.53011309055906 +226000 ekin = 1.68783126437479 | erot = 1.38020176396467 | epot = -11.5981461192339 | etot = -8.53011309089441 +227000 ekin = 1.78271150290518 | erot = 1.38413372943446 | epot = -11.6969583246211 | etot = -8.53011309228148 +228000 ekin = 1.89495289262362 | erot = 1.40258789217287 | epot = -11.8276538782981 | etot = -8.53011309350161 +229000 ekin = 2.01170607721849 | erot = 1.42820655801896 | epot = -11.9700257301876 | etot = -8.53011309495016 +230000 ekin = 2.11989887159659 | erot = 1.4523540971715 | epot = -12.1023660650346 | etot = -8.53011309626653 +231000 ekin = 2.20759782077804 | erot = 1.46730876356808 | epot = -12.2050196815073 | etot = -8.53011309716122 +232000 ekin = 2.26562589153242 | erot = 1.46886009000392 | epot = -12.2645990789947 | etot = -8.53011309745836 +233000 ekin = 2.28822506975746 | erot = 1.45787535434379 | epot = -12.2762135212095 | etot = -8.53011309710823 +234000 ekin = 2.27464524977865 | erot = 1.43990370669335 | epot = -12.2446620527941 | etot = -8.53011309632208 +235000 ekin = 2.22825507530892 | erot = 1.42328017859116 | epot = -12.1816483492739 | etot = -8.53011309537382 +236000 ekin = 2.15494106311511 | erot = 1.41661045699289 | epot = -12.1016646145796 | etot = -8.53011309447159 +237000 ekin = 2.06197124561426 | erot = 1.42677729192205 | epot = -12.0188616312522 | etot = -8.53011309371585 +238000 ekin = 1.95733575736116 | erot = 1.45790014382963 | epot = -11.9453489943268 | etot = -8.53011309313597 +239000 ekin = 1.84937348817275 | erot = 1.51100787616932 | epot = -11.8904944570919 | etot = -8.53011309274985 +240000 ekin = 1.74634948667573 | erot = 1.58401675949076 | epot = -11.8604793387578 | etot = -8.53011309259134 +241000 ekin = 1.65579840431705 | erot = 1.67182932722843 | epot = -11.8577408242433 | etot = -8.53011309269777 +242000 ekin = 1.58370704114946 | erot = 1.76665328809221 | epot = -11.8804734223153 | etot = -8.53011309307363 +243000 ekin = 1.53379082409438 | erot = 1.85876363932185 | epot = -11.9226675570786 | etot = -8.53011309366237 +244000 ekin = 1.50713311675996 | erot = 1.93781479613261 | epot = -11.9750610072396 | etot = -8.53011309434702 +245000 ekin = 1.50232523408853 | erot = 1.99453085491372 | epot = -12.0269691839801 | etot = -8.53011309497784 +246000 ekin = 1.51606904510282 | erot = 2.02239007086936 | epot = -12.0685722113878 | etot = -8.53011309541565 +247000 ekin = 1.54406668998835 | erot = 2.01887471172768 | epot = -12.0930544972697 | etot = -8.53011309555362 +248000 ekin = 1.58197270416977 | erot = 1.9860852549186 | epot = -12.0981710544434 | etot = -8.53011309535498 +249000 ekin = 1.62609171467958 | erot = 1.93029875238694 | epot = -12.0865035619571 | etot = -8.53011309489059 +250000 ekin = 1.67387536281809 | erot = 1.86081409573892 | epot = -12.0648025528069 | etot = -8.53011309424987 +251000 ekin = 1.72391096985858 | erot = 1.78844826295717 | epot = -12.0424723264225 | etot = -8.5301130936067 +252000 ekin = 1.7753819071169 | erot = 1.7236719123789 | epot = -12.0291669125776 | etot = -8.53011309308178 +253000 ekin = 1.82754829280947 | erot = 1.67492092834063 | epot = -12.0325823139111 | etot = -8.53011309276105 +254000 ekin = 1.87961881561723 | erot = 1.64770020961713 | epot = -12.0574321179074 | etot = -8.53011309267301 +255000 ekin = 1.93045785731808 | erot = 1.64434942869014 | epot = -12.1049203788171 | etot = -8.5301130928089 +256000 ekin = 1.97849877464051 | erot = 1.66421751998761 | epot = -12.1728293877676 | etot = -8.53011309313951 +257000 ekin = 2.0217566179138 | erot = 1.70407398948232 | epot = -12.2559437010212 | etot = -8.53011309362509 +258000 ekin = 2.05791961396887 | erot = 1.75862748975153 | epot = -12.3466601979401 | etot = -8.53011309421969 +259000 ekin = 2.08450645969242 | erot = 1.82109836581008 | epot = -12.4357179203749 | etot = -8.53011309487241 +260000 ekin = 2.09907285067837 | erot = 1.88382726111915 | epot = -12.5130132073275 | etot = -8.53011309552994 +261000 ekin = 2.09944572596161 | erot = 1.93893768787249 | epot = -12.5684965099611 | etot = -8.53011309612699 +262000 ekin = 2.08396569038711 | erot = 1.97908462797729 | epot = -12.5931634149734 | etot = -8.53011309660901 +263000 ekin = 2.05172676882021 | erot = 1.9982090888738 | epot = -12.580048954553 | etot = -8.53011309685898 +264000 ekin = 2.00296719649569 | erot = 1.9928343917862 | epot = -12.5259146850348 | etot = -8.53011309675296 +265000 ekin = 1.93948872899132 | erot = 1.96339266268781 | epot = -12.4329944878833 | etot = -8.53011309620415 +266000 ekin = 1.86494390143915 | erot = 1.91505343003299 | epot = -12.3101104266354 | etot = -8.53011309516322 +267000 ekin = 1.78505719746833 | erot = 1.85721593585793 | epot = -12.1723862273132 | etot = -8.53011309398698 +268000 ekin = 1.70605852586669 | erot = 1.80175587067256 | epot = -12.0379274893394 | etot = -8.53011309280011 +269000 ekin = 1.63387234043008 | erot = 1.76055577812986 | epot = -11.9245412104251 | etot = -8.53011309186521 +270000 ekin = 1.57342106955824 | erot = 1.74281009478432 | epot = -11.8463442556698 | etot = -8.53011309132727 +271000 ekin = 1.52797485202415 | erot = 1.75341085935497 | epot = -11.8114988026157 | etot = -8.53011309123661 +272000 ekin = 1.49894876525735 | erot = 1.79234603399532 | epot = -11.8214078908094 | etot = -8.53011309155678 +273000 ekin = 1.48604758198122 | erot = 1.85507402496715 | epot = -11.8712346991386 | etot = -8.5301130921902 +274000 ekin = 1.48766345157073 | erot = 1.93349346053598 | epot = -11.9512700051694 | etot = -8.53011309306265 +275000 ekin = 1.50135017863795 | erot = 2.01723774122155 | epot = -12.0487010137587 | etot = -8.5301130938992 +276000 ekin = 1.52425343307295 | erot = 2.09653669779255 | epot = -12.1509032254467 | etot = -8.53011309458124 +277000 ekin = 1.55417046599777 | erot = 2.16339336358524 | epot = -12.2476769246678 | etot = -8.53011309508482 +278000 ekin = 1.58883002210858 | erot = 2.21269572879347 | epot = -12.3316388462086 | etot = -8.53011309530658 +279000 ekin = 1.62657848626996 | erot = 2.24273575291771 | epot = -12.3994273344821 | etot = -8.53011309529447 +280000 ekin = 1.6662646237581 | erot = 2.25488508621539 | epot = -12.4512628051112 | etot = -8.53011309513769 +281000 ekin = 1.70666329888322 | erot = 2.2528781375611 | epot = -12.4896545313672 | etot = -8.5301130949229 +282000 ekin = 1.74606224489442 | erot = 2.24193390477342 | epot = -12.5181092443714 | etot = -8.53011309470351 +283000 ekin = 1.78229604375783 | erot = 2.22773335199481 | epot = -12.5401424902721 | etot = -8.53011309451947 +284000 ekin = 1.81303392681889 | erot = 2.21528431693992 | epot = -12.5584313381479 | etot = -8.53011309438912 +285000 ekin = 1.83626784551359 | erot = 2.20859920573473 | epot = -12.5749801456019 | etot = -8.53011309435358 +286000 ekin = 1.85056798130881 | erot = 2.20962029353652 | epot = -12.5903013692877 | etot = -8.53011309444239 +287000 ekin = 1.8550635304434 | erot = 2.21784540833844 | epot = -12.6030220334124 | etot = -8.53011309463059 +288000 ekin = 1.8494233981353 | erot = 2.23075201933167 | epot = -12.6102885123078 | etot = -8.53011309484083 +289000 ekin = 1.8339088801736 | erot = 2.24488012942888 | epot = -12.6089021045818 | etot = -8.53011309497935 +290000 ekin = 1.80943255390652 | erot = 2.2572237152992 | epot = -12.5967693641603 | etot = -8.53011309495454 +291000 ekin = 1.77754353319109 | erot = 2.26619423186307 | epot = -12.57385085985 | etot = -8.53011309479584 +292000 ekin = 1.74029196122666 | erot = 2.27170357096951 | epot = -12.5421086267524 | etot = -8.5301130945562 +293000 ekin = 1.6999754354036 | erot = 2.27474290666544 | epot = -12.5048314363832 | etot = -8.53011309431417 +294000 ekin = 1.65879913990678 | erot = 2.27646633894027 | epot = -12.4653785730009 | etot = -8.53011309415386 +295000 ekin = 1.61857194087987 | erot = 2.27728965532028 | epot = -12.4259746903009 | etot = -8.53011309410079 +296000 ekin = 1.58063856927617 | erot = 2.27661684716244 | epot = -12.387368510527 | etot = -8.5301130940884 +297000 ekin = 1.54603085638124 | erot = 2.27331893745141 | epot = -12.3494628879054 | etot = -8.53011309407273 +298000 ekin = 1.51552933019762 | erot = 2.26654381109844 | epot = -12.3121862352837 | etot = -8.53011309398763 +299000 ekin = 1.48978666564629 | erot = 2.25633296635495 | epot = -12.2762327258636 | etot = -8.53011309386239 +300000 ekin = 1.46918272389791 | erot = 2.24345468614642 | epot = -12.242750503802 | etot = -8.53011309375768 +301000 ekin = 1.45354278560875 | erot = 2.22882911340882 | epot = -12.2124849927865 | etot = -8.5301130937689 +302000 ekin = 1.44183301629794 | erot = 2.21276714678519 | epot = -12.1847132569687 | etot = -8.53011309388561 +303000 ekin = 1.43225770121122 | erot = 2.19458092752688 | epot = -12.1569517228355 | etot = -8.53011309409737 +304000 ekin = 1.42259637356991 | erot = 2.17276750288897 | epot = -12.1254769707815 | etot = -8.53011309432262 +305000 ekin = 1.41064586326832 | erot = 2.14566468388069 | epot = -12.0864236416132 | etot = -8.5301130944642 +306000 ekin = 1.39473877107246 | erot = 2.11230934515816 | epot = -12.0371612106968 | etot = -8.53011309446616 +307000 ekin = 1.3740115615447 | erot = 2.07305527676066 | epot = -11.9771799326147 | etot = -8.53011309430936 +308000 ekin = 1.3485247052802 | erot = 2.02957445559338 | epot = -11.9082122549388 | etot = -8.53011309406522 +309000 ekin = 1.31899505489831 | erot = 1.9842726911903 | epot = -11.8333808399303 | etot = -8.53011309384171 +310000 ekin = 1.28628826657229 | erot = 1.93930156456122 | epot = -11.7557029248838 | etot = -8.53011309375026 +311000 ekin = 1.25093726244378 | erot = 1.89525998935024 | epot = -11.6763103458619 | etot = -8.53011309406784 +312000 ekin = 1.21290642809376 | erot = 1.84947048977035 | epot = -11.5924900122399 | etot = -8.53011309437575 +313000 ekin = 1.1714184611298 | erot = 1.79876682021561 | epot = -11.5002983761237 | etot = -8.53011309477825 +314000 ekin = 1.07288272942862 | erot = 1.70848696881406 | epot = -11.311482847552 | etot = -8.5301131493093 +315000 ekin = 0.929305233250754 | erot = 1.46737286493929 | epot = -10.9267911417344 | etot = -8.53011304354439 +316000 ekin = 1.3343895371699 | erot = 1.37623199915563 | epot = -11.2407347047628 | etot = -8.53011316843732 +317000 ekin = 1.400093717002 | erot = 1.31826590785373 | epot = -11.2484727303605 | etot = -8.53011310550475 +318000 ekin = 1.4311535991829 | erot = 1.25971123043266 | epot = -11.2209779347353 | etot = -8.53011310511977 +319000 ekin = 1.45754379434808 | erot = 1.20520642772615 | epot = -11.1928633267497 | etot = -8.53011310467545 +320000 ekin = 1.48149893345566 | erot = 1.15864569690776 | epot = -11.17025773465 | etot = -8.53011310428661 +321000 ekin = 1.50513128439723 | erot = 1.1235040010055 | epot = -11.1587483894097 | etot = -8.53011310400692 +322000 ekin = 1.52997806002378 | erot = 1.10223049025858 | epot = -11.1623216541776 | etot = -8.53011310389523 +323000 ekin = 1.55672107909495 | erot = 1.09578101873747 | epot = -11.182615201786 | etot = -8.53011310395358 +324000 ekin = 1.58511366200745 | erot = 1.10363080456385 | epot = -11.2188575707121 | etot = -8.53011310414085 +325000 ekin = 1.61412294527432 | erot = 1.12419697508963 | epot = -11.2684330247499 | etot = -8.5301131043859 +326000 ekin = 1.64224941760032 | erot = 1.15551879655626 | epot = -11.327881318772 | etot = -8.53011310461539 +327000 ekin = 1.66792915391916 | erot = 1.19590561828287 | epot = -11.3939478769661 | etot = -8.53011310476403 +328000 ekin = 1.68988361976014 | erot = 1.24442310373763 | epot = -11.4644198283235 | etot = -8.53011310482578 +329000 ekin = 1.70729453548122 | erot = 1.30088738083626 | epot = -11.5382950211521 | etot = -8.53011310483462 +330000 ekin = 1.71977920215653 | erot = 1.36542606219528 | epot = -11.6153183691923 | etot = -8.53011310484046 +331000 ekin = 1.7271994815718 | erot = 1.43788972641168 | epot = -11.6952023128944 | etot = -8.53011310491089 +332000 ekin = 1.72935048705178 | erot = 1.51741015576131 | epot = -11.7768737478656 | etot = -8.53011310505251 +333000 ekin = 1.72589292388536 | erot = 1.60231164706421 | epot = -11.8583176761893 | etot = -8.53011310523976 +334000 ekin = 1.71641096845526 | erot = 1.69042382797069 | epot = -11.9369479018441 | etot = -8.53011310541811 +335000 ekin = 1.70061954221322 | erot = 1.77963047985444 | epot = -12.010363127601 | etot = -8.5301131055333 +336000 ekin = 1.67861266632182 | erot = 1.86835013660108 | epot = -12.0770759084894 | etot = -8.53011310556652 +337000 ekin = 1.65104084371354 | erot = 1.95564880215523 | epot = -12.1368027514031 | etot = -8.5301131055343 +338000 ekin = 1.61919653971752 | erot = 2.04088006325108 | epot = -12.190189708458 | etot = -8.53011310548938 +339000 ekin = 1.58494018858508 | erot = 2.12306951704665 | epot = -12.238122811097 | etot = -8.53011310546525 +340000 ekin = 1.55068751498696 | erot = 2.20045691490743 | epot = -12.2812575353507 | etot = -8.53011310545628 +341000 ekin = 1.51939352315548 | erot = 2.27052960843886 | epot = -12.3200362370415 | etot = -8.53011310544716 +342000 ekin = 1.49422831422776 | erot = 2.33048372011776 | epot = -12.3548251398142 | etot = -8.53011310546866 +343000 ekin = 1.47765440209368 | erot = 2.37774277923671 | epot = -12.3855102869164 | etot = -8.53011310558606 +344000 ekin = 1.47024986717927 | erot = 2.41039440931555 | epot = -12.4107573822795 | etot = -8.53011310578464 +345000 ekin = 1.4703254442581 | erot = 2.42787360989988 | epot = -12.4283121600592 | etot = -8.53011310590122 +346000 ekin = 1.47497435411168 | erot = 2.43200037641058 | epot = -12.4370878362722 | etot = -8.53011310574992 +347000 ekin = 1.48176297397457 | erot = 2.42757307622205 | epot = -12.4394491555202 | etot = -8.53011310532358 +348000 ekin = 1.48960567691877 | erot = 2.42152466454833 | epot = -12.4412434462867 | etot = -8.53011310481961 +349000 ekin = 1.49842206767879 | erot = 2.42094801211174 | epot = -12.449483184191 | etot = -8.53011310440048 +350000 ekin = 1.50804667267444 | erot = 2.43083585672827 | epot = -12.4689956337612 | etot = -8.53011310435853 +351000 ekin = 1.51733539244436 | erot = 2.45275056185542 | epot = -12.5001990588662 | etot = -8.53011310456645 +352000 ekin = 1.52440681732 | erot = 2.48551818836661 | epot = -12.5400381105947 | etot = -8.53011310490808 +353000 ekin = 1.52713336973071 | erot = 2.52632890408686 | epot = -12.5835753790747 | etot = -8.53011310525712 +354000 ekin = 1.52372188533753 | erot = 2.57191593401478 | epot = -12.6257509248866 | etot = -8.53011310553432 +355000 ekin = 1.51309115687089 | erot = 2.61929569219585 | epot = -12.6624999548058 | etot = -8.53011310573909 +356000 ekin = 1.49483332847629 | erot = 2.66580549560282 | epot = -12.690751930001 | etot = -8.53011310592193 +357000 ekin = 1.46901113664047 | erot = 2.70863650615431 | epot = -12.7077607489362 | etot = -8.5301131061414 +358000 ekin = 1.43592917031781 | erot = 2.74427787084649 | epot = -12.7103201475722 | etot = -8.53011310640789 +359000 ekin = 1.39610164165407 | erot = 2.76842107185796 | epot = -12.6946358201685 | etot = -8.5301131066565 +360000 ekin = 1.3504767265446 | erot = 2.77663698694861 | epot = -12.6572268202645 | etot = -8.53011310677133 +361000 ekin = 1.30076611042313 | erot = 2.76564868782872 | epot = -12.5965279049014 | etot = -8.53011310664958 +362000 ekin = 1.24961928501762 | erot = 2.73457480734076 | epot = -12.5143071986249 | etot = -8.53011310626656 +363000 ekin = 1.20045386452402 | erot = 2.68545051258155 | epot = -12.4160174827976 | etot = -8.530113105692 +364000 ekin = 1.157102610977 | erot = 2.62295556817078 | epot = -12.3101712839486 | etot = -8.53011310480086 +365000 ekin = 1.12337541340606 | erot = 2.55368748907328 | epot = -12.2071760067613 | etot = -8.53011310428193 +366000 ekin = 1.10127753424493 | erot = 2.48317695958238 | epot = -12.1145675977517 | etot = -8.53011310392434 +367000 ekin = 1.09158671746534 | erot = 2.41562896418526 | epot = -12.0373287854038 | etot = -8.53011310375322 +368000 ekin = 1.09395460107056 | erot = 2.35367302017297 | epot = -11.9777407249947 | etot = -8.53011310375121 +369000 ekin = 1.10707029824331 | erot = 2.29842564871272 | epot = -11.9356090508305 | etot = -8.53011310387444 +370000 ekin = 1.12891021359741 | erot = 2.24980412691876 | epot = -11.9088274446063 | etot = -8.53011310409015 +371000 ekin = 1.15702393729329 | erot = 2.20683986953329 | epot = -11.8939769111755 | etot = -8.53011310434893 +372000 ekin = 1.1888151292629 | erot = 2.16808122068957 | epot = -11.8870094545637 | etot = -8.53011310461122 +373000 ekin = 1.22180472347242 | erot = 2.13193560462625 | epot = -11.8838534329408 | etot = -8.5301131048421 +374000 ekin = 1.25386446213045 | erot = 2.0969644455036 | epot = -11.8809420126469 | etot = -8.53011310501288 +375000 ekin = 1.2834073568592 | erot = 2.06212828826987 | epot = -11.8756487502314 | etot = -8.53011310510234 +376000 ekin = 1.30952081504534 | erot = 2.02696442652639 | epot = -11.8665983466716 | etot = -8.53011310509989 +377000 ekin = 1.33202999726286 | erot = 1.99167753887158 | epot = -11.8538206411415 | etot = -8.53011310500704 +378000 ekin = 1.35148382625458 | erot = 1.95712256046334 | epot = -11.8387194915564 | etot = -8.5301131048385 +379000 ekin = 1.369064102421 | erot = 1.92466782261762 | epot = -11.82384502966 | etot = -8.53011310462137 +380000 ekin = 1.38611586816741 | erot = 1.89583861081395 | epot = -11.8120675838441 | etot = -8.53011310486269 +381000 ekin = 1.40217385032451 | erot = 1.87134526426162 | epot = -11.803632219315 | etot = -8.53011310472886 +382000 ekin = 1.41800173053399 | erot = 1.85196748545548 | epot = -11.8000823206103 | etot = -8.53011310462078 +383000 ekin = 1.43471626247799 | erot = 1.83825951701721 | epot = -11.8030888840428 | etot = -8.53011310454761 +384000 ekin = 1.45338249836178 | erot = 1.8303714900458 | epot = -11.8138670929096 | etot = -8.53011310450204 +385000 ekin = 1.47500130812885 | erot = 1.82815692745039 | epot = -11.8332713400434 | etot = -8.53011310446414 +386000 ekin = 1.50055250094717 | erot = 1.83139934862293 | epot = -11.8620649539819 | etot = -8.5301131044118 +387000 ekin = 1.53104646326555 | erot = 1.84005108459159 | epot = -11.9012106521924 | etot = -8.53011310433528 +388000 ekin = 1.56751609348179 | erot = 1.85434854378498 | epot = -11.9519777415169 | etot = -8.53011310425013 +389000 ekin = 1.61088446669801 | erot = 1.87469764895861 | epot = -12.0156952198589 | etot = -8.53011310420226 +390000 ekin = 1.66167288139125 | erot = 1.90128526220805 | epot = -12.0930712478648 | etot = -8.53011310426552 +391000 ekin = 1.71956364223298 | erot = 1.93346596746207 | epot = -12.1831427142166 | etot = -8.5301131045216 +392000 ekin = 1.78290672529176 | erot = 1.96909292130231 | epot = -12.2821127516394 | etot = -8.53011310504532 +393000 ekin = 1.84827871010929 | erot = 2.00406071425718 | epot = -12.3824525302018 | etot = -8.53011310583528 +394000 ekin = 1.91039848955051 | erot = 2.03249756432607 | epot = -12.4730091606569 | etot = -8.53011310678034 +395000 ekin = 1.9626508412109 | erot = 2.04794740083118 | epot = -12.540711349686 | etot = -8.53011310764391 +396000 ekin = 1.99833003479206 | erot = 2.0454869435874 | epot = -12.5739300865153 | etot = -8.53011310813587 +397000 ekin = 2.0123250581197 | erot = 2.02401360401976 | epot = -12.5664517701983 | etot = -8.53011310805884 +398000 ekin = 2.00252306207336 | erot = 1.98743944257818 | epot = -12.5200756120851 | etot = -8.53011310743354 +399000 ekin = 1.9701718559996 | erot = 1.94392108511941 | epot = -12.4442060476114 | etot = -8.5301131064924 +400000 ekin = 1.91900875366626 | erot = 1.90345223754713 | epot = -12.3525740967566 | etot = -8.53011310554319 +401000 ekin = 1.85370867757513 | erot = 1.87511245492143 | epot = -12.2589342373134 | etot = -8.53011310481684 +402000 ekin = 1.77849786328493 | erot = 1.86519132439144 | epot = -12.1738022920808 | etot = -8.53011310440448 +403000 ekin = 1.69647765085585 | erot = 1.87662651194791 | epot = -12.1032172670431 | etot = -8.53011310423931 +404000 ekin = 1.60979304525873 | erot = 1.90948179463012 | epot = -12.0493879441535 | etot = -8.53011310426464 +405000 ekin = 1.52031831980354 | erot = 1.96148591335594 | epot = -12.0119173375337 | etot = -8.53011310437419 +406000 ekin = 1.43052069774053 | erot = 2.02884810423333 | epot = -11.9894819063522 | etot = -8.53011310437832 +407000 ekin = 1.34451311631117 | erot = 2.10762662358732 | epot = -11.9822528435709 | etot = -8.53011310367242 +408000 ekin = 1.27105659597624 | erot = 2.19486129527893 | epot = -11.9960309945651 | etot = -8.53011310330992 +409000 ekin = 1.13887966167889 | erot = 2.29455518643042 | epot = -11.9635479631131 | etot = -8.5301131150038 +410000 ekin = 1.06340398971496 | erot = 2.43839727639424 | epot = -12.0319143782641 | etot = -8.53011311215495 +411000 ekin = 1.12994363439163 | erot = 2.56530077013229 | epot = -12.2253575154564 | etot = -8.53011311093251 +412000 ekin = 1.18303314251565 | erot = 2.647961367565 | epot = -12.3611076219087 | etot = -8.53011311182804 +413000 ekin = 1.26155297788366 | erot = 2.71721639006694 | epot = -12.5088824809558 | etot = -8.5301131130052 +414000 ekin = 1.3509234915351 | erot = 2.76712696986896 | epot = -12.6481635756115 | etot = -8.53011311420743 +415000 ekin = 1.43876511602364 | erot = 2.79254621486906 | epot = -12.7614244458774 | etot = -8.53011311498468 +416000 ekin = 1.51568555880255 | erot = 2.79087249527984 | epot = -12.8366711691915 | etot = -8.53011311510912 +417000 ekin = 1.5774627292708 | erot = 2.76317937782424 | epot = -12.8707552217669 | etot = -8.53011311467188 +418000 ekin = 1.62492964319337 | erot = 2.71407200335297 | epot = -12.8691147604605 | etot = -8.53011311391414 +419000 ekin = 1.66144511720312 | erot = 2.6494832898614 | epot = -12.8410415202834 | etot = -8.53011311321891 +420000 ekin = 1.69059185762612 | erot = 2.57483616462589 | epot = -12.7955411349095 | etot = -8.53011311265746 +421000 ekin = 1.71537831168895 | erot = 2.4944848692942 | epot = -12.7399762932607 | etot = -8.53011311227753 +422000 ekin = 1.73777830628493 | erot = 2.41134366235769 | epot = -12.6792350807076 | etot = -8.53011311206497 +423000 ekin = 1.75875042276785 | erot = 2.32696083577665 | epot = -12.6158243705244 | etot = -8.5301131119799 +424000 ekin = 1.77846413727746 | erot = 2.24181259776204 | epot = -12.5503898470151 | etot = -8.53011311197561 +425000 ekin = 1.79665710139619 | erot = 2.15579348528976 | epot = -12.4825636984917 | etot = -8.53011311180572 +426000 ekin = 1.81317574252429 | erot = 2.0690861526654 | epot = -12.4123750070692 | etot = -8.53011311187953 +427000 ekin = 1.82711019090163 | erot = 1.98123134137931 | epot = -12.3384546442035 | etot = -8.53011311192255 +428000 ekin = 1.83751691854821 | erot = 1.89199984736734 | epot = -12.2596298778276 | etot = -8.53011311191205 +429000 ekin = 1.84368310695259 | erot = 1.80177215302921 | epot = -12.1755683718219 | etot = -8.53011311184013 +430000 ekin = 1.84519909790049 | erot = 1.71159843544078 | epot = -12.0869106450535 | etot = -8.53011311171223 +431000 ekin = 1.8419824729196 | erot = 1.62310758133309 | epot = -11.9952031657953 | etot = -8.53011311154265 +432000 ekin = 1.83426509469808 | erot = 1.5384228551188 | epot = -11.9028010611701 | etot = -8.53011311135323 +433000 ekin = 1.82255993369577 | erot = 1.46009341020983 | epot = -11.8127664550844 | etot = -8.53011311117885 +434000 ekin = 1.8075108581923 | erot = 1.39007773702003 | epot = -11.7277017062243 | etot = -8.53011311101194 +435000 ekin = 1.78989394282613 | erot = 1.32998390314055 | epot = -11.6499909568369 | etot = -8.53011311087023 +436000 ekin = 1.77056724604991 | erot = 1.28100064172276 | epot = -11.5816809985409 | etot = -8.53011311076826 +437000 ekin = 1.75036829512574 | erot = 1.24377047064084 | epot = -11.5242518764822 | etot = -8.53011311071567 +438000 ekin = 1.73003454471314 | erot = 1.21832954508395 | epot = -11.4784772005229 | etot = -8.53011311072585 +439000 ekin = 1.71009916119256 | erot = 1.20407719866515 | epot = -11.444289470637 | etot = -8.53011311077925 +440000 ekin = 1.6909660003284 | erot = 1.19975997138874 | epot = -11.4208390825869 | etot = -8.53011311086975 +441000 ekin = 1.67263636924185 | erot = 1.20336882729014 | epot = -11.4061183077393 | etot = -8.5301131112073 +442000 ekin = 1.65454003555858 | erot = 1.21209014500598 | epot = -11.3967432919143 | etot = -8.5301131113497 +443000 ekin = 1.63689233562187 | erot = 1.22351444913945 | epot = -11.3905198962988 | etot = -8.5301131115375 +444000 ekin = 1.61963083195094 | erot = 1.23489712396683 | epot = -11.3846410676151 | etot = -8.53011311169732 +445000 ekin = 1.60286309976439 | erot = 1.24366705310612 | epot = -11.3766432646847 | etot = -8.53011311181423 +446000 ekin = 1.58694903183935 | erot = 1.24767642065071 | epot = -11.3647385643679 | etot = -8.53011311187784 +447000 ekin = 1.57243059659248 | erot = 1.24537195304132 | epot = -11.3479156615357 | etot = -8.53011311190193 +448000 ekin = 1.56000091269129 | erot = 1.23594098261454 | epot = -11.3260550071527 | etot = -8.53011311184687 +449000 ekin = 1.55055832679574 | erot = 1.21941073242635 | epot = -11.3000821709566 | etot = -8.53011311173451 +450000 ekin = 1.54505171747098 | erot = 1.19665850060397 | epot = -11.2718233296474 | etot = -8.53011311157245 +451000 ekin = 1.54440025802266 | erot = 1.16936613900744 | epot = -11.2438795084035 | etot = -8.53011311137341 +452000 ekin = 1.54941604020834 | erot = 1.13989972058507 | epot = -11.2194288719472 | etot = -8.5301131111538 +453000 ekin = 1.56073218733759 | erot = 1.11111895993854 | epot = -11.2019642583116 | etot = -8.5301131110355 +454000 ekin = 1.57840116510927 | erot = 1.08594835310017 | epot = -11.1944626290754 | etot = -8.53011311086592 +455000 ekin = 1.601995726954 | erot = 1.06716100526496 | epot = -11.1992698429482 | etot = -8.53011311072925 +456000 ekin = 1.63102931523391 | erot = 1.05734777204784 | epot = -11.2184901979328 | etot = -8.53011311065108 +457000 ekin = 1.66465491829929 | erot = 1.05859720823486 | epot = -11.25336523717 | etot = -8.53011311063581 +458000 ekin = 1.70170935167593 | erot = 1.07231891092448 | epot = -11.3041413732864 | etot = -8.53011311068599 +459000 ekin = 1.7407794029015 | erot = 1.09914653783994 | epot = -11.3700390515413 | etot = -8.53011311079982 +460000 ekin = 1.78028759701322 | erot = 1.13890397190042 | epot = -11.4493046798752 | etot = -8.5301131109616 +461000 ekin = 1.81860197242949 | erot = 1.19067102876365 | epot = -11.539386112353 | etot = -8.53011311115989 +462000 ekin = 1.85415391005744 | erot = 1.25289584358374 | epot = -11.6371628650211 | etot = -8.53011311137988 +463000 ekin = 1.88554792944948 | erot = 1.3235024717984 | epot = -11.739163512856 | etot = -8.53011311160815 +464000 ekin = 1.91164681845144 | erot = 1.40002350523732 | epot = -11.8417834355221 | etot = -8.5301131118333 +465000 ekin = 1.93162421638187 | erot = 1.47973907161313 | epot = -11.9414764000402 | etot = -8.5301131120452 +466000 ekin = 1.94498500126989 | erot = 1.55982523463937 | epot = -12.0349233481435 | etot = -8.53011311223423 +467000 ekin = 1.95156193454112 | erot = 1.63751691044159 | epot = -12.1191919573735 | etot = -8.53011311239078 +468000 ekin = 1.95150012931985 | erot = 1.71026532451092 | epot = -12.1918785663379 | etot = -8.53011311250716 +469000 ekin = 1.94523738406744 | erot = 1.7759064103245 | epot = -12.2512569069617 | etot = -8.53011311256974 +470000 ekin = 1.93348412613007 | erot = 1.83286583557099 | epot = -12.2964630742777 | etot = -8.53011311257661 +471000 ekin = 1.91719298127392 | erot = 1.88021093656515 | epot = -12.3275170303717 | etot = -8.53011311253268 +472000 ekin = 1.89750254537298 | erot = 1.91763317251143 | epot = -12.3452488303327 | etot = -8.53011311244833 +473000 ekin = 1.87564239828497 | erot = 1.94536290421053 | epot = -12.3511184148396 | etot = -8.53011311234412 +474000 ekin = 1.85280042951765 | erot = 1.96399915053207 | epot = -12.3469126922909 | etot = -8.53011311224115 +475000 ekin = 1.82997212692377 | erot = 1.9743433684352 | epot = -12.3344286075125 | etot = -8.53011311215353 +476000 ekin = 1.80782991664007 | erot = 1.97731520040876 | epot = -12.3152582291305 | etot = -8.53011311208166 +477000 ekin = 1.78665653477381 | erot = 1.97399991971349 | epot = -12.2907695664986 | etot = -8.53011311201126 +478000 ekin = 1.76636958091236 | erot = 1.9658140143465 | epot = -12.2622967071795 | etot = -8.5301131119206 +479000 ekin = 1.74662905134933 | erot = 1.95469632259907 | epot = -12.2314384857418 | etot = -8.53011311179338 +480000 ekin = 1.72698437878123 | erot = 1.9431887679411 | epot = -12.2002862583526 | etot = -8.53011311163024 +481000 ekin = 1.70700474377422 | erot = 1.93430214046924 | epot = -12.1714199956951 | etot = -8.53011311145166 +482000 ekin = 1.68635525356891 | erot = 1.93116021406649 | epot = -12.147628578926 | etot = -8.53011311129063 +483000 ekin = 1.66481678021135 | erot = 1.93652118160286 | epot = -12.1314510729945 | etot = -8.53011311118025 +484000 ekin = 1.6422770599304 | erot = 1.95232513145262 | epot = -12.124715302525 | etot = -8.53011311114202 +485000 ekin = 1.61901562080308 | erot = 1.97931073968796 | epot = -12.1284394716016 | etot = -8.53011311111052 +486000 ekin = 1.59577228279584 | erot = 2.01691499832701 | epot = -12.1428003923466 | etot = -8.53011311122377 +487000 ekin = 1.5726976073156 | erot = 2.06349128121944 | epot = -12.166302000014 | etot = -8.53011311147895 +488000 ekin = 1.54979615320385 | erot = 2.11629853285763 | epot = -12.1962077977342 | etot = -8.53011311167275 +489000 ekin = 1.52793571893382 | erot = 2.17194986392789 | epot = -12.2299986947139 | etot = -8.53011311185218 +490000 ekin = 1.50872304470115 | erot = 2.22662776559679 | epot = -12.2654639222932 | etot = -8.53011311199526 +491000 ekin = 1.49451121745785 | erot = 2.27632252256503 | epot = -12.3009468521215 | etot = -8.53011311209864 +492000 ekin = 1.48823109411415 | erot = 2.31702824482111 | epot = -12.3353724511176 | etot = -8.53011311218238 +493000 ekin = 1.49518318209271 | erot = 2.34597345237406 | epot = -12.3712697461198 | etot = -8.53011311165304 +494000 ekin = 1.51845501165919 | erot = 2.36107283299034 | epot = -12.4096409568443 | etot = -8.53011311219474 +495000 ekin = 1.55341225536929 | erot = 2.35806327093555 | epot = -12.4415886369949 | etot = -8.53011311069005 +496000 ekin = 1.60682048122344 | erot = 2.3340672304928 | epot = -12.4710008246549 | etot = -8.53011311293862 +497000 ekin = 1.66595753312185 | erot = 2.29001283524384 | epot = -12.4860834812982 | etot = -8.53011311293247 +498000 ekin = 1.73079985976382 | erot = 2.22455469203371 | epot = -12.4854676647411 | etot = -8.53011311294352 +499000 ekin = 1.79938231063312 | erot = 2.13975923972669 | epot = -12.4692546631917 | etot = -8.53011311283187 +500000 ekin = 1.86459078890622 | erot = 2.04085817004223 | epot = -12.4355620715728 | etot = -8.53011311262434 +501000 ekin = 1.92273434830708 | erot = 1.93494769033077 | epot = -12.3877951508818 | etot = -8.53011311224398 +502000 ekin = 1.97166638935067 | erot = 1.83018302876625 | epot = -12.3319625299275 | etot = -8.53011311181053 +503000 ekin = 2.01030983363916 | erot = 1.73409537515224 | epot = -12.2745183201332 | etot = -8.53011311134178 +504000 ekin = 2.03852387656583 | erot = 1.65386645969169 | epot = -12.2225034472042 | etot = -8.53011311094666 +505000 ekin = 2.05672143890249 | erot = 1.5951695431987 | epot = -12.182004092794 | etot = -8.53011311069283 +506000 ekin = 2.06541322369564 | erot = 1.56133329124062 | epot = -12.1568596255599 | etot = -8.53011311062362 +507000 ekin = 2.06489683747097 | erot = 1.55298683202232 | epot = -12.1479967802499 | etot = -8.53011311075663 +508000 ekin = 2.05510409508288 | erot = 1.56796083678997 | epot = -12.1531780429542 | etot = -8.53011311108135 +509000 ekin = 2.03562755335735 | erot = 1.6014641311663 | epot = -12.1672047960773 | etot = -8.53011311155361 +510000 ekin = 2.0059290836208 | erot = 1.64659845424943 | epot = -12.1826406499626 | etot = -8.53011311209234 +511000 ekin = 1.9656968001201 | erot = 1.69527026509278 | epot = -12.1910801777999 | etot = -8.53011311258698 +512000 ekin = 1.91525552531113 | erot = 1.73945419950567 | epot = -12.1848228377404 | etot = -8.53011311292356 +513000 ekin = 1.85587746893783 | erot = 1.77257277562009 | epot = -12.1585633575815 | etot = -8.53011311302363 +514000 ekin = 1.78983987134752 | erot = 1.79060149181183 | epot = -12.1105544760337 | etot = -8.53011311287438 +515000 ekin = 1.72017129591416 | erot = 1.7925412010645 | epot = -12.0428256095076 | etot = -8.53011311252899 +516000 ekin = 1.65040042950193 | erot = 1.78043480915809 | epot = -11.9609483505948 | etot = -8.53011311193474 +517000 ekin = 1.58404068014581 | erot = 1.75852731252286 | epot = -11.8726811041263 | etot = -8.5301131114576 +518000 ekin = 1.52414481737364 | erot = 1.73170053428691 | epot = -11.7859584626124 | etot = -8.53011311095184 +519000 ekin = 1.47366796925332 | erot = 1.70507688462324 | epot = -11.7088579644956 | etot = -8.53011311061909 +520000 ekin = 1.4336537817973 | erot = 1.68280907302141 | epot = -11.646575965153 | etot = -8.53011311033426 +521000 ekin = 1.40489785043721 | erot = 1.66827026613384 | epot = -11.6032812266553 | etot = -8.53011311008428 +522000 ekin = 1.38811259815573 | erot = 1.66372628764844 | epot = -11.5819519960241 | etot = -8.53011311021994 +523000 ekin = 1.38336778490129 | erot = 1.66945534863268 | epot = -11.58293624363 | etot = -8.53011311009606 +524000 ekin = 1.3913126502459 | erot = 1.68543796397887 | epot = -11.6068637243454 | etot = -8.53011311012059 +525000 ekin = 1.41205700478391 | erot = 1.71025646512276 | epot = -11.6524265802486 | etot = -8.53011311034194 +526000 ekin = 1.44455820368128 | erot = 1.7408487288601 | epot = -11.7155200433033 | etot = -8.5301131107619 +527000 ekin = 1.48642955052829 | erot = 1.77280714509435 | epot = -11.7893498069414 | etot = -8.53011311131872 +528000 ekin = 1.53418163870907 | erot = 1.80110112523955 | epot = -11.8653958758444 | etot = -8.53011311189574 +529000 ekin = 1.58386362601825 | erot = 1.82112172078186 | epot = -11.9350984591552 | etot = -8.53011311235511 +530000 ekin = 1.63189696415521 | erot = 1.82978202390416 | epot = -11.9917921006438 | etot = -8.53011311258448 +531000 ekin = 1.67581590193207 | erot = 1.82633306141048 | epot = -12.0322620756507 | etot = -8.5301131123082 +532000 ekin = 1.7158553823674 | erot = 1.81520910325175 | epot = -12.0611775977952 | etot = -8.53011311217609 +533000 ekin = 1.75284097660823 | erot = 1.80146596914443 | epot = -12.0844200576741 | etot = -8.53011311192148 +534000 ekin = 1.78745390743537 | erot = 1.78869315999008 | epot = -12.1062601790962 | etot = -8.53011311167072 +535000 ekin = 1.8206503812731 | erot = 1.780275917528 | epot = -12.1310394103256 | etot = -8.53011311152449 +536000 ekin = 1.85299611868859 | erot = 1.77858522848976 | epot = -12.1616944587211 | etot = -8.53011311154276 +537000 ekin = 1.88407496145215 | erot = 1.78428087125629 | epot = -12.1984689444103 | etot = -8.53011311170191 +538000 ekin = 1.91279454454533 | erot = 1.79686892929592 | epot = -12.2397765856266 | etot = -8.53011311178537 +539000 ekin = 1.93839394839969 | erot = 1.81622314390843 | epot = -12.2847302042266 | etot = -8.53011311191852 +540000 ekin = 1.95998962534144 | erot = 1.84168603209833 | epot = -12.3317887694832 | etot = -8.53011311204347 +541000 ekin = 1.97685104517888 | erot = 1.87234426277005 | epot = -12.3793084201202 | etot = -8.53011311217123 +542000 ekin = 1.98798216003479 | erot = 1.90711972835206 | epot = -12.4252150005513 | etot = -8.53011311216449 +543000 ekin = 1.99396475052983 | erot = 1.945576946181 | epot = -12.4696548087713 | etot = -8.53011311206048 +544000 ekin = 1.99659195334791 | erot = 1.98768793524451 | epot = -12.5143930004874 | etot = -8.53011311189503 +545000 ekin = 1.99841939299606 | erot = 2.03351546468472 | epot = -12.5620479694138 | etot = -8.53011311173304 +546000 ekin = 2.00223379008667 | erot = 2.0827823942969 | epot = -12.6151292960316 | etot = -8.53011311164803 +547000 ekin = 2.01043375036019 | erot = 2.13441666463564 | epot = -12.674963526692 | etot = -8.53011311169613 +548000 ekin = 2.02454142532241 | erot = 2.18636947292415 | epot = -12.7410240101592 | etot = -8.53011311191265 +549000 ekin = 2.04472650265224 | erot = 2.23524716352228 | epot = -12.8100867784561 | etot = -8.53011311228159 +550000 ekin = 2.06971706084028 | erot = 2.27669143349774 | epot = -12.8765216070943 | etot = -8.53011311275624 +551000 ekin = 2.09694987343594 | erot = 2.30602592213473 | epot = -12.9330889088326 | etot = -8.53011311326193 +552000 ekin = 2.12288123765233 | erot = 2.31896388909698 | epot = -12.9719582404551 | etot = -8.53011311370584 +553000 ekin = 2.14351313995335 | erot = 2.31240753793649 | epot = -12.9860337918829 | etot = -8.53011311399303 +554000 ekin = 2.15523965907907 | erot = 2.28547313898653 | epot = -12.9708259121304 | etot = -8.53011311406476 +555000 ekin = 2.15534485410926 | erot = 2.23961985935181 | epot = -12.9250778273599 | etot = -8.53011311389882 +556000 ekin = 2.14242415869296 | erot = 2.17853141058428 | epot = -12.8510686828015 | etot = -8.53011311352426 +557000 ekin = 2.11652525560435 | erot = 2.1075590112211 | epot = -12.7541973798358 | etot = -8.5301131130104 +558000 ekin = 2.07899262360117 | erot = 2.03287016333855 | epot = -12.6419758993834 | etot = -8.53011311244369 +559000 ekin = 2.0320952570691 | erot = 1.96055588826784 | epot = -12.5227642572393 | etot = -8.53011311190237 +560000 ekin = 1.97856970493128 | erot = 1.89593544894334 | epot = -12.4046182653067 | etot = -8.5301131114321 +561000 ekin = 1.92120586059015 | erot = 1.84318662679526 | epot = -12.2945055984573 | etot = -8.53011311107193 +562000 ekin = 1.86248053377607 | erot = 1.8052511136239 | epot = -12.1978447582136 | etot = -8.53011311081363 +563000 ekin = 1.8044056602921 | erot = 1.78397358726299 | epot = -12.1184923582038 | etot = -8.53011311064866 +564000 ekin = 1.74859757239431 | erot = 1.78025486278411 | epot = -12.0589655457279 | etot = -8.53011311054952 +565000 ekin = 1.69697420506686 | erot = 1.79398971152769 | epot = -12.0210770271779 | etot = -8.53011311058339 +566000 ekin = 1.64969612949606 | erot = 1.82405026339996 | epot = -12.0038595036661 | etot = -8.53011311077008 +567000 ekin = 1.60592346389133 | erot = 1.86815174766649 | epot = -12.0041883226168 | etot = -8.53011311105901 +568000 ekin = 1.56447342355334 | erot = 1.9229510651846 | epot = -12.017537600017 | etot = -8.5301131112791 +569000 ekin = 1.5249189399058 | erot = 1.9848167243289 | epot = -12.0398487760181 | etot = -8.53011311178338 +570000 ekin = 1.48563885354617 | erot = 2.04789795967133 | epot = -12.0636499255003 | etot = -8.5301131122828 +571000 ekin = 1.44514780819869 | erot = 2.10567642130785 | epot = -12.0809373422384 | etot = -8.53011311273184 +572000 ekin = 1.40265340711305 | erot = 2.15189441844554 | epot = -12.0846609385934 | etot = -8.53011311303485 +573000 ekin = 1.35831475977169 | erot = 2.18135236040309 | epot = -12.0697802333439 | etot = -8.53011311316915 +574000 ekin = 1.31325665398762 | erot = 2.19054857027398 | epot = -12.033918337377 | etot = -8.53011311311536 +575000 ekin = 1.26941751353478 | erot = 2.17808969341531 | epot = -11.9776203199914 | etot = -8.53011311304127 +576000 ekin = 1.22896606046744 | erot = 2.14379444928284 | epot = -11.9028736225321 | etot = -8.53011311278182 +577000 ekin = 1.19393185424958 | erot = 2.08947552578937 | epot = -11.8135204923717 | etot = -8.53011311233275 +578000 ekin = 1.16652110218135 | erot = 2.01971345754357 | epot = -11.7163476715595 | etot = -8.53011311183457 +579000 ekin = 1.14855907858584 | erot = 1.94028096237537 | epot = -11.6189531523163 | etot = -8.53011311135512 +580000 ekin = 1.14121418715426 | erot = 1.85735567591632 | epot = -11.5286829740285 | etot = -8.53011311095796 +581000 ekin = 1.14478819464611 | erot = 1.7767355740351 | epot = -11.4516368793735 | etot = -8.53011311069233 +582000 ekin = 1.15860725310189 | erot = 1.70317164276779 | epot = -11.391892006456 | etot = -8.53011311058632 +583000 ekin = 1.18104542316811 | erot = 1.63989823949237 | epot = -11.3510567733034 | etot = -8.53011311064297 +584000 ekin = 1.20969611011887 | erot = 1.58840206182665 | epot = -11.3282112827866 | etot = -8.53011311084111 +585000 ekin = 1.24168069892305 | erot = 1.54843600705948 | epot = -11.3202298171212 | etot = -8.53011311113868 +586000 ekin = 1.2740546840078 | erot = 1.51825728966861 | epot = -11.3224250851562 | etot = -8.53011311147982 +587000 ekin = 1.30424737194179 | erot = 1.49504623591216 | epot = -11.3294067196582 | etot = -8.53011311180426 +588000 ekin = 1.33045790147862 | erot = 1.47543949669554 | epot = -11.336010510232 | etot = -8.53011311205788 +589000 ekin = 1.35193228855922 | erot = 1.45609131903564 | epot = -11.3381367197977 | etot = -8.53011311220281 +590000 ekin = 1.3690637353216 | erot = 1.43416814795309 | epot = -11.3333449954988 | etot = -8.53011311222415 +591000 ekin = 1.38329049901086 | erot = 1.40769463798183 | epot = -11.3210982491251 | etot = -8.53011311213237 +592000 ekin = 1.39680526625229 | erot = 1.37570509646357 | epot = -11.3026234746754 | etot = -8.5301131119595 +593000 ekin = 1.41212834900077 | erot = 1.33820418780231 | epot = -11.2804456485532 | etot = -8.53011311175016 +594000 ekin = 1.43162615781853 | erot = 1.295986417953 | epot = -11.2577256873211 | etot = -8.53011311154953 +595000 ekin = 1.45706677221744 | erot = 1.250391132337 | epot = -11.2375710159481 | etot = -8.53011311139362 +596000 ekin = 1.48935058064689 | erot = 1.20330184638379 | epot = -11.222765538265 | etot = -8.53011311123432 +597000 ekin = 1.52837107420579 | erot = 1.15683058607483 | epot = -11.2153147714789 | etot = -8.53011311119825 +598000 ekin = 1.57294993725724 | erot = 1.11287817711154 | epot = -11.2159412255862 | etot = -8.53011311121744 +599000 ekin = 1.62105272044028 | erot = 1.07333264838417 | epot = -11.2244984800962 | etot = -8.5301131112717 +600000 ekin = 1.67007785978927 | erot = 1.04007259181371 | epot = -11.2402635629414 | etot = -8.53011311133838 +601000 ekin = 1.71718069772665 | erot = 1.01497757077084 | epot = -11.2622713798937 | etot = -8.53011311139617 +602000 ekin = 1.75956754279021 | erot = 0.999928377461801 | epot = -11.2896090316898 | etot = -8.53011311143777 +603000 ekin = 1.79477210700253 | erot = 0.996719273887856 | epot = -11.3216044923427 | etot = -8.53011311145232 +604000 ekin = 1.82082157915211 | erot = 1.00697983034402 | epot = -11.3579145210094 | etot = -8.53011311151329 +605000 ekin = 1.83582223390645 | erot = 1.03147611611005 | epot = -11.3974114615043 | etot = -8.53011311148779 +606000 ekin = 1.8387140851627 | erot = 1.07115549980537 | epot = -11.4399826962261 | etot = -8.53011311125804 +607000 ekin = 1.83011347633669 | erot = 1.1264712109122 | epot = -11.4866977985761 | etot = -8.53011311132725 +608000 ekin = 1.8102394194917 | erot = 1.19707781561461 | epot = -11.537430346509 | etot = -8.53011311140273 +609000 ekin = 1.77867265022502 | erot = 1.28228554239947 | epot = -11.5910713041089 | etot = -8.53011311148444 +610000 ekin = 1.73547793526514 | erot = 1.38091511477527 | epot = -11.6465061616037 | etot = -8.53011311156333 +611000 ekin = 1.68128247270891 | erot = 1.49134780299442 | epot = -11.7027433873263 | etot = -8.53011311162298 +612000 ekin = 1.61741095621708 | erot = 1.6116145640346 | epot = -11.7591386318972 | etot = -8.53011311164548 +613000 ekin = 1.54603198036209 | erot = 1.73948721912068 | epot = -11.8156323111033 | etot = -8.53011311162058 +614000 ekin = 1.47024512206905 | erot = 1.87249022213823 | epot = -11.8728484558906 | etot = -8.53011311168336 +615000 ekin = 1.39417329366749 | erot = 2.00621352658744 | epot = -11.9304999319624 | etot = -8.53011311170745 +616000 ekin = 1.32190082987795 | erot = 2.13583847737815 | epot = -11.9878524190141 | etot = -8.53011311175805 +617000 ekin = 1.25724259788341 | erot = 2.25683214183279 | epot = -12.044187851591 | etot = -8.53011311187476 +618000 ekin = 1.20346368463748 | erot = 2.36421640891362 | epot = -12.0977932056388 | etot = -8.53011311208765 +619000 ekin = 1.1627837357839 | erot = 2.45267600796726 | epot = -12.1455728561444 | etot = -8.53011311239321 +620000 ekin = 1.13605929310698 | erot = 2.51695592467634 | epot = -12.1831283305324 | etot = -8.53011311274907 +621000 ekin = 1.12273498783652 | erot = 2.5525832487945 | epot = -12.2054313497004 | etot = -8.53011311306935 +622000 ekin = 1.12111468633955 | erot = 2.55686207164847 | epot = -12.2080898712351 | etot = -8.53011311324703 +623000 ekin = 1.12887388452668 | erot = 2.52989511158575 | epot = -12.1888821093023 | etot = -8.53011311318982 +624000 ekin = 1.14366711341982 | erot = 2.47526890170086 | epot = -12.1490491279779 | etot = -8.53011311285719 +625000 ekin = 1.16365333268032 | erot = 2.40007033438084 | epot = -12.0938367793385 | etot = -8.53011311227731 +626000 ekin = 1.1877796889279 | erot = 2.31409540899866 | epot = -12.0319882094815 | etot = -8.53011311155492 +627000 ekin = 1.21575247625636 | erot = 2.22841508882912 | epot = -11.974280675903 | etot = -8.53011311081753 +628000 ekin = 1.24777701345755 | erot = 2.15375689269322 | epot = -11.9316470163397 | etot = -8.53011311018898 +629000 ekin = 1.28416743273269 | erot = 2.0990785591541 | epot = -11.9133591016497 | etot = -8.53011310976295 +630000 ekin = 1.3249536049168 | erot = 2.07058701615878 | epot = -11.9256537306725 | etot = -8.53011310959688 +631000 ekin = 1.36955506517704 | erot = 2.07123416093218 | epot = -11.970902335822 | etot = -8.53011310971283 +632000 ekin = 1.41660411980783 | erot = 2.10067869858403 | epot = -12.0473959281541 | etot = -8.53011310976226 +633000 ekin = 1.46471660335937 | erot = 2.15728920673495 | epot = -12.1521189203372 | etot = -8.53011311024285 +634000 ekin = 1.5116423330738 | erot = 2.23677755842588 | epot = -12.2785330023927 | etot = -8.53011311089301 +635000 ekin = 1.55431486763673 | erot = 2.33246650108445 | epot = -12.4168944816116 | etot = -8.5301131128904 +636000 ekin = 1.58749795609299 | erot = 2.43289415005748 | epot = -12.5505052200571 | etot = -8.53011311390666 +637000 ekin = 1.60559044461902 | erot = 2.52510908162173 | epot = -12.6608126409174 | etot = -8.53011311467662 +638000 ekin = 1.60593314361717 | erot = 2.60108258773675 | epot = -12.7371288464172 | etot = -8.53011311506329 +639000 ekin = 1.58800768940635 | erot = 2.65612694656144 | epot = -12.7742477510045 | etot = -8.53011311503675 +640000 ekin = 1.55357432529172 | erot = 2.68914087075659 | epot = -12.7728283107672 | etot = -8.53011311471885 +641000 ekin = 1.50594258808403 | erot = 2.70186118673875 | epot = -12.7379168890284 | etot = -8.53011311420558 +642000 ekin = 1.44931462465822 | erot = 2.69765625484959 | epot = -12.6770839931722 | etot = -8.53011311366437 +643000 ekin = 1.38808387569846 | erot = 2.68019687245753 | epot = -12.5983938613571 | etot = -8.53011311320107 +644000 ekin = 1.32616709544766 | erot = 2.65251028990018 | epot = -12.5087904982142 | etot = -8.53011311286636 +645000 ekin = 1.26675082971288 | erot = 2.61647581101856 | epot = -12.4133397533931 | etot = -8.53011311266169 +646000 ekin = 1.21233854698239 | erot = 2.57274112824624 | epot = -12.3151927877793 | etot = -8.53011311255063 +647000 ekin = 1.16530705824513 | erot = 2.5217462541534 | epot = -12.2171664245162 | etot = -8.53011311211771 +648000 ekin = 1.12796239477798 | erot = 2.46431327603398 | epot = -12.122388782996 | etot = -8.53011311218402 +649000 ekin = 1.10135546654543 | erot = 2.39865320679758 | epot = -12.0301217854793 | etot = -8.53011311213631 +650000 ekin = 1.08691260033709 | erot = 2.32393477717278 | epot = -11.9409604894842 | etot = -8.53011311197434 +651000 ekin = 1.08628079617831 | erot = 2.24073961887863 | epot = -11.8571335268109 | etot = -8.53011311175398 +652000 ekin = 1.10075131990634 | erot = 2.15085977532613 | epot = -11.7817242067922 | etot = -8.53011311155974 +653000 ekin = 1.13059734565321 | erot = 2.05677047633761 | epot = -11.7174809334498 | etot = -8.53011311145893 +654000 ekin = 1.17466906494936 | erot = 1.96105944317186 | epot = -11.6658416195893 | etot = -8.53011311146811 +655000 ekin = 1.23047347721873 | erot = 1.86606271801435 | epot = -11.6266493067841 | etot = -8.53011311155106 +656000 ekin = 1.29470000779083 | erot = 1.77378178161793 | epot = -11.5985949010557 | etot = -8.53011311164694 +657000 ekin = 1.36393161431824 | erot = 1.68598333612987 | epot = -11.5800280621529 | etot = -8.53011311170483 +658000 ekin = 1.46427470176043 | erot = 1.51772157409014 | epot = -11.5121093881302 | etot = -8.53011311227959 +659000 ekin = 1.64802750939022 | erot = 1.39327336689376 | epot = -11.5714140171067 | etot = -8.53011314082273 +660000 ekin = 1.73185850257778 | erot = 1.3295411594665 | epot = -11.5915127822407 | etot = -8.53011312019639 +661000 ekin = 1.80627684680885 | erot = 1.27623279768931 | epot = -11.6126227646866 | etot = -8.53011312018847 +662000 ekin = 1.87475382732446 | erot = 1.23350073992408 | epot = -11.6383676874432 | etot = -8.53011312019471 +663000 ekin = 1.93633534016178 | erot = 1.20171441189947 | epot = -11.6681628722886 | etot = -8.53011312022732 +664000 ekin = 1.99014964301494 | erot = 1.18083533498295 | epot = -11.7010980982892 | etot = -8.53011312029132 +665000 ekin = 2.03529479420636 | erot = 1.17046521671664 | epot = -11.735873131308 | etot = -8.53011312038497 +666000 ekin = 2.07079068067167 | erot = 1.16992318050101 | epot = -11.7708269816743 | etot = -8.5301131205016 +667000 ekin = 2.09559163008676 | erot = 1.17833553455765 | epot = -11.8040402852757 | etot = -8.53011312063128 +668000 ekin = 2.10864748671423 | erot = 1.19472204260171 | epot = -11.8334826500796 | etot = -8.53011312076368 +669000 ekin = 2.10899520333026 | erot = 1.21806343010007 | epot = -11.8571717543206 | etot = -8.53011312089023 +670000 ekin = 2.09586141354525 | erot = 1.24733872817407 | epot = -11.8733132627235 | etot = -8.53011312100421 +671000 ekin = 2.068762787098 | erot = 1.28153124625685 | epot = -11.8804071544553 | etot = -8.5301131211004 +672000 ekin = 2.02760595017448 | erot = 1.31961745604762 | epot = -11.8773365273931 | etot = -8.53011312117098 +673000 ekin = 1.97280574595705 | erot = 1.36056605412237 | epot = -11.8634849212816 | etot = -8.53011312120221 +674000 ekin = 1.90544539354424 | erot = 1.40337348376535 | epot = -11.8389319984827 | etot = -8.53011312117309 +675000 ekin = 1.82748035868504 | erot = 1.44714139190344 | epot = -11.8047348716492 | etot = -8.53011312106071 +676000 ekin = 1.74193854032682 | erot = 1.49116973847738 | epot = -11.7632213996555 | etot = -8.53011312085132 +677000 ekin = 1.65301515488034 | erot = 1.53501856941755 | epot = -11.7181468448497 | etot = -8.53011312055176 +678000 ekin = 1.56597364723852 | erot = 1.57850581645581 | epot = -11.6745925833963 | etot = -8.53011311970194 +679000 ekin = 1.48964066739842 | erot = 1.62216732403127 | epot = -11.6419211112302 | etot = -8.53011311980047 +680000 ekin = 1.41474111992769 | erot = 1.66316827970068 | epot = -11.608022522731 | etot = -8.53011312310264 +681000 ekin = 1.3875618080501 | erot = 1.70006441987859 | epot = -11.6177393496769 | etot = -8.5301131217482 +682000 ekin = 1.41176839058057 | erot = 1.74149456084064 | epot = -11.6833760730977 | etot = -8.53011312167646 +683000 ekin = 1.4347859017671 | erot = 1.78362921084864 | epot = -11.74852823407 | etot = -8.53011312145429 +684000 ekin = 1.47724360907987 | erot = 1.82441599450683 | epot = -11.8317727257632 | etot = -8.53011312217646 +685000 ekin = 1.53305607829933 | erot = 1.86370343685203 | epot = -11.9268726374703 | etot = -8.53011312231898 +686000 ekin = 1.5999920369516 | erot = 1.90117320867556 | epot = -12.0312783681521 | etot = -8.53011312252495 +687000 ekin = 1.67585532676896 | erot = 1.93616514336694 | epot = -12.1421335928676 | etot = -8.5301131227317 +688000 ekin = 1.75824359228939 | erot = 1.96747116978299 | epot = -12.2558278850929 | etot = -8.53011312302057 +689000 ekin = 1.84428806109397 | erot = 1.99331990889021 | epot = -12.3677210933648 | etot = -8.53011312338067 +690000 ekin = 1.93038830487381 | erot = 2.01163201954795 | epot = -12.4721334481824 | etot = -8.53011312376062 +691000 ekin = 2.0124388124024 | erot = 2.02053622466786 | epot = -12.563088161158 | etot = -8.53011312408775 +692000 ekin = 2.08628029307014 | erot = 2.01896054467736 | epot = -12.6353539620466 | etot = -8.53011312429905 +693000 ekin = 2.14819565616757 | erot = 2.00704872931776 | epot = -12.6853575098526 | etot = -8.53011312436728 +694000 ekin = 2.19527915053926 | erot = 1.98620471483403 | epot = -12.7115969896827 | etot = -8.53011312430943 +695000 ekin = 2.22558662019519 | erot = 1.95872876712409 | epot = -12.7144285114953 | etot = -8.530113124176 +696000 ekin = 2.23807939046259 | erot = 1.92719459917365 | epot = -12.6953871136599 | etot = -8.53011312402367 +697000 ekin = 2.23245491258998 | erot = 1.89382427549971 | epot = -12.6563923119818 | etot = -8.5301131238921 +698000 ekin = 2.20898166045956 | erot = 1.86009447102955 | epot = -12.5991892552733 | etot = -8.53011312378417 +699000 ekin = 2.16842192915358 | erot = 1.82670876840176 | epot = -12.5252438212486 | etot = -8.53011312369329 +700000 ekin = 2.11206718079843 | erot = 1.79377149364874 | epot = -12.4359517980247 | etot = -8.53011312357757 +701000 ekin = 2.04183510230187 | erot = 1.76109647800014 | epot = -12.3330447037309 | etot = -8.53011312342893 +702000 ekin = 1.9603063691051 | erot = 1.72840134027956 | epot = -12.2188208326314 | etot = -8.53011312324677 +703000 ekin = 1.87071986578067 | erot = 1.69529695521636 | epot = -12.0961299440382 | etot = -8.53011312304119 +704000 ekin = 1.77689930890354 | erot = 1.6611057765389 | epot = -11.9681182082896 | etot = -8.53011312284715 +705000 ekin = 1.68305722563765 | erot = 1.62461573119795 | epot = -11.8377860795182 | etot = -8.53011312268258 +706000 ekin = 1.59370733728767 | erot = 1.58419230640585 | epot = -11.7080127662152 | etot = -8.53011312252172 +707000 ekin = 1.51408760177217 | erot = 1.53852435757229 | epot = -11.5827250817791 | etot = -8.53011312243462 +708000 ekin = 1.44811612149855 | erot = 1.48556130217597 | epot = -11.4637905459337 | etot = -8.53011312225917 +709000 ekin = 1.39918507090357 | erot = 1.42450216552995 | epot = -11.3538003584163 | etot = -8.53011312198281 +710000 ekin = 1.37013904497866 | erot = 1.35650265895892 | epot = -11.2567548255768 | etot = -8.53011312163919 +711000 ekin = 1.36293784710523 | erot = 1.28452294871087 | epot = -11.177573917118 | etot = -8.53011312130192 +712000 ekin = 1.37810571334542 | erot = 1.21275926767383 | epot = -11.1209781019579 | etot = -8.53011312093868 +713000 ekin = 1.41539111506379 | erot = 1.1462528512795 | epot = -11.0917570870382 | etot = -8.53011312069488 +714000 ekin = 1.47330237310361 | erot = 1.09011154668932 | epot = -11.0935270405084 | etot = -8.53011312071543 +715000 ekin = 1.54871417396785 | erot = 1.04700633005665 | epot = -11.1258336248984 | etot = -8.53011312087386 +716000 ekin = 1.63763638283809 | erot = 1.01816315230752 | epot = -11.1859126562794 | etot = -8.53011312113384 +717000 ekin = 1.73566547228712 | erot = 1.00365944746308 | epot = -11.2694380412112 | etot = -8.53011312146104 +718000 ekin = 1.83830978287828 | erot = 1.00261452540746 | epot = -11.3710374301145 | etot = -8.53011312182876 +719000 ekin = 1.94121801685678 | erot = 1.01337618099033 | epot = -11.4847073200663 | etot = -8.53011312221914 +720000 ekin = 2.04031989970054 | erot = 1.0336756329226 | epot = -11.6041086552424 | etot = -8.5301131226193 +721000 ekin = 2.13191426653948 | erot = 1.06076519451606 | epot = -11.7227925840712 | etot = -8.53011312301563 +722000 ekin = 2.21272563482337 | erot = 1.09108188128853 | epot = -11.8339206397588 | etot = -8.53011312364686 +723000 ekin = 2.27980497539282 | erot = 1.1198830983019 | epot = -11.929801197718 | etot = -8.53011312402331 +724000 ekin = 2.33074458889845 | erot = 1.14401404987369 | epot = -12.0048717630048 | etot = -8.53011312423261 +725000 ekin = 2.36404026188179 | erot = 1.16137515755472 | epot = -12.0555285437419 | etot = -8.53011312430541 +726000 ekin = 2.37921817082242 | erot = 1.17112079793551 | epot = -12.0804520929896 | etot = -8.53011312423162 +727000 ekin = 2.37683377543408 | erot = 1.17363131590977 | epot = -12.0805782153631 | etot = -8.53011312401923 +728000 ekin = 2.35838505905363 | erot = 1.17045679634039 | epot = -12.0589549790964 | etot = -8.53011312370242 +729000 ekin = 2.3261061343185 | erot = 1.16404528412633 | epot = -12.0202645417651 | etot = -8.53011312332028 +730000 ekin = 2.28270056427543 | erot = 1.15738479164455 | epot = -11.9701984788421 | etot = -8.53011312292208 +731000 ekin = 2.23120367718931 | erot = 1.15355872123357 | epot = -11.9148755209223 | etot = -8.53011312249944 +732000 ekin = 2.17470227949417 | erot = 1.15522777871211 | epot = -11.8600431804118 | etot = -8.53011312220553 +733000 ekin = 2.11571523134037 | erot = 1.16431239937572 | epot = -11.8101407526813 | etot = -8.53011312196517 +734000 ekin = 2.05656428236166 | erot = 1.18217764585344 | epot = -11.7688550500047 | etot = -8.53011312178957 +735000 ekin = 1.99938712968247 | erot = 1.20940907181726 | epot = -11.7389093231742 | etot = -8.53011312167449 +736000 ekin = 1.94615450234839 | erot = 1.24582378057203 | epot = -11.7220914045337 | etot = -8.53011312161325 +737000 ekin = 1.89868408609312 | erot = 1.2905472824522 | epot = -11.7193444901454 | etot = -8.53011312160005 +738000 ekin = 1.8586330040137 | erot = 1.3421107223096 | epot = -11.7308568479547 | etot = -8.53011312163138 +739000 ekin = 1.82745784098469 | erot = 1.39854613747351 | epot = -11.7561171001662 | etot = -8.53011312170797 +740000 ekin = 1.80633906931732 | erot = 1.45733644211442 | epot = -11.7937886333266 | etot = -8.53011312189481 +741000 ekin = 1.79607780004651 | erot = 1.51536575546308 | epot = -11.8415566775877 | etot = -8.53011312207814 +742000 ekin = 1.79696493223211 | erot = 1.56951628226472 | epot = -11.8965943368768 | etot = -8.53011312237996 +743000 ekin = 1.80846594325561 | erot = 1.6163304464024 | epot = -11.9549095123419 | etot = -8.53011312268386 +744000 ekin = 1.82931777589884 | erot = 1.65249323454789 | epot = -12.0119241334618 | etot = -8.53011312301508 +745000 ekin = 1.85761408802979 | erot = 1.67511504714017 | epot = -12.0628422585089 | etot = -8.53011312333896 +746000 ekin = 1.89090050882387 | erot = 1.68206656301284 | epot = -12.1030801954477 | etot = -8.530113123611 +747000 ekin = 1.92640401789238 | erot = 1.67240004233478 | epot = -12.1289171840141 | etot = -8.53011312378691 +748000 ekin = 1.96133145904701 | erot = 1.64668719346329 | epot = -12.1381317763454 | etot = -8.5301131238351 +749000 ekin = 1.9931847828739 | erot = 1.60714989956533 | epot = -12.1304478061854 | etot = -8.53011312374616 +750000 ekin = 2.0200355789032 | erot = 1.55750382538372 | epot = -12.107652527823 | etot = -8.53011312353607 +751000 ekin = 2.04071538033916 | erot = 1.50252212963145 | epot = -12.0733506332106 | etot = -8.53011312324001 +752000 ekin = 2.05490285137441 | erot = 1.4474147433058 | epot = -12.0324307175831 | etot = -8.53011312290288 +753000 ekin = 2.06311311777681 | erot = 1.39717761208881 | epot = -11.9904038524287 | etot = -8.53011312256307 +754000 ekin = 2.06660147050372 | erot = 1.35603065032696 | epot = -11.9527452431002 | etot = -8.5301131222695 +755000 ekin = 2.06719659825846 | erot = 1.32693138051867 | epot = -11.9242411008192 | etot = -8.53011312204203 +756000 ekin = 2.0671036998156 | erot = 1.3113988140042 | epot = -11.9086156357185 | etot = -8.53011312189868 +757000 ekin = 2.06866724415208 | erot = 1.3094625281623 | epot = -11.9082428938087 | etot = -8.53011312149428 +758000 ekin = 2.07499396292543 | erot = 1.32035089931502 | epot = -11.925457983815 | etot = -8.5301131215746 +759000 ekin = 2.08841045515532 | erot = 1.34191093708327 | epot = -11.96043451401 | etot = -8.53011312177144 +760000 ekin = 2.10963645109489 | erot = 1.37032699691538 | epot = -12.0100765700779 | etot = -8.53011312206764 +761000 ekin = 2.13857799102783 | erot = 1.40109303382923 | epot = -12.0697841472857 | etot = -8.53011312242866 +762000 ekin = 2.17432662718611 | erot = 1.42956057102255 | epot = -12.1340003210162 | etot = -8.53011312280759 +763000 ekin = 2.2153033445177 | erot = 1.45159579145362 | epot = -12.1970122591095 | etot = -8.53011312313819 +764000 ekin = 2.25988007753059 | erot = 1.46444731772141 | epot = -12.2544405178094 | etot = -8.53011312255735 +765000 ekin = 2.30943589560724 | erot = 1.46853530580971 | epot = -12.3080843239992 | etot = -8.5301131225823 +766000 ekin = 2.36332281187347 | erot = 1.46534946813803 | epot = -12.3587854024957 | etot = -8.53011312248424 +767000 ekin = 2.42035196934608 | erot = 1.45783003509466 | epot = -12.4082951267389 | etot = -8.53011312229817 +768000 ekin = 2.47581566548054 | erot = 1.44854904096221 | epot = -12.4544778288911 | etot = -8.5301131224483 +769000 ekin = 2.5236329914572 | erot = 1.44004118153085 | epot = -12.4937872952374 | etot = -8.53011312224932 +770000 ekin = 2.56270533135524 | erot = 1.43704014071487 | epot = -12.5298585941748 | etot = -8.5301131221047 +771000 ekin = 2.59209730116264 | erot = 1.44343459837348 | epot = -12.5656450216346 | etot = -8.53011312209843 +772000 ekin = 2.61072906203368 | erot = 1.46130008818214 | epot = -12.6021422725227 | etot = -8.53011312230689 +773000 ekin = 2.61709469190311 | erot = 1.49008956149496 | epot = -12.6372973761744 | etot = -8.53011312277635 +774000 ekin = 2.6090964566865 | erot = 1.5261853113214 | epot = -12.6653948914977 | etot = -8.53011312348982 +775000 ekin = 2.58418075699894 | erot = 1.56310881844526 | epot = -12.6774026997542 | etot = -8.53011312430998 +776000 ekin = 2.54009174823719 | erot = 1.59267184116488 | epot = -12.6628767144435 | etot = -8.53011312504144 +777000 ekin = 2.47580451030859 | erot = 1.60710708459036 | epot = -12.6130247202843 | etot = -8.53011312538531 +778000 ekin = 2.39287500139183 | erot = 1.60165568863609 | epot = -12.5246438151509 | etot = -8.53011312512302 +779000 ekin = 2.29635110870132 | erot = 1.57655114307824 | epot = -12.4030153760378 | etot = -8.53011312425821 +780000 ekin = 2.19432865476922 | erot = 1.53718068405292 | epot = -12.2616224618999 | etot = -8.5301131230778 +781000 ekin = 2.09599445127249 | erot = 1.49202506838098 | epot = -12.1181326417003 | etot = -8.53011312204685 +782000 ekin = 2.01067959044775 | erot = 1.44954049914492 | epot = -11.9903332112136 | etot = -8.53011312162094 +783000 ekin = 1.94134953218635 | erot = 1.4142221223979 | epot = -11.8856847763454 | etot = -8.53011312176118 +784000 ekin = 1.88557673990069 | erot = 1.38612068275655 | epot = -11.8018105449661 | etot = -8.53011312230882 +785000 ekin = 1.8382125158826 | erot = 1.36190678416234 | epot = -11.7302324230318 | etot = -8.53011312298688 +786000 ekin = 1.79361791903349 | erot = 1.33665294680265 | epot = -11.6603839893739 | etot = -8.53011312353779 +787000 ekin = 1.74765651997725 | erot = 1.30572681397029 | epot = -11.5834964577365 | etot = -8.53011312378899 +788000 ekin = 1.69893980453935 | erot = 1.26627175391768 | epot = -11.4953246821149 | etot = -8.53011312365785 +789000 ekin = 1.64926102871369 | erot = 1.21811104686223 | epot = -11.3974851988071 | etot = -8.53011312323117 +790000 ekin = 1.60278391128869 | erot = 1.16409864378586 | epot = -11.2969956774873 | etot = -8.53011312241278 +791000 ekin = 1.56615980927194 | erot = 1.10959117745814 | epot = -11.2058641081802 | etot = -8.53011312145014 +792000 ekin = 1.54703734324897 | erot = 1.06142547772204 | epot = -11.1385759415279 | etot = -8.53011312055688 +793000 ekin = 1.55198521112706 | erot = 1.02650367069295 | epot = -11.1086020017646 | etot = -8.53011311994463 +794000 ekin = 1.58477896414495 | erot = 1.01030347984837 | epot = -11.1251955637503 | etot = -8.53011311975694 +795000 ekin = 1.64530503793607 | erot = 1.0157995055352 | epot = -11.1912176634937 | etot = -8.5301131200224 +796000 ekin = 1.72945610306449 | erot = 1.04308507626302 | epot = -11.3026542999848 | etot = -8.5301131206573 +797000 ekin = 1.83001099514718 | erot = 1.08968689108651 | epot = -11.4498110077441 | etot = -8.53011312151045 +798000 ekin = 1.93812374531269 | erot = 1.15131252104657 | epot = -11.6195493887796 | etot = -8.53011312242032 +799000 ekin = 2.04497054169321 | erot = 1.22278827268487 | epot = -11.7978719376079 | etot = -8.53011312322978 +800000 ekin = 2.14336798474912 | erot = 1.29926771175094 | epot = -11.9727488204676 | etot = -8.53011312396754 +801000 ekin = 2.22727301807807 | erot = 1.3753304782639 | epot = -12.132716620907 | etot = -8.53011312456501 +802000 ekin = 2.29233025372734 | erot = 1.44569167636572 | epot = -12.2681350550915 | etot = -8.5301131249984 +803000 ekin = 2.33601370069085 | erot = 1.50574813524509 | epot = -12.3718749611944 | etot = -8.53011312525848 +804000 ekin = 2.35746789192217 | erot = 1.55190067907921 | epot = -12.4394816963513 | etot = -8.53011312534996 +805000 ekin = 2.35725821081217 | erot = 1.58176758445585 | epot = -12.4691389205546 | etot = -8.53011312528653 +806000 ekin = 2.33708958181609 | erot = 1.59429980420554 | epot = -12.4615025111052 | etot = -8.53011312508358 +807000 ekin = 2.29933748330709 | erot = 1.58976408842292 | epot = -12.419214696614 | etot = -8.53011312488397 +808000 ekin = 2.24664197364469 | erot = 1.56989950315772 | epot = -12.3466546012196 | etot = -8.53011312441723 +809000 ekin = 2.1825349798202 | erot = 1.53842514359652 | epot = -12.251073247252 | etot = -8.5301131238353 +810000 ekin = 2.11065804207626 | erot = 1.50058136870816 | epot = -12.1413525344378 | etot = -8.53011312365334 +811000 ekin = 2.03314489473095 | erot = 1.46124027742313 | epot = -12.0244982952517 | etot = -8.53011312309758 +812000 ekin = 1.95235452668761 | erot = 1.42640454804181 | epot = -11.9088721972944 | etot = -8.53011312256503 +813000 ekin = 1.87042476526586 | erot = 1.40255580938068 | epot = -11.8030936967653 | etot = -8.53011312211877 +814000 ekin = 1.78881788399123 | erot = 1.39558114783999 | epot = -11.7145121536357 | etot = -8.53011312180448 +815000 ekin = 1.70830262134368 | erot = 1.41006409307363 | epot = -11.6484798360531 | etot = -8.53011312163576 +816000 ekin = 1.62913132400075 | erot = 1.44882680729612 | epot = -11.6080712528942 | etot = -8.53011312159728 +817000 ekin = 1.55135581922303 | erot = 1.51275412295674 | epot = -11.5942230638405 | etot = -8.5301131216607 +818000 ekin = 1.47515646825021 | erot = 1.6008108113837 | epot = -11.6060804014367 | etot = -8.5301131218028 +819000 ekin = 1.4010559904149 | erot = 1.71014259913742 | epot = -11.641311711565 | etot = -8.53011312201267 +820000 ekin = 1.32995993550542 | erot = 1.83623765525366 | epot = -11.6963107130399 | etot = -8.53011312228078 +821000 ekin = 1.26306525352047 | erot = 1.97322574609999 | epot = -11.766404122207 | etot = -8.5301131225865 +822000 ekin = 1.20173310116911 | erot = 2.11438661281973 | epot = -11.8462328368839 | etot = -8.53011312289509 +823000 ekin = 1.14740078104335 | erot = 2.25282523513454 | epot = -11.9303391393447 | etot = -8.53011312316681 +824000 ekin = 1.10154739191156 | erot = 2.38216838200903 | epot = -12.013828897289 | etot = -8.53011312336843 +825000 ekin = 1.06568617705408 | erot = 2.49713206508732 | epot = -12.0929313656228 | etot = -8.53011312348143 +826000 ekin = 1.04135225335478 | erot = 2.59387442827314 | epot = -12.1653398051303 | etot = -8.53011312350241 +827000 ekin = 1.0300690753039 | erot = 2.67011598052409 | epot = -12.2302981792697 | etot = -8.53011312344172 +828000 ekin = 1.03328978432075 | erot = 2.72505389606421 | epot = -12.2884568037043 | etot = -8.53011312331935 +829000 ekin = 1.05231294056933 | erot = 2.75912544456951 | epot = -12.3415515083008 | etot = -8.53011312316197 +830000 ekin = 1.08816877276041 | erot = 2.7736892067289 | epot = -12.3919711024882 | etot = -8.53011312299886 +831000 ekin = 1.14147021989246 | erot = 2.77068822984812 | epot = -12.4422715726009 | etot = -8.53011312286037 +832000 ekin = 1.21222920790235 | erot = 2.75233425304545 | epot = -12.4946765837238 | etot = -8.53011312277601 +833000 ekin = 1.29965444893424 | erot = 2.72082561150635 | epot = -12.5505931832145 | etot = -8.53011312277386 +834000 ekin = 1.40196412281876 | erot = 2.67809188941165 | epot = -12.610169135109 | etot = -8.53011312287861 +835000 ekin = 1.51625524420434 | erot = 2.6255598705884 | epot = -12.6719282378992 | etot = -8.53011312310646 +836000 ekin = 1.63847039446473 | erot = 2.56396340709026 | epot = -12.7325469250142 | etot = -8.53011312345919 +837000 ekin = 1.76350003260508 | erot = 2.49326751329086 | epot = -12.7868806698075 | etot = -8.53011312391161 +838000 ekin = 1.88545581841659 | erot = 2.41282706135739 | epot = -12.8283960041697 | etot = -8.53011312439575 +839000 ekin = 1.99811239252423 | erot = 2.32192717675838 | epot = -12.8501526941075 | etot = -8.53011312482491 +840000 ekin = 2.09569613381754 | erot = 2.22044440711267 | epot = -12.8462536659934 | etot = -8.53011312506321 +841000 ekin = 2.17372526458142 | erot = 2.10989077519493 | epot = -12.8137291647737 | etot = -8.53011312499732 +842000 ekin = 2.22978701489745 | erot = 1.99424893653508 | epot = -12.7541490760042 | etot = -8.53011312457168 +843000 ekin = 2.26403143579391 | erot = 1.88022583110555 | epot = -12.674370390718 | etot = -8.53011312381855 +844000 ekin = 2.27916623050959 | erot = 1.77673401952997 | epot = -12.5860133728978 | etot = -8.5301131228582 +845000 ekin = 2.27988872464566 | erot = 1.69367250750107 | epot = -12.5036743540144 | etot = -8.5301131218677 +846000 ekin = 2.27183600928308 | erot = 1.64035007883682 | epot = -12.4422992091634 | etot = -8.53011312104352 +847000 ekin = 2.26027572817844 | erot = 1.6239672341206 | epot = -12.4143560828269 | etot = -8.53011312052791 +848000 ekin = 2.24926761303696 | erot = 1.64823314902357 | epot = -12.4276138824767 | etot = -8.53011312041621 +849000 ekin = 2.2409304996373 | erot = 1.7127191869587 | epot = -12.4837628073227 | etot = -8.53011312072673 +850000 ekin = 2.23528630972878 | erot = 1.81271493779141 | epot = -12.5781143689312 | etot = -8.53011312141102 +851000 ekin = 2.23059418781143 | erot = 1.93958610382867 | epot = -12.7002934140097 | etot = -8.53011312236962 +852000 ekin = 2.22400796081198 | erot = 2.08159933081266 | epot = -12.8357204149898 | etot = -8.53011312336517 +853000 ekin = 2.21277994498023 | erot = 2.22526716129808 | epot = -12.9681602307806 | etot = -8.53011312450228 +854000 ekin = 2.19416370961739 | erot = 2.35673636874866 | epot = -13.0810132038027 | etot = -8.53011312543664 +855000 ekin = 2.16598116515109 | erot = 2.46372761528164 | epot = -13.159821906468 | etot = -8.53011312603531 +856000 ekin = 2.12753272380137 | erot = 2.53738513635797 | epot = -13.1950309863878 | etot = -8.53011312622846 +857000 ekin = 2.07957021480506 | erot = 2.5733641191515 | epot = -13.1830474599809 | etot = -8.53011312602436 +858000 ekin = 2.02398845904357 | erot = 2.57205351926334 | epot = -13.1261551038021 | etot = -8.53011312549514 +859000 ekin = 1.96347606560471 | erot = 2.538301329127 | epot = -13.0318905195264 | etot = -8.53011312479471 +860000 ekin = 1.90079123527623 | erot = 2.47952673186276 | epot = -12.9104310912327 | etot = -8.53011312409367 +861000 ekin = 1.83808336626078 | erot = 2.40350575738459 | epot = -12.771702247107 | etot = -8.53011312346161 +862000 ekin = 1.7769226964898 | erot = 2.31773605221603 | epot = -12.6247718716715 | etot = -8.53011312296563 +863000 ekin = 1.71824491583962 | erot = 2.22850238053643 | epot = -12.4768604189972 | etot = -8.53011312262119 +864000 ekin = 1.66247784195644 | erot = 2.14047748401912 | epot = -12.3330684483814 | etot = -8.53011312240586 +865000 ekin = 1.60977147001189 | erot = 2.05677487411754 | epot = -12.1966594664085 | etot = -8.53011312227909 +866000 ekin = 1.5602354279003 | erot = 1.97927297432111 | epot = -12.0696215244206 | etot = -8.53011312219923 +867000 ekin = 1.5141162515596 | erot = 1.90904243445895 | epot = -11.95327180815 | etot = -8.53011312213141 +868000 ekin = 1.47188909913906 | erot = 1.84677021416781 | epot = -11.8487724353568 | etot = -8.53011312204993 +869000 ekin = 1.43450342551766 | erot = 1.79302433223088 | epot = -11.7576408796875 | etot = -8.53011312193895 +870000 ekin = 1.40309125560257 | erot = 1.74850970124891 | epot = -11.6817140786662 | etot = -8.53011312181474 +871000 ekin = 1.37958721284379 | erot = 1.71440263903883 | epot = -11.6241029734475 | etot = -8.53011312156489 +872000 ekin = 1.36659086815741 | erot = 1.69146102325433 | epot = -11.5881650131034 | etot = -8.53011312169162 +873000 ekin = 1.36373253533302 | erot = 1.68047336436782 | epot = -11.5743190213543 | etot = -8.53011312165341 +874000 ekin = 1.37056306917168 | erot = 1.68272728098881 | epot = -11.5834034718139 | etot = -8.53011312165341 +875000 ekin = 1.3864192230475 | erot = 1.69919412002808 | epot = -11.6157264647898 | etot = -8.53011312171422 +876000 ekin = 1.41041928725535 | erot = 1.73002723125778 | epot = -11.6705596403935 | etot = -8.53011312188036 +877000 ekin = 1.44135762457885 | erot = 1.77412255949985 | epot = -11.7455933061831 | etot = -8.53011312210442 +878000 ekin = 1.47769632418173 | erot = 1.82989689230891 | epot = -11.8377063388571 | etot = -8.53011312236644 +879000 ekin = 1.51786971939981 | erot = 1.89513519880948 | epot = -11.9431180408527 | etot = -8.53011312264339 +880000 ekin = 1.56043024313837 | erot = 1.96714021039869 | epot = -12.0576835764586 | etot = -8.53011312292149 +881000 ekin = 1.60413749600546 | erot = 2.04284304208084 | epot = -12.1770936612861 | etot = -8.53011312319976 +882000 ekin = 1.64798530769034 | erot = 2.11880523098331 | epot = -12.2969036621876 | etot = -8.53011312351396 +883000 ekin = 1.69122698488457 | erot = 2.19098801160399 | epot = -12.4123281203044 | etot = -8.53011312381588 +884000 ekin = 1.73324713426401 | erot = 2.25513555685009 | epot = -12.518495815234 | etot = -8.5301131241199 +885000 ekin = 1.77353313459879 | erot = 2.30696174268605 | epot = -12.6106080016839 | etot = -8.53011312439907 +886000 ekin = 1.81168812334986 | erot = 2.34253084485012 | epot = -12.6843320928115 | etot = -8.53011312461151 +887000 ekin = 1.84747843477679 | erot = 2.35884841151242 | epot = -12.7364399709989 | etot = -8.53011312470974 +888000 ekin = 1.8809005510878 | erot = 2.35429714156542 | epot = -12.765310817859 | etot = -8.53011312520577 +889000 ekin = 1.91199067528862 | erot = 2.32652877039544 | epot = -12.768632570677 | etot = -8.53011312499295 +890000 ekin = 1.94125303800117 | erot = 2.27732909895155 | epot = -12.748695261539 | etot = -8.53011312458633 +891000 ekin = 1.96982663207205 | erot = 2.21178980997174 | epot = -12.7117295661083 | etot = -8.53011312406448 +892000 ekin = 1.99917310247387 | erot = 2.13642241819792 | epot = -12.6657086442081 | etot = -8.53011312353632 +893000 ekin = 2.03065310417621 | erot = 2.05798315745513 | epot = -12.6187493847446 | etot = -8.53011312311324 +894000 ekin = 2.06504907974643 | erot = 1.98231723802894 | epot = -12.5774794406568 | etot = -8.53011312288139 +895000 ekin = 2.1021701839369 | erot = 1.91347939811021 | epot = -12.5457627049308 | etot = -8.53011312288371 +896000 ekin = 2.14066929405318 | erot = 1.85328312216171 | epot = -12.5240655391746 | etot = -8.53011312295969 +897000 ekin = 2.178881820565 | erot = 1.80140384588356 | epot = -12.5103987897421 | etot = -8.53011312329356 +898000 ekin = 2.21472564822659 | erot = 1.75594910479886 | epot = -12.5007878767186 | etot = -8.53011312369316 +899000 ekin = 2.24569847682448 | erot = 1.71401610886598 | epot = -12.4898277097489 | etot = -8.53011312405846 +900000 ekin = 2.26993925536076 | erot = 1.67248576848322 | epot = -12.4725381481436 | etot = -8.53011312429966 +901000 ekin = 2.28606210285319 | erot = 1.62859738727852 | epot = -12.4447726152915 | etot = -8.53011312515978 +902000 ekin = 2.29042230831636 | erot = 1.5793253202287 | epot = -12.3998607538073 | etot = -8.53011312526226 +903000 ekin = 2.28273813410943 | erot = 1.52313711845165 | epot = -12.3359883777638 | etot = -8.53011312520276 +904000 ekin = 2.26413659223501 | erot = 1.45995102717232 | epot = -12.2542007444324 | etot = -8.53011312502506 +905000 ekin = 2.23616199953194 | erot = 1.3908814816503 | epot = -12.1571566059684 | etot = -8.53011312478611 +906000 ekin = 2.20025203977182 | erot = 1.31795883319974 | epot = -12.0483239975002 | etot = -8.53011312452868 +907000 ekin = 2.15741247689603 | erot = 1.2438599330396 | epot = -11.9313855341998 | etot = -8.53011312426417 +908000 ekin = 2.10821372462424 | erot = 1.1717580431236 | epot = -11.8100848916697 | etot = -8.53011312392188 +909000 ekin = 2.0533959765881 | erot = 1.1052361371856 | epot = -11.6887452373732 | etot = -8.53011312359954 +910000 ekin = 1.9943738863817 | erot = 1.04840591874189 | epot = -11.5728929279094 | etot = -8.53011312278585 +911000 ekin = 1.93472408693351 | erot = 1.00596121880683 | epot = -11.4707984281725 | etot = -8.5301131224322 +912000 ekin = 1.87571848813277 | erot = 0.981792282316895 | epot = -11.3876238925624 | etot = -8.53011312211272 +913000 ekin = 1.81824273788001 | erot = 0.979441553334138 | epot = -11.3277974130229 | etot = -8.53011312180879 +914000 ekin = 1.76344481711691 | erot = 1.00191943330251 | epot = -11.2954773719654 | etot = -8.53011312154602 +915000 ekin = 1.7126576881857 | erot = 1.05137542112642 | epot = -11.2941462307085 | etot = -8.53011312139635 +916000 ekin = 1.66711519083649 | erot = 1.12858220203734 | epot = -11.3258105142236 | etot = -8.53011312134976 +917000 ekin = 1.62763655706369 | erot = 1.23302216364502 | epot = -11.3907718421526 | etot = -8.53011312144387 +918000 ekin = 1.59455865390118 | erot = 1.36258552106968 | epot = -11.4872572966706 | etot = -8.53011312169973 +919000 ekin = 1.56762589341053 | erot = 1.51336619450293 | epot = -11.6111052100433 | etot = -8.53011312212986 +920000 ekin = 1.5459315744459 | erot = 1.67955640230889 | epot = -11.7556010994845 | etot = -8.5301131227297 +921000 ekin = 1.52794851746671 | erot = 1.85350715088319 | epot = -11.9115687918171 | etot = -8.53011312346721 +922000 ekin = 1.51169520995972 | erot = 2.02606206722181 | epot = -12.067870401454 | etot = -8.5301131242725 +923000 ekin = 1.4950738423225 | erot = 2.18724898577061 | epot = -12.2124359531328 | etot = -8.53011312503965 +924000 ekin = 1.47635971360147 | erot = 2.3273137721574 | epot = -12.3337866114077 | etot = -8.53011312564884 +925000 ekin = 1.45471560014799 | erot = 2.43791688064627 | epot = -12.4227456067991 | etot = -8.53011312600481 +926000 ekin = 1.43051136688473 | erot = 2.51317740630618 | epot = -12.473801899265 | etot = -8.5301131260741 +927000 ekin = 1.40525402734709 | erot = 2.5502684120006 | epot = -12.4856355652394 | etot = -8.53011312589176 +928000 ekin = 1.38111941156276 | erot = 2.54946754684865 | epot = -12.4607000839444 | etot = -8.53011312553295 +929000 ekin = 1.3599258527227 | erot = 2.51283593008147 | epot = -12.4028749085046 | etot = -8.53011312570039 +930000 ekin = 1.34158304398879 | erot = 2.44241099548171 | epot = -12.3141071645525 | etot = -8.53011312508201 +931000 ekin = 1.32656952525849 | erot = 2.34647203270355 | epot = -12.2031546823254 | etot = -8.53011312436339 +932000 ekin = 1.31543664435648 | erot = 2.23535488464011 | epot = -12.0809046526125 | etot = -8.53011312361596 +933000 ekin = 1.30881286163193 | erot = 2.11983848401906 | epot = -11.95876446856 | etot = -8.53011312290906 +934000 ekin = 1.30745813481004 | erot = 2.01001812957095 | epot = -11.847589386687 | etot = -8.53011312230597 +935000 ekin = 1.31220098075813 | erot = 1.9144462159354 | epot = -11.7567603185262 | etot = -8.53011312183264 +936000 ekin = 1.32391210171741 | erot = 1.83958727483052 | epot = -11.6936124980695 | etot = -8.53011312152155 +937000 ekin = 1.34332477770944 | erot = 1.78957436751403 | epot = -11.6630122666068 | etot = -8.53011312138337 +938000 ekin = 1.37084792782475 | erot = 1.76617827878338 | epot = -11.6671393280291 | etot = -8.53011312142099 +939000 ekin = 1.40642931156935 | erot = 1.76890798114243 | epot = -11.7054504143274 | etot = -8.53011312161567 +940000 ekin = 1.44952186396214 | erot = 1.79522267831962 | epot = -11.7748576642577 | etot = -8.53011312197589 +941000 ekin = 1.49902948237103 | erot = 1.84063576443025 | epot = -11.8697783692815 | etot = -8.53011312248019 +942000 ekin = 1.55333690858857 | erot = 1.89898447953926 | epot = -11.9824345112207 | etot = -8.53011312309283 +943000 ekin = 1.61046155751663 | erot = 1.96285592643144 | epot = -12.1034306077032 | etot = -8.53011312375517 +944000 ekin = 1.66830779522798 | erot = 2.02424654682829 | epot = -12.2226674664441 | etot = -8.53011312438782 +945000 ekin = 1.72497649037036 | erot = 2.07544351226215 | epot = -12.3305331275389 | etot = -8.53011312490634 +946000 ekin = 1.77904739723341 | erot = 2.10999554440733 | epot = -12.4191560668842 | etot = -8.53011312524345 +947000 ekin = 1.82974878179447 | erot = 2.1235525324349 | epot = -12.4834144395953 | etot = -8.53011312536594 +948000 ekin = 1.87696379691168 | erot = 2.11435368830262 | epot = -12.5214306113984 | etot = -8.53011312618414 +949000 ekin = 1.91868968736917 | erot = 2.08113041335485 | epot = -12.5299332268206 | etot = -8.5301131260966 +950000 ekin = 1.9525004135901 | erot = 2.02444704715869 | epot = -12.5070605866164 | etot = -8.5301131258676 +951000 ekin = 1.97786377860527 | erot = 1.94836556912359 | epot = -12.4563424732691 | etot = -8.53011312554024 +952000 ekin = 1.9944032290504 | erot = 1.85836147892453 | epot = -12.3828778331274 | etot = -8.53011312515246 +953000 ekin = 2.00183985525881 | erot = 1.76077654422277 | epot = -12.2927295242209 | etot = -8.53011312473928 +954000 ekin = 1.99994520547877 | erot = 1.66230521855966 | epot = -12.1923635483737 | etot = -8.53011312433531 +955000 ekin = 1.98848781981187 | erot = 1.56949886940344 | epot = -12.0880998131888 | etot = -8.53011312397347 +956000 ekin = 1.96719248394502 | erot = 1.48830066036356 | epot = -11.9856062679853 | etot = -8.53011312367672 +957000 ekin = 1.93576585488627 | erot = 1.42368152914648 | epot = -11.8895605074794 | etot = -8.53011312344665 +958000 ekin = 1.89410745234003 | erot = 1.37950780385348 | epot = -11.8037283792177 | etot = -8.53011312302418 +959000 ekin = 1.84388200430519 | erot = 1.35926323940579 | epot = -11.7332583666525 | etot = -8.53011312294155 +960000 ekin = 1.78600307796804 | erot = 1.36453982266578 | epot = -11.6806560234787 | etot = -8.5301131228449 +961000 ekin = 1.72147601474392 | erot = 1.39572572980377 | epot = -11.6473148672821 | etot = -8.53011312273439 +962000 ekin = 1.65221748522298 | erot = 1.4524380059047 | epot = -11.634768613771 | etot = -8.53011312264331 +963000 ekin = 1.58085937428924 | erot = 1.53327574296057 | epot = -11.6442482398661 | etot = -8.5301131226163 +964000 ekin = 1.51040322860342 | erot = 1.63556392925408 | epot = -11.6760802805373 | etot = -8.53011312267978 +965000 ekin = 1.44386585375724 | erot = 1.75533146867227 | epot = -11.7293104452584 | etot = -8.53011312282892 +966000 ekin = 1.38401833471973 | erot = 1.88762696925973 | epot = -11.8017584270141 | etot = -8.53011312303459 +967000 ekin = 1.33323855953349 | erot = 2.02706397428321 | epot = -11.8904156570798 | etot = -8.53011312326314 +968000 ekin = 1.29343485248817 | erot = 2.16835538295901 | epot = -11.9919033589444 | etot = -8.5301131234972 +969000 ekin = 1.26598521106734 | erot = 2.30662029880419 | epot = -12.1027186336141 | etot = -8.53011312374257 +970000 ekin = 1.25166332225621 | erot = 2.43738938129169 | epot = -12.2191658275689 | etot = -8.53011312402102 +971000 ekin = 1.25055917700305 | erot = 2.55639826953469 | epot = -12.3370705708916 | etot = -8.53011312435386 +972000 ekin = 1.26202503907091 | erot = 2.65935818610938 | epot = -12.4514963499266 | etot = -8.53011312474633 +973000 ekin = 1.28468152304165 | erot = 2.7419011912667 | epot = -12.5566958394848 | etot = -8.53011312517645 +974000 ekin = 1.31650940090302 | erot = 2.79983470555576 | epot = -12.64645723205 | etot = -8.5301131255912 +975000 ekin = 1.35503678006273 | erot = 2.82973569321423 | epot = -12.7148855991916 | etot = -8.53011312591465 +976000 ekin = 1.39761106498719 | erot = 2.82978989838473 | epot = -12.757514089437 | etot = -8.53011312606513 +977000 ekin = 1.44171682389421 | erot = 2.80065378127379 | epot = -12.7724837311485 | etot = -8.53011312598046 +978000 ekin = 1.48527676990002 | erot = 2.74603610444877 | epot = -12.7614259999919 | etot = -8.53011312564306 +979000 ekin = 1.52686311961727 | erot = 2.67272089285715 | epot = -12.7296971376689 | etot = -8.53011312519452 +980000 ekin = 1.56541539899103 | erot = 2.58979180874379 | epot = -12.6853203322416 | etot = -8.53011312450682 +981000 ekin = 1.60047076755278 | erot = 2.50776375788484 | epot = -12.6383476492396 | etot = -8.53011312380203 +982000 ekin = 1.63230110544612 | erot = 2.4371358709238 | epot = -12.5995500991041 | etot = -8.53011312273413 +983000 ekin = 1.66203103419979 | erot = 2.38850313754454 | epot = -12.5806472942433 | etot = -8.53011312249895 +984000 ekin = 1.68995499845883 | erot = 2.36799213713314 | epot = -12.5880602580152 | etot = -8.53011312242327 +985000 ekin = 1.71562347305687 | erot = 2.37731939437886 | epot = -12.6230559899602 | etot = -8.5301131225245 +986000 ekin = 1.73850018165221 | erot = 2.41550202449183 | epot = -12.6841153289477 | etot = -8.53011312280364 +987000 ekin = 1.75791457125372 | erot = 2.47889412323631 | epot = -12.7669218177375 | etot = -8.53011312324744 +988000 ekin = 1.77306329674351 | erot = 2.56140924190709 | epot = -12.8645856624799 | etot = -8.53011312382927 +989000 ekin = 1.78306912448162 | erot = 2.65491288897562 | epot = -12.9680951379619 | etot = -8.53011312450465 +990000 ekin = 1.78711020292118 | erot = 2.74980403799705 | epot = -13.0670273661277 | etot = -8.53011312520947 +991000 ekin = 1.78462774609367 | erot = 2.83581968224401 | epot = -13.1505605541974 | etot = -8.53011312585969 +992000 ekin = 1.77558737009051 | erot = 2.9030532797661 | epot = -13.2087537762222 | etot = -8.53011312636561 +993000 ekin = 1.76071115996797 | erot = 2.94306881053661 | epot = -13.2338930971609 | etot = -8.53011312665633 +994000 ekin = 1.74155803531838 | erot = 2.94987789379559 | epot = -13.2215490558191 | etot = -8.53011312670518 +995000 ekin = 1.7203663536266 | erot = 2.92053034159358 | epot = -13.171009821755 | etot = -8.53011312653484 +996000 ekin = 1.69928711841057 | erot = 2.85461248857379 | epot = -13.0840127336349 | etot = -8.53011312665052 +997000 ekin = 1.67961730933121 | erot = 2.75367224451106 | epot = -12.963402680013 | etot = -8.53011312617073 +998000 ekin = 1.66320821768275 | erot = 2.62336921200245 | epot = -12.8166905552899 | etot = -8.53011312560465 +999000 ekin = 1.65140969902045 | erot = 2.47137959793784 | epot = -12.652902421993 | etot = -8.5301131250347 +1000000 ekin = 1.64474900328077 | erot = 2.30633529340389 | epot = -12.481197421207 | etot = -8.53011312452231 + 1000000 0.12183326 -1.2831408 0.035021017 -1.0836448 3.258552e-05 64000 +Loop time of 11.8041 on 1 procs for 1000000 steps with 10 atoms + +Performance: 73194.863 tau/day, 84716.277 timesteps/s, 847.163 katom-step/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.445 | 9.445 | 9.445 | 0.0 | 80.01 +Bond | 0.46517 | 0.46517 | 0.46517 | 0.0 | 3.94 +Neigh | 0.006341 | 0.006341 | 0.006341 | 0.0 | 0.05 +Comm | 0.2823 | 0.2823 | 0.2823 | 0.0 | 2.39 +Output | 0.12112 | 0.12112 | 0.12112 | 0.0 | 1.03 +Modify | 1.1786 | 1.1786 | 1.1786 | 0.0 | 9.98 +Other | | 0.3055 | | | 2.59 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:11 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..17a927bae2 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 @@ -0,0 +1,1120 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna2.lj with DATE: 2024-04-21 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (stk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (hbond) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (xstk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (coaxstk) file oxdna2.lj with DATE: 2024-04-21 +Reading oxdna potential (dh) file oxdna2.lj with DATE: 2024-04-21 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.3014979 + ghost atom cutoff = 4.3014979 + binsize = 2.150749, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +WARNING: Communication cutoff adjusted to 4.301497916929199 (src/comm.cpp:739) +0 ekin = 1.10853632272819 | erot = 2.81573649976629 | epot = -12.4543859162177 | etot = -8.5301130937232 +Per MPI rank memory allocation (min/avg/max) = 7.451 | 7.452 | 7.453 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.082113802 -1.3525648 0.10712616 -1.134585 -6.3346859e-05 64000 +1000 ekin = 1.07575988625876 | erot = 2.91276427031684 | epot = -12.5186372505574 | etot = -8.53011309398184 +2000 ekin = 1.05292961692331 | erot = 3.00631080619826 | epot = -12.5893535174382 | etot = -8.53011309431666 +3000 ekin = 1.0404793567822 | erot = 3.09099198685795 | epot = -12.6615844383057 | etot = -8.53011309466551 +4000 ekin = 1.03797149598187 | erot = 3.16182957406827 | epot = -12.7299141650203 | etot = -8.53011309497019 +5000 ekin = 1.04436175992636 | erot = 3.21484050133171 | epot = -12.7893153564538 | etot = -8.53011309519572 +6000 ekin = 1.05826196166896 | erot = 3.24734130245545 | epot = -12.8357163594552 | etot = -8.53011309533081 +7000 ekin = 1.07813397987524 | erot = 3.25800057687381 | epot = -12.8662476521274 | etot = -8.53011309537834 +8000 ekin = 1.10242233608897 | erot = 3.24677351912865 | epot = -12.8793089505568 | etot = -8.53011309533922 +9000 ekin = 1.12966192883192 | erot = 3.21481512313357 | epot = -12.8745901471787 | etot = -8.53011309521326 +10000 ekin = 1.15857365226601 | erot = 3.16442800302929 | epot = -12.8531147503058 | etot = -8.53011309501054 +11000 ekin = 1.18812580536513 | erot = 3.09887248462026 | epot = -12.8171113847419 | etot = -8.53011309475649 +12000 ekin = 1.21753508254985 | erot = 3.02200194393141 | epot = -12.7696501209729 | etot = -8.53011309449164 +13000 ekin = 1.24620583234319 | erot = 2.93774306031816 | epot = -12.7140619869169 | etot = -8.53011309425555 +14000 ekin = 1.27363535726507 | erot = 2.84960621277601 | epot = -12.6533546641221 | etot = -8.53011309408098 +15000 ekin = 1.29932429763731 | erot = 2.76035703495632 | epot = -12.5897944265539 | etot = -8.53011309396028 +16000 ekin = 1.32272478678513 | erot = 2.67209376312961 | epot = -12.5249316438079 | etot = -8.53011309389312 +17000 ekin = 1.34324184048093 | erot = 2.58606256429299 | epot = -12.4594174987188 | etot = -8.53011309394488 +18000 ekin = 1.36028413036245 | erot = 2.5024472582327 | epot = -12.3928444826192 | etot = -8.53011309402405 +19000 ekin = 1.3733572823133 | erot = 2.42064483701924 | epot = -12.32411521343 | etot = -8.53011309409746 +20000 ekin = 1.38218242867039 | erot = 2.34004763399698 | epot = -12.2523431568013 | etot = -8.53011309413396 +21000 ekin = 1.38682228720772 | erot = 2.26037911407471 | epot = -12.177314495392 | etot = -8.53011309410961 +22000 ekin = 1.38779551760391 | erot = 2.18193012018468 | epot = -12.0998387317995 | etot = -8.53011309401088 +23000 ekin = 1.38615925697238 | erot = 2.10566093427181 | epot = -12.021933285081 | etot = -8.53011309383678 +24000 ekin = 1.38353970337944 | erot = 2.03315888827121 | epot = -11.9468116852497 | etot = -8.530113093599 +25000 ekin = 1.38209065002968 | erot = 1.96646602495015 | epot = -11.8786697683023 | etot = -8.53011309332244 +26000 ekin = 1.38436080324078 | erot = 1.90779815728283 | epot = -11.8222720535675 | etot = -8.53011309304391 +27000 ekin = 1.39305591970655 | erot = 1.8591880530227 | epot = -11.7823570655396 | etot = -8.53011309281036 +28000 ekin = 1.41069326836982 | erot = 1.82208843481197 | epot = -11.7628947958564 | etot = -8.53011309267462 +29000 ekin = 1.43917287732197 | erot = 1.79698086203717 | epot = -11.7662668320475 | etot = -8.53011309268833 +30000 ekin = 1.47932849918231 | erot = 1.78306055931677 | epot = -11.7925021513846 | etot = -8.53011309288555 +31000 ekin = 1.53057628219279 | erot = 1.77809666847726 | epot = -11.8387860439327 | etot = -8.53011309326269 +32000 ekin = 1.59082591350698 | erot = 1.77861870572293 | epot = -11.8995577129104 | etot = -8.53011309368051 +33000 ekin = 1.65668666319862 | erot = 1.78084924850019 | epot = -11.967649005945 | etot = -8.53011309424617 +34000 ekin = 1.72400978324383 | erot = 1.78052778818401 | epot = -12.0346506661702 | etot = -8.53011309474232 +35000 ekin = 1.78861238256258 | erot = 1.77409588873529 | epot = -12.0928213663776 | etot = -8.53011309507968 +36000 ekin = 1.84692171859322 | erot = 1.75957152442149 | epot = -12.1366063382344 | etot = -8.53011309521972 +37000 ekin = 1.89635505211505 | erot = 1.73677582238477 | epot = -12.1632439696809 | etot = -8.53011309518106 +38000 ekin = 1.93537564106362 | erot = 1.70707948670443 | epot = -12.1725682227887 | etot = -8.53011309502064 +39000 ekin = 1.96330319937453 | erot = 1.67283213027277 | epot = -12.1662484244534 | etot = -8.53011309480613 +40000 ekin = 1.98002136738534 | erot = 1.63672123005977 | epot = -12.1468556920403 | etot = -8.53011309459515 +41000 ekin = 1.98570586801275 | erot = 1.60124465405429 | epot = -12.117063616483 | etot = -8.53011309441591 +42000 ekin = 1.98063892667616 | erot = 1.56840871961068 | epot = -12.0791607405716 | etot = -8.53011309428474 +43000 ekin = 1.9651238118878 | erot = 1.53942032547724 | epot = -12.0346572315589 | etot = -8.53011309419391 +44000 ekin = 1.93948381096139 | erot = 1.51506739642153 | epot = -11.9846643015137 | etot = -8.53011309413079 +45000 ekin = 1.90411789628647 | erot = 1.49583019895569 | epot = -11.9300611893209 | etot = -8.53011309407871 +46000 ekin = 1.85959054249419 | erot = 1.48193663738999 | epot = -11.8716402739047 | etot = -8.53011309402051 +47000 ekin = 1.80673127931988 | erot = 1.47351008731121 | epot = -11.8103544605731 | etot = -8.53011309394205 +48000 ekin = 1.74672194665358 | erot = 1.47069179369341 | epot = -11.7475268341804 | etot = -8.53011309383339 +49000 ekin = 1.6811537904323 | erot = 1.47372603796079 | epot = -11.6849929220836 | etot = -8.53011309369055 +50000 ekin = 1.61204360764145 | erot = 1.48300481815601 | epot = -11.6251615193119 | etot = -8.5301130935144 +51000 ekin = 1.54180688827919 | erot = 1.49907572686282 | epot = -11.5709957084491 | etot = -8.53011309330705 +52000 ekin = 1.47319223880838 | erot = 1.52262764796941 | epot = -11.525932979863 | etot = -8.53011309308517 +53000 ekin = 1.40918336186051 | erot = 1.55438319093886 | epot = -11.4936796456592 | etot = -8.53011309285979 +54000 ekin = 1.35286923285696 | erot = 1.59499333649063 | epot = -11.4779756619993 | etot = -8.5301130926517 +55000 ekin = 1.30727610104069 | erot = 1.64486884964692 | epot = -11.4822580431751 | etot = -8.53011309248744 +56000 ekin = 1.27516041362746 | erot = 1.70395929448975 | epot = -11.5092328005143 | etot = -8.53011309239705 +57000 ekin = 1.25877821290744 | erot = 1.7715304526103 | epot = -11.5604217579236 | etot = -8.53011309240586 +58000 ekin = 1.25966981557414 | erot = 1.84600740239498 | epot = -11.6357903104947 | etot = -8.53011309252561 +59000 ekin = 1.27850991703415 | erot = 1.92494493442919 | epot = -11.733567944215 | etot = -8.53011309275162 +60000 ekin = 1.31505846517362 | erot = 2.00506933713728 | epot = -11.8502408954026 | etot = -8.53011309309171 +61000 ekin = 1.36820967857689 | erot = 2.08251311350642 | epot = -11.9808358855455 | etot = -8.53011309346224 +62000 ekin = 1.43610935375694 | erot = 2.15340897405292 | epot = -12.1196314216667 | etot = -8.53011309385685 +63000 ekin = 1.51630533152243 | erot = 2.21410084325619 | epot = -12.2605192690213 | etot = -8.5301130942427 +64000 ekin = 1.60588594281046 | erot = 2.26150680600709 | epot = -12.3975058434117 | etot = -8.53011309459412 +65000 ekin = 1.70157559823958 | erot = 2.2934317361934 | epot = -12.5251204293295 | etot = -8.53011309489655 +66000 ekin = 1.79977612979936 | erot = 2.30875943510443 | epot = -12.638648660053 | etot = -8.53011309514926 +67000 ekin = 1.8965689647425 | erot = 2.30747600160478 | epot = -12.7341580617101 | etot = -8.53011309536285 +68000 ekin = 1.98772340358679 | erot = 2.29052837543634 | epot = -12.8083648745723 | etot = -8.53011309554919 +69000 ekin = 2.06877558194337 | erot = 2.25958722526862 | epot = -12.8584759029223 | etot = -8.53011309571028 +70000 ekin = 2.13523440531587 | erot = 2.21681911735311 | epot = -12.8821666185006 | etot = -8.5301130958316 +71000 ekin = 2.18292944014475 | erot = 2.16475080910326 | epot = -12.8777933451315 | etot = -8.53011309588345 +72000 ekin = 2.20845503567797 | erot = 2.10623867450861 | epot = -12.8448068060203 | etot = -8.53011309583374 +73000 ekin = 2.20961374982451 | erot = 2.04448327477891 | epot = -12.7842101202317 | etot = -8.53011309562828 +74000 ekin = 2.18583088959651 | erot = 1.98307376954826 | epot = -12.6990177544744 | etot = -8.53011309532966 +75000 ekin = 2.13819357127726 | erot = 1.92577296068293 | epot = -12.5940796268925 | etot = -8.5301130949323 +76000 ekin = 2.06931387379133 | erot = 1.87621391736399 | epot = -12.4756408856268 | etot = -8.53011309447153 +77000 ekin = 1.98314599352095 | erot = 1.83766509006174 | epot = -12.3509241775701 | etot = -8.53011309398736 +78000 ekin = 1.8846400354909 | erot = 1.81276644965543 | epot = -12.227519578665 | etot = -8.53011309351871 +79000 ekin = 1.77934330540936 | erot = 1.80331865972891 | epot = -12.1127750582402 | etot = -8.53011309310191 +80000 ekin = 1.67297594037611 | erot = 1.81012474896306 | epot = -12.0132137821112 | etot = -8.530113092772 +81000 ekin = 1.57099416873038 | erot = 1.83286904429981 | epot = -11.9339763055925 | etot = -8.53011309256232 +82000 ekin = 1.47816348110911 | erot = 1.87002999046013 | epot = -11.8783065640687 | etot = -8.53011309249949 +83000 ekin = 1.39818778462314 | erot = 1.91885160298051 | epot = -11.8471524801997 | etot = -8.53011309259605 +84000 ekin = 1.33345814529582 | erot = 1.97542175599065 | epot = -11.8389929941299 | etot = -8.53011309284345 +85000 ekin = 1.28497532516104 | erot = 2.03490617744834 | epot = -11.8499945958147 | etot = -8.53011309320533 +86000 ekin = 1.25246025395615 | erot = 2.09197660059405 | epot = -11.8745499481787 | etot = -8.53011309362848 +87000 ekin = 1.23461285408046 | erot = 2.14137296784406 | epot = -11.9060989159749 | etot = -8.53011309405039 +88000 ekin = 1.22943812073966 | erot = 2.17852719424188 | epot = -11.9380784093967 | etot = -8.53011309441514 +89000 ekin = 1.23455364871389 | erot = 2.20012041252095 | epot = -11.9647871559198 | etot = -8.53011309468496 +90000 ekin = 1.2474258057653 | erot = 2.20445455177191 | epot = -11.9819934523816 | etot = -8.53011309484435 +91000 ekin = 1.26553383084727 | erot = 2.19157144961194 | epot = -11.9872183753551 | etot = -8.53011309489588 +92000 ekin = 1.28623000858128 | erot = 2.16295140457774 | epot = -11.9792945080808 | etot = -8.53011309492179 +93000 ekin = 1.30692364344404 | erot = 2.12123926047763 | epot = -11.9582759987369 | etot = -8.53011309481527 +94000 ekin = 1.32581527393291 | erot = 2.07018243043902 | epot = -11.9261107990066 | etot = -8.53011309463468 +95000 ekin = 1.34182901778851 | erot = 2.01402433128774 | epot = -11.8859664434698 | etot = -8.53011309439352 +96000 ekin = 1.35474622264815 | erot = 1.95709566330696 | epot = -11.8419549800687 | etot = -8.5301130941136 +97000 ekin = 1.3651858824784 | erot = 1.90343342927394 | epot = -11.7987324055814 | etot = -8.53011309382907 +98000 ekin = 1.37438024241784 | erot = 1.85642234303625 | epot = -11.7609156790417 | etot = -8.53011309358765 +99000 ekin = 1.38375494732497 | erot = 1.818460002256 | epot = -11.7323280430253 | etot = -8.53011309344429 +100000 ekin = 1.39439154293922 | erot = 1.7906626113338 | epot = -11.7151672477191 | etot = -8.53011309344611 +101000 ekin = 1.4065061005343 | erot = 1.77268374626491 | epot = -11.7093029404211 | etot = -8.53011309362191 +102000 ekin = 1.41909865539709 | erot = 1.76268825953967 | epot = -11.7119000089019 | etot = -8.53011309396517 +103000 ekin = 1.42990225853212 | erot = 1.75756086568118 | epot = -11.7175762186405 | etot = -8.53011309442716 +104000 ekin = 1.43568960458639 | erot = 1.75339758186005 | epot = -11.7192002813658 | etot = -8.53011309491935 +105000 ekin = 1.43290883108536 | erot = 1.74626770102834 | epot = -11.7092896274386 | etot = -8.5301130953249 +106000 ekin = 1.41854295074829 | erot = 1.73316545657385 | epot = -11.6818215028411 | etot = -8.53011309551901 +107000 ekin = 1.39103174229088 | erot = 1.71299001598399 | epot = -11.6341348536724 | etot = -8.53011309539752 +108000 ekin = 1.35105252774005 | erot = 1.68731521419128 | epot = -11.5684808368424 | etot = -8.5301130949111 +109000 ekin = 1.30192293440572 | erot = 1.6606605582455 | epot = -11.4926965867502 | etot = -8.53011309409895 +110000 ekin = 1.24955692632168 | erot = 1.64004235665893 | epot = -11.41971237546 | etot = -8.5301130924794 +111000 ekin = 1.20373683101898 | erot = 1.63405660630875 | epot = -11.3679065290106 | etot = -8.53011309168286 +112000 ekin = 1.17136800050142 | erot = 1.64951573593143 | epot = -11.3509968276171 | etot = -8.53011309118424 +113000 ekin = 1.15643737252659 | erot = 1.6900200056894 | epot = -11.3765704693513 | etot = -8.53011309113527 +114000 ekin = 1.16016664919805 | erot = 1.75506593403365 | epot = -11.4453456747902 | etot = -8.53011309155847 +115000 ekin = 1.18078581898516 | erot = 1.83995213492409 | epot = -11.5508510462435 | etot = -8.53011309233425 +116000 ekin = 1.21421955357408 | erot = 1.93685465219959 | epot = -11.6811872990248 | etot = -8.53011309325109 +117000 ekin = 1.25536144135774 | erot = 2.03668558524356 | epot = -11.8221601206883 | etot = -8.53011309408699 +118000 ekin = 1.29940451384038 | erot = 2.13109010342711 | epot = -11.9606077119486 | etot = -8.53011309468107 +119000 ekin = 1.34277477684622 | erot = 2.2139739395163 | epot = -12.0868618113314 | etot = -8.53011309496886 +120000 ekin = 1.38347061820567 | erot = 2.28221236483783 | epot = -12.195796078023 | etot = -8.53011309497945 +121000 ekin = 1.42087086651062 | erot = 2.33551129662439 | epot = -12.286495257938 | etot = -8.53011309480299 +122000 ekin = 1.45522638977893 | erot = 2.37564292906074 | epot = -12.3609824133916 | etot = -8.53011309455193 +123000 ekin = 1.48707582665851 | erot = 2.40539124222057 | epot = -12.4225801632066 | etot = -8.53011309432755 +124000 ekin = 1.51676676843729 | erot = 2.42751903858547 | epot = -12.4743989012238 | etot = -8.53011309420102 +125000 ekin = 1.5441745977234 | erot = 2.44396324559633 | epot = -12.5182509375264 | etot = -8.53011309420666 +126000 ekin = 1.56863810035623 | erot = 2.45535112725137 | epot = -12.5541023219514 | etot = -8.53011309434382 +127000 ekin = 1.58908101361922 | erot = 2.4608536627411 | epot = -12.580047770942 | etot = -8.53011309458164 +128000 ekin = 1.60427083888446 | erot = 2.4583616853006 | epot = -12.592745619049 | etot = -8.5301130948639 +129000 ekin = 1.61315658291899 | erot = 2.44495811201836 | epot = -12.5882277900551 | etot = -8.53011309511771 +130000 ekin = 1.61521763497892 | erot = 2.41762859319586 | epot = -12.5629593234414 | etot = -8.53011309526658 +131000 ekin = 1.61074673258845 | erot = 2.37408565093732 | epot = -12.514945478776 | etot = -8.53011309525019 +132000 ekin = 1.60099281445362 | erot = 2.31350559906005 | epot = -12.4446115085561 | etot = -8.53011309504247 +133000 ekin = 1.58811839137776 | erot = 2.23695676757785 | epot = -12.3551882536167 | etot = -8.5301130946611 +134000 ekin = 1.57497837856398 | erot = 2.14737907152235 | epot = -12.2524705442819 | etot = -8.53011309419559 +135000 ekin = 1.56467799512196 | erot = 2.04902291672334 | epot = -12.1438140054853 | etot = -8.53011309363996 +136000 ekin = 1.5603330606487 | erot = 1.94701578013103 | epot = -12.0374619338914 | etot = -8.53011309311163 +137000 ekin = 1.56479379508655 | erot = 1.84660873227908 | epot = -11.9415156200319 | etot = -8.53011309266624 +138000 ekin = 1.58030314703457 | erot = 1.75245153796817 | epot = -11.8628677773364 | etot = -8.53011309233368 +139000 ekin = 1.60833080358471 | erot = 1.66826609139363 | epot = -11.8067099871002 | etot = -8.53011309212189 +140000 ekin = 1.64949521723208 | erot = 1.59676588041037 | epot = -11.7763741896652 | etot = -8.53011309202271 +141000 ekin = 1.70355355174871 | erot = 1.53975804779902 | epot = -11.773424691523 | etot = -8.53011309197523 +142000 ekin = 1.76943720118451 | erot = 1.49859523121373 | epot = -11.7981455244588 | etot = -8.53011309206051 +143000 ekin = 1.84530405880869 | erot = 1.4738494585272 | epot = -11.8492666095581 | etot = -8.53011309222225 +144000 ekin = 1.92861465369007 | erot = 1.46549379274605 | epot = -11.9242215388109 | etot = -8.53011309237475 +145000 ekin = 2.01648600784357 | erot = 1.47353305209417 | epot = -12.0201321527186 | etot = -8.53011309278083 +146000 ekin = 2.1045821227571 | erot = 1.49637875128969 | epot = -12.1310739673145 | etot = -8.53011309326768 +147000 ekin = 2.18785677137355 | erot = 1.53145919849867 | epot = -12.2494290636981 | etot = -8.53011309382584 +148000 ekin = 2.26104758516568 | erot = 1.57543986095963 | epot = -12.3666005405499 | etot = -8.53011309442461 +149000 ekin = 2.31910091716388 | erot = 1.62430319702527 | epot = -12.4735172091952 | etot = -8.53011309500607 +150000 ekin = 2.35773821658458 | erot = 1.67365853244602 | epot = -12.5615098445244 | etot = -8.53011309549382 +151000 ekin = 2.37405078100319 | erot = 1.71926726329679 | epot = -12.6234311401169 | etot = -8.53011309581693 +152000 ekin = 2.36692545461656 | erot = 1.75764773901397 | epot = -12.6546862895674 | etot = -8.5301130959369 +153000 ekin = 2.33712749183116 | erot = 1.78656744402779 | epot = -12.6538080317174 | etot = -8.53011309585849 +154000 ekin = 2.28703010669305 | erot = 1.80529001826418 | epot = -12.6224332205717 | etot = -8.5301130956145 +155000 ekin = 2.2201721095778 | erot = 1.81456905274717 | epot = -12.5648542575676 | etot = -8.53011309524261 +156000 ekin = 2.14087216650219 | erot = 1.8164601718651 | epot = -12.4874454331419 | etot = -8.53011309477457 +157000 ekin = 2.05398632051204 | erot = 1.81400844427827 | epot = -12.3981078590404 | etot = -8.53011309425007 +158000 ekin = 1.96465269026368 | erot = 1.81075171604387 | epot = -12.3055175001036 | etot = -8.53011309379607 +159000 ekin = 1.87738211880393 | erot = 1.8097580903437 | epot = -12.2172533025071 | etot = -8.53011309335947 +160000 ekin = 1.79637755657255 | erot = 1.81368342474314 | epot = -12.1401740743807 | etot = -8.53011309306501 +161000 ekin = 1.72479660822577 | erot = 1.82417298786708 | epot = -12.0790826890685 | etot = -8.53011309297568 +162000 ekin = 1.66403255347704 | erot = 1.84141406703924 | epot = -12.0355597136267 | etot = -8.53011309311038 +163000 ekin = 1.61344211817714 | erot = 1.86416684407958 | epot = -12.0077220556825 | etot = -8.53011309342581 +164000 ekin = 1.57053136480723 | erot = 1.89024538669912 | epot = -11.9908898453323 | etot = -8.53011309382591 +165000 ekin = 1.53158684055339 | erot = 1.91735211282864 | epot = -11.9790520475678 | etot = -8.53011309418574 +166000 ekin = 1.49257533008441 | erot = 1.94405290672982 | epot = -11.9667413312092 | etot = -8.53011309439499 +167000 ekin = 1.4500473961487 | erot = 1.97054282183292 | epot = -11.9507033123734 | etot = -8.53011309439173 +168000 ekin = 1.40180339426623 | erot = 1.99893184094582 | epot = -11.9308483293898 | etot = -8.53011309417774 +169000 ekin = 1.34719230179042 | erot = 2.03295603374783 | epot = -11.9102614293486 | etot = -8.53011309381032 +170000 ekin = 1.28704969495297 | erot = 2.07721655562297 | epot = -11.8943793439503 | etot = -8.53011309337434 +171000 ekin = 1.22340120606645 | erot = 2.13620458401877 | epot = -11.8897188830152 | etot = -8.53011309293002 +172000 ekin = 1.15916399135863 | erot = 2.21333149138569 | epot = -11.9026085753698 | etot = -8.53011309262547 +173000 ekin = 1.09731722457339 | erot = 2.31014635554163 | epot = -11.9375766725982 | etot = -8.5301130924832 +174000 ekin = 1.04063961884125 | erot = 2.42581098119786 | epot = -11.9965636925778 | etot = -8.53011309253868 +175000 ekin = 0.991434959332931 | erot = 2.556873745854 | epot = -12.0784217979903 | etot = -8.53011309280332 +176000 ekin = 0.951286219743454 | erot = 2.69734247997586 | epot = -12.1787417929829 | etot = -8.53011309326361 +177000 ekin = 0.920906931255869 | erot = 2.83907560795435 | epot = -12.290095633086 | etot = -8.53011309387581 +178000 ekin = 0.900110889875705 | erot = 2.97251922257693 | epot = -12.4027432070177 | etot = -8.53011309456511 +179000 ekin = 0.887921283965262 | erot = 3.08778217993997 | epot = -12.5058165591357 | etot = -8.53011309523047 +180000 ekin = 0.882819894460704 | erot = 3.17595008457056 | epot = -12.5888830747921 | etot = -8.53011309576086 +181000 ekin = 0.883094662246339 | erot = 3.23041576817458 | epot = -12.643623526485 | etot = -8.53011309606404 +182000 ekin = 0.887197266496938 | erot = 3.24791323274223 | epot = -12.6652235953326 | etot = -8.5301130960934 +183000 ekin = 0.894005517566709 | erot = 3.22896613968099 | epot = -12.6530847531088 | etot = -8.53011309586114 +184000 ekin = 0.902922567053486 | erot = 3.17763362004039 | epot = -12.6106692825231 | etot = -8.53011309542923 +185000 ekin = 0.913819897430119 | erot = 3.10068233612839 | epot = -12.5446153284403 | etot = -8.53011309488181 +186000 ekin = 0.926892274386875 | erot = 3.00648382594899 | epot = -12.4634891947411 | etot = -8.53011309440524 +187000 ekin = 0.942359343467852 | erot = 2.90341264008053 | epot = -12.3758850774295 | etot = -8.53011309388114 +188000 ekin = 0.960415128419152 | erot = 2.79950233215061 | epot = -12.2900305539843 | etot = -8.53011309341452 +189000 ekin = 0.981336580896334 | erot = 2.70221969054365 | epot = -12.2136693644683 | etot = -8.53011309302835 +190000 ekin = 1.00543372733302 | erot = 2.61771835557138 | epot = -12.153265175663 | etot = -8.53011309275858 +191000 ekin = 1.03305642669596 | erot = 2.55042331784757 | epot = -12.113592837133 | etot = -8.53011309258951 +192000 ekin = 1.06458819978588 | erot = 2.50295149261136 | epot = -12.0976527849393 | etot = -8.53011309254206 +193000 ekin = 1.10043008600705 | erot = 2.47591461062942 | epot = -12.1064577892561 | etot = -8.53011309261967 +194000 ekin = 1.14095348228018 | erot = 2.46790659075077 | epot = -12.1389731658491 | etot = -8.53011309281815 +195000 ekin = 1.18642396462111 | erot = 2.47566002440206 | epot = -12.1921970821457 | etot = -8.53011309312254 +196000 ekin = 1.23691456053948 | erot = 2.49438862695221 | epot = -12.2614162809959 | etot = -8.53011309350423 +197000 ekin = 1.29223924615411 | erot = 2.51832160490974 | epot = -12.3406739449842 | etot = -8.53011309392031 +198000 ekin = 1.3519347146633 | erot = 2.54139178285202 | epot = -12.4234395918354 | etot = -8.53011309432009 +199000 ekin = 1.41529957065379 | erot = 2.55798242673069 | epot = -12.5033950920395 | etot = -8.530113094655 +200000 ekin = 1.48147390057833 | erot = 2.56359779441088 | epot = -12.5751847898783 | etot = -8.53011309488911 +201000 ekin = 1.54952685169063 | erot = 2.55533485734931 | epot = -12.6349748040453 | etot = -8.53011309500533 +202000 ekin = 1.61852368373135 | erot = 2.53209551772225 | epot = -12.6807322964585 | etot = -8.53011309500488 +203000 ekin = 1.68755981245424 | erot = 2.49462961612296 | epot = -12.7123025234434 | etot = -8.53011309486622 +204000 ekin = 1.75576103235039 | erot = 2.44539440890628 | epot = -12.731268535947 | etot = -8.53011309469034 +205000 ekin = 1.82226727517167 | erot = 2.3878008171597 | epot = -12.7401811867911 | etot = -8.53011309445972 +206000 ekin = 1.88619984147331 | erot = 2.32611076719035 | epot = -12.7424237028676 | etot = -8.53011309420394 +207000 ekin = 1.94660231588698 | erot = 2.26504166017917 | epot = -12.7417570700271 | etot = -8.53011309396097 +208000 ekin = 2.00235042264665 | erot = 2.20925458967758 | epot = -12.7417181061045 | etot = -8.53011309378024 +209000 ekin = 2.0520313483485 | erot = 2.16271925047888 | epot = -12.7448636925489 | etot = -8.53011309372154 +210000 ekin = 2.09381524344954 | erot = 2.12796343490961 | epot = -12.751891772204 | etot = -8.53011309384484 +211000 ekin = 2.12537929046287 | erot = 2.10530160183622 | epot = -12.7607939864875 | etot = -8.53011309418839 +212000 ekin = 2.1439884510964 | erot = 2.0922650676153 | epot = -12.766366613447 | etot = -8.53011309473533 +213000 ekin = 2.14685083920888 | erot = 2.08357075606521 | epot = -12.760534690661 | etot = -8.53011309538686 +214000 ekin = 2.13177933558798 | erot = 2.07198437940492 | epot = -12.7338768105384 | etot = -8.53011309554549 +215000 ekin = 2.09740576159951 | erot = 2.0524367864944 | epot = -12.6799556440657 | etot = -8.5301130959718 +216000 ekin = 2.04414786570014 | erot = 2.0198081125597 | epot = -12.5940690742963 | etot = -8.5301130960365 +217000 ekin = 1.97496281847719 | erot = 1.97035714827525 | epot = -12.4754330625057 | etot = -8.53011309575328 +218000 ekin = 1.89483732384485 | erot = 1.9036903705145 | epot = -12.3286407894939 | etot = -8.53011309513458 +219000 ekin = 1.81041467830767 | erot = 1.82278463149675 | epot = -12.1633124040828 | etot = -8.53011309427844 +220000 ekin = 1.72938454081015 | erot = 1.73330150874432 | epot = -11.9927991427908 | etot = -8.53011309323634 +221000 ekin = 1.65959820381403 | erot = 1.64273176790391 | epot = -11.8324430640332 | etot = -8.53011309231531 +222000 ekin = 1.60845034453884 | erot = 1.55815968235219 | epot = -11.6967231184021 | etot = -8.5301130915111 +223000 ekin = 1.58228239189008 | erot = 1.48580466478726 | epot = -11.5982001475877 | etot = -8.53011309091036 +224000 ekin = 1.58569765517033 | erot = 1.43046423809837 | epot = -11.5462749838456 | etot = -8.5301130905769 +225000 ekin = 1.62100953317755 | erot = 1.39504063224538 | epot = -11.5461632559818 | etot = -8.53011309055883 +226000 ekin = 1.68783126437574 | erot = 1.38020176396443 | epot = -11.5981461192342 | etot = -8.530113090894 +227000 ekin = 1.78271150290612 | erot = 1.38413372943434 | epot = -11.6969583246216 | etot = -8.53011309228119 +228000 ekin = 1.89495289262447 | erot = 1.40258789217286 | epot = -11.8276538782986 | etot = -8.53011309350131 +229000 ekin = 2.01170607721918 | erot = 1.42820655801903 | epot = -11.9700257301881 | etot = -8.53011309494986 +230000 ekin = 2.11989887159711 | erot = 1.45235409717163 | epot = -12.102366065035 | etot = -8.53011309626622 +231000 ekin = 2.20759782077834 | erot = 1.46730876356824 | epot = -12.2050196815075 | etot = -8.53011309716089 +232000 ekin = 2.26562589153249 | erot = 1.46886009000409 | epot = -12.2645990789946 | etot = -8.53011309745806 +233000 ekin = 2.2882250697573 | erot = 1.45787535434396 | epot = -12.2762135212093 | etot = -8.53011309710803 +234000 ekin = 2.2746452497783 | erot = 1.43990370669354 | epot = -12.2446620527937 | etot = -8.5301130963219 +235000 ekin = 2.22825507530842 | erot = 1.42328017859139 | epot = -12.1816483492734 | etot = -8.53011309537358 +236000 ekin = 2.15494106311448 | erot = 1.41661045699318 | epot = -12.1016646145791 | etot = -8.53011309447141 +237000 ekin = 2.06197124561353 | erot = 1.4267772919224 | epot = -12.0188616312515 | etot = -8.53011309371556 +238000 ekin = 1.95733575736037 | erot = 1.45790014383004 | epot = -11.9453489943261 | etot = -8.53011309313565 +239000 ekin = 1.84937348817194 | erot = 1.51100787616977 | epot = -11.8904944570913 | etot = -8.53011309274963 +240000 ekin = 1.74634948667495 | erot = 1.58401675949126 | epot = -11.8604793387574 | etot = -8.53011309259121 +241000 ekin = 1.65579840431634 | erot = 1.67182932722897 | epot = -11.857740824243 | etot = -8.53011309269764 +242000 ekin = 1.58370704114883 | erot = 1.76665328809278 | epot = -11.8804734223152 | etot = -8.53011309307357 +243000 ekin = 1.53379082409385 | erot = 1.85876363932242 | epot = -11.9226675570786 | etot = -8.53011309366233 +244000 ekin = 1.50713311675952 | erot = 1.93781479613316 | epot = -11.9750610072397 | etot = -8.53011309434701 +245000 ekin = 1.50232523408817 | erot = 1.9945308549142 | epot = -12.0269691839801 | etot = -8.53011309497775 +246000 ekin = 1.51606904510254 | erot = 2.02239007086975 | epot = -12.0685722113879 | etot = -8.53011309541558 +247000 ekin = 1.54406668998812 | erot = 2.01887471172796 | epot = -12.0930544972696 | etot = -8.53011309555354 +248000 ekin = 1.58197270416959 | erot = 1.98608525491879 | epot = -12.0981710544433 | etot = -8.53011309535488 +249000 ekin = 1.62609171467947 | erot = 1.93029875238705 | epot = -12.086503561957 | etot = -8.5301130948905 +250000 ekin = 1.67387536281804 | erot = 1.86081409573898 | epot = -12.0648025528068 | etot = -8.53011309424979 +251000 ekin = 1.7239109698586 | erot = 1.78844826295721 | epot = -12.0424723264224 | etot = -8.53011309360662 +252000 ekin = 1.775381907117 | erot = 1.72367191237892 | epot = -12.0291669125776 | etot = -8.53011309308168 +253000 ekin = 1.82754829280966 | erot = 1.67492092834061 | epot = -12.0325823139112 | etot = -8.5301130927609 +254000 ekin = 1.87961881561752 | erot = 1.64770020961706 | epot = -12.0574321179075 | etot = -8.53011309267291 +255000 ekin = 1.93045785731848 | erot = 1.64434942868997 | epot = -12.1049203788172 | etot = -8.53011309280879 +256000 ekin = 1.97849877464101 | erot = 1.66421751998728 | epot = -12.1728293877678 | etot = -8.53011309313946 +257000 ekin = 2.02175661791442 | erot = 1.70407398948181 | epot = -12.2559437010213 | etot = -8.53011309362504 +258000 ekin = 2.05791961396963 | erot = 1.75862748975079 | epot = -12.34666019794 | etot = -8.53011309421958 +259000 ekin = 2.08450645969332 | erot = 1.82109836580911 | epot = -12.4357179203747 | etot = -8.5301130948723 +260000 ekin = 2.0990728506794 | erot = 1.88382726111794 | epot = -12.5130132073272 | etot = -8.53011309552988 +261000 ekin = 2.09944572596275 | erot = 1.93893768787103 | epot = -12.5684965099607 | etot = -8.53011309612693 +262000 ekin = 2.08396569038833 | erot = 1.9790846279756 | epot = -12.5931634149729 | etot = -8.53011309660893 +263000 ekin = 2.05172676882149 | erot = 1.99820908887188 | epot = -12.5800489545523 | etot = -8.53011309685892 +264000 ekin = 2.00296719649698 | erot = 1.99283439178409 | epot = -12.5259146850339 | etot = -8.53011309675287 +265000 ekin = 1.93948872899256 | erot = 1.96339266268558 | epot = -12.4329944878823 | etot = -8.53011309620413 +266000 ekin = 1.8649439014403 | erot = 1.91505343003071 | epot = -12.3101104266342 | etot = -8.53011309516323 +267000 ekin = 1.78505719746936 | erot = 1.85721593585567 | epot = -12.1723862273119 | etot = -8.53011309398687 +268000 ekin = 1.70605852586759 | erot = 1.80175587067043 | epot = -12.0379274893381 | etot = -8.53011309280003 +269000 ekin = 1.63387234043083 | erot = 1.76055577812795 | epot = -11.924541210424 | etot = -8.53011309186518 +270000 ekin = 1.57342106955886 | erot = 1.7428100947827 | epot = -11.8463442556687 | etot = -8.53011309132713 +271000 ekin = 1.52797485202463 | erot = 1.7534108593537 | epot = -11.8114988026148 | etot = -8.53011309123648 +272000 ekin = 1.49894876525771 | erot = 1.79234603399444 | epot = -11.8214078908088 | etot = -8.53011309155661 +273000 ekin = 1.48604758198147 | erot = 1.85507402496668 | epot = -11.8712346991381 | etot = -8.53011309218999 +274000 ekin = 1.48766345157087 | erot = 1.93349346053591 | epot = -11.9512700051693 | etot = -8.53011309306249 +275000 ekin = 1.50135017863801 | erot = 2.01723774122183 | epot = -12.0487010137588 | etot = -8.53011309389898 +276000 ekin = 1.52425343307294 | erot = 2.09653669779313 | epot = -12.1509032254471 | etot = -8.530113094581 +277000 ekin = 1.55417046599772 | erot = 2.16339336358605 | epot = -12.2476769246684 | etot = -8.53011309508459 +278000 ekin = 1.58883002210849 | erot = 2.21269572879442 | epot = -12.3316388462093 | etot = -8.53011309530637 +279000 ekin = 1.62657848626988 | erot = 2.2427357529187 | epot = -12.3994273344828 | etot = -8.53011309529425 +280000 ekin = 1.66626462375805 | erot = 2.25488508621636 | epot = -12.4512628051118 | etot = -8.53011309513739 +281000 ekin = 1.70666329888323 | erot = 2.25287813756201 | epot = -12.4896545313678 | etot = -8.53011309492257 +282000 ekin = 1.74606224489453 | erot = 2.24193390477425 | epot = -12.5181092443719 | etot = -8.5301130947031 +283000 ekin = 1.78229604375805 | erot = 2.22773335199554 | epot = -12.5401424902727 | etot = -8.53011309451915 +284000 ekin = 1.81303392681924 | erot = 2.21528431694055 | epot = -12.5584313381487 | etot = -8.53011309438886 +285000 ekin = 1.83626784551407 | erot = 2.20859920573524 | epot = -12.5749801456027 | etot = -8.53011309435334 +286000 ekin = 1.8505679813094 | erot = 2.20962029353691 | epot = -12.5903013692885 | etot = -8.53011309444215 +287000 ekin = 1.85506353044408 | erot = 2.21784540833872 | epot = -12.6030220334131 | etot = -8.53011309463028 +288000 ekin = 1.84942339813604 | erot = 2.23075201933183 | epot = -12.6102885123084 | etot = -8.53011309484051 +289000 ekin = 1.83390888017438 | erot = 2.24488012942893 | epot = -12.6089021045823 | etot = -8.53011309497904 +290000 ekin = 1.80943255390731 | erot = 2.25722371529918 | epot = -12.5967693641607 | etot = -8.53011309495422 +291000 ekin = 1.77754353319189 | erot = 2.26619423186302 | epot = -12.5738508598504 | etot = -8.53011309479552 +292000 ekin = 1.74029196122747 | erot = 2.27170357096947 | epot = -12.5421086267528 | etot = -8.53011309455589 +293000 ekin = 1.69997543540441 | erot = 2.27474290666544 | epot = -12.5048314363837 | etot = -8.53011309431389 +294000 ekin = 1.65879913990757 | erot = 2.27646633894028 | epot = -12.4653785730015 | etot = -8.53011309415364 +295000 ekin = 1.61857194088063 | erot = 2.2772896553203 | epot = -12.4259746903014 | etot = -8.5301130941005 +296000 ekin = 1.58063856927687 | erot = 2.27661684716242 | epot = -12.3873685105274 | etot = -8.53011309408813 +297000 ekin = 1.54603085638188 | erot = 2.27331893745131 | epot = -12.3494628879057 | etot = -8.53011309407249 +298000 ekin = 1.51552933019819 | erot = 2.26654381109825 | epot = -12.3121862352838 | etot = -8.53011309398736 +299000 ekin = 1.4897866656468 | erot = 2.25633296635467 | epot = -12.2762327258637 | etot = -8.53011309386228 +300000 ekin = 1.46918272389837 | erot = 2.24345468614606 | epot = -12.242750503802 | etot = -8.53011309375758 +301000 ekin = 1.45354278560917 | erot = 2.22882911340837 | epot = -12.2124849927863 | etot = -8.53011309376879 +302000 ekin = 1.44183301629828 | erot = 2.21276714678466 | epot = -12.1847132569685 | etot = -8.53011309388556 +303000 ekin = 1.43225770121149 | erot = 2.1945809275263 | epot = -12.1569517228351 | etot = -8.53011309409729 +304000 ekin = 1.42259637357009 | erot = 2.17276750288833 | epot = -12.1254769707811 | etot = -8.53011309432264 +305000 ekin = 1.41064586326838 | erot = 2.14566468387999 | epot = -12.0864236416126 | etot = -8.53011309446427 +306000 ekin = 1.39473877107242 | erot = 2.11230934515746 | epot = -12.0371612106961 | etot = -8.53011309446626 +307000 ekin = 1.37401156154455 | erot = 2.07305527676002 | epot = -11.977179932614 | etot = -8.53011309430942 +308000 ekin = 1.34852470527996 | erot = 2.02957445559285 | epot = -11.908212254938 | etot = -8.53011309406523 +309000 ekin = 1.31899505489798 | erot = 1.98427269118996 | epot = -11.8333808399297 | etot = -8.53011309384175 +310000 ekin = 1.2862882665719 | erot = 1.93930156456111 | epot = -11.7557029248833 | etot = -8.53011309375026 +311000 ekin = 1.25093726244332 | erot = 1.89525998935032 | epot = -11.6763103458614 | etot = -8.5301130940678 +312000 ekin = 1.21290642809322 | erot = 1.84947048977057 | epot = -11.5924900122396 | etot = -8.53011309437579 +313000 ekin = 1.17141846112916 | erot = 1.79876682021589 | epot = -11.5002983761234 | etot = -8.5301130947783 +314000 ekin = 1.07288272942441 | erot = 1.70848696881221 | epot = -11.311482847546 | etot = -8.5301131493094 +315000 ekin = 0.929305233254205 | erot = 1.46737286493799 | epot = -10.9267911417366 | etot = -8.53011304354436 +316000 ekin = 1.33438953717469 | erot = 1.37623199915606 | epot = -11.2407347047679 | etot = -8.53011316843718 +317000 ekin = 1.40009371700333 | erot = 1.31826590785411 | epot = -11.2484727303621 | etot = -8.53011310550466 +318000 ekin = 1.43115359918425 | erot = 1.25971123043315 | epot = -11.2209779347371 | etot = -8.5301131051197 +319000 ekin = 1.45754379434943 | erot = 1.20520642772675 | epot = -11.1928633267516 | etot = -8.5301131046754 +320000 ekin = 1.48149893345698 | erot = 1.15864569690845 | epot = -11.170257734652 | etot = -8.53011310428657 +321000 ekin = 1.5051312843985 | erot = 1.12350400100625 | epot = -11.1587483894116 | etot = -8.53011310400684 +322000 ekin = 1.52997806002497 | erot = 1.10223049025935 | epot = -11.1623216541795 | etot = -8.5301131038952 +323000 ekin = 1.55672107909604 | erot = 1.09578101873819 | epot = -11.1826152017877 | etot = -8.53011310395352 +324000 ekin = 1.5851136620084 | erot = 1.10363080456445 | epot = -11.2188575707136 | etot = -8.53011310414072 +325000 ekin = 1.61412294527511 | erot = 1.12419697509005 | epot = -11.268433024751 | etot = -8.5301131043858 +326000 ekin = 1.64224941760094 | erot = 1.15551879655647 | epot = -11.3278813187727 | etot = -8.53011310461526 +327000 ekin = 1.66792915391961 | erot = 1.19590561828286 | epot = -11.3939478769664 | etot = -8.53011310476391 +328000 ekin = 1.68988361976044 | erot = 1.24442310373742 | epot = -11.4644198283235 | etot = -8.53011310482566 +329000 ekin = 1.70729453548138 | erot = 1.30088738083589 | epot = -11.5382950211518 | etot = -8.53011310483453 +330000 ekin = 1.71977920215656 | erot = 1.36542606219482 | epot = -11.6153183691918 | etot = -8.5301131048404 +331000 ekin = 1.72719948157173 | erot = 1.43788972641118 | epot = -11.6952023128938 | etot = -8.53011310491092 +332000 ekin = 1.72935048705161 | erot = 1.51741015576086 | epot = -11.7768737478651 | etot = -8.53011310505263 +333000 ekin = 1.72589292388511 | erot = 1.60231164706384 | epot = -11.8583176761888 | etot = -8.53011310523986 +334000 ekin = 1.71641096845493 | erot = 1.69042382797046 | epot = -11.9369479018436 | etot = -8.53011310541824 +335000 ekin = 1.70061954221282 | erot = 1.7796304798544 | epot = -12.0103631276007 | etot = -8.53011310553347 +336000 ekin = 1.67861266632134 | erot = 1.86835013660124 | epot = -12.0770759084893 | etot = -8.53011310556669 +337000 ekin = 1.65104084371297 | erot = 1.95564880215561 | epot = -12.136802751403 | etot = -8.53011310553446 +338000 ekin = 1.61919653971688 | erot = 2.04088006325167 | epot = -12.1901897084582 | etot = -8.53011310548962 +339000 ekin = 1.58494018858436 | erot = 2.12306951704741 | epot = -12.2381228110973 | etot = -8.53011310546556 +340000 ekin = 1.55068751498618 | erot = 2.2004569149083 | epot = -12.2812575353511 | etot = -8.53011310545662 +341000 ekin = 1.51939352315465 | erot = 2.27052960843975 | epot = -12.320036237042 | etot = -8.53011310544755 +342000 ekin = 1.4942283142269 | erot = 2.33048372011859 | epot = -12.3548251398146 | etot = -8.53011310546907 +343000 ekin = 1.47765440209276 | erot = 2.37774277923742 | epot = -12.3855102869167 | etot = -8.53011310558656 +344000 ekin = 1.47024986717826 | erot = 2.41039440931609 | epot = -12.4107573822795 | etot = -8.53011310578515 +345000 ekin = 1.47032544425693 | erot = 2.42787360990024 | epot = -12.4283121600589 | etot = -8.53011310590172 +346000 ekin = 1.47497435411031 | erot = 2.43200037641079 | epot = -12.4370878362715 | etot = -8.53011310575041 +347000 ekin = 1.48176297397304 | erot = 2.42757307622222 | epot = -12.4394491555193 | etot = -8.53011310532408 +348000 ekin = 1.48960567691712 | erot = 2.42152466454856 | epot = -12.4412434462858 | etot = -8.53011310482014 +349000 ekin = 1.49842206767709 | erot = 2.4209480121121 | epot = -12.4494831841902 | etot = -8.53011310440098 +350000 ekin = 1.50804667267274 | erot = 2.43083585672876 | epot = -12.4689956337606 | etot = -8.53011310435906 +351000 ekin = 1.5173353924427 | erot = 2.45275056185602 | epot = -12.5001990588657 | etot = -8.53011310456693 +352000 ekin = 1.52440681731839 | erot = 2.48551818836727 | epot = -12.5400381105944 | etot = -8.5301131049087 +353000 ekin = 1.52713336972915 | erot = 2.52632890408748 | epot = -12.5835753790744 | etot = -8.53011310525773 +354000 ekin = 1.523721885336 | erot = 2.57191593401525 | epot = -12.6257509248862 | etot = -8.530113105535 +355000 ekin = 1.51309115686939 | erot = 2.61929569219605 | epot = -12.6624999548052 | etot = -8.53011310573978 +356000 ekin = 1.4948333284748 | erot = 2.66580549560263 | epot = -12.6907519300001 | etot = -8.53011310592265 +357000 ekin = 1.46901113663898 | erot = 2.70863650615366 | epot = -12.7077607489347 | etot = -8.53011310614211 +358000 ekin = 1.43592917031632 | erot = 2.74427787084531 | epot = -12.7103201475703 | etot = -8.53011310640863 +359000 ekin = 1.39610164165262 | erot = 2.76842107185624 | epot = -12.6946358201661 | etot = -8.53011310665726 +360000 ekin = 1.35047672654323 | erot = 2.77663698694642 | epot = -12.6572268202617 | etot = -8.53011310677201 +361000 ekin = 1.3007661104219 | erot = 2.76564868782621 | epot = -12.5965279048983 | etot = -8.53011310665023 +362000 ekin = 1.24961928501658 | erot = 2.73457480733808 | epot = -12.5143071986218 | etot = -8.53011310626714 +363000 ekin = 1.20045386452323 | erot = 2.68545051257892 | epot = -12.4160174827948 | etot = -8.53011310569261 +364000 ekin = 1.1571026109765 | erot = 2.62295556816838 | epot = -12.3101712839462 | etot = -8.53011310480137 +365000 ekin = 1.12337541340586 | erot = 2.55368748907124 | epot = -12.2071760067595 | etot = -8.53011310428242 +366000 ekin = 1.10127753424505 | erot = 2.48317695958081 | epot = -12.1145675977507 | etot = -8.53011310392482 +367000 ekin = 1.09158671746577 | erot = 2.41562896418422 | epot = -12.0373287854036 | etot = -8.53011310375364 +368000 ekin = 1.09395460107129 | erot = 2.3536730201725 | epot = -11.9777407249954 | etot = -8.53011310375157 +369000 ekin = 1.1070702982443 | erot = 2.29842564871278 | epot = -11.9356090508318 | etot = -8.53011310387475 +370000 ekin = 1.12891021359863 | erot = 2.24980412691932 | epot = -11.9088274446084 | etot = -8.5301131040904 +371000 ekin = 1.15702393729471 | erot = 2.20683986953429 | epot = -11.8939769111781 | etot = -8.53011310434907 +372000 ekin = 1.18881512926452 | erot = 2.16808122069092 | epot = -11.8870094545668 | etot = -8.53011310461133 +373000 ekin = 1.22180472347423 | erot = 2.13193560462788 | epot = -11.8838534329442 | etot = -8.53011310484212 +374000 ekin = 1.25386446213246 | erot = 2.09696444550541 | epot = -11.8809420126508 | etot = -8.53011310501295 +375000 ekin = 1.28340735686141 | erot = 2.06212828827176 | epot = -11.8756487502356 | etot = -8.53011310510241 +376000 ekin = 1.30952081504778 | erot = 2.02696442652824 | epot = -11.866598346676 | etot = -8.53011310509994 +377000 ekin = 1.33202999726555 | erot = 1.99167753887332 | epot = -11.8538206411461 | etot = -8.53011310500719 +378000 ekin = 1.35148382625757 | erot = 1.95712256046493 | epot = -11.8387194915612 | etot = -8.53011310483868 +379000 ekin = 1.36906410242434 | erot = 1.92466782261904 | epot = -11.8238450296649 | etot = -8.53011310462152 +380000 ekin = 1.38611586817106 | erot = 1.89583861081519 | epot = -11.8120675838491 | etot = -8.53011310486282 +381000 ekin = 1.40217385032836 | erot = 1.87134526426269 | epot = -11.80363221932 | etot = -8.53011310472898 +382000 ekin = 1.41800173053803 | erot = 1.85196748545645 | epot = -11.8000823206153 | etot = -8.53011310462087 +383000 ekin = 1.43471626248222 | erot = 1.83825951701816 | epot = -11.8030888840481 | etot = -8.53011310454774 +384000 ekin = 1.45338249836618 | erot = 1.83037149004682 | epot = -11.8138670929151 | etot = -8.53011310450216 +385000 ekin = 1.4750013081334 | erot = 1.82815692745157 | epot = -11.8332713400492 | etot = -8.53011310446425 +386000 ekin = 1.50055250095182 | erot = 1.83139934862436 | epot = -11.8620649539881 | etot = -8.53011310441195 +387000 ekin = 1.53104646327023 | erot = 1.84005108459331 | epot = -11.9012106521991 | etot = -8.53011310433554 +388000 ekin = 1.56751609348646 | erot = 1.85434854378703 | epot = -11.9519777415238 | etot = -8.53011310425033 +389000 ekin = 1.61088446670257 | erot = 1.87469764896096 | epot = -12.0156952198659 | etot = -8.53011310420239 +390000 ekin = 1.66167288139561 | erot = 1.90128526221067 | epot = -12.0930712478719 | etot = -8.53011310426566 +391000 ekin = 1.71956364223701 | erot = 1.93346596746484 | epot = -12.1831427142236 | etot = -8.53011310452177 +392000 ekin = 1.78290672529534 | erot = 1.96909292130509 | epot = -12.282112751646 | etot = -8.53011310504553 +393000 ekin = 1.84827871011224 | erot = 2.00406071425975 | epot = -12.3824525302076 | etot = -8.53011310583559 +394000 ekin = 1.91039848955262 | erot = 2.03249756432822 | epot = -12.4730091606615 | etot = -8.53011310678065 +395000 ekin = 1.962650841212 | erot = 2.04794740083273 | epot = -12.5407113496889 | etot = -8.53011310764422 +396000 ekin = 1.99833003479199 | erot = 2.04548694358824 | epot = -12.5739300865163 | etot = -8.53011310813611 +397000 ekin = 2.01232505811841 | erot = 2.02401360401992 | epot = -12.5664517701974 | etot = -8.5301131080591 +398000 ekin = 2.0025230620709 | erot = 1.98743944257781 | epot = -12.5200756120825 | etot = -8.53011310743375 +399000 ekin = 1.97017185599611 | erot = 1.94392108511877 | epot = -12.4442060476074 | etot = -8.53011310649254 +400000 ekin = 1.91900875366194 | erot = 1.90345223754646 | epot = -12.3525740967518 | etot = -8.53011310554345 +401000 ekin = 1.85370867757018 | erot = 1.87511245492095 | epot = -12.2589342373083 | etot = -8.53011310481718 +402000 ekin = 1.77849786327956 | erot = 1.86519132439128 | epot = -12.1738022920757 | etot = -8.53011310440484 +403000 ekin = 1.69647765085025 | erot = 1.87662651194813 | epot = -12.103217267038 | etot = -8.5301131042396 +404000 ekin = 1.60979304525306 | erot = 1.90948179463073 | epot = -12.0493879441487 | etot = -8.5301131042649 +405000 ekin = 1.52031831979797 | erot = 1.96148591335689 | epot = -12.0119173375293 | etot = -8.53011310437441 +406000 ekin = 1.43052069773525 | erot = 2.02884810423451 | epot = -11.9894819063482 | etot = -8.53011310437844 +407000 ekin = 1.34451311630643 | erot = 2.1076266235887 | epot = -11.9822528435678 | etot = -8.53011310367264 +408000 ekin = 1.27105659597284 | erot = 2.1948612952805 | epot = -11.9960309945634 | etot = -8.5301131033101 +409000 ekin = 1.1388796616568 | erot = 2.29455518643573 | epot = -11.963547963097 | etot = -8.53011311500446 +410000 ekin = 1.06340398972402 | erot = 2.43839727640636 | epot = -12.0319143782863 | etot = -8.53011311215586 +411000 ekin = 1.12994363439476 | erot = 2.56530077013481 | epot = -12.2253575154631 | etot = -8.53011311093354 +412000 ekin = 1.18303314251998 | erot = 2.64796136756708 | epot = -12.3611076219161 | etot = -8.53011311182907 +413000 ekin = 1.26155297788784 | erot = 2.71721639006832 | epot = -12.5088824809625 | etot = -8.53011311300633 +414000 ekin = 1.35092349153842 | erot = 2.76712696986951 | epot = -12.6481635756166 | etot = -8.53011311420862 +415000 ekin = 1.43876511602559 | erot = 2.79254621486869 | epot = -12.7614244458802 | etot = -8.53011311498593 +416000 ekin = 1.51568555880285 | erot = 2.79087249527856 | epot = -12.8366711691918 | etot = -8.53011311511038 +417000 ekin = 1.57746272926947 | erot = 2.76317937782222 | epot = -12.8707552217649 | etot = -8.53011311467321 +418000 ekin = 1.62492964319063 | erot = 2.71407200335048 | epot = -12.8691147604566 | etot = -8.53011311391544 +419000 ekin = 1.66144511719922 | erot = 2.64948328985865 | epot = -12.8410415202781 | etot = -8.53011311322023 +420000 ekin = 1.69059185762129 | erot = 2.57483616462309 | epot = -12.7955411349031 | etot = -8.53011311265877 +421000 ekin = 1.7153783116834 | erot = 2.49448486929148 | epot = -12.7399762932537 | etot = -8.53011311227883 +422000 ekin = 1.73777830627883 | erot = 2.41134366235516 | epot = -12.6792350807003 | etot = -8.53011311206633 +423000 ekin = 1.7587504227613 | erot = 2.32696083577434 | epot = -12.6158243705169 | etot = -8.53011311198125 +424000 ekin = 1.77846413727057 | erot = 2.24181259775995 | epot = -12.5503898470075 | etot = -8.53011311197693 +425000 ekin = 1.79665710138905 | erot = 2.15579348528792 | epot = -12.482563698484 | etot = -8.53011311180703 +426000 ekin = 1.81317574251695 | erot = 2.0690861526638 | epot = -12.4123750070616 | etot = -8.53011311188084 +427000 ekin = 1.82711019089416 | erot = 1.98123134137793 | epot = -12.3384546441959 | etot = -8.53011311192384 +428000 ekin = 1.83751691854066 | erot = 1.89199984736615 | epot = -12.2596298778201 | etot = -8.53011311191326 +429000 ekin = 1.84368310694498 | erot = 1.8017721530282 | epot = -12.1755683718145 | etot = -8.53011311184129 +430000 ekin = 1.84519909789286 | erot = 1.71159843543995 | epot = -12.0869106450462 | etot = -8.53011311171339 +431000 ekin = 1.84198247291198 | erot = 1.62310758133244 | epot = -11.9952031657882 | etot = -8.53011311154377 +432000 ekin = 1.83426509469049 | erot = 1.53842285511833 | epot = -11.9028010611632 | etot = -8.53011311135434 +433000 ekin = 1.82255993368825 | erot = 1.46009341020954 | epot = -11.8127664550778 | etot = -8.53011311117997 +434000 ekin = 1.80751085818488 | erot = 1.39007773701991 | epot = -11.7277017062178 | etot = -8.53011311101305 +435000 ekin = 1.78989394281882 | erot = 1.32998390314058 | epot = -11.6499909568307 | etot = -8.53011311087133 +436000 ekin = 1.77056724604275 | erot = 1.28100064172295 | epot = -11.581680998535 | etot = -8.53011311076935 +437000 ekin = 1.75036829511875 | erot = 1.24377047064117 | epot = -11.5242518764766 | etot = -8.53011311071664 +438000 ekin = 1.73003454470636 | erot = 1.21832954508443 | epot = -11.4784772005177 | etot = -8.53011311072691 +439000 ekin = 1.71009916118602 | erot = 1.20407719866578 | epot = -11.4442894706321 | etot = -8.53011311078034 +440000 ekin = 1.69096600032215 | erot = 1.1997599713895 | epot = -11.4208390825825 | etot = -8.53011311087082 +441000 ekin = 1.67263636923596 | erot = 1.20336882729106 | epot = -11.4061183077354 | etot = -8.53011311120842 +442000 ekin = 1.65454003555309 | erot = 1.21209014500703 | epot = -11.396743291911 | etot = -8.53011311135084 +443000 ekin = 1.63689233561682 | erot = 1.22351444914061 | epot = -11.3905198962961 | etot = -8.53011311153863 +444000 ekin = 1.61963083194638 | erot = 1.23489712396808 | epot = -11.3846410676129 | etot = -8.53011311169845 +445000 ekin = 1.60286309976038 | erot = 1.24366705310744 | epot = -11.3766432646832 | etot = -8.53011311181542 +446000 ekin = 1.58694903183592 | erot = 1.24767642065206 | epot = -11.364738564367 | etot = -8.530113111879 +447000 ekin = 1.57243059658971 | erot = 1.24537195304266 | epot = -11.3479156615355 | etot = -8.53011311190312 +448000 ekin = 1.56000091268923 | erot = 1.23594098261579 | epot = -11.3260550071531 | etot = -8.53011311184805 +449000 ekin = 1.55055832679442 | erot = 1.21941073242742 | epot = -11.3000821709575 | etot = -8.53011311173565 +450000 ekin = 1.54505171747041 | erot = 1.19665850060475 | epot = -11.2718233296487 | etot = -8.53011311157355 +451000 ekin = 1.54440025802286 | erot = 1.16936613900785 | epot = -11.2438795084052 | etot = -8.53011311137454 +452000 ekin = 1.54941604020931 | erot = 1.13989972058501 | epot = -11.2194288719492 | etot = -8.5301131111549 +453000 ekin = 1.56073218733935 | erot = 1.11111895993793 | epot = -11.2019642583138 | etot = -8.53011311103654 +454000 ekin = 1.57840116511174 | erot = 1.08594835309889 | epot = -11.1944626290776 | etot = -8.53011311086696 +455000 ekin = 1.60199572695718 | erot = 1.067161005263 | epot = -11.1992698429505 | etot = -8.5301131107303 +456000 ekin = 1.63102931523779 | erot = 1.0573477720452 | epot = -11.2184901979352 | etot = -8.53011311065218 +457000 ekin = 1.66465491830386 | erot = 1.05859720823158 | epot = -11.2533652371723 | etot = -8.53011311063683 +458000 ekin = 1.70170935168118 | erot = 1.07231891092067 | epot = -11.3041413732889 | etot = -8.53011311068709 +459000 ekin = 1.74077940290741 | erot = 1.0991465378357 | epot = -11.370039051544 | etot = -8.53011311080086 +460000 ekin = 1.78028759701974 | erot = 1.13890397189591 | epot = -11.4493046798783 | etot = -8.53011311096265 +461000 ekin = 1.81860197243655 | erot = 1.190671028759 | epot = -11.5393861123564 | etot = -8.53011311116083 +462000 ekin = 1.85415391006496 | erot = 1.25289584357914 | epot = -11.6371628650249 | etot = -8.53011311138083 +463000 ekin = 1.88554792945735 | erot = 1.32350247179401 | epot = -11.7391635128605 | etot = -8.53011311160914 +464000 ekin = 1.91164681845957 | erot = 1.40002350523331 | epot = -11.8417834355271 | etot = -8.53011311183422 +465000 ekin = 1.93162421639016 | erot = 1.47973907160968 | epot = -11.941476400046 | etot = -8.53011311204611 +466000 ekin = 1.94498500127825 | erot = 1.55982523463663 | epot = -12.0349233481501 | etot = -8.53011311223519 +467000 ekin = 1.95156193454946 | erot = 1.63751691043975 | epot = -12.1191919573808 | etot = -8.53011311239157 +468000 ekin = 1.95150012932807 | erot = 1.71026532451013 | epot = -12.1918785663461 | etot = -8.53011311250794 +469000 ekin = 1.94523738407549 | erot = 1.77590641032492 | epot = -12.2512569069708 | etot = -8.53011311257044 +470000 ekin = 1.93348412613791 | erot = 1.83286583557274 | epot = -12.296463074288 | etot = -8.53011311257733 +471000 ekin = 1.91719298128153 | erot = 1.88021093656836 | epot = -12.3275170303833 | etot = -8.53011311253336 +472000 ekin = 1.89750254538035 | erot = 1.91763317251617 | epot = -12.3452488303456 | etot = -8.53011311244905 +473000 ekin = 1.87564239829209 | erot = 1.94536290421679 | epot = -12.3511184148537 | etot = -8.53011311234486 +474000 ekin = 1.85280042952451 | erot = 1.96399915053982 | epot = -12.3469126923062 | etot = -8.53011311224187 +475000 ekin = 1.82997212693037 | erot = 1.97434336844431 | epot = -12.334428607529 | etot = -8.53011311215432 +476000 ekin = 1.80782991664635 | erot = 1.97731520041903 | epot = -12.3152582291479 | etot = -8.53011311208248 +477000 ekin = 1.78665653477972 | erot = 1.97399991972465 | epot = -12.2907695665165 | etot = -8.53011311201214 +478000 ekin = 1.76636958091782 | erot = 1.96581401435826 | epot = -12.2622967071976 | etot = -8.53011311192151 +479000 ekin = 1.74662905135426 | erot = 1.95469632261111 | epot = -12.2314384857597 | etot = -8.5301131117943 +480000 ekin = 1.7269843787855 | erot = 1.94318876795314 | epot = -12.2002862583696 | etot = -8.53011311163097 +481000 ekin = 1.70700474377776 | erot = 1.93430214048104 | epot = -12.1714199957112 | etot = -8.53011311145243 +482000 ekin = 1.68635525357164 | erot = 1.93116021407784 | epot = -12.1476285789408 | etot = -8.53011311129136 +483000 ekin = 1.66481678021318 | erot = 1.9365211816136 | epot = -12.1314510730077 | etot = -8.53011311118095 +484000 ekin = 1.6422770599313 | erot = 1.95232513146263 | epot = -12.1247153025367 | etot = -8.53011311114272 +485000 ekin = 1.619015620803 | erot = 1.97931073969716 | epot = -12.1284394716114 | etot = -8.53011311111128 +486000 ekin = 1.59577228279478 | erot = 2.01691499833533 | epot = -12.1428003923546 | etot = -8.53011311122449 +487000 ekin = 1.57269760731357 | erot = 2.06349128122684 | epot = -12.16630200002 | etot = -8.53011311147963 +488000 ekin = 1.54979615320087 | erot = 2.11629853286408 | epot = -12.1962077977383 | etot = -8.53011311167333 +489000 ekin = 1.52793571892999 | erot = 2.17194986393337 | epot = -12.2299986947161 | etot = -8.5301131118527 +490000 ekin = 1.50872304469661 | erot = 2.22662776560131 | epot = -12.2654639222937 | etot = -8.53011311199583 +491000 ekin = 1.49451121745273 | erot = 2.27632252256859 | epot = -12.3009468521205 | etot = -8.53011311209918 +492000 ekin = 1.48823109410857 | erot = 2.31702824482369 | epot = -12.3353724511152 | etot = -8.53011311218297 +493000 ekin = 1.4951831820869 | erot = 2.34597345237573 | epot = -12.3712697461163 | etot = -8.53011311165363 +494000 ekin = 1.51845501165305 | erot = 2.36107283299099 | epot = -12.4096409568393 | etot = -8.53011311219529 +495000 ekin = 1.55341225536275 | erot = 2.35806327093511 | epot = -12.4415886369885 | etot = -8.5301131106906 +496000 ekin = 1.60682048121588 | erot = 2.33406723049124 | epot = -12.4710008246463 | etot = -8.5301131129392 +497000 ekin = 1.66595753311319 | erot = 2.29001283524094 | epot = -12.4860834812872 | etot = -8.5301131129331 +498000 ekin = 1.73079985975399 | erot = 2.22455469202947 | epot = -12.4854676647277 | etot = -8.53011311294429 +499000 ekin = 1.79938231062206 | erot = 2.13975923972116 | epot = -12.4692546631759 | etot = -8.53011311283265 +500000 ekin = 1.864590788894 | erot = 2.04085817003559 | epot = -12.4355620715547 | etot = -8.53011311262514 +501000 ekin = 1.92273434829387 | erot = 1.93494769032325 | epot = -12.3877951508618 | etot = -8.53011311224467 +502000 ekin = 1.97166638933671 | erot = 1.83018302875813 | epot = -12.3319625299061 | etot = -8.53011311181124 +503000 ekin = 2.01030983362468 | erot = 1.73409537514378 | epot = -12.274518320111 | etot = -8.53011311134249 +504000 ekin = 2.03852387655111 | erot = 1.65386645968326 | epot = -12.2225034471818 | etot = -8.53011311094747 +505000 ekin = 2.0567214388878 | erot = 1.59516954319063 | epot = -12.1820040927721 | etot = -8.53011311069366 +506000 ekin = 2.0654132236812 | erot = 1.56133329123323 | epot = -12.1568596255387 | etot = -8.53011311062431 +507000 ekin = 2.06489683745696 | erot = 1.5529868320159 | epot = -12.1479967802301 | etot = -8.53011311075727 +508000 ekin = 2.05510409506943 | erot = 1.56796083678471 | epot = -12.1531780429361 | etot = -8.53011311108195 +509000 ekin = 2.03562755334453 | erot = 1.60146413116227 | epot = -12.167204796061 | etot = -8.5301131115542 +510000 ekin = 2.00592908360857 | erot = 1.64659845424657 | epot = -12.1826406499481 | etot = -8.53011311209294 +511000 ekin = 1.96569680010841 | erot = 1.69527026509092 | epot = -12.1910801777868 | etot = -8.53011311258751 +512000 ekin = 1.91525552529987 | erot = 1.73945419950455 | epot = -12.1848228377285 | etot = -8.53011311292405 +513000 ekin = 1.85587746892691 | erot = 1.77257277561938 | epot = -12.1585633575704 | etot = -8.53011311302411 +514000 ekin = 1.78983987133691 | erot = 1.79060149181125 | epot = -12.110554476023 | etot = -8.53011311287486 +515000 ekin = 1.7201712959039 | erot = 1.79254120106384 | epot = -12.0428256094973 | etot = -8.53011311252956 +516000 ekin = 1.65040042949212 | erot = 1.7804348091573 | epot = -11.9609483505847 | etot = -8.53011311193526 +517000 ekin = 1.5840406801366 | erot = 1.75852731252202 | epot = -11.8726811041166 | etot = -8.53011311145803 +518000 ekin = 1.52414481736526 | erot = 1.73170053428619 | epot = -11.7859584626037 | etot = -8.53011311095221 +519000 ekin = 1.4736679692459 | erot = 1.70507688462286 | epot = -11.7088579644883 | etot = -8.5301131106195 +520000 ekin = 1.43365378179093 | erot = 1.68280907302155 | epot = -11.6465759651473 | etot = -8.53011311033478 +521000 ekin = 1.40489785043186 | erot = 1.66827026613465 | epot = -11.6032812266512 | etot = -8.53011311008469 +522000 ekin = 1.38811259815129 | erot = 1.66372628765001 | epot = -11.5819519960218 | etot = -8.53011311022052 +523000 ekin = 1.38336778489754 | erot = 1.66945534863506 | epot = -11.5829362436293 | etot = -8.53011311009666 +524000 ekin = 1.3913126502426 | erot = 1.68543796398208 | epot = -11.6068637243459 | etot = -8.53011311012124 +525000 ekin = 1.41205700478085 | erot = 1.71025646512686 | epot = -11.6524265802503 | etot = -8.53011311034254 +526000 ekin = 1.44455820367828 | erot = 1.74084872886512 | epot = -11.715520043306 | etot = -8.53011311076257 +527000 ekin = 1.48642955052526 | erot = 1.77280714510033 | epot = -11.7893498069451 | etot = -8.53011311131948 +528000 ekin = 1.53418163870598 | erot = 1.80110112524649 | epot = -11.8653958758489 | etot = -8.53011311189648 +529000 ekin = 1.58386362601508 | erot = 1.82112172078969 | epot = -11.9350984591607 | etot = -8.53011311235592 +530000 ekin = 1.63189696415197 | erot = 1.82978202391273 | epot = -11.9917921006499 | etot = -8.53011311258521 +531000 ekin = 1.67581590192871 | erot = 1.82633306141955 | epot = -12.0322620756572 | etot = -8.53011311230891 +532000 ekin = 1.71585538236368 | erot = 1.8152091032606 | epot = -12.0611775978011 | etot = -8.53011311217683 +533000 ekin = 1.75284097660429 | erot = 1.80146596915312 | epot = -12.0844200576796 | etot = -8.53011311192222 +534000 ekin = 1.78745390743137 | erot = 1.7886931599987 | epot = -12.1062601791015 | etot = -8.53011311167139 +535000 ekin = 1.82065038126921 | erot = 1.7802759175367 | epot = -12.1310394103311 | etot = -8.53011311152523 +536000 ekin = 1.85299611868502 | erot = 1.77858522849865 | epot = -12.1616944587272 | etot = -8.53011311154351 +537000 ekin = 1.88407496144919 | erot = 1.7842808712656 | epot = -12.1984689444174 | etot = -8.53011311170263 +538000 ekin = 1.91279454454315 | erot = 1.79686892930563 | epot = -12.2397765856348 | etot = -8.53011311178604 +539000 ekin = 1.93839394839843 | erot = 1.81622314391844 | epot = -12.284730204236 | etot = -8.53011311191909 +540000 ekin = 1.95998962534122 | erot = 1.84168603210851 | epot = -12.3317887694937 | etot = -8.53011311204393 +541000 ekin = 1.97685104517971 | erot = 1.8723442627802 | epot = -12.3793084201316 | etot = -8.53011311217171 +542000 ekin = 1.98798216003657 | erot = 1.90711972836194 | epot = -12.4252150005635 | etot = -8.53011311216495 +543000 ekin = 1.99396475053246 | erot = 1.94557694619036 | epot = -12.4696548087837 | etot = -8.53011311206087 +544000 ekin = 1.99659195335123 | erot = 1.98768793525312 | epot = -12.5143930004997 | etot = -8.53011311189537 +545000 ekin = 1.99841939299989 | erot = 2.03351546469238 | epot = -12.5620479694254 | etot = -8.53011311173315 +546000 ekin = 2.00223379009079 | erot = 2.08278239430349 | epot = -12.6151292960425 | etot = -8.53011311164824 +547000 ekin = 2.01043375036443 | erot = 2.13441666464114 | epot = -12.6749635267018 | etot = -8.53011311169627 +548000 ekin = 2.0245414253266 | erot = 2.18636947292862 | epot = -12.7410240101681 | etot = -8.5301131119129 +549000 ekin = 2.04472650265624 | erot = 2.23524716352582 | epot = -12.8100867784639 | etot = -8.53011311228183 +550000 ekin = 2.06971706084401 | erot = 2.27669143350054 | epot = -12.876521607101 | etot = -8.53011311275642 +551000 ekin = 2.09694987343936 | erot = 2.30602592213695 | epot = -12.9330889088384 | etot = -8.53011311326205 +552000 ekin = 2.1228812376554 | erot = 2.31896388909875 | epot = -12.9719582404603 | etot = -8.53011311370618 +553000 ekin = 2.14351313995611 | erot = 2.31240753793797 | epot = -12.9860337918876 | etot = -8.53011311399348 +554000 ekin = 2.15523965908159 | erot = 2.28547313898784 | epot = -12.9708259121345 | etot = -8.53011311406508 +555000 ekin = 2.15534485411163 | erot = 2.23961985935309 | epot = -12.9250778273638 | etot = -8.53011311389909 +556000 ekin = 2.14242415869529 | erot = 2.17853141058563 | epot = -12.8510686828054 | etot = -8.53011311352449 +557000 ekin = 2.11652525560679 | erot = 2.10755901122257 | epot = -12.75419737984 | etot = -8.5301131130106 +558000 ekin = 2.07899262360386 | erot = 2.03287016334017 | epot = -12.6419758993878 | etot = -8.53011311244374 +559000 ekin = 2.03209525707211 | erot = 1.96055588826955 | epot = -12.5227642572441 | etot = -8.53011311190243 +560000 ekin = 1.97856970493465 | erot = 1.89593544894508 | epot = -12.4046182653117 | etot = -8.53011311143199 +561000 ekin = 1.92120586059386 | erot = 1.84318662679696 | epot = -12.2945055984625 | etot = -8.53011311107173 +562000 ekin = 1.86248053378004 | erot = 1.80525111362544 | epot = -12.197844758219 | etot = -8.53011311081349 +563000 ekin = 1.80440566029618 | erot = 1.78397358726431 | epot = -12.1184923582089 | etot = -8.53011311064843 +564000 ekin = 1.74859757239829 | erot = 1.78025486278517 | epot = -12.0589655457327 | etot = -8.53011311054927 +565000 ekin = 1.69697420507052 | erot = 1.79398971152847 | epot = -12.0210770271823 | etot = -8.53011311058327 +566000 ekin = 1.64969612949923 | erot = 1.8240502634005 | epot = -12.0038595036696 | etot = -8.53011311076992 +567000 ekin = 1.60592346389383 | erot = 1.86815174766682 | epot = -12.0041883226195 | etot = -8.53011311105886 +568000 ekin = 1.56447342355498 | erot = 1.92295106518469 | epot = -12.0175376000187 | etot = -8.53011311127902 +569000 ekin = 1.5249189399064 | erot = 1.98481672432871 | epot = -12.0398487760184 | etot = -8.53011311178333 +570000 ekin = 1.48563885354576 | erot = 2.0478979596709 | epot = -12.0636499254993 | etot = -8.53011311228265 +571000 ekin = 1.44514780819736 | erot = 2.10567642130719 | epot = -12.0809373422362 | etot = -8.53011311273169 +572000 ekin = 1.40265340711092 | erot = 2.15189441844465 | epot = -12.0846609385903 | etot = -8.53011311303474 +573000 ekin = 1.35831475976892 | erot = 2.18135236040197 | epot = -12.0697802333399 | etot = -8.53011311316902 +574000 ekin = 1.31325665398436 | erot = 2.19054857027259 | epot = -12.0339183373723 | etot = -8.53011311311537 +575000 ekin = 1.26941751353119 | erot = 2.17808969341363 | epot = -11.9776203199862 | etot = -8.53011311304134 +576000 ekin = 1.22896606046371 | erot = 2.14379444928078 | epot = -11.9028736225264 | etot = -8.53011311278191 +577000 ekin = 1.1939318542458 | erot = 2.08947552578693 | epot = -11.8135204923656 | etot = -8.53011311233291 +578000 ekin = 1.16652110217761 | erot = 2.01971345754074 | epot = -11.7163476715532 | etot = -8.53011311183482 +579000 ekin = 1.1485590785822 | erot = 1.94028096237221 | epot = -11.6189531523097 | etot = -8.53011311135534 +580000 ekin = 1.14121418715078 | erot = 1.85735567591289 | epot = -11.5286829740217 | etot = -8.53011311095804 +581000 ekin = 1.14478819464287 | erot = 1.77673557403154 | epot = -11.4516368793669 | etot = -8.53011311069244 +582000 ekin = 1.15860725309894 | erot = 1.70317164276424 | epot = -11.3918920064496 | etot = -8.5301131105864 +583000 ekin = 1.18104542316549 | erot = 1.63989823948895 | epot = -11.3510567732975 | etot = -8.53011311064311 +584000 ekin = 1.20969611011658 | erot = 1.58840206182349 | epot = -11.3282112827813 | etot = -8.53011311084127 +585000 ekin = 1.24168069892109 | erot = 1.54843600705662 | epot = -11.3202298171165 | etot = -8.53011311113879 +586000 ekin = 1.27405468400613 | erot = 1.51825728966608 | epot = -11.3224250851521 | etot = -8.53011311147993 +587000 ekin = 1.30424737194037 | erot = 1.49504623590991 | epot = -11.3294067196548 | etot = -8.53011311180455 +588000 ekin = 1.33045790147737 | erot = 1.47543949669353 | epot = -11.3360105102291 | etot = -8.53011311205818 +589000 ekin = 1.35193228855807 | erot = 1.45609131903373 | epot = -11.338136719795 | etot = -8.53011311220317 +590000 ekin = 1.36906373532047 | erot = 1.43416814795119 | epot = -11.3333449954962 | etot = -8.53011311222451 +591000 ekin = 1.38329049900968 | erot = 1.40769463797985 | epot = -11.3210982491223 | etot = -8.53011311213273 +592000 ekin = 1.396805266251 | erot = 1.37570509646141 | epot = -11.3026234746724 | etot = -8.53011311195998 +593000 ekin = 1.41212834899936 | erot = 1.33820418779995 | epot = -11.2804456485499 | etot = -8.53011311175062 +594000 ekin = 1.43162615781701 | erot = 1.29598641795047 | epot = -11.2577256873175 | etot = -8.53011311155 +595000 ekin = 1.45706677221587 | erot = 1.25039113233439 | epot = -11.2375710159443 | etot = -8.53011311139409 +596000 ekin = 1.48935058064536 | erot = 1.20330184638127 | epot = -11.2227655382613 | etot = -8.53011311123466 +597000 ekin = 1.52837107420443 | erot = 1.15683058607257 | epot = -11.2153147714756 | etot = -8.53011311119857 +598000 ekin = 1.57294993725619 | erot = 1.11287817710978 | epot = -11.2159412255837 | etot = -8.53011311121776 +599000 ekin = 1.62105272043967 | erot = 1.07333264838314 | epot = -11.2244984800949 | etot = -8.53011311127213 +600000 ekin = 1.67007785978922 | erot = 1.04007259181364 | epot = -11.2402635629416 | etot = -8.53011311133876 +601000 ekin = 1.71718069772722 | erot = 1.0149775707719 | epot = -11.2622713798956 | etot = -8.53011311139647 +602000 ekin = 1.75956754279139 | erot = 0.99992837746411 | epot = -11.2896090316937 | etot = -8.53011311143815 +603000 ekin = 1.79477210700428 | erot = 0.996719273891467 | epot = -11.3216044923485 | etot = -8.53011311145271 +604000 ekin = 1.82082157915429 | erot = 1.00697983034891 | epot = -11.3579145210169 | etot = -8.5301131115137 +605000 ekin = 1.83582223390883 | erot = 1.03147611611613 | epot = -11.3974114615132 | etot = -8.53011311148824 +606000 ekin = 1.83871408516499 | erot = 1.07115549981242 | epot = -11.439982696236 | etot = -8.5301131112586 +607000 ekin = 1.83011347633852 | erot = 1.12647121092001 | epot = -11.4866977985863 | etot = -8.53011311132778 +608000 ekin = 1.81023941949276 | erot = 1.19707781562292 | epot = -11.537430346519 | etot = -8.53011311140329 +609000 ekin = 1.77867265022505 | erot = 1.28228554240803 | epot = -11.5910713041181 | etot = -8.53011311148498 +610000 ekin = 1.73547793526389 | erot = 1.38091511478385 | epot = -11.6465061616115 | etot = -8.53011311156377 +611000 ekin = 1.68128247270621 | erot = 1.49134780300283 | epot = -11.7027433873325 | etot = -8.53011311162347 +612000 ekin = 1.61741095621286 | erot = 1.61161456404272 | epot = -11.7591386319015 | etot = -8.53011311164596 +613000 ekin = 1.54603198035631 | erot = 1.73948721912843 | epot = -11.8156323111056 | etot = -8.53011311162087 +614000 ekin = 1.47024512206181 | erot = 1.8724902221456 | epot = -11.872848455891 | etot = -8.53011311168358 +615000 ekin = 1.39417329365892 | erot = 2.00621352659441 | epot = -11.9304999319609 | etot = -8.53011311170756 +616000 ekin = 1.32190082986828 | erot = 2.13583847738475 | epot = -11.9878524190112 | etot = -8.53011311175813 +617000 ekin = 1.25724259787289 | erot = 2.25683214183905 | epot = -12.0441878515868 | etot = -8.53011311187485 +618000 ekin = 1.20346368462638 | erot = 2.36421640891954 | epot = -12.0977932056336 | etot = -8.53011311208768 +619000 ekin = 1.1627837357725 | erot = 2.45267600797282 | epot = -12.1455728561386 | etot = -8.53011311239324 +620000 ekin = 1.13605929309554 | erot = 2.51695592468145 | epot = -12.183128330526 | etot = -8.53011311274904 +621000 ekin = 1.12273498782525 | erot = 2.55258324879902 | epot = -12.2054313496935 | etot = -8.53011311306925 +622000 ekin = 1.12111468632864 | erot = 2.55686207165221 | epot = -12.2080898712278 | etot = -8.53011311324693 +623000 ekin = 1.12887388451623 | erot = 2.5298951115885 | epot = -12.1888821092945 | etot = -8.53011311318977 +624000 ekin = 1.14366711340987 | erot = 2.47526890170239 | epot = -12.1490491279694 | etot = -8.53011311285711 +625000 ekin = 1.1636533326709 | erot = 2.40007033438096 | epot = -12.093836779329 | etot = -8.53011311227714 +626000 ekin = 1.18777968891899 | erot = 2.31409540899725 | epot = -12.0319882094711 | etot = -8.53011311155485 +627000 ekin = 1.21575247624791 | erot = 2.22841508882612 | epot = -11.9742806758914 | etot = -8.53011311081738 +628000 ekin = 1.2477770134495 | erot = 2.15375689268861 | epot = -11.931647016327 | etot = -8.53011311018884 +629000 ekin = 1.28416743272501 | erot = 2.09907855914796 | epot = -11.9133591016357 | etot = -8.53011310976274 +630000 ekin = 1.32495360490945 | erot = 2.07058701615122 | epot = -11.9256537306572 | etot = -8.53011310959653 +631000 ekin = 1.36955506517005 | erot = 2.07123416092344 | epot = -11.9709023358059 | etot = -8.53011310971242 +632000 ekin = 1.4166041198013 | erot = 2.10067869857442 | epot = -12.0473959281377 | etot = -8.530113109762 +633000 ekin = 1.46471660335347 | erot = 2.15728920672483 | epot = -12.1521189203209 | etot = -8.53011311024257 +634000 ekin = 1.51164233306884 | erot = 2.2367775584158 | epot = -12.2785330023773 | etot = -8.53011311089267 +635000 ekin = 1.55431486763314 | erot = 2.33246650107505 | epot = -12.4168944815982 | etot = -8.53011311289006 +636000 ekin = 1.58749795609154 | erot = 2.4328941500499 | epot = -12.5505052200478 | etot = -8.53011311390632 +637000 ekin = 1.60559044462006 | erot = 2.52510908161638 | epot = -12.6608126409127 | etot = -8.53011311467626 +638000 ekin = 1.60593314362082 | erot = 2.60108258773354 | epot = -12.7371288464172 | etot = -8.53011311506288 +639000 ekin = 1.58800768941235 | erot = 2.6561269465598 | epot = -12.7742477510085 | etot = -8.53011311503639 +640000 ekin = 1.55357432529951 | erot = 2.68914087075556 | epot = -12.7728283107735 | etot = -8.53011311471843 +641000 ekin = 1.50594258809282 | erot = 2.70186118673738 | epot = -12.7379168890354 | etot = -8.53011311420525 +642000 ekin = 1.4493146246673 | erot = 2.69765625484718 | epot = -12.6770839931786 | etot = -8.53011311366408 +643000 ekin = 1.38808387570727 | erot = 2.68019687245386 | epot = -12.5983938613618 | etot = -8.53011311320068 +644000 ekin = 1.32616709545583 | erot = 2.65251028989558 | epot = -12.5087904982175 | etot = -8.53011311286604 +645000 ekin = 1.26675082972023 | erot = 2.61647581101387 | epot = -12.4133397533956 | etot = -8.53011311266147 +646000 ekin = 1.21233854698878 | erot = 2.5727411282426 | epot = -12.3151927877818 | etot = -8.53011311255044 +647000 ekin = 1.16530705825035 | erot = 2.52174625415196 | epot = -12.2171664245199 | etot = -8.53011311211762 +648000 ekin = 1.12796239478171 | erot = 2.46431327603586 | epot = -12.1223887830015 | etot = -8.53011311218397 +649000 ekin = 1.10135546654711 | erot = 2.39865320680352 | epot = -12.0301217854869 | etot = -8.53011311213631 +650000 ekin = 1.08691260033598 | erot = 2.32393477718293 | epot = -11.9409604894932 | etot = -8.5301131119743 +651000 ekin = 1.08628079617365 | erot = 2.24073961889261 | epot = -11.8571335268201 | etot = -8.53011311175385 +652000 ekin = 1.10075131989762 | erot = 2.15085977534316 | epot = -11.7817242068004 | etot = -8.53011311155963 +653000 ekin = 1.13059734564037 | erot = 2.05677047635677 | epot = -11.717480933456 | etot = -8.53011311145884 +654000 ekin = 1.17466906493285 | erot = 1.96105944319222 | epot = -11.6658416195931 | etot = -8.53011311146804 +655000 ekin = 1.23047347719944 | erot = 1.86606271803509 | epot = -11.6266493067855 | etot = -8.53011311155101 +656000 ekin = 1.29470000776986 | erot = 1.77378178163835 | epot = -11.5985949010552 | etot = -8.53011311164695 +657000 ekin = 1.36393161429671 | erot = 1.68598333614943 | epot = -11.5800280621511 | etot = -8.53011311170499 +658000 ekin = 1.46427470172726 | erot = 1.5177215741261 | epot = -11.5121093881332 | etot = -8.53011311227979 +659000 ekin = 1.64802750935634 | erot = 1.39327336691684 | epot = -11.5714140170961 | etot = -8.53011314082295 +660000 ekin = 1.73185850255149 | erot = 1.32954115948652 | epot = -11.5915127822348 | etot = -8.53011312019675 +661000 ekin = 1.80627684678466 | erot = 1.27623279770698 | epot = -11.6126227646805 | etot = -8.53011312018888 +662000 ekin = 1.87475382730263 | erot = 1.23350073993935 | epot = -11.6383676874372 | etot = -8.53011312019518 +663000 ekin = 1.93633534014241 | erot = 1.2017144119124 | epot = -11.6681628722826 | etot = -8.53011312022775 +664000 ekin = 1.99014964299795 | erot = 1.18083533499367 | epot = -11.7010980982835 | etot = -8.53011312029191 +665000 ekin = 2.03529479419155 | erot = 1.17046521672532 | epot = -11.7358731313024 | etot = -8.53011312038551 +666000 ekin = 2.07079068065876 | erot = 1.16992318050786 | epot = -11.7708269816687 | etot = -8.53011312050209 +667000 ekin = 2.09559163007541 | erot = 1.1783355345629 | epot = -11.8040402852701 | etot = -8.53011312063184 +668000 ekin = 2.10864748670405 | erot = 1.19472204260561 | epot = -11.8334826500739 | etot = -8.53011312076428 +669000 ekin = 2.10899520332087 | erot = 1.21806343010287 | epot = -11.8571717543145 | etot = -8.53011312089073 +670000 ekin = 2.09586141353625 | erot = 1.24733872817599 | epot = -11.8733132627168 | etot = -8.5301131210046 +671000 ekin = 2.06876278708906 | erot = 1.28153124625808 | epot = -11.880407154448 | etot = -8.53011312110084 +672000 ekin = 2.0276059501653 | erot = 1.3196174560483 | epot = -11.8773365273852 | etot = -8.53011312117159 +673000 ekin = 1.97280574594745 | erot = 1.36056605412265 | epot = -11.8634849212729 | etot = -8.53011312120279 +674000 ekin = 1.90544539353419 | erot = 1.40337348376535 | epot = -11.8389319984731 | etot = -8.53011312117355 +675000 ekin = 1.82748035867474 | erot = 1.44714139190333 | epot = -11.8047348716393 | etot = -8.53011312106128 +676000 ekin = 1.74193854031676 | erot = 1.49116973847737 | epot = -11.7632213996459 | etot = -8.53011312085182 +677000 ekin = 1.65301515487123 | erot = 1.53501856941789 | epot = -11.7181468448415 | etot = -8.53011312055241 +678000 ekin = 1.56597364723133 | erot = 1.57850581645678 | epot = -11.6745925833905 | etot = -8.5301131197024 +679000 ekin = 1.48964066739432 | erot = 1.62216732403317 | epot = -11.6419211112285 | etot = -8.53011311980098 +680000 ekin = 1.4147411199256 | erot = 1.66316827970309 | epot = -11.6080225227317 | etot = -8.53011312310305 +681000 ekin = 1.3875618080588 | erot = 1.70006441988288 | epot = -11.6177393496906 | etot = -8.53011312174889 +682000 ekin = 1.41176839058291 | erot = 1.74149456084656 | epot = -11.6833760731068 | etot = -8.53011312167729 +683000 ekin = 1.43478590176895 | erot = 1.78362921085527 | epot = -11.7485282340794 | etot = -8.53011312145515 +684000 ekin = 1.47724360908045 | erot = 1.82441599451412 | epot = -11.8317727257719 | etot = -8.53011312217729 +685000 ekin = 1.53305607829824 | erot = 1.86370343685993 | epot = -11.926872637478 | etot = -8.53011312231985 +686000 ekin = 1.59999203694875 | erot = 1.9011732086841 | epot = -12.0312783681585 | etot = -8.53011312252567 +687000 ekin = 1.67585532676464 | erot = 1.93616514337617 | epot = -12.1421335928733 | etot = -8.53011312273246 +688000 ekin = 1.75824359228375 | erot = 1.96747116979292 | epot = -12.2558278850981 | etot = -8.53011312302143 +689000 ekin = 1.84428806108725 | erot = 1.99331990890081 | epot = -12.3677210933695 | etot = -8.53011312338147 +690000 ekin = 1.93038830486633 | erot = 2.01163201955911 | epot = -12.4721334481869 | etot = -8.53011312376144 +691000 ekin = 2.0124388123945 | erot = 2.02053622467935 | epot = -12.5630881611624 | etot = -8.53011312408858 +692000 ekin = 2.08628029306208 | erot = 2.01896054468879 | epot = -12.6353539620508 | etot = -8.53011312429993 +693000 ekin = 2.14819565615959 | erot = 2.00704872932862 | epot = -12.6853575098564 | etot = -8.53011312436814 +694000 ekin = 2.19527915053153 | erot = 1.98620471484385 | epot = -12.7115969896857 | etot = -8.5301131243103 +695000 ekin = 2.22558662018778 | erot = 1.95872876713241 | epot = -12.7144285114969 | etot = -8.53011312417675 +696000 ekin = 2.23807939045553 | erot = 1.92719459918016 | epot = -12.6953871136602 | etot = -8.53011312402447 +697000 ekin = 2.23245491258329 | erot = 1.89382427550433 | epot = -12.6563923119805 | etot = -8.5301131238929 +698000 ekin = 2.2089816604532 | erot = 1.8600944710324 | epot = -12.5991892552706 | etot = -8.53011312378496 +699000 ekin = 2.16842192914749 | erot = 1.82670876840315 | epot = -12.5252438212447 | etot = -8.53011312369402 +700000 ekin = 2.1120671807926 | erot = 1.79377149364922 | epot = -12.4359517980202 | etot = -8.53011312357841 +701000 ekin = 2.04183510229625 | erot = 1.76109647800035 | epot = -12.3330447037266 | etot = -8.53011312342996 +702000 ekin = 1.96030636909966 | erot = 1.72840134028024 | epot = -12.2188208326276 | etot = -8.5301131232477 +703000 ekin = 1.87071986577536 | erot = 1.6952969552183 | epot = -12.0961299440358 | etot = -8.53011312304212 +704000 ekin = 1.77689930889829 | erot = 1.66110577654282 | epot = -11.9681182082892 | etot = -8.53011312284807 +705000 ekin = 1.68305722563238 | erot = 1.62461573120443 | epot = -11.8377860795203 | etot = -8.53011312268345 +706000 ekin = 1.59370733728226 | erot = 1.58419230641528 | epot = -11.7080127662202 | etot = -8.5301131225227 +707000 ekin = 1.51408760176651 | erot = 1.53852435758473 | epot = -11.5827250817869 | etot = -8.53011312243563 +708000 ekin = 1.44811612149248 | erot = 1.48556130219114 | epot = -11.4637905459439 | etot = -8.53011312226029 +709000 ekin = 1.39918507089688 | erot = 1.42450216554722 | epot = -11.3538003584281 | etot = -8.53011312198401 +710000 ekin = 1.37013904497115 | erot = 1.35650265897742 | epot = -11.256754825589 | etot = -8.53011312164041 +711000 ekin = 1.36293784709674 | erot = 1.28452294872962 | epot = -11.1775739171295 | etot = -8.53011312130316 +712000 ekin = 1.37810571333588 | erot = 1.2127592676919 | epot = -11.1209781019676 | etot = -8.53011312093986 +713000 ekin = 1.41539111505309 | erot = 1.14625285129577 | epot = -11.0917570870448 | etot = -8.53011312069598 +714000 ekin = 1.47330237309178 | erot = 1.09011154670301 | epot = -11.0935270405112 | etot = -8.53011312071644 +715000 ekin = 1.54871417395516 | erot = 1.04700633006755 | epot = -11.1258336248975 | etot = -8.5301131208748 +716000 ekin = 1.63763638282486 | erot = 1.01816315231564 | epot = -11.1859126562753 | etot = -8.53011312113476 +717000 ekin = 1.73566547227376 | erot = 1.00365944746866 | epot = -11.2694380412044 | etot = -8.53011312146196 +718000 ekin = 1.83830978286523 | erot = 1.00261452541088 | epot = -11.3710374301057 | etot = -8.53011312182958 +719000 ekin = 1.94121801684452 | erot = 1.0133761809921 | epot = -11.4847073200566 | etot = -8.53011312221999 +720000 ekin = 2.04031989968954 | erot = 1.03367563292332 | epot = -11.604108655233 | etot = -8.53011312262012 +721000 ekin = 2.13191426653015 | erot = 1.06076519451637 | epot = -11.722792584063 | etot = -8.53011312301647 +722000 ekin = 2.21272563481609 | erot = 1.09108188128938 | epot = -11.8339206397532 | etot = -8.53011312364771 +723000 ekin = 2.2798049753879 | erot = 1.11988309830396 | epot = -11.929801197716 | etot = -8.53011312402416 +724000 ekin = 2.3307445888961 | erot = 1.14401404987743 | epot = -12.0048717630069 | etot = -8.5301131242334 +725000 ekin = 2.36404026188201 | erot = 1.16137515756009 | epot = -12.0555285437483 | etot = -8.53011312430622 +726000 ekin = 2.37921817082508 | erot = 1.17112079794218 | epot = -12.0804520929998 | etot = -8.53011312423249 +727000 ekin = 2.37683377543891 | erot = 1.17363131591717 | epot = -12.0805782153761 | etot = -8.53011312402005 +728000 ekin = 2.35838505906028 | erot = 1.17045679634781 | epot = -12.0589549791114 | etot = -8.53011312370335 +729000 ekin = 2.32610613432665 | erot = 1.16404528413303 | epot = -12.0202645417809 | etot = -8.53011312332125 +730000 ekin = 2.28270056428477 | erot = 1.15738479164984 | epot = -11.9701984788577 | etot = -8.53011312292305 +731000 ekin = 2.23120367719957 | erot = 1.15355872123693 | epot = -11.9148755209369 | etot = -8.53011312250044 +732000 ekin = 2.17470227950519 | erot = 1.15522777871328 | epot = -11.860043180425 | etot = -8.53011312220656 +733000 ekin = 2.11571523135208 | erot = 1.16431239937464 | epot = -11.8101407526929 | etot = -8.5301131219662 +734000 ekin = 2.05656428237398 | erot = 1.18217764585023 | epot = -11.7688550500147 | etot = -8.53011312179045 +735000 ekin = 1.99938712969537 | erot = 1.20940907181223 | epot = -11.738909323183 | etot = -8.5301131216754 +736000 ekin = 1.94615450236175 | erot = 1.24582378056569 | epot = -11.7220914045417 | etot = -8.53011312161425 +737000 ekin = 1.89868408610683 | erot = 1.29054728244519 | epot = -11.7193444901531 | etot = -8.53011312160107 +738000 ekin = 1.85863300402756 | erot = 1.34211072230266 | epot = -11.7308568479626 | etot = -8.53011312163242 +739000 ekin = 1.82745784099844 | erot = 1.39854613746744 | epot = -11.7561171001749 | etot = -8.53011312170898 +740000 ekin = 1.80633906933064 | erot = 1.45733644211004 | epot = -11.7937886333365 | etot = -8.53011312189581 +741000 ekin = 1.79607780005903 | erot = 1.51536575546117 | epot = -11.8415566775994 | etot = -8.53011312207919 +742000 ekin = 1.79696493224339 | erot = 1.56951628226599 | epot = -11.8965943368904 | etot = -8.53011312238097 +743000 ekin = 1.80846594326523 | erot = 1.61633044640747 | epot = -11.9549095123576 | etot = -8.53011312268487 +744000 ekin = 1.82931777590634 | erot = 1.6524932345571 | epot = -12.0119241334793 | etot = -8.53011312301591 +745000 ekin = 1.85761408803469 | erot = 1.67511504715363 | epot = -12.0628422585281 | etot = -8.53011312333981 +746000 ekin = 1.89090050882572 | erot = 1.68206656303043 | epot = -12.103080195468 | etot = -8.5301131236118 +747000 ekin = 1.9264040178908 | erot = 1.67240004235613 | epot = -12.1289171840346 | etot = -8.53011312378763 +748000 ekin = 1.9613314590417 | erot = 1.64668719348782 | epot = -12.1381317763653 | etot = -8.53011312383578 +749000 ekin = 1.99318478286464 | erot = 1.60714989959232 | epot = -12.1304478062039 | etot = -8.53011312374693 +750000 ekin = 2.02003557888993 | erot = 1.55750382541237 | epot = -12.1076525278393 | etot = -8.53011312353702 +751000 ekin = 2.04071538032199 | erot = 1.50252212966086 | epot = -12.0733506332239 | etot = -8.53011312324101 +752000 ekin = 2.05490285135359 | erot = 1.44741474333511 | epot = -12.0324307175925 | etot = -8.53011312290377 +753000 ekin = 2.06311311775271 | erot = 1.3971776121172 | epot = -11.9904038524337 | etot = -8.53011312256377 +754000 ekin = 2.06660147047687 | erot = 1.35603065035366 | epot = -11.9527452431008 | etot = -8.5301131222703 +755000 ekin = 2.06719659822953 | erot = 1.32693138054303 | epot = -11.9242411008154 | etot = -8.53011312204286 +756000 ekin = 2.06710369978537 | erot = 1.31139881402575 | epot = -11.9086156357105 | etot = -8.53011312189937 +757000 ekin = 2.06866724412146 | erot = 1.30946252818078 | epot = -11.9082428937971 | etot = -8.53011312149487 +758000 ekin = 2.07499396289555 | erot = 1.32035089933049 | epot = -11.925457983801 | etot = -8.53011312157492 +759000 ekin = 2.08841045512732 | erot = 1.34191093709598 | epot = -11.9604345139953 | etot = -8.53011312177199 +760000 ekin = 2.10963645106986 | erot = 1.37032699692581 | epot = -12.010076570064 | etot = -8.53011312206832 +761000 ekin = 2.13857799100674 | erot = 1.40109303383798 | epot = -12.0697841472741 | etot = -8.53011312242933 +762000 ekin = 2.17432662716976 | erot = 1.42956057103018 | epot = -12.1340003210081 | etot = -8.5301131228082 +763000 ekin = 2.21530334450661 | erot = 1.45159579146069 | epot = -12.1970122591061 | etot = -8.5301131231388 +764000 ekin = 2.25988007752543 | erot = 1.46444731772858 | epot = -12.254440517812 | etot = -8.53011312255798 +765000 ekin = 2.30943589560879 | erot = 1.46853530581777 | epot = -12.3080843240095 | etot = -8.53011312258293 +766000 ekin = 2.3633228118817 | erot = 1.46534946814755 | epot = -12.3587854025141 | etot = -8.53011312248485 +767000 ekin = 2.42035196936083 | erot = 1.45783003510621 | epot = -12.4082951267659 | etot = -8.53011312229886 +768000 ekin = 2.47581566549893 | erot = 1.44854904097506 | epot = -12.4544778289231 | etot = -8.5301131224491 +769000 ekin = 2.52363299147821 | erot = 1.44004118154502 | epot = -12.4937872952733 | etot = -8.53011312225009 +770000 ekin = 2.5627053313779 | erot = 1.43704014073028 | epot = -12.5298585942135 | etot = -8.53011312210536 +771000 ekin = 2.59209730118586 | erot = 1.44343459838975 | epot = -12.5656450216748 | etot = -8.53011312209923 +772000 ekin = 2.61072906205615 | erot = 1.46130008819838 | epot = -12.6021422725622 | etot = -8.5301131223077 +773000 ekin = 2.61709469192326 | erot = 1.49008956150967 | epot = -12.6372973762101 | etot = -8.53011312277716 +774000 ekin = 2.60909645670254 | erot = 1.5261853113325 | epot = -12.6653948915257 | etot = -8.53011312349066 +775000 ekin = 2.584180757009 | erot = 1.56310881845028 | epot = -12.6774026997703 | etot = -8.53011312431102 +776000 ekin = 2.54009174823966 | erot = 1.59267184116151 | epot = -12.6628767144439 | etot = -8.53011312504277 +777000 ekin = 2.47580451030283 | erot = 1.60710708457714 | epot = -12.6130247202665 | etot = -8.53011312538657 +778000 ekin = 2.39287500137842 | erot = 1.60165568861311 | epot = -12.5246438151158 | etot = -8.53011312512425 +779000 ekin = 2.29635110868226 | erot = 1.5765511430474 | epot = -12.4030153759893 | etot = -8.53011312425959 +780000 ekin = 2.19432865474743 | erot = 1.53718068401753 | epot = -12.2616224618442 | etot = -8.53011312307929 +781000 ekin = 2.09599445125154 | erot = 1.49202506834476 | epot = -12.1181326416448 | etot = -8.53011312204848 +782000 ekin = 2.01067959043123 | erot = 1.44954049911078 | epot = -11.9903332111645 | etot = -8.53011312162245 +783000 ekin = 1.94134953217387 | erot = 1.41422212236663 | epot = -11.8856847763031 | etot = -8.53011312176256 +784000 ekin = 1.88557673989061 | erot = 1.38612068272764 | epot = -11.8018105449286 | etot = -8.53011312231031 +785000 ekin = 1.83821251587275 | erot = 1.36190678413453 | epot = -11.7302324229957 | etot = -8.53011312298836 +786000 ekin = 1.79361791902195 | erot = 1.3366529467747 | epot = -11.6603839893359 | etot = -8.53011312353925 +787000 ekin = 1.74765651996289 | erot = 1.30572681394152 | epot = -11.5834964576949 | etot = -8.53011312379047 +788000 ekin = 1.69893980452203 | erot = 1.26627175388825 | epot = -11.4953246820696 | etot = -8.53011312365928 +789000 ekin = 1.64926102869428 | erot = 1.21811104683314 | epot = -11.3974851987599 | etot = -8.53011312323247 +790000 ekin = 1.60278391126891 | erot = 1.16409864375872 | epot = -11.2969956774418 | etot = -8.53011312241422 +791000 ekin = 1.56615980925356 | erot = 1.10959117743484 | epot = -11.20586410814 | etot = -8.5301131214516 +792000 ekin = 1.54703734323363 | erot = 1.0614254777043 | epot = -11.1385759414963 | etot = -8.53011312055839 +793000 ekin = 1.55198521111592 | erot = 1.02650367068198 | epot = -11.1086020017441 | etot = -8.5301131199462 +794000 ekin = 1.58477896413844 | erot = 1.01030347984465 | epot = -11.1251955637415 | etot = -8.53011311975843 +795000 ekin = 1.64530503793388 | erot = 1.01579950553846 | epot = -11.1912176634959 | etot = -8.53011312002353 +796000 ekin = 1.72945610306576 | erot = 1.04308507627236 | epot = -11.3026542999965 | etot = -8.5301131206584 +797000 ekin = 1.8300109951507 | erot = 1.08968689110058 | epot = -11.4498110077628 | etot = -8.53011312151148 +798000 ekin = 1.93812374531718 | erot = 1.15131252106377 | epot = -11.6195493888024 | etot = -8.53011312242143 +799000 ekin = 2.04497054169758 | erot = 1.22278827270361 | epot = -11.797871937632 | etot = -8.53011312323085 +800000 ekin = 2.14336798475252 | erot = 1.29926771176965 | epot = -11.9727488204909 | etot = -8.5301131239687 +801000 ekin = 2.22727301807979 | erot = 1.37533047828101 | epot = -12.1327166209271 | etot = -8.5301131245663 +802000 ekin = 2.29233025372697 | erot = 1.44569167637999 | epot = -12.2681350551068 | etot = -8.53011312499983 +803000 ekin = 2.33601370068831 | erot = 1.50574813525576 | epot = -12.371874961204 | etot = -8.53011312525998 +804000 ekin = 2.35746789191767 | erot = 1.55190067908611 | epot = -12.4394816963551 | etot = -8.53011312535132 +805000 ekin = 2.35725821080623 | erot = 1.58176758445941 | epot = -12.4691389205536 | etot = -8.53011312528795 +806000 ekin = 2.33708958180946 | erot = 1.59429980420671 | epot = -12.4615025111012 | etot = -8.53011312508503 +807000 ekin = 2.29933748330018 | erot = 1.58976408842282 | epot = -12.4192146966084 | etot = -8.53011312488541 +808000 ekin = 2.24664197363816 | erot = 1.56989950315781 | epot = -12.3466546012147 | etot = -8.53011312441874 +809000 ekin = 2.18253497981478 | erot = 1.53842514359824 | epot = -12.2510732472497 | etot = -8.53011312383664 +810000 ekin = 2.11065804207247 | erot = 1.50058136871252 | epot = -12.1413525344396 | etot = -8.53011312365459 +811000 ekin = 2.03314489472902 | erot = 1.46124027743061 | epot = -12.0244982952586 | etot = -8.53011312309894 +812000 ekin = 1.95235452668751 | erot = 1.42640454805233 | epot = -11.9088721973062 | etot = -8.53011312256636 +813000 ekin = 1.87042476526723 | erot = 1.40255580939367 | epot = -11.8030936967812 | etot = -8.53011312212027 +814000 ekin = 1.78881788399355 | erot = 1.39558114785454 | epot = -11.7145121536541 | etot = -8.53011312180602 +815000 ekin = 1.70830262134635 | erot = 1.4100640930887 | epot = -11.6484798360723 | etot = -8.53011312163725 +816000 ekin = 1.62913132400324 | erot = 1.44882680731072 | epot = -11.6080712529127 | etot = -8.53011312159876 +817000 ekin = 1.55135581922497 | erot = 1.51275412297016 | epot = -11.5942230638573 | etot = -8.5301131216622 +818000 ekin = 1.47515646825142 | erot = 1.6008108113956 | epot = -11.6060804014516 | etot = -8.53011312180456 +819000 ekin = 1.40105599041545 | erot = 1.71014259914793 | epot = -11.6413117115776 | etot = -8.53011312201426 +820000 ekin = 1.32995993550557 | erot = 1.83623765526334 | epot = -11.6963107130513 | etot = -8.53011312228234 +821000 ekin = 1.2630652535206 | erot = 1.97322574610967 | epot = -11.7664041222185 | etot = -8.53011312258819 +822000 ekin = 1.20173310116966 | erot = 2.11438661283038 | epot = -11.8462328368969 | etot = -8.53011312289682 +823000 ekin = 1.14740078104478 | erot = 2.25282523514708 | epot = -11.9303391393603 | etot = -8.53011312316844 +824000 ekin = 1.10154739191426 | erot = 2.38216838202414 | epot = -12.0138288973085 | etot = -8.53011312337014 +825000 ekin = 1.06568617705835 | erot = 2.49713206510535 | epot = -12.092931365647 | etot = -8.53011312348325 +826000 ekin = 1.04135225336083 | erot = 2.59387442829393 | epot = -12.1653398051589 | etot = -8.53011312350415 +827000 ekin = 1.03006907531184 | erot = 2.67011598054695 | epot = -12.2302981793023 | etot = -8.53011312344346 +828000 ekin = 1.03328978433061 | erot = 2.7250538960879 | epot = -12.2884568037396 | etot = -8.5301131233211 +829000 ekin = 1.05231294058107 | erot = 2.75912544459229 | epot = -12.341551508337 | etot = -8.53011312316364 +830000 ekin = 1.08816877277396 | erot = 2.7736892067486 | epot = -12.3919711025229 | etot = -8.53011312300031 +831000 ekin = 1.14147021990776 | erot = 2.77068822986241 | epot = -12.4422715726318 | etot = -8.53011312286164 +832000 ekin = 1.21222920791932 | erot = 2.75233425305209 | epot = -12.4946765837488 | etot = -8.53011312277737 +833000 ekin = 1.29965444895282 | erot = 2.72082561150348 | epot = -12.5505931832315 | etot = -8.53011312277522 +834000 ekin = 1.40196412283888 | erot = 2.67809188939794 | epot = -12.6101691351166 | etot = -8.53011312287981 +835000 ekin = 1.51625524422594 | erot = 2.62555987056327 | epot = -12.6719282378969 | etot = -8.53011312310766 +836000 ekin = 1.63847039448776 | erot = 2.56396340705378 | epot = -12.7325469250018 | etot = -8.53011312346027 +837000 ekin = 1.76350003262958 | erot = 2.49326751324379 | epot = -12.7868806697862 | etot = -8.53011312391279 +838000 ekin = 1.88545581844262 | erot = 2.4128270613012 | epot = -12.8283960041408 | etot = -8.53011312439698 +839000 ekin = 1.99811239255192 | erot = 2.32192717669508 | epot = -12.8501526940733 | etot = -8.53011312482625 +840000 ekin = 2.09569613384735 | erot = 2.22044440704456 | epot = -12.8462536659563 | etot = -8.53011312506442 +841000 ekin = 2.173725264614 | erot = 2.10989077512463 | epot = -12.8137291647372 | etot = -8.53011312499862 +842000 ekin = 2.22978701493361 | erot = 1.99424893646548 | epot = -12.7541490759721 | etot = -8.53011312457298 +843000 ekin = 2.26403143583444 | erot = 1.88022583103963 | epot = -12.6743703906942 | etot = -8.53011312382014 +844000 ekin = 2.27916623055503 | erot = 1.77673401947053 | epot = -12.5860133728853 | etot = -8.53011312285977 +845000 ekin = 2.27988872469615 | erot = 1.69367250745041 | epot = -12.5036743540158 | etot = -8.53011312186927 +846000 ekin = 2.27183600933847 | erot = 1.64035007879627 | epot = -12.4422992091798 | etot = -8.5301131210451 +847000 ekin = 2.26027572823778 | erot = 1.62396723409051 | epot = -12.4143560828578 | etot = -8.53011312052946 +848000 ekin = 2.24926761309835 | erot = 1.64823314900325 | epot = -12.4276138825195 | etot = -8.53011312041792 +849000 ekin = 2.24093049969823 | erot = 1.71271918694617 | epot = -12.4837628073727 | etot = -8.5301131207283 +850000 ekin = 2.2352863097863 | erot = 1.81271493778336 | epot = -12.5781143689823 | etot = -8.53011312141266 +851000 ekin = 2.23059418786245 | erot = 1.9395861038207 | epot = -12.7002934140546 | etot = -8.53011312237144 +852000 ekin = 2.22400796085368 | erot = 2.08159933079985 | epot = -12.8357204150204 | etot = -8.53011312336684 +853000 ekin = 2.21277994501012 | erot = 2.22526716127566 | epot = -12.9681602307897 | etot = -8.53011312450391 +854000 ekin = 2.19416370963483 | erot = 2.35673636871339 | epot = -13.0810132037864 | etot = -8.53011312543816 +855000 ekin = 2.16598116515685 | erot = 2.46372761523239 | epot = -13.1598219064261 | etot = -8.53011312603689 +856000 ekin = 2.12753272379751 | erot = 2.53738513629609 | epot = -13.1950309863236 | etot = -8.53011312623 +857000 ekin = 2.07957021479449 | erot = 2.57336411908054 | epot = -13.1830474599009 | etot = -8.53011312602585 +858000 ekin = 2.02398845902938 | erot = 2.57205351918814 | epot = -13.1261551037142 | etot = -8.53011312549671 +859000 ekin = 1.96347606559006 | erot = 2.53830132905375 | epot = -13.0318905194401 | etot = -8.5301131247963 +860000 ekin = 1.90079123526298 | erot = 2.47952673179557 | epot = -12.9104310911536 | etot = -8.53011312409506 +861000 ekin = 1.83808336624989 | erot = 2.40350575732642 | epot = -12.7717022470392 | etot = -8.53011312346292 +862000 ekin = 1.77692269648157 | erot = 2.31773605216886 | epot = -12.6247718716174 | etot = -8.53011312296695 +863000 ekin = 1.71824491583397 | erot = 2.22850238050143 | epot = -12.476860418958 | etot = -8.53011312262258 +864000 ekin = 1.66247784195313 | erot = 2.1404774839969 | epot = -12.3330684483573 | etot = -8.53011312240726 +865000 ekin = 1.60977147001079 | erot = 2.05677487410831 | epot = -12.1966594663994 | etot = -8.53011312228031 +866000 ekin = 1.56023542790143 | erot = 1.97927297432476 | epot = -12.0696215244265 | etot = -8.53011312220029 +867000 ekin = 1.51411625156317 | erot = 1.90904243447512 | epot = -11.9532718081708 | etot = -8.5301131221325 +868000 ekin = 1.47188909914546 | erot = 1.84677021419571 | epot = -11.8487724353921 | etot = -8.5301131220509 +869000 ekin = 1.43450342552722 | erot = 1.79302433226931 | epot = -11.7576408797363 | etot = -8.53011312193975 +870000 ekin = 1.40309125561533 | erot = 1.74850970129618 | epot = -11.681714078727 | etot = -8.53011312181552 +871000 ekin = 1.37958721285951 | erot = 1.7144026390927 | epot = -11.6241029735179 | etot = -8.53011312156574 +872000 ekin = 1.36659086817592 | erot = 1.6914610233121 | epot = -11.5881650131805 | etot = -8.53011312169251 +873000 ekin = 1.36373253535392 | erot = 1.68047336442592 | epot = -11.5743190214342 | etot = -8.53011312165436 +874000 ekin = 1.37056306919445 | erot = 1.68272728104334 | epot = -11.5834034718922 | etot = -8.53011312165442 +875000 ekin = 1.38641922307153 | erot = 1.69919412007513 | epot = -11.6157264648621 | etot = -8.53011312171546 +876000 ekin = 1.41041928728016 | erot = 1.7300272312922 | epot = -11.6705596404538 | etot = -8.53011312188148 +877000 ekin = 1.44135762460335 | erot = 1.77412255951791 | epot = -11.7455933062268 | etot = -8.53011312210553 +878000 ekin = 1.47769632420485 | erot = 1.8298968923088 | epot = -11.8377063388812 | etot = -8.53011312236755 +879000 ekin = 1.51786971942077 | erot = 1.89513519879109 | epot = -11.9431180408563 | etot = -8.53011312264443 +880000 ekin = 1.56043024315676 | erot = 1.96714021036355 | epot = -12.057683576443 | etot = -8.53011312292266 +881000 ekin = 1.60413749602127 | erot = 2.04284304203179 | epot = -12.1770936612538 | etot = -8.53011312320076 +882000 ekin = 1.64798530770388 | erot = 2.11880523092398 | epot = -12.2969036621429 | etot = -8.53011312351505 +883000 ekin = 1.69122698489641 | erot = 2.1909880115382 | epot = -12.4123281202516 | etot = -8.53011312381701 +884000 ekin = 1.73324713427492 | erot = 2.2551355567814 | epot = -12.5184958151774 | etot = -8.53011312412103 +885000 ekin = 1.77353313460965 | erot = 2.30696174261745 | epot = -12.6106080016274 | etot = -8.53011312440027 +886000 ekin = 1.81168812336169 | erot = 2.34253084478391 | epot = -12.6843320927583 | etot = -8.53011312461273 +887000 ekin = 1.84747843479067 | erot = 2.35884841145035 | epot = -12.7364399709521 | etot = -8.53011312471107 +888000 ekin = 1.88090055110488 | erot = 2.35429714150869 | epot = -12.7653108178208 | etot = -8.5301131252072 +889000 ekin = 1.91199067531012 | erot = 2.32652877034522 | epot = -12.7686325706498 | etot = -8.53011312499449 +890000 ekin = 1.94125303802836 | erot = 2.27732909890954 | epot = -12.7486952615258 | etot = -8.53011312458792 +891000 ekin = 1.96982663210601 | erot = 2.21178980993948 | epot = -12.7117295661116 | etot = -8.53011312406609 +892000 ekin = 1.99917310251531 | erot = 2.13642241817651 | epot = -12.6657086442298 | etot = -8.53011312353799 +893000 ekin = 2.03065310422525 | erot = 2.05798315744505 | epot = -12.6187493847851 | etot = -8.53011312311476 +894000 ekin = 2.06504907980253 | erot = 1.98231723802983 | epot = -12.5774794407153 | etot = -8.53011312288296 +895000 ekin = 2.10217018399877 | erot = 1.91347939812078 | epot = -12.5457627050049 | etot = -8.5301131228854 +896000 ekin = 2.14066929411878 | erot = 1.85328312217968 | epot = -12.5240655392598 | etot = -8.53011312296133 +897000 ekin = 2.17888182063151 | erot = 1.80140384590578 | epot = -12.5103987898324 | etot = -8.5301131232951 +898000 ekin = 2.21472564829072 | erot = 1.7559491048214 | epot = -12.500787876807 | etot = -8.53011312369491 +899000 ekin = 2.24569847688266 | erot = 1.71401610888441 | epot = -12.4898277098273 | etot = -8.53011312406028 +900000 ekin = 2.26993925540951 | erot = 1.67248576849309 | epot = -12.4725381482042 | etot = -8.53011312430161 +901000 ekin = 2.28606210288977 | erot = 1.62859738727612 | epot = -12.4447726153278 | etot = -8.53011312516187 +902000 ekin = 2.29042230833931 | erot = 1.57932532021181 | epot = -12.3998607538154 | etot = -8.53011312526431 +903000 ekin = 2.28273813411885 | erot = 1.52313711842009 | epot = -12.3359883777437 | etot = -8.53011312520473 +904000 ekin = 2.26413659223255 | erot = 1.45995102712811 | epot = -12.2542007443878 | etot = -8.53011312502713 +905000 ekin = 2.23616199952034 | erot = 1.39088148159727 | epot = -12.1571566059059 | etot = -8.5301131247883 +906000 ekin = 2.20025203975427 | erot = 1.31795883314273 | epot = -12.048323997428 | etot = -8.53011312453098 +907000 ekin = 2.15741247687551 | erot = 1.24385993298354 | epot = -11.9313855341255 | etot = -8.53011312426642 +908000 ekin = 2.10821372460307 | erot = 1.17175804307284 | epot = -11.8100848916 | etot = -8.5301131239241 +909000 ekin = 2.05339597656793 | erot = 1.10523613714342 | epot = -11.6887452373131 | etot = -8.53011312360174 +910000 ekin = 1.99437388636401 | erot = 1.04840591871054 | epot = -11.5728929278626 | etot = -8.53011312278807 +911000 ekin = 1.93472408691892 | erot = 1.00596121878728 | epot = -11.4707984281407 | etot = -8.53011312243452 +912000 ekin = 1.87571848812107 | erot = 0.981792282309055 | epot = -11.3876238925452 | etot = -8.53011312211502 +913000 ekin = 1.81824273787103 | erot = 0.979441553337294 | epot = -11.3277974130193 | etot = -8.53011312181098 +914000 ekin = 1.76344481711065 | erot = 1.00191943331552 | epot = -11.2954773719745 | etot = -8.53011312154833 +915000 ekin = 1.71265768818243 | erot = 1.05137542114792 | epot = -11.2941462307294 | etot = -8.53011312139905 +916000 ekin = 1.66711519083679 | erot = 1.12858220206574 | epot = -11.325810514255 | etot = -8.53011312135242 +917000 ekin = 1.62763655706833 | erot = 1.23302216367853 | epot = -11.3907718421935 | etot = -8.53011312144669 +918000 ekin = 1.59455865391094 | erot = 1.36258552110633 | epot = -11.4872572967196 | etot = -8.53011312170233 +919000 ekin = 1.56762589342604 | erot = 1.51336619454063 | epot = -11.6111052100989 | etot = -8.5301131221322 +920000 ekin = 1.54593157446753 | erot = 1.67955640234537 | epot = -11.7556010995449 | etot = -8.53011312273205 +921000 ekin = 1.52794851749444 | erot = 1.85350715091608 | epot = -11.9115687918801 | etot = -8.5301131234696 +922000 ekin = 1.51169520999303 | erot = 2.02606206724868 | epot = -12.0678704015167 | etot = -8.53011312427499 +923000 ekin = 1.49507384236035 | erot = 2.18724898578918 | epot = -12.2124359531917 | etot = -8.53011312504216 +924000 ekin = 1.47635971364226 | erot = 2.3273137721656 | epot = -12.3337866114592 | etot = -8.53011312565137 +925000 ekin = 1.4547156001897 | erot = 2.43791688064256 | epot = -12.4227456068396 | etot = -8.53011312600731 +926000 ekin = 1.43051136692512 | erot = 2.51317740628974 | epot = -12.4738018992913 | etot = -8.53011312607646 +927000 ekin = 1.40525402738398 | erot = 2.55026841197154 | epot = -12.4856355652497 | etot = -8.53011312589415 +928000 ekin = 1.38111941159435 | erot = 2.54946754680809 | epot = -12.4607000839378 | etot = -8.53011312553534 +929000 ekin = 1.35992585274761 | erot = 2.51283593003105 | epot = -12.4028749084815 | etot = -8.53011312570288 +930000 ekin = 1.34158304400649 | erot = 2.44241099542427 | epot = -12.3141071645153 | etot = -8.53011312508453 +931000 ekin = 1.32656952526936 | erot = 2.34647203264279 | epot = -12.203154682278 | etot = -8.53011312436587 +932000 ekin = 1.31543664436151 | erot = 2.23535488457966 | epot = -12.0809046525596 | etot = -8.5301131236184 +933000 ekin = 1.30881286163248 | erot = 2.11983848396202 | epot = -11.9587644685058 | etot = -8.53011312291131 +934000 ekin = 1.30745813480763 | erot = 2.01001812951955 | epot = -11.8475893866352 | etot = -8.53011312230804 +935000 ekin = 1.31220098075424 | erot = 1.91444621589099 | epot = -11.7567603184798 | etot = -8.53011312183458 +936000 ekin = 1.32391210171335 | erot = 1.83958727479365 | epot = -11.6936124980305 | etot = -8.53011312152353 +937000 ekin = 1.34332477770633 | erot = 1.7895743674847 | epot = -11.6630122665762 | etot = -8.53011312138513 +938000 ekin = 1.37084792782356 | erot = 1.76617827876127 | epot = -11.6671393280075 | etot = -8.53011312142264 +939000 ekin = 1.40642931157091 | erot = 1.76890798112712 | epot = -11.7054504143154 | etot = -8.53011312161738 +940000 ekin = 1.44952186396718 | erot = 1.79522267831072 | epot = -11.7748576642556 | etot = -8.53011312197768 +941000 ekin = 1.49902948238017 | erot = 1.84063576442742 | epot = -11.8697783692894 | etot = -8.53011312248181 +942000 ekin = 1.55333690860234 | erot = 1.89898447954219 | epot = -11.9824345112389 | etot = -8.53011312309434 +943000 ekin = 1.61046155753537 | erot = 1.96285592643975 | epot = -12.1034306077316 | etot = -8.53011312375651 +944000 ekin = 1.66830779525176 | erot = 2.02424654684136 | epot = -12.2226674664823 | etot = -8.53011312438917 +945000 ekin = 1.72497649039889 | erot = 2.07544351227897 | epot = -12.3305331275858 | etot = -8.53011312490793 +946000 ekin = 1.77904739726597 | erot = 2.10999554442641 | epot = -12.4191560669373 | etot = -8.53011312524495 +947000 ekin = 1.82974878182985 | erot = 2.12355253245418 | epot = -12.4834144396516 | etot = -8.53011312536752 +948000 ekin = 1.87696379694816 | erot = 2.11435368831943 | epot = -12.5214306114532 | etot = -8.53011312618566 +949000 ekin = 1.91868968740517 | erot = 2.08113041336664 | epot = -12.52993322687 | etot = -8.53011312609818 +950000 ekin = 1.95250041362345 | erot = 2.02444704716244 | epot = -12.5070605866549 | etot = -8.53011312586905 +951000 ekin = 1.9778637786337 | erot = 1.94836556911643 | epot = -12.4563424732917 | etot = -8.53011312554161 +952000 ekin = 1.99440322907185 | erot = 1.85836147890427 | epot = -12.38287783313 | etot = -8.53011312515385 +953000 ekin = 2.00183985527172 | erot = 1.76077654418835 | epot = -12.2927295242009 | etot = -8.5301131247408 +954000 ekin = 1.99994520548227 | erot = 1.66230521851151 | epot = -12.1923635483307 | etot = -8.53011312433688 +955000 ekin = 1.98848781980585 | erot = 1.56949886934363 | epot = -12.0880998131247 | etot = -8.53011312397522 +956000 ekin = 1.96719248393008 | erot = 1.4883006602956 | epot = -11.9856062679043 | etot = -8.53011312367857 +957000 ekin = 1.93576585486353 | erot = 1.42368152907481 | epot = -11.8895605073869 | etot = -8.53011312344858 +958000 ekin = 1.89410745231055 | erot = 1.37950780378272 | epot = -11.8037283791194 | etot = -8.53011312302612 +959000 ekin = 1.84388200426958 | erot = 1.35926323934016 | epot = -11.7332583665532 | etot = -8.53011312294347 +960000 ekin = 1.7860030779281 | erot = 1.36453982260963 | epot = -11.6806560233844 | etot = -8.5301131228467 +961000 ekin = 1.72147601470138 | erot = 1.39572572976078 | epot = -11.6473148671986 | etot = -8.53011312273643 +962000 ekin = 1.65221748517946 | erot = 1.45243800587786 | epot = -11.6347686137028 | etot = -8.53011312264547 +963000 ekin = 1.5808593742463 | erot = 1.53327574295208 | epot = -11.6442482398169 | etot = -8.53011312261852 +964000 ekin = 1.51040322856247 | erot = 1.6355639292653 | epot = -11.6760802805099 | etot = -8.5301131226821 +965000 ekin = 1.4438658537195 | erot = 1.75533146870353 | epot = -11.7293104452544 | etot = -8.53011312283137 +966000 ekin = 1.38401833468609 | erot = 1.88762696931008 | epot = -11.8017584270335 | etot = -8.5301131230373 +967000 ekin = 1.33323855950443 | erot = 2.0270639743502 | epot = -11.8904156571205 | etot = -8.53011312326589 +968000 ekin = 1.29343485246359 | erot = 2.16835538303868 | epot = -11.9919033590023 | etot = -8.53011312350007 +969000 ekin = 1.26598521104654 | erot = 2.30662029889123 | epot = -12.1027186336833 | etot = -8.53011312374556 +970000 ekin = 1.25166332223789 | erot = 2.4373893813798 | epot = -12.2191658276418 | etot = -8.53011312402409 +971000 ekin = 1.25055917698537 | erot = 2.55639826961706 | epot = -12.3370705709594 | etot = -8.53011312435701 +972000 ekin = 1.2620250390517 | erot = 2.6593581861793 | epot = -12.4514963499806 | etot = -8.53011312474964 +973000 ekin = 1.2846815230187 | erot = 2.74190119131833 | epot = -12.5566958395169 | etot = -8.53011312517987 +974000 ekin = 1.31650940087453 | erot = 2.79983470558498 | epot = -12.6464572320542 | etot = -8.53011312559467 +975000 ekin = 1.35503678002767 | erot = 2.82973569321932 | epot = -12.7148855991652 | etot = -8.53011312591824 +976000 ekin = 1.39761106494576 | erot = 2.8297898983668 | epot = -12.7575140893814 | etot = -8.5301131260688 +977000 ekin = 1.44171682384798 | erot = 2.80065378123681 | epot = -12.772483731069 | etot = -8.53011312598422 +978000 ekin = 1.48527676985186 | erot = 2.74603610439897 | epot = -12.7614259998977 | etot = -8.53011312564688 +979000 ekin = 1.52686311957103 | erot = 2.6727208928021 | epot = -12.7296971375713 | etot = -8.53011312519821 +980000 ekin = 1.56541539895159 | erot = 2.58979180869151 | epot = -12.6853203321536 | etot = -8.53011312451051 +981000 ekin = 1.60047076752442 | erot = 2.50776375784216 | epot = -12.6383476491722 | etot = -8.53011312380564 +982000 ekin = 1.63230110543246 | erot = 2.43713587089594 | epot = -12.5995500990661 | etot = -8.53011312273768 +983000 ekin = 1.66203103420328 | erot = 2.38850313753443 | epot = -12.5806472942403 | etot = -8.53011312250262 +984000 ekin = 1.68995499848083 | erot = 2.36799213714196 | epot = -12.5880602580497 | etot = -8.53011312242695 +985000 ekin = 1.71562347309754 | erot = 2.37731939440605 | epot = -12.6230559900315 | etot = -8.53011312252794 +986000 ekin = 1.73850018171065 | erot = 2.41550202453549 | epot = -12.6841153290532 | etot = -8.53011312280707 +987000 ekin = 1.75791457132817 | erot = 2.47889412329359 | epot = -12.7669218178726 | etot = -8.53011312325089 +988000 ekin = 1.77306329683152 | erot = 2.56140924197459 | epot = -12.8645856626387 | etot = -8.53011312383259 +989000 ekin = 1.78306912458022 | erot = 2.65491288904962 | epot = -12.9680951381379 | etot = -8.53011312450809 +990000 ekin = 1.7871102030269 | erot = 2.74980403807363 | epot = -13.0670273663133 | etot = -8.53011312521283 +991000 ekin = 1.78462774620252 | erot = 2.83581968231897 | epot = -13.1505605543846 | etot = -8.53011312586315 +992000 ekin = 1.77558737019808 | erot = 2.903053279835 | epot = -13.2087537764021 | etot = -8.53011312636903 +993000 ekin = 1.7607111600695 | erot = 2.94306881059492 | epot = -13.2338930973241 | etot = -8.53011312665972 +994000 ekin = 1.74155803540902 | erot = 2.94987789383902 | epot = -13.2215490559567 | etot = -8.53011312670862 +995000 ekin = 1.7203663537019 | erot = 2.92053034161859 | epot = -13.1710098218588 | etot = -8.53011312653833 +996000 ekin = 1.69928711846718 | erot = 2.85461248857855 | epot = -13.0840127336996 | etot = -8.5301131266539 +997000 ekin = 1.67961730936722 | erot = 2.75367224449579 | epot = -12.9634026800371 | etot = -8.53011312617413 +998000 ekin = 1.66320821769785 | erot = 2.62336921196973 | epot = -12.8166905552758 | etot = -8.53011312560823 +999000 ekin = 1.65140969901601 | erot = 2.47137959789259 | epot = -12.6529024219469 | etot = -8.53011312503827 +1000000 ekin = 1.64474900325961 | erot = 2.3063352933529 | epot = -12.4811974211383 | etot = -8.53011312452577 + 1000000 0.12183326 -1.2831408 0.035021017 -1.0836448 3.258552e-05 64000 +Loop time of 11.3718 on 4 procs for 1000000 steps with 10 atoms + +Performance: 75977.257 tau/day, 87936.641 timesteps/s, 879.366 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.222 | 4.604 | 6.7099 | 60.2 | 40.49 +Bond | 0.14199 | 0.20499 | 0.26671 | 11.1 | 1.80 +Neigh | 0.004255 | 0.0043152 | 0.004356 | 0.1 | 0.04 +Comm | 2.4232 | 4.8228 | 6.2203 | 65.4 | 42.41 +Output | 0.055097 | 0.058013 | 0.063725 | 1.4 | 0.51 +Modify | 0.41435 | 0.49065 | 0.58017 | 10.8 | 4.31 +Other | | 1.187 | | | 10.44 + +Nlocal: 2.5 ave 3 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 8 max 7 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 18 max 3 min +Histogram: 2 0 0 0 0 0 1 0 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:11 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/data.duplex4.4type b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/data.duplex4.4type similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/data.duplex4.4type rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/data.duplex4.4type diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/data.duplex4.8type b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/data.duplex4.8type similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/data.duplex4.8type rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/data.duplex4.8type diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/generate_unique.py b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/generate_unique.py similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/generate_unique.py rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/generate_unique.py diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/in.duplex4.4type b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/in.duplex4.4type similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/in.duplex4.4type rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/in.duplex4.4type diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/in.duplex4.8type b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/in.duplex4.8type similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/in.duplex4.8type rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/in.duplex4.8type diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.4type.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/unique_bp/log.2Jul21.duplex4.8type.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/data.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/data.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/data.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/in.duplex2 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/in.duplex2 rename to examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/in.duplex2 diff --git a/examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 rename to examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/log.2Jul21.duplex2.g++.1 diff --git a/examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 similarity index 100% rename from examples/PACKAGES/cgdna/examples/oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 rename to examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/duplex2/log.2Jul21.duplex2.g++.4 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/data.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/data.duplex2 new file mode 100644 index 0000000000..8c985708ca --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/data.duplex2 @@ -0,0 +1,91 @@ +LAMMPS data file via write_data, version 27 May 2021 + +16 atoms +4 atom types +13 bonds +1 bond types +16 ellipsoids + +-20 20 xlo xhi +-20 20 ylo yhi +-20 20 zlo zhi + +Masses + +1 3.1575 +2 3.1575 +3 3.1575 +4 3.1575 + +Atoms # hybrid + +1 1 -0.6133472972454725 -0.657478171669766 0.36065226351201896 1 1 3.7269849963023267 0 0 0 +2 2 -0.45262764247356363 -1.0030650534345913 0.7258693379233347 1 1 3.7269849963023267 0 0 0 +3 3 -0.0988342108522641 -1.239775807128057 1.069462285786363 1 1 3.7269849963023267 0 0 0 +4 4 0.2937771854299732 -1.2579750924899842 1.4258916086606965 1 1 3.7269849963023267 0 0 0 +5 1 0.6286896795685137 -1.0183343395119744 1.7689346339672825 1 1 3.7269849963023267 0 0 0 +6 2 0.7901522619067926 -0.6766341805565266 2.1540160705495754 1 1 3.7269849963023267 0 0 0 +7 3 0.7115777184886863 -0.40195579325143455 2.569568683291525 1 1 3.7269849963023267 0 0 0 +8 4 0.46973310377005234 -0.30251697967107033 3.0668007117519216 1 1 3.7269849963023267 0 0 0 +9 1 0.4056113349449848 -1.443775499211898 3.0590726503341124 2 1 3.7269849963023267 0 0 0 +10 2 -0.032028429059287516 -1.2947520971164723 2.7201071151392187 2 1 3.7269849963023267 0 0 0 +11 3 -0.31613855112314065 -0.908414175906161 2.4125207871782006 2 1 3.7269849963023267 0 0 0 +12 4 -0.38939391251821 -0.4866605488242819 2.006177777000426 2 1 3.7269849963023267 0 0 0 +13 1 -0.06232643040853296 -0.07155965522127403 1.5593206052730733 3 1 3.7269849963023267 0 0 0 +14 2 0.17884090390913376 -0.05516721349427172 1.021273149730912 3 1 3.7269849963023267 0 0 0 +15 3 0.4513439961906 -0.23795607383274572 0.5957328539615993 3 1 3.7269849963023267 0 0 0 +16 4 0.5077649359807965 -0.5565625134533538 0.1655875784458841 3 1 3.7269849963023267 0 0 0 + +Velocities + +1 0.05386890022865587 0.02262922525602673 0.24882291144736746 0.1772010258006941 -0.29588531700001014 -0.2624137503614725 +2 -0.03995003075629463 0.26969511063701984 -0.18986454548195664 -0.030614539375968176 -0.11769518931480599 0.040074702426473215 +3 -0.20784535295201376 -0.13628722357673043 -0.06062477950201746 -0.03676034584820381 -0.06308707793373186 -0.14798601576087625 +4 -0.23969824181316998 -0.5624721730878831 0.032474422905036715 -0.16523645965016515 0.2860623077030974 0.33543519753105877 +5 -0.16114897356828353 -0.22889697470760145 -0.13553324962649563 0.07151030852881342 -0.09415592891043179 0.13422881539312292 +6 -0.04701706588477693 0.19216715585110036 0.14588242791297215 0.09218622989776322 -0.5640128930702024 0.09287105657777776 +7 0.05098438305112513 -0.038459555522009595 -0.14244196285749675 0.3479046835475834 0.4244922695910593 -0.13582882604358357 +8 0.37827971348411926 -0.04953992506010833 0.1626392045834847 0.0442887659636129 0.07868414126013584 -0.12713600444325032 +9 0.04912038408665491 0.041260647318716696 0.012223856334495234 0.03282916621721876 -0.00012670547095256 0.155978785417696 +10 0.1939216183073483 0.11075235485381942 -0.0405050516019971 -0.17008135001813812 -0.4563093565840761 -0.30318513627039506 +11 -0.351360733920646 -0.18822419067535692 0.36147938199051305 -0.3708221604627426 -0.49108381825941216 0.09435948331955418 +12 -0.1188642917357977 0.22355282456551884 0.009265586122144348 -0.28230100188858365 0.10276485660828892 0.10175233476780697 +13 -0.1446616296238799 -0.11552059909787235 0.1331477187595642 -0.25498721890374343 0.2754663721641154 0.05806416868630132 +14 0.051547120035862544 -0.36611026510775635 -0.06630782880801242 -0.11999847173316518 0.0684476892288605 0.2161595932308759 +15 -0.20214244962091388 0.23341226933559608 0.008133374252278069 -0.17013911124135248 0.01870292260510287 -0.2682954134361106 +16 -0.19202131162868008 -0.08105295741355378 -0.0469350810885074 0.017332107652647588 -0.32876588862807693 0.1085334141225924 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 9 10 +9 1 10 11 +10 1 11 12 +11 1 13 14 +12 1 14 15 +13 1 15 16 + +Ellipsoids + +1 1.173984503142341 1.173984503142341 1.173984503142341 0.9964752158482045 -0.053253555733239796 0.011391163807102514 -0.06380787090289707 +2 1.173984503142341 1.173984503142341 1.173984503142341 0.9369923833143513 0.11220716044648564 0.06732538499716349 0.3239168400846305 +3 1.173984503142341 1.173984503142341 1.173984503142341 0.797964932091827 0.14473096354527873 0.18374142699366386 0.5554673737937029 +4 1.173984503142341 1.173984503142341 1.173984503142341 0.5660864821344559 0.14688275499481052 0.09873742533340191 0.8051226439917721 +5 1.173984503142341 1.173984503142341 1.173984503142341 0.2533023785125306 0.12062313161679827 0.08583012223905846 0.9559922359911086 +6 1.173984503142341 1.173984503142341 1.173984503142341 -0.03855807343534716 0.08405913137017908 0.02236505169306371 0.9954632800204194 +7 1.173984503142341 1.173984503142341 1.173984503142341 -0.45592844330248017 0.1004550065061007 -0.052524745294758785 0.8827679181910482 +8 1.173984503142341 1.173984503142341 1.173984503142341 0.768021221540491 -0.009582139884533599 0.03658677589040892 -0.63930665074644 +9 1.173984503142341 1.173984503142341 1.173984503142341 -0.23299975754512345 0.688686395231341 0.6747873944883376 -0.12682324016841584 +10 1.173984503142341 1.173984503142341 1.173984503142341 -0.24662061871907232 0.8744456399178389 0.39370836087823996 -0.13970261209395163 +11 1.173984503142341 1.173984503142341 1.173984503142341 -0.087475900850909 0.977367602388229 0.14493549113095577 -0.12686307572668784 +12 1.173984503142341 1.173984503142341 1.173984503142341 -0.03181169300779214 0.9634374984140112 -0.2442360692534371 -0.10547485630879185 +13 1.173984503142341 1.173984503142341 1.173984503142341 -0.032786070696572266 0.7922941528811777 -0.6084214170523915 -0.03191282109962717 +14 1.173984503142341 1.173984503142341 1.173984503142341 0.047188686288341455 0.6316396208287698 -0.7737349519945348 0.011783095844627799 +15 1.173984503142341 1.173984503142341 1.173984503142341 -0.05869980642620335 -0.34229358203414423 0.9376740835056508 0.012519965878508689 +16 1.173984503142341 1.173984503142341 1.173984503142341 -0.08582818143150042 0.0008707732197394232 0.9939540921464659 -0.0684691735853161 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 new file mode 100644 index 0000000000..b6eb8f5251 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 @@ -0,0 +1,73 @@ +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 0.1 +variable rhos equal 0.5 + +units lj + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 1.0 + +# Pair interactions require lists of neighbours to be calculated +neighbor 2.0 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 + +set atom * mass 3.1575 + +group all type 1 4 + +# oxRNA2 bond interactions - FENE backbone +bond_style oxrna2/fene +bond_coeff * oxrna2.lj +special_bonds lj 0 1 1 + +# oxRNA2 pair interactions +pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh +pair_coeff * * oxrna2/excv oxrna2.lj +pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj +pair_coeff * * oxrna2/hbond seqdep oxrna2.lj +pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj +pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj +pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj +pair_coeff * * oxrna2/xstk oxrna2.lj +pair_coeff * * oxrna2/coaxstk oxrna2.lj +pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2.lj + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 2.5 457145 angmom 10 + +timestep 1e-5 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 3.8 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 new file mode 100644 index 0000000000..dc66a95ea7 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 @@ -0,0 +1,1121 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Reading oxdna potential (fene) file oxrna2.lj with DATE: 2024-04-19 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (stk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (xstk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (coaxstk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (dh) file oxrna2.lj with DATE: 2024-04-19 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.3014979 + ghost atom cutoff = 4.3014979 + binsize = 2.150749, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +WARNING: Communication cutoff adjusted to 4.301497916929199 (src/comm.cpp:739) +0 ekin = 2.70475393009871 | erot = 2.80172072918779 | epot = -11.1349465280231 | etot = -5.62847186873665 +Per MPI rank memory allocation (min/avg/max) = 7.592 | 7.592 | 7.592 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.12021129 -0.7299505 0.034016337 -0.52688704 5.1214421e-05 64000 +1000 ekin = 2.74425239815418 | erot = 2.79065458610894 | epot = -11.163378852689 | etot = -5.62847186842591 +2000 ekin = 2.78841691867037 | erot = 2.77992540099535 | epot = -11.1968141877249 | etot = -5.62847186805919 +3000 ekin = 2.83938215410024 | erot = 2.77185117591642 | epot = -11.2397051978033 | etot = -5.62847186778665 +4000 ekin = 2.89876217830266 | erot = 2.76816783884241 | epot = -11.295401884792 | etot = -5.62847186764698 +5000 ekin = 2.96742170720772 | erot = 2.76919345829433 | epot = -11.3650870331989 | etot = -5.62847186769686 +6000 ekin = 3.04563007371043 | erot = 2.77376672268246 | epot = -11.4478686641706 | etot = -5.62847186777771 +7000 ekin = 3.13407886898542 | erot = 2.78065913591454 | epot = -11.5432098726294 | etot = -5.6284718677294 +8000 ekin = 3.23400863287747 | erot = 2.78938863934855 | epot = -11.651869139893 | etot = -5.62847186766701 +9000 ekin = 3.34625998930262 | erot = 2.80019523753782 | epot = -11.7749270943235 | etot = -5.62847186748302 +10000 ekin = 3.47220350616338 | erot = 2.8146462281528 | epot = -11.9153216015116 | etot = -5.6284718671954 +11000 ekin = 3.61341090096022 | erot = 2.83541090219848 | epot = -12.0772936703878 | etot = -5.62847186722913 +12000 ekin = 3.76971728921065 | erot = 2.8651661044909 | epot = -12.2633552607298 | etot = -5.62847186702827 +13000 ekin = 3.9410557771447 | erot = 2.90597306806357 | epot = -12.4755007121565 | etot = -5.6284718669482 +14000 ekin = 4.1273074489676 | erot = 2.95952862137382 | epot = -12.7153079373022 | etot = -5.6284718669608 +15000 ekin = 4.32776706381553 | erot = 3.02701108512254 | epot = -12.9832500158853 | etot = -5.62847186694726 +16000 ekin = 4.54139695680688 | erot = 3.10924468066181 | epot = -13.2791135046205 | etot = -5.6284718671518 +17000 ekin = 4.76575661763827 | erot = 3.20604355373096 | epot = -13.6002720389201 | etot = -5.62847186755087 +18000 ekin = 4.99700491214688 | erot = 3.31611869568271 | epot = -13.9415954758898 | etot = -5.62847186806023 +19000 ekin = 5.23048108112193 | erot = 3.43700077146765 | epot = -14.2959537213472 | etot = -5.62847186875764 +20000 ekin = 5.46074742513059 | erot = 3.56463156086408 | epot = -14.6538508556014 | etot = -5.6284718696067 +21000 ekin = 5.68087058007136 | erot = 3.6925677668172 | epot = -15.0019102179231 | etot = -5.62847187103453 +22000 ekin = 5.88327619983878 | erot = 3.81252322503561 | epot = -15.3242712967755 | etot = -5.62847187190114 +23000 ekin = 6.06249979951991 | erot = 3.91720950057676 | epot = -15.6081811728147 | etot = -5.62847187271807 +24000 ekin = 6.21449712377435 | erot = 4.00104081543186 | epot = -15.8440098121105 | etot = -5.62847187290428 +25000 ekin = 6.33853277809253 | erot = 4.06184542619887 | epot = -16.0288500769829 | etot = -5.62847187269146 +26000 ekin = 6.43627737187009 | erot = 4.10076278430849 | epot = -16.1655120283939 | etot = -5.62847187221528 +27000 ekin = 6.51092447972025 | erot = 4.12134483746815 | epot = -16.2607411888241 | etot = -5.62847187163574 +28000 ekin = 6.56622100976682 | erot = 4.12827111510821 | epot = -16.3229639959506 | etot = -5.62847187107561 +29000 ekin = 6.60587340002393 | erot = 4.12622173833904 | epot = -16.3605670089492 | etot = -5.62847187058621 +30000 ekin = 6.63335580501828 | erot = 4.11921545444656 | epot = -16.3810431296794 | etot = -5.62847187021455 +31000 ekin = 6.65211888589272 | erot = 4.10999678317533 | epot = -16.3905875389834 | etot = -5.62847186991536 +32000 ekin = 6.66584763664876 | erot = 4.10024297795102 | epot = -16.3945624842072 | etot = -5.62847186960746 +33000 ekin = 6.67923227191032 | erot = 4.09129207413366 | epot = -16.398996215263 | etot = -5.62847186921904 +34000 ekin = 6.69756137216835 | erot = 4.08414768607663 | epot = -16.4101809271347 | etot = -5.62847186888967 +35000 ekin = 6.72589628312086 | erot = 4.07950228497946 | epot = -16.4338704366878 | etot = -5.62847186858743 +36000 ekin = 6.76908557113719 | erot = 4.07778615492108 | epot = -16.4753435944362 | etot = -5.62847186837788 +37000 ekin = 6.83097506213408 | erot = 4.07899014040663 | epot = -16.5384370708783 | etot = -5.62847186833763 +38000 ekin = 6.91354703253176 | erot = 4.08242106390417 | epot = -16.6244399649597 | etot = -5.62847186852377 +39000 ekin = 7.01626065739838 | erot = 4.08652171942787 | epot = -16.7312542457772 | etot = -5.62847186895094 +40000 ekin = 7.13573792258334 | erot = 4.08884404540009 | epot = -16.8530538375759 | etot = -5.62847186959249 +41000 ekin = 7.26614194134518 | erot = 4.08627042537775 | epot = -16.9808842370344 | etot = -5.62847187031148 +42000 ekin = 7.40051154120591 | erot = 4.07546023443116 | epot = -17.1044436466278 | etot = -5.62847187099075 +43000 ekin = 7.53157437143692 | erot = 4.05344655359659 | epot = -17.2134927965851 | etot = -5.62847187155156 +44000 ekin = 7.65268317567645 | erot = 4.01819177227258 | epot = -17.2993468198235 | etot = -5.62847187187444 +45000 ekin = 7.75845343306887 | erot = 3.96898510895803 | epot = -17.3559104142067 | etot = -5.62847187217978 +46000 ekin = 7.84504377034638 | erot = 3.90454903064828 | epot = -17.3780646733318 | etot = -5.62847187233719 +47000 ekin = 7.91002390820626 | erot = 3.82478596555232 | epot = -17.3632817459108 | etot = -5.62847187215224 +48000 ekin = 7.95195705456501 | erot = 3.73154439390041 | epot = -17.311973320413 | etot = -5.62847187194754 +49000 ekin = 7.97001825706861 | erot = 3.6275200729508 | epot = -17.2260102016186 | etot = -5.62847187159922 +50000 ekin = 7.96375756700422 | erot = 3.51726958365139 | epot = -17.1094990215453 | etot = -5.62847187088966 +51000 ekin = 7.93280761300431 | erot = 3.40827188497864 | epot = -16.9695513688031 | etot = -5.62847187082019 +52000 ekin = 7.87656811744183 | erot = 3.30207418532557 | epot = -16.8071141735587 | etot = -5.62847187079128 +53000 ekin = 7.79531012541898 | erot = 3.19839984815428 | epot = -16.6221818441147 | etot = -5.62847187054148 +54000 ekin = 7.68952609570325 | erot = 3.09980185481829 | epot = -16.4177998208246 | etot = -5.62847187030301 +55000 ekin = 7.55966222141086 | erot = 3.00897426989539 | epot = -16.1971083614499 | etot = -5.62847187014369 +56000 ekin = 7.4059412450799 | erot = 2.92802865182258 | epot = -15.9624417669772 | etot = -5.62847187007475 +57000 ekin = 7.2281659814198 | erot = 2.85836584281787 | epot = -15.7150036943479 | etot = -5.62847187011025 +58000 ekin = 7.02573051397596 | erot = 2.80066522322027 | epot = -15.4548676074194 | etot = -5.62847187022315 +59000 ekin = 6.80455077165109 | erot = 2.75651944712021 | epot = -15.1895420860965 | etot = -5.62847186732517 +60000 ekin = 6.57760251691503 | erot = 2.72731501678723 | epot = -14.9333893991692 | etot = -5.62847186546695 +61000 ekin = 5.99884053189999 | erot = 2.65010269791689 | epot = -14.2774150331152 | etot = -5.6284718032983 +62000 ekin = 5.82217958652223 | erot = 2.65058478195176 | epot = -14.1012361774608 | etot = -5.6284718089868 +63000 ekin = 6.00993174210236 | erot = 2.71143483466413 | epot = -14.3498384845185 | etot = -5.62847190775202 +64000 ekin = 5.85096985050355 | erot = 2.7117391762473 | epot = -14.1911809366076 | etot = -5.62847190985675 +65000 ekin = 5.67959801442723 | erot = 2.70731630130169 | epot = -14.0153862253964 | etot = -5.62847190966753 +66000 ekin = 5.49812382731694 | erot = 2.69646895132519 | epot = -13.8230646880633 | etot = -5.62847190942114 +67000 ekin = 5.31011188753136 | erot = 2.67901331172419 | epot = -13.6175971082585 | etot = -5.62847190900291 +68000 ekin = 5.11964229582578 | erot = 2.65622197273437 | epot = -13.4043361770529 | etot = -5.62847190849276 +69000 ekin = 4.93067975207842 | erot = 2.63014135225731 | epot = -13.1892930124932 | etot = -5.62847190815746 +70000 ekin = 4.74697386617474 | erot = 2.60347312706344 | epot = -12.9789189008753 | etot = -5.62847190763708 +71000 ekin = 4.57222133259557 | erot = 2.57971589798969 | epot = -12.7804091377446 | etot = -5.62847190715932 +72000 ekin = 4.40959648507772 | erot = 2.56228295922529 | epot = -12.6003513510618 | etot = -5.62847190675876 +73000 ekin = 4.26170009573894 | erot = 2.55406076080147 | epot = -12.4442327629951 | etot = -5.62847190645466 +74000 ekin = 4.13052949790808 | erot = 2.557131558412 | epot = -12.3161329625868 | etot = -5.62847190626671 +75000 ekin = 4.01588192828862 | erot = 2.56608801434098 | epot = -12.2104419139899 | etot = -5.62847197136028 +76000 ekin = 3.95904625854757 | erot = 2.44184942386042 | epot = -12.0293675901712 | etot = -5.62847190776322 +77000 ekin = 4.02755960266353 | erot = 2.46007159499071 | epot = -12.116103109804 | etot = -5.62847191214981 +78000 ekin = 3.98785439943804 | erot = 2.49596945534623 | epot = -12.1122957670967 | etot = -5.62847191231245 +79000 ekin = 3.96575767721416 | erot = 2.54200842335471 | epot = -12.1362380131156 | etot = -5.62847191254671 +80000 ekin = 3.95961954869541 | erot = 2.59604589435614 | epot = -12.1841373558851 | etot = -5.62847191283359 +81000 ekin = 3.96734100032327 | erot = 2.6557706223237 | epot = -12.2515835357819 | etot = -5.62847191313495 +82000 ekin = 3.98651997822105 | erot = 2.71892569307102 | epot = -12.3339175847232 | etot = -5.62847191343116 +83000 ekin = 4.01459300302725 | erot = 2.78352190390217 | epot = -12.4265868206362 | etot = -5.62847191370674 +84000 ekin = 4.04956210608531 | erot = 2.84796629664438 | epot = -12.5260003165346 | etot = -5.62847191380496 +85000 ekin = 4.09049341026844 | erot = 2.91104365381121 | epot = -12.6300089781182 | etot = -5.62847191403855 +86000 ekin = 4.13484812560025 | erot = 2.9720116541911 | epot = -12.7353316940206 | etot = -5.62847191422921 +87000 ekin = 4.18003829184629 | erot = 3.03078479878308 | epot = -12.8392950049956 | etot = -5.62847191436619 +88000 ekin = 4.22360704724714 | erot = 3.08796574000345 | epot = -12.9400447017004 | etot = -5.62847191444985 +89000 ekin = 4.26326024607304 | erot = 3.14481288279509 | epot = -13.0365450433362 | etot = -5.62847191446803 +90000 ekin = 4.29588111790597 | erot = 3.20341713777037 | epot = -13.1277701703303 | etot = -5.62847191465392 +91000 ekin = 4.31697784577794 | erot = 3.26736040230181 | epot = -13.212810162646 | etot = -5.62847191456621 +92000 ekin = 4.32507837347559 | erot = 3.33931601944585 | epot = -13.2928663075904 | etot = -5.62847191466898 +93000 ekin = 4.31872212432177 | erot = 3.42036541916803 | epot = -13.3675594581782 | etot = -5.62847191468837 +94000 ekin = 4.29660005793274 | erot = 3.5120569475443 | epot = -13.4371289201543 | etot = -5.62847191467728 +95000 ekin = 4.25789021838825 | erot = 3.6160647566687 | epot = -13.5024268896673 | etot = -5.62847191461038 +96000 ekin = 4.20253661926483 | erot = 3.73412422729693 | epot = -13.5651327610316 | etot = -5.62847191446987 +97000 ekin = 4.13146529060001 | erot = 3.8680303743933 | epot = -13.6279675793422 | etot = -5.6284719143489 +98000 ekin = 4.04669071975339 | erot = 4.01885670334765 | epot = -13.6940193371957 | etot = -5.62847191409463 +99000 ekin = 3.95128630061884 | erot = 4.187728400135 | epot = -13.767486614563 | etot = -5.62847191380918 +100000 ekin = 3.84921784883049 | erot = 4.37558821791318 | epot = -13.8532779802878 | etot = -5.62847191354417 +101000 ekin = 3.74501223923277 | erot = 4.58258429231828 | epot = -13.956068444915 | etot = -5.62847191336391 +102000 ekin = 3.64330024870546 | erot = 4.80764134110159 | epot = -14.0794135031378 | etot = -5.62847191333073 +103000 ekin = 3.54831662006249 | erot = 5.04811575607592 | epot = -14.2249042896179 | etot = -5.62847191347951 +104000 ekin = 3.46349772064904 | erot = 5.29960820358542 | epot = -14.3915778382041 | etot = -5.62847191396964 +105000 ekin = 3.39136254536235 | erot = 5.55507704360083 | epot = -14.5749115034255 | etot = -5.62847191446236 +106000 ekin = 3.33356403744374 | erot = 5.8071875932503 | epot = -14.7692235454844 | etot = -5.62847191479038 +107000 ekin = 3.29209861353668 | erot = 6.0490668738685 | epot = -14.9696374027459 | etot = -5.6284719153407 +108000 ekin = 3.26748487341083 | erot = 6.27418243659812 | epot = -15.1701392258635 | etot = -5.62847191585455 +109000 ekin = 3.25930506886586 | erot = 6.4758541724443 | epot = -15.3636311580698 | etot = -5.62847191675962 +110000 ekin = 3.2656827282909 | erot = 6.64602097208043 | epot = -15.5401756176992 | etot = -5.62847191732783 +111000 ekin = 3.2852005917262 | erot = 6.77857539600456 | epot = -15.6922479055275 | etot = -5.62847191779676 +112000 ekin = 3.31659315707444 | erot = 6.86862760564094 | epot = -15.8136926809258 | etot = -5.62847191821046 +113000 ekin = 3.35860144230948 | erot = 6.91335224014968 | epot = -15.9004256006584 | etot = -5.6284719181992 +114000 ekin = 3.41073468124698 | erot = 6.91406610981346 | epot = -15.9532727088349 | etot = -5.62847191777451 +115000 ekin = 3.47381531534301 | erot = 6.87643065686537 | epot = -15.9787178894085 | etot = -5.62847191720015 +116000 ekin = 3.54886437558797 | erot = 6.80711139529244 | epot = -15.984447687959 | etot = -5.62847191707857 +117000 ekin = 3.63467409204973 | erot = 6.71320827683705 | epot = -15.9763542854639 | etot = -5.62847191657716 +118000 ekin = 3.72815555523582 | erot = 6.60276001485677 | epot = -15.9593874864274 | etot = -5.62847191633482 +119000 ekin = 3.82420980363939 | erot = 6.48288858478363 | epot = -15.93557030497 | etot = -5.62847191654703 +120000 ekin = 3.91797748357234 | erot = 6.35662792089918 | epot = -15.9030773212286 | etot = -5.62847191675707 +121000 ekin = 4.00591742044046 | erot = 6.22468993027114 | epot = -15.8590792676436 | etot = -5.62847191693197 +122000 ekin = 4.08550270322376 | erot = 6.08676575288909 | epot = -15.8007403736375 | etot = -5.62847191752465 +123000 ekin = 4.15433540908381 | erot = 5.94071572290349 | epot = -15.7235230494649 | etot = -5.62847191747758 +124000 ekin = 4.21272085203604 | erot = 5.7859073386943 | epot = -15.6271001078555 | etot = -5.62847191712512 +125000 ekin = 4.26325970413184 | erot = 5.62467373686559 | epot = -15.5164053575236 | etot = -5.62847191652619 +126000 ekin = 4.30880597980507 | erot = 5.46113290467094 | epot = -15.3984108007453 | etot = -5.62847191626933 +127000 ekin = 4.35136313111025 | erot = 5.29960307371332 | epot = -15.2794381205815 | etot = -5.62847191575791 +128000 ekin = 4.39391383900502 | erot = 5.14386269106641 | epot = -15.1662484454475 | etot = -5.62847191537605 +129000 ekin = 4.43858036063656 | erot = 4.99693296064706 | epot = -15.0639852363967 | etot = -5.6284719151131 +130000 ekin = 4.48619887382537 | erot = 4.86092637377905 | epot = -14.9755971627249 | etot = -5.62847191512053 +131000 ekin = 4.53629967746117 | erot = 4.7355227995548 | epot = -14.9002943921708 | etot = -5.62847191515479 +132000 ekin = 4.58794392436765 | erot = 4.62012473201898 | epot = -14.8365405715617 | etot = -5.62847191517503 +133000 ekin = 4.63977927970876 | erot = 4.51475331813975 | epot = -14.7830045130172 | etot = -5.62847191516872 +134000 ekin = 4.69096227444651 | erot = 4.41936571520131 | epot = -14.738799904783 | etot = -5.62847191513517 +135000 ekin = 4.74083332632072 | erot = 4.33399770983653 | epot = -14.7033029512384 | etot = -5.6284719150812 +136000 ekin = 4.78901374177403 | erot = 4.25873574864823 | epot = -14.6762214054338 | etot = -5.62847191501159 +137000 ekin = 4.8351903396627 | erot = 4.19345584709314 | epot = -14.6571181018645 | etot = -5.62847191510868 +138000 ekin = 4.87857190019245 | erot = 4.13759960010499 | epot = -14.6446434153654 | etot = -5.628471915068 +139000 ekin = 4.9193390426862 | erot = 4.09041841408156 | epot = -14.6382293717812 | etot = -5.62847191501339 +140000 ekin = 4.9580213261069 | erot = 4.05108530565772 | epot = -14.6375785467333 | etot = -5.62847191496867 +141000 ekin = 4.99519923255321 | erot = 4.01864210163627 | epot = -14.6423132491267 | etot = -5.62847191493722 +142000 ekin = 5.03134031865355 | erot = 3.99210960072451 | epot = -14.6519218343064 | etot = -5.62847191492836 +143000 ekin = 5.06663282814573 | erot = 3.97056100872237 | epot = -14.6656657518146 | etot = -5.62847191494651 +144000 ekin = 5.10088003253933 | erot = 3.9531838593664 | epot = -14.6825358068963 | etot = -5.6284719149906 +145000 ekin = 5.13347728619374 | erot = 3.93933318432643 | epot = -14.7012823855751 | etot = -5.62847191505492 +146000 ekin = 5.16346418936991 | erot = 3.92856945833561 | epot = -14.7205055628364 | etot = -5.62847191513091 +147000 ekin = 5.18962884502066 | erot = 3.92067778970094 | epot = -14.7387785499312 | etot = -5.62847191520956 +148000 ekin = 5.21063630104988 | erot = 3.91566839447772 | epot = -14.7547766108102 | etot = -5.62847191528256 +149000 ekin = 5.22515818277256 | erot = 3.91376203384928 | epot = -14.7673921319648 | etot = -5.628471915343 +150000 ekin = 5.23199081771384 | erot = 3.91536756918841 | epot = -14.7758303022869 | etot = -5.62847191538467 +151000 ekin = 5.23025857434836 | erot = 3.92102977399535 | epot = -14.7797602637291 | etot = -5.62847191538541 +152000 ekin = 5.21970456277572 | erot = 3.93136599417286 | epot = -14.7795424723185 | etot = -5.62847191536996 +153000 ekin = 5.20020715643885 | erot = 3.94729684642981 | epot = -14.775975918157 | etot = -5.62847191528831 +154000 ekin = 5.17219962280842 | erot = 3.96989664945391 | epot = -14.7705681875095 | etot = -5.6284719152472 +155000 ekin = 5.13597939415144 | erot = 4.00025654377857 | epot = -14.7647078530824 | etot = -5.62847191515234 +156000 ekin = 5.09227456538744 | erot = 4.03969792967839 | epot = -14.7604444100923 | etot = -5.62847191502649 +157000 ekin = 5.04214374655757 | erot = 4.08965648366349 | epot = -14.7602721451213 | etot = -5.62847191490026 +158000 ekin = 4.98664076893659 | erot = 4.15175637520604 | epot = -14.7668690589132 | etot = -5.62847191477057 +159000 ekin = 4.92656708226313 | erot = 4.22693785976679 | epot = -14.7819768568009 | etot = -5.62847191477094 +160000 ekin = 4.86235166664928 | erot = 4.31524574981736 | epot = -14.8060693313523 | etot = -5.62847191488569 +161000 ekin = 4.79340744408358 | erot = 4.41634192155675 | epot = -14.8382212806371 | etot = -5.62847191499678 +162000 ekin = 4.71931679137137 | erot = 4.52911647420282 | epot = -14.8769051807422 | etot = -5.62847191516803 +163000 ekin = 4.6396517883786 | erot = 4.65170333188703 | epot = -14.919827035611 | etot = -5.62847191534539 +164000 ekin = 4.55406399624263 | erot = 4.7816630174031 | epot = -14.964198929296 | etot = -5.62847191565023 +165000 ekin = 4.46213996067388 | erot = 4.91530272158869 | epot = -15.0059145982043 | etot = -5.62847191594171 +166000 ekin = 4.36388109534803 | erot = 5.04805357548557 | epot = -15.0404065870402 | etot = -5.62847191620659 +167000 ekin = 4.25995046842371 | erot = 5.1751106852223 | epot = -15.0635330700689 | etot = -5.62847191642292 +168000 ekin = 4.15154354282065 | erot = 5.29182746831876 | epot = -15.0718429277117 | etot = -5.62847191657225 +169000 ekin = 4.04026084727433 | erot = 5.39411747728063 | epot = -15.0628502412096 | etot = -5.62847191665469 +170000 ekin = 3.9279772383829 | erot = 5.47890367159884 | epot = -15.0353528265938 | etot = -5.62847191661206 +171000 ekin = 3.81680551395789 | erot = 5.5446021996112 | epot = -14.989879630019 | etot = -5.62847191644987 +172000 ekin = 3.70912194360857 | erot = 5.59119877272674 | epot = -14.928792632495 | etot = -5.62847191615971 +173000 ekin = 3.60767008609973 | erot = 5.62020496676 | epot = -14.8563469686163 | etot = -5.62847191575655 +174000 ekin = 3.51593123142691 | erot = 5.63484613588081 | epot = -14.7792492818561 | etot = -5.62847191454834 +175000 ekin = 3.43946966413885 | erot = 5.64148825119104 | epot = -14.7094298295818 | etot = -5.62847191425188 +176000 ekin = 3.38149964340037 | erot = 5.64304584979616 | epot = -14.6530174072225 | etot = -5.62847191402599 +177000 ekin = 3.34426304280352 | erot = 5.64075589500562 | epot = -14.6134908517397 | etot = -5.62847191393054 +178000 ekin = 3.32907821318153 | erot = 5.6342917192535 | epot = -14.5918418466211 | etot = -5.62847191418611 +179000 ekin = 3.33553286829373 | erot = 5.62088708741521 | epot = -14.5848918700478 | etot = -5.62847191433888 +180000 ekin = 3.36333384277269 | erot = 5.59827011329204 | epot = -14.5900758706831 | etot = -5.62847191461841 +181000 ekin = 3.4111832274471 | erot = 5.5636994923285 | epot = -14.6033546347483 | etot = -5.62847191497266 +182000 ekin = 3.47666657813938 | erot = 5.51442909119382 | epot = -14.6195675846752 | etot = -5.62847191534198 +183000 ekin = 3.5564662729713 | erot = 5.44847615754742 | epot = -14.6334143461254 | etot = -5.62847191560665 +184000 ekin = 3.64671110623906 | erot = 5.36528131962488 | epot = -14.6404643416901 | etot = -5.62847191582612 +185000 ekin = 3.7429424385425 | erot = 5.26596644090105 | epot = -14.6373807953573 | etot = -5.62847191591374 +186000 ekin = 3.84064021177422 | erot = 5.15359326678908 | epot = -14.6227053944198 | etot = -5.62847191585649 +187000 ekin = 3.93563840595015 | erot = 5.03296537332406 | epot = -14.5970756949479 | etot = -5.6284719156737 +188000 ekin = 4.024443084093 | erot = 4.91004205202575 | epot = -14.56295705154 | etot = -5.62847191542127 +189000 ekin = 4.1043748157031 | erot = 4.7910115792593 | epot = -14.5238583101449 | etot = -5.62847191518247 +190000 ekin = 4.1734883261999 | erot = 4.68117061833012 | epot = -14.4831308595833 | etot = -5.62847191505332 +191000 ekin = 4.23028845394438 | erot = 4.58386192798764 | epot = -14.4426222970223 | etot = -5.62847191509028 +192000 ekin = 4.27358054060648 | erot = 4.49984530057482 | epot = -14.401897756479 | etot = -5.62847191529769 +193000 ekin = 4.24592911993921 | erot = 4.46741799187519 | epot = -14.3418190226908 | etot = -5.62847191087637 +194000 ekin = 4.19994174150923 | erot = 4.47173701960612 | epot = -14.3001506793666 | etot = -5.62847191825126 +195000 ekin = 4.19981139522172 | erot = 4.4036551359031 | epot = -14.2319384423484 | etot = -5.62847191122363 +196000 ekin = 4.18831859749936 | erot = 4.32821378408509 | epot = -14.1450042928944 | etot = -5.62847191130993 +197000 ekin = 4.16445522600476 | erot = 4.24686919663338 | epot = -14.0397963337818 | etot = -5.62847191114364 +198000 ekin = 4.13074920372937 | erot = 4.15919636754533 | epot = -13.9184174820229 | etot = -5.62847191074818 +199000 ekin = 4.09062074736166 | erot = 4.06700829109793 | epot = -13.7861009486901 | etot = -5.62847191023052 +200000 ekin = 4.04792338687192 | erot = 3.97356549445309 | epot = -13.649960790969 | etot = -5.628471909644 +201000 ekin = 4.0066824491976 | erot = 3.88277215508942 | epot = -13.5179265133893 | etot = -5.62847190910232 +202000 ekin = 3.97063392471701 | erot = 3.79828207702051 | epot = -13.3973879104091 | etot = -5.6284719086716 +203000 ekin = 3.94283665189344 | erot = 3.72290259923721 | epot = -13.2942111595165 | etot = -5.62847190838587 +204000 ekin = 3.92540743372103 | erot = 3.65835216262312 | epot = -13.2122315045943 | etot = -5.62847190825014 +205000 ekin = 3.91946432177235 | erot = 3.60562062220839 | epot = -13.1535568521694 | etot = -5.62847190818865 +206000 ekin = 3.92515912499344 | erot = 3.56510062726484 | epot = -13.1187316605127 | etot = -5.62847190825447 +207000 ekin = 3.94166066189477 | erot = 3.53643554884964 | epot = -13.1065681191255 | etot = -5.62847190838107 +208000 ekin = 3.96741904659518 | erot = 3.5190928531884 | epot = -13.114983808319 | etot = -5.62847190853542 +209000 ekin = 3.99456273872549 | erot = 3.50083315850336 | epot = -13.1238678065883 | etot = -5.6284719093595 +210000 ekin = 4.04796401860086 | erot = 3.49168954890742 | epot = -13.168125481534 | etot = -5.62847191402569 +211000 ekin = 4.09773342715845 | erot = 3.4930481201277 | epot = -13.2192534546312 | etot = -5.6284719073451 +212000 ekin = 4.14205596974194 | erot = 3.50221111647712 | epot = -13.272738993685 | etot = -5.62847190746594 +213000 ekin = 4.18461227969058 | erot = 3.51992604962276 | epot = -13.3330102373193 | etot = -5.62847190800596 +214000 ekin = 4.22291801220809 | erot = 3.54318058637816 | epot = -13.3945705067352 | etot = -5.62847190814894 +215000 ekin = 4.2563906994383 | erot = 3.570186348328 | epot = -13.4550489560022 | etot = -5.62847190823593 +216000 ekin = 4.2851705613054 | erot = 3.59920416165248 | epot = -13.5128466312758 | etot = -5.62847190831795 +217000 ekin = 4.30951457891106 | erot = 3.62862634730446 | epot = -13.5666128346039 | etot = -5.6284719083884 +218000 ekin = 4.33022749097326 | erot = 3.6563911824752 | epot = -13.6150905819273 | etot = -5.62847190847882 +219000 ekin = 4.34822739188537 | erot = 3.68015661121711 | epot = -13.6568559116855 | etot = -5.62847190858298 +220000 ekin = 4.36437280258125 | erot = 3.69755509928731 | epot = -13.6903998105138 | etot = -5.62847190864523 +221000 ekin = 4.37954317243207 | erot = 3.70660976824576 | epot = -13.7146248493696 | etot = -5.62847190869182 +222000 ekin = 4.39451292716876 | erot = 3.70596363375701 | epot = -13.7289484695945 | etot = -5.62847190866875 +223000 ekin = 4.41008213188782 | erot = 3.69513355487823 | epot = -13.7336875953401 | etot = -5.62847190857404 +224000 ekin = 4.42678943726031 | erot = 3.67466536393953 | epot = -13.7299267097399 | etot = -5.62847190854008 +225000 ekin = 4.44460701700765 | erot = 3.64600909388441 | epot = -13.7190880192614 | etot = -5.6284719083693 +226000 ekin = 4.47380092381616 | erot = 3.58830814099361 | epot = -13.69058097804 | etot = -5.62847191323027 +227000 ekin = 4.56056009802499 | erot = 3.47269306832995 | epot = -13.6617250773531 | etot = -5.62847191099815 +228000 ekin = 4.61083327531008 | erot = 3.40803816011441 | epot = -13.6473433475484 | etot = -5.62847191212392 +229000 ekin = 4.63150013167911 | erot = 3.35898149000892 | epot = -13.6189535337052 | etot = -5.62847191201718 +230000 ekin = 4.65431068143946 | erot = 3.31343017818568 | epot = -13.5962127716265 | etot = -5.62847191200139 +231000 ekin = 4.67934821404752 | erot = 3.27332737527216 | epot = -13.5811475014857 | etot = -5.62847191216602 +232000 ekin = 4.70592354946218 | erot = 3.23944506667555 | epot = -13.5738405284598 | etot = -5.62847191232205 +233000 ekin = 4.73271416122442 | erot = 3.21144788525773 | epot = -13.5726339590415 | etot = -5.62847191255935 +234000 ekin = 4.75943444984945 | erot = 3.19078729233504 | epot = -13.5786936545765 | etot = -5.62847191239206 +235000 ekin = 4.78642241817988 | erot = 3.18021193976644 | epot = -13.5951062703926 | etot = -5.62847191244628 +236000 ekin = 4.81315037988122 | erot = 3.1801732533471 | epot = -13.6217955456949 | etot = -5.62847191246663 +237000 ekin = 4.83923297185456 | erot = 3.19145400453184 | epot = -13.6591588888775 | etot = -5.62847191249107 +238000 ekin = 4.86487585931703 | erot = 3.21481908800045 | epot = -13.7081668597312 | etot = -5.6284719124137 +239000 ekin = 4.8906393171484 | erot = 3.25114955281718 | epot = -13.7702607826794 | etot = -5.6284719127138 +240000 ekin = 4.91656145052454 | erot = 3.29901781218542 | epot = -13.8440511754868 | etot = -5.62847191277685 +241000 ekin = 4.94245255089272 | erot = 3.35699698381213 | epot = -13.9279214477077 | etot = -5.62847191300285 +242000 ekin = 4.9676738034608 | erot = 3.42365009425621 | epot = -14.0197958109172 | etot = -5.62847191320015 +243000 ekin = 5.00573446223301 | erot = 3.47030260471464 | epot = -14.1045089792072 | etot = -5.6284719122595 +244000 ekin = 5.06987350319691 | erot = 3.50985787352737 | epot = -14.2082032932914 | etot = -5.62847191656711 +245000 ekin = 5.0840511595776 | erot = 3.57323736718629 | epot = -14.2857604930724 | etot = -5.62847196630849 +246000 ekin = 5.1386728156871 | erot = 3.53022410786619 | epot = -14.2973688418925 | etot = -5.62847191833917 +247000 ekin = 5.24446071734938 | erot = 3.63707192639368 | epot = -14.5100045566448 | etot = -5.62847191290176 +248000 ekin = 5.23528120841874 | erot = 3.74023330973652 | epot = -14.6039864311631 | etot = -5.62847191300786 +249000 ekin = 5.2126007843532 | erot = 3.83729795659792 | epot = -14.6783706538224 | etot = -5.62847191287131 +250000 ekin = 5.1783908125047 | erot = 3.92749000333375 | epot = -14.7343527284444 | etot = -5.62847191260599 +251000 ekin = 5.13586036334126 | erot = 4.01108345357157 | epot = -14.7754157290627 | etot = -5.62847191214983 +252000 ekin = 5.08918292106614 | erot = 4.09018694183985 | epot = -14.8078417745552 | etot = -5.62847191164922 +253000 ekin = 5.04264218495584 | erot = 4.16759058211337 | epot = -14.8387046782764 | etot = -5.62847191120718 +254000 ekin = 4.99116344079271 | erot = 4.24248912287346 | epot = -14.8621245493485 | etot = -5.62847198568235 +255000 ekin = 4.72637462800591 | erot = 4.24407837663544 | epot = -14.5989249326067 | etot = -5.62847192796535 +256000 ekin = 4.59834109997945 | erot = 4.36369782208908 | epot = -14.5905108364758 | etot = -5.62847191440726 +257000 ekin = 4.77089539877071 | erot = 4.60066315313584 | epot = -15.0000305289667 | etot = -5.62847197706018 +258000 ekin = 4.85704242990276 | erot = 4.66807324375475 | epot = -15.15358758141 | etot = -5.62847190775251 +259000 ekin = 4.89901811472448 | erot = 4.72718635920299 | epot = -15.2546763808506 | etot = -5.62847190692317 +260000 ekin = 4.94107094739493 | erot = 4.79406863685127 | epot = -15.3636114914047 | etot = -5.62847190715847 +261000 ekin = 4.98242309075064 | erot = 4.86508628580449 | epot = -15.4759812846147 | etot = -5.62847190805952 +262000 ekin = 5.01659840998678 | erot = 4.93871137847133 | epot = -15.5837816973583 | etot = -5.62847190890018 +263000 ekin = 5.0398266119465 | erot = 5.00983839411183 | epot = -15.6781369155651 | etot = -5.62847190950679 +264000 ekin = 5.04732696350029 | erot = 5.07389667598189 | epot = -15.7496955495877 | etot = -5.62847191010551 +265000 ekin = 5.03448807085276 | erot = 5.12688367712678 | epot = -15.7898436586171 | etot = -5.62847191063758 +266000 ekin = 4.99773438959841 | erot = 5.16480683531284 | epot = -15.7910131359598 | etot = -5.62847191104857 +267000 ekin = 4.93508497406515 | erot = 5.18388050749872 | epot = -15.7474373928659 | etot = -5.62847191130205 +268000 ekin = 4.84654531471177 | erot = 5.18063468558716 | epot = -15.655651911682 | etot = -5.62847191138309 +269000 ekin = 4.73423214274983 | erot = 5.15198859731787 | epot = -15.5146926513571 | etot = -5.62847191128937 +270000 ekin = 4.60224202248884 | erot = 5.0954068881696 | epot = -15.3261208188956 | etot = -5.62847190823717 +271000 ekin = 4.45636876655286 | erot = 5.00923317388324 | epot = -15.094073848202 | etot = -5.62847190776593 +272000 ekin = 4.30375505735806 | erot = 4.89315778304422 | epot = -14.8253847474981 | etot = -5.62847190709586 +273000 ekin = 4.15244061480226 | erot = 4.74862648123577 | epot = -14.5295390022984 | etot = -5.62847190626042 +274000 ekin = 4.01137482334719 | erot = 4.57896672456709 | epot = -14.2188134532273 | etot = -5.62847190531298 +275000 ekin = 3.87388872892913 | erot = 4.3895080579543 | epot = -13.8918687169958 | etot = -5.6284719301124 +276000 ekin = 3.70828148350437 | erot = 4.18975567950365 | epot = -13.5265090654718 | etot = -5.62847190246383 +277000 ekin = 3.74025187940247 | erot = 3.9889440521083 | epot = -13.3576678645683 | etot = -5.6284719330575 +278000 ekin = 3.74221760775476 | erot = 3.77038543692233 | epot = -13.141074947917 | etot = -5.62847190323991 +279000 ekin = 3.75220115766733 | erot = 3.55790331815025 | epot = -12.9385763794584 | etot = -5.62847190364078 +280000 ekin = 3.77561814014455 | erot = 3.35781654492889 | epot = -12.761906588381 | etot = -5.62847190330753 +281000 ekin = 3.81272927484615 | erot = 3.17409695196621 | epot = -12.615298129818 | etot = -5.62847190300567 +282000 ekin = 3.8650198803656 | erot = 3.00952640155287 | epot = -12.5030181842053 | etot = -5.62847190228687 +283000 ekin = 3.93628900406623 | erot = 2.86613168182149 | epot = -12.4308925881233 | etot = -5.62847190223561 +284000 ekin = 4.02702703049906 | erot = 2.74480306500276 | epot = -12.4003019978982 | etot = -5.62847190239635 +285000 ekin = 4.14139706639541 | erot = 2.64599110157975 | epot = -12.4158600691614 | etot = -5.62847190118625 +286000 ekin = 4.28525774917777 | erot = 2.5695076248925 | epot = -12.4832372763168 | etot = -5.62847190224656 +287000 ekin = 4.44987555795207 | erot = 2.51493810068279 | epot = -12.593285560952 | etot = -5.62847190231719 +288000 ekin = 4.63520922264523 | erot = 2.48100112555547 | epot = -12.7446822515429 | etot = -5.62847190334219 +289000 ekin = 4.83125797005403 | erot = 2.46527241539456 | epot = -12.9250022896833 | etot = -5.6284719042347 +290000 ekin = 5.02763799219358 | erot = 2.46542435681751 | epot = -13.1215342540964 | etot = -5.62847190508529 +291000 ekin = 5.21465468575785 | erot = 2.47913524144451 | epot = -13.3222618329661 | etot = -5.62847190576375 +292000 ekin = 5.38472348790201 | erot = 2.50416430328942 | epot = -13.5173596974294 | etot = -5.62847190623798 +293000 ekin = 5.53302487062945 | erot = 2.53823701976243 | epot = -13.6997337969532 | etot = -5.62847190656128 +294000 ekin = 5.65718701899543 | erot = 2.57877496352923 | epot = -13.8644338893352 | etot = -5.62847190681054 +295000 ekin = 5.75652780496729 | erot = 2.62269919784018 | epot = -14.0076989098362 | etot = -5.62847190702875 +296000 ekin = 5.83139499491568 | erot = 2.66652171228923 | epot = -14.1263886144125 | etot = -5.62847190720756 +297000 ekin = 5.882823563323 | erot = 2.70675614330057 | epot = -14.2180516139338 | etot = -5.62847190731017 +298000 ekin = 5.91239748765333 | erot = 2.74048494300737 | epot = -14.2813543379694 | etot = -5.62847190730872 +299000 ekin = 5.92208198046601 | erot = 2.76585299302064 | epot = -14.3164068806918 | etot = -5.62847190720516 +300000 ekin = 5.9139094201893 | erot = 2.78233336188598 | epot = -14.3247146891002 | etot = -5.62847190702494 +301000 ekin = 5.8896213351144 | erot = 2.79074353675919 | epot = -14.3088367786675 | etot = -5.62847190679387 +302000 ekin = 5.85048781421133 | erot = 2.79307875791735 | epot = -14.2720384786508 | etot = -5.62847190652211 +303000 ekin = 5.79743517877185 | erot = 2.79223225552608 | epot = -14.2181393405071 | etot = -5.62847190620919 +304000 ekin = 5.73124340760708 | erot = 2.79262915089302 | epot = -14.152344464163 | etot = -5.62847190566291 +305000 ekin = 5.65258268469947 | erot = 2.79940899091141 | epot = -14.0804635809917 | etot = -5.62847190538081 +306000 ekin = 5.56254653523144 | erot = 2.81503734235102 | epot = -14.0060557827401 | etot = -5.62847190515761 +307000 ekin = 5.46251129680771 | erot = 2.8407589238596 | epot = -13.9317421257007 | etot = -5.62847190503336 +308000 ekin = 5.35391293499841 | erot = 2.87633235163905 | epot = -13.8587171916691 | etot = -5.6284719050316 +309000 ekin = 5.23805007411562 | erot = 2.91996940722861 | epot = -13.7864913863792 | etot = -5.62847190503493 +310000 ekin = 5.1161387582238 | erot = 2.96880482959449 | epot = -13.7134154931036 | etot = -5.62847190528531 +311000 ekin = 4.98925852659244 | erot = 3.01839769775032 | epot = -13.6361281298098 | etot = -5.62847190546702 +312000 ekin = 4.85867326622229 | erot = 3.06421411592692 | epot = -13.5513592877705 | etot = -5.62847190562128 +313000 ekin = 4.72585112667392 | erot = 3.10236590329129 | epot = -13.4566889356282 | etot = -5.62847190566301 +314000 ekin = 4.5929342104636 | erot = 3.13002199528236 | epot = -13.3514281113021 | etot = -5.62847190555609 +315000 ekin = 4.46270669971744 | erot = 3.14588950386823 | epot = -13.2370681089026 | etot = -5.62847190531692 +316000 ekin = 4.33845457034406 | erot = 3.15016989317518 | epot = -13.1170963685036 | etot = -5.62847190498433 +317000 ekin = 4.22370149067494 | erot = 3.14429402986633 | epot = -12.9964674251473 | etot = -5.62847190460606 +318000 ekin = 4.12188681800985 | erot = 3.13056754977697 | epot = -12.8809262720118 | etot = -5.62847190422498 +319000 ekin = 4.03607214172158 | erot = 3.11184182786797 | epot = -12.7763858734595 | etot = -5.62847190386996 +320000 ekin = 3.96873641009138 | erot = 3.09128048611575 | epot = -12.6884887997592 | etot = -5.62847190355207 +321000 ekin = 3.92167797369667 | erot = 3.07226107993859 | epot = -12.6224109569052 | etot = -5.62847190326996 +322000 ekin = 3.89600971422886 | erot = 3.05833648374322 | epot = -12.5828181009992 | etot = -5.62847190302713 +323000 ekin = 3.89216326552237 | erot = 3.05323078720034 | epot = -12.5738659555586 | etot = -5.62847190283586 +324000 ekin = 3.90971752721021 | erot = 3.06065920137141 | epot = -12.5988486315804 | etot = -5.62847190299879 +325000 ekin = 3.94474197767314 | erot = 3.08325557842132 | epot = -12.6564694593425 | etot = -5.62847190324804 +326000 ekin = 3.99225791211577 | erot = 3.12131666195312 | epot = -12.74204647784 | etot = -5.62847190377106 +327000 ekin = 4.04715751818396 | erot = 3.1727757387251 | epot = -12.8484051614822 | etot = -5.6284719045731 +328000 ekin = 4.10306827948901 | erot = 3.23289809100399 | epot = -12.9644382760934 | etot = -5.62847190560038 +329000 ekin = 4.15294077796041 | erot = 3.29460254685698 | epot = -13.0760152314909 | etot = -5.62847190667349 +330000 ekin = 4.1904608637735 | erot = 3.34957314358157 | epot = -13.1685059148568 | etot = -5.62847190750169 +331000 ekin = 4.21187936703383 | erot = 3.38989153265768 | epot = -13.2302428076589 | etot = -5.62847190796742 +332000 ekin = 4.21589857652203 | erot = 3.41075094374301 | epot = -13.2551214281195 | etot = -5.62847190785443 +333000 ekin = 4.20485265998752 | erot = 3.41174399824678 | epot = -13.2450685654283 | etot = -5.628471907194 +334000 ekin = 4.18435368274816 | erot = 3.39692225044427 | epot = -13.2097478393505 | etot = -5.62847190615809 +335000 ekin = 4.16205455860123 | erot = 3.37367623594531 | epot = -13.1642026995331 | etot = -5.62847190498657 +336000 ekin = 4.14609491419202 | erot = 3.35093309666816 | epot = -13.1254999147641 | etot = -5.62847190390388 +337000 ekin = 4.14364358929798 | erot = 3.33736964606269 | epot = -13.1094851384318 | etot = -5.6284719030711 +338000 ekin = 4.15982493121391 | erot = 3.33968220643224 | epot = -13.1279790403763 | etot = -5.62847190273014 +339000 ekin = 4.19714166714036 | erot = 3.36120406394876 | epot = -13.1868176336954 | etot = -5.62847190260627 +340000 ekin = 4.25518474379064 | erot = 3.40394456534699 | epot = -13.2876012119366 | etot = -5.628471902799 +341000 ekin = 4.33079125357956 | erot = 3.46797257818277 | epot = -13.4272357350008 | etot = -5.62847190323849 +342000 ekin = 4.41854745256192 | erot = 3.55173943759763 | epot = -13.5987587940061 | etot = -5.62847190384659 +343000 ekin = 4.5115386483586 | erot = 3.65250494550388 | epot = -13.7925154984096 | etot = -5.6284719045471 +344000 ekin = 4.60219231315277 | erot = 3.76671918647586 | epot = -13.9973834048833 | etot = -5.62847190525472 +345000 ekin = 4.68312343517509 | erot = 3.89042211424083 | epot = -14.2020174553193 | etot = -5.6284719059034 +346000 ekin = 4.74786790537578 | erot = 4.01955036383248 | epot = -14.3958901756503 | etot = -5.628471906442 +347000 ekin = 4.79150376884344 | erot = 4.15019529883455 | epot = -14.570170974473 | etot = -5.62847190679502 +348000 ekin = 4.81117855584063 | erot = 4.27877359763513 | epot = -14.718424060525 | etot = -5.6284719070492 +349000 ekin = 4.80564918858235 | erot = 4.40205662691375 | epot = -14.8361777226639 | etot = -5.6284719071678 +350000 ekin = 4.77545945328399 | erot = 4.51714564004313 | epot = -14.9210770005203 | etot = -5.62847190719314 +351000 ekin = 4.72262273321761 | erot = 4.62116010887444 | epot = -14.9722547492962 | etot = -5.62847190720411 +352000 ekin = 4.65007958814115 | erot = 4.71078593019996 | epot = -14.989337425621 | etot = -5.62847190727985 +353000 ekin = 4.56109157465486 | erot = 4.7818033558294 | epot = -14.971366837947 | etot = -5.6284719074627 +354000 ekin = 4.45876151246803 | erot = 4.8289597964644 | epot = -14.9161932166554 | etot = -5.62847190772297 +355000 ekin = 4.34584612945877 | erot = 4.84663553107962 | epot = -14.8209535684629 | etot = -5.62847190792453 +356000 ekin = 4.22495470321376 | erot = 4.83038190908079 | epot = -14.6838085201839 | etot = -5.62847190788934 +357000 ekin = 4.09903296595215 | erot = 4.77873075093123 | epot = -14.5062356243656 | etot = -5.62847190748225 +358000 ekin = 3.97178667556377 | erot = 4.69444561049166 | epot = -14.2947041927644 | etot = -5.62847190670902 +359000 ekin = 3.84767298929744 | erot = 4.58431182213364 | epot = -14.0604567171835 | etot = -5.6284719057524 +360000 ekin = 3.73136439808791 | erot = 4.4574661315761 | epot = -13.817302434422 | etot = -5.62847190475798 +361000 ekin = 3.62758093165424 | erot = 4.3237906450543 | epot = -13.5798434807399 | etot = -5.62847190403139 +362000 ekin = 3.54294892306402 | erot = 4.19358097114648 | epot = -13.3650017978878 | etot = -5.62847190367727 +363000 ekin = 3.47837311690952 | erot = 4.07207692082501 | epot = -13.1789219412918 | etot = -5.6284719035573 +364000 ekin = 3.43225009805526 | erot = 3.96193194141973 | epot = -13.0226539430622 | etot = -5.62847190358719 +365000 ekin = 3.40198388462799 | erot = 3.86460642705559 | epot = -12.8950622153685 | etot = -5.62847190368494 +366000 ekin = 3.38451833851579 | erot = 3.78104622244878 | epot = -12.7940364647457 | etot = -5.62847190378114 +367000 ekin = 3.37682483157396 | erot = 3.71218000857552 | epot = -12.7174767439907 | etot = -5.62847190384127 +368000 ekin = 3.37625204137715 | erot = 3.65912147822917 | epot = -12.6638454234593 | etot = -5.628471903853 +369000 ekin = 3.380746367259 | erot = 3.62312680344518 | epot = -12.6323450745294 | etot = -5.62847190382522 +370000 ekin = 3.3889463669779 | erot = 3.60538856637072 | epot = -12.6228068371684 | etot = -5.62847190381979 +371000 ekin = 3.40011634059004 | erot = 3.60672333637875 | epot = -12.6353115807155 | etot = -5.62847190374667 +372000 ekin = 3.41430323561842 | erot = 3.62748920223738 | epot = -12.6702643415539 | etot = -5.62847190369808 +373000 ekin = 3.43217624794534 | erot = 3.66740997408251 | epot = -12.7280581255706 | etot = -5.62847190354274 +374000 ekin = 3.45538314685052 | erot = 3.7253207076594 | epot = -12.809175758137 | etot = -5.62847190362708 +375000 ekin = 3.48458983102283 | erot = 3.79950576965501 | epot = -12.9125675044332 | etot = -5.62847190375535 +376000 ekin = 3.51994630862302 | erot = 3.88772077540614 | epot = -13.036138987954 | etot = -5.62847190392486 +377000 ekin = 3.56162263238158 | erot = 3.98718032085896 | epot = -13.1772748573335 | etot = -5.62847190409292 +378000 ekin = 3.61009229017818 | erot = 4.09470007580354 | epot = -13.3332642702852 | etot = -5.62847190430351 +379000 ekin = 3.6662193925075 | erot = 4.20668278514851 | epot = -13.5013740820978 | etot = -5.62847190444178 +380000 ekin = 3.73222313433561 | erot = 4.31893025304286 | epot = -13.6796252922566 | etot = -5.62847190487811 +381000 ekin = 3.80656943721869 | erot = 4.42661769093369 | epot = -13.8616590336024 | etot = -5.62847190544999 +382000 ekin = 3.88594558524316 | erot = 4.52459411504536 | epot = -14.0390116063713 | etot = -5.62847190608281 +383000 ekin = 3.96695089997732 | erot = 4.60747433893913 | epot = -14.2028971456399 | etot = -5.62847190672346 +384000 ekin = 4.04619645065851 | erot = 4.66967915256757 | epot = -14.3443475105221 | etot = -5.62847190729599 +385000 ekin = 4.12092029135741 | erot = 4.70599192061983 | epot = -14.4553841196463 | etot = -5.62847190766905 +386000 ekin = 4.18945537161052 | erot = 4.71237691680779 | epot = -14.5303041965239 | etot = -5.62847190810561 +387000 ekin = 4.24770733743672 | erot = 4.6853187164418 | epot = -14.5614979619324 | etot = -5.62847190805387 +388000 ekin = 4.29400518231241 | erot = 4.62433064766082 | epot = -14.5468077376836 | etot = -5.62847190771033 +389000 ekin = 4.32973751034516 | erot = 4.53230747816488 | epot = -14.490516895674 | etot = -5.62847190716399 +390000 ekin = 4.35696496431934 | erot = 4.41432356916916 | epot = -14.3997604400568 | etot = -5.62847190656826 +391000 ekin = 4.37768888460328 | erot = 4.27672755002634 | epot = -14.2828883405661 | etot = -5.62847190593644 +392000 ekin = 4.39398588700305 | erot = 4.12625191226902 | epot = -14.1487097046515 | etot = -5.62847190537946 +393000 ekin = 4.40738241117814 | erot = 3.96936593197269 | epot = -14.0052202479737 | etot = -5.62847190482285 +394000 ekin = 4.41937568155273 | erot = 3.81285278688638 | epot = -13.8607003731014 | etot = -5.62847190466234 +395000 ekin = 4.429887681643 | erot = 3.66065946576785 | epot = -13.7190190519414 | etot = -5.62847190453055 +396000 ekin = 4.43847476589413 | erot = 3.51525603215846 | epot = -13.5822027024437 | etot = -5.6284719043911 +397000 ekin = 4.44517728397444 | erot = 3.37891512777923 | epot = -13.4525643159698 | etot = -5.62847190421616 +398000 ekin = 4.45064950026545 | erot = 3.25392386318522 | epot = -13.3330452674466 | etot = -5.62847190399591 +399000 ekin = 4.45613851378025 | erot = 3.14269651880886 | epot = -13.2273069363872 | etot = -5.62847190379807 +400000 ekin = 4.46297608306431 | erot = 3.04745583064105 | epot = -13.1389038172501 | etot = -5.62847190354471 +401000 ekin = 4.47275546002442 | erot = 2.97053701409529 | epot = -13.0717643774788 | etot = -5.62847190335911 +402000 ekin = 4.48672336701788 | erot = 2.91396522578301 | epot = -13.029160496141 | etot = -5.62847190334015 +403000 ekin = 4.50482841073211 | erot = 2.87870251807445 | epot = -13.0120028324215 | etot = -5.62847190361493 +404000 ekin = 4.524843257315 | erot = 2.86379686212345 | epot = -13.0171120236897 | etot = -5.6284719042513 +405000 ekin = 4.54178669954638 | erot = 2.8653512056657 | epot = -13.0356098106887 | etot = -5.62847190547664 +406000 ekin = 4.54812186978994 | erot = 2.8756562345168 | epot = -13.0522500109031 | etot = -5.62847190659635 +407000 ekin = 4.53567765664406 | erot = 2.88781666331989 | epot = -13.0519662273854 | etot = -5.62847190742146 +408000 ekin = 4.49806839875085 | erot = 2.89717319273749 | epot = -13.0237134991376 | etot = -5.62847190764926 +409000 ekin = 4.43289041828323 | erot = 2.9029317342836 | epot = -12.9642940598422 | etot = -5.62847190727535 +410000 ekin = 4.34222243514944 | erot = 2.90784571762389 | epot = -12.8785400593187 | etot = -5.62847190654535 +411000 ekin = 4.23122328985304 | erot = 2.91632332328884 | epot = -12.7760185189366 | etot = -5.62847190579472 +412000 ekin = 4.10591302472356 | erot = 2.93234263224213 | epot = -12.6667275622006 | etot = -5.62847190523494 +413000 ekin = 3.97147909139366 | erot = 2.95826875335732 | epot = -12.5582197496564 | etot = -5.62847190490539 +414000 ekin = 3.83169645331895 | erot = 2.99487215437993 | epot = -12.4550405124416 | etot = -5.62847190474269 +415000 ekin = 3.68915556889422 | erot = 3.04191716150965 | epot = -12.3595446350688 | etot = -5.62847190466496 +416000 ekin = 3.54575553260147 | erot = 3.09878213610582 | epot = -12.2730095733191 | etot = -5.62847190461177 +417000 ekin = 3.40315271148973 | erot = 3.16484246788968 | epot = -12.1964670839311 | etot = -5.62847190455169 +418000 ekin = 3.26306253875921 | erot = 3.23960054551429 | epot = -12.1311349887461 | etot = -5.62847190447262 +419000 ekin = 3.12743539448628 | erot = 3.32265867808808 | epot = -12.0785659769468 | etot = -5.62847190437241 +420000 ekin = 2.99854685250536 | erot = 3.41362396343085 | epot = -12.0406427201918 | etot = -5.62847190425557 +421000 ekin = 2.87901712494606 | erot = 3.5119788037687 | epot = -12.0194678328506 | etot = -5.62847190413584 +422000 ekin = 2.77174596054379 | erot = 3.61690112201243 | epot = -12.0171189865972 | etot = -5.62847190404102 +423000 ekin = 2.67973794666689 | erot = 3.72700827484235 | epot = -12.0352181255237 | etot = -5.62847190401442 +424000 ekin = 2.60579870930555 | erot = 3.84002717526432 | epot = -12.074297788682 | etot = -5.62847190411217 +425000 ekin = 2.55208954529187 | erot = 3.95244167891433 | epot = -12.1330031286045 | etot = -5.62847190439832 +426000 ekin = 2.51954653046236 | erot = 4.05920212805388 | epot = -12.2072205634457 | etot = -5.62847190492948 +427000 ekin = 2.50725893892059 | erot = 4.15363681828261 | epot = -12.2893676629178 | etot = -5.62847190571456 +428000 ekin = 2.51210485176412 | erot = 4.22782399612785 | epot = -12.3684007545411 | etot = -5.62847190664909 +429000 ekin = 2.52911833234268 | erot = 4.27377369071121 | epot = -12.4313639305338 | etot = -5.62847190747988 +430000 ekin = 2.55284926702148 | erot = 4.28551618825896 | epot = -12.4668373631688 | etot = -5.6284719078884 +431000 ekin = 2.57924139421313 | erot = 4.26142412036458 | epot = -12.4691374222602 | etot = -5.62847190768247 +432000 ekin = 2.60692475468281 | erot = 4.20541068246078 | epot = -12.4408073440803 | etot = -5.62847190693669 +433000 ekin = 2.63712842984009 | erot = 4.12604912501212 | epot = -12.3916494607877 | etot = -5.62847190593547 +434000 ekin = 2.67245542243098 | erot = 4.03405948921194 | epot = -12.3349868166311 | etot = -5.62847190498821 +435000 ekin = 2.71543854641988 | erot = 3.93961255970513 | epot = -12.2835230104087 | etot = -5.62847190428369 +436000 ekin = 2.76760991343117 | erot = 3.85063248522731 | epot = -12.2467143025347 | etot = -5.62847190387622 +437000 ekin = 2.82920515673023 | erot = 3.77223859649696 | epot = -12.2299156569534 | etot = -5.62847190372624 +438000 ekin = 2.89929820059969 | erot = 3.70707509974139 | epot = -12.2348452041086 | etot = -5.62847190376755 +439000 ekin = 2.97609334156257 | erot = 3.65590372387851 | epot = -12.2604689693811 | etot = -5.62847190394 +440000 ekin = 3.0572090661351 | erot = 3.61815200782515 | epot = -12.3038329781603 | etot = -5.62847190420003 +441000 ekin = 3.13989672829312 | erot = 3.5923230239825 | epot = -12.360691656793 | etot = -5.62847190451741 +442000 ekin = 3.2211992751893 | erot = 3.57626892518592 | epot = -12.4259401052482 | etot = -5.62847190487303 +443000 ekin = 3.29807867302227 | erot = 3.56737972994689 | epot = -12.4939303082158 | etot = -5.62847190524664 +444000 ekin = 3.36753883944179 | erot = 3.56276348926254 | epot = -12.5587742343224 | etot = -5.62847190561804 +445000 ekin = 3.42676046581367 | erot = 3.55942025918075 | epot = -12.6146526309594 | etot = -5.62847190596496 +446000 ekin = 3.47324383647347 | erot = 3.55443462308445 | epot = -12.6561503658264 | etot = -5.62847190626847 +447000 ekin = 3.50497354376933 | erot = 3.54511419619531 | epot = -12.6785596464708 | etot = -5.62847190650619 +448000 ekin = 3.52056213084159 | erot = 3.5297410071025 | epot = -12.678775044464 | etot = -5.62847190651992 +449000 ekin = 3.51939696591908 | erot = 3.50705904511348 | epot = -12.6549279176377 | etot = -5.6284719066051 +450000 ekin = 3.50164536054644 | erot = 3.47565071066506 | epot = -12.605767977811 | etot = -5.62847190659949 +451000 ekin = 3.46824790708968 | erot = 3.434721512032 | epot = -12.5314413256229 | etot = -5.62847190650123 +452000 ekin = 3.42090312737986 | erot = 3.38414558730049 | epot = -12.433520620992 | etot = -5.62847190631168 +453000 ekin = 3.36201791829813 | erot = 3.32449206046166 | epot = -12.3149818847957 | etot = -5.62847190603594 +454000 ekin = 3.29463316061968 | erot = 3.2570173981978 | epot = -12.1801224645013 | etot = -5.62847190568382 +455000 ekin = 3.22233274900136 | erot = 3.18360703277462 | epot = -12.034411687045 | etot = -5.62847190526907 +456000 ekin = 3.14914248629959 | erot = 3.10666992198597 | epot = -11.884284313096 | etot = -5.62847190481048 +457000 ekin = 3.07939737174129 | erot = 3.02894564058933 | epot = -11.7368149166696 | etot = -5.62847190433899 +458000 ekin = 3.01756413268935 | erot = 2.95322108562861 | epot = -11.5992571221695 | etot = -5.62847190385151 +459000 ekin = 2.96810632524382 | erot = 2.88249754736357 | epot = -11.4790757760119 | etot = -5.62847190340455 +460000 ekin = 2.93513889003322 | erot = 2.81955267521 | epot = -11.3831634682776 | etot = -5.6284719030344 +461000 ekin = 2.92205746388576 | erot = 2.76669234907988 | epot = -11.3172217157448 | etot = -5.62847190277913 +462000 ekin = 2.93114290150317 | erot = 2.72556812595781 | epot = -11.2851829301332 | etot = -5.62847190267221 +463000 ekin = 2.96319319680066 | erot = 2.69703193761399 | epot = -11.2886970371507 | etot = -5.62847190273605 +464000 ekin = 3.01726238568611 | erot = 2.68105615130189 | epot = -11.326790439963 | etot = -5.62847190297497 +465000 ekin = 3.09058398932049 | erot = 2.67674994759099 | epot = -11.3958058402812 | etot = -5.62847190336969 +466000 ekin = 3.17872270900206 | erot = 2.68248866700377 | epot = -11.4896832798861 | etot = -5.62847190388032 +467000 ekin = 3.27594114496115 | erot = 2.69614045585657 | epot = -11.6005535052724 | etot = -5.62847190445465 +468000 ekin = 3.37571282133917 | erot = 2.7153402624028 | epot = -11.7195249887813 | etot = -5.62847190503931 +469000 ekin = 3.47128178262938 | erot = 2.73774679763355 | epot = -11.8375004858527 | etot = -5.62847190558975 +470000 ekin = 3.55617737699295 | erot = 2.76123628661555 | epot = -11.9458855696824 | etot = -5.62847190607386 +471000 ekin = 3.6246330939994 | erot = 2.78402790004091 | epot = -12.0371329005091 | etot = -5.62847190646883 +472000 ekin = 3.67190559892769 | erot = 2.80477124778906 | epot = -12.1051487534733 | etot = -5.62847190675652 +473000 ekin = 3.69451868441339 | erot = 2.82263116141129 | epot = -12.1456217527447 | etot = -5.62847190691997 +474000 ekin = 3.690457463319 | erot = 2.83737882568697 | epot = -12.1563081959514 | etot = -5.62847190694547 +475000 ekin = 3.65932116351354 | erot = 2.84946541726914 | epot = -12.1372584876075 | etot = -5.62847190682481 +476000 ekin = 3.60242486139365 | erot = 2.86004016498472 | epot = -12.0909369329381 | etot = -5.62847190655976 +477000 ekin = 3.52282746240941 | erot = 2.87088465735228 | epot = -12.0221840259233 | etot = -5.62847190616159 +478000 ekin = 3.42525452631152 | erot = 2.88424967269603 | epot = -11.9379761046733 | etot = -5.62847190566571 +479000 ekin = 3.31588349740451 | erot = 2.90254646895417 | epot = -11.8469018714746 | etot = -5.62847190511589 +480000 ekin = 3.20192949247412 | erot = 2.92801081389738 | epot = -11.7584122109498 | etot = -5.62847190457828 +481000 ekin = 3.09102106842349 | erot = 2.962275100393 | epot = -11.68176807295 | etot = -5.6284719041335 +482000 ekin = 2.99039932402913 | erot = 3.00590839367439 | epot = -11.6247796215674 | etot = -5.62847190386392 +483000 ekin = 2.90605693346212 | erot = 3.0579980296226 | epot = -11.5925268669205 | etot = -5.62847190383583 +484000 ekin = 2.84200171526081 | erot = 3.11586840861443 | epot = -11.586342027954 | etot = -5.62847190407872 +485000 ekin = 2.81072036469033 | erot = 3.03665546470463 | epot = -11.4758477219315 | etot = -5.62847189253652 +486000 ekin = 2.99172671784441 | erot = 2.89028588609549 | epot = -11.5104845146674 | etot = -5.6284719107275 +487000 ekin = 3.04661020883305 | erot = 2.89516257154732 | epot = -11.5702446860141 | etot = -5.62847190563374 +488000 ekin = 3.02813445461909 | erot = 2.91755814175032 | epot = -11.5741645019042 | etot = -5.62847190553475 +489000 ekin = 3.0291817318923 | erot = 2.94703274342082 | epot = -11.6046863809146 | etot = -5.62847190560147 +490000 ekin = 3.04920929974356 | erot = 2.98299921438345 | epot = -11.6606804199472 | etot = -5.62847190582018 +491000 ekin = 3.08564623420881 | erot = 3.02458607701207 | epot = -11.7387042173395 | etot = -5.62847190611864 +492000 ekin = 3.13426650213357 | erot = 3.07113014036676 | epot = -11.8338685489377 | etot = -5.62847190643739 +493000 ekin = 3.19024782354288 | erot = 3.12246736374614 | epot = -11.9411870939343 | etot = -5.62847190664525 +494000 ekin = 3.24418110399159 | erot = 3.17757093523865 | epot = -12.0502240477464 | etot = -5.62847200851614 +495000 ekin = 3.12930691881805 | erot = 3.12025770000067 | epot = -11.8780365336473 | etot = -5.62847191482857 +496000 ekin = 3.38154400856943 | erot = 3.12702216680609 | epot = -12.1370381395841 | etot = -5.62847196420855 +497000 ekin = 3.5379633430085 | erot = 3.2134524018408 | epot = -12.3798876660854 | etot = -5.62847192123606 +498000 ekin = 3.54725242242046 | erot = 3.31274815694437 | epot = -12.4884725006184 | etot = -5.62847192125361 +499000 ekin = 3.54686752390257 | erot = 3.42936350671392 | epot = -12.6047029519614 | etot = -5.62847192134493 +500000 ekin = 3.53611629142107 | erot = 3.5621447184912 | epot = -12.7267329314238 | etot = -5.62847192151152 +501000 ekin = 3.51474019582421 | erot = 3.7083124006301 | epot = -12.8515245182113 | etot = -5.62847192175698 +502000 ekin = 3.48291543615832 | erot = 3.86351597858801 | epot = -12.9749033367362 | etot = -5.62847192198988 +503000 ekin = 3.44167367983497 | erot = 4.02200657195978 | epot = -13.0921521741415 | etot = -5.62847192234678 +504000 ekin = 3.3916656193754 | erot = 4.17733332043199 | epot = -13.1974708625473 | etot = -5.6284719227399 +505000 ekin = 3.33344269450503 | erot = 4.32266370128013 | epot = -13.2845783189161 | etot = -5.62847192313095 +506000 ekin = 3.26726906279279 | erot = 4.45157764164499 | epot = -13.347318627836 | etot = -5.62847192339819 +507000 ekin = 3.19388361649229 | erot = 4.55898983229981 | epot = -13.3813453722761 | etot = -5.62847192348402 +508000 ekin = 3.1146272404848 | erot = 4.64207406472587 | epot = -13.3851732285439 | etot = -5.62847192333327 +509000 ekin = 3.03154551889222 | erot = 4.70083202644274 | epot = -13.3608494682894 | etot = -5.62847192295445 +510000 ekin = 2.94513058610523 | erot = 4.73730594222444 | epot = -13.3109084508144 | etot = -5.62847192248476 +511000 ekin = 2.85640718493158 | erot = 4.75516581382911 | epot = -13.2400449206807 | etot = -5.62847192192004 +512000 ekin = 2.7685448252352 | erot = 4.75962991523576 | epot = -13.1566466618343 | etot = -5.62847192136329 +513000 ekin = 2.68465921481286 | erot = 4.75599513194568 | epot = -13.0691262676556 | etot = -5.62847192089705 +514000 ekin = 2.60745568312153 | erot = 4.74870168660043 | epot = -12.9846292903035 | etot = -5.62847192058154 +515000 ekin = 2.53899080261884 | erot = 4.74082869238916 | epot = -12.908291415412 | etot = -5.62847192040399 +516000 ekin = 2.48057862894501 | erot = 4.73416754063572 | epot = -12.8432180899358 | etot = -5.62847192035506 +517000 ekin = 2.43281299018052 | erot = 4.72933651073029 | epot = -12.7906214213124 | etot = -5.62847192040158 +518000 ekin = 2.39567246198618 | erot = 4.72611868195944 | epot = -12.7502630644488 | etot = -5.6284719205032 +519000 ekin = 2.36868008075511 | erot = 4.72386163460508 | epot = -12.7210136359791 | etot = -5.6284719206189 +520000 ekin = 2.3510906803018 | erot = 4.72186744280268 | epot = -12.7014300438176 | etot = -5.62847192071307 +521000 ekin = 2.34207426122853 | erot = 4.71970227704795 | epot = -12.690248459041 | etot = -5.62847192076452 +522000 ekin = 2.3408585839593 | erot = 4.717351137329 | epot = -12.6866816420599 | etot = -5.62847192077156 +523000 ekin = 2.34541603964687 | erot = 4.65571671275286 | epot = -12.62960468288 | etot = -5.62847193048032 +524000 ekin = 2.39460269537327 | erot = 4.5440923968237 | epot = -12.5671670124743 | etot = -5.6284719202773 +525000 ekin = 2.51755565343829 | erot = 4.49060445329404 | epot = -12.6366320324554 | etot = -5.6284719257231 +526000 ekin = 2.63891940338083 | erot = 4.49670026133261 | epot = -12.7640916024971 | etot = -5.62847193778366 +527000 ekin = 2.68130557079429 | erot = 4.50503337382341 | epot = -12.81481087471 | etot = -5.62847193009234 +528000 ekin = 2.71450795012238 | erot = 4.51098798635674 | epot = -12.8539678666714 | etot = -5.62847193019227 +529000 ekin = 2.74727192396273 | erot = 4.51402301148384 | epot = -12.8897668657089 | etot = -5.6284719302623 +530000 ekin = 2.77952118316763 | erot = 4.51256666257441 | epot = -12.9205597760307 | etot = -5.62847193028861 +531000 ekin = 2.81130699781853 | erot = 4.50555264770735 | epot = -12.9453315757932 | etot = -5.62847193026728 +532000 ekin = 2.84274553230611 | erot = 4.49253106983451 | epot = -12.9637485323479 | etot = -5.62847193020728 +533000 ekin = 2.87393313772675 | erot = 4.47361780235876 | epot = -12.9760228702139 | etot = -5.62847193012842 +534000 ekin = 2.90486933810437 | erot = 4.4492884461776 | epot = -12.982629714336 | etot = -5.62847193005404 +535000 ekin = 2.93541519867713 | erot = 4.42010482065887 | epot = -12.983991949336 | etot = -5.62847192999997 +536000 ekin = 2.96529830149696 | erot = 4.38649798395868 | epot = -12.9802682154263 | etot = -5.62847192997066 +537000 ekin = 2.9941546715244 | erot = 4.34867665836289 | epot = -12.9713032598383 | etot = -5.62847192995098 +538000 ekin = 3.02158801650267 | erot = 4.30669342609435 | epot = -12.9567533725476 | etot = -5.62847192995063 +539000 ekin = 3.04722844373896 | erot = 4.26048951904726 | epot = -12.9361898927328 | etot = -5.62847192994659 +540000 ekin = 3.07077963643902 | erot = 4.21000980478417 | epot = -12.9092613711529 | etot = -5.62847192992969 +541000 ekin = 3.09204730616454 | erot = 4.15535061585166 | epot = -12.8758698519111 | etot = -5.62847192989485 +542000 ekin = 3.11094831332973 | erot = 4.09682671838095 | epot = -12.8362469615525 | etot = -5.62847192984182 +543000 ekin = 3.12750284882097 | erot = 4.03499383130383 | epot = -12.7909686098982 | etot = -5.62847192977342 +544000 ekin = 3.14181233917186 | erot = 3.9706269261982 | epot = -12.7409111950686 | etot = -5.6284719296985 +545000 ekin = 3.15402369277355 | erot = 3.9046220841584 | epot = -12.6871177065573 | etot = -5.62847192962532 +546000 ekin = 3.16427777376567 | erot = 3.8380946572635 | epot = -12.6308443605863 | etot = -5.62847192955709 +547000 ekin = 3.17263245314417 | erot = 3.7724854223622 | epot = -12.5735898050362 | etot = -5.62847192952988 +548000 ekin = 3.17905114127017 | erot = 3.70842416474136 | epot = -12.5159472355486 | etot = -5.62847192953704 +549000 ekin = 3.18335924851677 | erot = 3.646194434218 | epot = -12.4580256122719 | etot = -5.62847192953711 +550000 ekin = 3.18506506659257 | erot = 3.58603484427266 | epot = -12.3995718405164 | etot = -5.62847192965112 +551000 ekin = 3.18354118865646 | erot = 3.52751972613024 | epot = -12.3395328445766 | etot = -5.62847192978987 +552000 ekin = 3.17814056099685 | erot = 3.46973317227459 | epot = -12.2763456632029 | etot = -5.62847192993142 +553000 ekin = 3.16816249047943 | erot = 3.4118771629193 | epot = -12.2085115834413 | etot = -5.62847193004256 +554000 ekin = 3.152974640569 | erot = 3.35363386891104 | epot = -12.1350804395661 | etot = -5.62847193008603 +555000 ekin = 3.13218065543358 | erot = 3.29554931590148 | epot = -12.0562019013624 | etot = -5.62847193002736 +556000 ekin = 3.10581995744964 | erot = 3.23932890453177 | epot = -11.9736207918255 | etot = -5.62847192984405 +557000 ekin = 3.07457883900136 | erot = 3.18795403306235 | epot = -11.8910048015923 | etot = -5.62847192952859 +558000 ekin = 3.0399826265664 | erot = 3.14553707334498 | epot = -11.8139916290184 | etot = -5.62847192910703 +559000 ekin = 3.00450378989002 | erot = 3.1169371283537 | epot = -11.7499128468228 | etot = -5.62847192857912 +560000 ekin = 2.97145203627554 | erot = 3.10758181984466 | epot = -11.7075057841409 | etot = -5.62847192802067 +561000 ekin = 2.94451934107631 | erot = 3.12267269752084 | epot = -11.6956639661595 | etot = -5.62847192756238 +562000 ekin = 2.92714140963741 | erot = 3.16633554920152 | epot = -11.7219488860852 | etot = -5.62847192724623 +563000 ekin = 2.9220614763248 | erot = 3.24077054351229 | epot = -11.7913039470345 | etot = -5.62847192719737 +564000 ekin = 2.93031627661537 | erot = 3.34563410952266 | epot = -11.904422313636 | etot = -5.62847192749801 +565000 ekin = 2.95068712298472 | erot = 3.47751232959147 | epot = -12.0566713807284 | etot = -5.62847192815217 +566000 ekin = 2.97962685527569 | erot = 3.62985521352484 | epot = -12.2379539979236 | etot = -5.62847192912305 +567000 ekin = 3.01171593581948 | erot = 3.79324477334104 | epot = -12.4334326394742 | etot = -5.6284719303137 +568000 ekin = 3.04054477454128 | erot = 3.95610049169994 | epot = -12.6251171978273 | etot = -5.62847193158611 +569000 ekin = 3.05981811086283 | erot = 4.10576505731969 | epot = -12.7940551009638 | etot = -5.62847193278128 +570000 ekin = 3.06446758305144 | erot = 4.22987220708192 | epot = -12.922811723873 | etot = -5.62847193373966 +571000 ekin = 3.05159191048677 | erot = 4.31782950105469 | epot = -12.9978933458657 | etot = -5.62847193432422 +572000 ekin = 3.02108996846969 | erot = 4.36217384040604 | epot = -13.0117357433222 | etot = -5.62847193444643 +573000 ekin = 2.97589592653743 | erot = 4.35953364445579 | epot = -12.9639015050781 | etot = -5.62847193408484 +574000 ekin = 2.9217726095476 | erot = 4.31098813645812 | epot = -12.8612326793025 | etot = -5.62847193329677 +575000 ekin = 2.86675845152662 | erot = 4.22206447601689 | epot = -12.7172948575799 | etot = -5.62847193003638 +576000 ekin = 2.82238695050776 | erot = 4.11002108698041 | epot = -12.5608799670038 | etot = -5.62847192951559 +577000 ekin = 2.79586021294431 | erot = 3.98405314231564 | epot = -12.4083852843453 | etot = -5.62847192908532 +578000 ekin = 2.7906267865537 | erot = 3.84816173897867 | epot = -12.2672604543784 | etot = -5.62847192884604 +579000 ekin = 2.80727876771314 | erot = 3.70630768395844 | epot = -12.1420583805015 | etot = -5.6284719288299 +580000 ekin = 2.84308800290578 | erot = 3.56147502220943 | epot = -12.033034954412 | etot = -5.62847192929679 +581000 ekin = 2.89275945174584 | erot = 3.4167770803592 | epot = -11.9380084614761 | etot = -5.62847192937104 +582000 ekin = 2.94948274103276 | erot = 3.2785263562891 | epot = -11.8564810267625 | etot = -5.62847192944067 +583000 ekin = 3.00600312784595 | erot = 3.15339507865486 | epot = -11.7878701359251 | etot = -5.62847192942433 +584000 ekin = 3.05615870305645 | erot = 3.04800743031942 | epot = -11.7326380626758 | etot = -5.62847192929997 +585000 ekin = 3.09596263910765 | erot = 2.96828908152132 | epot = -11.6927236497189 | etot = -5.6284719290899 +586000 ekin = 3.1240729820118 | erot = 2.91878541589529 | epot = -11.6713303267329 | etot = -5.62847192882581 +587000 ekin = 3.14174614222812 | erot = 2.90225430094425 | epot = -11.6724723717087 | etot = -5.62847192853628 +588000 ekin = 3.1524003162434 | erot = 2.91960613645308 | epot = -11.7004783809564 | etot = -5.62847192825996 +589000 ekin = 3.16081808259293 | erot = 2.97006448177757 | epot = -11.7593544924097 | etot = -5.62847192803921 +590000 ekin = 3.17204827388567 | erot = 3.05134069932488 | epot = -11.8518609011252 | etot = -5.62847192791469 +591000 ekin = 3.19150299843264 | erot = 3.16015018738911 | epot = -11.9801251138133 | etot = -5.6284719279916 +592000 ekin = 3.22264872307499 | erot = 3.29204057523907 | epot = -12.1431612266306 | etot = -5.62847192831653 +593000 ekin = 3.26585695468827 | erot = 3.44092346946795 | epot = -12.3352523530142 | etot = -5.62847192885796 +594000 ekin = 3.31918005201003 | erot = 3.59965335610763 | epot = -12.5473053376812 | etot = -5.62847192956349 +595000 ekin = 3.37897127087938 | erot = 3.76045843951374 | epot = -12.7679016406818 | etot = -5.62847193028864 +596000 ekin = 3.43824068583499 | erot = 3.91359738335248 | epot = -12.9803100018114 | etot = -5.62847193262389 +597000 ekin = 3.48744876802532 | erot = 4.04782437870026 | epot = -13.1637450799831 | etot = -5.62847193325755 +598000 ekin = 3.52187002174033 | erot = 4.1569858043421 | epot = -13.3073277596942 | etot = -5.62847193361181 +599000 ekin = 3.53831455075583 | erot = 4.23767846718814 | epot = -13.4044649516274 | etot = -5.62847193368348 +600000 ekin = 3.53510970432726 | erot = 4.28920847112016 | epot = -13.452790108963 | etot = -5.62847193351559 +601000 ekin = 3.51191041819736 | erot = 4.31320178201164 | epot = -13.4535841333868 | etot = -5.62847193317776 +602000 ekin = 3.46937521147322 | erot = 4.31295152745267 | epot = -13.4107986716704 | etot = -5.62847193274446 +603000 ekin = 3.40882221241426 | erot = 4.29270411933321 | epot = -13.3299982640245 | etot = -5.62847193227706 +604000 ekin = 3.33194570981526 | erot = 4.25705245868206 | epot = -13.2174701003137 | etot = -5.62847193181633 +605000 ekin = 3.24062643786331 | erot = 4.21052248041457 | epot = -13.0796208496601 | etot = -5.62847193138225 +606000 ekin = 3.13683319323927 | erot = 4.15735875798811 | epot = -12.9226638822062 | etot = -5.62847193097882 +607000 ekin = 3.02259481107608 | erot = 4.10146703774399 | epot = -12.7525337794202 | etot = -5.62847193060012 +608000 ekin = 2.90001652258154 | erot = 4.04645475157649 | epot = -12.574943204394 | etot = -5.62847193023597 +609000 ekin = 2.77131728805922 | erot = 3.99571460781224 | epot = -12.3955038257476 | etot = -5.62847192987615 +610000 ekin = 2.63886938888048 | erot = 3.95250622990976 | epot = -12.2198475483046 | etot = -5.62847192951437 +611000 ekin = 2.50524882247892 | erot = 3.92003293777695 | epot = -12.0537536891167 | etot = -5.62847192886078 +612000 ekin = 2.37382087279007 | erot = 3.90218869853792 | epot = -11.9044814998599 | etot = -5.62847192853195 +613000 ekin = 2.24769613360656 | erot = 3.90186788749861 | epot = -11.7780359493281 | etot = -5.62847192822294 +614000 ekin = 2.12975142860572 | erot = 3.92103062115479 | epot = -11.6792539777365 | etot = -5.62847192797597 +615000 ekin = 2.02283676461716 | erot = 3.96080056830067 | epot = -11.6121092607438 | etot = -5.62847192782593 +616000 ekin = 1.92967019041878 | erot = 4.02099162186615 | epot = -11.579133740091 | etot = -5.62847192780604 +617000 ekin = 1.85273791857026 | erot = 4.09974474408036 | epot = -11.5809545905959 | etot = -5.62847192794533 +618000 ekin = 1.79420296290766 | erot = 4.19322703626905 | epot = -11.6159019274337 | etot = -5.62847192825703 +619000 ekin = 1.75583197424195 | erot = 4.29552606651499 | epot = -11.6798299694835 | etot = -5.62847192872651 +620000 ekin = 1.73895870094446 | erot = 4.39891672379093 | epot = -11.7663473540351 | etot = -5.62847192929971 +621000 ekin = 1.74449834712895 | erot = 4.49462250669986 | epot = -11.8675927837139 | etot = -5.62847192988505 +622000 ekin = 1.77300875725232 | erot = 4.57403518095986 | epot = -11.9755158685887 | etot = -5.62847193037655 +623000 ekin = 1.82476626665333 | erot = 4.63011744399526 | epot = -12.0833556413381 | etot = -5.62847193068951 +624000 ekin = 1.89980556096372 | erot = 4.65854151397894 | epot = -12.1868190057356 | etot = -5.62847193079293 +625000 ekin = 1.99788931008649 | erot = 4.65817060165253 | epot = -12.2845318424541 | etot = -5.6284719307151 +626000 ekin = 2.11841939009616 | erot = 4.63077870087959 | epot = -12.3776700214989 | etot = -5.62847193052312 +627000 ekin = 2.26034340502548 | erot = 4.58024268390528 | epot = -12.4690580192171 | etot = -5.62847193028638 +628000 ekin = 2.42211143985386 | erot = 4.51161612045591 | epot = -12.5621994903691 | etot = -5.6284719300593 +629000 ekin = 2.60047669415179 | erot = 4.43316974500275 | epot = -12.6621183685534 | etot = -5.62847192939883 +630000 ekin = 2.7503574900296 | erot = 4.3100390573783 | epot = -12.6888685131096 | etot = -5.62847196570167 +631000 ekin = 2.81471524142744 | erot = 4.11774535981825 | epot = -12.560932537004 | etot = -5.6284719357583 +632000 ekin = 2.95867552219892 | erot = 4.07926707204035 | epot = -12.6664145271043 | etot = -5.62847193286502 +633000 ekin = 3.21010693597188 | erot = 4.20581326818235 | epot = -13.0443921662251 | etot = -5.62847196207084 +634000 ekin = 3.41641131498702 | erot = 4.25928215922315 | epot = -13.3041654105749 | etot = -5.62847193636469 +635000 ekin = 3.57385274074614 | erot = 4.24018711593412 | epot = -13.4425117938152 | etot = -5.62847193713496 +636000 ekin = 3.71894531192207 | erot = 4.21896102694803 | epot = -13.5663782768412 | etot = -5.62847193797114 +637000 ekin = 3.84555962848383 | erot = 4.19009538983304 | epot = -13.6641269569835 | etot = -5.62847193866661 +638000 ekin = 3.94874232725405 | erot = 4.14881281916048 | epot = -13.72602708545 | etot = -5.62847193903547 +639000 ekin = 4.02564653203983 | erot = 4.09271382108853 | epot = -13.7468322921298 | etot = -5.62847193900142 +640000 ekin = 4.07582551371721 | erot = 4.02260436107351 | epot = -13.7269018134047 | etot = -5.628471938614 +641000 ekin = 4.10019063769985 | erot = 3.94203419554565 | epot = -13.6706967717062 | etot = -5.62847193846072 +642000 ekin = 4.09923586000013 | erot = 3.85569636498804 | epot = -13.5834041628699 | etot = -5.6284719378817 +643000 ekin = 4.07616079985079 | erot = 3.76850329621968 | epot = -13.4731360334278 | etot = -5.62847193735732 +644000 ekin = 4.03483546311363 | erot = 3.68428538400513 | epot = -13.3475927840616 | etot = -5.62847193694285 +645000 ekin = 3.97939693539872 | erot = 3.60521279235852 | epot = -13.2130816643787 | etot = -5.62847193662148 +646000 ekin = 3.91424157398736 | erot = 3.53197746505452 | epot = -13.0746909753807 | etot = -5.62847193633883 +647000 ekin = 3.84412108358933 | erot = 3.46430751165856 | epot = -12.9369005314278 | etot = -5.62847193617996 +648000 ekin = 3.77442093454335 | erot = 3.40030625090033 | epot = -12.8031991213061 | etot = -5.62847193586241 +649000 ekin = 3.71064844406707 | erot = 3.33902116852718 | epot = -12.6781415481349 | etot = -5.62847193554064 +650000 ekin = 3.65777288966146 | erot = 3.28036981753718 | epot = -12.5666146424668 | etot = -5.62847193526817 +651000 ekin = 3.61962254756271 | erot = 3.22458240428293 | epot = -12.4726768869373 | etot = -5.62847193509165 +652000 ekin = 3.5983886698494 | erot = 3.17201593039475 | epot = -12.3988765352733 | etot = -5.62847193502919 +653000 ekin = 3.59447660063664 | erot = 3.12302902486399 | epot = -12.3459775605649 | etot = -5.62847193506423 +654000 ekin = 3.60674141926213 | erot = 3.07797678372087 | epot = -12.3131901381398 | etot = -5.62847193515675 +655000 ekin = 3.63298841319899 | erot = 3.03728497083513 | epot = -12.298745319302 | etot = -5.62847193526783 +656000 ekin = 3.67052655538393 | erot = 3.00147990307841 | epot = -12.3004783938467 | etot = -5.62847193538435 +657000 ekin = 3.71734630715188 | erot = 2.97084073563873 | epot = -12.3166589781819 | etot = -5.62847193539126 +658000 ekin = 3.75778663152406 | erot = 2.94872940868083 | epot = -12.3349879989909 | etot = -5.62847195878602 +659000 ekin = 3.70128994157181 | erot = 2.99267200690746 | epot = -12.3224338842044 | etot = -5.62847193572512 +660000 ekin = 3.77980484703633 | erot = 3.05081678610233 | epot = -12.4590935972117 | etot = -5.62847196407309 +661000 ekin = 3.87674047152168 | erot = 3.0204372245258 | epot = -12.5256496414073 | etot = -5.62847194535981 +662000 ekin = 3.96189665332223 | erot = 2.97294510662936 | epot = -12.5633137062543 | etot = -5.62847194630273 +663000 ekin = 4.0323399214187 | erot = 2.90724728967078 | epot = -12.5680591574168 | etot = -5.62847194632729 +664000 ekin = 4.08703350805266 | erot = 2.8237107412405 | epot = -12.5392161951014 | etot = -5.62847194580827 +665000 ekin = 4.13016908298482 | erot = 2.72591755760377 | epot = -12.4845585856393 | etot = -5.62847194505068 +666000 ekin = 4.16485763716588 | erot = 2.62158318056137 | epot = -12.4149127617997 | etot = -5.6284719440724 +667000 ekin = 4.19388444256735 | erot = 2.52048046545659 | epot = -12.3428368513381 | etot = -5.62847194331417 +668000 ekin = 4.2197011138852 | erot = 2.43117566524618 | epot = -12.279348721894 | etot = -5.62847194276262 +669000 ekin = 4.24419480087444 | erot = 2.35970998738712 | epot = -12.2323767306649 | etot = -5.62847194240331 +670000 ekin = 4.26650932865956 | erot = 2.31009212963202 | epot = -12.205073400566 | etot = -5.6284719422744 +671000 ekin = 4.28028750606661 | erot = 2.28394068936243 | epot = -12.1927001376509 | etot = -5.62847194222186 +672000 ekin = 4.28604953841681 | erot = 2.28087700932289 | epot = -12.1953984899257 | etot = -5.62847194218603 +673000 ekin = 4.28538321009053 | erot = 2.29981058102313 | epot = -12.2136657332555 | etot = -5.62847194214187 +674000 ekin = 4.28032637914606 | erot = 2.33931519983992 | epot = -12.2481135210873 | etot = -5.62847194210128 +675000 ekin = 4.27310613172282 | erot = 2.39770546325545 | epot = -12.2992835370902 | etot = -5.62847194211198 +676000 ekin = 4.26563141872319 | erot = 2.47283047848192 | epot = -12.3669338394774 | etot = -5.62847194227226 +677000 ekin = 4.25873601051767 | erot = 2.56159475129278 | epot = -12.4488027044409 | etot = -5.62847194263047 +678000 ekin = 4.25154383433598 | erot = 2.65951246655273 | epot = -12.5395282441259 | etot = -5.62847194323716 +679000 ekin = 4.24120573486625 | erot = 2.76057514742513 | epot = -12.6302528263285 | etot = -5.62847194403713 +680000 ekin = 4.22320051199589 | erot = 2.8577068909422 | epot = -12.7093793478055 | etot = -5.62847194486737 +681000 ekin = 4.19242845467527 | erot = 2.94400272534198 | epot = -12.7649031255142 | etot = -5.6284719454969 +682000 ekin = 4.14477706350661 | erot = 3.01435956371948 | epot = -12.7876085729696 | etot = -5.62847194574355 +683000 ekin = 4.07850194590293 | erot = 3.0666968929119 | epot = -12.7736707843732 | etot = -5.62847194555838 +684000 ekin = 3.98766788586786 | erot = 3.09062770629772 | epot = -12.7067675425492 | etot = -5.62847195038364 +685000 ekin = 3.87609976038648 | erot = 3.07213118833004 | epot = -12.5767028923904 | etot = -5.6284719436739 +686000 ekin = 3.78865422808705 | erot = 3.0537998251476 | epot = -12.4709259955823 | etot = -5.62847194234768 +687000 ekin = 3.72885638141783 | erot = 3.0512831038631 | epot = -12.4086114325096 | etot = -5.62847194722862 +688000 ekin = 3.6548808547633 | erot = 3.04382149752739 | epot = -12.3271742986283 | etot = -5.62847194633765 +689000 ekin = 3.57606770161188 | erot = 3.03834252490863 | epot = -12.2428821721519 | etot = -5.62847194563136 +690000 ekin = 3.51634425581226 | erot = 3.04775260785467 | epot = -12.1925688087854 | etot = -5.62847194511852 +691000 ekin = 3.47971445769588 | erot = 3.07622358472064 | epot = -12.1844099872813 | etot = -5.62847194486478 +692000 ekin = 3.46765181287758 | erot = 3.12642449714008 | epot = -12.2225482549492 | etot = -5.62847194493155 +693000 ekin = 3.47854301587009 | erot = 3.19918358098635 | epot = -12.3061985421888 | etot = -5.62847194533241 +694000 ekin = 3.50760869836038 | erot = 3.29340441047934 | epot = -12.4294850548493 | etot = -5.62847194600957 +695000 ekin = 3.54747029199626 | erot = 3.40637947909001 | epot = -12.5823217179315 | etot = -5.62847194684524 +696000 ekin = 3.58927155200529 | erot = 3.53441505490595 | epot = -12.7521585546129 | etot = -5.6284719477017 +697000 ekin = 3.62399868557745 | erot = 3.67347767301628 | epot = -12.9259483070505 | etot = -5.62847194845679 +698000 ekin = 3.64429609790095 | erot = 3.81929275594453 | epot = -13.0920608029479 | etot = -5.62847194910241 +699000 ekin = 3.64411727683406 | erot = 3.96826912288242 | epot = -13.2408583492345 | etot = -5.62847194951805 +700000 ekin = 3.61972386507404 | erot = 4.11779628913867 | epot = -13.3659921038979 | etot = -5.62847194968518 +701000 ekin = 3.57045543159744 | erot = 4.26605645121247 | epot = -13.4649838325435 | etot = -5.62847194973359 +702000 ekin = 3.49917622974374 | erot = 4.4103702949508 | epot = -13.5380184743033 | etot = -5.62847194960877 +703000 ekin = 3.41079978170358 | erot = 4.54773448474831 | epot = -13.5870062158287 | etot = -5.62847194937682 +704000 ekin = 3.31149657270676 | erot = 4.6756046408261 | epot = -13.6155731626141 | etot = -5.62847194908128 +705000 ekin = 3.20807903060945 | erot = 4.79162132878981 | epot = -13.628172308179 | etot = -5.62847194877975 +706000 ekin = 3.10702043908999 | erot = 4.89365607492231 | epot = -13.6291484625546 | etot = -5.62847194854233 +707000 ekin = 3.01353531422026 | erot = 4.97967086403023 | epot = -13.6216781266884 | etot = -5.62847194843788 +708000 ekin = 2.93091332956849 | erot = 5.04739802040307 | epot = -13.6067832984855 | etot = -5.62847194851397 +709000 ekin = 2.86026033884964 | erot = 5.09399325374139 | epot = -13.5827255413625 | etot = -5.62847194877149 +710000 ekin = 2.80069789546349 | erot = 5.11589857272134 | epot = -13.5450684173414 | etot = -5.62847194915653 +711000 ekin = 2.74994326412216 | erot = 5.10911210204212 | epot = -13.4875273157305 | etot = -5.62847194956624 +712000 ekin = 2.7050985703084 | erot = 5.06990681725726 | epot = -13.403477337442 | etot = -5.62847194987633 +713000 ekin = 2.66343594245662 | erot = 4.9958228255835 | epot = -13.2877307180213 | etot = -5.62847194998114 +714000 ekin = 2.62297982869924 | erot = 4.8865841179905 | epot = -13.1380358965202 | etot = -5.62847194983045 +715000 ekin = 2.58275404761751 | erot = 4.74456650492436 | epot = -12.9557925019884 | etot = -5.62847194944654 +716000 ekin = 2.5426793398065 | erot = 4.57461726448396 | epot = -12.7457685531992 | etot = -5.62847194890871 +717000 ekin = 2.50334692016308 | erot = 4.38348005438083 | epot = -12.5152989225401 | etot = -5.62847194799621 +718000 ekin = 2.4686718204679 | erot = 4.18280619282889 | epot = -12.2799499610364 | etot = -5.62847194773966 +719000 ekin = 2.44027484657121 | erot = 3.97913844266094 | epot = -12.047885236721 | etot = -5.62847194748881 +720000 ekin = 2.41790751023352 | erot = 3.77617089290506 | epot = -11.8225503503867 | etot = -5.62847194724809 +721000 ekin = 2.40130900313552 | erot = 3.57751641362776 | epot = -11.6072973637835 | etot = -5.62847194702017 +722000 ekin = 2.39001969432109 | erot = 3.38620933336079 | epot = -11.4047009746952 | etot = -5.62847194701334 +723000 ekin = 2.3828880820704 | erot = 3.20447847597663 | epot = -11.215838504763 | etot = -5.62847194671593 +724000 ekin = 2.38038137247374 | erot = 3.03585463087247 | epot = -11.0447079497915 | etot = -5.62847194644529 +725000 ekin = 2.38334904374461 | erot = 2.88343528873249 | epot = -10.8952562786821 | etot = -5.62847194620497 +726000 ekin = 2.39277988809285 | erot = 2.74974572525579 | epot = -10.7709975593489 | etot = -5.62847194600029 +727000 ekin = 2.40968215734596 | erot = 2.63676770304837 | epot = -10.6749218062317 | etot = -5.6284719458374 +728000 ekin = 2.42515138001133 | erot = 2.54412147904229 | epot = -10.5977448184035 | etot = -5.62847195934989 +729000 ekin = 2.40297855341014 | erot = 2.51475999942454 | epot = -10.5462104922609 | etot = -5.62847193942621 +730000 ekin = 2.46310039281923 | erot = 2.5408883826841 | epot = -10.6324607144775 | etot = -5.62847193897412 +731000 ekin = 2.53308642093335 | erot = 2.54954386945207 | epot = -10.7111022294503 | etot = -5.62847193906488 +732000 ekin = 2.61398262091125 | erot = 2.58024874604495 | epot = -10.8227033062294 | etot = -5.62847193927323 +733000 ekin = 2.70404858445246 | erot = 2.63167940200761 | epot = -10.9641999261022 | etot = -5.62847193964217 +734000 ekin = 2.8005195006671 | erot = 2.70132929845247 | epot = -11.1303207393381 | etot = -5.6284719402185 +735000 ekin = 2.89941283718647 | erot = 2.78510796768852 | epot = -11.3129927459065 | etot = -5.62847194103148 +736000 ekin = 2.99560133061641 | erot = 2.87741009023027 | epot = -11.5014833619395 | etot = -5.6284719410928 +737000 ekin = 3.08481605487795 | erot = 2.97524489367303 | epot = -11.6885328905302 | etot = -5.62847194197919 +738000 ekin = 3.16217862823363 | erot = 3.07317374877312 | epot = -11.8638243198038 | etot = -5.62847194279704 +739000 ekin = 3.22336037224067 | erot = 3.16493875129828 | epot = -12.0167710668836 | etot = -5.62847194334467 +740000 ekin = 3.26585131631857 | erot = 3.24522139638509 | epot = -12.1395446571316 | etot = -5.62847194442793 +741000 ekin = 3.28375382521718 | erot = 3.29991441197048 | epot = -12.2121401816134 | etot = -5.62847194442576 +742000 ekin = 3.27631313169807 | erot = 3.32408611724281 | epot = -12.2288711928783 | etot = -5.62847194393738 +743000 ekin = 3.24737724828938 | erot = 3.32046927292841 | epot = -12.1963184644142 | etot = -5.62847194319645 +744000 ekin = 3.20210603641817 | erot = 3.29401551212441 | epot = -12.1245934909575 | etot = -5.62847194241491 +745000 ekin = 3.14567705928071 | erot = 3.25033567037431 | epot = -12.0244846713649 | etot = -5.62847194170993 +746000 ekin = 3.08279906313083 | erot = 3.19521988723091 | epot = -11.9064908912242 | etot = -5.62847194086242 +747000 ekin = 3.01768881776059 | erot = 3.13473855348665 | epot = -11.7808993116274 | etot = -5.62847194038016 +748000 ekin = 2.95302867468964 | erot = 3.07321432178736 | epot = -11.65471493642 | etot = -5.62847193994298 +749000 ekin = 2.89104396170422 | erot = 3.01469856730411 | epot = -11.5342144685365 | etot = -5.62847193952822 +750000 ekin = 2.8337941745466 | erot = 2.96315742678199 | epot = -11.4254235404597 | etot = -5.62847193913107 +751000 ekin = 2.78329891305071 | erot = 2.9224177747446 | epot = -11.3341886265558 | etot = -5.62847193876044 +752000 ekin = 2.741568463393 | erot = 2.89600799339186 | epot = -11.2660483952193 | etot = -5.62847193843442 +753000 ekin = 2.71056677649853 | erot = 2.88693753466555 | epot = -11.2259762493407 | etot = -5.62847193817665 +754000 ekin = 2.69212502670267 | erot = 2.89743125968375 | epot = -11.218028224405 | etot = -5.62847193801856 +755000 ekin = 2.68776538370963 | erot = 2.92849871107142 | epot = -11.2447360328523 | etot = -5.62847193807124 +756000 ekin = 2.69845743039874 | erot = 2.97938409378287 | epot = -11.3063134624135 | etot = -5.6284719382319 +757000 ekin = 2.72458496416934 | erot = 3.04788425638831 | epot = -11.4009411591918 | etot = -5.62847193863418 +758000 ekin = 2.76540921280869 | erot = 3.12962823296902 | epot = -11.5235093850925 | etot = -5.62847193931481 +759000 ekin = 2.8186834205833 | erot = 3.21794575409103 | epot = -11.6651011149324 | etot = -5.62847194025804 +760000 ekin = 2.8805374646865 | erot = 3.30429272415793 | epot = -11.8133021301886 | etot = -5.62847194134417 +761000 ekin = 2.94600007659666 | erot = 3.37947250569254 | epot = -11.9539445246123 | etot = -5.62847194232311 +762000 ekin = 3.01037281067103 | erot = 3.43568700397793 | epot = -12.0745317575364 | etot = -5.62847194288743 +763000 ekin = 3.07103775515989 | erot = 3.46881600104856 | epot = -12.1683256990494 | etot = -5.62847194284092 +764000 ekin = 3.12866395059387 | erot = 3.47975039732283 | epot = -12.2368862901505 | etot = -5.62847194223379 +765000 ekin = 3.18696433111039 | erot = 3.47390232202085 | epot = -12.2893385944614 | etot = -5.62847194133016 +766000 ekin = 3.25112146440173 | erot = 3.45917589119073 | epot = -12.3387692960395 | etot = -5.62847194044708 +767000 ekin = 3.32577328193089 | erot = 3.44357056068677 | epot = -12.3978157824358 | etot = -5.62847193981815 +768000 ekin = 3.41341833371836 | erot = 3.43342634992446 | epot = -12.4753166231942 | etot = -5.62847193955134 +769000 ekin = 3.51361597939465 | erot = 3.43258837748851 | epot = -12.5746762965394 | etot = -5.62847193965622 +770000 ekin = 3.62296220600081 | erot = 3.44225950977127 | epot = -12.6936936558521 | etot = -5.62847194008001 +771000 ekin = 3.67754209852463 | erot = 3.42051682733498 | epot = -12.7265308936653 | etot = -5.62847196780573 +772000 ekin = 3.59351734061991 | erot = 3.35849685513247 | epot = -12.580486129291 | etot = -5.62847193353866 +773000 ekin = 3.58504863477517 | erot = 3.48413941982102 | epot = -12.6976599878645 | etot = -5.62847193326836 +774000 ekin = 3.69556246711488 | erot = 3.75600381605852 | epot = -13.0800382519706 | etot = -5.62847196879722 +775000 ekin = 3.75799647040695 | erot = 3.87395641028272 | epot = -13.2604248532319 | etot = -5.6284719725422 +776000 ekin = 3.7651493106552 | erot = 3.89275295626045 | epot = -13.2863742396306 | etot = -5.62847197271492 +777000 ekin = 3.74852837996943 | erot = 3.88975944412788 | epot = -13.2667597964422 | etot = -5.62847197234492 +778000 ekin = 3.71300754083808 | erot = 3.86527182205757 | epot = -13.2067513345255 | etot = -5.62847197162988 +779000 ekin = 3.66665793138621 | erot = 3.82295167572417 | epot = -13.1180815776383 | etot = -5.62847197052793 +780000 ekin = 3.61972773205039 | erot = 3.76957330513283 | epot = -13.0177730064674 | etot = -5.62847196928414 +781000 ekin = 3.58276242580336 | erot = 3.71368279695867 | epot = -12.9249171909595 | etot = -5.6284719681975 +782000 ekin = 3.56434384335661 | erot = 3.66344621629536 | epot = -12.8562620271603 | etot = -5.62847196750834 +783000 ekin = 3.56907083418469 | erot = 3.62459601370177 | epot = -12.8221388153382 | etot = -5.62847196745174 +784000 ekin = 3.59655578207864 | erot = 3.59908724254982 | epot = -12.8241149924364 | etot = -5.6284719678079 +785000 ekin = 3.64263842905025 | erot = 3.58559579665692 | epot = -12.8567061941961 | etot = -5.62847196848889 +786000 ekin = 3.70061363584185 | erot = 3.5803271427736 | epot = -12.9094127478978 | etot = -5.62847196928234 +787000 ekin = 3.7629028954063 | erot = 3.57827846475705 | epot = -12.9696533302076 | etot = -5.6284719700443 +788000 ekin = 3.82230691252267 | erot = 3.57432079320563 | epot = -13.0250996764001 | etot = -5.62847197067175 +789000 ekin = 3.87288356008586 | erot = 3.56402750500699 | epot = -13.0653830361963 | etot = -5.62847197110343 +790000 ekin = 3.91054381119323 | erot = 3.54422213321065 | epot = -13.0832379156691 | etot = -5.62847197126525 +791000 ekin = 3.93344679994591 | erot = 3.51333982549555 | epot = -13.0752585966227 | etot = -5.62847197118128 +792000 ekin = 3.94193166989336 | erot = 3.47142235448868 | epot = -13.0418259952844 | etot = -5.62847197090236 +793000 ekin = 3.93805337474175 | erot = 3.41982689816554 | epot = -12.9863522434094 | etot = -5.62847197050213 +794000 ekin = 3.92496167512552 | erot = 3.36081973449906 | epot = -12.9142533796758 | etot = -5.62847197005125 +795000 ekin = 3.90631843210397 | erot = 3.29713731804311 | epot = -12.8319277197525 | etot = -5.62847196960539 +796000 ekin = 3.88587920101549 | erot = 3.23158100779698 | epot = -12.7459321780137 | etot = -5.62847196920121 +797000 ekin = 3.86724402833238 | erot = 3.1666803762435 | epot = -12.6623963734357 | etot = -5.62847196885983 +798000 ekin = 3.85371944463732 | erot = 3.1044622070207 | epot = -12.5866536202458 | etot = -5.62847196858778 +799000 ekin = 3.84821326134452 | erot = 3.0463740685037 | epot = -12.5230592982317 | etot = -5.62847196838352 +800000 ekin = 3.85308746123986 | erot = 2.99338091108245 | epot = -12.4749403405621 | etot = -5.62847196823983 +801000 ekin = 3.86994742123277 | erot = 2.94620265037627 | epot = -12.44462203976 | etot = -5.62847196815095 +802000 ekin = 3.89938743558651 | erot = 2.90559564193987 | epot = -12.4334550456423 | etot = -5.62847196811593 +803000 ekin = 3.94077451984869 | erot = 2.87255363133981 | epot = -12.4418001193271 | etot = -5.62847196813862 +804000 ekin = 3.99217445544446 | erot = 2.84833794120658 | epot = -12.4689843648722 | etot = -5.62847196822119 +805000 ekin = 4.0504882902739 | erot = 2.83432176416712 | epot = -12.513282022804 | etot = -5.628471968363 +806000 ekin = 4.11178329751802 | erot = 2.83170980297367 | epot = -12.5719650690503 | etot = -5.6284719685586 +807000 ekin = 4.17172086392056 | erot = 2.84122318400431 | epot = -12.641416016727 | etot = -5.62847196880214 +808000 ekin = 4.22595471217704 | erot = 2.86283161226543 | epot = -12.7172582935313 | etot = -5.62847196908883 +809000 ekin = 4.27041103460948 | erot = 2.89559061356835 | epot = -12.7944736175914 | etot = -5.62847196941361 +810000 ekin = 4.3014357915985 | erot = 2.93761851633603 | epot = -12.8675262777001 | etot = -5.62847196976555 +811000 ekin = 4.31585912495264 | erot = 2.98622782351587 | epot = -12.9305589185916 | etot = -5.6284719701231 +812000 ekin = 4.31104963141284 | erot = 3.03819974711332 | epot = -12.9777213489804 | etot = -5.62847197045424 +813000 ekin = 4.28501152869628 | erot = 3.09015837057483 | epot = -13.0036418699911 | etot = -5.62847197071994 +814000 ekin = 4.23653530272657 | erot = 3.13897206713297 | epot = -13.0039793407427 | etot = -5.62847197088318 +815000 ekin = 4.16537042791397 | erot = 3.18209773828538 | epot = -12.9759401371178 | etot = -5.62847197091842 +816000 ekin = 4.0723651750119 | erot = 3.21779646402385 | epot = -12.9186336098534 | etot = -5.62847197081764 +817000 ekin = 3.95951977467803 | erot = 3.2451838025511 | epot = -12.8331755478221 | etot = -5.62847197059292 +818000 ekin = 3.82991762721696 | erot = 3.26412066867229 | epot = -12.7225102661653 | etot = -5.62847197027605 +819000 ekin = 3.687533567486 | erot = 3.27498902901603 | epot = -12.5909945664016 | etot = -5.62847196989961 +820000 ekin = 3.5369910682491 | erot = 3.27842149088493 | epot = -12.4438845286404 | etot = -5.62847196950641 +821000 ekin = 3.3832361389577 | erot = 3.27505502168988 | epot = -12.2867631297766 | etot = -5.62847196912897 +822000 ekin = 3.23123737473759 | erot = 3.26537695363164 | epot = -12.1250862971552 | etot = -5.62847196878592 +823000 ekin = 3.0857411631345 | erot = 3.24970236680904 | epot = -11.9639154984254 | etot = -5.62847196848185 +824000 ekin = 2.9510991987633 | erot = 3.22828590291375 | epot = -11.8078570698846 | etot = -5.62847196820759 +825000 ekin = 2.83117167310576 | erot = 3.20152981109227 | epot = -11.6611734521472 | etot = -5.62847196794913 +826000 ekin = 2.7292944893361 | erot = 3.17021233047786 | epot = -11.5279787875067 | etot = -5.62847196769275 +827000 ekin = 2.64828540291044 | erot = 3.13564460973056 | epot = -11.4124019800765 | etot = -5.62847196743546 +828000 ekin = 2.59045268672873 | erot = 3.0996802790463 | epot = -11.3186049329633 | etot = -5.62847196718826 +829000 ekin = 2.55756748880607 | erot = 3.06454892074378 | epot = -11.2505883765264 | etot = -5.62847196697658 +830000 ekin = 2.55077388252505 | erot = 3.03254604901289 | epot = -11.2117918983721 | etot = -5.62847196683417 +831000 ekin = 2.57043725889653 | erot = 3.0056609749316 | epot = -11.2045702006219 | etot = -5.62847196679376 +832000 ekin = 2.61596870917374 | erot = 2.98524787975124 | epot = -11.2296885558022 | etot = -5.62847196687719 +833000 ekin = 2.68568117628702 | erot = 2.97182255716636 | epot = -11.2859757005432 | etot = -5.62847196708978 +834000 ekin = 2.77673677891606 | erot = 2.96502424351085 | epot = -11.370232989845 | etot = -5.62847196741807 +835000 ekin = 2.88522064072264 | erot = 2.96372965232095 | epot = -11.477422260878 | etot = -5.62847196783445 +836000 ekin = 3.00633984363646 | erot = 2.9662686057928 | epot = -11.6010804177332 | etot = -5.62847196830389 +837000 ekin = 3.13471078705654 | erot = 2.9706713329556 | epot = -11.7338540888042 | etot = -5.6284719687921 +838000 ekin = 3.26467976824324 | erot = 2.97489019137264 | epot = -11.8680419288866 | etot = -5.62847196927074 +839000 ekin = 3.39062361970843 | erot = 2.97696578941869 | epot = -11.9960613788464 | etot = -5.62847196971931 +840000 ekin = 3.50719614041285 | erot = 2.97513773521714 | epot = -12.1108058457538 | etot = -5.62847197012383 +841000 ekin = 3.6095143027186 | erot = 2.96792302707412 | epot = -12.205909300265 | etot = -5.62847197047228 +842000 ekin = 3.69330308228449 | erot = 2.95419217547664 | epot = -12.2759672285131 | etot = -5.62847197075196 +843000 ekin = 3.75502927937468 | erot = 2.93326273057532 | epot = -12.3167639808958 | etot = -5.62847197094577 +844000 ekin = 3.79205095648075 | erot = 2.90501003368086 | epot = -12.3255329611959 | etot = -5.62847197103429 +845000 ekin = 3.8027882689469 | erot = 2.8699770841502 | epot = -12.3012373240957 | etot = -5.62847197099859 +846000 ekin = 3.78689078296352 | erot = 2.82944607252066 | epot = -12.2448088263123 | etot = -5.62847197082816 +847000 ekin = 3.74534923703212 | erot = 2.78543388012331 | epot = -12.1592550876821 | etot = -5.62847197052666 +848000 ekin = 3.68048960874458 | erot = 2.74058491245749 | epot = -12.0495464913185 | etot = -5.62847197011638 +849000 ekin = 3.59580402255087 | erot = 2.69795473495838 | epot = -11.9222307271489 | etot = -5.62847196963968 +850000 ekin = 3.49561211002082 | erot = 2.660698263175 | epot = -11.7847823423459 | etot = -5.62847196915008 +851000 ekin = 3.38460421171663 | erot = 2.63169879010079 | epot = -11.6447749705228 | etot = -5.62847196870538 +852000 ekin = 3.26735834636956 | erot = 2.61319105498462 | epot = -11.5090213697088 | etot = -5.62847196835459 +853000 ekin = 3.14792970844458 | erot = 2.60644045977848 | epot = -11.3828421363496 | etot = -5.62847196812652 +854000 ekin = 3.02961721509545 | erot = 2.61155167727597 | epot = -11.2696408603924 | etot = -5.62847196802096 +855000 ekin = 2.91497870669537 | erot = 2.62749311915792 | epot = -11.1709437938701 | etot = -5.6284719680168 +856000 ekin = 2.80592683673044 | erot = 2.65229723530302 | epot = -11.0866960401081 | etot = -5.62847196807466 +857000 ekin = 2.703943231405 | erot = 2.68342637135654 | epot = -11.0158415709137 | etot = -5.62847196815217 +858000 ekin = 2.61028085054562 | erot = 2.71820874454616 | epot = -10.9569615633078 | etot = -5.62847196821602 +859000 ekin = 2.52608469719978 | erot = 2.754234598628 | epot = -10.9087912640763 | etot = -5.62847196824853 +860000 ekin = 2.45241725372545 | erot = 2.78962480113721 | epot = -10.8705140231101 | etot = -5.6284719682474 +861000 ekin = 2.39021948360179 | erot = 2.82313150333694 | epot = -10.8418229551612 | etot = -5.62847196822247 +862000 ekin = 2.34025129588246 | erot = 2.85407946372215 | epot = -10.8228027277946 | etot = -5.62847196819004 +863000 ekin = 2.30304188879519 | erot = 2.88219277624658 | epot = -10.8137066332093 | etot = -5.62847196816755 +864000 ekin = 2.27886006118591 | erot = 2.90737073863019 | epot = -10.8147027679861 | etot = -5.62847196817005 +865000 ekin = 2.26770197293632 | erot = 2.92947677463961 | epot = -10.8256507157835 | etot = -5.62847196820762 +866000 ekin = 2.26929189352837 | erot = 2.94819404235521 | epot = -10.8459579041654 | etot = -5.62847196828177 +867000 ekin = 2.28309242287195 | erot = 2.96298089303998 | epot = -10.8745452842981 | etot = -5.62847196838621 +868000 ekin = 2.30832281778756 | erot = 2.97313399092797 | epot = -10.9099287772236 | etot = -5.62847196850803 +869000 ekin = 2.34398135241071 | erot = 2.97793980535769 | epot = -10.9503931263996 | etot = -5.62847196863116 +870000 ekin = 2.38886744836853 | erot = 2.97686809825971 | epot = -10.9942075153696 | etot = -5.62847196874141 +871000 ekin = 2.44159861884558 | erot = 2.9697417543727 | epot = -11.0398123420501 | etot = -5.62847196883177 +872000 ekin = 2.5006196168482 | erot = 2.95681803718454 | epot = -11.0859096229375 | etot = -5.62847196890477 +873000 ekin = 2.56420808222993 | erot = 2.9387461409749 | epot = -11.1314261921749 | etot = -5.62847196897009 +874000 ekin = 2.63049127112492 | erot = 2.9164190583251 | epot = -11.1753822984876 | etot = -5.62847196903761 +875000 ekin = 2.69749664540251 | erot = 2.8907906907097 | epot = -11.216759305222 | etot = -5.62847196910977 +876000 ekin = 2.76325740973805 | erot = 2.86275138640014 | epot = -11.2544807653133 | etot = -5.62847196917512 +877000 ekin = 2.82597857166378 | erot = 2.83312911709584 | epot = -11.2875796579688 | etot = -5.62847196920921 +878000 ekin = 2.88426506134625 | erot = 2.8028296012945 | epot = -11.3155666317744 | etot = -5.62847196913367 +879000 ekin = 2.93899285599508 | erot = 2.77402557800297 | epot = -11.3414904029069 | etot = -5.62847196890886 +880000 ekin = 2.9907442958877 | erot = 2.74904466450902 | epot = -11.368260929336 | etot = -5.6284719689393 +881000 ekin = 3.03734869075307 | erot = 2.72816458142423 | epot = -11.3939852409551 | etot = -5.62847196877785 +882000 ekin = 3.07935286425336 | erot = 2.71303253571348 | epot = -11.420857368578 | etot = -5.62847196861113 +883000 ekin = 3.11756797182064 | erot = 2.7051773190194 | epot = -11.4512172593177 | etot = -5.62847196847765 +884000 ekin = 3.15280252947099 | erot = 2.70569769661966 | epot = -11.4869721944935 | etot = -5.62847196840282 +885000 ekin = 3.18571613305558 | erot = 2.71504911595383 | epot = -11.5292372174093 | etot = -5.62847196839988 +886000 ekin = 3.21676773489322 | erot = 2.73290580106824 | epot = -11.5781455044355 | etot = -5.62847196847404 +887000 ekin = 3.24623562526992 | erot = 2.758066691363 | epot = -11.6327742852617 | etot = -5.62847196862876 +888000 ekin = 3.2742594211583 | erot = 2.78837179693705 | epot = -11.6911031869626 | etot = -5.62847196886727 +889000 ekin = 3.30086478990684 | erot = 2.8206406849913 | epot = -11.7499774440861 | etot = -5.62847196918797 +890000 ekin = 3.3259692497401 | erot = 2.85071439964589 | epot = -11.8051556189558 | etot = -5.62847196956976 +891000 ekin = 3.34941253341091 | erot = 2.87373382356758 | epot = -11.8516183269375 | etot = -5.62847196995899 +892000 ekin = 3.37107523663489 | erot = 2.88476437033503 | epot = -11.8843115772387 | etot = -5.62847197026882 +893000 ekin = 3.39111185206228 | erot = 2.87974242650533 | epot = -11.8993262489684 | etot = -5.62847197040083 +894000 ekin = 3.41023213017078 | erot = 2.8565082941896 | epot = -11.8952123946463 | etot = -5.6284719702859 +895000 ekin = 3.4298773096595 | erot = 2.81553499415925 | epot = -11.8738842737409 | etot = -5.6284719699221 +896000 ekin = 3.45214149069667 | erot = 2.7600121308389 | epot = -11.8406255909169 | etot = -5.62847196938128 +897000 ekin = 3.47941735704329 | erot = 2.6952146635652 | epot = -11.8031039893885 | etot = -5.62847196878006 +898000 ekin = 3.51352962135538 | erot = 2.62737086745297 | epot = -11.7693724702135 | etot = -5.62847198140512 +899000 ekin = 3.4889391156295 | erot = 2.56291214099395 | epot = -11.6803232260754 | etot = -5.62847196945197 +900000 ekin = 3.45535689424771 | erot = 2.5501598516678 | epot = -11.633988708263 | etot = -5.62847196234745 +901000 ekin = 3.50186288216171 | erot = 2.58894159291876 | epot = -11.7192764508551 | etot = -5.62847197577464 +902000 ekin = 3.56610213671591 | erot = 2.58196928732591 | epot = -11.7765433965905 | etot = -5.62847197254872 +903000 ekin = 3.6281487590088 | erot = 2.56232070445125 | epot = -11.8189414363827 | etot = -5.62847197292267 +904000 ekin = 3.69112394802224 | erot = 2.55247638510122 | epot = -11.872072306533 | etot = -5.62847197340955 +905000 ekin = 3.75091280522258 | erot = 2.54985569761219 | epot = -11.9292404767528 | etot = -5.62847197391804 +906000 ekin = 3.80322506696776 | erot = 2.55191272482583 | epot = -11.9836097661385 | etot = -5.62847197434491 +907000 ekin = 3.84434228912085 | erot = 2.55683360498905 | epot = -12.0296478687135 | etot = -5.62847197460356 +908000 ekin = 3.87190064221287 | erot = 2.56394104721686 | epot = -12.064313664082 | etot = -5.62847197465227 +909000 ekin = 3.88547927316326 | erot = 2.57365301108526 | epot = -12.0876042587557 | etot = -5.62847197450716 +910000 ekin = 3.88680450854636 | erot = 2.58702435686882 | epot = -12.1023008396463 | etot = -5.62847197423115 +911000 ekin = 3.87951720170576 | erot = 2.60508796278979 | epot = -12.1130771384011 | etot = -5.62847197390549 +912000 ekin = 3.868592335706 | erot = 2.62827701350561 | epot = -12.1253413228164 | etot = -5.62847197360479 +913000 ekin = 3.85955913201886 | erot = 2.65612234920028 | epot = -12.1441534546053 | etot = -5.62847197338611 +914000 ekin = 3.85765974257593 | erot = 2.68725904764579 | epot = -12.173390762903 | etot = -5.62847197268133 +915000 ekin = 3.86988559037046 | erot = 2.72155495965703 | epot = -12.2199125228843 | etot = -5.62847197285679 +916000 ekin = 3.89721211274706 | erot = 2.75899199765551 | epot = -12.2846760836652 | etot = -5.62847197326266 +917000 ekin = 3.93597306522694 | erot = 2.79756616674688 | epot = -12.3620112056762 | etot = -5.62847197370238 +918000 ekin = 3.98211349921921 | erot = 2.83523643983055 | epot = -12.4458219131976 | etot = -5.62847197414785 +919000 ekin = 4.03109884668079 | erot = 2.86939983290182 | epot = -12.5289706551609 | etot = -5.62847197557833 +920000 ekin = 4.07575007330476 | erot = 2.89203459399706 | epot = -12.596256643198 | etot = -5.62847197589616 +921000 ekin = 4.11121320741237 | erot = 2.89963706006279 | epot = -12.6393222441106 | etot = -5.62847197663542 +922000 ekin = 4.12946329710173 | erot = 2.8910149144705 | epot = -12.6489501884791 | etot = -5.6284719769069 +923000 ekin = 4.12574552179452 | erot = 2.86656720117553 | epot = -12.6207846998621 | etot = -5.62847197689209 +924000 ekin = 4.09806256168754 | erot = 2.82817436967983 | epot = -12.5547089079965 | etot = -5.62847197662916 +925000 ekin = 4.04683813422561 | erot = 2.77889165963382 | epot = -12.4542017700762 | etot = -5.62847197621676 +926000 ekin = 3.97415981056844 | erot = 2.72240485359097 | epot = -12.3250366399212 | etot = -5.62847197576179 +927000 ekin = 3.88290109696565 | erot = 2.6624723921107 | epot = -12.173845464402 | etot = -5.62847197532566 +928000 ekin = 3.77619172594752 | erot = 2.60258196870239 | epot = -12.0072456695555 | etot = -5.62847197490555 +929000 ekin = 3.65741733873877 | erot = 2.54590495895918 | epot = -11.8317942721553 | etot = -5.62847197445737 +930000 ekin = 3.53056331260239 | erot = 2.49545263068043 | epot = -11.6544879172217 | etot = -5.62847197393891 +931000 ekin = 3.40054525763448 | erot = 2.45429284513148 | epot = -11.4833100757944 | etot = -5.62847197302846 +932000 ekin = 3.27351307152582 | erot = 2.42812142558973 | epot = -11.3301064697454 | etot = -5.62847197262981 +933000 ekin = 3.1547941266228 | erot = 2.42017428531859 | epot = -11.2034403841693 | etot = -5.62847197222788 +934000 ekin = 3.04934557068947 | erot = 2.43124949633132 | epot = -11.1090670388962 | etot = -5.62847197187545 +935000 ekin = 2.96178382601915 | erot = 2.46165171489738 | epot = -11.0519075125338 | etot = -5.62847197161731 +936000 ekin = 2.89581269285815 | erot = 2.51113391183748 | epot = -11.0354185761747 | etot = -5.62847197147905 +937000 ekin = 2.85385879438853 | erot = 2.57889786087473 | epot = -11.0612286267285 | etot = -5.62847197146526 +938000 ekin = 2.83694342952909 | erot = 2.66364816258385 | epot = -11.1290635636777 | etot = -5.62847197156476 +939000 ekin = 2.84476696228394 | erot = 2.76369076809427 | epot = -11.2369297021307 | etot = -5.62847197175248 +940000 ekin = 2.87595320499146 | erot = 2.87707538000882 | epot = -11.3815005569944 | etot = -5.62847197199412 +941000 ekin = 2.92838858204786 | erot = 3.0017815987521 | epot = -11.5586421530512 | etot = -5.62847197225125 +942000 ekin = 2.99958691563851 | erot = 3.13593595651889 | epot = -11.7639948446456 | etot = -5.62847197248821 +943000 ekin = 3.08701486180388 | erot = 3.27802584214522 | epot = -11.9935126766285 | etot = -5.6284719726794 +944000 ekin = 3.18658687306184 | erot = 3.42629435889835 | epot = -12.2413532058483 | etot = -5.62847197388816 +945000 ekin = 3.29120912256844 | erot = 3.57701253555209 | epot = -12.4966936325289 | etot = -5.62847197440832 +946000 ekin = 3.39621217516328 | erot = 3.72637389468479 | epot = -12.7510580448496 | etot = -5.62847197500155 +947000 ekin = 3.49687303191433 | erot = 3.86977321215332 | epot = -12.9951182197596 | etot = -5.62847197569197 +948000 ekin = 3.58827211298237 | erot = 4.00151346909816 | epot = -13.218257558562 | etot = -5.62847197648142 +949000 ekin = 3.66536645499313 | erot = 4.1147510611234 | epot = -13.4085894934499 | etot = -5.62847197733334 +950000 ekin = 3.72323941968076 | erot = 4.20180191728634 | epot = -13.5535133151338 | etot = -5.62847197816666 +951000 ekin = 3.75754185590692 | erot = 4.25489778144033 | epot = -13.640911616207 | etot = -5.62847197885974 +952000 ekin = 3.76507381529323 | erot = 4.26734583439933 | epot = -13.6608916289676 | etot = -5.62847197927499 +953000 ekin = 3.74438822193795 | erot = 4.23487585238769 | epot = -13.6077360536211 | etot = -5.62847197929546 +954000 ekin = 3.69625242722009 | erot = 4.15681815053726 | epot = -13.4815425566211 | etot = -5.62847197886375 +955000 ekin = 3.62380419976425 | erot = 4.0367317136519 | epot = -13.2890078914231 | etot = -5.6284719780069 +956000 ekin = 3.52555336266068 | erot = 3.88073804767679 | epot = -13.0347633899736 | etot = -5.62847197963612 +957000 ekin = 3.39894638487826 | erot = 3.70474137393303 | epot = -12.7321597333898 | etot = -5.62847197457856 +958000 ekin = 3.27782879007273 | erot = 3.53760737143124 | epot = -12.4439081344594 | etot = -5.62847197295542 +959000 ekin = 3.1783502835544 | erot = 3.38602207592145 | epot = -12.1928443342853 | etot = -5.62847197480943 +960000 ekin = 3.09019087590765 | erot = 3.23509493268237 | epot = -11.9537577850406 | etot = -5.62847197645055 +961000 ekin = 3.00426258992433 | erot = 3.0824813330516 | epot = -11.7152158985205 | etot = -5.62847197554455 +962000 ekin = 2.92693479637486 | erot = 2.94805480632257 | epot = -11.5034615780285 | etot = -5.6284719753311 +963000 ekin = 2.85972055351158 | erot = 2.83488454341514 | epot = -11.3230770719522 | etot = -5.62847197502553 +964000 ekin = 2.80427359226685 | erot = 2.74583972995613 | epot = -11.1785852970698 | etot = -5.62847197484687 +965000 ekin = 2.76170821849677 | erot = 2.68249826029499 | epot = -11.0726784535849 | etot = -5.62847197479316 +966000 ekin = 2.73254763760849 | erot = 2.64503832947664 | epot = -11.0060579419568 | etot = -5.62847197487166 +967000 ekin = 2.71665522017441 | erot = 2.63218922342262 | epot = -10.9773164186843 | etot = -5.62847197508732 +968000 ekin = 2.71315992420235 | erot = 2.64124364193297 | epot = -10.9828755415621 | etot = -5.62847197542673 +969000 ekin = 2.72046614638018 | erot = 2.66825860669117 | epot = -11.0171967289234 | etot = -5.62847197585206 +970000 ekin = 2.73639579035357 | erot = 2.70848274170002 | epot = -11.073350508363 | etot = -5.62847197630937 +971000 ekin = 2.75849383273491 | erot = 2.75695664231006 | epot = -11.1439224517037 | etot = -5.62847197665877 +972000 ekin = 2.78540546423872 | erot = 2.80984083790062 | epot = -11.2237182790709 | etot = -5.62847197693153 +973000 ekin = 2.81581409029779 | erot = 2.86412704793782 | epot = -11.3084131153518 | etot = -5.62847197711619 +974000 ekin = 2.84847995223966 | erot = 2.91762904313292 | epot = -11.394580972579 | etot = -5.62847197720637 +975000 ekin = 2.88260770883418 | erot = 2.9692077422299 | epot = -11.4802874282683 | etot = -5.62847197720426 +976000 ekin = 2.90702473613829 | erot = 3.01964919146321 | epot = -11.555145929188 | etot = -5.62847200158652 +977000 ekin = 2.82994036412631 | erot = 3.10467596021963 | epot = -11.5630883021957 | etot = -5.62847197784979 +978000 ekin = 2.82908362121548 | erot = 3.2254663925878 | epot = -11.6830220175211 | etot = -5.62847200371779 +979000 ekin = 2.83706100054281 | erot = 3.25481872941685 | epot = -11.7203517200298 | etot = -5.62847199007014 +980000 ekin = 2.83601345062761 | erot = 3.27042511438439 | epot = -11.7349105551174 | etot = -5.62847199010541 +981000 ekin = 2.82679467427683 | erot = 3.27908745939339 | epot = -11.7343541238172 | etot = -5.62847199014698 +982000 ekin = 2.80889456989795 | erot = 3.28090658202195 | epot = -11.7182731421114 | etot = -5.62847199019147 +983000 ekin = 2.78208898547456 | erot = 3.27578646990667 | epot = -11.6863474455989 | etot = -5.62847199021772 +984000 ekin = 2.74660136779493 | erot = 3.26353952214283 | epot = -11.6386128801286 | etot = -5.62847199019088 +985000 ekin = 2.70333214312677 | erot = 3.24411390807002 | epot = -11.5759180412707 | etot = -5.62847199007386 +986000 ekin = 2.65408912624307 | erot = 3.2178652626592 | epot = -11.5004263787422 | etot = -5.62847198983991 +987000 ekin = 2.57871632758182 | erot = 3.17247279232543 | epot = -11.3796611142273 | etot = -5.62847199432008 +988000 ekin = 2.53018925473336 | erot = 3.15315339683742 | epot = -11.3118146535091 | etot = -5.62847200193829 +989000 ekin = 2.49566277922967 | erot = 3.12952117136867 | epot = -11.2536559425352 | etot = -5.62847199193689 +990000 ekin = 2.46227182208794 | erot = 3.09741757527421 | epot = -11.1881613887439 | etot = -5.6284719913817 +991000 ekin = 2.44592298947839 | erot = 3.07158094759995 | epot = -11.1459759281972 | etot = -5.62847199111885 +992000 ekin = 2.45174281271621 | erot = 3.05611048227045 | epot = -11.1363252859054 | etot = -5.62847199091873 +993000 ekin = 2.48099671405936 | erot = 3.05281517933321 | epot = -11.1622838841579 | etot = -5.6284719907653 +994000 ekin = 2.53415669983384 | erot = 3.06359154200859 | epot = -11.2262202325221 | etot = -5.62847199067972 +995000 ekin = 2.61088853092033 | erot = 3.09015398394547 | epot = -11.3295145055374 | etot = -5.62847199067165 +996000 ekin = 2.7101181952278 | erot = 3.13378298566575 | epot = -11.4723731716367 | etot = -5.62847199074318 +997000 ekin = 2.83015603167808 | erot = 3.1951526760491 | epot = -11.6537806986213 | etot = -5.62847199089407 +998000 ekin = 2.96878571572636 | erot = 3.2742319127211 | epot = -11.8714896195807 | etot = -5.62847199113322 +999000 ekin = 3.12322522668413 | erot = 3.37022004661284 | epot = -12.1219172647843 | etot = -5.62847199148729 +1000000 ekin = 3.28990650620536 | erot = 3.48146010670929 | epot = -12.399838604914 | etot = -5.62847199199935 + 1000000 0.14621807 -0.83009398 0.055104069 -0.56937076 4.8223734e-05 64000 +Loop time of 19.3831 on 1 procs for 1000000 steps with 16 atoms + +Performance: 44574.879 tau/day, 51591.295 timesteps/s, 825.461 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 16.183 | 16.183 | 16.183 | 0.0 | 83.49 +Bond | 0.69138 | 0.69138 | 0.69138 | 0.0 | 3.57 +Neigh | 0.007921 | 0.007921 | 0.007921 | 0.0 | 0.04 +Comm | 0.27135 | 0.27135 | 0.27135 | 0.0 | 1.40 +Output | 0.17337 | 0.17337 | 0.17337 | 0.0 | 0.89 +Modify | 1.767 | 1.767 | 1.767 | 0.0 | 9.12 +Other | | 0.2889 | | | 1.49 + +Nlocal: 16 ave 16 max 16 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 106 ave 106 max 106 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 106 +Ave neighs/atom = 6.625 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:19 diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 new file mode 100644 index 0000000000..d957078bdc --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 @@ -0,0 +1,1121 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-20 -20 -20) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Reading oxdna potential (fene) file oxrna2.lj with DATE: 2024-04-19 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (stk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (hbond) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (xstk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (coaxstk) file oxrna2.lj with DATE: 2024-04-19 +Reading oxdna potential (dh) file oxrna2.lj with DATE: 2024-04-19 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 4.3014979 + ghost atom cutoff = 4.3014979 + binsize = 2.150749, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : lj + Current step : 0 + Time step : 1e-05 +WARNING: Communication cutoff adjusted to 4.301497916929199 (src/comm.cpp:739) +0 ekin = 2.70475393009871 | erot = 2.80172072918779 | epot = -11.1349465280232 | etot = -5.62847186873667 +Per MPI rank memory allocation (min/avg/max) = 7.577 | 7.606 | 7.69 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 0.12021129 -0.7299505 0.034016337 -0.52688704 5.1214421e-05 64000 +1000 ekin = 2.74425239815417 | erot = 2.79065458610893 | epot = -11.1633788526891 | etot = -5.62847186842597 +2000 ekin = 2.78841691867035 | erot = 2.77992540099535 | epot = -11.196814187725 | etot = -5.62847186805933 +3000 ekin = 2.83938215410022 | erot = 2.77185117591642 | epot = -11.2397051978034 | etot = -5.62847186778672 +4000 ekin = 2.89876217830263 | erot = 2.76816783884241 | epot = -11.295401884792 | etot = -5.62847186764698 +5000 ekin = 2.96742170720769 | erot = 2.76919345829435 | epot = -11.3650870331989 | etot = -5.62847186769689 +6000 ekin = 3.0456300737104 | erot = 2.77376672268248 | epot = -11.4478686641706 | etot = -5.62847186777773 +7000 ekin = 3.13407886898538 | erot = 2.78065913591457 | epot = -11.5432098726294 | etot = -5.62847186772942 +8000 ekin = 3.23400863287743 | erot = 2.78938863934858 | epot = -11.651869139893 | etot = -5.62847186766703 +9000 ekin = 3.34625998930258 | erot = 2.80019523753785 | epot = -11.7749270943235 | etot = -5.62847186748304 +10000 ekin = 3.47220350616334 | erot = 2.81464622815282 | epot = -11.9153216015116 | etot = -5.62847186719547 +11000 ekin = 3.61341090096018 | erot = 2.83541090219849 | epot = -12.0772936703879 | etot = -5.62847186722922 +12000 ekin = 3.76971728921063 | erot = 2.8651661044909 | epot = -12.26335526073 | etot = -5.62847186702843 +13000 ekin = 3.94105577714468 | erot = 2.90597306806356 | epot = -12.4755007121567 | etot = -5.62847186694845 +14000 ekin = 4.12730744896758 | erot = 2.95952862137381 | epot = -12.7153079373025 | etot = -5.62847186696111 +15000 ekin = 4.32776706381551 | erot = 3.02701108512252 | epot = -12.9832500158855 | etot = -5.62847186694746 +16000 ekin = 4.54139695680685 | erot = 3.10924468066178 | epot = -13.2791135046207 | etot = -5.62847186715204 +17000 ekin = 4.76575661763823 | erot = 3.20604355373091 | epot = -13.6002720389201 | etot = -5.62847186755099 +18000 ekin = 4.99700491214683 | erot = 3.31611869568265 | epot = -13.9415954758899 | etot = -5.62847186806046 +19000 ekin = 5.23048108112189 | erot = 3.43700077146758 | epot = -14.2959537213473 | etot = -5.62847186875783 +20000 ekin = 5.46074742513055 | erot = 3.56463156086399 | epot = -14.6538508556015 | etot = -5.62847186960696 +21000 ekin = 5.68087058007131 | erot = 3.69256776681709 | epot = -15.0019102179231 | etot = -5.62847187103471 +22000 ekin = 5.88327619983871 | erot = 3.81252322503548 | epot = -15.3242712967755 | etot = -5.62847187190132 +23000 ekin = 6.06249979951982 | erot = 3.91720950057661 | epot = -15.6081811728146 | etot = -5.6284718727182 +24000 ekin = 6.21449712377427 | erot = 4.00104081543169 | epot = -15.8440098121103 | etot = -5.62847187290435 +25000 ekin = 6.33853277809242 | erot = 4.06184542619867 | epot = -16.0288500769827 | etot = -5.62847187269159 +26000 ekin = 6.43627737186998 | erot = 4.10076278430829 | epot = -16.1655120283937 | etot = -5.62847187221544 +27000 ekin = 6.51092447972012 | erot = 4.12134483746795 | epot = -16.2607411888239 | etot = -5.62847187163586 +28000 ekin = 6.56622100976667 | erot = 4.12827111510804 | epot = -16.3229639959505 | etot = -5.62847187107576 +29000 ekin = 6.60587340002377 | erot = 4.12622173833889 | epot = -16.360567008949 | etot = -5.62847187058635 +30000 ekin = 6.63335580501812 | erot = 4.11921545444644 | epot = -16.3810431296792 | etot = -5.62847187021468 +31000 ekin = 6.65211888589255 | erot = 4.10999678317525 | epot = -16.3905875389832 | etot = -5.62847186991539 +32000 ekin = 6.66584763664858 | erot = 4.10024297795097 | epot = -16.3945624842072 | etot = -5.62847186960762 +33000 ekin = 6.67923227191015 | erot = 4.09129207413363 | epot = -16.398996215263 | etot = -5.62847186921926 +34000 ekin = 6.69756137216819 | erot = 4.08414768607663 | epot = -16.4101809271346 | etot = -5.62847186888976 +35000 ekin = 6.7258962831207 | erot = 4.07950228497947 | epot = -16.4338704366877 | etot = -5.62847186858755 +36000 ekin = 6.76908557113703 | erot = 4.07778615492108 | epot = -16.4753435944362 | etot = -5.6284718683781 +37000 ekin = 6.83097506213393 | erot = 4.07899014040663 | epot = -16.5384370708784 | etot = -5.62847186833782 +38000 ekin = 6.91354703253162 | erot = 4.08242106390416 | epot = -16.6244399649597 | etot = -5.62847186852396 +39000 ekin = 7.01626065739823 | erot = 4.08652171942784 | epot = -16.7312542457771 | etot = -5.62847186895107 +40000 ekin = 7.13573792258319 | erot = 4.08884404540002 | epot = -16.8530538375758 | etot = -5.62847186959262 +41000 ekin = 7.26614194134504 | erot = 4.08627042537764 | epot = -16.9808842370343 | etot = -5.62847187031164 +42000 ekin = 7.40051154120577 | erot = 4.07546023443099 | epot = -17.1044436466276 | etot = -5.62847187099086 +43000 ekin = 7.53157437143679 | erot = 4.05344655359637 | epot = -17.2134927965847 | etot = -5.6284718715515 +44000 ekin = 7.65268317567636 | erot = 4.01819177227231 | epot = -17.299346819823 | etot = -5.62847187187438 +45000 ekin = 7.75845343306881 | erot = 3.96898510895771 | epot = -17.3559104142061 | etot = -5.62847187217961 +46000 ekin = 7.84504377034637 | erot = 3.90454903064792 | epot = -17.3780646733313 | etot = -5.62847187233703 +47000 ekin = 7.9100239082063 | erot = 3.82478596555195 | epot = -17.3632817459104 | etot = -5.6284718721521 +48000 ekin = 7.95195705456511 | erot = 3.73154439390002 | epot = -17.3119733204125 | etot = -5.62847187194738 +49000 ekin = 7.97001825706878 | erot = 3.62752007295042 | epot = -17.2260102016183 | etot = -5.62847187159909 +50000 ekin = 7.96375756700447 | erot = 3.51726958365103 | epot = -17.109499021545 | etot = -5.62847187088952 +51000 ekin = 7.93280761300463 | erot = 3.4082718849783 | epot = -16.969551368803 | etot = -5.62847187082006 +52000 ekin = 7.8765681174422 | erot = 3.30207418532529 | epot = -16.8071141735586 | etot = -5.62847187079111 +53000 ekin = 7.7953101254194 | erot = 3.19839984815406 | epot = -16.6221818441148 | etot = -5.62847187054135 +54000 ekin = 7.68952609570371 | erot = 3.09980185481814 | epot = -16.4177998208248 | etot = -5.6284718703029 +55000 ekin = 7.55966222141136 | erot = 3.00897426989528 | epot = -16.1971083614502 | etot = -5.62847187014354 +56000 ekin = 7.40594124508042 | erot = 2.92802865182251 | epot = -15.9624417669776 | etot = -5.62847187007466 +57000 ekin = 7.22816598142032 | erot = 2.85836584281784 | epot = -15.7150036943484 | etot = -5.62847187011025 +58000 ekin = 7.02573051397646 | erot = 2.80066522322026 | epot = -15.4548676074198 | etot = -5.62847187022312 +59000 ekin = 6.80455077165157 | erot = 2.7565194471202 | epot = -15.1895420860968 | etot = -5.62847186732506 +60000 ekin = 6.57760251691547 | erot = 2.7273150167872 | epot = -14.9333893991696 | etot = -5.62847186546689 +61000 ekin = 5.9988405319016 | erot = 2.65010269791703 | epot = -14.2774150331164 | etot = -5.62847180329775 +62000 ekin = 5.82217958652129 | erot = 2.6505847819514 | epot = -14.1012361774593 | etot = -5.6284718089866 +63000 ekin = 6.00993174210264 | erot = 2.71143483466393 | epot = -14.3498384845184 | etot = -5.62847190775186 +64000 ekin = 5.85096985050382 | erot = 2.71173917624701 | epot = -14.1911809366074 | etot = -5.62847190985654 +65000 ekin = 5.6795980144275 | erot = 2.70731630130132 | epot = -14.0153862253962 | etot = -5.62847190966738 +66000 ekin = 5.49812382731721 | erot = 2.69646895132475 | epot = -13.8230646880629 | etot = -5.6284719094209 +67000 ekin = 5.31011188753164 | erot = 2.67901331172367 | epot = -13.617597108258 | etot = -5.62847190900273 +68000 ekin = 5.11964229582607 | erot = 2.6562219727338 | epot = -13.4043361770524 | etot = -5.62847190849251 +69000 ekin = 4.93067975207874 | erot = 2.63014135225669 | epot = -13.1892930124926 | etot = -5.62847190815713 +70000 ekin = 4.74697386617509 | erot = 2.6034731270628 | epot = -12.9789189008746 | etot = -5.62847190763674 +71000 ekin = 4.57222133259595 | erot = 2.57971589798904 | epot = -12.780409137744 | etot = -5.62847190715903 +72000 ekin = 4.40959648507812 | erot = 2.56228295922466 | epot = -12.6003513510612 | etot = -5.62847190675846 +73000 ekin = 4.26170009573938 | erot = 2.55406076080087 | epot = -12.4442327629946 | etot = -5.62847190645434 +74000 ekin = 4.13052949790856 | erot = 2.55713155841143 | epot = -12.3161329625864 | etot = -5.62847190626636 +75000 ekin = 4.0158819282893 | erot = 2.56608801434125 | epot = -12.2104419139906 | etot = -5.62847197136006 +76000 ekin = 3.95904625854645 | erot = 2.44184942386113 | epot = -12.0293675901706 | etot = -5.62847190776307 +77000 ekin = 4.02755960266396 | erot = 2.46007159499044 | epot = -12.1161031098039 | etot = -5.62847191214949 +78000 ekin = 3.98785439943849 | erot = 2.49596945534602 | epot = -12.1122957670966 | etot = -5.62847191231205 +79000 ekin = 3.96575767721464 | erot = 2.54200842335455 | epot = -12.1362380131154 | etot = -5.62847191254623 +80000 ekin = 3.95961954869592 | erot = 2.59604589435599 | epot = -12.184137355885 | etot = -5.62847191283309 +81000 ekin = 3.9673410003238 | erot = 2.65577062232356 | epot = -12.2515835357819 | etot = -5.62847191313457 +82000 ekin = 3.98651997822158 | erot = 2.71892569307088 | epot = -12.3339175847233 | etot = -5.62847191343081 +83000 ekin = 4.01459300302777 | erot = 2.78352190390201 | epot = -12.4265868206362 | etot = -5.62847191370641 +84000 ekin = 4.0495621060858 | erot = 2.8479662966442 | epot = -12.5260003165346 | etot = -5.62847191380463 +85000 ekin = 4.09049341026889 | erot = 2.91104365381099 | epot = -12.6300089781181 | etot = -5.62847191403819 +86000 ekin = 4.13484812560063 | erot = 2.97201165419083 | epot = -12.7353316940204 | etot = -5.62847191422892 +87000 ekin = 4.18003829184661 | erot = 3.03078479878275 | epot = -12.8392950049953 | etot = -5.6284719143659 +88000 ekin = 4.22360704724739 | erot = 3.08796574000306 | epot = -12.9400447017 | etot = -5.6284719144496 +89000 ekin = 4.26326024607321 | erot = 3.14481288279462 | epot = -13.0365450433356 | etot = -5.62847191446776 +90000 ekin = 4.29588111790608 | erot = 3.20341713776984 | epot = -13.1277701703296 | etot = -5.62847191465366 +91000 ekin = 4.31697784577799 | erot = 3.26736040230122 | epot = -13.2128101626451 | etot = -5.62847191456589 +92000 ekin = 4.3250783734756 | erot = 3.33931601944521 | epot = -13.2928663075894 | etot = -5.62847191466861 +93000 ekin = 4.31872212432174 | erot = 3.42036541916733 | epot = -13.3675594581772 | etot = -5.62847191468809 +94000 ekin = 4.29660005793268 | erot = 3.51205694754354 | epot = -13.4371289201532 | etot = -5.62847191467697 +95000 ekin = 4.25789021838815 | erot = 3.61606475666788 | epot = -13.5024268896661 | etot = -5.62847191461011 +96000 ekin = 4.2025366192647 | erot = 3.73412422729603 | epot = -13.5651327610303 | etot = -5.62847191446958 +97000 ekin = 4.13146529059983 | erot = 3.86803037439235 | epot = -13.6279675793408 | etot = -5.62847191434867 +98000 ekin = 4.04669071975317 | erot = 4.01885670334665 | epot = -13.6940193371941 | etot = -5.62847191409431 +99000 ekin = 3.95128630061856 | erot = 4.18772840013396 | epot = -13.7674866145613 | etot = -5.6284719138088 +100000 ekin = 3.84921784883014 | erot = 4.37558821791212 | epot = -13.8532779802861 | etot = -5.62847191354385 +101000 ekin = 3.74501223923234 | erot = 4.5825842923172 | epot = -13.9560684449131 | etot = -5.62847191336357 +102000 ekin = 3.64330024870495 | erot = 4.80764134110052 | epot = -14.0794135031359 | etot = -5.62847191333045 +103000 ekin = 3.54831662006189 | erot = 5.04811575607487 | epot = -14.2249042896159 | etot = -5.62847191347916 +104000 ekin = 3.46349772064836 | erot = 5.29960820358442 | epot = -14.3915778382021 | etot = -5.62847191396929 +105000 ekin = 3.39136254536159 | erot = 5.5550770435999 | epot = -14.5749115034235 | etot = -5.628471914462 +106000 ekin = 3.33356403744289 | erot = 5.80718759324942 | epot = -14.7692235454824 | etot = -5.62847191479007 +107000 ekin = 3.29209861353571 | erot = 6.04906687386761 | epot = -14.9696374027438 | etot = -5.62847191534052 +108000 ekin = 3.2674848734097 | erot = 6.27418243659718 | epot = -15.1701392258613 | etot = -5.62847191585437 +109000 ekin = 3.25930506886458 | erot = 6.4758541724433 | epot = -15.3636311580673 | etot = -5.62847191675944 +110000 ekin = 3.26568272828949 | erot = 6.64602097207931 | epot = -15.5401756176965 | etot = -5.62847191732771 +111000 ekin = 3.28520059172467 | erot = 6.77857539600323 | epot = -15.6922479055245 | etot = -5.62847191779661 +112000 ekin = 3.31659315707279 | erot = 6.86862760563939 | epot = -15.8136926809225 | etot = -5.62847191821031 +113000 ekin = 3.35860144230777 | erot = 6.91335224014795 | epot = -15.9004256006548 | etot = -5.62847191819904 +114000 ekin = 3.41073468124525 | erot = 6.91406610981162 | epot = -15.9532727088313 | etot = -5.62847191777438 +115000 ekin = 3.47381531534132 | erot = 6.87643065686351 | epot = -15.9787178894049 | etot = -5.62847191720006 +116000 ekin = 3.54886437558636 | erot = 6.80711139529066 | epot = -15.9844476879556 | etot = -5.62847191707855 +117000 ekin = 3.63467409204824 | erot = 6.71320827683544 | epot = -15.9763542854608 | etot = -5.6284719165771 +118000 ekin = 3.72815555523451 | erot = 6.60276001485538 | epot = -15.9593874864246 | etot = -5.62847191633475 +119000 ekin = 3.8242098036383 | erot = 6.48288858478252 | epot = -15.9355703049679 | etot = -5.62847191654706 +120000 ekin = 3.91797748357147 | erot = 6.35662792089839 | epot = -15.9030773212269 | etot = -5.62847191675705 +121000 ekin = 4.00591742043981 | erot = 6.22468993027065 | epot = -15.8590792676424 | etot = -5.62847191693198 +122000 ekin = 4.08550270322333 | erot = 6.08676575288889 | epot = -15.8007403736368 | etot = -5.62847191752457 +123000 ekin = 4.15433540908357 | erot = 5.94071572290355 | epot = -15.7235230494647 | etot = -5.62847191747755 +124000 ekin = 4.21272085203595 | erot = 5.78590733869454 | epot = -15.6271001078556 | etot = -5.62847191712511 +125000 ekin = 4.26325970413181 | erot = 5.62467373686594 | epot = -15.516405357524 | etot = -5.62847191652626 +126000 ekin = 4.30880597980493 | erot = 5.46113290467127 | epot = -15.3984108007456 | etot = -5.62847191626943 +127000 ekin = 4.3513631311099 | erot = 5.29960307371356 | epot = -15.2794381205815 | etot = -5.62847191575806 +128000 ekin = 4.39391383900439 | erot = 5.14386269106642 | epot = -15.166248445447 | etot = -5.62847191537622 +129000 ekin = 4.43858036063557 | erot = 4.99693296064673 | epot = -15.0639852363956 | etot = -5.62847191511328 +130000 ekin = 4.48619887382404 | erot = 4.86092637377837 | epot = -14.9755971627232 | etot = -5.62847191512077 +131000 ekin = 4.53629967745958 | erot = 4.73552279955379 | epot = -14.9002943921684 | etot = -5.62847191515504 +132000 ekin = 4.58794392436588 | erot = 4.62012473201771 | epot = -14.8365405715589 | etot = -5.62847191517533 +133000 ekin = 4.63977927970688 | erot = 4.51475331813831 | epot = -14.7830045130142 | etot = -5.62847191516899 +134000 ekin = 4.69096227444458 | erot = 4.41936571519981 | epot = -14.7387999047798 | etot = -5.62847191513542 +135000 ekin = 4.74083332631883 | erot = 4.33399770983505 | epot = -14.7033029512355 | etot = -5.62847191508162 +136000 ekin = 4.78901374177222 | erot = 4.25873574864683 | epot = -14.6762214054312 | etot = -5.62847191501212 +137000 ekin = 4.83519033966102 | erot = 4.19345584709188 | epot = -14.6571181018621 | etot = -5.62847191510917 +138000 ekin = 4.87857190019093 | erot = 4.13759960010392 | epot = -14.6446434153633 | etot = -5.62847191506846 +139000 ekin = 4.91933904268488 | erot = 4.09041841408072 | epot = -14.6382293717793 | etot = -5.62847191501367 +140000 ekin = 4.95802132610577 | erot = 4.05108530565712 | epot = -14.6375785467319 | etot = -5.62847191496898 +141000 ekin = 4.99519923255229 | erot = 4.01864210163592 | epot = -14.6423132491258 | etot = -5.62847191493756 +142000 ekin = 5.03134031865286 | erot = 3.9921096007244 | epot = -14.651921834306 | etot = -5.62847191492874 +143000 ekin = 5.06663282814527 | erot = 3.97056100872247 | epot = -14.6656657518147 | etot = -5.6284719149469 +144000 ekin = 5.10088003253911 | erot = 3.9531838593667 | epot = -14.6825358068967 | etot = -5.62847191499091 +145000 ekin = 5.13347728619377 | erot = 3.93933318432689 | epot = -14.7012823855759 | etot = -5.62847191505523 +146000 ekin = 5.16346418937017 | erot = 3.92856945833623 | epot = -14.7205055628377 | etot = -5.62847191513127 +147000 ekin = 5.18962884502114 | erot = 3.9206777897017 | epot = -14.7387785499329 | etot = -5.62847191521003 +148000 ekin = 5.21063630105058 | erot = 3.91566839447859 | epot = -14.7547766108122 | etot = -5.62847191528303 +149000 ekin = 5.22515818277348 | erot = 3.91376203385023 | epot = -14.7673921319672 | etot = -5.6284719153435 +150000 ekin = 5.23199081771498 | erot = 3.91536756918944 | epot = -14.7758303022896 | etot = -5.62847191538518 +151000 ekin = 5.2302585743497 | erot = 3.92102977399639 | epot = -14.7797602637321 | etot = -5.62847191538598 +152000 ekin = 5.21970456277725 | erot = 3.93136599417393 | epot = -14.7795424723217 | etot = -5.62847191537049 +153000 ekin = 5.20020715644055 | erot = 3.94729684643089 | epot = -14.7759759181602 | etot = -5.62847191528876 +154000 ekin = 5.17219962281025 | erot = 3.96989664945499 | epot = -14.7705681875129 | etot = -5.62847191524761 +155000 ekin = 5.13597939415339 | erot = 4.00025654377964 | epot = -14.7647078530859 | etot = -5.62847191515283 +156000 ekin = 5.09227456538948 | erot = 4.03969792967945 | epot = -14.7604444100958 | etot = -5.6284719150269 +157000 ekin = 5.04214374655968 | erot = 4.08965648366453 | epot = -14.7602721451249 | etot = -5.62847191490065 +158000 ekin = 4.98664076893875 | erot = 4.15175637520707 | epot = -14.7668690589168 | etot = -5.62847191477102 +159000 ekin = 4.92656708226531 | erot = 4.22693785976786 | epot = -14.7819768568045 | etot = -5.62847191477136 +160000 ekin = 4.86235166665144 | erot = 4.31524574981851 | epot = -14.8060693313562 | etot = -5.62847191488621 +161000 ekin = 4.79340744408571 | erot = 4.41634192155802 | epot = -14.8382212806409 | etot = -5.62847191499721 +162000 ekin = 4.71931679137345 | erot = 4.52911647420422 | epot = -14.8769051807461 | etot = -5.62847191516839 +163000 ekin = 4.63965178838057 | erot = 4.65170333188857 | epot = -14.9198270356149 | etot = -5.6284719153458 +164000 ekin = 4.55406399624446 | erot = 4.78166301740476 | epot = -14.9641989292998 | etot = -5.62847191565063 +165000 ekin = 4.46213996067549 | erot = 4.9153027215904 | epot = -15.005914598208 | etot = -5.62847191594211 +166000 ekin = 4.36388109534935 | erot = 5.04805357548725 | epot = -15.0404065870436 | etot = -5.62847191620698 +167000 ekin = 4.25995046842471 | erot = 5.17511068522386 | epot = -15.0635330700719 | etot = -5.62847191642331 +168000 ekin = 4.15154354282127 | erot = 5.29182746832013 | epot = -15.0718429277141 | etot = -5.6284719165727 +169000 ekin = 4.04026084727452 | erot = 5.39411747728171 | epot = -15.0628502412115 | etot = -5.62847191665525 +170000 ekin = 3.92797723838266 | erot = 5.47890367159956 | epot = -15.0353528265949 | etot = -5.62847191661267 +171000 ekin = 3.81680551395721 | erot = 5.54460219961154 | epot = -14.9898796300193 | etot = -5.62847191645055 +172000 ekin = 3.70912194360746 | erot = 5.59119877272667 | epot = -14.9287926324946 | etot = -5.62847191616047 +173000 ekin = 3.60767008609825 | erot = 5.62020496675955 | epot = -14.8563469686151 | etot = -5.62847191575734 +174000 ekin = 3.51593123142515 | erot = 5.63484613588001 | epot = -14.7792492818543 | etot = -5.62847191454913 +175000 ekin = 3.43946966413688 | erot = 5.64148825118996 | epot = -14.7094298295795 | etot = -5.62847191425268 +176000 ekin = 3.38149964339828 | erot = 5.64304584979489 | epot = -14.6530174072199 | etot = -5.62847191402674 +177000 ekin = 3.34426304280142 | erot = 5.64075589500425 | epot = -14.613490851737 | etot = -5.62847191393132 +178000 ekin = 3.32907821317954 | erot = 5.63429171925213 | epot = -14.5918418466184 | etot = -5.62847191418678 +179000 ekin = 3.33553286829191 | erot = 5.62088708741392 | epot = -14.5848918700454 | etot = -5.62847191433961 +180000 ekin = 3.3633338427711 | erot = 5.59827011329087 | epot = -14.590075870681 | etot = -5.62847191461902 +181000 ekin = 3.41118322744577 | erot = 5.56369949232745 | epot = -14.6033546347466 | etot = -5.6284719149734 +182000 ekin = 3.47666657813831 | erot = 5.51442909119293 | epot = -14.6195675846739 | etot = -5.62847191534263 +183000 ekin = 3.55646627297049 | erot = 5.44847615754669 | epot = -14.6334143461245 | etot = -5.62847191560728 +184000 ekin = 3.64671110623847 | erot = 5.36528131962425 | epot = -14.6404643416894 | etot = -5.62847191582671 +185000 ekin = 3.7429424385421 | erot = 5.26596644090051 | epot = -14.637380795357 | etot = -5.62847191591437 +186000 ekin = 3.84064021177397 | erot = 5.15359326678864 | epot = -14.6227053944198 | etot = -5.62847191585718 +187000 ekin = 3.93563840595001 | erot = 5.03296537332374 | epot = -14.5970756949481 | etot = -5.62847191567436 +188000 ekin = 4.02444308409296 | erot = 4.91004205202559 | epot = -14.5629570515405 | etot = -5.62847191542198 +189000 ekin = 4.10437481570314 | erot = 4.79101157925938 | epot = -14.5238583101457 | etot = -5.62847191518321 +190000 ekin = 4.17348832620003 | erot = 4.68117061833053 | epot = -14.4831308595846 | etot = -5.62847191505407 +191000 ekin = 4.2302884539446 | erot = 4.5838619279884 | epot = -14.442622297024 | etot = -5.62847191509104 +192000 ekin = 4.2735805406068 | erot = 4.49984530057596 | epot = -14.4018977564812 | etot = -5.62847191529842 +193000 ekin = 4.24592911994321 | erot = 4.46741799187356 | epot = -14.341819022694 | etot = -5.62847191087726 +194000 ekin = 4.19994174151085 | erot = 4.47173701960621 | epot = -14.3001506793693 | etot = -5.62847191825224 +195000 ekin = 4.19981139522261 | erot = 4.40365513590485 | epot = -14.2319384423521 | etot = -5.62847191122465 +196000 ekin = 4.18831859750035 | erot = 4.328213784087 | epot = -14.1450042928984 | etot = -5.62847191131101 +197000 ekin = 4.16445522600586 | erot = 4.24686919663538 | epot = -14.0397963337859 | etot = -5.62847191114469 +198000 ekin = 4.1307492037306 | erot = 4.15919636754741 | epot = -13.9184174820272 | etot = -5.62847191074922 +199000 ekin = 4.09062074736305 | erot = 4.06700829110004 | epot = -13.7861009486946 | etot = -5.6284719102315 +200000 ekin = 4.04792338687347 | erot = 3.97356549445519 | epot = -13.6499607909737 | etot = -5.62847190964504 +201000 ekin = 4.00668244919937 | erot = 3.88277215509152 | epot = -13.5179265133942 | etot = -5.62847190910329 +202000 ekin = 3.97063392471906 | erot = 3.79828207702263 | epot = -13.3973879104142 | etot = -5.6284719086725 +203000 ekin = 3.94283665189579 | erot = 3.72290259923935 | epot = -13.2942111595221 | etot = -5.62847190838693 +204000 ekin = 3.92540743372375 | erot = 3.65835216262531 | epot = -13.2122315046004 | etot = -5.62847190825132 +205000 ekin = 3.91946432177547 | erot = 3.60562062221061 | epot = -13.1535568521759 | etot = -5.62847190818981 +206000 ekin = 3.92515912499702 | erot = 3.56510062726708 | epot = -13.1187316605198 | etot = -5.62847190825566 +207000 ekin = 3.94166066189883 | erot = 3.53643554885193 | epot = -13.106568119133 | etot = -5.62847190838225 +208000 ekin = 3.96741904659975 | erot = 3.51909285319074 | epot = -13.1149838083271 | etot = -5.62847190853662 +209000 ekin = 3.99456273873009 | erot = 3.50083315850435 | epot = -13.1238678065952 | etot = -5.62847190936073 +210000 ekin = 4.04796401860738 | erot = 3.49168954891013 | epot = -13.1681254815447 | etot = -5.62847191402719 +211000 ekin = 4.09773342716367 | erot = 3.49304812012984 | epot = -13.2192534546401 | etot = -5.62847190734662 +212000 ekin = 4.14205596974759 | erot = 3.50221111647932 | epot = -13.2727389936944 | etot = -5.62847190746751 +213000 ekin = 4.18461227969667 | erot = 3.51992604962506 | epot = -13.3330102373293 | etot = -5.62847190800754 +214000 ekin = 4.22291801221457 | erot = 3.54318058638054 | epot = -13.3945705067456 | etot = -5.62847190815054 +215000 ekin = 4.25639069944512 | erot = 3.57018634833026 | epot = -13.4550489560127 | etot = -5.62847190823736 +216000 ekin = 4.28517056131255 | erot = 3.59920416165437 | epot = -13.5128466312863 | etot = -5.62847190831941 +217000 ekin = 4.30951457891845 | erot = 3.6286263473057 | epot = -13.5666128346141 | etot = -5.62847190838996 +218000 ekin = 4.33022749098081 | erot = 3.65639118247548 | epot = -13.6150905819366 | etot = -5.62847190848033 +219000 ekin = 4.34822739189298 | erot = 3.68015661121616 | epot = -13.6568559116936 | etot = -5.62847190858443 +220000 ekin = 4.3643728025888 | erot = 3.69755509928487 | epot = -13.6903998105203 | etot = -5.62847190864662 +221000 ekin = 4.37954317243948 | erot = 3.7066097682417 | epot = -13.7146248493744 | etot = -5.6284719086932 +222000 ekin = 4.39451292717598 | erot = 3.70596363375132 | epot = -13.7289484695975 | etot = -5.62847190867022 +223000 ekin = 4.41008213189481 | erot = 3.69513355487105 | epot = -13.7336875953414 | etot = -5.62847190857551 +224000 ekin = 4.42678943726707 | erot = 3.67466536393115 | epot = -13.7299267097397 | etot = -5.6284719085415 +225000 ekin = 4.4446070170142 | erot = 3.64600909387524 | epot = -13.7190880192601 | etot = -5.62847190837067 +226000 ekin = 4.47380092383422 | erot = 3.58830814096065 | epot = -13.6905809780265 | etot = -5.6284719132316 +227000 ekin = 4.56056009805432 | erot = 3.47269306830543 | epot = -13.6617250773591 | etot = -5.62847191099938 +228000 ekin = 4.61083327531231 | erot = 3.40803816010519 | epot = -13.6473433475428 | etot = -5.62847191212525 +229000 ekin = 4.63150013168163 | erot = 3.35898149000111 | epot = -13.6189535337013 | etot = -5.62847191201853 +230000 ekin = 4.65431068144238 | erot = 3.31343017817962 | epot = -13.5962127716248 | etot = -5.62847191200278 +231000 ekin = 4.67934821405078 | erot = 3.27332737526791 | epot = -13.5811475014861 | etot = -5.62847191216744 +232000 ekin = 4.70592354946585 | erot = 3.23944506667347 | epot = -13.5738405284628 | etot = -5.62847191232351 +233000 ekin = 4.73271416122856 | erot = 3.21144788525789 | epot = -13.5726339590472 | etot = -5.62847191256077 +234000 ekin = 4.75943444985412 | erot = 3.19078729233751 | epot = -13.5786936545851 | etot = -5.62847191239346 +235000 ekin = 4.78642241818518 | erot = 3.18021193977121 | epot = -13.595106270404 | etot = -5.62847191244762 +236000 ekin = 4.81315037988696 | erot = 3.18017325335413 | epot = -13.6217955457091 | etot = -5.62847191246801 +237000 ekin = 4.83923297186064 | erot = 3.19145400454097 | epot = -13.6591588888941 | etot = -5.62847191249251 +238000 ekin = 4.86487585932329 | erot = 3.21481908801147 | epot = -13.7081668597499 | etot = -5.62847191241512 +239000 ekin = 4.89063931715455 | erot = 3.25114955282969 | epot = -13.7702607826994 | etot = -5.6284719127152 +240000 ekin = 4.91656145053025 | erot = 3.29901781219886 | epot = -13.8440511755073 | etot = -5.62847191277818 +241000 ekin = 4.94245255089761 | erot = 3.35699698382585 | epot = -13.9279214477277 | etot = -5.62847191300429 +242000 ekin = 4.9676738034646 | erot = 3.42365009426975 | epot = -14.0197958109359 | etot = -5.62847191320155 +243000 ekin = 5.00573446226822 | erot = 3.47030260467981 | epot = -14.104508979209 | etot = -5.62847191226097 +244000 ekin = 5.06987350322707 | erot = 3.50985787352213 | epot = -14.2082032933178 | etot = -5.62847191656865 +245000 ekin = 5.08405115957498 | erot = 3.57323736718823 | epot = -14.2857604930734 | etot = -5.62847196631014 +246000 ekin = 5.13867281569357 | erot = 3.53022410787181 | epot = -14.297368841906 | etot = -5.62847191834066 +247000 ekin = 5.24446071734615 | erot = 3.63707192640274 | epot = -14.5100045566521 | etot = -5.62847191290324 +248000 ekin = 5.23528120841445 | erot = 3.74023330974589 | epot = -14.6039864311697 | etot = -5.62847191300932 +249000 ekin = 5.21260078434817 | erot = 3.837297956608 | epot = -14.6783706538289 | etot = -5.62847191287273 +250000 ekin = 5.17839081249927 | erot = 3.92749000334494 | epot = -14.7343527284516 | etot = -5.62847191260741 +251000 ekin = 5.13586036333573 | erot = 4.01108345358421 | epot = -14.7754157290713 | etot = -5.62847191215138 +252000 ekin = 5.08918292106074 | erot = 4.09018694185419 | epot = -14.8078417745656 | etot = -5.62847191165069 +253000 ekin = 5.04264218495073 | erot = 4.16759058212955 | epot = -14.8387046782889 | etot = -5.62847191120863 +254000 ekin = 4.99116344077593 | erot = 4.24248912288695 | epot = -14.8621245493469 | etot = -5.62847198568401 +255000 ekin = 4.72637462796507 | erot = 4.24407837664817 | epot = -14.5989249325811 | etot = -5.62847192796782 +256000 ekin = 4.59834109997933 | erot = 4.36369782213481 | epot = -14.5905108365242 | etot = -5.62847191441005 +257000 ekin = 4.77089539877043 | erot = 4.60066315318934 | epot = -15.0000305290225 | etot = -5.62847197706276 +258000 ekin = 4.85704242988894 | erot = 4.66807324378547 | epot = -15.1535875814296 | etot = -5.62847190775515 +259000 ekin = 4.89901811471773 | erot = 4.72718635922983 | epot = -15.2546763808734 | etot = -5.62847190692585 +260000 ekin = 4.94107094738753 | erot = 4.79406863687931 | epot = -15.3636114914281 | etot = -5.62847190716125 +261000 ekin = 4.9824230907422 | erot = 4.86508628583352 | epot = -15.475981284638 | etot = -5.62847190806228 +262000 ekin = 5.01659840997744 | erot = 4.93871137850052 | epot = -15.5837816973808 | etot = -5.62847190890283 +263000 ekin = 5.03982661193641 | erot = 5.00983839413939 | epot = -15.6781369155853 | etot = -5.62847190950953 +264000 ekin = 5.0473269634892 | erot = 5.07389667600714 | epot = -15.7496955496047 | etot = -5.62847191010834 +265000 ekin = 5.03448807084051 | erot = 5.12688367714911 | epot = -15.7898436586299 | etot = -5.62847191064033 +266000 ekin = 4.99773438958486 | erot = 5.16480683533175 | epot = -15.791013135968 | etot = -5.62847191105136 +267000 ekin = 4.93508497405026 | erot = 5.18388050751387 | epot = -15.747437392869 | etot = -5.62847191130489 +268000 ekin = 4.84654531469559 | erot = 5.1806346855983 | epot = -15.6556519116799 | etot = -5.62847191138598 +269000 ekin = 4.73423214273252 | erot = 5.1519885973249 | epot = -15.5146926513497 | etot = -5.62847191129228 +270000 ekin = 4.60224202247072 | erot = 5.09540688817256 | epot = -15.3261208188833 | etot = -5.62847190824006 +271000 ekin = 4.45636876653434 | erot = 5.00923317388234 | epot = -15.0940738481856 | etot = -5.62847190776888 +272000 ekin = 4.30375505733966 | erot = 4.89315778303985 | epot = -14.8253847474784 | etot = -5.62847190709885 +273000 ekin = 4.15244061478458 | erot = 4.74862648122846 | epot = -14.5295390022765 | etot = -5.62847190626348 +274000 ekin = 4.01137482333106 | erot = 4.5789667245575 | epot = -14.2188134532047 | etot = -5.62847190531616 +275000 ekin = 3.87388872891049 | erot = 4.3895080579432 | epot = -13.8918687169693 | etot = -5.6284719301156 +276000 ekin = 3.70828148349361 | erot = 4.18975567949233 | epot = -13.5265090654534 | etot = -5.62847190246743 +277000 ekin = 3.74025187939912 | erot = 3.98894405209637 | epot = -13.3576678645567 | etot = -5.62847193306118 +278000 ekin = 3.74221760775116 | erot = 3.77038543691051 | epot = -13.1410749479052 | etot = -5.62847190324349 +279000 ekin = 3.75220115766653 | erot = 3.55790331813957 | epot = -12.9385763794507 | etot = -5.62847190364464 +280000 ekin = 3.77561814014657 | erot = 3.35781654491971 | epot = -12.7619065883777 | etot = -5.62847190331142 +281000 ekin = 3.81272927485115 | erot = 3.17409695195876 | epot = -12.6152981298196 | etot = -5.62847190300969 +282000 ekin = 3.86501988037386 | erot = 3.00952640154724 | epot = -12.503018184212 | etot = -5.62847190229088 +283000 ekin = 3.93628900407809 | erot = 2.8661316818177 | epot = -12.4308925881356 | etot = -5.62847190223979 +284000 ekin = 4.0270270305153 | erot = 2.74480306500081 | epot = -12.4003019979166 | etot = -5.62847190240049 +285000 ekin = 4.14139706641422 | erot = 2.64599110157996 | epot = -12.4158600691845 | etot = -5.62847190119033 +286000 ekin = 4.28525774919445 | erot = 2.56950762489452 | epot = -12.4832372763396 | etot = -5.62847190225059 +287000 ekin = 4.44987555796749 | erot = 2.51493810068656 | epot = -12.5932855609754 | etot = -5.62847190232132 +288000 ekin = 4.63520922265897 | erot = 2.48100112556068 | epot = -12.744682251566 | etot = -5.6284719033463 +289000 ekin = 4.83125797006575 | erot = 2.46527241540077 | epot = -12.9250022897052 | etot = -5.62847190423864 +290000 ekin = 5.02763799220291 | erot = 2.4654243568242 | epot = -13.1215342541163 | etot = -5.62847190508923 +291000 ekin = 5.21465468576449 | erot = 2.47913524145117 | epot = -13.3222618329834 | etot = -5.6284719057677 +292000 ekin = 5.38472348790597 | erot = 2.50416430329569 | epot = -13.5173596974435 | etot = -5.62847190624189 +293000 ekin = 5.5330248706311 | erot = 2.53823701976809 | epot = -13.6997337969643 | etot = -5.62847190656515 +294000 ekin = 5.65718701899536 | erot = 2.57877496353416 | epot = -13.864433889344 | etot = -5.6284719068145 +295000 ekin = 5.75652780496621 | erot = 2.62269919784431 | epot = -14.007698909843 | etot = -5.62847190703252 +296000 ekin = 5.83139499491419 | erot = 2.6665217122924 | epot = -14.1263886144181 | etot = -5.6284719072115 +297000 ekin = 5.88282356332146 | erot = 2.70675614330257 | epot = -14.2180516139381 | etot = -5.62847190731405 +298000 ekin = 5.91239748765179 | erot = 2.74048494300791 | epot = -14.2813543379722 | etot = -5.62847190731251 +299000 ekin = 5.92208198046436 | erot = 2.76585299301949 | epot = -14.3164068806928 | etot = -5.62847190720895 +300000 ekin = 5.91390942018729 | erot = 2.78233336188307 | epot = -14.324714689099 | etot = -5.6284719070286 +301000 ekin = 5.88962133511172 | erot = 2.79074353675468 | epot = -14.3088367786641 | etot = -5.62847190679768 +302000 ekin = 5.8504878142078 | erot = 2.79307875791172 | epot = -14.2720384786454 | etot = -5.6284719065259 +303000 ekin = 5.79743517876747 | erot = 2.79223225552008 | epot = -14.2181393405006 | etot = -5.62847190621301 +304000 ekin = 5.7312434076019 | erot = 2.79262915088754 | epot = -14.1523444641561 | etot = -5.62847190566669 +305000 ekin = 5.65258268469364 | erot = 2.79940899090737 | epot = -14.0804635809857 | etot = -5.62847190538469 +306000 ekin = 5.56254653522508 | erot = 2.81503734234927 | epot = -14.0060557827357 | etot = -5.62847190516136 +307000 ekin = 5.46251129680086 | erot = 2.84075892386076 | epot = -13.9317421256988 | etot = -5.62847190503716 +308000 ekin = 5.35391293499096 | erot = 2.87633235164342 | epot = -13.8587171916696 | etot = -5.62847190503525 +309000 ekin = 5.23805007410738 | erot = 2.91996940723619 | epot = -13.7864913863822 | etot = -5.6284719050386 +310000 ekin = 5.11613875821451 | erot = 2.96880482960497 | epot = -13.7134154931085 | etot = -5.62847190528902 +311000 ekin = 4.98925852658179 | erot = 3.01839769776313 | epot = -13.6361281298157 | etot = -5.62847190547077 +312000 ekin = 4.85867326621007 | erot = 3.06421411594136 | epot = -13.5513592877764 | etot = -5.62847190562498 +313000 ekin = 4.72585112666007 | erot = 3.1023659033067 | epot = -13.4566889356335 | etot = -5.62847190566677 +314000 ekin = 4.59293421044821 | erot = 3.13002199529812 | epot = -13.3514281113063 | etot = -5.62847190555992 +315000 ekin = 4.46270669970081 | erot = 3.14588950388386 | epot = -13.2370681089054 | etot = -5.62847190532072 +316000 ekin = 4.3384545703267 | erot = 3.15016989319031 | epot = -13.1170963685052 | etot = -5.62847190498817 +317000 ekin = 4.22370149065743 | erot = 3.14429402988067 | epot = -12.996467425148 | etot = -5.62847190460986 +318000 ekin = 4.12188681799284 | erot = 3.13056754979034 | epot = -12.8809262720121 | etot = -5.62847190422894 +319000 ekin = 4.03607214170579 | erot = 3.11184182788027 | epot = -12.77638587346 | etot = -5.62847190387392 +320000 ekin = 3.96873641007762 | erot = 3.09128048612704 | epot = -12.6884887997606 | etot = -5.62847190355594 +321000 ekin = 3.92167797368586 | erot = 3.07226107994919 | epot = -12.6224109569088 | etot = -5.62847190327372 +322000 ekin = 3.89600971422213 | erot = 3.05833648375385 | epot = -12.5828181010071 | etot = -5.62847190303107 +323000 ekin = 3.89216326552103 | erot = 3.05323078721206 | epot = -12.5738659555728 | etot = -5.62847190283971 +324000 ekin = 3.90971752721543 | erot = 3.06065920138556 | epot = -12.5988486316037 | etot = -5.62847190300271 +325000 ekin = 3.94474197768388 | erot = 3.08325557843867 | epot = -12.6564694593744 | etot = -5.62847190325185 +326000 ekin = 3.99225791213231 | erot = 3.1213166619738 | epot = -12.7420464778809 | etot = -5.62847190377475 +327000 ekin = 4.04715751820597 | erot = 3.17277573874842 | epot = -12.8484051615311 | etot = -5.6284719045767 +328000 ekin = 4.10306827951536 | erot = 3.23289809102827 | epot = -12.9644382761474 | etot = -5.6284719056038 +329000 ekin = 4.1529407779893 | erot = 3.29460254687961 | epot = -13.0760152315458 | etot = -5.62847190667689 +330000 ekin = 4.19046086380311 | erot = 3.34957314359943 | epot = -13.1685059149075 | etot = -5.628471907505 +331000 ekin = 4.21187936706255 | erot = 3.3898915326679 | epot = -13.2302428077012 | etot = -5.62847190797073 +332000 ekin = 4.21589857654889 | erot = 3.410750943744 | epot = -13.2551214281506 | etot = -5.62847190785773 +333000 ekin = 4.20485266001253 | erot = 3.4117439982385 | epot = -13.2450685654485 | etot = -5.62847190719748 +334000 ekin = 4.18435368277225 | erot = 3.39692225042827 | epot = -13.2097478393621 | etot = -5.62847190616153 +335000 ekin = 4.16205455862581 | erot = 3.37367623592429 | epot = -13.1642026995401 | etot = -5.62847190499001 +336000 ekin = 4.14609491421859 | erot = 3.3509330966453 | epot = -13.1254999147712 | etot = -5.62847190390733 +337000 ekin = 4.14364358932779 | erot = 3.33736964604109 | epot = -13.1094851384434 | etot = -5.62847190307457 +338000 ekin = 4.15982493124777 | erot = 3.33968220641345 | epot = -13.1279790403949 | etot = -5.62847190273368 +339000 ekin = 4.19714166717843 | erot = 3.36120406393393 | epot = -13.1868176337222 | etot = -5.62847190260982 +340000 ekin = 4.2551847438325 | erot = 3.4039445653371 | epot = -13.2876012119721 | etot = -5.62847190280253 +341000 ekin = 4.33079125362424 | erot = 3.46797257817826 | epot = -13.4272357350448 | etot = -5.62847190324226 +342000 ekin = 4.41854745260805 | erot = 3.55173943759857 | epot = -13.598758794057 | etot = -5.62847190385035 +343000 ekin = 4.51153864840457 | erot = 3.65250494550999 | epot = -13.7925154984656 | etot = -5.62847190455105 +344000 ekin = 4.60219231319681 | erot = 3.76671918648665 | epot = -13.997383404942 | etot = -5.62847190525855 +345000 ekin = 4.68312343521548 | erot = 3.89042211425568 | epot = -14.2020174553784 | etot = -5.62847190590722 +346000 ekin = 4.74786790541098 | erot = 4.01955036385073 | epot = -14.3958901757075 | etot = -5.6284719064458 +347000 ekin = 4.79150376887216 | erot = 4.1501952988555 | epot = -14.5701709745265 | etot = -5.62847190679885 +348000 ekin = 4.81117855586204 | erot = 4.27877359765812 | epot = -14.7184240605732 | etot = -5.62847190705307 +349000 ekin = 4.80564918859609 | erot = 4.4020566269382 | epot = -14.8361777227061 | etot = -5.62847190717178 +350000 ekin = 4.7754594532902 | erot = 4.51714564006845 | epot = -14.9210770005556 | etot = -5.62847190719693 +351000 ekin = 4.72262273321685 | erot = 4.62116010890004 | epot = -14.9722547493249 | etot = -5.62847190720796 +352000 ekin = 4.65007958813433 | erot = 4.71078593022506 | epot = -14.989337425643 | etot = -5.62847190728361 +353000 ekin = 4.56109157464307 | erot = 4.78180335585299 | epot = -14.9713668379626 | etot = -5.62847190746653 +354000 ekin = 4.45876151245249 | erot = 4.82895979648526 | epot = -14.9161932166645 | etot = -5.6284719077268 +355000 ekin = 4.34584612944072 | erot = 4.84663553109637 | epot = -14.8209535684655 | etot = -5.62847190792837 +356000 ekin = 4.22495470319457 | erot = 4.83038190909228 | epot = -14.68380852018 | etot = -5.62847190789319 +357000 ekin = 4.09903296593331 | erot = 4.77873075093692 | epot = -14.5062356243563 | etot = -5.6284719074861 +358000 ekin = 3.97178667554692 | erot = 4.69444561049185 | epot = -14.2947041927515 | etot = -5.62847190671276 +359000 ekin = 3.84767298928416 | erot = 4.58431182212931 | epot = -14.0604567171694 | etot = -5.62847190575592 +360000 ekin = 3.73136439807966 | erot = 4.45746613156864 | epot = -13.8173024344097 | etot = -5.62847190476144 +361000 ekin = 3.62758093165255 | erot = 4.32379064504548 | epot = -13.5798434807329 | etot = -5.62847190403486 +362000 ekin = 3.54294892306986 | erot = 4.19358097113779 | epot = -13.3650017978886 | etot = -5.6284719036809 +363000 ekin = 3.47837311692254 | erot = 4.07207692081703 | epot = -13.1789219413003 | etot = -5.62847190356078 +364000 ekin = 3.43225009807465 | erot = 3.96193194141269 | epot = -13.0226539430779 | etot = -5.62847190359055 +365000 ekin = 3.40198388465267 | erot = 3.86460642704947 | epot = -12.8950622153906 | etot = -5.62847190368841 +366000 ekin = 3.38451833854459 | erot = 3.78104622244357 | epot = -12.7940364647728 | etot = -5.62847190378467 +367000 ekin = 3.37682483160575 | erot = 3.7121800085712 | epot = -12.7174767440217 | etot = -5.6284719038448 +368000 ekin = 3.37625204141101 | erot = 3.65912147822589 | epot = -12.6638454234932 | etot = -5.62847190385628 +369000 ekin = 3.38074636729424 | erot = 3.62312680344321 | epot = -12.6323450745658 | etot = -5.62847190382834 +370000 ekin = 3.38894636701411 | erot = 3.60538856637043 | epot = -12.6228068372074 | etot = -5.62847190382282 +371000 ekin = 3.40011634062708 | erot = 3.60672333638067 | epot = -12.6353115807575 | etot = -5.62847190374974 +372000 ekin = 3.41430323565628 | erot = 3.62748920224198 | epot = -12.6702643415996 | etot = -5.62847190370131 +373000 ekin = 3.43217624798381 | erot = 3.66740997409027 | epot = -12.7280581256201 | etot = -5.62847190354598 +374000 ekin = 3.45538314688893 | erot = 3.72532070767081 | epot = -12.8091757581902 | etot = -5.62847190363042 +375000 ekin = 3.48458983106171 | erot = 3.79950576967025 | epot = -12.9125675044908 | etot = -5.62847190375884 +376000 ekin = 3.519946308663 | erot = 3.88772077542516 | epot = -13.0361389880165 | etot = -5.62847190392834 +377000 ekin = 3.56162263242343 | erot = 3.98718032088155 | epot = -13.1772748574015 | etot = -5.62847190409652 +378000 ekin = 3.6100922902232 | erot = 4.09470007582941 | epot = -13.3332642703601 | etot = -5.62847190430747 +379000 ekin = 3.66621939255748 | erot = 4.20668278517705 | epot = -13.5013740821801 | etot = -5.62847190444559 +380000 ekin = 3.73222313439189 | erot = 4.31893025307307 | epot = -13.6796252923471 | etot = -5.62847190488211 +381000 ekin = 3.80656943727892 | erot = 4.42661769096398 | epot = -13.8616590336969 | etot = -5.62847190545403 +382000 ekin = 3.88594558530565 | erot = 4.52459411507408 | epot = -14.0390116064667 | etot = -5.62847190608696 +383000 ekin = 3.96695090004012 | erot = 4.60747433896425 | epot = -14.2028971457321 | etot = -5.62847190672769 +384000 ekin = 4.0461964507197 | erot = 4.66967915258677 | epot = -14.3443475106066 | etot = -5.62847190730011 +385000 ekin = 4.12092029141552 | erot = 4.70599192063093 | epot = -14.4553841197197 | etot = -5.62847190767323 +386000 ekin = 4.18945537166368 | erot = 4.71237691680877 | epot = -14.5303041965821 | etot = -5.62847190810968 +387000 ekin = 4.24770733747877 | erot = 4.68531871642997 | epot = -14.5614979619664 | etot = -5.62847190805767 +388000 ekin = 4.29400518234331 | erot = 4.624330647637 | epot = -14.5468077376945 | etot = -5.62847190771423 +389000 ekin = 4.32973751036583 | erot = 4.53230747813147 | epot = -14.4905168956653 | etot = -5.62847190716798 +390000 ekin = 4.35696496433089 | erot = 4.41432356912958 | epot = -14.3997604400326 | etot = -5.62847190657214 +391000 ekin = 4.37768888460709 | erot = 4.27672754998431 | epot = -14.2828883405318 | etot = -5.62847190594035 +392000 ekin = 4.39398588700049 | erot = 4.12625191222807 | epot = -14.1487097046122 | etot = -5.6284719053836 +393000 ekin = 4.40738241117029 | erot = 3.96936593193603 | epot = -14.0052202479334 | etot = -5.62847190482706 +394000 ekin = 4.41937568154045 | erot = 3.81285278685682 | epot = -13.8607003730639 | etot = -5.62847190466665 +395000 ekin = 4.42988768162593 | erot = 3.66065946574567 | epot = -13.7190190519064 | etot = -5.62847190453479 +396000 ekin = 4.43847476587206 | erot = 3.5152560321435 | epot = -13.582202702411 | etot = -5.62847190439546 +397000 ekin = 4.44517728394754 | erot = 3.37891512777114 | epot = -13.4525643159392 | etot = -5.62847190422053 +398000 ekin = 4.45064950023435 | erot = 3.25392386318359 | epot = -13.3330452674182 | etot = -5.62847190400029 +399000 ekin = 4.45613851374602 | erot = 3.14269651881333 | epot = -13.2273069363619 | etot = -5.62847190380256 +400000 ekin = 4.46297608302819 | erot = 3.04745583065118 | epot = -13.1389038172284 | etot = -5.62847190354901 +401000 ekin = 4.47275545998799 | erot = 2.97053701411079 | epot = -13.0717643774621 | etot = -5.62847190336335 +402000 ekin = 4.4867233669823 | erot = 2.91396522580327 | epot = -13.0291604961298 | etot = -5.62847190334424 +403000 ekin = 4.50482841069757 | erot = 2.87870251809813 | epot = -13.0120028324148 | etot = -5.62847190361907 +404000 ekin = 4.52484325728014 | erot = 2.86379686214802 | epot = -13.0171120236836 | etot = -5.6284719042554 +405000 ekin = 4.54178669950829 | erot = 2.86535120568894 | epot = -13.035609810678 | etot = -5.62847190548074 +406000 ekin = 4.54812186974468 | erot = 2.87565623453592 | epot = -13.052250010881 | etot = -5.62847190660039 +407000 ekin = 4.53567765658788 | erot = 2.88781666333265 | epot = -13.0519662273462 | etot = -5.62847190742564 +408000 ekin = 4.49806839868194 | erot = 2.89717319274415 | epot = -13.0237134990795 | etot = -5.62847190765341 +409000 ekin = 4.4328904182026 | erot = 2.90293173428735 | epot = -12.9642940597694 | etot = -5.62847190727948 +410000 ekin = 4.34222243506053 | erot = 2.90784571762984 | epot = -12.8785400592398 | etot = -5.6284719065494 +411000 ekin = 4.23122328976019 | erot = 2.91632332330227 | epot = -12.7760185188611 | etot = -5.62847190579869 +412000 ekin = 4.10591302463055 | erot = 2.9323426322671 | epot = -12.6667275621366 | etot = -5.62847190523896 +413000 ekin = 3.97147909130296 | erot = 2.9582687533961 | epot = -12.5582197496086 | etot = -5.62847190490952 +414000 ekin = 3.83169645323166 | erot = 2.99487215443308 | epot = -12.4550405124112 | etot = -5.62847190474651 +415000 ekin = 3.68915556881038 | erot = 3.04191716157642 | epot = -12.3595446350554 | etot = -5.62847190466862 +416000 ekin = 3.54575553252049 | erot = 3.09878213618451 | epot = -12.2730095733204 | etot = -5.62847190461537 +417000 ekin = 3.40315271141066 | erot = 3.164842467978 | epot = -12.196467083944 | etot = -5.62847190455536 +418000 ekin = 3.26306253868106 | erot = 3.23960054560962 | epot = -12.1311349887671 | etot = -5.62847190447641 +419000 ekin = 3.12743539440816 | erot = 3.32265867818775 | epot = -12.0785659769723 | etot = -5.62847190437633 +420000 ekin = 2.99854685242666 | erot = 3.41362396353234 | epot = -12.0406427202186 | etot = -5.62847190425955 +421000 ekin = 2.87901712486664 | erot = 3.51197880386987 | epot = -12.0194678328765 | etot = -5.62847190413994 +422000 ekin = 2.77174596046411 | erot = 3.61690112211165 | epot = -12.0171189866207 | etot = -5.62847190404499 +423000 ekin = 2.67973794658802 | erot = 3.72700827493852 | epot = -12.035218125545 | etot = -5.62847190401841 +424000 ekin = 2.60579870922907 | erot = 3.84002717535674 | epot = -12.0742977887019 | etot = -5.62847190411612 +425000 ekin = 2.55208954521947 | erot = 3.95244167900237 | epot = -12.1330031286242 | etot = -5.62847190440239 +426000 ekin = 2.51954653039535 | erot = 4.05920212813651 | epot = -12.2072205634654 | etot = -5.62847190493355 +427000 ekin = 2.5072589388593 | erot = 4.15363681835807 | epot = -12.2893676629362 | etot = -5.62847190571882 +428000 ekin = 2.51210485170757 | erot = 4.22782399619353 | epot = -12.3684007545544 | etot = -5.62847190665333 +429000 ekin = 2.52911833228889 | erot = 4.27377369076429 | epot = -12.4313639305373 | etot = -5.62847190748416 +430000 ekin = 2.55284926696839 | erot = 4.28551618829766 | epot = -12.4668373631587 | etot = -5.62847190789266 +431000 ekin = 2.5792413941596 | erot = 4.26142412038931 | epot = -12.4691374222357 | etot = -5.62847190768682 +432000 ekin = 2.60692475462905 | erot = 4.20541068247442 | epot = -12.4408073440443 | etot = -5.62847190694087 +433000 ekin = 2.63712842978732 | erot = 4.12604912501915 | epot = -12.391649460746 | etot = -5.62847190593952 +434000 ekin = 2.67245542238064 | erot = 4.03405948921703 | epot = -12.3349868165901 | etot = -5.62847190499243 +435000 ekin = 2.71543854637315 | erot = 3.93961255971203 | epot = -12.2835230103731 | etot = -5.62847190428796 +436000 ekin = 2.7676099133887 | erot = 3.85063248523838 | epot = -12.2467143025076 | etot = -5.62847190388056 +437000 ekin = 2.82920515669222 | erot = 3.77223859651331 | epot = -12.229915656936 | etot = -5.62847190373046 +438000 ekin = 2.89929820056594 | erot = 3.70707509976307 | epot = -12.2348452041008 | etot = -5.62847190377184 +439000 ekin = 2.9760933415326 | erot = 3.65590372390477 | epot = -12.2604689693817 | etot = -5.6284719039443 +440000 ekin = 3.05720906610823 | erot = 3.61815200785468 | epot = -12.3038329781675 | etot = -5.62847190420454 +441000 ekin = 3.13989672826847 | erot = 3.59232302401357 | epot = -12.3606916568039 | etot = -5.62847190452184 +442000 ekin = 3.22119927516582 | erot = 3.57626892521649 | epot = -12.4259401052597 | etot = -5.62847190487744 +443000 ekin = 3.29807867299877 | erot = 3.56737972997483 | epot = -12.4939303082247 | etot = -5.62847190525111 +444000 ekin = 3.36753883941706 | erot = 3.56276348928583 | epot = -12.5587742343254 | etot = -5.6284719056225 +445000 ekin = 3.4267604657865 | erot = 3.5594202591977 | epot = -12.6146526309536 | etot = -5.62847190596943 +446000 ekin = 3.4732438364428 | erot = 3.55443462309391 | epot = -12.6561503658096 | etot = -5.6284719062729 +447000 ekin = 3.50497354373429 | erot = 3.54511419619686 | epot = -12.6785596464417 | etot = -5.62847190651056 +448000 ekin = 3.52056213080159 | erot = 3.52974100709658 | epot = -12.6787750444224 | etot = -5.62847190652427 +449000 ekin = 3.51939696587387 | erot = 3.50705904510086 | epot = -12.654927917584 | etot = -5.62847190660929 +450000 ekin = 3.5016453604961 | erot = 3.47565071064701 | epot = -12.6057679777469 | etot = -5.6284719066038 +451000 ekin = 3.46824790703459 | erot = 3.43472151201005 | epot = -12.5314413255503 | etot = -5.62847190650569 +452000 ekin = 3.42090312732073 | erot = 3.38414558727626 | epot = -12.4335206209132 | etot = -5.62847190631618 +453000 ekin = 3.36201791823597 | erot = 3.32449206043664 | epot = -12.314981884713 | etot = -5.62847190604043 +454000 ekin = 3.2946331605557 | erot = 3.2570173981732 | epot = -12.1801224644173 | etot = -5.62847190568836 +455000 ekin = 3.22233274893701 | erot = 3.18360703275134 | epot = -12.034411686962 | etot = -5.62847190527366 +456000 ekin = 3.14914248623648 | erot = 3.1066699219646 | epot = -11.8842843130161 | etot = -5.62847190481507 +457000 ekin = 3.07939737168114 | erot = 3.02894564057018 | epot = -11.7368149165949 | etot = -5.62847190434356 +458000 ekin = 3.01756413263389 | erot = 2.95322108561181 | epot = -11.5992571221015 | etot = -5.62847190385585 +459000 ekin = 2.96810632519469 | erot = 2.88249754734906 | epot = -11.4790757759526 | etot = -5.62847190340889 +460000 ekin = 2.93513888999174 | erot = 2.81955267519756 | epot = -11.3831634682281 | etot = -5.62847190303883 +461000 ekin = 2.92205746385285 | erot = 2.76669234906914 | epot = -11.3172217157053 | etot = -5.62847190278331 +462000 ekin = 2.93114290147914 | erot = 2.72556812594822 | epot = -11.2851829301037 | etot = -5.62847190267634 +463000 ekin = 2.96319319678514 | erot = 2.69703193760489 | epot = -11.2886970371302 | etot = -5.62847190274017 +464000 ekin = 3.01726238567802 | erot = 2.68105615129255 | epot = -11.3267904399496 | etot = -5.62847190297905 +465000 ekin = 3.09058398931814 | erot = 2.67674994758071 | epot = -11.3958058402727 | etot = -5.62847190337382 +466000 ekin = 3.17872270900337 | erot = 2.68248866699199 | epot = -11.4896832798798 | etot = -5.6284719038844 +467000 ekin = 3.27594114496388 | erot = 2.69614045584313 | epot = -11.6005535052654 | etot = -5.62847190445843 +468000 ekin = 3.37571282134116 | erot = 2.71534026238797 | epot = -11.7195249887722 | etot = -5.6284719050431 +469000 ekin = 3.47128178262872 | erot = 2.73774679761809 | epot = -11.8375004858403 | etot = -5.62847190559353 +470000 ekin = 3.55617737698809 | erot = 2.76123628660059 | epot = -11.9458855696663 | etot = -5.62847190607764 +471000 ekin = 3.62463309398908 | erot = 2.7840279000278 | epot = -12.0371329004895 | etot = -5.62847190647262 +472000 ekin = 3.6719055989109 | erot = 2.80477124777919 | epot = -12.1051487534503 | etot = -5.62847190676026 +473000 ekin = 3.69451868438929 | erot = 2.8226311614059 | epot = -12.1456217527189 | etot = -5.62847190692371 +474000 ekin = 3.69045746328685 | erot = 2.83737882568705 | epot = -12.1563081959231 | etot = -5.62847190694923 +475000 ekin = 3.6593211634728 | erot = 2.84946541727549 | epot = -12.137258487577 | etot = -5.62847190682866 +476000 ekin = 3.60242486134417 | erot = 2.86004016499793 | epot = -12.0909369329056 | etot = -5.6284719065635 +477000 ekin = 3.52282746235149 | erot = 2.87088465737282 | epot = -12.0221840258896 | etot = -5.6284719061653 +478000 ekin = 3.42525452624621 | erot = 2.88424967272427 | epot = -11.9379761046398 | etot = -5.62847190566935 +479000 ekin = 3.31588349733366 | erot = 2.90254646899046 | epot = -11.8469018714438 | etot = -5.6284719051197 +480000 ekin = 3.20192949240033 | erot = 2.92801081394181 | epot = -11.7584122109241 | etot = -5.62847190458198 +481000 ekin = 3.09102106834982 | erot = 2.96227510044524 | epot = -11.6817680729323 | etot = -5.62847190413723 +482000 ekin = 2.99039932395874 | erot = 3.00590839373353 | epot = -11.6247796215598 | etot = -5.62847190386749 +483000 ekin = 2.90605693339778 | erot = 3.057998029687 | epot = -11.5925268669243 | etot = -5.62847190383955 +484000 ekin = 2.84200171520451 | erot = 3.11586840868176 | epot = -11.5863420279687 | etot = -5.62847190408239 +485000 ekin = 2.81072036470337 | erot = 3.03665546450253 | epot = -11.4758477217461 | etot = -5.62847189254017 +486000 ekin = 2.99172671803144 | erot = 2.8902858860562 | epot = -11.5104845148187 | etot = -5.6284719107311 +487000 ekin = 3.04661020878249 | erot = 2.8951625715582 | epot = -11.570244685978 | etot = -5.62847190563732 +488000 ekin = 3.02813445458055 | erot = 2.91755814176744 | epot = -11.5741645018864 | etot = -5.62847190553838 +489000 ekin = 3.02918173187053 | erot = 2.94703274344757 | epot = -11.6046863809234 | etot = -5.62847190560528 +490000 ekin = 3.04920929974131 | erot = 2.98299921442212 | epot = -11.6606804199871 | etot = -5.62847190582362 +491000 ekin = 3.08564623422607 | erot = 3.02458607706386 | epot = -11.738704217412 | etot = -5.6284719061221 +492000 ekin = 3.1342665021678 | erot = 3.07113014043047 | epot = -11.8338685490392 | etot = -5.62847190644092 +493000 ekin = 3.19024782358984 | erot = 3.1224673638186 | epot = -11.9411870940572 | etot = -5.62847190664872 +494000 ekin = 3.24418110409375 | erot = 3.17757093534113 | epot = -12.0502240479546 | etot = -5.62847200851974 +495000 ekin = 3.12930691892923 | erot = 3.12025770016925 | epot = -11.8780365339305 | etot = -5.62847191483198 +496000 ekin = 3.38154400840661 | erot = 3.12702216687179 | epot = -12.1370381394914 | etot = -5.62847196421296 +497000 ekin = 3.53796334308702 | erot = 3.21345240190075 | epot = -12.3798876662285 | etot = -5.62847192124069 +498000 ekin = 3.54725242248558 | erot = 3.31274815699891 | epot = -12.4884725007429 | etot = -5.62847192125837 +499000 ekin = 3.54686752395165 | erot = 3.42936350676291 | epot = -12.6047029520642 | etot = -5.62847192134968 +500000 ekin = 3.53611629145284 | erot = 3.56214471853519 | epot = -12.7267329315047 | etot = -5.62847192151662 +501000 ekin = 3.51474019583872 | erot = 3.70831240067005 | epot = -12.8515245182709 | etot = -5.62847192176214 +502000 ekin = 3.48291543615718 | erot = 3.8635159786248 | epot = -12.9749033367771 | etot = -5.62847192199511 +503000 ekin = 3.44167367982098 | erot = 4.02200657199432 | epot = -13.0921521741673 | etot = -5.62847192235205 +504000 ekin = 3.39166561935164 | erot = 4.17733332046514 | epot = -13.1974708625621 | etot = -5.62847192274537 +505000 ekin = 3.33344269447494 | erot = 4.32266370131248 | epot = -13.2845783189239 | etot = -5.62847192313651 +506000 ekin = 3.26726906275998 | erot = 4.45157764167683 | epot = -13.3473186278406 | etot = -5.62847192340378 +507000 ekin = 3.19388361646075 | erot = 4.55898983233121 | epot = -13.3813453722816 | etot = -5.62847192348966 +508000 ekin = 3.11462724045838 | erot = 4.64207406475665 | epot = -13.385173228554 | etot = -5.62847192333901 +509000 ekin = 3.03154551887422 | erot = 4.70083202647248 | epot = -13.360849468307 | etot = -5.6284719229603 +510000 ekin = 2.94513058609306 | erot = 4.73730594225058 | epot = -13.3109084508342 | etot = -5.62847192249056 +511000 ekin = 2.85640718492639 | erot = 4.75516581384965 | epot = -13.2400449207019 | etot = -5.62847192192582 +512000 ekin = 2.76854482523754 | erot = 4.75962991524841 | epot = -13.1566466618552 | etot = -5.62847192136923 +513000 ekin = 2.68465921482265 | erot = 4.75599513194798 | epot = -13.0691262676736 | etot = -5.62847192090298 +514000 ekin = 2.60745568313821 | erot = 4.74870168659019 | epot = -12.984629290316 | etot = -5.62847192058764 +515000 ekin = 2.53899080264135 | erot = 4.74082869236398 | epot = -12.9082914154155 | etot = -5.62847192041015 +516000 ekin = 2.48057862897191 | erot = 4.73416754059327 | epot = -12.8432180899264 | etot = -5.62847192036126 +517000 ekin = 2.43281299021006 | erot = 4.72933651066864 | epot = -12.7906214212866 | etot = -5.62847192040792 +518000 ekin = 2.39567246201647 | erot = 4.72611868187727 | epot = -12.7502630644033 | etot = -5.62847192050952 +519000 ekin = 2.36868008078425 | erot = 4.72386163450201 | epot = -12.7210136359116 | etot = -5.62847192062535 +520000 ekin = 2.351090680328 | erot = 4.72186744267955 | epot = -12.7014300437272 | etot = -5.62847192071969 +521000 ekin = 2.34207426125026 | erot = 4.71970227690684 | epot = -12.6902484589283 | etot = -5.62847192077116 +522000 ekin = 2.34085858397537 | erot = 4.71735113717328 | epot = -12.6866816419269 | etot = -5.62847192077827 +523000 ekin = 2.34541603966011 | erot = 4.65571671246147 | epot = -12.6296046826087 | etot = -5.62847193048713 +524000 ekin = 2.39460269545043 | erot = 4.54409239654082 | epot = -12.5671670122753 | etot = -5.62847192028407 +525000 ekin = 2.51755565356127 | erot = 4.49060445310787 | epot = -12.6366320323991 | etot = -5.62847192572995 +526000 ekin = 2.63891940342127 | erot = 4.49670026119053 | epot = -12.7640916024026 | etot = -5.62847193779077 +527000 ekin = 2.68130557076811 | erot = 4.5050333736858 | epot = -12.8148108745534 | etot = -5.62847193009947 +528000 ekin = 2.71450795008385 | erot = 4.51098798623258 | epot = -12.8539678665158 | etot = -5.62847193019934 +529000 ekin = 2.74727192391268 | erot = 4.51402301137498 | epot = -12.889766865557 | etot = -5.62847193026936 +530000 ekin = 2.77952118310714 | erot = 4.51256666248204 | epot = -12.9205597758847 | etot = -5.62847193029555 +531000 ekin = 2.81130699774894 | erot = 4.50555264763214 | epot = -12.9453315756554 | etot = -5.62847193027431 +532000 ekin = 2.84274553222903 | erot = 4.49253106977664 | epot = -12.9637485322199 | etot = -5.62847193021427 +533000 ekin = 2.87393313764405 | erot = 4.47361780231794 | epot = -12.9760228700973 | etot = -5.62847193013535 +534000 ekin = 2.90486933801811 | erot = 4.4492884461532 | epot = -12.9826297142323 | etot = -5.62847193006102 +535000 ekin = 2.9354151985895 | erot = 4.42010482065 | epot = -12.9839919492465 | etot = -5.62847193000696 +536000 ekin = 2.96529830141012 | erot = 4.38649798396423 | epot = -12.980268215352 | etot = -5.62847192997765 +537000 ekin = 2.99415467144036 | erot = 4.34867665838155 | epot = -12.9713032597798 | etot = -5.62847192995786 +538000 ekin = 3.02158801642316 | erot = 4.30669342612465 | epot = -12.9567533725053 | etot = -5.62847192995749 +539000 ekin = 3.04722844366539 | erot = 4.26048951908749 | epot = -12.9361898927062 | etot = -5.62847192995329 +540000 ekin = 3.07077963637244 | erot = 4.21000980483243 | epot = -12.9092613711412 | etot = -5.62847192993634 +541000 ekin = 3.09204730610561 | erot = 4.15535061590596 | epot = -12.8758698519132 | etot = -5.62847192990163 +542000 ekin = 3.11094831327871 | erot = 4.0968267184393 | epot = -12.8362469615667 | etot = -5.62847192984872 +543000 ekin = 3.12750284877782 | erot = 4.0349938313643 | epot = -12.7909686099225 | etot = -5.62847192978037 +544000 ekin = 3.14181233913617 | erot = 3.97062692625898 | epot = -12.7409111951006 | etot = -5.62847192970544 +545000 ekin = 3.15402369274461 | erot = 3.90462208421789 | epot = -12.6871177065949 | etot = -5.62847192963236 +546000 ekin = 3.16427777374247 | erot = 3.83809465732085 | epot = -12.6308443606275 | etot = -5.62847192956418 +547000 ekin = 3.17263245312541 | erot = 3.77248542241658 | epot = -12.5735898050789 | etot = -5.62847192953695 +548000 ekin = 3.1790511412543 | erot = 3.70842416479202 | epot = -12.5159472355905 | etot = -5.62847192954419 +549000 ekin = 3.18335924850198 | erot = 3.64619443426463 | epot = -12.4580256123109 | etot = -5.62847192954424 +550000 ekin = 3.18506506657657 | erot = 3.58603484431588 | epot = -12.3995718405506 | etot = -5.62847192965811 +551000 ekin = 3.18354118863699 | erot = 3.52751972617015 | epot = -12.339532844604 | etot = -5.62847192979682 +552000 ekin = 3.17814056097155 | erot = 3.46973317231156 | epot = -12.2763456632213 | etot = -5.62847192993822 +553000 ekin = 3.16816249044583 | erot = 3.41187716295382 | epot = -12.208511583449 | etot = -5.62847193004933 +554000 ekin = 3.1529746405247 | erot = 3.35363386894367 | epot = -12.1350804395611 | etot = -5.62847193009276 +555000 ekin = 3.13218065537644 | erot = 3.2955493159329 | epot = -12.0562019013434 | etot = -5.6284719300341 +556000 ekin = 3.10581995737785 | erot = 3.23932890456271 | epot = -11.9736207917914 | etot = -5.62847192985081 +557000 ekin = 3.07457883891359 | erot = 3.18795403309369 | epot = -11.8910048015426 | etot = -5.62847192953529 +558000 ekin = 3.03998262646176 | erot = 3.14553707337718 | epot = -11.8139916289527 | etot = -5.62847192911379 +559000 ekin = 3.0045037897678 | erot = 3.11693712838727 | epot = -11.749912846741 | etot = -5.62847192858597 +560000 ekin = 2.97145203613503 | erot = 3.1075818198801 | epot = -11.7075057840427 | etot = -5.62847192802759 +561000 ekin = 2.94451934091812 | erot = 3.12267269755829 | epot = -11.6956639660457 | etot = -5.62847192756929 +562000 ekin = 2.92714140946132 | erot = 3.16633554924112 | epot = -11.7219488859557 | etot = -5.62847192725328 +563000 ekin = 2.92206147613056 | erot = 3.24077054355409 | epot = -11.7913039468894 | etot = -5.6284719272047 +564000 ekin = 2.93031627640334 | erot = 3.34563410956691 | epot = -11.9044223134757 | etot = -5.62847192750548 +565000 ekin = 2.95068712275629 | erot = 3.47751232963896 | epot = -12.0566713805547 | etot = -5.62847192815944 +566000 ekin = 2.97962685503355 | erot = 3.62985521357708 | epot = -12.2379539977413 | etot = -5.62847192913063 +567000 ekin = 3.0117159355677 | erot = 3.7932447734004 | epot = -12.433432639289 | etot = -5.62847193032094 +568000 ekin = 3.04054477428489 | erot = 3.95610049176935 | epot = -12.6251171976474 | etot = -5.62847193159311 +569000 ekin = 3.05981811060729 | erot = 4.10576505740202 | epot = -12.7940551007975 | etot = -5.62847193278818 +570000 ekin = 3.06446758280182 | erot = 4.2298722071793 | epot = -12.9228117237277 | etot = -5.62847193374654 +571000 ekin = 3.05159191024699 | erot = 4.31782950116782 | epot = -12.997893345746 | etot = -5.62847193433116 +572000 ekin = 3.02108996824198 | erot = 4.36217384053392 | epot = -13.0117357432293 | etot = -5.62847193445341 +573000 ekin = 2.97589592632213 | erot = 4.35953364459578 | epot = -12.9639015050098 | etot = -5.62847193409191 +574000 ekin = 2.92177260934326 | erot = 4.31098813660637 | epot = -12.8612326792533 | etot = -5.62847193330371 +575000 ekin = 2.86675845133009 | erot = 4.22206447616752 | epot = -12.7172948575409 | etot = -5.62847193004325 +576000 ekin = 2.82238695031475 | erot = 4.11002108712494 | epot = -12.560879966962 | etot = -5.62847192952236 +577000 ekin = 2.79586021275311 | erot = 3.98405314245172 | epot = -12.4083852842971 | etot = -5.62847192909222 +578000 ekin = 2.79062678636397 | erot = 3.84816173910418 | epot = -12.2672604543212 | etot = -5.62847192885309 +579000 ekin = 2.80727876752649 | erot = 3.70630768407174 | epot = -12.1420583804352 | etot = -5.62847192883696 +580000 ekin = 2.84308800272595 | erot = 3.56147502231061 | epot = -12.0330349543403 | etot = -5.62847192930378 +581000 ekin = 2.89275945157798 | erot = 3.41677708044794 | epot = -11.9380084614041 | etot = -5.62847192937814 +582000 ekin = 2.94948274088248 | erot = 3.27852635636522 | epot = -11.8564810266952 | etot = -5.62847192944751 +583000 ekin = 3.00600312771789 | erot = 3.15339507871819 | epot = -11.7878701358669 | etot = -5.62847192943084 +584000 ekin = 3.05615870295294 | erot = 3.04800743036932 | epot = -11.7326380626285 | etot = -5.62847192930623 +585000 ekin = 3.09596263902806 | erot = 2.96828908155645 | epot = -11.6927236496809 | etot = -5.62847192909636 +586000 ekin = 3.12407298195256 | erot = 2.91878541591358 | epot = -11.6713303266982 | etot = -5.62847192883209 +587000 ekin = 3.1417461421833 | erot = 2.90225430094311 | epot = -11.672472371669 | etot = -5.62847192854258 +588000 ekin = 3.15240031620553 | erot = 2.91960613642982 | epot = -11.7004783809018 | etot = -5.62847192826648 +589000 ekin = 3.16081808255434 | erot = 2.97006448172946 | epot = -11.7593544923294 | etot = -5.62847192804564 +590000 ekin = 3.17204827383965 | erot = 3.05134069925084 | epot = -11.8518609010118 | etot = -5.6284719279213 +591000 ekin = 3.19150299837461 | erot = 3.16015018729065 | epot = -11.9801251136635 | etot = -5.62847192799819 +592000 ekin = 3.22264872300333 | erot = 3.29204057512014 | epot = -12.1431612264465 | etot = -5.62847192832309 +593000 ekin = 3.26585695460439 | erot = 3.44092346933461 | epot = -12.3352523528035 | etot = -5.62847192886452 +594000 ekin = 3.31918005191763 | erot = 3.59965335596714 | epot = -12.5473053374549 | etot = -5.62847192957014 +595000 ekin = 3.37897127078336 | erot = 3.76045843937389 | epot = -12.7679016404524 | etot = -5.62847193029511 +596000 ekin = 3.4382406857396 | erot = 3.91359738321914 | epot = -12.980310001589 | etot = -5.62847193263027 +597000 ekin = 3.48744876793451 | erot = 4.0478243785771 | epot = -13.1637450797755 | etot = -5.62847193326394 +598000 ekin = 3.52187002165693 | erot = 4.15698580423063 | epot = -13.3073277595056 | etot = -5.62847193361804 +599000 ekin = 3.53831455068156 | erot = 4.23767846708786 | epot = -13.4044649514591 | etot = -5.6284719336897 +600000 ekin = 3.53510970426307 | erot = 4.28920847102939 | epot = -13.4527901088142 | etot = -5.62847193352171 +601000 ekin = 3.51191041814396 | erot = 4.31320178192835 | epot = -13.453584133256 | etot = -5.62847193318372 +602000 ekin = 3.46937521143132 | erot = 4.3129515273753 | epot = -13.410798671557 | etot = -5.6284719327504 +603000 ekin = 3.40882221238478 | erot = 4.29270411926118 | epot = -13.3299982639291 | etot = -5.62847193228318 +604000 ekin = 3.33194570979922 | erot = 4.2570524586158 | epot = -13.2174701002375 | etot = -5.62847193182252 +605000 ekin = 3.2406264378616 | erot = 4.21052248035532 | epot = -13.0796208496054 | etot = -5.62847193138844 +606000 ekin = 3.13683319325246 | erot = 4.15735875793748 | epot = -12.9226638821749 | etot = -5.62847193098499 +607000 ekin = 3.02259481110418 | erot = 4.1014670377034 | epot = -12.7525337794138 | etot = -5.62847193060621 +608000 ekin = 2.90001652262392 | erot = 4.04645475154674 | epot = -12.5749432044128 | etot = -5.62847193024212 +609000 ekin = 2.77131728811454 | erot = 3.99571460779313 | epot = -12.3955038257901 | etot = -5.62847192988241 +610000 ekin = 2.63886938894673 | erot = 3.95250622989986 | epot = -12.219847548367 | etot = -5.62847192952046 +611000 ekin = 2.50524882255296 | erot = 3.92003293777274 | epot = -12.0537536891925 | etot = -5.6284719288668 +612000 ekin = 2.37382087286659 | erot = 3.9021886985327 | epot = -11.9044814999374 | etot = -5.62847192853806 +613000 ekin = 2.24769613368194 | erot = 3.9018678874881 | epot = -11.7780359493991 | etot = -5.62847192822908 +614000 ekin = 2.12975142867636 | erot = 3.92103062113487 | epot = -11.6792539777934 | etot = -5.62847192798222 +615000 ekin = 2.02283676467958 | erot = 3.96080056826795 | epot = -11.61210926078 | etot = -5.62847192783249 +616000 ekin = 1.92967019046992 | erot = 4.02099162181975 | epot = -11.5791337401025 | etot = -5.62847192781281 +617000 ekin = 1.85273791860752 | erot = 4.09974474402214 | epot = -11.5809545905817 | etot = -5.62847192795206 +618000 ekin = 1.794202962929 | erot = 4.1932270362042 | epot = -11.615901927397 | etot = -5.62847192826377 +619000 ekin = 1.75583197424594 | erot = 4.29552606645212 | epot = -11.6798299694312 | etot = -5.62847192873316 +620000 ekin = 1.73895870093018 | erot = 4.39891672374147 | epot = -11.7663473539779 | etot = -5.62847192930629 +621000 ekin = 1.7444983470959 | erot = 4.49462250667638 | epot = -11.867592783664 | etot = -5.62847192989172 +622000 ekin = 1.7730087572002 | erot = 4.57403518097385 | epot = -11.9755158685574 | etot = -5.62847193038335 +623000 ekin = 1.82476626658183 | erot = 4.63011744405485 | epot = -12.0833556413331 | etot = -5.62847193069639 +624000 ekin = 1.89980556087252 | erot = 4.65854151408734 | epot = -12.1868190057596 | etot = -5.62847193079971 +625000 ekin = 1.99788930997527 | erot = 4.65817060180771 | epot = -12.284531842505 | etot = -5.62847193072199 +626000 ekin = 2.11841938996492 | erot = 4.63077870107517 | epot = -12.3776700215701 | etot = -5.62847193053003 +627000 ekin = 2.26034340487478 | erot = 4.58024268413209 | epot = -12.4690580193001 | etot = -5.62847193029324 +628000 ekin = 2.42211143968505 | erot = 4.51161612070374 | epot = -12.5621994904549 | etot = -5.62847193006612 +629000 ekin = 2.60047669397099 | erot = 4.43316974525301 | epot = -12.6621183686296 | etot = -5.62847192940563 +630000 ekin = 2.75035748976938 | erot = 4.3100390575377 | epot = -12.6888685130155 | etot = -5.62847196570841 +631000 ekin = 2.81471524115763 | erot = 4.11774535995794 | epot = -12.5609325368805 | etot = -5.62847193576491 +632000 ekin = 2.95867552203419 | erot = 4.07926707228417 | epot = -12.6664145271904 | etot = -5.628471932872 +633000 ekin = 3.21010693586428 | erot = 4.2058132684618 | epot = -13.0443921664052 | etot = -5.62847196207909 +634000 ekin = 3.41641131483616 | erot = 4.25928215940961 | epot = -13.3041654106185 | etot = -5.62847193637274 +635000 ekin = 3.57385274060691 | erot = 4.24018711613006 | epot = -13.44251179388 | etot = -5.62847193714308 +636000 ekin = 3.71894531180235 | erot = 4.21896102715994 | epot = -13.5663782769414 | etot = -5.62847193797916 +637000 ekin = 3.84555962838986 | erot = 4.1900953900669 | epot = -13.6641269571315 | etot = -5.62847193867471 +638000 ekin = 3.94874232718941 | erot = 4.14881281942018 | epot = -13.7260270856532 | etot = -5.62847193904357 +639000 ekin = 4.02564653200494 | erot = 4.09271382137468 | epot = -13.7468322923892 | etot = -5.62847193900963 +640000 ekin = 4.07582551370951 | erot = 4.02260436138313 | epot = -13.7269018137147 | etot = -5.62847193862206 +641000 ekin = 4.10019063770968 | erot = 3.9420341958717 | epot = -13.6706967720501 | etot = -5.62847193846869 +642000 ekin = 4.09923586001873 | erot = 3.85569636532128 | epot = -13.5834041632297 | etot = -5.62847193788973 +643000 ekin = 4.07616079987132 | erot = 3.76850329654985 | epot = -13.4731360337866 | etot = -5.62847193736548 +644000 ekin = 4.03483546313061 | erot = 3.68428538432172 | epot = -13.3475927844035 | etot = -5.62847193695118 +645000 ekin = 3.97939693540902 | erot = 3.60521279265152 | epot = -13.2130816646903 | etot = -5.62847193662975 +646000 ekin = 3.91424157399056 | erot = 3.53197746531507 | epot = -13.0746909756527 | etot = -5.62847193634712 +647000 ekin = 3.84412108358683 | erot = 3.46430751188328 | epot = -12.9369005316585 | etot = -5.62847193618836 +648000 ekin = 3.77442093453599 | erot = 3.40030625109366 | epot = -12.8031991215005 | etot = -5.62847193587081 +649000 ekin = 3.71064844405663 | erot = 3.33902116868532 | epot = -12.6781415482909 | etot = -5.62847193554899 +650000 ekin = 3.65777288964813 | erot = 3.28036981765667 | epot = -12.5666146425814 | etot = -5.62847193527658 +651000 ekin = 3.61962254754419 | erot = 3.22458240436025 | epot = -12.4726768870043 | etot = -5.6284719350999 +652000 ekin = 3.59838866982073 | erot = 3.17201593042627 | epot = -12.3988765352844 | etot = -5.62847193503738 +653000 ekin = 3.59447660059077 | erot = 3.12302902484626 | epot = -12.3459775605094 | etot = -5.62847193507238 +654000 ekin = 3.60674141919119 | erot = 3.07797678365128 | epot = -12.3131901380073 | etot = -5.62847193516482 +655000 ekin = 3.6329884130958 | erot = 3.03728497071295 | epot = -12.2987453190845 | etot = -5.62847193527574 +656000 ekin = 3.67052655524344 | erot = 3.00147990290593 | epot = -12.3004783935418 | etot = -5.62847193539242 +657000 ekin = 3.71734630696999 | erot = 2.97084073542309 | epot = -12.3166589777923 | etot = -5.6284719353992 +658000 ekin = 3.75778663136606 | erot = 2.94872940841724 | epot = -12.3349879985774 | etot = -5.62847195879406 +659000 ekin = 3.70128994133686 | erot = 2.99267200660902 | epot = -12.322433883679 | etot = -5.62847193573312 +660000 ekin = 3.77980484666389 | erot = 3.05081678588696 | epot = -12.459093596632 | etot = -5.62847196408119 +661000 ekin = 3.87674047113916 | erot = 3.02043722437581 | epot = -12.5256496408831 | etot = -5.62847194536809 +662000 ekin = 3.96189665293746 | erot = 2.9729451065493 | epot = -12.5633137057978 | etot = -5.62847194631105 +663000 ekin = 4.03233992104381 | erot = 2.90724728968081 | epot = -12.5680591570602 | etot = -5.62847194633553 +664000 ekin = 4.08703350769439 | erot = 2.82371074134662 | epot = -12.5392161948574 | etot = -5.62847194581638 +665000 ekin = 4.13016908264132 | erot = 2.72591755779726 | epot = -12.4845585854975 | etot = -5.62847194505895 +666000 ekin = 4.1648576368289 | erot = 2.62158318082323 | epot = -12.414912761733 | etot = -5.62847194408083 +667000 ekin = 4.19388444222523 | erot = 2.52048046577159 | epot = -12.3428368513194 | etot = -5.62847194332254 +668000 ekin = 4.21970111352808 | erot = 2.43117566558869 | epot = -12.2793487218878 | etot = -5.62847194277106 +669000 ekin = 4.24419480049408 | erot = 2.35970998773563 | epot = -12.2323767306416 | etot = -5.62847194241189 +670000 ekin = 4.26650932826211 | erot = 2.31009212997052 | epot = -12.2050734005156 | etot = -5.62847194228301 +671000 ekin = 4.28028750565683 | erot = 2.28394068968216 | epot = -12.1927001375696 | etot = -5.62847194223062 +672000 ekin = 4.28604953799413 | erot = 2.28087700961919 | epot = -12.195398489808 | etot = -5.62847194219469 +673000 ekin = 4.28538320965501 | erot = 2.29981058129386 | epot = -12.2136657330995 | etot = -5.62847194215067 +674000 ekin = 4.28032637869879 | erot = 2.33931520008498 | epot = -12.2481135208938 | etot = -5.62847194211004 +675000 ekin = 4.27310613126655 | erot = 2.39770546347679 | epot = -12.299283536864 | etot = -5.62847194212067 +676000 ekin = 4.26563141826313 | erot = 2.47283047868407 | epot = -12.3669338392281 | etot = -5.62847194228089 +677000 ekin = 4.25873601006311 | erot = 2.56159475148419 | epot = -12.4488027041865 | etot = -5.62847194263915 +678000 ekin = 4.25154383389769 | erot = 2.65951246674432 | epot = -12.5395282438879 | etot = -5.62847194324589 +679000 ekin = 4.24120573445568 | erot = 2.76057514762954 | epot = -12.630252826131 | etot = -5.62847194404578 +680000 ekin = 4.2232005116225 | erot = 2.85770689117101 | epot = -12.7093793476694 | etot = -5.62847194487586 +681000 ekin = 4.19242845434314 | erot = 2.94400272560173 | epot = -12.7649031254502 | etot = -5.62847194550537 +682000 ekin = 4.14477706321235 | erot = 3.01435956400889 | epot = -12.7876085729734 | etot = -5.62847194575211 +683000 ekin = 4.07850194563539 | erot = 3.06669689322157 | epot = -12.7736707844239 | etot = -5.62847194556698 +684000 ekin = 3.98766788563961 | erot = 3.0906277066639 | epot = -12.7067675426958 | etot = -5.62847195039226 +685000 ekin = 3.87609976013985 | erot = 3.07213118871214 | epot = -12.5767028925343 | etot = -5.62847194368236 +686000 ekin = 3.78865422776275 | erot = 3.05379982547376 | epot = -12.4709259955926 | etot = -5.62847194235608 +687000 ekin = 3.72885638105159 | erot = 3.05128310414022 | epot = -12.4086114324289 | etot = -5.62847194723706 +688000 ekin = 3.65488085441971 | erot = 3.04382149778312 | epot = -12.327174298549 | etot = -5.62847194634615 +689000 ekin = 3.57606770123459 | erot = 3.0383425251152 | epot = -12.2428821719897 | etot = -5.6284719456399 +690000 ekin = 3.51634425539962 | erot = 3.04775260801092 | epot = -12.1925688085377 | etot = -5.62847194512715 +691000 ekin = 3.47971445724813 | erot = 3.07622358482834 | epot = -12.1844099869499 | etot = -5.62847194487341 +692000 ekin = 3.46765181239654 | erot = 3.12642449720365 | epot = -12.2225482545402 | etot = -5.62847194494003 +693000 ekin = 3.47854301535925 | erot = 3.19918358101293 | epot = -12.3061985417131 | etot = -5.6284719453409 +694000 ekin = 3.50760869782508 | erot = 3.29340441047875 | epot = -12.4294850543218 | etot = -5.628471946018 +695000 ekin = 3.54747029144369 | erot = 3.40637947907432 | epot = -12.5823217173717 | etot = -5.62847194685366 +696000 ekin = 3.58927155144407 | erot = 3.53441505488866 | epot = -12.7521585540429 | etot = -5.62847194771015 +697000 ekin = 3.62399868501821 | erot = 3.67347767301132 | epot = -12.9259483064947 | etot = -5.6284719484652 +698000 ekin = 3.64429609735003 | erot = 3.81929275596897 | epot = -13.0920608024297 | etot = -5.62847194911072 +699000 ekin = 3.64411727630314 | erot = 3.96826912294918 | epot = -13.2408583487786 | etot = -5.62847194952627 +700000 ekin = 3.61972386457296 | erot = 4.11779628925705 | epot = -13.3659921035235 | etot = -5.62847194969347 +701000 ekin = 3.57045543113338 | erot = 4.26605645138673 | epot = -13.4649838322621 | etot = -5.62847194974201 +702000 ekin = 3.49917622932028 | erot = 4.41037029517899 | epot = -13.5380184741164 | etot = -5.62847194961714 +703000 ekin = 3.4107997813188 | erot = 4.54773448502706 | epot = -13.587006215731 | etot = -5.62847194938518 +704000 ekin = 3.31149657235527 | erot = 4.67560464114877 | epot = -13.6155731625935 | etot = -5.62847194908948 +705000 ekin = 3.20807903028367 | erot = 4.79162132914824 | epot = -13.6281723082198 | etot = -5.62847194878786 +706000 ekin = 3.10702043878188 | erot = 4.89365607530917 | epot = -13.6291484626414 | etot = -5.62847194855037 +707000 ekin = 3.01353531392337 | erot = 4.97967086444126 | epot = -13.6216781268107 | etot = -5.62847194844611 +708000 ekin = 2.93091332927947 | erot = 5.04739802083869 | epot = -13.6067832986402 | etot = -5.62847194852201 +709000 ekin = 2.86026033856888 | erot = 5.09399325420687 | epot = -13.5827255415552 | etot = -5.62847194877949 +710000 ekin = 2.80069789519474 | erot = 5.11589857322537 | epot = -13.5450684175845 | etot = -5.62847194916438 +711000 ekin = 2.74994326387124 | erot = 5.10911210259413 | epot = -13.4875273160395 | etot = -5.62847194957416 +712000 ekin = 2.70509857008142 | erot = 5.06990681786419 | epot = -13.40347733783 | etot = -5.62847194988441 +713000 ekin = 2.66343594225847 | erot = 4.99582282624686 | epot = -13.2877307184944 | etot = -5.62847194998911 +714000 ekin = 2.62297982853256 | erot = 4.88658411870471 | epot = -13.1380358970756 | etot = -5.6284719498383 +715000 ekin = 2.58275404748242 | erot = 4.7445665056767 | epot = -12.9557925026135 | etot = -5.62847194945441 +716000 ekin = 2.54267933970092 | erot = 4.57461726525615 | epot = -12.7457685538738 | etot = -5.62847194891675 +717000 ekin = 2.50334692008347 | erot = 4.38348005515169 | epot = -12.5152989232394 | etot = -5.62847194800429 +718000 ekin = 2.46867182041133 | erot = 4.18280619357873 | epot = -12.2799499617377 | etot = -5.62847194774766 +719000 ekin = 2.44027484653412 | erot = 3.97913844337086 | epot = -12.0478852374019 | etot = -5.62847194749693 +720000 ekin = 2.41790751021186 | erot = 3.77617089355823 | epot = -11.8225503510262 | etot = -5.62847194725612 +721000 ekin = 2.40130900312515 | erot = 3.57751641421023 | epot = -11.6072973643638 | etot = -5.62847194702837 +722000 ekin = 2.39001969431688 | erot = 3.38620933386067 | epot = -11.4047009751991 | etot = -5.62847194702158 +723000 ekin = 2.3828880820675 | erot = 3.20447847638599 | epot = -11.2158385051777 | etot = -5.62847194672426 +724000 ekin = 2.38038137246863 | erot = 3.03585463118768 | epot = -11.0447079501099 | etot = -5.62847194645357 +725000 ekin = 2.38334904373452 | erot = 2.88343528895326 | epot = -10.8952562789009 | etot = -5.62847194621316 +726000 ekin = 2.39277988807573 | erot = 2.74974572538476 | epot = -10.770997559469 | etot = -5.6284719460085 +727000 ekin = 2.40968215732026 | erot = 2.63676770309079 | epot = -10.6749218062566 | etot = -5.62847194584551 +728000 ekin = 2.42515137975779 | erot = 2.5441214789684 | epot = -10.5977448180843 | etot = -5.62847195935808 +729000 ekin = 2.40297855327853 | erot = 2.51475999964849 | epot = -10.5462104923613 | etot = -5.62847193943428 +730000 ekin = 2.46310039280251 | erot = 2.5408883826994 | epot = -10.6324607144842 | etot = -5.62847193898228 +731000 ekin = 2.53308642092932 | erot = 2.54954386945172 | epot = -10.7111022294541 | etot = -5.6284719390731 +732000 ekin = 2.61398262091984 | erot = 2.5802487460378 | epot = -10.8227033062391 | etot = -5.62847193928148 +733000 ekin = 2.70404858447065 | erot = 2.63167940199874 | epot = -10.9641999261199 | etot = -5.62847193965049 +734000 ekin = 2.8005195006875 | erot = 2.70132929844069 | epot = -11.1303207393551 | etot = -5.62847194022687 +735000 ekin = 2.89941283719614 | erot = 2.78510796766437 | epot = -11.3129927459004 | etot = -5.62847194103986 +736000 ekin = 2.99560133060157 | erot = 2.87741009018683 | epot = -11.5014833618896 | etot = -5.62847194110119 +737000 ekin = 3.08481605483121 | erot = 2.97524489361586 | epot = -11.6885328904346 | etot = -5.62847194198753 +738000 ekin = 3.16217862814305 | erot = 3.07317374869036 | epot = -11.8638243196388 | etot = -5.6284719428054 +739000 ekin = 3.2233603721011 | erot = 3.16493875118342 | epot = -12.0167710666374 | etot = -5.62847194335292 +740000 ekin = 3.26585131612077 | erot = 3.24522139621343 | epot = -12.1395446567704 | etot = -5.62847194443622 +741000 ekin = 3.2837538249289 | erot = 3.29991441167503 | epot = -12.2121401810381 | etot = -5.62847194443414 +742000 ekin = 3.27631313133045 | erot = 3.32408611683988 | epot = -12.2288711921161 | etot = -5.6284719439458 +743000 ekin = 3.24737724786071 | erot = 3.32046927244631 | epot = -12.1963184635118 | etot = -5.62847194320475 +744000 ekin = 3.20210603594743 | erot = 3.2940155115945 | epot = -12.124593489965 | etot = -5.62847194242307 +745000 ekin = 3.14567705878359 | erot = 3.250335669825 | epot = -12.0244846703266 | etot = -5.62847194171797 +746000 ekin = 3.08279906261887 | erot = 3.19521988668621 | epot = -11.9064908901754 | etot = -5.62847194087029 +747000 ekin = 3.01768881724062 | erot = 3.13473855296553 | epot = -11.7808993105941 | etot = -5.62847194038797 +748000 ekin = 2.95302867416643 | erot = 3.07321432130338 | epot = -11.6547149354205 | etot = -5.62847193995069 +749000 ekin = 2.89104396118233 | erot = 3.01469856686716 | epot = -11.5342144675854 | etot = -5.62847193953596 +750000 ekin = 2.83379417403106 | erot = 2.96315742639844 | epot = -11.4254235395683 | etot = -5.62847193913884 +751000 ekin = 2.78329891254728 | erot = 2.92241777441717 | epot = -11.3341886257327 | etot = -5.62847193876824 +752000 ekin = 2.74156846290812 | erot = 2.89600799311955 | epot = -11.2660483944698 | etot = -5.6284719384421 +753000 ekin = 2.71056677603929 | erot = 2.88693753444364 | epot = -11.2259762486671 | etot = -5.62847193818419 +754000 ekin = 2.6921250262768 | erot = 2.89743125950373 | epot = -11.2180282238068 | etot = -5.62847193802625 +755000 ekin = 2.68776538332655 | erot = 2.92849871092333 | epot = -11.2447360323289 | etot = -5.62847193807897 +756000 ekin = 2.6984574300686 | erot = 2.97938409365199 | epot = -11.3063134619601 | etot = -5.62847193823949 +757000 ekin = 2.72458496390267 | erot = 3.04788425625457 | epot = -11.4009411587989 | etot = -5.62847193864169 +758000 ekin = 2.76540921261669 | erot = 3.12962823280928 | epot = -11.5235093847483 | etot = -5.6284719393223 +759000 ekin = 2.8186834204767 | erot = 3.21794575388076 | epot = -11.665101114623 | etot = -5.62847194026549 +760000 ekin = 2.88053746467355 | erot = 3.30429272387349 | epot = -11.8133021298986 | etot = -5.62847194135151 +761000 ekin = 2.94600007668104 | erot = 3.37947250531428 | epot = -11.9539445243258 | etot = -5.6284719423305 +762000 ekin = 3.01037281085116 | erot = 3.4356870034939 | epot = -12.0745317572401 | etot = -5.62847194289507 +763000 ekin = 3.07103775543011 | erot = 3.46881600045824 | epot = -12.1683256987372 | etot = -5.62847194284888 +764000 ekin = 3.12866395094601 | erot = 3.47975039663874 | epot = -12.2368862898265 | etot = -5.62847194224175 +765000 ekin = 3.186964331534 | erot = 3.47390232126689 | epot = -12.289338594139 | etot = -5.62847194133806 +766000 ekin = 3.25112146488291 | erot = 3.45917589039751 | epot = -12.3387692957354 | etot = -5.62847194045498 +767000 ekin = 3.32577328245099 | erot = 3.44357055988634 | epot = -12.3978157821634 | etot = -5.62847193982605 +768000 ekin = 3.41341833425398 | erot = 3.43342634914627 | epot = -12.4753166229595 | etot = -5.6284719395593 +769000 ekin = 3.51361597991924 | erot = 3.43258837675694 | epot = -12.5746762963404 | etot = -5.62847193966423 +770000 ekin = 3.62296220648689 | erot = 3.44225950910434 | epot = -12.6936936556792 | etot = -5.62847194008801 +771000 ekin = 3.67754210046274 | erot = 3.42051682780157 | epot = -12.7265308960792 | etot = -5.62847196781485 +772000 ekin = 3.59351734265618 | erot = 3.35849685511311 | epot = -12.5804861313175 | etot = -5.62847193354824 +773000 ekin = 3.58504863491028 | erot = 3.48413941777935 | epot = -12.6976599859675 | etot = -5.62847193327789 +774000 ekin = 3.69556246628016 | erot = 3.75600381412234 | epot = -13.0800382492094 | etot = -5.62847196880686 +775000 ekin = 3.75799647008904 | erot = 3.87395641041514 | epot = -13.2604248530579 | etot = -5.62847197255368 +776000 ekin = 3.76514931022827 | erot = 3.89275295650614 | epot = -13.2863742394607 | etot = -5.62847197272632 +777000 ekin = 3.74852837945355 | erot = 3.88975944446788 | epot = -13.2667597962775 | etot = -5.62847197235611 +778000 ekin = 3.71300754026299 | erot = 3.86527182247719 | epot = -13.2067513343813 | etot = -5.62847197164114 +779000 ekin = 3.66665793078762 | erot = 3.82295167621109 | epot = -13.118081577538 | etot = -5.62847197053928 +780000 ekin = 3.61972773146591 | erot = 3.76957330567891 | epot = -13.0177730064403 | etot = -5.62847196929548 +781000 ekin = 3.58276242526532 | erot = 3.7136827975555 | epot = -12.9249171910297 | etot = -5.62847196820893 +782000 ekin = 3.56434384288602 | erot = 3.66344621693003 | epot = -12.8562620273358 | etot = -5.62847196751975 +783000 ekin = 3.56907083378379 | erot = 3.62459601435148 | epot = -12.8221388155981 | etot = -5.62847196746287 +784000 ekin = 3.59655578173696 | erot = 3.59908724318581 | epot = -12.8241149927414 | etot = -5.62847196781863 +785000 ekin = 3.64263842874967 | erot = 3.58559579725084 | epot = -12.8567061945 | etot = -5.62847196849948 +786000 ekin = 3.7006136355618 | erot = 3.58032714330354 | epot = -12.9094127481587 | etot = -5.62847196929335 +787000 ekin = 3.76290289512677 | erot = 3.57827846521126 | epot = -12.9696533303932 | etot = -5.62847197005519 +788000 ekin = 3.82230691222562 | erot = 3.57432079358343 | epot = -13.0250996764915 | etot = -5.62847197068247 +789000 ekin = 3.87288355975678 | erot = 3.56402750531758 | epot = -13.0653830361885 | etot = -5.62847197111416 +790000 ekin = 3.91054381082331 | erot = 3.54422213347088 | epot = -13.08323791557 | etot = -5.62847197127583 +791000 ekin = 3.93344679953294 | erot = 3.51333982572675 | epot = -13.0752585964514 | etot = -5.62847197119174 +792000 ekin = 3.94193166944081 | erot = 3.47142235471328 | epot = -13.0418259950669 | etot = -5.62847197091279 +793000 ekin = 3.93805337425617 | erot = 3.41982689840428 | epot = -12.986352243173 | etot = -5.62847197051252 +794000 ekin = 3.92496167461381 | erot = 3.36081973476922 | epot = -12.9142533794446 | etot = -5.62847197006157 +795000 ekin = 3.90631843157168 | erot = 3.29713731835807 | epot = -12.8319277195454 | etot = -5.62847196961569 +796000 ekin = 3.88587920046634 | erot = 3.23158100816642 | epot = -12.7459321778441 | etot = -5.62847196921137 +797000 ekin = 3.86724402776889 | erot = 3.16668037667399 | epot = -12.6623963733129 | etot = -5.62847196886996 +798000 ekin = 3.85371944406203 | erot = 3.10446220751623 | epot = -12.5866536201763 | etot = -5.62847196859802 +799000 ekin = 3.84821326076136 | erot = 3.04637406906617 | epot = -12.5230592982213 | etot = -5.62847196839378 +800000 ekin = 3.85308746065549 | erot = 2.99338091171213 | epot = -12.4749403406177 | etot = -5.62847196825011 +801000 ekin = 3.86994742065734 | erot = 2.94620265107237 | epot = -12.4446220398909 | etot = -5.62847196816119 +802000 ekin = 3.8993874350338 | erot = 2.90559564270117 | epot = -12.4334550458614 | etot = -5.62847196812642 +803000 ekin = 3.9407745193352 | erot = 2.87255363216513 | epot = -12.4418001196493 | etot = -5.62847196814892 +804000 ekin = 3.99217445498752 | erot = 2.84833794209498 | epot = -12.4689843653142 | etot = -5.62847196823168 +805000 ekin = 4.05048828988904 | erot = 2.83432176511747 | epot = -12.5132820233799 | etot = -5.6284719683734 +806000 ekin = 4.11178329721603 | erot = 2.83170980398372 | epot = -12.5719650697689 | etot = -5.62847196856918 +807000 ekin = 4.17172086370491 | erot = 2.8412231850695 | epot = -12.6414160175871 | etot = -5.6284719688127 +808000 ekin = 4.22595471204195 | erot = 2.86283161337761 | epot = -12.7172582945189 | etot = -5.62847196909934 +809000 ekin = 4.27041103453903 | erot = 2.89559061471501 | epot = -12.7944736186782 | etot = -5.62847196942413 +810000 ekin = 4.30143579156689 | erot = 2.93761851750008 | epot = -12.8675262788428 | etot = -5.62847196977579 +811000 ekin = 4.31585912492563 | erot = 2.98622782467629 | epot = -12.9305589197353 | etot = -5.62847197013339 +812000 ekin = 4.31104963135019 | erot = 3.03819974824636 | epot = -12.9777213500609 | etot = -5.62847197046432 +813000 ekin = 4.28501152855523 | erot = 3.09015837165568 | epot = -13.0036418709409 | etot = -5.62847197072996 +814000 ekin = 4.23653530246598 | erot = 3.13897206813755 | epot = -13.0039793414967 | etot = -5.62847197089316 +815000 ekin = 4.1653704274989 | erot = 3.1820977391918 | epot = -12.975940137619 | etot = -5.62847197092834 +816000 ekin = 4.07236517441846 | erot = 3.21779646481347 | epot = -12.9186336100596 | etot = -5.62847197082768 +817000 ekin = 3.95951977389787 | erot = 3.24518380320904 | epot = -12.8331755477101 | etot = -5.62847197060317 +818000 ekin = 3.82991762626086 | erot = 3.26412066918763 | epot = -12.7225102657349 | etot = -5.62847197028639 +819000 ekin = 3.68753356638624 | erot = 3.27498902938163 | epot = -12.5909945656778 | etot = -5.62847196990993 +820000 ekin = 3.53699106705929 | erot = 3.278421491097 | epot = -12.4438845276731 | etot = -5.62847196951684 +821000 ekin = 3.38323613774945 | erot = 3.27505502174732 | epot = -12.2867631286362 | etot = -5.62847196913939 +822000 ekin = 3.23123737359429 | erot = 3.26537695353517 | epot = -12.1250862959258 | etot = -5.62847196879639 +823000 ekin = 3.08574116214281 | erot = 3.24970236656038 | epot = -11.9639154971954 | etot = -5.62847196849219 +824000 ekin = 2.95109919800351 | erot = 3.22828590251511 | epot = -11.8078570687366 | etot = -5.62847196821798 +825000 ekin = 2.83117167264324 | erot = 3.20152981054634 | epot = -11.6611734511487 | etot = -5.62847196795915 +826000 ekin = 2.72929448921519 | erot = 3.1702123297884 | epot = -11.5279787867064 | etot = -5.62847196770285 +827000 ekin = 2.64828540315214 | erot = 3.13564460890332 | epot = -11.4124019795009 | etot = -5.62847196744548 +828000 ekin = 2.59045268733176 | erot = 3.09968027809008 | epot = -11.3186049326203 | etot = -5.62847196719851 +829000 ekin = 2.55756748975069 | erot = 3.064548919671 | epot = -11.2505883764086 | etot = -5.62847196698692 +830000 ekin = 2.5507738837779 | erot = 3.0325460478396 | epot = -11.2117918984618 | etot = -5.62847196684431 +831000 ekin = 2.57043726041525 | erot = 3.0056609736767 | epot = -11.2045702008956 | etot = -5.62847196680369 +832000 ekin = 2.61596871091072 | erot = 2.98524787843516 | epot = -11.229688556233 | etot = -5.62847196688709 +833000 ekin = 2.68568117819201 | erot = 2.97182255580954 | epot = -11.2859757011011 | etot = -5.62847196709954 +834000 ekin = 2.77673678093812 | erot = 2.96502424213231 | epot = -11.3702329904984 | etot = -5.62847196742795 +835000 ekin = 2.88522064281158 | erot = 2.96372965093723 | epot = -11.4774222615931 | etot = -5.62847196784434 +836000 ekin = 3.00633984574425 | erot = 2.96626860441722 | epot = -11.6010804184754 | etot = -5.62847196831393 +837000 ekin = 3.13471078913859 | erot = 2.9706713315979 | epot = -11.7338540895385 | etot = -5.62847196880199 +838000 ekin = 3.26467977025951 | erot = 2.97489019003885 | epot = -11.8680419295789 | etot = -5.62847196928059 +839000 ekin = 3.39062362162418 | erot = 2.97696578811114 | epot = -11.9960613794644 | etot = -5.6284719697291 +840000 ekin = 3.507196142199 | erot = 2.9751377339346 | epot = -12.1108058462673 | etot = -5.62847197013369 +841000 ekin = 3.60951430435165 | erot = 2.96792302581209 | epot = -12.2059093006459 | etot = -5.62847197048216 +842000 ekin = 3.69330308374611 | erot = 2.95419217422804 | epot = -12.2759672287361 | etot = -5.62847197076192 +843000 ekin = 3.75502928065118 | erot = 2.93326272933157 | epot = -12.3167639809386 | etot = -5.62847197095582 +844000 ekin = 3.79205095756263 | erot = 2.90501003243346 | epot = -12.3255329610403 | etot = -5.62847197104421 +845000 ekin = 3.80278826982853 | erot = 2.86997708289261 | epot = -12.3012373237297 | etot = -5.62847197100856 +846000 ekin = 3.78689078364321 | erot = 2.82944607125015 | epot = -12.2448088257316 | etot = -5.62847197083821 +847000 ekin = 3.74534923751239 | erot = 2.78543387884246 | epot = -12.1592550868916 | etot = -5.62847197053678 +848000 ekin = 3.68048960903234 | erot = 2.74058491117485 | epot = -12.0495464903338 | etot = -5.62847197012659 +849000 ekin = 3.59580402265742 | erot = 2.69795473368827 | epot = -11.9222307259957 | etot = -5.62847196964997 +850000 ekin = 3.49561210996146 | erot = 2.66069826193653 | epot = -11.7847823410584 | etot = -5.62847196916039 +851000 ekin = 3.38460421150981 | erot = 2.63169878891611 | epot = -11.6447749691419 | etot = -5.62847196871596 +852000 ekin = 3.26735834603567 | erot = 2.61319105387691 | epot = -11.5090213682777 | etot = -5.62847196836509 +853000 ekin = 3.14792970800198 | erot = 2.60644045876884 | epot = -11.3828421349078 | etot = -5.62847196813696 +854000 ekin = 3.02961721456353 | erot = 2.61155167638246 | epot = -11.2696408589775 | etot = -5.6284719680315 +855000 ekin = 2.91497870609257 | erot = 2.62749311839419 | epot = -11.1709437925141 | etot = -5.62847196802735 +856000 ekin = 2.80592683607162 | erot = 2.6522972346767 | epot = -11.0866960388335 | etot = -5.62847196808521 +857000 ekin = 2.70394323070065 | erot = 2.68342637086871 | epot = -11.015841569732 | etot = -5.62847196816267 +858000 ekin = 2.61028084980153 | erot = 2.71820874419168 | epot = -10.9569615622196 | etot = -5.62847196822636 +859000 ekin = 2.52608469641724 | erot = 2.75423459839653 | epot = -10.9087912630729 | etot = -5.62847196825908 +860000 ekin = 2.45241725290201 | erot = 2.78962480101476 | epot = -10.8705140221748 | etot = -5.62847196825805 +861000 ekin = 2.39021948273227 | erot = 2.82313150330722 | epot = -10.8418229542727 | etot = -5.62847196823325 +862000 ekin = 2.34025129495987 | erot = 2.85407946376761 | epot = -10.822802726928 | etot = -5.62847196820057 +863000 ekin = 2.30304188781159 | erot = 2.88219277634858 | epot = -10.813706632338 | etot = -5.62847196817783 +864000 ekin = 2.27886006013276 | erot = 2.90737073876856 | epot = -10.8147027670818 | etot = -5.62847196818052 +865000 ekin = 2.26770197180472 | erot = 2.92947677479193 | epot = -10.8256507148148 | etot = -5.6284719682181 +866000 ekin = 2.26929189230923 | erot = 2.94819404249625 | epot = -10.8459579030977 | etot = -5.62847196829218 +867000 ekin = 2.28309242155635 | erot = 2.96298089314197 | epot = -10.874545283095 | etot = -5.62847196839671 +868000 ekin = 2.30832281636741 | erot = 2.97313399096203 | epot = -10.9099287758479 | etot = -5.62847196851846 +869000 ekin = 2.34398135087991 | erot = 2.97793980529636 | epot = -10.9503931248177 | etot = -5.62847196864144 +870000 ekin = 2.38886744672429 | erot = 2.97686809808026 | epot = -10.9942075135562 | etot = -5.6284719687517 +871000 ekin = 2.44159861708973 | erot = 2.96974175406055 | epot = -11.0398123399925 | etot = -5.6284719688422 +872000 ekin = 2.50061961498804 | erot = 2.95681803673566 | epot = -11.0859096206388 | etot = -5.62847196891511 +873000 ekin = 2.56420808027826 | erot = 2.93874614039664 | epot = -11.1314261896553 | etot = -5.6284719689804 +874000 ekin = 2.63049126909912 | erot = 2.91641905763502 | epot = -11.1753822957821 | etot = -5.628471969048 +875000 ekin = 2.69749664332261 | erot = 2.89079068993249 | epot = -11.2167593023751 | etot = -5.62847196912 +876000 ekin = 2.76325740762409 | erot = 2.8627513855634 | epot = -11.2544807623728 | etot = -5.62847196918535 +877000 ekin = 2.82597856953319 | erot = 2.83312911622589 | epot = -11.2875796549786 | etot = -5.62847196921951 +878000 ekin = 2.88426505921199 | erot = 2.80282960041362 | epot = -11.3155666287694 | etot = -5.6284719691438 +879000 ekin = 2.93899285381861 | erot = 2.77402557710308 | epot = -11.3414903998404 | etot = -5.62847196891873 +880000 ekin = 2.99074429370243 | erot = 2.74904466361883 | epot = -11.3682609262703 | etot = -5.62847196894903 +881000 ekin = 3.03734868856232 | erot = 2.72816458055542 | epot = -11.3939852379052 | etot = -5.62847196878747 +882000 ekin = 3.07935286205246 | erot = 2.71303253487346 | epot = -11.4208573655467 | etot = -5.62847196862081 +883000 ekin = 3.11756796960435 | erot = 2.70517731821704 | epot = -11.4512172563087 | etot = -5.62847196848731 +884000 ekin = 3.15280252723544 | erot = 2.70569769586684 | epot = -11.4869721915149 | etot = -5.62847196841262 +885000 ekin = 3.18571613079919 | erot = 2.71504911526553 | epot = -11.5292372144745 | etot = -5.62847196840978 +886000 ekin = 3.21676773261692 | erot = 2.73290580046188 | epot = -11.5781455015627 | etot = -5.62847196848389 +887000 ekin = 3.24623562297705 | erot = 2.75806669085735 | epot = -11.6327742824729 | etot = -5.62847196863852 +888000 ekin = 3.27425941885426 | erot = 2.78837179655079 | epot = -11.6911031842822 | etot = -5.62847196887713 +889000 ekin = 3.30086478759873 | erot = 2.82064068474087 | epot = -11.7499774415375 | etot = -5.62847196919789 +890000 ekin = 3.32596924743585 | erot = 2.8507143995424 | epot = -11.8051556165578 | etot = -5.62847196957959 +891000 ekin = 3.34941253111799 | erot = 2.87373382361226 | epot = -11.8516183246993 | etot = -5.62847196996901 +892000 ekin = 3.37107523435862 | erot = 2.88476437051389 | epot = -11.8843115751514 | etot = -5.62847197027888 +893000 ekin = 3.39111184980405 | erot = 2.87974242678446 | epot = -11.8993262469996 | etot = -5.62847197041106 +894000 ekin = 3.41023212792719 | erot = 2.85650829451306 | epot = -11.8952123927364 | etot = -5.62847197029618 +895000 ekin = 3.42987730742305 | erot = 2.81553499445148 | epot = -11.873884271807 | etot = -5.62847196993249 +896000 ekin = 3.45214148845859 | erot = 2.76001213101189 | epot = -11.8406255888621 | etot = -5.62847196939163 +897000 ekin = 3.47941735479851 | erot = 2.69521466352953 | epot = -11.8031039871185 | etot = -5.62847196879047 +898000 ekin = 3.51352961892427 | erot = 2.62737086711433 | epot = -11.7693724674547 | etot = -5.6284719814161 +899000 ekin = 3.48893911158129 | erot = 2.56291214052526 | epot = -11.6803232215692 | etot = -5.6284719694627 +900000 ekin = 3.45535689137436 | erot = 2.55015985198085 | epot = -11.6339887057135 | etot = -5.62847196235833 +901000 ekin = 3.50186288051208 | erot = 2.58894159273042 | epot = -11.719276449028 | etot = -5.62847197578548 +902000 ekin = 3.56610213509042 | erot = 2.58196928558468 | epot = -11.7765433932355 | etot = -5.62847197256043 +903000 ekin = 3.62814875790769 | erot = 2.56232070257317 | epot = -11.8189414334154 | etot = -5.6284719729345 +904000 ekin = 3.69112394769311 | erot = 2.5524763832157 | epot = -11.8720723043302 | etot = -5.62847197342134 +905000 ekin = 3.75091280592953 | erot = 2.54985569583922 | epot = -11.9292404756987 | etot = -5.62847197392995 +906000 ekin = 3.8032250689438 | erot = 2.55191272324046 | epot = -11.9836097665412 | etot = -5.6284719743569 +907000 ekin = 3.84434229250825 | erot = 2.5568336035953 | epot = -12.0296478707192 | etot = -5.62847197461568 +908000 ekin = 3.871900647008 | erot = 2.56394104594644 | epot = -12.0643136676191 | etot = -5.62847197466464 +909000 ekin = 3.88547927918536 | erot = 2.57365300982679 | epot = -12.0876042635317 | etot = -5.62847197451959 +910000 ekin = 3.88680451544102 | erot = 2.58702435551622 | epot = -12.1023008452009 | etot = -5.62847197424369 +911000 ekin = 3.87951720898021 | erot = 2.60508796128714 | epot = -12.1130771441854 | etot = -5.62847197391802 +912000 ekin = 3.86859234278359 | erot = 2.62827701186852 | epot = -12.1253413282694 | etot = -5.62847197361728 +913000 ekin = 3.85955913829983 | erot = 2.65612234750808 | epot = -12.1441534592065 | etot = -5.62847197339855 +914000 ekin = 3.85765974744707 | erot = 2.68725904601637 | epot = -12.1733907661574 | etot = -5.62847197269395 +915000 ekin = 3.86988559284798 | erot = 2.72155495759146 | epot = -12.2199125233092 | etot = -5.62847197286973 +916000 ekin = 3.89721211304123 | erot = 2.75899199516187 | epot = -12.2846760814788 | etot = -5.62847197327566 +917000 ekin = 3.93597306343169 | erot = 2.79756616380009 | epot = -12.3620112009473 | etot = -5.6284719737155 +918000 ekin = 3.98211349531499 | erot = 2.83523643636804 | epot = -12.445821905844 | etot = -5.62847197416096 +919000 ekin = 4.03109884083907 | erot = 2.86939982935091 | epot = -12.5289706457807 | etot = -5.62847197559067 +920000 ekin = 4.07575006581286 | erot = 2.89203459117052 | epot = -12.5962566328921 | etot = -5.62847197590877 +921000 ekin = 4.11121319883197 | erot = 2.89963705809888 | epot = -12.6393222335791 | etot = -5.62847197664822 +922000 ekin = 4.12946328833856 | erot = 2.89101491350044 | epot = -12.6489501787586 | etot = -5.62847197691959 +923000 ekin = 4.12574551357268 | erot = 2.86656720131328 | epot = -12.6207846917908 | etot = -5.62847197690484 +924000 ekin = 4.0980625546228 | erot = 2.82817437101463 | epot = -12.5547089022792 | etot = -5.6284719766418 +925000 ekin = 4.04683812875273 | erot = 2.77889166219992 | epot = -12.4542017671822 | etot = -5.62847197622952 +926000 ekin = 3.97415980690535 | erot = 2.7224048573368 | epot = -12.3250366400166 | etot = -5.6284719757744 +927000 ekin = 3.88290109511714 | erot = 2.66247239688044 | epot = -12.1738454673358 | etot = -5.6284719753382 +928000 ekin = 3.77619172574108 | erot = 2.60258197423891 | epot = -12.0072456748983 | etot = -5.6284719749183 +929000 ekin = 3.65741733987843 | erot = 2.54590496492842 | epot = -11.831794279277 | etot = -5.62847197447012 +930000 ekin = 3.53056331472612 | erot = 2.49545263670913 | epot = -11.6544879253869 | etot = -5.62847197395165 +931000 ekin = 3.40054526036444 | erot = 2.454292850849 | epot = -11.4833100842546 | etot = -5.62847197304114 +932000 ekin = 3.27351307450537 | erot = 2.42812143066844 | epot = -11.3301064778166 | etot = -5.62847197264279 +933000 ekin = 3.15479412953591 | erot = 2.4201742894763 | epot = -11.2034403912531 | etot = -5.62847197224091 +934000 ekin = 3.04934557327881 | erot = 2.43124949935863 | epot = -11.109067044526 | etot = -5.62847197188859 +935000 ekin = 2.96178382809207 | erot = 2.46165171666485 | epot = -11.0519075163873 | etot = -5.62847197163034 +936000 ekin = 2.89581269428724 | erot = 2.51113391229723 | epot = -11.0354185780765 | etot = -5.62847197149205 +937000 ekin = 2.8538587951087 | erot = 2.57889786005817 | epot = -11.0612286266452 | etot = -5.62847197147829 +938000 ekin = 2.8369434295325 | erot = 2.66364816059609 | epot = -11.1290635617065 | etot = -5.62847197157791 +939000 ekin = 2.84476696161334 | erot = 2.76369076510542 | epot = -11.2369296984843 | etot = -5.62847197176559 +940000 ekin = 2.87595320373246 | erot = 2.87707537624185 | epot = -11.3815005519813 | etot = -5.62847197200697 +941000 ekin = 2.92838858032047 | erot = 3.00178159446771 | epot = -11.5586421470521 | etot = -5.62847197226393 +942000 ekin = 2.99958691358805 | erot = 3.13593595199803 | epot = -11.7639948380871 | etot = -5.62847197250098 +943000 ekin = 3.08701485959176 | erot = 3.27802583767079 | epot = -11.9935126699548 | etot = -5.62847197269224 +944000 ekin = 3.18658687084634 | erot = 3.42629435473283 | epot = -12.2413531994801 | etot = -5.62847197390095 +945000 ekin = 3.29120912050651 | erot = 3.577012531924 | epot = -12.4966936268516 | etot = -5.62847197442111 +946000 ekin = 3.39621217340276 | erot = 3.7263738917811 | epot = -12.7510580401981 | etot = -5.62847197501423 +947000 ekin = 3.4968730305855 | erot = 3.86977321011431 | epot = -12.9951182164045 | etot = -5.62847197570464 +948000 ekin = 3.58827211219312 | erot = 4.00151346801785 | epot = -13.2182575567051 | etot = -5.6284719764941 +949000 ekin = 3.66536645482548 | erot = 4.11475106105357 | epot = -13.4085894932251 | etot = -5.62847197734605 +950000 ekin = 3.72323942018895 | erot = 4.20180191824226 | epot = -13.5535133166105 | etot = -5.62847197817932 +951000 ekin = 3.75754185711642 | erot = 4.25489778340543 | epot = -13.6409116193944 | etot = -5.62847197887252 +952000 ekin = 3.76507381720016 | erot = 4.26734583732727 | epot = -13.6608916338152 | etot = -5.62847197928779 +953000 ekin = 3.74438822450871 | erot = 4.23487585620145 | epot = -13.6077360600182 | etot = -5.62847197930807 +954000 ekin = 3.6962524303913 | erot = 4.15681815512645 | epot = -13.4815425643942 | etot = -5.62847197887646 +955000 ekin = 3.62380420344389 | erot = 4.03673171887103 | epot = -13.2890079003346 | etot = -5.62847197801971 +956000 ekin = 3.52555337106034 | erot = 3.8807380542249 | epot = -13.0347634049366 | etot = -5.62847197965134 +957000 ekin = 3.39894639548186 | erot = 3.704741379357 | epot = -12.7321597494327 | etot = -5.6284719745938 +958000 ekin = 3.27782879701388 | erot = 3.53760737302324 | epot = -12.4439081430079 | etot = -5.62847197297078 +959000 ekin = 3.17835028698373 | erot = 3.3860220764187 | epot = -12.1928443382271 | etot = -5.62847197482472 +960000 ekin = 3.09019087998482 | erot = 3.23509493738875 | epot = -11.9537577938396 | etot = -5.62847197646608 +961000 ekin = 3.00426259412953 | erot = 3.08248133846111 | epot = -11.7152159081467 | etot = -5.62847197555611 +962000 ekin = 2.92693480006865 | erot = 2.94805481108402 | epot = -11.5034615864953 | etot = -5.62847197534258 +963000 ekin = 2.85972055652158 | erot = 2.83488454740043 | epot = -11.3230770789589 | etot = -5.62847197503687 +964000 ekin = 2.80427359444853 | erot = 2.74583973307705 | epot = -11.1785853023839 | etot = -5.62847197485834 +965000 ekin = 2.76170821974625 | erot = 2.68249826250847 | epot = -11.0726784570591 | etot = -5.62847197480438 +966000 ekin = 2.73254763787259 | erot = 2.64503833078586 | epot = -11.0060579435413 | etot = -5.62847197488283 +967000 ekin = 2.71665521945761 | erot = 2.63218922387602 | epot = -10.977316418432 | etot = -5.62847197509839 +968000 ekin = 2.71315992256797 | erot = 2.6412436416193 | epot = -10.9828755396252 | etot = -5.62847197543791 +969000 ekin = 2.72046614394445 | erot = 2.66825860572991 | epot = -11.0171967255374 | etot = -5.62847197586305 +970000 ekin = 2.73639578727365 | erot = 2.70848274022898 | epot = -11.073350503823 | etot = -5.62847197632035 +971000 ekin = 2.7584938291987 | erot = 2.75695664047694 | epot = -11.1439224463452 | etot = -5.62847197666954 +972000 ekin = 2.78540546045377 | erot = 2.80984083585929 | epot = -11.2237182732553 | etot = -5.62847197694225 +973000 ekin = 2.81581408645962 | erot = 2.86412704583047 | epot = -11.3084131094169 | etot = -5.62847197712684 +974000 ekin = 2.84847994853285 | erot = 2.91762904109419 | epot = -11.394580966844 | etot = -5.62847197721695 +975000 ekin = 2.88260770542579 | erot = 2.96920774038639 | epot = -11.480287423027 | etot = -5.62847197721485 +976000 ekin = 2.90702474892291 | erot = 3.0196491884248 | epot = -11.5551459389487 | etot = -5.62847200160094 +977000 ekin = 2.82994038022815 | erot = 3.10467594136529 | epot = -11.5630882994573 | etot = -5.62847197786387 +978000 ekin = 2.82908361926504 | erot = 3.22546638455035 | epot = -11.6830220075474 | etot = -5.628472003732 +979000 ekin = 2.83706100134503 | erot = 3.2548187323809 | epot = -11.720351723827 | etot = -5.62847199010104 +980000 ekin = 2.83601345165634 | erot = 3.27042511751412 | epot = -11.7349105593066 | etot = -5.62847199013615 +981000 ekin = 2.82679467553623 | erot = 3.27908746265508 | epot = -11.734354128369 | etot = -5.62847199017766 +982000 ekin = 2.80889457138308 | erot = 3.28090658537119 | epot = -11.7182731469763 | etot = -5.62847199022204 +983000 ekin = 2.78208898717251 | erot = 3.27578647329014 | epot = -11.6863474507109 | etot = -5.62847199024828 +984000 ekin = 2.74660136968689 | erot = 3.26353952550221 | epot = -11.6386128854104 | etot = -5.62847199022127 +985000 ekin = 2.70333214519072 | erot = 3.24411391134697 | epot = -11.575918046642 | etot = -5.62847199010433 +986000 ekin = 2.65408912845627 | erot = 3.21786526580058 | epot = -11.5004263841271 | etot = -5.62847198987027 +987000 ekin = 2.57871631765271 | erot = 3.17247278893129 | epot = -11.3796611009394 | etot = -5.62847199435536 +988000 ekin = 2.53018926708017 | erot = 3.15315340977068 | epot = -11.3118146788246 | etot = -5.62847200197374 +989000 ekin = 2.49566278306744 | erot = 3.12952117448782 | epot = -11.2536559495158 | etot = -5.62847199196056 +990000 ekin = 2.46227182596968 | erot = 3.09741757832303 | epot = -11.1881613956981 | etot = -5.62847199140542 +991000 ekin = 2.44592299332381 | erot = 3.07158095055821 | epot = -11.1459759350248 | etot = -5.62847199114281 +992000 ekin = 2.45174281643038 | erot = 3.05611048511796 | epot = -11.1363252924909 | etot = -5.62847199094254 +993000 ekin = 2.4809967175337 | erot = 3.05281518204759 | epot = -11.1622838903702 | etot = -5.62847199078888 +994000 ekin = 2.53415670294871 | erot = 3.06359154456191 | epot = -11.2262202382137 | etot = -5.62847199070311 +995000 ekin = 2.61088853355121 | erot = 3.09015398630347 | epot = -11.3295145105498 | etot = -5.62847199069511 +996000 ekin = 2.71011819725457 | erot = 3.13378298778989 | epot = -11.4723731758111 | etot = -5.62847199076662 +997000 ekin = 2.83015603299592 | erot = 3.19515267790156 | epot = -11.653780701815 | etot = -5.62847199091748 +998000 ekin = 2.96878571625672 | erot = 3.27423191427181 | epot = -11.8714896216853 | etot = -5.62847199115672 +999000 ekin = 3.12322522638366 | erot = 3.37022004784673 | epot = -12.1219172657411 | etot = -5.6284719915107 +1000000 ekin = 3.28990650507131 | erot = 3.4814601076319 | epot = -12.3998386047259 | etot = -5.62847199202267 + 1000000 0.14621807 -0.83009398 0.055104069 -0.56937076 4.8223734e-05 64000 +Loop time of 14.5271 on 4 procs for 1000000 steps with 16 atoms + +Performance: 59474.862 tau/day, 68836.646 timesteps/s, 1.101 Matom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.9496 | 6.919 | 8.139 | 48.5 | 47.63 +Bond | 0.17781 | 0.27579 | 0.35519 | 12.1 | 1.90 +Neigh | 0.004968 | 0.0050075 | 0.005068 | 0.1 | 0.03 +Comm | 4.3521 | 5.4851 | 7.6042 | 55.8 | 37.76 +Output | 0.06127 | 0.06555 | 0.074377 | 2.0 | 0.45 +Modify | 0.58934 | 0.65958 | 0.71877 | 7.1 | 4.54 +Other | | 1.117 | | | 7.69 + +Nlocal: 4 ave 4 max 4 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 12 ave 12 max 12 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 26.5 ave 47 max 9 min +Histogram: 1 1 0 0 0 0 1 0 0 1 + +Total # of neighbors = 106 +Ave neighs/atom = 6.625 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/lj_units/test.sh similarity index 100% rename from examples/PACKAGES/cgdna/examples/test.sh rename to examples/PACKAGES/cgdna/examples/lj_units/test.sh diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/data.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/data.duplex1 new file mode 100644 index 0000000000..a368cef424 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -2.8740969069282687 -3.723118600434732 5.494693518792015 1 1 1.0016462505133576 0 0 0 +2 2 -2.7379071878387986 -6.079929519421481 10.066032484018534 1 1 1.0016462505133576 0 0 0 +3 3 -1.110437385073819 -7.791537941948432 13.848676172779387 1 1 1.0016462505133576 0 0 0 +4 4 1.4306089998272526 -8.354886654263622 17.79828313773629 1 1 1.0016462505133576 0 0 0 +5 1 3.9498326729322186 -6.646891787969407 20.657842369456382 1 1 1.0016462505133576 0 0 0 +6 4 -3.801540967989063 0.7719150486872158 21.01300417274477 2 1 1.0016462505133576 0 0 0 +7 1 -0.287657468030243 1.787063409177335 17.702181979507532 2 1 1.0016462505133576 0 0 0 +8 2 2.8086617684512323 1.5040732709582532 14.656350509768911 2 1 1.0016462505133576 0 0 0 +9 3 5.165059071666839 0.3988634556159852 10.50699529001116 2 1 1.0016462505133576 0 0 0 +10 4 6.817789789050184 -3.1038996716078557 8.419212766646357 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.0015993537866009029 -0.000680681865016988 -0.00014678467473993874 1.3034875452014287 -0.6725260292370423 1.5263182328899618 +2 0.0008422431968202534 -0.0002471920411024751 0.0007894382186365997 -0.32615096872390803 -0.0034351199136194157 -0.9136220137417161 +3 -0.0011446153381118452 0.00041850425643063176 -0.00045926941555484915 1.7184317758530245 2.6050996986101502 -0.47065934236730145 +4 -0.0011077496385743138 0.0002472924939324634 -0.00034633314311123244 -0.5778245520276679 1.752085001878762 -0.24048635097513535 +5 0.0004072478403200556 -0.0012804934445473403 0.0008610591638760516 0.23142339993018143 0.3972766524238825 1.363641236078021 +6 0.00017968178785700138 -0.00024308968845109275 0.00014280408309295725 0.1704955558294103 -1.3525913126172677 1.5501424653239764 +7 -4.108556803115003e-05 0.00023724044475488887 -0.00013843701960263193 0.7809156374181498 -2.1218743676572576 0.2975087875146955 +8 -0.00035835254321313353 0.0008579277312926632 0.0019500603503724006 -0.711656157643413 -2.0351916264105014 -0.7613827970610736 +9 -0.0008730894357027041 -0.00039026927657647716 0.0002796967510539106 -1.193834703375802 1.023301140813147 -1.8342354268493246 +10 0.0009421885758929626 -0.0005326396944231774 0.0006296458639527654 -0.24420734152643714 1.5633648178267814 0.6376075187926279 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 9.999999997766462 9.999999997766462 9.999999997766462 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/in.duplex1 new file mode 100644 index 0000000000..cc5e11b43b --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/in.duplex1 @@ -0,0 +1,71 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..2b84f7c3ac --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 @@ -0,0 +1,1105 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8453746587949 | etot = -54.4567170072638 +Per MPI rank memory allocation (min/avg/max) = 7.196 | 7.196 | 7.196 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.414409 2.5690347 -71.238502 -0.031164646 39304000 +1000 ekin = 6.43820783118127 | erot = 17.3362198819252 | epot = -78.2311447221034 | etot = -54.4567170089969 +2000 ekin = 6.25962757371398 | erot = 17.7614951323061 | epot = -78.4778397161865 | etot = -54.4567170101664 +3000 ekin = 6.07700556573588 | erot = 18.0349356633584 | epot = -78.568658239597 | etot = -54.4567170105028 +4000 ekin = 5.89744395525129 | erot = 18.144460931621 | epot = -78.4986218967948 | etot = -54.4567170099226 +5000 ekin = 5.72921700410326 | erot = 18.0898077153686 | epot = -78.2757417280193 | etot = -54.4567170085474 +6000 ekin = 5.58103231328821 | erot = 17.8818838137361 | epot = -77.9196331337201 | etot = -54.4567170066957 +7000 ekin = 5.46083908443389 | erot = 17.5394286863637 | epot = -77.4569847754236 | etot = -54.456717004626 +8000 ekin = 5.37466806168184 | erot = 17.086045740889 | epot = -76.9174308051193 | etot = -54.4567170025485 +9000 ekin = 5.32596283558547 | erot = 16.5482758509796 | epot = -76.3309556871347 | etot = -54.4567170005696 +10000 ekin = 5.31555310057087 | erot = 15.9544038907651 | epot = -75.7266739899446 | etot = -54.4567169986086 +11000 ekin = 5.34212439127906 | erot = 15.33325110042 | epot = -75.1320924886816 | etot = -54.4567169969825 +12000 ekin = 5.40287885250685 | erot = 14.7110726721716 | epot = -74.570668520288 | etot = -54.4567169956095 +13000 ekin = 5.49412472240381 | erot = 14.1110805159141 | epot = -74.0619222328998 | etot = -54.4567169945818 +14000 ekin = 5.6116733967227 | erot = 13.5517285104402 | epot = -73.6201189011436 | etot = -54.4567169939806 +15000 ekin = 5.75106060199928 | erot = 13.0453082210511 | epot = -73.2530858167914 | etot = -54.4567169937411 +16000 ekin = 5.9076835700648 | erot = 12.5986044578508 | epot = -72.9630050218526 | etot = -54.4567169939369 +17000 ekin = 6.07694775533401 | erot = 12.2121295946254 | epot = -72.745794344578 | etot = -54.4567169946187 +18000 ekin = 6.2544900101667 | erot = 11.8809581167544 | epot = -72.5921651219471 | etot = -54.456716995026 +19000 ekin = 6.43645340088853 | erot = 11.5970728654625 | epot = -72.4902432622587 | etot = -54.4567169959077 +20000 ekin = 6.61976225801504 | erot = 11.3493123188075 | epot = -72.4257915734619 | etot = -54.4567169966394 +21000 ekin = 6.80232746725453 | erot = 11.12797043509 | epot = -72.3870148994525 | etot = -54.456716997108 +22000 ekin = 6.98311688717135 | erot = 10.9264751205881 | epot = -72.3663090050195 | etot = -54.4567169972601 +23000 ekin = 7.16205079775862 | erot = 10.7423327849975 | epot = -72.3611005798626 | etot = -54.4567169971065 +24000 ekin = 7.33972059294137 | erot = 10.5772758543376 | epot = -72.3737134439925 | etot = -54.4567169967136 +25000 ekin = 7.51695157931204 | erot = 10.4365899375964 | epot = -72.410258513139 | etot = -54.4567169962305 +26000 ekin = 7.69429229269129 | erot = 10.3277639309844 | epot = -72.4787732193795 | etot = -54.4567169957038 +27000 ekin = 7.87150951743587 | erot = 10.2597304033277 | epot = -72.5879569160672 | etot = -54.4567169953037 +28000 ekin = 8.04705135555601 | erot = 10.2410352171346 | epot = -72.7448035678545 | etot = -54.456716995164 +29000 ekin = 8.21759746027588 | erot = 10.2782041594724 | epot = -72.9525186151519 | etot = -54.4567169954035 +30000 ekin = 8.37774171245007 | erot = 10.3742403796591 | epot = -73.2086990882218 | etot = -54.4567169961126 +31000 ekin = 8.51990909585299 | erot = 10.5273666264231 | epot = -73.503992719602 | etot = -54.4567169973259 +32000 ekin = 8.63465262126945 | erot = 10.7302431095271 | epot = -73.8216127297857 | etot = -54.4567169989892 +33000 ekin = 8.71148334085703 | erot = 10.9699651918536 | epot = -74.1381655336434 | etot = -54.4567170009328 +34000 ekin = 8.74030392010885 | erot = 11.2291223208267 | epot = -74.4261432438069 | etot = -54.4567170028714 +35000 ekin = 8.71331622899753 | erot = 11.4879560434145 | epot = -74.6579892768899 | etot = -54.4567170044778 +36000 ekin = 8.6270054941397 | erot = 11.7272789104034 | epot = -74.8110014099219 | etot = -54.4567170053788 +37000 ekin = 8.48360146994024 | erot = 11.9311520187442 | epot = -74.8714704944482 | etot = -54.4567170057638 +38000 ekin = 8.29145725510879 | erot = 12.0877651508229 | epot = -74.8359394109127 | etot = -54.456717004981 +39000 ekin = 8.06412808157086 | erot = 12.1939490782825 | epot = -74.7147941632556 | etot = -54.4567170034022 +40000 ekin = 7.8183491672969 | erot = 12.2536811005695 | epot = -74.5287472695195 | etot = -54.4567170016531 +41000 ekin = 7.57153983107151 | erot = 12.2737166637664 | epot = -74.3019734948458 | etot = -54.4567170000079 +42000 ekin = 7.33952905244385 | erot = 12.2616299907504 | epot = -74.0578760417282 | etot = -54.4567169985339 +43000 ekin = 7.13479707854096 | erot = 12.2251663434275 | epot = -73.8166804194407 | etot = -54.4567169974722 +44000 ekin = 6.96549624172411 | erot = 12.1705863869632 | epot = -73.5927996255427 | etot = -54.4567169968554 +45000 ekin = 6.83524241842684 | erot = 12.1023865846985 | epot = -73.3943459997491 | etot = -54.4567169966237 +46000 ekin = 6.74353977237873 | erot = 12.0237417555818 | epot = -73.2239985246163 | etot = -54.4567169966557 +47000 ekin = 6.68665226743047 | erot = 11.9373741846297 | epot = -73.0807434488668 | etot = -54.4567169968066 +48000 ekin = 6.65871295716605 | erot = 11.8463562055031 | epot = -72.9617861597101 | etot = -54.4567169970409 +49000 ekin = 6.65288229900589 | erot = 11.7538080029642 | epot = -72.8634072990292 | etot = -54.4567169970592 +50000 ekin = 6.66236312881733 | erot = 11.6656641757333 | epot = -72.7847443014512 | etot = -54.4567169969006 +51000 ekin = 6.68111060961778 | erot = 11.5899788256564 | epot = -72.7278064318541 | etot = -54.4567169965799 +52000 ekin = 6.7041802474988 | erot = 11.5360562910265 | epot = -72.696953534693 | etot = -54.4567169961677 +53000 ekin = 6.72772366359015 | erot = 11.5134142818732 | epot = -72.6978549412364 | etot = -54.456716995773 +54000 ekin = 6.74871337970471 | erot = 11.5307585185416 | epot = -72.7361888937386 | etot = -54.4567169954923 +55000 ekin = 6.76451852991647 | erot = 11.5943746539851 | epot = -72.815610179404 | etot = -54.4567169955025 +56000 ekin = 6.77243985440047 | erot = 11.7063710780976 | epot = -72.9355279283601 | etot = -54.456716995862 +57000 ekin = 6.76933053582512 | erot = 11.8642156230109 | epot = -73.0902631554544 | etot = -54.4567169966185 +58000 ekin = 6.75138726809175 | erot = 12.0602974501204 | epot = -73.2684017159796 | etot = -54.4567169977675 +59000 ekin = 6.71417128126918 | erot = 12.2820751409027 | epot = -73.4529634214104 | etot = -54.4567169992384 +60000 ekin = 6.65290992288017 | erot = 12.5129009338982 | epot = -73.6225278576777 | etot = -54.4567170008993 +61000 ekin = 6.56310682197025 | erot = 12.7335144723087 | epot = -73.7533382968305 | etot = -54.4567170025516 +62000 ekin = 6.44146338255561 | erot = 12.9241509619395 | epot = -73.8223313484456 | etot = -54.4567170039505 +63000 ekin = 6.28705781387306 | erot = 13.0670338389574 | epot = -73.8108086578462 | etot = -54.4567170050157 +64000 ekin = 6.10266169757214 | erot = 13.1477809820694 | epot = -73.7071596847869 | etot = -54.4567170051453 +65000 ekin = 5.89591130160378 | erot = 13.1592635961187 | epot = -73.5118919021165 | etot = -54.456717004394 +66000 ekin = 5.67987143865612 | erot = 13.1032095066899 | epot = -73.2397979480396 | etot = -54.4567170026935 +67000 ekin = 5.47246439370461 | erot = 12.9892907727309 | epot = -72.9184721669219 | etot = -54.4567170004864 +68000 ekin = 5.29471721365622 | erot = 12.8325811063881 | epot = -72.5840153180084 | etot = -54.456716997964 +69000 ekin = 5.16838716298711 | erot = 12.6515610640471 | epot = -72.2766652226397 | etot = -54.4567169956055 +70000 ekin = 5.1123024949134 | erot = 12.464558608656 | epot = -72.0335780974641 | etot = -54.4567169938946 +71000 ekin = 5.13863171719959 | erot = 12.2861676510959 | epot = -71.8815163616864 | etot = -54.456716993391 +72000 ekin = 5.24921766817571 | erot = 12.1241146960812 | epot = -71.8300493582313 | etot = -54.4567169939744 +73000 ekin = 5.43495114762194 | erot = 11.9780651684539 | epot = -71.8697333116311 | etot = -54.4567169955553 +74000 ekin = 5.67787386257412 | erot = 11.8411579566087 | epot = -71.9757488169253 | etot = -54.4567169977424 +75000 ekin = 5.95416182625046 | erot = 11.7025717830519 | epot = -72.113450609344 | etot = -54.4567170000417 +76000 ekin = 6.2382481878043 | erot = 11.5508489468467 | epot = -72.2458141366446 | etot = -54.4567170019935 +77000 ekin = 6.50675110372134 | erot = 11.376960643443 | epot = -72.3404287504467 | etot = -54.4567170032824 +78000 ekin = 6.7413670315104 | erot = 11.1763239765949 | epot = -72.3744080118938 | etot = -54.4567170037885 +79000 ekin = 6.93031685727 | erot = 10.9493830401345 | epot = -72.3364169009795 | etot = -54.456717003575 +80000 ekin = 7.06838579021362 | erot = 10.7008558180281 | epot = -72.2259586110715 | etot = -54.4567170028298 +81000 ekin = 7.15593174989378 | erot = 10.4381486680532 | epot = -72.0507974197271 | etot = -54.4567170017802 +82000 ekin = 7.19737561193852 | erot = 10.1696078110448 | epot = -71.8237004236075 | etot = -54.4567170006242 +83000 ekin = 7.19963709941819 | erot = 9.90317661788338 | epot = -71.5595307167926 | etot = -54.4567169994911 +84000 ekin = 7.17081556671144 | erot = 9.64574605090055 | epot = -71.273278616051 | etot = -54.456716998439 +85000 ekin = 7.11922963823867 | erot = 9.40317461807844 | epot = -70.9791212537907 | etot = -54.4567169974735 +86000 ekin = 7.05279272914885 | erot = 9.18074070207743 | epot = -70.6902504278029 | etot = -54.4567169965767 +87000 ekin = 6.97863676438221 | erot = 8.98372361344457 | epot = -70.4190773735549 | etot = -54.4567169957281 +88000 ekin = 6.9028911125576 | erot = 8.81786450432949 | epot = -70.1774726118083 | etot = -54.4567169949212 +89000 ekin = 6.83054970527891 | erot = 8.68957087135389 | epot = -69.9768375707985 | etot = -54.4567169941657 +90000 ekin = 6.76539137201421 | erot = 8.60583796049187 | epot = -69.8279463259915 | etot = -54.4567169934854 +91000 ekin = 6.70994198518223 | erot = 8.57393232143089 | epot = -69.7405912995239 | etot = -54.4567169929108 +92000 ekin = 6.66547828037124 | erot = 8.60091153028055 | epot = -69.7231068031287 | etot = -54.4567169924769 +93000 ekin = 6.63207907276869 | erot = 8.69305218260925 | epot = -69.7818482475942 | etot = -54.4567169922162 +94000 ekin = 6.60872467795709 | erot = 8.85524213295501 | epot = -69.920683803072 | etot = -54.4567169921598 +95000 ekin = 6.59344191188652 | erot = 9.09002892498404 | epot = -70.1401878292941 | etot = -54.4567169924236 +96000 ekin = 6.58348503117511 | erot = 9.39676155295883 | epot = -70.4369635770044 | etot = -54.4567169928704 +97000 ekin = 6.57555779040114 | erot = 9.77238659111696 | epot = -70.8046613751019 | etot = -54.4567169935838 +98000 ekin = 6.56606406506479 | erot = 10.2104006447577 | epot = -71.2331817043831 | etot = -54.4567169945606 +99000 ekin = 6.55138371755748 | erot = 10.7005955684093 | epot = -71.7086962817498 | etot = -54.456716995783 +100000 ekin = 6.52818215156319 | erot = 11.229104804122 | epot = -72.2140039528875 | etot = -54.4567169972023 +101000 ekin = 6.49376016387468 | erot = 11.7788216139172 | epot = -72.7292987765279 | etot = -54.456716998736 +102000 ekin = 6.44644131665652 | erot = 12.3302826834051 | epot = -73.2334410003245 | etot = -54.4567170002629 +103000 ekin = 6.38597185526512 | erot = 12.8630533051893 | epot = -73.7057421620888 | etot = -54.4567170016345 +104000 ekin = 6.31387792328204 | erot = 13.3575416630676 | epot = -74.1281365890417 | etot = -54.456717002692 +105000 ekin = 6.23369870065412 | erot = 13.7969859266863 | epot = -74.4874016306526 | etot = -54.4567170033122 +106000 ekin = 6.15159087577179 | erot = 14.168347479028 | epot = -74.7766553580931 | etot = -54.4567170032933 +107000 ekin = 6.07597686979475 | erot = 14.4651876627012 | epot = -74.9978815355769 | etot = -54.456717003081 +108000 ekin = 6.01223234716995 | erot = 14.6879971316708 | epot = -75.1569464811428 | etot = -54.456717002302 +109000 ekin = 5.96716606188232 | erot = 14.843544289216 | epot = -75.2674273521871 | etot = -54.4567170010888 +110000 ekin = 5.94905536831921 | erot = 14.9434041692657 | epot = -75.3491765372227 | etot = -54.4567169996377 +111000 ekin = 5.96691720967362 | erot = 15.0017805706305 | epot = -75.4254147784671 | etot = -54.456716998163 +112000 ekin = 6.02963996568461 | erot = 15.0332074410399 | epot = -75.5195644035762 | etot = -54.4567169968517 +113000 ekin = 6.1447355794934 | erot = 15.0506276935639 | epot = -75.6520802691281 | etot = -54.4567169960708 +114000 ekin = 6.31295582028789 | erot = 15.0641514071762 | epot = -75.8338242231953 | etot = -54.4567169957312 +115000 ekin = 6.53172798600582 | erot = 15.0811124191474 | epot = -76.069557400948 | etot = -54.4567169957948 +116000 ekin = 6.79568089093934 | erot = 15.1059058197088 | epot = -76.3583037069064 | etot = -54.4567169962582 +117000 ekin = 7.09592407299118 | erot = 15.1399966271433 | epot = -76.692637697252 | etot = -54.4567169971175 +118000 ekin = 7.42014276685631 | erot = 15.1819125959108 | epot = -77.0587723611274 | etot = -54.4567169983602 +119000 ekin = 7.75294827199695 | erot = 15.2271422568037 | epot = -77.4368075287489 | etot = -54.4567169999482 +120000 ekin = 8.07659193886436 | erot = 15.2681028416293 | epot = -77.801411782285 | etot = -54.4567170017913 +121000 ekin = 8.37212580399467 | erot = 15.2944516166555 | epot = -78.1232944243814 | etot = -54.4567170037313 +122000 ekin = 8.62100116395937 | erot = 15.2939804912635 | epot = -78.3716986607659 | etot = -54.456717005543 +123000 ekin = 8.80694171731996 | erot = 15.254150000928 | epot = -78.5178087252231 | etot = -54.4567170069752 +124000 ekin = 8.91776467099479 | erot = 15.1640535889468 | epot = -78.5385352677475 | etot = -54.4567170078059 +125000 ekin = 8.9467480094793 | erot = 15.0163836749129 | epot = -78.4198486922921 | etot = -54.4567170078999 +126000 ekin = 8.89353650631002 | erot = 14.8103820375823 | epot = -78.1606355511996 | etot = -54.4567170073073 +127000 ekin = 8.7629508625392 | erot = 14.5505189841093 | epot = -77.7701868527587 | etot = -54.4567170061102 +128000 ekin = 8.56410993715709 | erot = 14.2447035162366 | epot = -77.2655304577559 | etot = -54.4567170043622 +129000 ekin = 8.30998017116567 | erot = 13.9055852316428 | epot = -76.6722824050741 | etot = -54.4567170022657 +130000 ekin = 8.0159653369684 | erot = 13.5489606027688 | epot = -76.0216429397662 | etot = -54.456717000029 +131000 ekin = 7.69857959330988 | erot = 13.1919558696584 | epot = -75.3472524608086 | etot = -54.4567169978403 +132000 ekin = 7.37430715049019 | erot = 12.8512838848574 | epot = -74.6823080311994 | etot = -54.4567169958518 +133000 ekin = 7.0586935021734 | erot = 12.5417841519133 | epot = -74.0571946482606 | etot = -54.4567169941739 +134000 ekin = 6.76568000840989 | erot = 12.275351752871 | epot = -73.4977487541533 | etot = -54.4567169928724 +135000 ekin = 6.50716750003369 | erot = 12.0602618213868 | epot = -73.0241463134093 | etot = -54.4567169919888 +136000 ekin = 6.29276806012063 | erot = 11.9007845740719 | epot = -72.6502696257233 | etot = -54.4567169915308 +137000 ekin = 6.12969309854731 | erot = 11.7970866991162 | epot = -72.383496789158 | etot = -54.4567169914945 +138000 ekin = 6.02273320867752 | erot = 11.7455527096574 | epot = -72.2250029101791 | etot = -54.4567169918441 +139000 ekin = 5.97430093912997 | erot = 11.7390915567029 | epot = -72.1701094884367 | etot = -54.4567169926038 +140000 ekin = 5.98450304637459 | erot = 11.7662502093753 | epot = -72.2074702494607 | etot = -54.4567169937108 +141000 ekin = 6.05123669074409 | erot = 11.8124070325092 | epot = -72.320360718363 | etot = -54.4567169951097 +142000 ekin = 6.17033803011812 | erot = 11.8605042646628 | epot = -72.4875592915039 | etot = -54.456716996723 +143000 ekin = 6.33580648591466 | erot = 11.8920252829288 | epot = -72.6845487670587 | etot = -54.4567169982153 +144000 ekin = 6.54012675510817 | erot = 11.8891823611258 | epot = -72.8860261161641 | etot = -54.4567169999301 +145000 ekin = 6.77470074055122 | erot = 11.835329124418 | epot = -73.0667468664361 | etot = -54.4567170014669 +146000 ekin = 7.03037496397094 | erot = 11.7160243954403 | epot = -73.2031163621668 | etot = -54.4567170027555 +147000 ekin = 7.29665364400722 | erot = 11.5220998483009 | epot = -73.2754704958303 | etot = -54.4567170035221 +148000 ekin = 7.56413207766539 | erot = 11.2503161699918 | epot = -73.271165251398 | etot = -54.4567170037408 +149000 ekin = 7.82550108771502 | erot = 10.9039474189432 | epot = -73.186165510058 | etot = -54.4567170033997 +150000 ekin = 8.07523421780289 | erot = 10.4929157971078 | epot = -73.0248670174494 | etot = -54.4567170025387 +151000 ekin = 8.30981632230252 | erot = 10.0329247877175 | epot = -72.7994581112926 | etot = -54.4567170012726 +152000 ekin = 8.52773011311519 | erot = 9.54384337569265 | epot = -72.5282904885591 | etot = -54.4567169997513 +153000 ekin = 8.72920635330005 | erot = 9.04773752673777 | epot = -72.2336608781799 | etot = -54.4567169981421 +154000 ekin = 8.91578242577526 | erot = 8.56683521279765 | epot = -71.9393346351766 | etot = -54.4567169966037 +155000 ekin = 9.08973687645378 | erot = 8.12169369348659 | epot = -71.6681475652115 | etot = -54.4567169952711 +156000 ekin = 9.25347765694827 | erot = 7.72974563990293 | epot = -71.4399402910981 | etot = -54.4567169942469 +157000 ekin = 9.40896984476625 | erot = 7.40429996452383 | epot = -71.2699868028787 | etot = -54.4567169935887 +158000 ekin = 9.55725976319915 | erot = 7.15399036856882 | epot = -71.1679671251158 | etot = -54.4567169933478 +159000 ekin = 9.69799996758358 | erot = 6.98263031177209 | epot = -71.1373472728688 | etot = -54.4567169935132 +160000 ekin = 9.82927262106836 | erot = 6.88943240362223 | epot = -71.175422018748 | etot = -54.4567169940574 +161000 ekin = 9.94752627639203 | erot = 6.86953876421339 | epot = -71.2737820355257 | etot = -54.4567169949203 +162000 ekin = 10.0476688890864 | erot = 6.91484346813018 | epot = -71.4192293532338 | etot = -54.4567169960172 +163000 ekin = 10.1233289285869 | erot = 7.01508857895246 | epot = -71.5951345047758 | etot = -54.4567169972365 +164000 ekin = 10.167286691898 | erot = 7.15919485891927 | epot = -71.7831985492619 | etot = -54.4567169984446 +165000 ekin = 10.172071480185 | erot = 7.33674388087147 | epot = -71.9655323605532 | etot = -54.4567169994967 +166000 ekin = 10.1307061587134 | erot = 7.53947176071279 | epot = -72.1268949196778 | etot = -54.4567170002516 +167000 ekin = 10.0375550044427 | erot = 7.76257261597526 | epot = -72.2568446210092 | etot = -54.4567170005913 +168000 ekin = 9.88919379240196 | erot = 8.00559837771024 | epot = -72.3515091705549 | etot = -54.4567170004427 +169000 ekin = 9.6851801471051 | erot = 8.27274634403696 | epot = -72.4146434909394 | etot = -54.4567169997973 +170000 ekin = 9.42857099718864 | erot = 8.57239606368005 | epot = -72.4576840595931 | etot = -54.4567169987245 +171000 ekin = 9.12604219834733 | erot = 8.91588733602143 | epot = -72.4986465317349 | etot = -54.4567169973661 +172000 ekin = 8.78753113653861 | erot = 9.31569783313623 | epot = -72.5599459655889 | etot = -54.456716995914 +173000 ekin = 8.43073965990155 | erot = 9.78417932410986 | epot = -72.671635978036 | etot = -54.4567169940246 +174000 ekin = 8.08793433498934 | erot = 10.3304999174786 | epot = -72.875151246456 | etot = -54.4567169939881 +175000 ekin = 7.76668155628905 | erot = 10.9530367882572 | epot = -73.1764353387604 | etot = -54.4567169942141 +176000 ekin = 7.47150671335906 | erot = 11.6457657834608 | epot = -73.5739894915295 | etot = -54.4567169947096 +177000 ekin = 7.20629810214911 | erot = 12.399154012461 | epot = -74.0621691100447 | etot = -54.4567169954346 +178000 ekin = 6.9741272880157 | erot = 13.20044277241 | epot = -74.6312870568994 | etot = -54.4567169964737 +179000 ekin = 6.77726137275677 | erot = 14.0344360010767 | epot = -75.2684143712719 | etot = -54.4567169974384 +180000 ekin = 6.61731488748464 | erot = 14.8864655843919 | epot = -75.9604974702674 | etot = -54.4567169983909 +181000 ekin = 6.49550388720072 | erot = 15.7408909287416 | epot = -76.6931118153551 | etot = -54.4567169994128 +182000 ekin = 6.41296392663574 | erot = 16.5825261501 | epot = -77.4522070769509 | etot = -54.4567170002152 +183000 ekin = 6.3709676834719 | erot = 17.3990430380084 | epot = -78.2267277223659 | etot = -54.4567170008855 +184000 ekin = 6.37100453719247 | erot = 18.179602922008 | epot = -79.0073244606508 | etot = -54.4567170014503 +185000 ekin = 6.41457925655592 | erot = 18.9145289221421 | epot = -79.7858251806889 | etot = -54.4567170019908 +186000 ekin = 6.5025855392 | erot = 19.5946185261353 | epot = -80.5539210679827 | etot = -54.4567170026474 +187000 ekin = 6.63421344627452 | erot = 20.2101022369757 | epot = -81.301032686852 | etot = -54.4567170036018 +188000 ekin = 6.80554165522936 | erot = 20.7494117391994 | epot = -82.0116703994567 | etot = -54.456717005028 +189000 ekin = 7.00820348124499 | erot = 21.1981783931206 | epot = -82.6630988813659 | etot = -54.4567170070004 +190000 ekin = 7.22868521932685 | erot = 21.5391098111504 | epot = -83.2245120398911 | etot = -54.4567170094138 +191000 ekin = 7.4477192848795 | erot = 21.7494170056954 | epot = -83.6538533032724 | etot = -54.4567170126975 +192000 ekin = 7.64125751956296 | erot = 21.8048207783503 | epot = -83.9027953123215 | etot = -54.4567170144082 +193000 ekin = 7.78828740685131 | erot = 21.6991673926867 | epot = -83.9441718146326 | etot = -54.4567170150946 +194000 ekin = 7.87257389701823 | erot = 21.4375246080176 | epot = -83.7668155195165 | etot = -54.4567170144808 +195000 ekin = 7.88499447657079 | erot = 21.0374826850393 | epot = -83.3791941740676 | etot = -54.4567170124575 +196000 ekin = 7.82454827833775 | erot = 20.5296762951829 | epot = -82.8109415830013 | etot = -54.4567170094806 +197000 ekin = 7.69767598869928 | erot = 19.9506603805433 | epot = -82.1050533754265 | etot = -54.4567170061839 +198000 ekin = 7.51633971742497 | erot = 19.3369849795458 | epot = -81.3100416995884 | etot = -54.4567170026176 +199000 ekin = 7.29564326176015 | erot = 18.7231663844438 | epot = -80.4755266460848 | etot = -54.4567169998808 +200000 ekin = 7.05165448325543 | erot = 18.1349004645792 | epot = -79.6432719456297 | etot = -54.4567169977951 +201000 ekin = 6.79980702715855 | erot = 17.5878866996147 | epot = -78.8444107231935 | etot = -54.4567169964203 +202000 ekin = 6.55389674542695 | erot = 17.0887428909489 | epot = -78.0993566320958 | etot = -54.45671699572 +203000 ekin = 6.32553934601966 | erot = 16.6359102128837 | epot = -77.4181665545184 | etot = -54.4567169956151 +204000 ekin = 6.12389931338692 | erot = 16.2210487374615 | epot = -76.8016650468575 | etot = -54.4567169960091 +205000 ekin = 5.95555747604073 | erot = 15.8306192384197 | epot = -76.2428937112594 | etot = -54.4567169967989 +206000 ekin = 5.82447629752483 | erot = 15.4475601715693 | epot = -75.7287534669597 | etot = -54.4567169978656 +207000 ekin = 5.73209725915263 | erot = 15.0531052521605 | epot = -75.2419195103738 | etot = -54.4567169990607 +208000 ekin = 5.67763110960507 | erot = 14.6288167787902 | epot = -74.7631648886021 | etot = -54.4567170002068 +209000 ekin = 5.65856116655301 | erot = 14.1588249337465 | epot = -74.2741031014098 | etot = -54.4567170011102 +210000 ekin = 5.6712828663927 | erot = 13.6320871718379 | epot = -73.7600870398326 | etot = -54.456717001602 +211000 ekin = 5.71170580201836 | erot = 13.0442947184104 | epot = -73.2127175220104 | etot = -54.4567170015816 +212000 ekin = 5.77563179366601 | erot = 12.3989793850675 | epot = -72.6313281797795 | etot = -54.456717001046 +213000 ekin = 5.85883529486916 | erot = 11.7074993993304 | epot = -72.0230516942857 | etot = -54.4567170000862 +214000 ekin = 5.95694378807647 | erot = 10.9878661192832 | epot = -71.4015269062099 | etot = -54.4567169988502 +215000 ekin = 6.06530909503383 | erot = 10.2626621519582 | epot = -70.7846882445011 | etot = -54.4567169975091 +216000 ekin = 6.17900319439905 | erot = 9.55646209151467 | epot = -70.1921822821411 | etot = -54.4567169962274 +217000 ekin = 6.29293379836596 | erot = 8.89318379220723 | epot = -69.6428345857192 | etot = -54.456716995146 +218000 ekin = 6.40198693072017 | erot = 8.29373644846285 | epot = -69.1524403735552 | etot = -54.4567169943722 +219000 ekin = 6.50112265239684 | erot = 7.77424405643487 | epot = -68.732083702802 | etot = -54.4567169939703 +220000 ekin = 6.58542599005467 | erot = 7.34501698346264 | epot = -68.3871599674677 | etot = -54.4567169939504 +221000 ekin = 6.6501699004463 | erot = 7.01032033730907 | epot = -68.1172072320272 | etot = -54.4567169942718 +222000 ekin = 6.69094775781919 | erot = 6.76886488024845 | epot = -67.9165296329197 | etot = -54.4567169948521 +223000 ekin = 6.7038957063633 | erot = 6.61485079073525 | epot = -67.7754634926816 | etot = -54.456716995583 +224000 ekin = 6.68598136532833 | erot = 6.53933986021408 | epot = -67.6820382218934 | etot = -54.456716996351 +225000 ekin = 6.63530548008247 | erot = 6.53171636120422 | epot = -67.6237388382973 | etot = -54.4567169970106 +226000 ekin = 6.55135057790799 | erot = 6.58128483353117 | epot = -67.5893524090246 | etot = -54.4567169975854 +227000 ekin = 6.43512370214418 | erot = 6.67791109033852 | epot = -67.5697517904585 | etot = -54.4567169979758 +228000 ekin = 6.28918970974481 | erot = 6.81247705117115 | epot = -67.5583837590923 | etot = -54.4567169981763 +229000 ekin = 6.1175658806069 | erot = 6.9774347779435 | epot = -67.5517176567548 | etot = -54.4567169982044 +230000 ekin = 5.92551276691973 | erot = 7.16674212049638 | epot = -67.5489718855087 | etot = -54.4567169980926 +231000 ekin = 5.71926565756217 | erot = 7.37564891103254 | epot = -67.551631566466 | etot = -54.4567169978713 +232000 ekin = 5.50574389394972 | erot = 7.60035647333841 | epot = -67.5628173648789 | etot = -54.4567169975908 +233000 ekin = 5.29225977426159 | erot = 7.83770399533277 | epot = -67.5866807668658 | etot = -54.4567169972714 +234000 ekin = 5.0862439206851 | erot = 8.08503631201549 | epot = -67.6279972296364 | etot = -54.4567169969359 +235000 ekin = 4.89494104385069 | erot = 8.33999580227168 | epot = -67.6916538427544 | etot = -54.456716996632 +236000 ekin = 4.72509234581344 | erot = 8.60029924339022 | epot = -67.7821085855883 | etot = -54.4567169963846 +237000 ekin = 4.58266021004047 | erot = 8.86357795327799 | epot = -67.9029551595439 | etot = -54.4567169962255 +238000 ekin = 4.47254260204365 | erot = 9.12720418841258 | epot = -68.0564637866342 | etot = -54.456716996178 +239000 ekin = 4.39833350162634 | erot = 9.38820734227972 | epot = -68.2432578401588 | etot = -54.4567169962527 +240000 ekin = 4.36216127770993 | erot = 9.6433463222102 | epot = -68.462224596357 | etot = -54.4567169964369 +241000 ekin = 4.36462932001241 | erot = 9.88937569308729 | epot = -68.710722009799 | etot = -54.4567169966993 +242000 ekin = 4.40486892553622 | erot = 10.1234451005895 | epot = -68.9850310231314 | etot = -54.4567169970057 +243000 ekin = 4.48069651384233 | erot = 10.3436703820966 | epot = -69.2810838932164 | etot = -54.4567169972774 +244000 ekin = 4.58885218173362 | erot = 10.5497495785183 | epot = -69.5953187577336 | etot = -54.4567169974817 +245000 ekin = 4.7252822690641 | erot = 10.7433460022148 | epot = -69.9253452688599 | etot = -54.456716997581 +246000 ekin = 4.88542118269804 | erot = 10.9282390794557 | epot = -70.2703772597261 | etot = -54.4567169975724 +247000 ekin = 5.06442778965484 | erot = 11.1101246208771 | epot = -70.6312694080142 | etot = -54.4567169974822 +248000 ekin = 5.25733886261363 | erot = 11.2960355852754 | epot = -71.0100914452567 | etot = -54.4567169973676 +249000 ekin = 5.45911617615758 | erot = 11.4934186026626 | epot = -71.4092517761299 | etot = -54.4567169973098 +250000 ekin = 5.66458445083205 | erot = 11.7089626303561 | epot = -71.830264078593 | etot = -54.4567169974049 +251000 ekin = 5.86828470151914 | erot = 11.947332082785 | epot = -72.2723337820484 | etot = -54.4567169977442 +252000 ekin = 6.0643012791257 | erot = 12.2100106162496 | epot = -72.7310288937673 | etot = -54.456716998392 +253000 ekin = 6.24616780492437 | erot = 12.4945137484007 | epot = -73.1973985526759 | etot = -54.4567169993509 +254000 ekin = 6.40690922038606 | erot = 12.7941888151781 | epot = -73.6578150361332 | etot = -54.456717000569 +255000 ekin = 6.53938368546832 | erot = 13.0989475895796 | epot = -74.0950482769172 | etot = -54.4567170018693 +256000 ekin = 6.63705992686419 | erot = 13.3969420757732 | epot = -74.4907190057033 | etot = -54.4567170030659 +257000 ekin = 6.6948413285815 | erot = 13.6765522910167 | epot = -74.828110623551 | etot = -54.4567170039528 +258000 ekin = 6.70989585739565 | erot = 13.9284862768506 | epot = -75.0950991385978 | etot = -54.4567170043516 +259000 ekin = 6.68225912100141 | erot = 14.1474604164198 | epot = -75.2864365416593 | etot = -54.456717004238 +260000 ekin = 6.6149269670595 | erot = 14.3327847112012 | epot = -75.4044286819583 | etot = -54.4567170036976 +261000 ekin = 6.51342916846603 | erot = 14.4875948089515 | epot = -75.4577409802865 | etot = -54.456717002869 +262000 ekin = 6.38502298989667 | erot = 14.6177175279221 | epot = -75.4594575197481 | etot = -54.4567170019294 +263000 ekin = 6.23773151259011 | erot = 14.7300999730227 | epot = -75.4245484866719 | etot = -54.4567170010591 +264000 ekin = 6.07942833310978 | erot = 14.8312906384144 | epot = -75.3674359719007 | etot = -54.4567170003765 +265000 ekin = 5.91711592012144 | erot = 14.9263499746133 | epot = -75.3001828946998 | etot = -54.456716999965 +266000 ekin = 5.75647898919375 | erot = 15.0181250690755 | epot = -75.2313210581342 | etot = -54.456716999865 +267000 ekin = 5.60177946975526 | erot = 15.1067951880379 | epot = -75.1652916578609 | etot = -54.4567170000677 +268000 ekin = 5.45615379098988 | erot = 15.189745234935 | epot = -75.1026160264251 | etot = -54.4567170005002 +269000 ekin = 5.32235014694951 | erot = 15.2617179030208 | epot = -75.0407850514111 | etot = -54.4567170014407 +270000 ekin = 5.20387607982583 | erot = 15.3135128498176 | epot = -74.9741059315067 | etot = -54.4567170018633 +271000 ekin = 5.10637822315521 | erot = 15.3372496535188 | epot = -74.9003448785744 | etot = -54.4567170019004 +272000 ekin = 5.03885187481446 | erot = 15.327624841925 | epot = -74.8231937182271 | etot = -54.4567170014876 +273000 ekin = 5.01411589731618 | erot = 15.2821745715634 | epot = -74.7530074694248 | etot = -54.4567170005452 +274000 ekin = 5.04786741773145 | erot = 15.2025250198948 | epot = -74.7071094368927 | etot = -54.4567169992664 +275000 ekin = 5.15594350432475 | erot = 15.0944700838312 | epot = -74.7071305860956 | etot = -54.4567169979397 +276000 ekin = 5.35014893903236 | erot = 14.9659361282781 | epot = -74.7728020645803 | etot = -54.4567169972699 +277000 ekin = 5.63387543033527 | erot = 14.8238652605351 | epot = -74.9144576883626 | etot = -54.4567169974923 +278000 ekin = 5.99920506254099 | erot = 14.6727240463492 | epot = -75.1286461075833 | etot = -54.4567169986931 +279000 ekin = 6.42692112008751 | erot = 14.513699602506 | epot = -75.3973377231584 | etot = -54.4567170005649 +280000 ekin = 6.88964247825144 | erot = 14.3457897766104 | epot = -75.6921492574821 | etot = -54.4567170026203 +281000 ekin = 7.35680808434941 | erot = 14.1678692303649 | epot = -75.9813943196751 | etot = -54.4567170049608 +282000 ekin = 7.79894530205517 | erot = 13.9783131612805 | epot = -76.2339754694448 | etot = -54.4567170061092 +283000 ekin = 8.19329732426299 | erot = 13.7802856701101 | epot = -76.4303000007414 | etot = -54.4567170063683 +284000 ekin = 8.52584895841313 | erot = 13.5821656429363 | epot = -76.5647316071434 | etot = -54.4567170057939 +285000 ekin = 8.79110175655308 | erot = 13.3960594628864 | epot = -76.6438782240431 | etot = -54.4567170046036 +286000 ekin = 8.99062132696362 | erot = 13.2361225163112 | epot = -76.6834608463776 | etot = -54.4567170031028 +287000 ekin = 9.13075096351798 | erot = 13.116415254778 | epot = -76.7038832199022 | etot = -54.4567170016063 +288000 ekin = 9.2201402060807 | erot = 13.0487281533165 | epot = -76.7255853597818 | etot = -54.4567170003847 +289000 ekin = 9.26758159069276 | erot = 13.0407526423211 | epot = -76.7650512326338 | etot = -54.4567169996199 +290000 ekin = 9.28045458789671 | erot = 13.0948897576293 | epot = -76.8320613449156 | etot = -54.4567169993897 +291000 ekin = 9.26388652304975 | erot = 13.2078630291817 | epot = -76.9284665519076 | etot = -54.4567169996761 +292000 ekin = 9.22058026560232 | erot = 13.3711344770738 | epot = -77.0484317430577 | etot = -54.4567170003816 +293000 ekin = 9.15114447320877 | erot = 13.5719438956012 | epot = -77.1798053701816 | etot = -54.4567170013717 +294000 ekin = 9.05470928641046 | erot = 13.7944688657362 | epot = -77.3058951547296 | etot = -54.4567170025829 +295000 ekin = 8.92962793964649 | erot = 14.0209919623835 | epot = -77.4073369057994 | etot = -54.4567170037694 +296000 ekin = 8.77413837931907 | erot = 14.233755611159 | epot = -77.4646109953774 | etot = -54.4567170048993 +297000 ekin = 8.58694141176308 | erot = 14.4156117991042 | epot = -77.4592702167607 | etot = -54.4567170058934 +298000 ekin = 8.36771464082724 | erot = 14.5507736801853 | epot = -77.3752053276863 | etot = -54.4567170066738 +299000 ekin = 8.11757828386985 | erot = 14.6256180333509 | epot = -77.1999133243813 | etot = -54.4567170071606 +300000 ekin = 7.83948860310585 | erot = 14.6295386097215 | epot = -76.9257442201075 | etot = -54.4567170072802 +301000 ekin = 7.53848779196521 | erot = 14.5557753435651 | epot = -76.5509801425169 | etot = -54.4567170069866 +302000 ekin = 7.22172227244577 | erot = 14.4020558262293 | epot = -76.0804951049512 | etot = -54.4567170062762 +303000 ekin = 6.898170015461 | erot = 14.170873945613 | epot = -75.5257609662701 | etot = -54.4567170051961 +304000 ekin = 6.57808261931137 | erot = 13.8692983759016 | epot = -74.9040979990486 | etot = -54.4567170038356 +305000 ekin = 6.2722234776823 | erot = 13.5083194093946 | epot = -74.2372598893895 | etot = -54.4567170023126 +306000 ekin = 5.99103930572871 | erot = 13.1018578904956 | epot = -73.549614196971 | etot = -54.4567170007467 +307000 ekin = 5.74391705619897 | erot = 12.6656285179261 | epot = -72.8662625733666 | etot = -54.4567169992415 +308000 ekin = 5.53864734382477 | erot = 12.2160468439345 | epot = -72.2114111856259 | etot = -54.4567169978666 +309000 ekin = 5.38115498325946 | erot = 11.7690964633918 | epot = -71.6069684433846 | etot = -54.4567169967334 +310000 ekin = 5.27549820636478 | erot = 11.3394194656315 | epot = -71.0716346677326 | etot = -54.4567169957363 +311000 ekin = 5.22401044242898 | erot = 10.9405074525655 | epot = -70.6212348899484 | etot = -54.4567169949538 +312000 ekin = 5.22752009859842 | erot = 10.58378677297 | epot = -70.2680238659752 | etot = -54.4567169944068 +313000 ekin = 5.2855691102471 | erot = 10.278028711995 | epot = -70.0203148163729 | etot = -54.4567169941308 +314000 ekin = 5.39655367391449 | erot = 10.0287341725483 | epot = -69.8820048406328 | etot = -54.45671699417 +315000 ekin = 5.55776516265216 | erot = 9.83752336502832 | epot = -69.8520055222453 | etot = -54.4567169945648 +316000 ekin = 5.76535304575541 | erot = 9.7016458093175 | epot = -69.9237158504148 | etot = -54.4567169953418 +317000 ekin = 6.01426692501147 | erot = 9.61377206322875 | epot = -70.0847559847325 | etot = -54.4567169964923 +318000 ekin = 6.29825476428649 | erot = 9.56224828023903 | epot = -70.3172200424818 | etot = -54.4567169979563 +319000 ekin = 6.60999451535049 | erot = 9.5319755768407 | epot = -70.5986870918048 | etot = -54.4567169996136 +320000 ekin = 6.94141382334492 | erot = 9.50599899524184 | epot = -70.9041298198703 | etot = -54.4567170012835 +321000 ekin = 7.28420684012922 | erot = 9.46773994831762 | epot = -71.2086637911961 | etot = -54.4567170027492 +322000 ekin = 7.63049375596247 | erot = 9.40359379846618 | epot = -71.4908045582248 | etot = -54.4567170037962 +323000 ekin = 7.97350371439743 | erot = 9.30540350739528 | epot = -71.7356242260599 | etot = -54.4567170042672 +324000 ekin = 8.30812216471307 | erot = 9.17221603058585 | epot = -71.9370551994029 | etot = -54.456717004104 +325000 ekin = 8.63115493817483 | erot = 9.01082149334885 | epot = -72.0986934348921 | etot = -54.4567170033684 +326000 ekin = 8.94122829508797 | erot = 8.83486894707444 | epot = -72.2328142443922 | etot = -54.4567170022298 +327000 ekin = 9.23834163996081 | erot = 8.66273411451702 | epot = -72.3577927554029 | etot = -54.4567170009251 +328000 ekin = 9.52317541128336 | erot = 8.51461710980073 | epot = -72.4945095207944 | etot = -54.4567169997103 +329000 ekin = 9.79629908030493 | erot = 8.40945765597971 | epot = -72.6624737351001 | etot = -54.4567169988154 +330000 ekin = 10.0574197993294 | erot = 8.36217436292908 | epot = -72.8763111606755 | etot = -54.4567169984171 +331000 ekin = 10.3047815002041 | erot = 8.38155728442034 | epot = -73.1430557832487 | etot = -54.4567169986243 +332000 ekin = 10.5347934531664 | erot = 8.46897862472524 | epot = -73.4604890773601 | etot = -54.4567169994685 +333000 ekin = 10.7419525181473 | erot = 8.61799790190843 | epot = -73.8166674209546 | etot = -54.4567170008989 +334000 ekin = 10.9191228829944 | erot = 8.81492290907158 | epot = -74.1907627948314 | etot = -54.4567170027654 +335000 ekin = 11.0582310034198 | erot = 9.04039212108807 | epot = -74.5553401293301 | etot = -54.4567170048223 +336000 ekin = 11.1513905495672 | erot = 9.27198870540517 | epot = -74.880096261711 | etot = -54.4567170067386 +337000 ekin = 11.1923691999822 | erot = 9.48771814311757 | epot = -75.1368043512457 | etot = -54.4567170081459 +338000 ekin = 11.1781584914567 | erot = 9.66988639694834 | epot = -75.3047618971217 | etot = -54.4567170087167 +339000 ekin = 11.1102731632004 | erot = 9.80861367328644 | epot = -75.3756038447372 | etot = -54.4567170082504 +340000 ekin = 10.9953796290097 | erot = 9.90409604937516 | epot = -75.3561926851333 | etot = -54.4567170067484 +341000 ekin = 10.8449930881419 | erot = 9.96693425469746 | epot = -75.268644347256 | etot = -54.4567170044166 +342000 ekin = 10.6742553473784 | erot = 10.0163686561569 | epot = -75.1473410051493 | etot = -54.456717001614 +343000 ekin = 10.5000860602698 | erot = 10.0768729195906 | epot = -75.0336759786219 | etot = -54.4567169987615 +344000 ekin = 10.3391511438798 | erot = 10.1739718598944 | epot = -74.9698400000255 | etot = -54.4567169962514 +345000 ekin = 10.2060562002363 | erot = 10.3301918101587 | epot = -74.9929650047806 | etot = -54.4567169943855 +346000 ekin = 10.1120018691461 | erot = 10.5617784620028 | epot = -75.1304973245115 | etot = -54.4567169933625 +347000 ekin = 10.0639419677441 | erot = 10.8764329835346 | epot = -75.3970919445696 | etot = -54.456716993291 +348000 ekin = 10.0641555603058 | erot = 11.272025732448 | epot = -75.7928982869613 | etot = -54.4567169942075 +349000 ekin = 10.1101145524105 | erot = 11.7361477401435 | epot = -76.3029792886416 | etot = -54.4567169960877 +350000 ekin = 10.194582521887 | erot = 12.2464414545059 | epot = -76.8977409752301 | etot = -54.4567169988372 +351000 ekin = 10.3059767731321 | erot = 12.7718298178684 | epot = -77.5345235932654 | etot = -54.4567170022649 +352000 ekin = 10.4291136841201 | erot = 13.274913313952 | epot = -78.1607440041161 | etot = -54.456717006044 +353000 ekin = 10.5464827220696 | erot = 13.7157870243144 | epot = -78.7189867560916 | etot = -54.4567170097076 +354000 ekin = 10.6401081739569 | erot = 14.057229186967 | epot = -79.1540543736257 | etot = -54.4567170127017 +355000 ekin = 10.6938478547038 | erot = 14.2706326977498 | epot = -79.421197566951 | etot = -54.4567170144975 +356000 ekin = 10.6957117760349 | erot = 14.3414067966632 | epot = -79.4938355874434 | etot = -54.4567170147452 +357000 ekin = 10.6396104112845 | erot = 14.2722652226246 | epot = -79.3685926473052 | etot = -54.4567170133961 +358000 ekin = 10.5262520486628 | erot = 14.0832401802021 | epot = -79.0662092386956 | etot = -54.4567170098307 +359000 ekin = 10.3670012344496 | erot = 13.8092169878378 | epot = -78.6329352288622 | etot = -54.4567170065747 +360000 ekin = 10.1730345911639 | erot = 13.4915235481033 | epot = -78.1212751423934 | etot = -54.4567170031263 +361000 ekin = 9.95554687781761 | erot = 13.1714216600725 | epot = -77.5836855379417 | etot = -54.4567170000515 +362000 ekin = 9.72626696401673 | erot = 12.8843171182331 | epot = -77.0673010799944 | etot = -54.4567169977445 +363000 ekin = 9.49594699775478 | erot = 12.6552376501784 | epot = -76.6079016443334 | etot = -54.4567169964002 +364000 ekin = 9.27348051448134 | erot = 12.4966397003761 | epot = -76.226837210883 | etot = -54.4567169960255 +365000 ekin = 9.06556428138691 | erot = 12.408435956081 | epot = -75.9307172339611 | etot = -54.4567169964932 +366000 ekin = 8.87671568778686 | erot = 12.3798183116159 | epot = -75.7132509969826 | etot = -54.4567169975798 +367000 ekin = 8.70950256436292 | erot = 12.3923063931803 | epot = -75.5585259565717 | etot = -54.4567169990284 +368000 ekin = 8.56482533240977 | erot = 12.4233361953079 | epot = -75.4448785283144 | etot = -54.4567170005967 +369000 ekin = 8.44216266248821 | erot = 12.4496962572909 | epot = -75.3485759218773 | etot = -54.4567170020982 +370000 ekin = 8.33975827582798 | erot = 12.4502709028872 | epot = -75.2467461821219 | etot = -54.4567170034067 +371000 ekin = 8.25479796579994 | erot = 12.4078609325617 | epot = -75.1193759028063 | etot = -54.4567170044447 +372000 ekin = 8.1836687896195 | erot = 12.3101981041707 | epot = -74.9505838989413 | etot = -54.4567170051512 +373000 ekin = 8.12237120101005 | erot = 12.150469466894 | epot = -74.7295576733678 | etot = -54.4567170054638 +374000 ekin = 8.06677539354389 | erot = 11.9273562293618 | epot = -74.4508486283267 | etot = -54.456717005421 +375000 ekin = 8.01350111914578 | erot = 11.6453205219606 | epot = -74.1155386458777 | etot = -54.4567170047713 +376000 ekin = 7.96091572449109 | erot = 11.3149868234321 | epot = -73.7326195516342 | etot = -54.4567170037111 +377000 ekin = 7.90852881943222 | erot = 10.9517029979104 | epot = -73.3169488197141 | etot = -54.4567170023715 +378000 ekin = 7.85672904351673 | erot = 10.5738384909382 | epot = -72.8872845353939 | etot = -54.456717000939 +379000 ekin = 7.80630927768835 | erot = 10.2005458441792 | epot = -72.4635721214806 | etot = -54.456716999613 +380000 ekin = 7.75800079079379 | erot = 9.84945299077856 | epot = -72.0641707801124 | etot = -54.4567169985401 +381000 ekin = 7.71644600863279 | erot = 9.53800624562745 | epot = -71.7111692500986 | etot = -54.4567169958383 +382000 ekin = 7.68441527893159 | erot = 9.2783208983659 | epot = -71.4194531731883 | etot = -54.4567169958909 +383000 ekin = 7.65787566183791 | erot = 9.07303517127919 | epot = -71.1876278290995 | etot = -54.4567169959824 +384000 ekin = 7.63460910810437 | erot = 8.92241188986493 | epot = -71.0137379939128 | etot = -54.4567169959435 +385000 ekin = 7.61495351644065 | erot = 8.82611541869655 | epot = -70.8977859308194 | etot = -54.4567169956822 +386000 ekin = 7.60189486281627 | erot = 8.78441843695726 | epot = -70.8430302950001 | etot = -54.4567169952266 +387000 ekin = 7.6004189110324 | erot = 8.79838942462995 | epot = -70.8555253303877 | etot = -54.4567169947253 +388000 ekin = 7.61622683362077 | erot = 8.86894752211266 | epot = -70.9418913501425 | etot = -54.4567169944091 +389000 ekin = 7.65411397461101 | erot = 8.99508106939632 | epot = -71.1059120385254 | etot = -54.4567169945181 +390000 ekin = 7.71640194413762 | erot = 9.17181221608524 | epot = -71.3449311554783 | etot = -54.4567169952555 +391000 ekin = 7.80179289421792 | erot = 9.38846927313518 | epot = -71.6469791640467 | etot = -54.4567169966936 +392000 ekin = 7.90489667240656 | erot = 9.62803617098395 | epot = -71.9896498421597 | etot = -54.4567169987692 +393000 ekin = 8.01656398897941 | erot = 9.86778742621825 | epot = -72.3410684164707 | etot = -54.456717001273 +394000 ekin = 8.12500523168231 | erot = 10.0813107732258 | epot = -72.6630330087845 | etot = -54.4567170038763 +395000 ekin = 8.21751488333194 | erot = 10.2416672650839 | epot = -72.915899154609 | etot = -54.4567170061932 +396000 ekin = 8.28249369762926 | erot = 10.3253499492638 | epot = -73.0645606546967 | etot = -54.4567170078036 +397000 ekin = 8.31139266032575 | erot = 10.315944912881 | epot = -73.0840545817406 | etot = -54.4567170085339 +398000 ekin = 8.30021982541605 | erot = 10.206034771068 | epot = -72.9629716046318 | etot = -54.4567170081478 +399000 ekin = 8.25031816200888 | erot = 9.99940615795296 | epot = -72.7064413267651 | etot = -54.4567170068033 +400000 ekin = 8.16827445227822 | erot = 9.70970155030778 | epot = -72.3346930072165 | etot = -54.4567170046305 +401000 ekin = 8.06453103741756 | erot = 9.35834706106926 | epot = -71.8795951005915 | etot = -54.4567170021047 +402000 ekin = 7.95192509945215 | erot = 8.9720246874988 | epot = -71.3806667861483 | etot = -54.4567169991973 +403000 ekin = 7.84555125758116 | erot = 8.5797180293817 | epot = -70.8819862834035 | etot = -54.4567169964406 +404000 ekin = 7.76002341839185 | erot = 8.20898478879149 | epot = -70.4257252013545 | etot = -54.4567169941711 +405000 ekin = 7.7073293183604 | erot = 7.88377510171153 | epot = -70.04782141242 | etot = -54.4567169923481 +406000 ekin = 7.69678612080548 | erot = 7.62266799266178 | epot = -69.7761711045927 | etot = -54.4567169911254 +407000 ekin = 7.73513354697874 | erot = 7.43808993656983 | epot = -69.6299404740827 | etot = -54.4567169905341 +408000 ekin = 7.8257165724106 | erot = 7.33617130723373 | epot = -69.6186048702056 | etot = -54.4567169905613 +409000 ekin = 7.9684496970445 | erot = 7.31680539063865 | epot = -69.7419720788775 | etot = -54.4567169911943 +410000 ekin = 8.15983887505972 | erot = 7.37383443939713 | epot = -69.9903903068714 | etot = -54.4567169924145 +411000 ekin = 8.39302325865334 | erot = 7.4953976334531 | epot = -70.345137886285 | etot = -54.4567169941786 +412000 ekin = 8.65789214072952 | erot = 7.66460030904632 | epot = -70.7792094461696 | etot = -54.4567169963938 +413000 ekin = 8.94143674964152 | erot = 7.86072523711258 | epot = -71.2588789856408 | etot = -54.4567169988867 +414000 ekin = 9.2285627397849 | erot = 8.06118997496099 | epot = -71.7464697161277 | etot = -54.4567170013818 +415000 ekin = 9.50353222597935 | erot = 8.24426927837358 | epot = -72.2045185078814 | etot = -54.4567170035285 +416000 ekin = 9.75196200032584 | erot = 8.3922487405301 | epot = -72.6009277458387 | etot = -54.4567170049828 +417000 ekin = 9.96294493861504 | erot = 8.4942852221574 | epot = -72.9139471663141 | etot = -54.4567170055416 +418000 ekin = 10.1306180934849 | erot = 8.54795226111009 | epot = -73.1352873597258 | etot = -54.4567170051309 +419000 ekin = 10.2546096453467 | erot = 8.55936156101576 | epot = -73.2706882103111 | etot = -54.4567170039486 +420000 ekin = 10.3392413847909 | erot = 8.5415094684924 | epot = -73.3374678555834 | etot = -54.4567170023001 +421000 ekin = 10.3918587231878 | erot = 8.51150598433204 | epot = -73.3600817080286 | etot = -54.4567170005087 +422000 ekin = 10.420878514384 | erot = 8.48778665542919 | epot = -73.3653821686562 | etot = -54.456716998843 +423000 ekin = 10.434035033694 | erot = 8.48770021699399 | epot = -73.3784522482256 | etot = -54.4567169975376 +424000 ekin = 10.4370437707889 | erot = 8.52571262941259 | epot = -73.4194733968352 | etot = -54.4567169966337 +425000 ekin = 10.4323779106206 | erot = 8.61252848638848 | epot = -73.5016237919832 | etot = -54.4567173949741 +426000 ekin = 10.102769114069 | erot = 8.3108489099065 | epot = -72.8703349960252 | etot = -54.4567169720496 +427000 ekin = 10.5737761012436 | erot = 8.79661991597064 | epot = -73.8271134052581 | etot = -54.4567173880439 +428000 ekin = 10.6073086148571 | erot = 9.02815734229429 | epot = -74.0921832808582 | etot = -54.4567173237068 +429000 ekin = 10.5962992474403 | erot = 9.29502326253689 | epot = -74.3480398354735 | etot = -54.4567173254963 +430000 ekin = 10.5389640746102 | erot = 9.58950094092139 | epot = -74.5851823430198 | etot = -54.4567173274882 +431000 ekin = 10.424560070762 | erot = 9.89254945457633 | epot = -74.7738268547395 | etot = -54.4567173294012 +432000 ekin = 10.2456183701252 | erot = 10.1831375483455 | epot = -74.8854732493789 | etot = -54.4567173309082 +433000 ekin = 10.0001839880952 | erot = 10.4408608802982 | epot = -74.8977622000937 | etot = -54.4567173317003 +434000 ekin = 9.69355282026506 | erot = 10.6487620299475 | epot = -74.7990321817772 | etot = -54.4567173315646 +435000 ekin = 9.33897175582479 | erot = 10.7957385369256 | epot = -74.5914276232058 | etot = -54.4567173304554 +436000 ekin = 8.95691803308959 | erot = 10.8779295163446 | epot = -74.2915648779558 | etot = -54.4567173285216 +437000 ekin = 8.57292089770475 | erot = 10.8987288383945 | epot = -73.9283670621729 | etot = -54.4567173260737 +438000 ekin = 8.21432291140729 | erot = 10.8675107992394 | epot = -73.5385510341416 | etot = -54.4567173234949 +439000 ekin = 7.90671191649818 | erot = 10.7975744645327 | epot = -73.1610037021698 | etot = -54.4567173211389 +440000 ekin = 7.67083057757437 | erot = 10.704001256365 | epot = -72.8315491531841 | etot = -54.4567173192447 +441000 ekin = 7.52056261879319 | erot = 10.6019893788256 | epot = -72.5792693155341 | etot = -54.4567173179153 +442000 ekin = 7.46221677066932 | erot = 10.5058719364384 | epot = -72.4248060242437 | etot = -54.456717317136 +443000 ekin = 7.49495713473312 | erot = 10.4286506059643 | epot = -72.3803250575354 | etot = -54.456717316838 +444000 ekin = 7.61199665329081 | erot = 10.3816668192493 | epot = -72.4503807894868 | etot = -54.4567173169467 +445000 ekin = 7.80212113163771 | erot = 10.3740565458196 | epot = -72.6328949948784 | etot = -54.4567173174211 +446000 ekin = 8.05121208711611 | erot = 10.4118503345054 | epot = -72.9197797398638 | etot = -54.4567173182423 +447000 ekin = 8.34364339005653 | erot = 10.4968771153949 | epot = -73.2972378248907 | etot = -54.4567173194392 +448000 ekin = 8.66325116931131 | erot = 10.625662516794 | epot = -73.7456310070801 | etot = -54.4567173209747 +449000 ekin = 8.99432108685695 | erot = 10.7889809207854 | epot = -74.2400193304181 | etot = -54.4567173227757 +450000 ekin = 9.32245948923829 | erot = 10.9722541224504 | epot = -74.751430936397 | etot = -54.4567173247083 +451000 ekin = 9.63536145904856 | erot = 11.156898532641 | epot = -75.2489773182818 | etot = -54.4567173265923 +452000 ekin = 9.92347885289157 | erot = 11.3224562063112 | epot = -75.7026523874263 | etot = -54.4567173282236 +453000 ekin = 10.1805354635941 | erot = 11.4491361056663 | epot = -76.0863888986956 | etot = -54.4567173294351 +454000 ekin = 10.4037376220791 | erot = 11.5201500068692 | epot = -76.3806049590792 | etot = -54.4567173301309 +455000 ekin = 10.5935799379761 | erot = 11.5233605384503 | epot = -76.5736578067353 | etot = -54.4567173303089 +456000 ekin = 10.7532157912851 | erot = 11.4519857883943 | epot = -76.6619189097318 | etot = -54.4567173300525 +457000 ekin = 10.8874528211754 | erot = 11.3044013916463 | epot = -76.6485715423183 | etot = -54.4567173294966 +458000 ekin = 11.001535672013 | erot = 11.0833330749799 | epot = -76.5415860757935 | etot = -54.4567173288006 +459000 ekin = 11.0999386292817 | erot = 10.7947718565368 | epot = -76.3514278139082 | etot = -54.4567173280897 +460000 ekin = 11.1853921968857 | erot = 10.4469386378857 | epot = -76.0890481622364 | etot = -54.456717327465 +461000 ekin = 11.2582527529505 | erot = 10.0494375630704 | epot = -75.7644076429835 | etot = -54.4567173269627 +462000 ekin = 11.3163535530699 | erot = 9.61273056585407 | epot = -75.3858014455075 | etot = -54.4567173265835 +463000 ekin = 11.3552901634218 | erot = 9.1478274108088 | epot = -74.959834900532 | etot = -54.4567173263014 +464000 ekin = 11.3690501275205 | erot = 8.66606699696608 | epot = -74.4918344505474 | etot = -54.4567173260608 +465000 ekin = 11.3509395537084 | erot = 8.17907283457056 | epot = -73.9867297140534 | etot = -54.4567173257744 +466000 ekin = 11.2946941726397 | erot = 7.69877194993406 | epot = -73.4501834479707 | etot = -54.4567173253969 +467000 ekin = 11.1954789031865 | erot = 7.23723472359684 | epot = -72.889430951676 | etot = -54.4567173248926 +468000 ekin = 11.0507711892589 | erot = 6.80628316339318 | epot = -72.3137716769111 | etot = -54.456717324259 +469000 ekin = 10.8610622879329 | erot = 6.41684853511032 | epot = -71.7346281465611 | etot = -54.4567173235179 +470000 ekin = 10.6303293037452 | erot = 6.07816222727495 | epot = -71.1652088537213 | etot = -54.4567173227011 +471000 ekin = 10.3662986164649 | erot = 5.79695153505929 | epot = -70.6199674733634 | etot = -54.4567173218392 +472000 ekin = 10.0804738216169 | erot = 5.57685091063635 | epot = -70.1140420532125 | etot = -54.4567173209592 +473000 ekin = 9.78780661767614 | erot = 5.41818349563098 | epot = -69.6627074333982 | etot = -54.4567173200911 +474000 ekin = 9.50580460754672 | erot = 5.31815275508718 | epot = -69.2806746819342 | etot = -54.4567173193003 +475000 ekin = 9.25291327929457 | erot = 5.27138134030385 | epot = -68.9810119382783 | etot = -54.4567173186798 +476000 ekin = 9.04625597797249 | erot = 5.27069575628468 | epot = -68.773669052586 | etot = -54.4567173183288 +477000 ekin = 8.89916818083064 | erot = 5.30806481991686 | epot = -68.6639503190668 | etot = -54.4567173183193 +478000 ekin = 8.81917608291934 | erot = 5.37558721489192 | epot = -68.6514806164727 | etot = -54.4567173186615 +479000 ekin = 8.80688801078544 | erot = 5.46634570345682 | epot = -68.729951033573 | etot = -54.4567173193307 +480000 ekin = 8.85595772732357 | erot = 5.57491529290513 | epot = -68.8875903404655 | etot = -54.4567173202368 +481000 ekin = 8.9542741130118 | erot = 5.69752640400347 | epot = -69.108517838353 | etot = -54.4567173213377 +482000 ekin = 9.0851963959233 | erot = 5.83169305185317 | epot = -69.3736067703566 | etot = -54.4567173225801 +483000 ekin = 9.22914118620107 | erot = 5.97559221268723 | epot = -69.6614507227971 | etot = -54.4567173239088 +484000 ekin = 9.3652821454577 | erot = 6.12746790494848 | epot = -69.9494673756554 | etot = -54.4567173252492 +485000 ekin = 9.47329519940104 | erot = 6.28524325030241 | epot = -70.2152557762067 | etot = -54.4567173265033 +486000 ekin = 9.53507247962912 | erot = 6.44644236438812 | epot = -70.4382321715783 | etot = -54.4567173275611 +487000 ekin = 9.53625700454616 | erot = 6.60839833383176 | epot = -70.6013726667003 | etot = -54.4567173283224 +488000 ekin = 9.46740386001155 | erot = 6.7686126489044 | epot = -70.692733837639 | etot = -54.456717328723 +489000 ekin = 9.32459963448959 | erot = 6.92506407616445 | epot = -70.7063810394037 | etot = -54.4567173287496 +490000 ekin = 9.10947948779674 | erot = 7.07631880463358 | epot = -70.642515620872 | etot = -54.4567173284416 +491000 ekin = 8.82889148608559 | erot = 7.22129660537944 | epot = -70.5069054189546 | etot = -54.4567173274895 +492000 ekin = 8.4962875622067 | erot = 7.35787986415986 | epot = -70.3108847533115 | etot = -54.456717326945 +493000 ekin = 8.12488660028817 | erot = 7.48347573766635 | epot = -70.0650796642411 | etot = -54.4567173262866 +494000 ekin = 7.72897177736132 | erot = 7.59497930547726 | epot = -69.7806684084012 | etot = -54.4567173255626 +495000 ekin = 7.32471897790911 | erot = 7.68843463889095 | epot = -69.469870936463 | etot = -54.4567173196629 +496000 ekin = 6.87941085033666 | erot = 7.73484184190264 | epot = -69.0709701954428 | etot = -54.4567175032035 +497000 ekin = 6.10739678417312 | erot = 7.42313588089451 | epot = -67.9872498480863 | etot = -54.4567171830187 +498000 ekin = 6.8219211726194 | erot = 7.452484020774 | epot = -68.7311226730858 | etot = -54.4567174796924 +499000 ekin = 6.94584861699242 | erot = 7.49830975479282 | epot = -68.9008757168133 | etot = -54.456717345028 +500000 ekin = 6.96878886920507 | erot = 7.49013442211219 | epot = -68.9156406384771 | etot = -54.4567173471599 +501000 ekin = 7.01883264694271 | erot = 7.44447241972525 | epot = -68.9200224127091 | etot = -54.4567173460412 +502000 ekin = 7.10336336312501 | erot = 7.36823892373933 | epot = -68.9283196315699 | etot = -54.4567173447056 +503000 ekin = 7.2289928990578 | erot = 7.27372377747254 | epot = -68.9594340197928 | etot = -54.4567173432625 +504000 ekin = 7.4005994068373 | erot = 7.17755657732697 | epot = -69.0348733260256 | etot = -54.4567173418614 +505000 ekin = 7.62076916489943 | erot = 7.09828995867377 | epot = -69.1757764642378 | etot = -54.4567173406646 +506000 ekin = 7.88922231362651 | erot = 7.05443045706273 | epot = -69.4003701105027 | etot = -54.4567173398134 +507000 ekin = 8.20252308360148 | erot = 7.06244306986031 | epot = -69.7216834928712 | etot = -54.4567173394094 +508000 ekin = 8.55418648389005 | erot = 7.13501434822763 | epot = -70.1459181716127 | etot = -54.456717339495 +509000 ekin = 8.93520489703948 | erot = 7.27978431320932 | epot = -70.6717065503033 | etot = -54.4567173400545 +510000 ekin = 9.33488714865777 | erot = 7.49865655844548 | epot = -71.2902610481323 | etot = -54.4567173410291 +511000 ekin = 9.74177952549099 | erot = 7.7876981022302 | epot = -71.9861949700651 | etot = -54.4567173423439 +512000 ekin = 10.1443709695663 | erot = 8.13755539116802 | epot = -72.7386437046674 | etot = -54.456717343933 +513000 ekin = 10.5313274213558 | erot = 8.5342579999187 | epot = -73.5223027670323 | etot = -54.4567173457578 +514000 ekin = 10.8911959115654 | erot = 8.96029115458747 | epot = -74.3082044139355 | etot = -54.4567173477827 +515000 ekin = 11.2118380805567 | erot = 9.39590833077182 | epot = -75.0644637612635 | etot = -54.456717349935 +516000 ekin = 11.4801433363293 | erot = 9.82076307115846 | epot = -75.7576237595405 | etot = -54.4567173520528 +517000 ekin = 11.6825679425294 | erot = 10.2159470150834 | epot = -76.3552323114897 | etot = -54.4567173538768 +518000 ekin = 11.8066633107561 | erot = 10.5663069186954 | epot = -76.8296875845688 | etot = -54.4567173551172 +519000 ekin = 11.8431596193449 | erot = 10.8625837428753 | epot = -77.1624607177696 | etot = -54.4567173555494 +520000 ekin = 11.7878285859662 | erot = 11.1027186624689 | epot = -77.3472646035601 | etot = -54.456717355125 +521000 ekin = 11.6422563220656 | erot = 11.2918969270452 | epot = -77.3908706030577 | etot = -54.4567173539469 +522000 ekin = 11.4135745678826 | erot = 11.4412270159144 | epot = -77.3115189360506 | etot = -54.4567173522537 +523000 ekin = 11.1132889182013 | erot = 11.565401362665 | epot = -77.1354076312099 | etot = -54.4567173503435 +524000 ekin = 10.7556171647493 | erot = 11.6798233409133 | epot = -76.89215785419 | etot = -54.4567173485274 +525000 ekin = 10.3557495856454 | erot = 11.7976048718282 | epot = -76.6100718045622 | etot = -54.4567173470886 +526000 ekin = 9.92830200952678 | erot = 11.9267761658672 | epot = -76.3117955216386 | etot = -54.4567173462447 +527000 ekin = 9.4861760916393 | erot = 12.0681058739526 | epot = -76.0109993116997 | etot = -54.4567173461077 +528000 ekin = 9.04001720130084 | erot = 12.2139837697124 | epot = -75.7107183176547 | etot = -54.4567173466414 +529000 ekin = 8.59838558982515 | erot = 12.3488494507761 | epot = -75.4039523882436 | etot = -54.4567173476424 +530000 ekin = 8.16860222530235 | erot = 12.4514559330934 | epot = -75.0767755071576 | etot = -54.4567173487618 +531000 ekin = 7.75801650618655 | erot = 12.4988074604703 | epot = -74.7135413162482 | etot = -54.4567173495913 +532000 ekin = 7.37526556650152 | erot = 12.4710301212426 | epot = -74.3030130375125 | etot = -54.4567173497683 +533000 ekin = 7.03105781111155 | erot = 12.355970528863 | epot = -73.8437456890665 | etot = -54.4567173490919 +534000 ekin = 6.73815971498395 | erot = 12.1522682791501 | epot = -73.3471453417086 | etot = -54.4567173475745 +535000 ekin = 6.51053456919657 | erot = 11.8701146968309 | epot = -72.8373666114534 | etot = -54.456717345426 +536000 ekin = 6.36183924354587 | erot = 11.5296683851323 | epot = -72.348224971669 | etot = -54.4567173429908 +537000 ekin = 6.30361425977092 | erot = 11.1591555752721 | epot = -71.9194871756111 | etot = -54.4567173405681 +538000 ekin = 6.34347309062687 | erot = 10.7899247971594 | epot = -71.5901152265502 | etot = -54.456717338764 +539000 ekin = 6.48353756609274 | erot = 10.448864772999 | epot = -71.3891196768483 | etot = -54.4567173377565 +540000 ekin = 6.71929044884142 | erot = 10.1573936013011 | epot = -71.3334013878978 | etot = -54.4567173377553 +541000 ekin = 7.03900384377628 | erot = 9.92878251409714 | epot = -71.4245036967232 | etot = -54.4567173388497 +542000 ekin = 7.42390727691472 | erot = 9.76658171325418 | epot = -71.6472063311494 | etot = -54.4567173409805 +543000 ekin = 7.84922333880294 | erot = 9.66443151246169 | epot = -71.9703721951897 | etot = -54.4567173439251 +544000 ekin = 8.28608576855171 | erot = 9.60741387125949 | epot = -72.3502169871298 | etot = -54.4567173473186 +545000 ekin = 8.70416168565093 | erot = 9.5748381917973 | epot = -72.7357172281471 | etot = -54.4567173506988 +546000 ekin = 9.07464757513591 | erot = 9.54408103804464 | epot = -73.0754459667738 | etot = -54.4567173535932 +547000 ekin = 9.3731666291265 | erot = 9.49472293137369 | epot = -73.3246069161143 | etot = -54.4567173556141 +548000 ekin = 9.58208685808983 | erot = 9.41206012908931 | epot = -73.450864343719 | etot = -54.4567173565398 +549000 ekin = 9.69189882138825 | erot = 9.2892089381751 | epot = -73.4378251159085 | etot = -54.4567173563452 +550000 ekin = 9.70150390326669 | erot = 9.12788542700221 | epot = -73.2861066853078 | etot = -54.4567173550388 +551000 ekin = 9.61749941014082 | erot = 8.93692851360498 | epot = -73.0111452769413 | etot = -54.4567173531955 +552000 ekin = 9.45272119087804 | erot = 8.7288749611758 | epot = -72.6383135030083 | etot = -54.4567173509545 +553000 ekin = 9.22440824207828 | erot = 8.51841746658326 | epot = -72.199543057248 | etot = -54.4567173485864 +554000 ekin = 8.95232614946946 | erot = 8.32031677004921 | epot = -71.7293602658114 | etot = -54.4567173462927 +555000 ekin = 8.65710798386219 | erot = 8.14801655131682 | epot = -71.2618418793792 | etot = -54.4567173442002 +556000 ekin = 8.35889174137027 | erot = 8.01297313100488 | epot = -70.8285822147525 | etot = -54.4567173423774 +557000 ekin = 8.07627835317248 | erot = 7.92452278401225 | epot = -70.4575184780337 | etot = -54.456717340849 +558000 ekin = 7.82557556425423 | erot = 7.89005526871244 | epot = -70.1723481725976 | etot = -54.4567173396309 +559000 ekin = 7.62022949923433 | erot = 7.9151997742857 | epot = -69.9921466122684 | etot = -54.4567173387483 +560000 ekin = 7.47037167198336 | erot = 8.00382469731386 | epot = -69.9309137075372 | etot = -54.45671733824 +561000 ekin = 7.3824437430579 | erot = 8.1577660602575 | epot = -69.9969271414742 | etot = -54.4567173381588 +562000 ekin = 7.35891939627435 | erot = 8.37634747918822 | epot = -70.1919842140091 | etot = -54.4567173385465 +563000 ekin = 7.39821090242522 | erot = 8.65591018978209 | epot = -70.5108384316117 | etot = -54.4567173394044 +564000 ekin = 7.49490249873523 | erot = 8.98967393472835 | epot = -70.9412937741221 | etot = -54.4567173406586 +565000 ekin = 7.64044839043029 | erot = 9.3684279189398 | epot = -71.4655936514438 | etot = -54.4567173420737 +566000 ekin = 7.82436206842929 | erot = 9.78146009418592 | epot = -72.0625395062585 | etot = -54.4567173436433 +567000 ekin = 8.03570817671654 | erot = 10.2171991122977 | epot = -72.7096246341256 | etot = -54.4567173451114 +568000 ekin = 8.26450258147394 | erot = 10.6646881726335 | epot = -73.3859081005311 | etot = -54.4567173464237 +569000 ekin = 8.50263013239494 | erot = 11.1136558316471 | epot = -74.0730033116448 | etot = -54.4567173476028 +570000 ekin = 8.74345958959075 | erot = 11.5533265255301 | epot = -74.7535034642607 | etot = -54.4567173491399 +571000 ekin = 8.98083952020821 | erot = 11.9715855040633 | epot = -75.4091423755824 | etot = -54.4567173513109 +572000 ekin = 9.20828931136966 | erot = 12.3553438318268 | epot = -76.0203504955519 | etot = -54.4567173523555 +573000 ekin = 9.42090854110721 | erot = 12.6948199769556 | epot = -76.5724458709036 | etot = -54.4567173528408 +574000 ekin = 9.61857732717745 | erot = 12.9876096044057 | epot = -77.0629042836973 | etot = -54.4567173521141 +575000 ekin = 9.80559233525979 | erot = 13.2418166844513 | epot = -77.5041263702044 | etot = -54.4567173504934 +576000 ekin = 9.99035771755662 | erot = 13.4731869806674 | epot = -77.9202620466551 | etot = -54.4567173484311 +577000 ekin = 10.1835632722247 | erot = 13.700252686708 | epot = -78.3405333056113 | etot = -54.4567173466786 +578000 ekin = 10.395375100666 | erot = 13.9378911113993 | epot = -78.7899835575509 | etot = -54.4567173454857 +579000 ekin = 10.6324997791282 | erot = 14.1944325431012 | epot = -79.2836496675446 | etot = -54.4567173453152 +580000 ekin = 10.895796940664 | erot = 14.4694129346651 | epot = -79.8219272216207 | etot = -54.4567173462917 +581000 ekin = 11.1787341118753 | erot = 14.7532777796984 | epot = -80.3887292399888 | etot = -54.4567173484151 +582000 ekin = 11.466833292332 | erot = 15.0284724124371 | epot = -80.9520230561641 | etot = -54.4567173513951 +583000 ekin = 11.7383428294357 | erot = 15.2728618931496 | epot = -81.4679220774621 | etot = -54.4567173548768 +584000 ekin = 11.9664778295303 | erot = 15.4633320551032 | epot = -81.8865272429157 | etot = -54.4567173582823 +585000 ekin = 12.1233962794696 | erot = 15.5801019753539 | epot = -82.1602156157369 | etot = -54.4567173609133 +586000 ekin = 12.1854288034105 | erot = 15.6113292070309 | epot = -82.2534753725822 | etot = -54.4567173621408 +587000 ekin = 12.1382875982287 | erot = 15.5565429926688 | epot = -82.1515479525323 | etot = -54.4567173616348 +588000 ekin = 11.9805672635908 | erot = 15.4274086012425 | epot = -81.8646932243601 | etot = -54.4567173595268 +589000 ekin = 11.7241953475014 | erot = 15.2450549080848 | epot = -81.4259676119825 | etot = -54.4567173563962 +590000 ekin = 11.3915332486304 | erot = 15.0345988268882 | epot = -80.8828494285741 | etot = -54.4567173530556 +591000 ekin = 11.0101533181064 | erot = 14.8188164822634 | epot = -80.2856871505942 | etot = -54.4567173502244 +592000 ekin = 10.6073077807329 | erot = 14.6133535707874 | epot = -79.6773786997805 | etot = -54.4567173482602 +593000 ekin = 10.2061141300746 | erot = 14.4250491600689 | epot = -79.0878806372491 | etot = -54.4567173471056 +594000 ekin = 9.8243391782238 | erot = 14.2531987869314 | epot = -78.534255311642 | etot = -54.4567173464868 +595000 ekin = 9.47512062808258 | erot = 14.0920125306519 | epot = -78.0238505049153 | etot = -54.4567173461808 +596000 ekin = 9.16819158314277 | erot = 13.9323441617422 | epot = -77.5572530910253 | etot = -54.4567173461403 +597000 ekin = 8.91059203427263 | erot = 13.7621053819225 | epot = -77.1294147626067 | etot = -54.4567173464115 +598000 ekin = 8.7067730827948 | erot = 13.5663641000571 | epot = -76.7298545298322 | etot = -54.4567173469804 +599000 ekin = 8.55852376879638 | erot = 13.3285545478083 | epot = -76.3437956642939 | etot = -54.4567173476893 +600000 ekin = 8.46506569146732 | erot = 13.0361676653363 | epot = -75.957950704708 | etot = -54.4567173479044 +601000 ekin = 8.42303295999629 | erot = 12.6870523997733 | epot = -75.5668027085597 | etot = -54.4567173487902 +602000 ekin = 8.42685459628099 | erot = 12.2732861398469 | epot = -75.1568580851668 | etot = -54.4567173490389 +603000 ekin = 8.46950143052246 | erot = 11.797057152529 | epot = -74.7232759317285 | etot = -54.4567173486771 +604000 ekin = 8.54270518563639 | erot = 11.2713924783248 | epot = -74.2708150118271 | etot = -54.4567173478659 +605000 ekin = 8.6372873366298 | erot = 10.7173462217388 | epot = -73.81135090518 | etot = -54.4567173468114 +606000 ekin = 8.74373801577756 | erot = 10.1602725630418 | epot = -73.3607279245054 | etot = -54.456717345686 +607000 ekin = 8.85303389946066 | erot = 9.62621357889553 | epot = -72.9359648229882 | etot = -54.456717344632 +608000 ekin = 8.95757126306202 | erot = 9.13896619785316 | epot = -72.5532548046045 | etot = -54.4567173436894 +609000 ekin = 9.05196680864353 | erot = 8.71829532643352 | epot = -72.2269794780304 | etot = -54.4567173429533 +610000 ekin = 9.13352888579933 | erot = 8.37856547529385 | epot = -71.9688117034023 | etot = -54.4567173423091 +611000 ekin = 9.20215106470486 | erot = 8.12901246860289 | epot = -71.7878808752354 | etot = -54.4567173419276 +612000 ekin = 9.25956583878083 | erot = 7.97314000871177 | epot = -71.6894231893825 | etot = -54.4567173418899 +613000 ekin = 9.30811487221598 | erot = 7.90851279250858 | epot = -71.6733450070229 | etot = -54.4567173422983 +614000 ekin = 9.34927530412252 | erot = 7.92684519060762 | epot = -71.7328378379656 | etot = -54.4567173432355 +615000 ekin = 9.38237013823359 | erot = 8.01433182907842 | epot = -71.8534193119359 | etot = -54.4567173446239 +616000 ekin = 9.40383195120778 | erot = 8.15304439800148 | epot = -72.0135936957659 | etot = -54.4567173465567 +617000 ekin = 9.40773875972861 | erot = 8.32048130516021 | epot = -72.1849374136101 | etot = -54.4567173487212 +618000 ekin = 9.38718282197416 | erot = 8.49205380139463 | epot = -72.3359539741626 | etot = -54.4567173507938 +619000 ekin = 9.33634137208887 | erot = 8.64410576159845 | epot = -72.4371644860946 | etot = -54.4567173524073 +620000 ekin = 9.25274239709628 | erot = 8.75706693535131 | epot = -72.4665266856836 | etot = -54.456717353236 +621000 ekin = 9.13908734782551 | erot = 8.81838549167825 | epot = -72.4141901925815 | etot = -54.4567173530778 +622000 ekin = 9.00413159187232 | erot = 8.82453847241603 | epot = -72.2853874161967 | etot = -54.4567173519084 +623000 ekin = 8.86237387264741 | erot = 8.7815904437476 | epot = -72.100681665748 | etot = -54.456717349353 +624000 ekin = 8.73233250271996 | erot = 8.70601363408245 | epot = -71.8950634838493 | etot = -54.4567173470468 +625000 ekin = 8.63352260272379 | erot = 8.61836006913258 | epot = -71.7086000163641 | etot = -54.4567173445077 +626000 ekin = 8.58515687060557 | erot = 8.54022417073196 | epot = -71.5820983834407 | etot = -54.4567173421031 +627000 ekin = 8.60386594899659 | erot = 8.49340879469285 | epot = -71.5539920838688 | etot = -54.4567173401793 +628000 ekin = 8.7012527296389 | erot = 8.49697729760367 | epot = -71.6549473663074 | etot = -54.4567173390648 +629000 ekin = 8.88211046285069 | erot = 8.5641034304371 | epot = -71.9029312321927 | etot = -54.4567173389049 +630000 ekin = 9.14246131283763 | erot = 8.70144773180668 | epot = -72.300626384512 | etot = -54.4567173398677 +631000 ekin = 9.46837458093943 | erot = 8.90764779898328 | epot = -72.8327397225162 | etot = -54.4567173425934 +632000 ekin = 9.83312177173637 | erot = 9.17246776667656 | epot = -73.4623068842293 | etot = -54.4567173458164 +633000 ekin = 10.2047873751213 | erot = 9.47797241849136 | epot = -74.1394771430748 | etot = -54.4567173494621 +634000 ekin = 10.5489934613266 | erot = 9.80262636497442 | epot = -74.8083371791868 | etot = -54.4567173528857 +635000 ekin = 10.8335202630288 | erot = 10.125865527331 | epot = -75.4161031457917 | etot = -54.4567173554318 +636000 ekin = 11.0335668276709 | erot = 10.4324958345062 | epot = -75.9227800187378 | etot = -54.4567173565607 +637000 ekin = 11.1356918483499 | erot = 10.715848515948 | epot = -76.3082577206512 | etot = -54.4567173563533 +638000 ekin = 11.1388069575963 | erot = 10.9775008619026 | epot = -76.573025174505 | etot = -54.456717355006 +639000 ekin = 11.0524003327436 | erot = 11.2253769821821 | epot = -76.7344946679223 | etot = -54.4567173529966 +640000 ekin = 10.8928630382816 | erot = 11.4709640829692 | epot = -76.8205444720415 | etot = -54.4567173507906 +641000 ekin = 10.6795161167761 | erot = 11.7265694567109 | epot = -76.8628029221936 | etot = -54.4567173487066 +642000 ekin = 10.431652152028 | erot = 12.0033863745235 | epot = -76.8917558734979 | etot = -54.4567173469463 +643000 ekin = 10.1667694779383 | erot = 12.3102216339995 | epot = -76.9337084574531 | etot = -54.4567173455153 +644000 ekin = 9.90007447739006 | erot = 12.6530565857471 | epot = -77.009848407728 | etot = -54.4567173445908 +645000 ekin = 9.64408802626263 | erot = 13.0333521361078 | epot = -77.1341575065431 | etot = -54.4567173441727 +646000 ekin = 9.40846495824295 | erot = 13.4468842705586 | epot = -77.3120665731202 | etot = -54.4567173443187 +647000 ekin = 9.20006047028955 | erot = 13.8841334486512 | epot = -77.5409112640701 | etot = -54.4567173451294 +648000 ekin = 9.02208271234192 | erot = 14.3287870732403 | epot = -77.8075871322004 | etot = -54.4567173466181 +649000 ekin = 8.87371560220482 | erot = 14.7582675570506 | epot = -78.0887005080238 | etot = -54.4567173487684 +650000 ekin = 8.74973394437183 | erot = 15.1446190956538 | epot = -78.3510703915072 | etot = -54.4567173514816 +651000 ekin = 8.64055354280855 | erot = 15.4561976746668 | epot = -78.5534685720271 | etot = -54.4567173545518 +652000 ekin = 8.53295942949864 | erot = 15.6603023870304 | epot = -78.649979174163 | etot = -54.456717357634 +653000 ekin = 8.41177726197952 | erot = 15.726842939348 | epot = -78.5953375615667 | etot = -54.4567173602391 +654000 ekin = 8.26255435902931 | erot = 15.63291856528 | epot = -78.3521902861158 | etot = -54.4567173618065 +655000 ekin = 8.07486030841898 | erot = 15.3675533060676 | epot = -77.8991309763139 | etot = -54.4567173618274 +656000 ekin = 7.85584872993325 | erot = 14.9356063836777 | epot = -77.248172899955 | etot = -54.456717786344 +657000 ekin = 6.26705400187039 | erot = 14.5624207623999 | epot = -75.2861920811979 | etot = -54.4567173169276 +658000 ekin = 6.04203621444953 | erot = 14.8338374902579 | epot = -75.3325912844764 | etot = -54.4567175797689 +659000 ekin = 6.38626397398244 | erot = 14.3789536735541 | epot = -75.2219349118071 | etot = -54.4567172642705 +660000 ekin = 6.5182532339776 | erot = 13.6086452150087 | epot = -74.5836157135098 | etot = -54.4567172645234 +661000 ekin = 6.66109617845102 | erot = 12.8240798503781 | epot = -73.9418932898926 | etot = -54.4567172610634 +662000 ekin = 6.81858404115184 | erot = 12.0684544028029 | epot = -73.3437557024629 | etot = -54.4567172585082 +663000 ekin = 6.99165023052044 | erot = 11.3761522151831 | epot = -72.8245197026858 | etot = -54.4567172569822 +664000 ekin = 7.17719978230657 | erot = 10.7706097932657 | epot = -72.4045268320594 | etot = -54.4567172564871 +665000 ekin = 7.36750072100346 | erot = 10.2650050778807 | epot = -72.0892230556958 | etot = -54.4567172568117 +666000 ekin = 7.55090853135322 | erot = 9.86588701349086 | epot = -71.8735128030468 | etot = -54.4567172582027 +667000 ekin = 7.71548675043945 | erot = 9.56433968483975 | epot = -71.7365436952498 | etot = -54.4567172599706 +668000 ekin = 7.84942783246737 | erot = 9.34349379628263 | epot = -71.6496388907829 | etot = -54.4567172620329 +669000 ekin = 7.94275892172798 | erot = 9.18157787770468 | epot = -71.5810540633774 | etot = -54.4567172639448 +670000 ekin = 7.98895216682213 | erot = 9.0554441907046 | epot = -71.5011136229651 | etot = -54.4567172654384 +671000 ekin = 7.98617320847965 | erot = 8.94354459269314 | epot = -71.3864350674871 | etot = -54.4567172663143 +672000 ekin = 7.93791523096266 | erot = 8.82829898981495 | epot = -71.2229314872527 | etot = -54.4567172664751 +673000 ekin = 7.85355743595451 | erot = 8.69824309780591 | epot = -71.0085177991649 | etot = -54.4567172654045 +674000 ekin = 7.74778223221068 | erot = 8.54905666591076 | epot = -70.7535561623749 | etot = -54.4567172642534 +675000 ekin = 7.63634833352537 | erot = 8.38135292477012 | epot = -70.4744185210927 | etot = -54.4567172627972 +676000 ekin = 7.53516290999972 | erot = 8.20022759715558 | epot = -70.1921077684618 | etot = -54.4567172613065 +677000 ekin = 7.45794951913446 | erot = 8.01347239993289 | epot = -69.9281391793291 | etot = -54.4567172602618 +678000 ekin = 7.41073692376308 | erot = 7.82731022276803 | epot = -69.6947644060943 | etot = -54.4567172595631 +679000 ekin = 7.39569395416424 | erot = 7.64806661290669 | epot = -69.5004778263204 | etot = -54.4567172592495 +680000 ekin = 7.41151846312342 | erot = 7.4835380650913 | epot = -69.3517737862698 | etot = -54.456717258055 +681000 ekin = 7.45301960110315 | erot = 7.34389485536555 | epot = -69.2536317152595 | etot = -54.4567172587908 +682000 ekin = 7.50922760715596 | erot = 7.2303462747693 | epot = -69.1962911416981 | etot = -54.4567172597729 +683000 ekin = 7.56703179130107 | erot = 7.14137901612441 | epot = -69.1651280682614 | etot = -54.4567172608359 +684000 ekin = 7.61337845770433 | erot = 7.07402860509472 | epot = -69.1441243245626 | etot = -54.4567172617635 +685000 ekin = 7.63706923549581 | erot = 7.0248092367962 | epot = -69.1185957348405 | etot = -54.4567172625485 +686000 ekin = 7.63012070151843 | erot = 6.98974489725438 | epot = -69.0765828618106 | etot = -54.4567172630378 +687000 ekin = 7.58847196986521 | erot = 6.96451826185643 | epot = -69.0097074950328 | etot = -54.4567172633111 +688000 ekin = 7.51200727212071 | erot = 6.94458821707491 | epot = -68.9133127523039 | etot = -54.4567172631083 +689000 ekin = 7.40470220583609 | erot = 6.92788077436856 | epot = -68.7893002428866 | etot = -54.4567172626819 +690000 ekin = 7.27351140184473 | erot = 6.91313342463168 | epot = -68.6433620885768 | etot = -54.4567172621004 +691000 ekin = 7.12739933242756 | erot = 6.89961683272431 | epot = -68.4837334265833 | etot = -54.4567172614315 +692000 ekin = 6.97639340737162 | erot = 6.88713701598974 | epot = -68.3202476840923 | etot = -54.4567172607309 +693000 ekin = 6.83172646954978 | erot = 6.87668966227034 | epot = -68.1651333908689 | etot = -54.4567172590488 +694000 ekin = 6.70636456505114 | erot = 6.87119415659047 | epot = -68.0342759801781 | etot = -54.4567172585365 +695000 ekin = 6.60796425051828 | erot = 6.87171260019601 | epot = -67.936394108847 | etot = -54.4567172581327 +696000 ekin = 6.54180332236266 | erot = 6.87956193852608 | epot = -67.8780825187599 | etot = -54.4567172578711 +697000 ekin = 6.51072403244211 | erot = 6.89634898359872 | epot = -67.8637902738429 | etot = -54.4567172578021 +698000 ekin = 6.51486325250793 | erot = 6.92352997719595 | epot = -67.895110487963 | etot = -54.4567172582591 +699000 ekin = 6.55040388682853 | erot = 6.96167022069476 | epot = -67.9687913660073 | etot = -54.456717258484 +700000 ekin = 6.6121585282473 | erot = 7.01154258673771 | epot = -68.0804183739173 | etot = -54.4567172589323 +701000 ekin = 6.69364481780753 | erot = 7.07323470972917 | epot = -68.2235967870077 | etot = -54.456717259471 +702000 ekin = 6.7869961028155 | erot = 7.145771194002 | epot = -68.389484556921 | etot = -54.4567172601035 +703000 ekin = 6.88366969335579 | erot = 7.22749691999032 | epot = -68.5678838741235 | etot = -54.4567172607774 +704000 ekin = 6.97518890724708 | erot = 7.31588802326416 | epot = -68.7477941919433 | etot = -54.4567172614321 +705000 ekin = 7.05384046081159 | erot = 7.40783149503236 | epot = -68.9183892178483 | etot = -54.4567172620044 +706000 ekin = 7.11324845192292 | erot = 7.50009403269181 | epot = -69.0700597470489 | etot = -54.4567172624342 +707000 ekin = 7.14876450803415 | erot = 7.58991849146169 | epot = -69.1954002621692 | etot = -54.4567172626734 +708000 ekin = 7.15764928628057 | erot = 7.67564119575133 | epot = -69.2900077447258 | etot = -54.4567172626939 +709000 ekin = 7.13905930511253 | erot = 7.75720447258943 | epot = -69.3529810401927 | etot = -54.4567172624908 +710000 ekin = 7.0938793544147 | erot = 7.83644881069371 | epot = -69.3870454271923 | etot = -54.4567172620839 +711000 ekin = 7.0244446759505 | erot = 7.91710241224327 | epot = -69.3982643497145 | etot = -54.4567172615207 +712000 ekin = 6.93418797428583 | erot = 8.00444137728025 | epot = -69.3953466124244 | etot = -54.4567172608583 +713000 ekin = 6.82724359613114 | erot = 8.10466156445409 | epot = -69.388622420787 | etot = -54.4567172602017 +714000 ekin = 6.70804581029775 | erot = 8.22386653913456 | epot = -69.3886296090599 | etot = -54.4567172596276 +715000 ekin = 6.58096815991289 | erot = 8.36710453057032 | epot = -69.4047899497005 | etot = -54.4567172592173 +716000 ekin = 6.45005603944238 | erot = 8.53736910170365 | epot = -69.4441424001801 | etot = -54.456717259034 +717000 ekin = 6.31889522685289 | erot = 8.73472575132229 | epot = -69.5103382372902 | etot = -54.456717259115 +718000 ekin = 6.19064203155935 | erot = 8.95572089428787 | epot = -69.6030801853046 | etot = -54.4567172594574 +719000 ekin = 6.06821802711044 | erot = 9.19320356818901 | epot = -69.7181388553172 | etot = -54.4567172600177 +720000 ekin = 5.95464760383198 | erot = 9.43665584955481 | epot = -69.8480207140972 | etot = -54.4567172607104 +721000 ekin = 5.85348609830537 | erot = 9.67307075500268 | epot = -69.9832741147241 | etot = -54.4567172614161 +722000 ekin = 5.76925126938931 | erot = 9.88829892323016 | epot = -70.114267454639 | etot = -54.4567172620195 +723000 ekin = 5.70773585553476 | erot = 10.06860213304 | epot = -70.2330552509523 | etot = -54.4567172623776 +724000 ekin = 5.6760645042894 | erot = 10.2025682810442 | epot = -70.335350047752 | etot = -54.4567172624185 +725000 ekin = 5.68237542170082 | erot = 10.2825935057557 | epot = -70.4216861895841 | etot = -54.4567172621276 +726000 ekin = 5.73506597281948 | erot = 10.3058575699355 | epot = -70.4976408043186 | etot = -54.4567172615636 +727000 ekin = 5.84164351928827 | erot = 10.2746192681695 | epot = -70.5729800482991 | etot = -54.4567172608413 +728000 ekin = 6.00736875336289 | erot = 10.1958472010947 | epot = -70.6599332145536 | etot = -54.456717260096 +729000 ekin = 6.23388239567645 | erot = 10.0804050315148 | epot = -70.7710046866801 | etot = -54.4567172594889 +730000 ekin = 6.5181079856077 | erot = 9.94175964622021 | epot = -70.9165848909827 | etot = -54.4567172591548 +731000 ekin = 6.85163923571744 | erot = 9.79445434032455 | epot = -71.1028108352361 | etot = -54.4567172591941 +732000 ekin = 7.22074424891735 | erot = 9.65249486307845 | epot = -71.3299563716612 | etot = -54.4567172596655 +733000 ekin = 7.60696817054733 | erot = 9.52810422851143 | epot = -71.5917896595774 | etot = -54.4567172605186 +734000 ekin = 7.98843781661947 | erot = 9.43013551828111 | epot = -71.8752905967073 | etot = -54.4567172618067 +735000 ekin = 8.34173972939013 | erot = 9.36277858698969 | epot = -72.1612355797255 | etot = -54.4567172633456 +736000 ekin = 8.64402787584928 | erot = 9.32573536298566 | epot = -72.4264805037993 | etot = -54.4567172649644 +737000 ekin = 8.87535498674526 | erot = 9.3146792206772 | epot = -72.6467514738655 | etot = -54.4567172664431 +738000 ekin = 9.0209200187784 | erot = 9.32245328119848 | epot = -72.8000905675264 | etot = -54.4567172675495 +739000 ekin = 9.07295023114234 | erot = 9.34080514541082 | epot = -72.8704726446309 | etot = -54.4567172680777 +740000 ekin = 9.03191800999384 | erot = 9.36236057635137 | epot = -72.8509958542333 | etot = -54.4567172678881 +741000 ekin = 8.90683448949746 | erot = 9.38246134464619 | epot = -72.7460131010873 | etot = -54.4567172669436 +742000 ekin = 8.71448735995827 | erot = 9.40037005966795 | epot = -72.5715746850156 | etot = -54.4567172653894 +743000 ekin = 8.47780203517174 | erot = 9.41934825447453 | epot = -72.3538675527049 | etot = -54.4567172630586 +744000 ekin = 8.2239441336512 | erot = 9.44738079426397 | epot = -72.1280421887358 | etot = -54.4567172608206 +745000 ekin = 7.979957206327 | erot = 9.49389903747194 | epot = -71.930573502561 | etot = -54.4567172587621 +746000 ekin = 7.76976645074965 | erot = 9.56761523721079 | epot = -71.7940989452218 | etot = -54.4567172572613 +747000 ekin = 7.61167419659637 | erot = 9.67422583430891 | epot = -71.7426172875921 | etot = -54.4567172566868 +748000 ekin = 7.51658612862877 | erot = 9.81263188347016 | epot = -71.785935269318 | etot = -54.4567172572191 +749000 ekin = 7.48573262349267 | erot = 9.97339077046083 | epot = -71.9158406528599 | etot = -54.4567172589064 +750000 ekin = 7.51095577908412 | erot = 10.1387308601717 | epot = -72.1064039007001 | etot = -54.4567172614443 +751000 ekin = 7.57621289892419 | erot = 10.2849285861805 | epot = -72.3178587495141 | etot = -54.4567172644094 +752000 ekin = 7.66072006265649 | erot = 10.3863157071405 | epot = -72.5037530370115 | etot = -54.4567172672145 +753000 ekin = 7.74275043504163 | erot = 10.4196294184866 | epot = -72.6190971230344 | etot = -54.4567172695062 +754000 ekin = 7.80325401374395 | erot = 10.3685500609724 | epot = -72.6285213451586 | etot = -54.4567172704423 +755000 ekin = 7.83074135615125 | erot = 10.228246958544 | epot = -72.5157055847655 | etot = -54.4567172700702 +756000 ekin = 7.82164306775544 | erot = 10.0059989462499 | epot = -72.2843592824949 | etot = -54.4567172684896 +757000 ekin = 7.7799505806884 | erot = 9.72007455916815 | epot = -71.9567424058705 | etot = -54.456717266014 +758000 ekin = 7.71576193730277 | erot = 9.39663554338545 | epot = -71.5691147437055 | etot = -54.4567172630173 +759000 ekin = 7.6433560104715 | erot = 9.06548554812045 | epot = -71.1655588186319 | etot = -54.45671726004 +760000 ekin = 7.57812578248301 | erot = 8.75574971039161 | epot = -70.7905927503089 | etot = -54.4567172574342 +761000 ekin = 7.5347738470087 | erot = 8.49179690722462 | epot = -70.4832880097082 | etot = -54.4567172554749 +762000 ekin = 7.52580486699214 | erot = 8.29027904918132 | epot = -70.2728011706086 | etot = -54.4567172544351 +763000 ekin = 7.56027219186238 | erot = 8.157884937744 | epot = -70.1748743837876 | etot = -54.4567172541812 +764000 ekin = 7.64375808862693 | erot = 8.0920934118109 | epot = -70.1925687554821 | etot = -54.4567172550442 +765000 ekin = 7.77732533264697 | erot = 8.08087591863862 | epot = -70.3149185075756 | etot = -54.45671725629 +766000 ekin = 7.95932937982089 | erot = 8.10617755734997 | epot = -70.5222241950778 | etot = -54.456717257907 +767000 ekin = 8.18579174502709 | erot = 8.14683277454142 | epot = -70.7893417792425 | etot = -54.456717259674 +768000 ekin = 8.45095313228628 | erot = 8.18150203238837 | epot = -71.0891724259741 | etot = -54.4567172612995 +769000 ekin = 8.74814097852324 | erot = 8.19192572077826 | epot = -71.3967839618408 | etot = -54.4567172625393 +770000 ekin = 9.06864484878833 | erot = 8.16518273783507 | epot = -71.690544850802 | etot = -54.4567172641786 +771000 ekin = 9.40152051233623 | erot = 8.09534580341989 | epot = -71.9535835800355 | etot = -54.4567172642793 +772000 ekin = 9.74055140010678 | erot = 7.98665030969471 | epot = -72.183918973657 | etot = -54.4567172638555 +773000 ekin = 10.0800699458604 | erot = 7.85110373963236 | epot = -72.3878909486045 | etot = -54.4567172631118 +774000 ekin = 10.4140305141568 | erot = 7.70610726769944 | epot = -72.576855044164 | etot = -54.4567172623078 +775000 ekin = 10.7352090238447 | erot = 7.57137133473538 | epot = -72.763297620266 | etot = -54.4567172616859 +776000 ekin = 11.0347273426194 | erot = 7.46577166842762 | epot = -72.9572162724493 | etot = -54.4567172614022 +777000 ekin = 11.3022272086606 | erot = 7.40478419490276 | epot = -73.1637286650549 | etot = -54.4567172614916 +778000 ekin = 11.526792332514 | erot = 7.39895687130388 | epot = -73.3824664656914 | etot = -54.4567172618736 +779000 ekin = 11.6984431849191 | erot = 7.4534644593814 | epot = -73.6086249067104 | etot = -54.4567172624099 +780000 ekin = 11.8098204310397 | erot = 7.56848658977413 | epot = -73.8350242837535 | etot = -54.4567172629397 +781000 ekin = 11.8576135100472 | erot = 7.74008064722733 | epot = -74.0544114206266 | etot = -54.4567172633521 +782000 ekin = 11.84335462244 | erot = 7.96106713733883 | epot = -74.2611390233815 | etot = -54.4567172636027 +783000 ekin = 11.7734660925532 | erot = 8.2217578563219 | epot = -74.4519412125745 | etot = -54.4567172636994 +784000 ekin = 11.6594880030989 | erot = 8.510684683383 | epot = -74.6268899498919 | etot = -54.4567172634101 +785000 ekin = 11.5166274257283 | erot = 8.81499326200193 | epot = -74.7883379510601 | etot = -54.4567172633298 +786000 ekin = 11.360989591068 | erot = 9.12075819552402 | epot = -74.9384650497693 | etot = -54.4567172631773 +787000 ekin = 11.2098737157826 | erot = 9.41411994883949 | epot = -75.0807109275669 | etot = -54.4567172629449 +788000 ekin = 11.0807838157264 | erot = 9.68217635161522 | epot = -75.2196774299904 | etot = -54.4567172626488 +789000 ekin = 10.9904701398967 | erot = 9.91392462850634 | epot = -75.3611120306953 | etot = -54.4567172622923 +790000 ekin = 10.9537524860448 | erot = 10.1009165691582 | epot = -75.5113863171902 | etot = -54.4567172619872 +791000 ekin = 10.9817979913689 | erot = 10.2372809089182 | epot = -75.6757961621807 | etot = -54.4567172618937 +792000 ekin = 11.0801481532633 | erot = 10.3193115157189 | epot = -75.8561769311678 | etot = -54.4567172621856 +793000 ekin = 11.2467542974172 | erot = 10.3447700002189 | epot = -76.0482415606158 | etot = -54.4567172629796 +794000 ekin = 11.4705768797841 | erot = 10.3123151888631 | epot = -76.2396093328664 | etot = -54.4567172642192 +795000 ekin = 11.7331024077072 | erot = 10.2218576029517 | epot = -76.4116772763255 | etot = -54.4567172656666 +796000 ekin = 12.010452379327 | erot = 10.0755577767683 | epot = -76.5427274230119 | etot = -54.4567172669166 +797000 ekin = 12.2774168644693 | erot = 9.87947565191715 | epot = -76.6136097839571 | etot = -54.4567172675707 +798000 ekin = 12.5118492347159 | erot = 9.64485933478221 | epot = -76.6134258369216 | etot = -54.4567172674235 +799000 ekin = 12.6978284048544 | erot = 9.38805929781137 | epot = -76.5426049692048 | etot = -54.456717266539 +800000 ekin = 12.8267336416874 | erot = 9.12873028581606 | epot = -76.4121811927006 | etot = -54.4567172651972 +801000 ekin = 12.8964017894382 | erot = 8.88689375956078 | epot = -76.2400128127474 | etot = -54.4567172637485 +802000 ekin = 12.9092334834897 | erot = 8.67992468173849 | epot = -76.0458754277123 | etot = -54.4567172624841 +803000 ekin = 12.8701763431678 | erot = 8.52035040790844 | epot = -75.8472440126504 | etot = -54.4567172615742 +804000 ekin = 12.7851658304065 | erot = 8.4150129817737 | epot = -75.6568960731781 | etot = -54.4567172609978 +805000 ekin = 12.6600414871828 | erot = 8.36523459714379 | epot = -75.4819933451723 | etot = -54.4567172608457 +806000 ekin = 12.5000407944914 | erot = 8.3665682915745 | epot = -75.3233263471979 | etot = -54.456717261132 +807000 ekin = 12.3098796732048 | erot = 8.40968834837655 | epot = -75.1762852832235 | etot = -54.4567172616422 +808000 ekin = 12.0938131957704 | erot = 8.48342142268738 | epot = -75.0339518808372 | etot = -54.4567172623793 +809000 ekin = 11.8557464184214 | erot = 8.57397165843714 | epot = -74.8864353400505 | etot = -54.4567172631919 +810000 ekin = 11.5994894992351 | erot = 8.66620690069611 | epot = -74.7224136639258 | etot = -54.4567172639946 +811000 ekin = 11.328949668636 | erot = 8.74571674828224 | epot = -74.5313836816209 | etot = -54.4567172647026 +812000 ekin = 11.0482743074415 | erot = 8.80005767532243 | epot = -74.3050492479917 | etot = -54.4567172652278 +813000 ekin = 10.7652338996024 | erot = 8.82039840378805 | epot = -74.0423495680921 | etot = -54.4567172647017 +814000 ekin = 10.4915993454138 | erot = 8.80333280505509 | epot = -73.751649416073 | etot = -54.4567172656042 +815000 ekin = 10.1506392603296 | erot = 8.72916604607101 | epot = -73.3365225755293 | etot = -54.4567172691287 +816000 ekin = 10.0078569448662 | erot = 8.6078590322417 | epot = -73.0724332558889 | etot = -54.456717278781 +817000 ekin = 9.94168629459043 | erot = 8.48386018506341 | epot = -72.8822637662551 | etot = -54.4567172866013 +818000 ekin = 9.8160254128801 | erot = 8.35562171933562 | epot = -72.6283644162528 | etot = -54.4567172840371 +819000 ekin = 9.7200144970214 | erot = 8.23727756031698 | epot = -72.414009339184 | etot = -54.4567172818457 +820000 ekin = 9.65393768638163 | erot = 8.15065357777833 | epot = -72.2613085437645 | etot = -54.4567172796045 +821000 ekin = 9.62991083870796 | erot = 8.11519232362434 | epot = -72.2018204400825 | etot = -54.4567172777502 +822000 ekin = 9.66070438852946 | erot = 8.14514958893694 | epot = -72.2625712542169 | etot = -54.4567172767505 +823000 ekin = 9.75366113133722 | erot = 8.24729238627225 | epot = -72.4576707944965 | etot = -54.456717276887 +824000 ekin = 9.90784075221045 | erot = 8.41983721973809 | epot = -72.7843952501275 | etot = -54.4567172781789 +825000 ekin = 10.1134132500765 | erot = 8.6528077235256 | epot = -73.222938254008 | etot = -54.4567172804058 +826000 ekin = 10.3532272232195 | erot = 8.92957217380895 | epot = -73.7395166802349 | etot = -54.4567172832064 +827000 ekin = 10.6056861232758 | erot = 9.2291218901548 | epot = -74.2915252996249 | etot = -54.4567172861942 +828000 ekin = 10.8478833100317 | erot = 9.52863932139692 | epot = -74.8332399204523 | etot = -54.4567172890238 +829000 ekin = 11.0582941053422 | erot = 9.80604986037188 | epot = -75.3210612571246 | etot = -54.4567172914105 +830000 ekin = 11.2188022337386 | erot = 10.0424425697406 | epot = -75.7179620966016 | etot = -54.4567172931224 +831000 ekin = 11.316113379123 | erot = 10.2243333144583 | epot = -75.9971639875571 | etot = -54.4567172939758 +832000 ekin = 11.3426219926655 | erot = 10.3456446448561 | epot = -76.144983931386 | etot = -54.4567172938643 +833000 ekin = 11.2966905572863 | erot = 10.4090470942505 | epot = -76.1624549443369 | etot = -54.4567172928 +834000 ekin = 11.182229358983 | erot = 10.4261077170688 | epot = -76.0650543670087 | etot = -54.4567172909569 +835000 ekin = 11.0075161183012 | erot = 10.4150475473378 | epot = -75.8792809542957 | etot = -54.4567172886567 +836000 ekin = 10.7833649095851 | erot = 10.3987463120899 | epot = -75.6388285079792 | etot = -54.4567172863042 +837000 ekin = 10.5209605456082 | erot = 10.4007504685186 | epot = -75.3784282984365 | etot = -54.4567172843097 +838000 ekin = 10.2299052199625 | erot = 10.4407488044951 | epot = -75.1273713074253 | etot = -54.4567172829676 +839000 ekin = 9.91700879954974 | erot = 10.5309577036188 | epot = -74.9046837856552 | etot = -54.4567172824866 +840000 ekin = 9.58612989126957 | erot = 10.6748490697451 | epot = -74.7176962436113 | etot = -54.4567172825966 +841000 ekin = 9.23902247606654 | erot = 10.8680222456528 | epot = -74.5637620048793 | etot = -54.45671728316 +842000 ekin = 8.87682183150687 | erot = 11.0993209653809 | epot = -74.4328600810575 | etot = -54.4567172841697 +843000 ekin = 8.50166697126372 | erot = 11.3515587654951 | epot = -74.3099430215634 | etot = -54.4567172848045 +844000 ekin = 8.11786122482937 | erot = 11.6086450389977 | epot = -74.1832235489656 | etot = -54.4567172851385 +845000 ekin = 7.73224665959471 | erot = 11.856919901106 | epot = -74.0458838457755 | etot = -54.4567172850748 +846000 ekin = 7.35386726308554 | erot = 12.0865858112961 | epot = -73.8971703589925 | etot = -54.4567172846108 +847000 ekin = 6.99310483301922 | erot = 12.2927531540975 | epot = -73.7425752709287 | etot = -54.4567172838119 +848000 ekin = 6.66064227407544 | erot = 12.4755849217792 | epot = -73.5929444786391 | etot = -54.4567172827845 +849000 ekin = 6.36657021968653 | erot = 12.6396628745633 | epot = -73.4629503758916 | etot = -54.4567172816418 +850000 ekin = 6.11978999363782 | erot = 12.7927789147892 | epot = -73.3692861889337 | etot = -54.4567172805067 +851000 ekin = 5.92769059320259 | erot = 12.9443936749531 | epot = -73.328801547648 | etot = -54.4567172794923 +852000 ekin = 5.79598233520181 | erot = 13.1040127665031 | epot = -73.3567123804033 | etot = -54.4567172786984 +853000 ekin = 5.72857612927171 | erot = 13.2797145891451 | epot = -73.4650079966327 | etot = -54.4567172782158 +854000 ekin = 5.72746426148597 | erot = 13.4770198626373 | epot = -73.6612014022069 | etot = -54.4567172780836 +855000 ekin = 5.79262212016434 | erot = 13.6982251276031 | epot = -73.9475645260803 | etot = -54.4567172783128 +856000 ekin = 5.92198051771585 | erot = 13.9422405100411 | epot = -74.3209383066336 | etot = -54.4567172788767 +857000 ekin = 6.11150866267658 | erot = 14.2048890108522 | epot = -74.7731149532471 | etot = -54.4567172797184 +858000 ekin = 6.35541287948108 | erot = 14.4795498831894 | epot = -75.2916800434334 | etot = -54.4567172807629 +859000 ekin = 6.64641352744846 | erot = 14.7579710750208 | epot = -75.8611018844076 | etot = -54.4567172819383 +860000 ekin = 6.97602906179018 | erot = 15.031049493862 | epot = -76.4637958388483 | etot = -54.4567172831961 +861000 ekin = 7.33478689144592 | erot = 15.2894014997161 | epot = -77.0809056756773 | etot = -54.4567172845152 +862000 ekin = 7.71230494061546 | erot = 15.5236284018704 | epot = -77.6926506283928 | etot = -54.4567172859069 +863000 ekin = 8.0972429154566 | erot = 15.7243060787924 | epot = -78.2782662816448 | etot = -54.4567172873958 +864000 ekin = 8.47719156700412 | erot = 15.8818501460864 | epot = -78.8157590020863 | etot = -54.4567172889958 +865000 ekin = 8.83862795339356 | erot = 15.9864762744088 | epot = -79.2818215184876 | etot = -54.4567172906853 +866000 ekin = 9.16709499257563 | erot = 16.0284566448477 | epot = -79.6522689298105 | etot = -54.4567172923871 +867000 ekin = 9.44775496531962 | erot = 15.9987710030364 | epot = -79.9032432623224 | etot = -54.4567172939664 +868000 ekin = 9.6664170744344 | erot = 15.8900978287038 | epot = -80.0132321983787 | etot = -54.4567172952405 +869000 ekin = 9.81104759054265 | erot = 15.697936812546 | epot = -79.9657016990976 | etot = -54.4567172960089 +870000 ekin = 9.87363911507839 | erot = 15.4215512162341 | epot = -79.7519076274087 | etot = -54.4567172960962 +871000 ekin = 9.85215986226453 | erot = 15.0644163888748 | epot = -79.3732935465326 | etot = -54.4567172953932 +872000 ekin = 9.7521666623902 | erot = 14.6339832230399 | epot = -78.8428671793229 | etot = -54.4567172938928 +873000 ekin = 9.58760337521736 | erot = 14.1407822457465 | epot = -78.1851029126663 | etot = -54.4567172917025 +874000 ekin = 9.38036224430972 | erot = 13.597111552683 | epot = -77.4341910860359 | etot = -54.4567172890432 +875000 ekin = 9.15836908048365 | erot = 13.0156613282078 | epot = -76.6307476949113 | etot = -54.4567172862198 +876000 ekin = 8.95224910374833 | erot = 12.4083870186539 | epot = -75.8173534059835 | etot = -54.4567172835813 +877000 ekin = 8.79100811653287 | erot = 11.7858100333708 | epot = -75.0335354313618 | etot = -54.4567172814581 +878000 ekin = 8.69754976341394 | erot = 11.1567995255962 | epot = -74.3110665690975 | etot = -54.4567172800874 +879000 ekin = 8.68509191534171 | erot = 10.5288226081013 | epot = -73.6706318029878 | etot = -54.4567172795448 +880000 ekin = 8.75545564714934 | erot = 9.90861257462188 | epot = -73.1207855014893 | etot = -54.4567172797181 +881000 ekin = 8.89970025386099 | erot = 9.30313444734775 | epot = -72.6595519815518 | etot = -54.4567172803431 +882000 ekin = 9.10082855523646 | erot = 8.72061110508849 | epot = -72.2781569414177 | etot = -54.4567172810928 +883000 ekin = 9.33764332479556 | erot = 8.1712754623967 | epot = -71.9656360688781 | etot = -54.4567172816858 +884000 ekin = 9.58861580334731 | erot = 7.66753088020623 | epot = -71.7128639655093 | etot = -54.4567172819558 +885000 ekin = 9.83488676080902 | erot = 7.22337392461422 | epot = -71.5149779672928 | etot = -54.4567172818695 +886000 ekin = 10.0620352551291 | erot = 6.85319082652144 | epot = -71.3719433631456 | etot = -54.4567172814951 +887000 ekin = 10.2607068157632 | erot = 6.57023940271384 | epot = -71.2876634994279 | etot = -54.4567172809509 +888000 ekin = 10.4264068596052 | erot = 6.38516766531579 | epot = -71.2682918052929 | etot = -54.4567172803719 +889000 ekin = 10.5587552560593 | erot = 6.30481332827294 | epot = -71.3202858642243 | etot = -54.456717279892 +890000 ekin = 10.6604009571512 | erot = 6.3313819173971 | epot = -71.4485001541792 | etot = -54.4567172796309 +891000 ekin = 10.7357341009366 | erot = 6.46201557974538 | epot = -71.6544669603718 | etot = -54.4567172796898 +892000 ekin = 10.7895437608077 | erot = 6.68876199670318 | epot = -71.9350230376444 | etot = -54.4567172801336 +893000 ekin = 10.8258166395542 | erot = 6.99898655746096 | epot = -72.2815204779803 | etot = -54.4567172809652 +894000 ekin = 10.8468969134803 | erot = 7.37628199601942 | epot = -72.6798961916184 | etot = -54.4567172821187 +895000 ekin = 10.8531861940975 | erot = 7.80188530606377 | epot = -73.1117887836164 | etot = -54.4567172834552 +896000 ekin = 10.8434432146178 | erot = 8.25651048988155 | epot = -73.5566709892849 | etot = -54.4567172847856 +897000 ekin = 10.8155751276989 | erot = 8.72237163402597 | epot = -73.9946640476367 | etot = -54.4567172859118 +898000 ekin = 10.7676627830279 | erot = 9.18505046673359 | epot = -74.4094305364376 | etot = -54.4567172866761 +899000 ekin = 10.6988999918464 | erot = 9.63481320600628 | epot = -74.7904304848565 | etot = -54.4567172870038 +900000 ekin = 10.6101778355024 | erot = 10.0670454033516 | epot = -75.1339405257768 | etot = -54.4567172869229 +901000 ekin = 10.5041792336263 | erot = 10.4816537280424 | epot = -75.4425502482243 | etot = -54.4567172865556 +902000 ekin = 10.3850069961677 | erot = 10.8815370479461 | epot = -75.723261330198 | etot = -54.4567172860842 +903000 ekin = 10.2574985062542 | erot = 11.2704782387657 | epot = -75.9846940307208 | etot = -54.4567172857008 +904000 ekin = 10.1264528578434 | erot = 11.6509689579676 | epot = -76.2341391013697 | etot = -54.4567172855587 +905000 ekin = 9.99600212718199 | erot = 12.0224964837307 | epot = -76.4752158966417 | etot = -54.456717285729 +906000 ekin = 9.86930089578128 | erot = 12.3806889296984 | epot = -76.706707111672 | etot = -54.4567172861924 +907000 ekin = 9.74860096930186 | erot = 12.717473329665 | epot = -76.9227915858112 | etot = -54.4567172868443 +908000 ekin = 9.63564731437693 | erot = 13.0221203323681 | epot = -77.1144849342879 | etot = -54.4567172875429 +909000 ekin = 9.53221635088924 | erot = 13.2828159173612 | epot = -77.2717495564014 | etot = -54.456717288151 +910000 ekin = 9.44056511136237 | erot = 13.4883008485944 | epot = -77.3855832485332 | etot = -54.4567172885764 +911000 ekin = 9.36359901015972 | erot = 13.6292002110449 | epot = -77.4495165099879 | etot = -54.4567172887832 +912000 ekin = 9.30468390683423 | erot = 13.6988898091476 | epot = -77.4602910047642 | etot = -54.4567172887824 +913000 ekin = 9.2671667518601 | erot = 13.6939842819807 | epot = -77.41786832244 | etot = -54.4567172885992 +914000 ekin = 9.25375894933545 | erot = 13.6146373108747 | epot = -77.3251135484712 | etot = -54.4567172882611 +915000 ekin = 9.2659424721694 | erot = 13.4647622141686 | epot = -77.1874219741281 | etot = -54.4567172877901 +916000 ekin = 9.3034996705056 | erot = 13.252095142795 | epot = -77.0123121005206 | etot = -54.45671728722 +917000 ekin = 9.36419714228145 | erot = 12.9878926207137 | epot = -76.8088070496062 | etot = -54.456717286611 +918000 ekin = 9.4436196362461 | erot = 12.6860933860155 | epot = -76.5864303083068 | etot = -54.4567172860452 +919000 ekin = 9.53516188539609 | erot = 12.3619660455384 | epot = -76.3538452165503 | etot = -54.4567172856158 +920000 ekin = 9.6302153355846 | erot = 12.0304853675905 | epot = -76.1174179885652 | etot = -54.4567172853901 +921000 ekin = 9.71859337757226 | erot = 11.7047977082043 | epot = -75.8801083711812 | etot = -54.4567172854046 +922000 ekin = 9.7892066721518 | erot = 11.3950992586233 | epot = -75.6410232164054 | etot = -54.4567172856303 +923000 ekin = 9.83094506629074 | erot = 11.1081050699644 | epot = -75.3957674222563 | etot = -54.4567172860011 +924000 ekin = 9.8336730468052 | erot = 10.8471196662819 | epot = -75.1375099995099 | etot = -54.4567172864229 +925000 ekin = 9.78921982201672 | erot = 10.6125977274286 | epot = -74.8585348362305 | etot = -54.4567172867852 +926000 ekin = 9.69224265484151 | erot = 10.4030278881647 | epot = -74.5519878299939 | etot = -54.4567172869877 +927000 ekin = 9.54086684318481 | erot = 10.2159706089149 | epot = -74.2135547390471 | etot = -54.4567172869474 +928000 ekin = 9.33704160544839 | erot = 10.049113171626 | epot = -73.8428720636795 | etot = -54.4567172866051 +929000 ekin = 9.08657260994688 | erot = 9.90122855058418 | epot = -73.4445184464668 | etot = -54.4567172859358 +930000 ekin = 8.79883716652832 | erot = 9.77291303142043 | epot = -73.0284674828996 | etot = -54.4567172849509 +931000 ekin = 8.48619808326945 | erot = 9.6669433018564 | epot = -72.6098586688443 | etot = -54.4567172837184 +932000 ekin = 8.16314309644076 | erot = 9.58807622106468 | epot = -72.2079365998691 | etot = -54.4567172823636 +933000 ekin = 7.84519354305061 | erot = 9.54217917979384 | epot = -71.8440900039073 | etot = -54.4567172810628 +934000 ekin = 7.54765679217323 | erot = 9.53474238375616 | epot = -71.5391164559538 | etot = -54.4567172800244 +935000 ekin = 7.284333071741 | erot = 9.56903045439682 | epot = -71.3100808055868 | etot = -54.456717279449 +936000 ekin = 7.06631285076321 | erot = 9.64428867327643 | epot = -71.1673188035272 | etot = -54.4567172794875 +937000 ekin = 6.9010072120583 | erot = 9.75446862336522 | epot = -71.1121931156352 | etot = -54.4567172802116 +938000 ekin = 6.791541293687 | erot = 9.88787401273449 | epot = -71.1361325880017 | etot = -54.4567172815803 +939000 ekin = 6.73661249445985 | erot = 10.0281331616284 | epot = -71.2214629394807 | etot = -54.4567172833925 +940000 ekin = 6.73087290002795 | erot = 10.1560913569087 | epot = -71.3436815424214 | etot = -54.4567172854848 +941000 ekin = 6.76583136819434 | erot = 10.252418493811 | epot = -71.4749671494792 | etot = -54.4567172874739 +942000 ekin = 6.83124487467581 | erot = 10.3013419690557 | epot = -71.5893041327359 | etot = -54.4567172890045 +943000 ekin = 6.91692812768483 | erot = 10.2938485498701 | epot = -71.6674939673204 | etot = -54.4567172897655 +944000 ekin = 7.01479645632583 | erot = 10.2298584620325 | epot = -71.701372207932 | etot = -54.4567172895736 +945000 ekin = 7.12068760757986 | erot = 10.1186471972992 | epot = -71.696052093349 | etot = -54.4567172884699 +946000 ekin = 7.23514614954191 | erot = 9.97707725562207 | epot = -71.6689406919542 | etot = -54.4567172867903 +947000 ekin = 7.36229609113421 | erot = 9.82579824686105 | epot = -71.644811623109 | etot = -54.4567172851137 +948000 ekin = 7.50666547843035 | erot = 9.68437595382033 | epot = -71.6477587163093 | etot = -54.4567172840586 +949000 ekin = 7.66924616191772 | erot = 9.56691299458701 | epot = -71.692876440489 | etot = -54.4567172839843 +950000 ekin = 7.84507329855829 | erot = 9.47964218457065 | epot = -71.7814327679451 | etot = -54.4567172848161 +951000 ekin = 8.02398780691496 | erot = 9.42110967875665 | epot = -71.9018147717852 | etot = -54.4567172861135 +952000 ekin = 8.19417684165141 | erot = 9.38438008346554 | epot = -72.0352742124693 | etot = -54.4567172873524 +953000 ekin = 8.34626778801213 | erot = 9.35991642812015 | epot = -72.1629015043317 | etot = -54.4567172881995 +954000 ekin = 8.47568923855396 | erot = 9.33789032824472 | epot = -72.270296855398 | etot = -54.4567172885994 +955000 ekin = 8.58250201858603 | erot = 9.30949114580661 | epot = -72.3487104530702 | etot = -54.4567172886776 +956000 ekin = 8.66948436711163 | erot = 9.26761872827085 | epot = -72.3938203840399 | etot = -54.4567172886574 +957000 ekin = 8.73983265750596 | erot = 9.20719774881724 | epot = -72.403747694787 | etot = -54.4567172884638 +958000 ekin = 8.79545874721684 | erot = 9.12647624462242 | epot = -72.3786522799993 | etot = -54.45671728816 +959000 ekin = 8.83619167917057 | erot = 9.02839052830606 | epot = -72.321299495177 | etot = -54.4567172877003 +960000 ekin = 8.8597516775373 | erot = 8.921066131001 | epot = -72.2375350955797 | etot = -54.4567172870414 +961000 ekin = 8.86221391088967 | erot = 8.81796977947868 | epot = -72.1369009765418 | etot = -54.4567172861734 +962000 ekin = 8.83870974709834 | erot = 8.73730143653572 | epot = -72.0327284687628 | etot = -54.4567172851288 +963000 ekin = 8.78419063762297 | erot = 8.70062153324984 | epot = -71.941529454855 | etot = -54.4567172839822 +964000 ekin = 8.69414320505532 | erot = 8.73080443183868 | epot = -71.8816649197466 | etot = -54.4567172828526 +965000 ekin = 8.56518846879808 | erot = 8.84947946882749 | epot = -71.8713852195034 | etot = -54.4567172818779 +966000 ekin = 8.39553184386797 | erot = 9.07419585611561 | epot = -71.9264449812041 | etot = -54.4567172812205 +967000 ekin = 8.18525791183118 | erot = 9.41563515997517 | epot = -72.0576103528196 | etot = -54.4567172810133 +968000 ekin = 7.93667478277496 | erot = 9.87520375458517 | epot = -72.2685958186602 | etot = -54.4567172813001 +969000 ekin = 7.65450207895293 | erot = 10.4432619151597 | epot = -72.554481276342 | etot = -54.4567172822294 +970000 ekin = 7.3444529420773 | erot = 11.099955291077 | epot = -72.9011255166994 | etot = -54.4567172835451 +971000 ekin = 7.01467245168829 | erot = 11.8168528075889 | epot = -73.2882425443265 | etot = -54.4567172850493 +972000 ekin = 6.67605450391219 | erot = 12.5598107323187 | epot = -73.6925825227156 | etot = -54.4567172864848 +973000 ekin = 6.34244769979576 | erot = 13.2923396271009 | epot = -74.0915046146129 | etot = -54.4567172877162 +974000 ekin = 6.03025176751086 | erot = 13.9789096322924 | epot = -74.4658786882448 | etot = -54.4567172884415 +975000 ekin = 5.75716039273076 | erot = 14.5899381418184 | epot = -74.8038158231949 | etot = -54.4567172886457 +976000 ekin = 5.54124167943899 | erot = 15.1033057453066 | epot = -75.1012647131604 | etot = -54.4567172884147 +977000 ekin = 5.39911082454268 | erot = 15.50491198647 | epot = -75.3607400989432 | etot = -54.4567172879305 +978000 ekin = 5.34386272251207 | erot = 15.7880067440631 | epot = -75.5885867539899 | etot = -54.4567172874147 +979000 ekin = 5.3831993070512 | erot = 15.9517029514082 | epot = -75.7916195455258 | etot = -54.4567172870663 +980000 ekin = 5.51814445211147 | erot = 15.9991910955376 | epot = -75.9740528346666 | etot = -54.4567172870175 +981000 ekin = 5.74260488051433 | erot = 15.9361251477774 | epot = -76.1354473155988 | etot = -54.4567172873071 +982000 ekin = 6.04385436985727 | erot = 15.7695224495589 | epot = -76.2700941072881 | etot = -54.4567172878719 +983000 ekin = 6.40384970652226 | erot = 15.5073539290396 | epot = -76.3679209241306 | etot = -54.4567172885687 +984000 ekin = 6.80116238511362 | erot = 15.1588118512124 | epot = -76.4166915255271 | etot = -54.4567172892011 +985000 ekin = 7.213233657274 | erot = 14.7350438439508 | epot = -76.4049947907932 | etot = -54.4567172895684 +986000 ekin = 7.61862562383731 | erot = 14.2499737923036 | epot = -76.3253167056553 | etot = -54.4567172895143 +987000 ekin = 7.99894925435838 | erot = 13.7207610181171 | epot = -76.1764275614454 | etot = -54.45671728897 +988000 ekin = 8.34021171329978 | erot = 13.1675370959009 | epot = -75.9644660971741 | etot = -54.4567172879735 +989000 ekin = 8.63344275565441 | erot = 12.6122920454569 | epot = -75.7024520877672 | etot = -54.456717286656 +990000 ekin = 8.87460950484452 | erot = 12.0770718401663 | epot = -75.4083986302158 | etot = -54.456717285205 +991000 ekin = 9.06396875500343 | erot = 11.581864705789 | epot = -75.102550744612 | etot = -54.4567172838197 +992000 ekin = 9.20509314118759 | erot = 11.1426150699705 | epot = -74.8044254938273 | etot = -54.4567172826692 +993000 ekin = 9.30382170788255 | erot = 10.7697167151334 | epot = -74.5302557048824 | etot = -54.4567172818665 +994000 ekin = 9.36733435636145 | erot = 10.467172113734 | epot = -74.2912237515574 | etot = -54.456717281462 +995000 ekin = 9.40346085609221 | erot = 10.232442639238 | epot = -74.0926207767815 | etot = -54.4567172814512 +996000 ekin = 9.42024172460242 | erot = 10.0569050470709 | epot = -73.9338640534591 | etot = -54.4567172817857 +997000 ekin = 9.42568515137797 | erot = 9.92679732902699 | epot = -73.8091997627901 | etot = -54.4567172823851 +998000 ekin = 9.42763194302568 | erot = 9.8245642652313 | epot = -73.7089134914019 | etot = -54.4567172831449 +999000 ekin = 9.43365149698941 | erot = 9.73053828894017 | epot = -73.6209070698904 | etot = -54.4567172839608 +1000000 ekin = 9.45092723111945 | erot = 9.62486149925983 | epot = -73.532506015067 | etot = -54.4567172846877 + 1000000 352.2878 -75.545604 2.0130979 -64.081579 -0.0098473389 39304000 +Loop time of 9.76856 on 1 procs for 1000000 steps with 10 atoms + +Performance: 150.891 ns/day, 0.159 hours/ns, 102369.234 timesteps/s, 1.024 Matom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.5788 | 7.5788 | 7.5788 | 0.0 | 77.58 +Bond | 0.42182 | 0.42182 | 0.42182 | 0.0 | 4.32 +Neigh | 0.012447 | 0.012447 | 0.012447 | 0.0 | 0.13 +Comm | 0.24821 | 0.24821 | 0.24821 | 0.0 | 2.54 +Output | 0.10868 | 0.10868 | 0.10868 | 0.0 | 1.11 +Modify | 1.1076 | 1.1076 | 1.1076 | 0.0 | 11.34 +Other | | 0.291 | | | 2.98 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:09 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..b5766accaf --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 @@ -0,0 +1,1105 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8453746587951 | etot = -54.456717007264 +Per MPI rank memory allocation (min/avg/max) = 7.105 | 7.11 | 7.116 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.414409 2.5690347 -71.238502 -0.031164646 39304000 +1000 ekin = 6.43820783118129 | erot = 17.3362198819252 | epot = -78.2311447221034 | etot = -54.4567170089969 +2000 ekin = 6.25962757371404 | erot = 17.7614951323062 | epot = -78.4778397161865 | etot = -54.4567170101663 +3000 ekin = 6.07700556573592 | erot = 18.0349356633584 | epot = -78.5686582395969 | etot = -54.4567170105026 +4000 ekin = 5.8974439552513 | erot = 18.144460931621 | epot = -78.498621896795 | etot = -54.4567170099227 +5000 ekin = 5.72921700410324 | erot = 18.0898077153687 | epot = -78.2757417280194 | etot = -54.4567170085474 +6000 ekin = 5.58103231328815 | erot = 17.8818838137361 | epot = -77.9196331337203 | etot = -54.456717006696 +7000 ekin = 5.4608390844338 | erot = 17.5394286863637 | epot = -77.4569847754239 | etot = -54.4567170046264 +8000 ekin = 5.37466806168172 | erot = 17.086045740889 | epot = -76.9174308051194 | etot = -54.4567170025487 +9000 ekin = 5.32596283558534 | erot = 16.5482758509796 | epot = -76.3309556871347 | etot = -54.4567170005697 +10000 ekin = 5.31555310057074 | erot = 15.9544038907651 | epot = -75.7266739899444 | etot = -54.4567169986085 +11000 ekin = 5.34212439127895 | erot = 15.3332511004199 | epot = -75.1320924886814 | etot = -54.4567169969825 +12000 ekin = 5.40287885250677 | erot = 14.7110726721716 | epot = -74.5706685202876 | etot = -54.4567169956093 +13000 ekin = 5.49412472240376 | erot = 14.1110805159141 | epot = -74.0619222328995 | etot = -54.4567169945816 +14000 ekin = 5.61167339672267 | erot = 13.5517285104403 | epot = -73.6201189011433 | etot = -54.4567169939804 +15000 ekin = 5.75106060199931 | erot = 13.0453082210512 | epot = -73.2530858167916 | etot = -54.4567169937411 +16000 ekin = 5.90768357006488 | erot = 12.598604457851 | epot = -72.9630050218527 | etot = -54.4567169939368 +17000 ekin = 6.07694775533413 | erot = 12.2121295946256 | epot = -72.7457943445781 | etot = -54.4567169946184 +18000 ekin = 6.25449001016684 | erot = 11.8809581167547 | epot = -72.592165121947 | etot = -54.4567169950255 +19000 ekin = 6.43645340088868 | erot = 11.5970728654628 | epot = -72.490243262259 | etot = -54.4567169959076 +20000 ekin = 6.6197622580152 | erot = 11.3493123188078 | epot = -72.425791573462 | etot = -54.4567169966391 +21000 ekin = 6.80232746725469 | erot = 11.1279704350903 | epot = -72.3870148994526 | etot = -54.4567169971076 +22000 ekin = 6.98311688717153 | erot = 10.9264751205884 | epot = -72.3663090050199 | etot = -54.45671699726 +23000 ekin = 7.1620507977588 | erot = 10.7423327849978 | epot = -72.3611005798631 | etot = -54.4567169971065 +24000 ekin = 7.33972059294154 | erot = 10.5772758543379 | epot = -72.3737134439929 | etot = -54.4567169967134 +25000 ekin = 7.51695157931217 | erot = 10.4365899375969 | epot = -72.4102585131396 | etot = -54.4567169962306 +26000 ekin = 7.69429229269138 | erot = 10.3277639309848 | epot = -72.4787732193801 | etot = -54.4567169957039 +27000 ekin = 7.87150951743594 | erot = 10.2597304033282 | epot = -72.5879569160679 | etot = -54.4567169953037 +28000 ekin = 8.04705135555603 | erot = 10.2410352171351 | epot = -72.7448035678557 | etot = -54.4567169951646 +29000 ekin = 8.21759746027584 | erot = 10.278204159473 | epot = -72.9525186151527 | etot = -54.4567169954039 +30000 ekin = 8.37774171244999 | erot = 10.3742403796597 | epot = -73.2086990882227 | etot = -54.456716996113 +31000 ekin = 8.51990909585288 | erot = 10.5273666264236 | epot = -73.5039927196028 | etot = -54.4567169973263 +32000 ekin = 8.6346526212693 | erot = 10.7302431095275 | epot = -73.8216127297865 | etot = -54.4567169989897 +33000 ekin = 8.71148334085684 | erot = 10.9699651918539 | epot = -74.1381655336438 | etot = -54.4567170009331 +34000 ekin = 8.7403039201086 | erot = 11.2291223208269 | epot = -74.4261432438071 | etot = -54.4567170028716 +35000 ekin = 8.71331622899725 | erot = 11.4879560434145 | epot = -74.6579892768899 | etot = -54.4567170044781 +36000 ekin = 8.62700549413936 | erot = 11.7272789104032 | epot = -74.811001409922 | etot = -54.4567170053794 +37000 ekin = 8.48360146993983 | erot = 11.9311520187439 | epot = -74.8714704944479 | etot = -54.4567170057642 +38000 ekin = 8.29145725510833 | erot = 12.0877651508225 | epot = -74.8359394109119 | etot = -54.456717004981 +39000 ekin = 8.06412808157037 | erot = 12.193949078282 | epot = -74.714794163255 | etot = -54.4567170034026 +40000 ekin = 7.81834916729639 | erot = 12.253681100569 | epot = -74.5287472695191 | etot = -54.4567170016537 +41000 ekin = 7.57153983107097 | erot = 12.2737166637658 | epot = -74.3019734948451 | etot = -54.4567170000083 +42000 ekin = 7.33952905244331 | erot = 12.2616299907499 | epot = -74.0578760417273 | etot = -54.4567169985341 +43000 ekin = 7.13479707854045 | erot = 12.2251663434269 | epot = -73.8166804194395 | etot = -54.4567169974721 +44000 ekin = 6.96549624172367 | erot = 12.1705863869627 | epot = -73.5927996255415 | etot = -54.4567169968552 +45000 ekin = 6.83524241842647 | erot = 12.102386584698 | epot = -73.3943459997481 | etot = -54.4567169966236 +46000 ekin = 6.74353977237846 | erot = 12.0237417555814 | epot = -73.2239985246156 | etot = -54.4567169966557 +47000 ekin = 6.68665226743031 | erot = 11.9373741846293 | epot = -73.0807434488664 | etot = -54.4567169968068 +48000 ekin = 6.65871295716602 | erot = 11.8463562055027 | epot = -72.9617861597099 | etot = -54.4567169970411 +49000 ekin = 6.65288229900598 | erot = 11.7538080029638 | epot = -72.863407299029 | etot = -54.4567169970592 +50000 ekin = 6.66236312881751 | erot = 11.6656641757329 | epot = -72.7847443014508 | etot = -54.4567169969004 +51000 ekin = 6.68111060961808 | erot = 11.589978825656 | epot = -72.7278064318538 | etot = -54.4567169965796 +52000 ekin = 6.70418024749921 | erot = 11.5360562910261 | epot = -72.6969535346928 | etot = -54.4567169961675 +53000 ekin = 6.72772366359068 | erot = 11.5134142818728 | epot = -72.6978549412363 | etot = -54.4567169957729 +54000 ekin = 6.74871337970537 | erot = 11.5307585185411 | epot = -72.7361888937389 | etot = -54.4567169954924 +55000 ekin = 6.76451852991725 | erot = 11.5943746539845 | epot = -72.8156101794049 | etot = -54.4567169955031 +56000 ekin = 6.77243985440136 | erot = 11.706371078097 | epot = -72.9355279283612 | etot = -54.4567169958628 +57000 ekin = 6.7693305358261 | erot = 11.8642156230101 | epot = -73.0902631554553 | etot = -54.4567169966191 +58000 ekin = 6.75138726809276 | erot = 12.0602974501195 | epot = -73.2684017159808 | etot = -54.4567169977685 +59000 ekin = 6.71417128127022 | erot = 12.2820751409018 | epot = -73.4529634214116 | etot = -54.4567169992396 +60000 ekin = 6.65290992288125 | erot = 12.5129009338972 | epot = -73.6225278576791 | etot = -54.4567170009007 +61000 ekin = 6.56310682197134 | erot = 12.7335144723076 | epot = -73.7533382968318 | etot = -54.4567170025529 +62000 ekin = 6.44146338255673 | erot = 12.9241509619383 | epot = -73.8223313484469 | etot = -54.4567170039518 +63000 ekin = 6.28705781387421 | erot = 13.0670338389562 | epot = -73.8108086578477 | etot = -54.4567170050173 +64000 ekin = 6.10266169757333 | erot = 13.1477809820682 | epot = -73.7071596847884 | etot = -54.4567170051469 +65000 ekin = 5.89591130160499 | erot = 13.1592635961174 | epot = -73.5118919021177 | etot = -54.4567170043953 +66000 ekin = 5.67987143865734 | erot = 13.1032095066886 | epot = -73.2397979480404 | etot = -54.4567170026945 +67000 ekin = 5.47246439370584 | erot = 12.9892907727295 | epot = -72.9184721669227 | etot = -54.4567170004874 +68000 ekin = 5.29471721365746 | erot = 12.8325811063867 | epot = -72.5840153180095 | etot = -54.4567169979654 +69000 ekin = 5.16838716298836 | erot = 12.6515610640457 | epot = -72.2766652226416 | etot = -54.4567169956076 +70000 ekin = 5.11230249491464 | erot = 12.4645586086546 | epot = -72.0335780974658 | etot = -54.4567169938966 +71000 ekin = 5.13863171720077 | erot = 12.2861676510944 | epot = -71.8815163616887 | etot = -54.4567169933935 +72000 ekin = 5.24921766817675 | erot = 12.1241146960797 | epot = -71.8300493582336 | etot = -54.4567169939772 +73000 ekin = 5.43495114762277 | erot = 11.9780651684523 | epot = -71.8697333116332 | etot = -54.4567169955581 +74000 ekin = 5.67787386257464 | erot = 11.8411579566072 | epot = -71.9757488169268 | etot = -54.456716997745 +75000 ekin = 5.95416182625064 | erot = 11.7025717830502 | epot = -72.1134506093456 | etot = -54.4567170000447 +76000 ekin = 6.2382481878041 | erot = 11.5508489468451 | epot = -72.2458141366457 | etot = -54.4567170019965 +77000 ekin = 6.50675110372077 | erot = 11.3769606434414 | epot = -72.3404287504472 | etot = -54.456717003285 +78000 ekin = 6.74136703150947 | erot = 11.1763239765936 | epot = -72.3744080118945 | etot = -54.4567170037914 +79000 ekin = 6.93031685726874 | erot = 10.9493830401333 | epot = -72.3364169009801 | etot = -54.456717003578 +80000 ekin = 7.06838579021211 | erot = 10.7008558180271 | epot = -72.2259586110722 | etot = -54.456717002833 +81000 ekin = 7.1559317498921 | erot = 10.4381486680524 | epot = -72.0507974197279 | etot = -54.4567170017834 +82000 ekin = 7.19737561193674 | erot = 10.1696078110443 | epot = -71.8237004236083 | etot = -54.4567170006273 +83000 ekin = 7.19963709941639 | erot = 9.90317661788295 | epot = -71.5595307167935 | etot = -54.4567169994941 +84000 ekin = 7.17081556670968 | erot = 9.64574605090018 | epot = -71.2732786160521 | etot = -54.4567169984422 +85000 ekin = 7.11922963823702 | erot = 9.40317461807806 | epot = -70.9791212537918 | etot = -54.4567169974768 +86000 ekin = 7.05279272914734 | erot = 9.18074070207699 | epot = -70.6902504278042 | etot = -54.4567169965799 +87000 ekin = 6.97863676438084 | erot = 8.98372361344404 | epot = -70.4190773735564 | etot = -54.4567169957315 +88000 ekin = 6.90289111255646 | erot = 8.81786450432879 | epot = -70.1774726118098 | etot = -54.4567169949245 +89000 ekin = 6.83054970527794 | erot = 8.68957087135301 | epot = -69.9768375708001 | etot = -54.4567169941691 +90000 ekin = 6.76539137201343 | erot = 8.6058379604908 | epot = -69.827946325993 | etot = -54.4567169934887 +91000 ekin = 6.70994198518164 | erot = 8.57393232142963 | epot = -69.7405912995254 | etot = -54.4567169929141 +92000 ekin = 6.66547828037082 | erot = 8.60091153027911 | epot = -69.7231068031299 | etot = -54.4567169924799 +93000 ekin = 6.63207907276839 | erot = 8.6930521826077 | epot = -69.7818482475959 | etot = -54.4567169922198 +94000 ekin = 6.60872467795687 | erot = 8.8552421329534 | epot = -69.9206838030737 | etot = -54.4567169921635 +95000 ekin = 6.59344191188633 | erot = 9.09002892498244 | epot = -70.1401878292959 | etot = -54.4567169924271 +96000 ekin = 6.58348503117488 | erot = 9.39676155295733 | epot = -70.4369635770063 | etot = -54.456716992874 +97000 ekin = 6.57555779040081 | erot = 9.77238659111564 | epot = -70.8046613751035 | etot = -54.456716993587 +98000 ekin = 6.56606406506432 | erot = 10.2104006447566 | epot = -71.2331817043844 | etot = -54.4567169945635 +99000 ekin = 6.55138371755681 | erot = 10.7005955684085 | epot = -71.7086962817511 | etot = -54.4567169957858 +100000 ekin = 6.52818215156233 | erot = 11.2291048041215 | epot = -72.2140039528885 | etot = -54.4567169972047 +101000 ekin = 6.49376016387362 | erot = 11.7788216139169 | epot = -72.7292987765295 | etot = -54.4567169987389 +102000 ekin = 6.44644131665531 | erot = 12.3302826834051 | epot = -73.233441000326 | etot = -54.4567170002657 +103000 ekin = 6.38597185526377 | erot = 12.8630533051894 | epot = -73.7057421620907 | etot = -54.4567170016375 +104000 ekin = 6.31387792328062 | erot = 13.3575416630679 | epot = -74.1281365890436 | etot = -54.456717002695 +105000 ekin = 6.23369870065272 | erot = 13.7969859266867 | epot = -74.4874016306547 | etot = -54.4567170033153 +106000 ekin = 6.15159087577044 | erot = 14.1683474790283 | epot = -74.7766553580954 | etot = -54.4567170032966 +107000 ekin = 6.07597686979351 | erot = 14.4651876627013 | epot = -74.9978815355799 | etot = -54.4567170030851 +108000 ekin = 6.01223234716891 | erot = 14.6879971316708 | epot = -75.1569464811456 | etot = -54.4567170023059 +109000 ekin = 5.9671660618815 | erot = 14.8435442892158 | epot = -75.2674273521902 | etot = -54.4567170010929 +110000 ekin = 5.94905536831868 | erot = 14.9434041692653 | epot = -75.3491765372256 | etot = -54.4567169996416 +111000 ekin = 5.96691720967342 | erot = 15.0017805706299 | epot = -75.4254147784705 | etot = -54.4567169981672 +112000 ekin = 6.02963996568477 | erot = 15.0332074410391 | epot = -75.5195644035797 | etot = -54.4567169968558 +113000 ekin = 6.14473557949392 | erot = 15.050627693563 | epot = -75.6520802691319 | etot = -54.456716996075 +114000 ekin = 6.31295582028862 | erot = 15.0641514071753 | epot = -75.833824223199 | etot = -54.4567169957351 +115000 ekin = 6.5317279860067 | erot = 15.0811124191464 | epot = -76.0695574009521 | etot = -54.456716995799 +116000 ekin = 6.79568089094029 | erot = 15.1059058197079 | epot = -76.3583037069103 | etot = -54.4567169962621 +117000 ekin = 7.09592407299215 | erot = 15.1399966271423 | epot = -76.6926376972559 | etot = -54.4567169971214 +118000 ekin = 7.42014276685719 | erot = 15.1819125959101 | epot = -77.058772361131 | etot = -54.4567169983637 +119000 ekin = 7.75294827199775 | erot = 15.2271422568032 | epot = -77.4368075287532 | etot = -54.4567169999523 +120000 ekin = 8.07659193886498 | erot = 15.268102841629 | epot = -77.8014117822893 | etot = -54.4567170017953 +121000 ekin = 8.37212580399509 | erot = 15.2944516166555 | epot = -78.1232944243858 | etot = -54.4567170037352 +122000 ekin = 8.62100116395953 | erot = 15.2939804912639 | epot = -78.3716986607707 | etot = -54.4567170055472 +123000 ekin = 8.80694171731981 | erot = 15.2541500009288 | epot = -78.517808725228 | etot = -54.4567170069794 +124000 ekin = 8.91776467099437 | erot = 15.164053588948 | epot = -78.5385352677523 | etot = -54.4567170078099 +125000 ekin = 8.94674800947867 | erot = 15.0163836749145 | epot = -78.4198486922972 | etot = -54.456717007904 +126000 ekin = 8.89353650630918 | erot = 14.8103820375844 | epot = -78.1606355512052 | etot = -54.4567170073116 +127000 ekin = 8.7629508625382 | erot = 14.5505189841118 | epot = -77.7701868527644 | etot = -54.4567170061144 +128000 ekin = 8.56410993715598 | erot = 14.2447035162395 | epot = -77.2655304577616 | etot = -54.4567170043662 +129000 ekin = 8.30998017116448 | erot = 13.9055852316459 | epot = -76.67228240508 | etot = -54.4567170022696 +130000 ekin = 8.01596533696713 | erot = 13.5489606027722 | epot = -76.0216429397722 | etot = -54.4567170000329 +131000 ekin = 7.69857959330859 | erot = 13.1919558696619 | epot = -75.347252460815 | etot = -54.4567169978444 +132000 ekin = 7.37430715048895 | erot = 12.851283884861 | epot = -74.6823080312056 | etot = -54.4567169958556 +133000 ekin = 7.05869350217223 | erot = 12.5417841519169 | epot = -74.057194648267 | etot = -54.4567169941778 +134000 ekin = 6.76568000840881 | erot = 12.2753517528745 | epot = -73.4977487541602 | etot = -54.4567169928769 +135000 ekin = 6.50716750003275 | erot = 12.0602618213903 | epot = -73.0241463134165 | etot = -54.4567169919934 +136000 ekin = 6.29276806011983 | erot = 11.9007845740752 | epot = -72.6502696257304 | etot = -54.4567169915353 +137000 ekin = 6.12969309854662 | erot = 11.7970866991193 | epot = -72.3834967891649 | etot = -54.456716991499 +138000 ekin = 6.02273320867693 | erot = 11.7455527096604 | epot = -72.2250029101856 | etot = -54.4567169918483 +139000 ekin = 5.97430093912947 | erot = 11.7390915567055 | epot = -72.170109488443 | etot = -54.456716992608 +140000 ekin = 5.98450304637417 | erot = 11.7662502093776 | epot = -72.2074702494665 | etot = -54.4567169937147 +141000 ekin = 6.05123669074375 | erot = 11.8124070325109 | epot = -72.3203607183682 | etot = -54.4567169951136 +142000 ekin = 6.17033803011782 | erot = 11.8605042646639 | epot = -72.4875592915082 | etot = -54.4567169967265 +143000 ekin = 6.33580648591441 | erot = 11.8920252829291 | epot = -72.6845487670624 | etot = -54.456716998219 +144000 ekin = 6.54012675510799 | erot = 11.8891823611252 | epot = -72.8860261161669 | etot = -54.4567169999337 +145000 ekin = 6.77470074055112 | erot = 11.8353291244163 | epot = -73.0667468664381 | etot = -54.4567170014707 +146000 ekin = 7.03037496397093 | erot = 11.7160243954377 | epot = -73.2031163621673 | etot = -54.4567170027587 +147000 ekin = 7.29665364400731 | erot = 11.5220998482973 | epot = -73.27547049583 | etot = -54.4567170035254 +148000 ekin = 7.56413207766569 | erot = 11.2503161699873 | epot = -73.2711652513975 | etot = -54.4567170037445 +149000 ekin = 7.82550108771552 | erot = 10.9039474189382 | epot = -73.1861655100572 | etot = -54.4567170034035 +150000 ekin = 8.07523421780362 | erot = 10.4929157971022 | epot = -73.0248670174482 | etot = -54.4567170025424 +151000 ekin = 8.3098163223035 | erot = 10.0329247877117 | epot = -72.7994581112916 | etot = -54.4567170012765 +152000 ekin = 8.52773011311644 | erot = 9.54384337568687 | epot = -72.5282904885589 | etot = -54.4567169997555 +153000 ekin = 8.72920635330158 | erot = 9.04773752673217 | epot = -72.2336608781799 | etot = -54.4567169981462 +154000 ekin = 8.91578242577698 | erot = 8.56683521279237 | epot = -71.9393346351768 | etot = -54.4567169966075 +155000 ekin = 9.08973687645563 | erot = 8.1216936934817 | epot = -71.6681475652126 | etot = -54.4567169952753 +156000 ekin = 9.25347765695021 | erot = 7.72974563989849 | epot = -71.4399402910998 | etot = -54.4567169942511 +157000 ekin = 9.40896984476819 | erot = 7.40429996451988 | epot = -71.2699868028811 | etot = -54.456716993593 +158000 ekin = 9.55725976320102 | erot = 7.15399036856533 | epot = -71.1679671251185 | etot = -54.4567169933522 +159000 ekin = 9.69799996758521 | erot = 6.98263031176904 | epot = -71.1373472728716 | etot = -54.4567169935173 +160000 ekin = 9.82927262106972 | erot = 6.88943240361959 | epot = -71.1754220187509 | etot = -54.4567169940616 +161000 ekin = 9.947526276393 | erot = 6.86953876421116 | epot = -71.2737820355287 | etot = -54.4567169949245 +162000 ekin = 10.0476688890869 | erot = 6.91484346812827 | epot = -71.4192293532371 | etot = -54.4567169960219 +163000 ekin = 10.123328928587 | erot = 7.01508857895077 | epot = -71.5951345047789 | etot = -54.4567169972412 +164000 ekin = 10.1672866918974 | erot = 7.15919485891775 | epot = -71.7831985492644 | etot = -54.4567169984493 +165000 ekin = 10.1720714801839 | erot = 7.33674388087005 | epot = -71.9655323605553 | etot = -54.4567169995013 +166000 ekin = 10.1307061587117 | erot = 7.53947176071147 | epot = -72.1268949196792 | etot = -54.4567170002561 +167000 ekin = 10.0375550044402 | erot = 7.76257261597399 | epot = -72.2568446210101 | etot = -54.4567170005959 +168000 ekin = 9.88919379239882 | erot = 8.00559837770909 | epot = -72.3515091705551 | etot = -54.4567170004472 +169000 ekin = 9.68518014710124 | erot = 8.27274634403603 | epot = -72.4146434909393 | etot = -54.456716999802 +170000 ekin = 9.42857099718412 | erot = 8.57239606367951 | epot = -72.4576840595929 | etot = -54.4567169987293 +171000 ekin = 9.12604219834231 | erot = 8.91588733602144 | epot = -72.4986465317343 | etot = -54.4567169973706 +172000 ekin = 8.78753113653312 | erot = 9.31569783313693 | epot = -72.5599459655886 | etot = -54.4567169959186 +173000 ekin = 8.43073965989606 | erot = 9.7841793241114 | epot = -72.6716359780365 | etot = -54.4567169940291 +174000 ekin = 8.08793433498408 | erot = 10.330499917481 | epot = -72.8751512464577 | etot = -54.4567169939927 +175000 ekin = 7.76668155628402 | erot = 10.9530367882605 | epot = -73.1764353387626 | etot = -54.4567169942181 +176000 ekin = 7.47150671335435 | erot = 11.6457657834648 | epot = -73.5739894915328 | etot = -54.4567169947137 +177000 ekin = 7.20629810214466 | erot = 12.3991540124657 | epot = -74.0621691100488 | etot = -54.4567169954385 +178000 ekin = 6.9741272880116 | erot = 13.2004427724153 | epot = -74.6312870569044 | etot = -54.4567169964775 +179000 ekin = 6.777261372753 | erot = 14.0344360010824 | epot = -75.2684143712779 | etot = -54.4567169974425 +180000 ekin = 6.61731488748121 | erot = 14.886465584398 | epot = -75.9604974702741 | etot = -54.4567169983949 +181000 ekin = 6.49550388719761 | erot = 15.740890928748 | epot = -76.6931118153624 | etot = -54.4567169994167 +182000 ekin = 6.4129639266329 | erot = 16.5825261501067 | epot = -77.4522070769592 | etot = -54.4567170002196 +183000 ekin = 6.37096768346922 | erot = 17.3990430380152 | epot = -78.2267277223741 | etot = -54.4567170008897 +184000 ekin = 6.37100453718988 | erot = 18.1796029220147 | epot = -79.007324460659 | etot = -54.4567170014544 +185000 ekin = 6.41457925655334 | erot = 18.9145289221487 | epot = -79.7858251806977 | etot = -54.4567170019957 +186000 ekin = 6.50258553919727 | erot = 19.5946185261417 | epot = -80.5539210679911 | etot = -54.4567170026522 +187000 ekin = 6.63421344627162 | erot = 20.2101022369816 | epot = -81.3010326868601 | etot = -54.4567170036069 +188000 ekin = 6.80554165522624 | erot = 20.7494117392046 | epot = -82.0116703994637 | etot = -54.4567170050328 +189000 ekin = 7.00820348124158 | erot = 21.198178393125 | epot = -82.6630988813723 | etot = -54.4567170070057 +190000 ekin = 7.2286852193232 | erot = 21.5391098111538 | epot = -83.2245120398958 | etot = -54.4567170094187 +191000 ekin = 7.4477192848755 | erot = 21.7494170056975 | epot = -83.6538533032756 | etot = -54.4567170127026 +192000 ekin = 7.64125751955868 | erot = 21.804820778351 | epot = -83.902795312323 | etot = -54.4567170144133 +193000 ekin = 7.78828740684676 | erot = 21.699167392686 | epot = -83.9441718146323 | etot = -54.4567170150995 +194000 ekin = 7.87257389701353 | erot = 21.4375246080157 | epot = -83.7668155195151 | etot = -54.4567170144859 +195000 ekin = 7.88499447656609 | erot = 21.0374826850363 | epot = -83.379194174065 | etot = -54.4567170124625 +196000 ekin = 7.82454827833309 | erot = 20.5296762951792 | epot = -82.8109415829978 | etot = -54.4567170094855 +197000 ekin = 7.69767598869487 | erot = 19.9506603805391 | epot = -82.1050533754226 | etot = -54.4567170061886 +198000 ekin = 7.51633971742089 | erot = 19.3369849795413 | epot = -81.3100416995845 | etot = -54.4567170026223 +199000 ekin = 7.29564326175657 | erot = 18.7231663844391 | epot = -80.475526646081 | etot = -54.4567169998853 +200000 ekin = 7.05165448325243 | erot = 18.1349004645742 | epot = -79.6432719456259 | etot = -54.4567169977993 +201000 ekin = 6.79980702715613 | erot = 17.5878866996096 | epot = -78.8444107231904 | etot = -54.4567169964247 +202000 ekin = 6.55389674542505 | erot = 17.0887428909435 | epot = -78.0993566320929 | etot = -54.4567169957244 +203000 ekin = 6.32553934601821 | erot = 16.635910212878 | epot = -77.4181665545157 | etot = -54.4567169956195 +204000 ekin = 6.12389931338586 | erot = 16.2210487374556 | epot = -76.8016650468549 | etot = -54.4567169960135 +205000 ekin = 5.95555747603993 | erot = 15.8306192384133 | epot = -76.2428937112566 | etot = -54.4567169968033 +206000 ekin = 5.82447629752423 | erot = 15.4475601715623 | epot = -75.7287534669561 | etot = -54.4567169978695 +207000 ekin = 5.73209725915215 | erot = 15.053105252153 | epot = -75.24191951037 | etot = -54.4567169990648 +208000 ekin = 5.67763110960464 | erot = 14.6288167787821 | epot = -74.7631648885979 | etot = -54.4567170002112 +209000 ekin = 5.65856116655253 | erot = 14.1588249337379 | epot = -74.274103101405 | etot = -54.4567170011145 +210000 ekin = 5.67128286639217 | erot = 13.6320871718289 | epot = -73.7600870398271 | etot = -54.456717001606 +211000 ekin = 5.71170580201778 | erot = 13.0442947184013 | epot = -73.2127175220048 | etot = -54.4567170015858 +212000 ekin = 5.77563179366534 | erot = 12.3989793850584 | epot = -72.631328179774 | etot = -54.4567170010502 +213000 ekin = 5.85883529486842 | erot = 11.7074993993216 | epot = -72.0230516942805 | etot = -54.4567170000905 +214000 ekin = 5.95694378807573 | erot = 10.9878661192751 | epot = -71.4015269062056 | etot = -54.4567169988548 +215000 ekin = 6.06530909503309 | erot = 10.2626621519509 | epot = -70.7846882444977 | etot = -54.4567169975137 +216000 ekin = 6.17900319439831 | erot = 9.55646209150858 | epot = -70.1921822821386 | etot = -54.4567169962318 +217000 ekin = 6.29293379836523 | erot = 8.89318379220252 | epot = -69.6428345857182 | etot = -54.4567169951505 +218000 ekin = 6.40198693071945 | erot = 8.29373644845956 | epot = -69.1524403735559 | etot = -54.4567169943768 +219000 ekin = 6.50112265239607 | erot = 7.77424405643308 | epot = -68.7320837028041 | etot = -54.456716993975 +220000 ekin = 6.5854259900538 | erot = 7.34501698346227 | epot = -68.387159967471 | etot = -54.4567169939549 +221000 ekin = 6.65016990044527 | erot = 7.01032033730988 | epot = -68.1172072320316 | etot = -54.4567169942764 +222000 ekin = 6.69094775781806 | erot = 6.76886488025023 | epot = -67.916529632925 | etot = -54.4567169948567 +223000 ekin = 6.70389570636201 | erot = 6.61485079073771 | epot = -67.7754634926876 | etot = -54.4567169955879 +224000 ekin = 6.68598136532681 | erot = 6.53933986021686 | epot = -67.6820382218994 | etot = -54.4567169963558 +225000 ekin = 6.63530548008065 | erot = 6.53171636120698 | epot = -67.6237388383031 | etot = -54.4567169970154 +226000 ekin = 6.55135057790585 | erot = 6.58128483353357 | epot = -67.5893524090299 | etot = -54.4567169975904 +227000 ekin = 6.43512370214175 | erot = 6.67791109034028 | epot = -67.5697517904632 | etot = -54.4567169979811 +228000 ekin = 6.2891897097421 | erot = 6.81247705117203 | epot = -67.5583837590954 | etot = -54.4567169981813 +229000 ekin = 6.11756588060394 | erot = 6.97743477794333 | epot = -67.5517176567565 | etot = -54.4567169982092 +230000 ekin = 5.92551276691658 | erot = 7.16674212049509 | epot = -67.5489718855092 | etot = -54.4567169980975 +231000 ekin = 5.71926565755888 | erot = 7.37564891103015 | epot = -67.5516315664655 | etot = -54.4567169978765 +232000 ekin = 5.50574389394642 | erot = 7.60035647333501 | epot = -67.5628173648775 | etot = -54.4567169975961 +233000 ekin = 5.29225977425841 | erot = 7.83770399532855 | epot = -67.586680766864 | etot = -54.456716997277 +234000 ekin = 5.08624392068214 | erot = 8.08503631201065 | epot = -67.6279972296341 | etot = -54.4567169969414 +235000 ekin = 4.89494104384804 | erot = 8.33999580226642 | epot = -67.6916538427518 | etot = -54.4567169966373 +236000 ekin = 4.72509234581121 | erot = 8.6002992433848 | epot = -67.782108585585 | etot = -54.456716996389 +237000 ekin = 4.58266021003873 | erot = 8.86357795327266 | epot = -67.9029551595412 | etot = -54.4567169962298 +238000 ekin = 4.47254260204247 | erot = 9.12720418840754 | epot = -68.0564637866322 | etot = -54.4567169961822 +239000 ekin = 4.39833350162575 | erot = 9.38820734227518 | epot = -68.2432578401578 | etot = -54.4567169962569 +240000 ekin = 4.36216127770996 | erot = 9.64334632220632 | epot = -68.462224596357 | etot = -54.4567169964407 +241000 ekin = 4.36462932001306 | erot = 9.88937569308421 | epot = -68.7107220098002 | etot = -54.4567169967029 +242000 ekin = 4.40486892553746 | erot = 10.1234451005874 | epot = -68.9850310231344 | etot = -54.4567169970095 +243000 ekin = 4.48069651384412 | erot = 10.3436703820956 | epot = -69.2810838932206 | etot = -54.4567169972809 +244000 ekin = 4.58885218173589 | erot = 10.5497495785184 | epot = -69.5953187577396 | etot = -54.4567169974854 +245000 ekin = 4.72528226906678 | erot = 10.7433460022161 | epot = -69.9253452688674 | etot = -54.4567169975846 +246000 ekin = 4.88542118270109 | erot = 10.9282390794581 | epot = -70.2703772597352 | etot = -54.456716997576 +247000 ekin = 5.06442778965819 | erot = 11.1101246208806 | epot = -70.6312694080245 | etot = -54.4567169974857 +248000 ekin = 5.25733886261718 | erot = 11.29603558528 | epot = -71.010091445268 | etot = -54.4567169973708 +249000 ekin = 5.45911617616127 | erot = 11.4934186026681 | epot = -71.4092517761424 | etot = -54.456716997313 +250000 ekin = 5.66458445083577 | erot = 11.7089626303623 | epot = -71.830264078606 | etot = -54.4567169974079 +251000 ekin = 5.86828470152281 | erot = 11.9473320827919 | epot = -72.272333782062 | etot = -54.4567169977473 +252000 ekin = 6.06430127912922 | erot = 12.2100106162568 | epot = -72.7310288937809 | etot = -54.4567169983949 +253000 ekin = 6.24616780492761 | erot = 12.494513748408 | epot = -73.1973985526896 | etot = -54.4567169993539 +254000 ekin = 6.40690922038896 | erot = 12.7941888151854 | epot = -73.6578150361466 | etot = -54.4567170005723 +255000 ekin = 6.5393836854708 | erot = 13.0989475895866 | epot = -74.09504827693 | etot = -54.4567170018726 +256000 ekin = 6.63705992686618 | erot = 13.3969420757797 | epot = -74.4907190057148 | etot = -54.4567170030689 +257000 ekin = 6.69484132858293 | erot = 13.6765522910225 | epot = -74.8281106235613 | etot = -54.4567170039558 +258000 ekin = 6.70989585739654 | erot = 13.9284862768558 | epot = -75.0950991386068 | etot = -54.4567170043544 +259000 ekin = 6.68225912100175 | erot = 14.1474604164245 | epot = -75.2864365416673 | etot = -54.456717004241 +260000 ekin = 6.61492696705933 | erot = 14.3327847112053 | epot = -75.4044286819652 | etot = -54.4567170037005 +261000 ekin = 6.51342916846536 | erot = 14.4875948089552 | epot = -75.4577409802919 | etot = -54.4567170028714 +262000 ekin = 6.38502298989557 | erot = 14.6177175279255 | epot = -75.4594575197531 | etot = -54.456717001932 +263000 ekin = 6.23773151258861 | erot = 14.730099973026 | epot = -75.4245484866763 | etot = -54.4567170010617 +264000 ekin = 6.07942833310793 | erot = 14.8312906384176 | epot = -75.3674359719046 | etot = -54.456717000379 +265000 ekin = 5.91711592011929 | erot = 14.9263499746167 | epot = -75.3001828947035 | etot = -54.4567169999675 +266000 ekin = 5.7564789891914 | erot = 15.018125069079 | epot = -75.2313210581377 | etot = -54.4567169998673 +267000 ekin = 5.60177946975274 | erot = 15.1067951880419 | epot = -75.1652916578647 | etot = -54.4567170000701 +268000 ekin = 5.45615379098727 | erot = 15.1897452349394 | epot = -75.1026160264288 | etot = -54.4567170005022 +269000 ekin = 5.32235014694693 | erot = 15.2617179030259 | epot = -75.0407850514157 | etot = -54.4567170014429 +270000 ekin = 5.20387607982337 | erot = 15.3135128498233 | epot = -74.9741059315122 | etot = -54.4567170018656 +271000 ekin = 5.10637822315298 | erot = 15.3372496535252 | epot = -74.9003448785808 | etot = -54.4567170019026 +272000 ekin = 5.0388518748126 | erot = 15.327624841932 | epot = -74.8231937182346 | etot = -54.45671700149 +273000 ekin = 5.01411589731478 | erot = 15.2821745715711 | epot = -74.753007469433 | etot = -54.4567170005471 +274000 ekin = 5.04786741773059 | erot = 15.2025250199031 | epot = -74.7071094369017 | etot = -54.456716999268 +275000 ekin = 5.15594350432443 | erot = 15.0944700838399 | epot = -74.7071305861059 | etot = -54.4567169979416 +276000 ekin = 5.35014893903254 | erot = 14.9659361282872 | epot = -74.7728020645917 | etot = -54.456716997272 +277000 ekin = 5.63387543033584 | erot = 14.8238652605444 | epot = -74.9144576883746 | etot = -54.4567169974944 +278000 ekin = 5.9992050625418 | erot = 14.6727240463587 | epot = -75.1286461075964 | etot = -54.4567169986959 +279000 ekin = 6.42692112008834 | erot = 14.5136996025157 | epot = -75.3973377231713 | etot = -54.4567170005673 +280000 ekin = 6.88964247825228 | erot = 14.3457897766202 | epot = -75.6921492574948 | etot = -54.4567170026223 +281000 ekin = 7.35680808435014 | erot = 14.1678692303747 | epot = -75.9813943196878 | etot = -54.4567170049629 +282000 ekin = 7.79894530205569 | erot = 13.97831316129 | epot = -76.233975469457 | etot = -54.4567170061112 +283000 ekin = 8.19329732426334 | erot = 13.7802856701195 | epot = -76.4303000007534 | etot = -54.4567170063705 +284000 ekin = 8.52584895841343 | erot = 13.5821656429456 | epot = -76.5647316071554 | etot = -54.4567170057964 +285000 ekin = 8.79110175655349 | erot = 13.3960594628958 | epot = -76.6438782240551 | etot = -54.4567170046058 +286000 ekin = 8.99062132696418 | erot = 13.236122516321 | epot = -76.6834608463903 | etot = -54.4567170031052 +287000 ekin = 9.13075096351883 | erot = 13.1164152547882 | epot = -76.703883219916 | etot = -54.456717001609 +288000 ekin = 9.22014020608195 | erot = 13.0487281533272 | epot = -76.7255853597968 | etot = -54.4567170003877 +289000 ekin = 9.26758159069438 | erot = 13.0407526423324 | epot = -76.7650512326496 | etot = -54.4567169996229 +290000 ekin = 9.2804545878987 | erot = 13.0948897576411 | epot = -76.8320613449326 | etot = -54.4567169993928 +291000 ekin = 9.26388652305205 | erot = 13.2078630291939 | epot = -76.9284665519251 | etot = -54.4567169996791 +292000 ekin = 9.22058026560491 | erot = 13.371134477086 | epot = -77.0484317430758 | etot = -54.4567170003849 +293000 ekin = 9.15114447321159 | erot = 13.5719438956133 | epot = -77.1798053701999 | etot = -54.456717001375 +294000 ekin = 9.05470928641344 | erot = 13.7944688657478 | epot = -77.3058951547474 | etot = -54.4567170025862 +295000 ekin = 8.92962793964952 | erot = 14.0209919623942 | epot = -77.4073369058163 | etot = -54.4567170037725 +296000 ekin = 8.77413837932213 | erot = 14.2337556111685 | epot = -77.4646109953927 | etot = -54.4567170049021 +297000 ekin = 8.58694141176616 | erot = 14.415611799112 | epot = -77.4592702167747 | etot = -54.4567170058966 +298000 ekin = 8.3677146408304 | erot = 14.5507736801909 | epot = -77.3752053276984 | etot = -54.4567170066771 +299000 ekin = 8.1175782838731 | erot = 14.6256180333538 | epot = -77.199913324391 | etot = -54.4567170071641 +300000 ekin = 7.83948860310923 | erot = 14.6295386097215 | epot = -76.9257442201147 | etot = -54.4567170072839 +301000 ekin = 7.53848779196876 | erot = 14.5557753435617 | epot = -76.5509801425209 | etot = -54.4567170069904 +302000 ekin = 7.22172227244953 | erot = 14.4020558262223 | epot = -76.0804951049517 | etot = -54.4567170062799 +303000 ekin = 6.89817001546493 | erot = 14.1708739456024 | epot = -75.5257609662668 | etot = -54.4567170051995 +304000 ekin = 6.5780826193155 | erot = 13.8692983758872 | epot = -74.9040979990421 | etot = -54.4567170038394 +305000 ekin = 6.2722234776866 | erot = 13.5083194093766 | epot = -74.237259889379 | etot = -54.4567170023159 +306000 ekin = 5.99103930573308 | erot = 13.1018578904741 | epot = -73.5496141969571 | etot = -54.4567170007499 +307000 ekin = 5.74391705620338 | erot = 12.6656285179015 | epot = -72.8662625733495 | etot = -54.4567169992446 +308000 ekin = 5.53864734382918 | erot = 12.2160468439072 | epot = -72.2114111856066 | etot = -54.4567169978702 +309000 ekin = 5.38115498326384 | erot = 11.7690964633624 | epot = -71.6069684433639 | etot = -54.4567169967377 +310000 ekin = 5.27549820636912 | erot = 11.3394194656006 | epot = -71.0716346677099 | etot = -54.4567169957402 +311000 ekin = 5.22401044243336 | erot = 10.9405074525337 | epot = -70.6212348899248 | etot = -54.4567169949577 +312000 ekin = 5.22752009860295 | erot = 10.5837867729379 | epot = -70.2680238659518 | etot = -54.4567169944109 +313000 ekin = 5.28556911025189 | erot = 10.2780287119632 | epot = -70.0203148163499 | etot = -54.4567169941348 +314000 ekin = 5.39655367391962 | erot = 10.0287341725174 | epot = -69.8820048406112 | etot = -54.4567169941742 +315000 ekin = 5.55776516265775 | erot = 9.83752336499865 | epot = -69.8520055222255 | etot = -54.4567169945691 +316000 ekin = 5.7653530457615 | erot = 9.70164580928948 | epot = -69.9237158503973 | etot = -54.4567169953463 +317000 ekin = 6.01426692501809 | erot = 9.61377206320262 | epot = -70.0847559847169 | etot = -54.4567169964962 +318000 ekin = 6.29825476429367 | erot = 9.56224828021495 | epot = -70.3172200424689 | etot = -54.4567169979603 +319000 ekin = 6.60999451535819 | erot = 9.53197557681878 | epot = -70.5986870917947 | etot = -54.4567169996177 +320000 ekin = 6.94141382335311 | erot = 9.50599899522209 | epot = -70.9041298198628 | etot = -54.4567170012876 +321000 ekin = 7.28420684013784 | erot = 9.46773994829997 | epot = -71.2086637911906 | etot = -54.4567170027528 +322000 ekin = 7.63049375597147 | erot = 9.40359379845071 | epot = -71.4908045582218 | etot = -54.4567170037996 +323000 ekin = 7.97350371440688 | erot = 9.30540350738197 | epot = -71.7356242260594 | etot = -54.4567170042706 +324000 ekin = 8.30812216472291 | erot = 9.17221603057476 | epot = -71.9370551994056 | etot = -54.4567170041079 +325000 ekin = 8.63115493818506 | erot = 9.01082149334007 | epot = -72.0986934348975 | etot = -54.4567170033723 +326000 ekin = 8.94122829509857 | erot = 8.83486894706814 | epot = -72.2328142444007 | etot = -54.456717002234 +327000 ekin = 9.2383416399717 | erot = 8.66273411451335 | epot = -72.3577927554137 | etot = -54.4567170009287 +328000 ekin = 9.52317541129448 | erot = 8.51461710979976 | epot = -72.494509520808 | etot = -54.4567169997138 +329000 ekin = 9.79629908031618 | erot = 8.40945765598148 | epot = -72.662473735117 | etot = -54.4567169988193 +330000 ekin = 10.0574197993405 | erot = 8.36217436293344 | epot = -72.8763111606947 | etot = -54.4567169984207 +331000 ekin = 10.3047815002149 | erot = 8.38155728442706 | epot = -73.1430557832698 | etot = -54.4567169986279 +332000 ekin = 10.5347934531765 | erot = 8.46897862473395 | epot = -73.4604890773827 | etot = -54.4567169994722 +333000 ekin = 10.7419525181563 | erot = 8.61799790191855 | epot = -73.8166674209773 | etot = -54.4567170009025 +334000 ekin = 10.9191228830018 | erot = 8.81492290908233 | epot = -74.1907627948531 | etot = -54.456717002769 +335000 ekin = 11.0582310034251 | erot = 9.04039212109867 | epot = -74.5553401293494 | etot = -54.4567170048256 +336000 ekin = 11.1513905495702 | erot = 9.27198870541487 | epot = -74.8800962617268 | etot = -54.4567170067418 +337000 ekin = 11.1923691999824 | erot = 9.48771814312567 | epot = -75.1368043512572 | etot = -54.4567170081491 +338000 ekin = 11.1781584914541 | erot = 9.66988639695432 | epot = -75.304761897128 | etot = -54.4567170087196 +339000 ekin = 11.110273163195 | erot = 9.80861367328994 | epot = -75.3756038447384 | etot = -54.4567170082535 +340000 ekin = 10.9953796290017 | erot = 9.90409604937616 | epot = -75.3561926851294 | etot = -54.4567170067515 +341000 ekin = 10.8449930881317 | erot = 9.96693425469623 | epot = -75.2686443472476 | etot = -54.4567170044196 +342000 ekin = 10.6742553473666 | erot = 10.0163686561537 | epot = -75.1473410051374 | etot = -54.4567170016172 +343000 ekin = 10.5000860602567 | erot = 10.0768729195859 | epot = -75.0336759786075 | etot = -54.4567169987649 +344000 ekin = 10.3391511438661 | erot = 10.1739718598885 | epot = -74.9698400000093 | etot = -54.4567169962547 +345000 ekin = 10.2060562002225 | erot = 10.3301918101523 | epot = -74.9929650047638 | etot = -54.4567169943891 +346000 ekin = 10.1120018691326 | erot = 10.5617784619961 | epot = -75.1304973244953 | etot = -54.4567169933667 +347000 ekin = 10.0639419677312 | erot = 10.8764329835278 | epot = -75.3970919445539 | etot = -54.4567169932949 +348000 ekin = 10.0641555602939 | erot = 11.2720257324416 | epot = -75.7928982869476 | etot = -54.4567169942121 +349000 ekin = 10.1101145523998 | erot = 11.7361477401378 | epot = -76.3029792886303 | etot = -54.4567169960927 +350000 ekin = 10.1945825218777 | erot = 12.2464414545011 | epot = -76.8977409752211 | etot = -54.4567169988423 +351000 ekin = 10.3059767731242 | erot = 12.7718298178647 | epot = -77.5345235932589 | etot = -54.45671700227 +352000 ekin = 10.4291136841137 | erot = 13.2749133139495 | epot = -78.1607440041122 | etot = -54.456717006049 +353000 ekin = 10.5464827220645 | erot = 13.715787024313 | epot = -78.7189867560902 | etot = -54.4567170097128 +354000 ekin = 10.640108173953 | erot = 14.0572291869667 | epot = -79.1540543736269 | etot = -54.4567170127073 +355000 ekin = 10.6938478547007 | erot = 14.2706326977504 | epot = -79.4211975669542 | etot = -54.456717014503 +356000 ekin = 10.6957117760324 | erot = 14.3414067966647 | epot = -79.4938355874482 | etot = -54.4567170147512 +357000 ekin = 10.6396104112823 | erot = 14.2722652226267 | epot = -79.3685926473108 | etot = -54.4567170134019 +358000 ekin = 10.5262520486607 | erot = 14.0832401802047 | epot = -79.066209238702 | etot = -54.4567170098366 +359000 ekin = 10.3670012344474 | erot = 13.8092169878407 | epot = -78.6329352288687 | etot = -54.4567170065806 +360000 ekin = 10.1730345911612 | erot = 13.4915235481061 | epot = -78.1212751423994 | etot = -54.456717003132 +361000 ekin = 9.95554687781411 | erot = 13.1714216600755 | epot = -77.5836855379466 | etot = -54.456717000057 +362000 ekin = 9.72626696401215 | erot = 12.8843171182361 | epot = -77.0673010799981 | etot = -54.4567169977498 +363000 ekin = 9.49594699774894 | erot = 12.6552376501816 | epot = -76.6079016443356 | etot = -54.456716996405 +364000 ekin = 9.27348051447418 | erot = 12.4966397003795 | epot = -76.2268372108837 | etot = -54.45671699603 +365000 ekin = 9.06556428137841 | erot = 12.4084359560849 | epot = -75.9307172339607 | etot = -54.4567169964974 +366000 ekin = 8.8767156877772 | erot = 12.3798183116203 | epot = -75.7132509969821 | etot = -54.4567169975845 +367000 ekin = 8.70950256435238 | erot = 12.3923063931854 | epot = -75.5585259565708 | etot = -54.456716999033 +368000 ekin = 8.56482533239843 | erot = 12.4233361953136 | epot = -75.4448785283136 | etot = -54.4567170006016 +369000 ekin = 8.44216266247639 | erot = 12.4496962572969 | epot = -75.3485759218763 | etot = -54.456717002103 +370000 ekin = 8.33975827581587 | erot = 12.4502709028933 | epot = -75.2467461821205 | etot = -54.4567170034114 +371000 ekin = 8.25479796578774 | erot = 12.407860932567 | epot = -75.1193759028043 | etot = -54.4567170044495 +372000 ekin = 8.1836687896073 | erot = 12.3101981041747 | epot = -74.950583898938 | etot = -54.4567170051561 +373000 ekin = 8.12237120099796 | erot = 12.150469466896 | epot = -74.7295576733628 | etot = -54.4567170054689 +374000 ekin = 8.06677539353194 | erot = 11.9273562293612 | epot = -74.4508486283192 | etot = -54.456717005426 +375000 ekin = 8.01350111913413 | erot = 11.645320521957 | epot = -74.1155386458676 | etot = -54.4567170047766 +376000 ekin = 7.96091572447976 | erot = 11.3149868234253 | epot = -73.7326195516215 | etot = -54.4567170037164 +377000 ekin = 7.90852881942141 | erot = 10.9517029979008 | epot = -73.3169488196991 | etot = -54.4567170023769 +378000 ekin = 7.85672904350658 | erot = 10.5738384909262 | epot = -72.887284535377 | etot = -54.4567170009443 +379000 ekin = 7.80630927767902 | erot = 10.2005458441653 | epot = -72.4635721214624 | etot = -54.4567169996181 +380000 ekin = 7.75800079078551 | erot = 9.8494529907635 | epot = -72.064170780094 | etot = -54.456716998545 +381000 ekin = 7.71644600862591 | erot = 9.53800624561232 | epot = -71.7111692500814 | etot = -54.4567169958432 +382000 ekin = 7.68441527892619 | erot = 9.27832089835142 | epot = -71.4194531731731 | etot = -54.4567169958955 +383000 ekin = 7.65787566183404 | erot = 9.07303517126605 | epot = -71.187627829087 | etot = -54.4567169959869 +384000 ekin = 7.63460910810198 | erot = 8.9224118898537 | epot = -71.0137379939037 | etot = -54.456716995948 +385000 ekin = 7.6149535164395 | erot = 8.82611541868757 | epot = -70.8977859308139 | etot = -54.4567169956869 +386000 ekin = 7.60189486281613 | erot = 8.78441843695066 | epot = -70.8430302949976 | etot = -54.4567169952308 +387000 ekin = 7.60041891103307 | erot = 8.79838942462568 | epot = -70.8555253303886 | etot = -54.4567169947299 +388000 ekin = 7.61622683362204 | erot = 8.86894752211043 | epot = -70.9418913501462 | etot = -54.4567169944138 +389000 ekin = 7.65411397461264 | erot = 8.99508106939575 | epot = -71.1059120385311 | etot = -54.4567169945227 +390000 ekin = 7.71640194413937 | erot = 9.17181221608584 | epot = -71.3449311554853 | etot = -54.4567169952601 +391000 ekin = 7.80179289421955 | erot = 9.38846927313634 | epot = -71.6469791640544 | etot = -54.4567169966985 +392000 ekin = 7.90489667240788 | erot = 9.62803617098498 | epot = -71.9896498421672 | etot = -54.4567169987743 +393000 ekin = 8.01656398898028 | erot = 9.86778742621853 | epot = -72.3410684164769 | etot = -54.4567170012781 +394000 ekin = 8.12500523168265 | erot = 10.0813107732248 | epot = -72.6630330087891 | etot = -54.4567170038816 +395000 ekin = 8.21751488333172 | erot = 10.2416672650812 | epot = -72.9158991546114 | etot = -54.4567170061985 +396000 ekin = 8.2824936976285 | erot = 10.3253499492592 | epot = -73.0645606546968 | etot = -54.456717007809 +397000 ekin = 8.3113926603245 | erot = 10.3159449128745 | epot = -73.0840545817383 | etot = -54.4567170085394 +398000 ekin = 8.30021982541439 | erot = 10.2060347710596 | epot = -72.9629716046272 | etot = -54.4567170081532 +399000 ekin = 8.25031816200703 | erot = 9.99940615794297 | epot = -72.7064413267589 | etot = -54.4567170068089 +400000 ekin = 8.16827445227634 | erot = 9.7097015502967 | epot = -72.3346930072091 | etot = -54.456717004636 +401000 ekin = 8.06453103741583 | erot = 9.35834706105757 | epot = -71.8795951005835 | etot = -54.4567170021101 +402000 ekin = 7.95192509945075 | erot = 8.97202468748702 | epot = -71.3806667861405 | etot = -54.4567169992027 +403000 ekin = 7.84555125758021 | erot = 8.57971802937037 | epot = -70.8819862833966 | etot = -54.456716996446 +404000 ekin = 7.76002341839152 | erot = 8.20898478878102 | epot = -70.425725201349 | etot = -54.4567169941765 +405000 ekin = 7.70732931836054 | erot = 7.8837751017023 | epot = -70.0478214124161 | etot = -54.4567169923533 +406000 ekin = 7.69678612080616 | erot = 7.62266799265398 | epot = -69.7761711045908 | etot = -54.4567169911307 +407000 ekin = 7.73513354697998 | erot = 7.43808993656357 | epot = -69.6299404740833 | etot = -54.4567169905398 +408000 ekin = 7.82571657241241 | erot = 7.33617130722911 | epot = -69.6186048702079 | etot = -54.4567169905664 +409000 ekin = 7.96844969704685 | erot = 7.31680539063558 | epot = -69.7419720788819 | etot = -54.4567169911994 +410000 ekin = 8.15983887506257 | erot = 7.37383443939548 | epot = -69.9903903068786 | etot = -54.4567169924205 +411000 ekin = 8.39302325865663 | erot = 7.4953976334526 | epot = -70.3451378862939 | etot = -54.4567169941847 +412000 ekin = 8.65789214073318 | erot = 7.66460030904681 | epot = -70.7792094461797 | etot = -54.4567169963997 +413000 ekin = 8.94143674964541 | erot = 7.86072523711374 | epot = -71.2588789856516 | etot = -54.4567169988925 +414000 ekin = 9.22856273978891 | erot = 8.06118997496246 | epot = -71.7464697161389 | etot = -54.4567170013875 +415000 ekin = 9.50353222598334 | erot = 8.24426927837509 | epot = -72.2045185078928 | etot = -54.4567170035344 +416000 ekin = 9.75196200032965 | erot = 8.39224874053139 | epot = -72.6009277458497 | etot = -54.4567170049887 +417000 ekin = 9.9629449386187 | erot = 8.49428522215829 | epot = -72.9139471663249 | etot = -54.4567170055479 +418000 ekin = 10.1306180934885 | erot = 8.54795226111053 | epot = -73.1352873597359 | etot = -54.4567170051369 +419000 ekin = 10.2546096453504 | erot = 8.55936156101561 | epot = -73.2706882103206 | etot = -54.4567170039546 +420000 ekin = 10.3392413847947 | erot = 8.54150946849157 | epot = -73.3374678555919 | etot = -54.4567170023057 +421000 ekin = 10.3918587231919 | erot = 8.51150598433048 | epot = -73.3600817080363 | etot = -54.4567170005139 +422000 ekin = 10.4208785143884 | erot = 8.4877866554269 | epot = -73.3653821686634 | etot = -54.4567169988481 +423000 ekin = 10.4340350336987 | erot = 8.48770021699104 | epot = -73.3784522482328 | etot = -54.456716997543 +424000 ekin = 10.4370437707939 | erot = 8.52571262940896 | epot = -73.4194733968421 | etot = -54.4567169966392 +425000 ekin = 10.4323779106235 | erot = 8.61252848638176 | epot = -73.5016237919849 | etot = -54.4567173949797 +426000 ekin = 10.1027691140753 | erot = 8.31084890989174 | epot = -72.8703349960224 | etot = -54.4567169720554 +427000 ekin = 10.5737761012621 | erot = 8.79661991597699 | epot = -73.8271134052882 | etot = -54.4567173880491 +428000 ekin = 10.6073086148619 | erot = 9.02815734228935 | epot = -74.0921832808639 | etot = -54.4567173237126 +429000 ekin = 10.5962992474437 | erot = 9.29502326253138 | epot = -74.3480398354772 | etot = -54.4567173255021 +430000 ekin = 10.5389640746118 | erot = 9.58950094091545 | epot = -74.5851823430212 | etot = -54.4567173274939 +431000 ekin = 10.4245600707616 | erot = 9.89254945457005 | epot = -74.7738268547387 | etot = -54.4567173294071 +432000 ekin = 10.2456183701228 | erot = 10.1831375483389 | epot = -74.8854732493764 | etot = -54.4567173309147 +433000 ekin = 10.0001839880906 | erot = 10.4408608802914 | epot = -74.8977622000884 | etot = -54.4567173317063 +434000 ekin = 9.69355282025833 | erot = 10.6487620299407 | epot = -74.7990321817699 | etot = -54.4567173315709 +435000 ekin = 9.33897175581629 | erot = 10.7957385369187 | epot = -74.5914276231967 | etot = -54.4567173304618 +436000 ekin = 8.95691803307971 | erot = 10.8779295163378 | epot = -74.2915648779456 | etot = -54.4567173285281 +437000 ekin = 8.5729208976939 | erot = 10.8987288383879 | epot = -73.9283670621617 | etot = -54.4567173260799 +438000 ekin = 8.21432291139599 | erot = 10.8675107992332 | epot = -73.5385510341301 | etot = -54.4567173235009 +439000 ekin = 7.90671191648676 | erot = 10.7975744645269 | epot = -73.1610037021589 | etot = -54.4567173211452 +440000 ekin = 7.67083057756313 | erot = 10.7040012563597 | epot = -72.8315491531736 | etot = -54.4567173192507 +441000 ekin = 7.52056261878233 | erot = 10.6019893788208 | epot = -72.5792693155245 | etot = -54.4567173179214 +442000 ekin = 7.46221677065886 | erot = 10.5058719364342 | epot = -72.4248060242353 | etot = -54.4567173171422 +443000 ekin = 7.49495713472296 | erot = 10.4286506059608 | epot = -72.3803250575281 | etot = -54.4567173168443 +444000 ekin = 7.61199665328085 | erot = 10.3816668192465 | epot = -72.4503807894806 | etot = -54.4567173169533 +445000 ekin = 7.80212113162776 | erot = 10.3740565458178 | epot = -72.6328949948733 | etot = -54.4567173174277 +446000 ekin = 8.05121208710603 | erot = 10.4118503345047 | epot = -72.9197797398594 | etot = -54.4567173182487 +447000 ekin = 8.34364339004613 | erot = 10.4968771153954 | epot = -73.2972378248874 | etot = -54.4567173194459 +448000 ekin = 8.66325116930049 | erot = 10.6256625167956 | epot = -73.7456310070778 | etot = -54.4567173209817 +449000 ekin = 8.99432108684567 | erot = 10.788980920788 | epot = -74.2400193304163 | etot = -54.4567173227827 +450000 ekin = 9.32245948922637 | erot = 10.9722541224535 | epot = -74.751430936395 | etot = -54.4567173247151 +451000 ekin = 9.63536145903598 | erot = 11.1568985326443 | epot = -75.2489773182791 | etot = -54.4567173265988 +452000 ekin = 9.92347885287827 | erot = 11.3224562063141 | epot = -75.7026523874227 | etot = -54.4567173282304 +453000 ekin = 10.1805354635802 | erot = 11.4491361056682 | epot = -76.0863888986905 | etot = -54.4567173294422 +454000 ekin = 10.4037376220647 | erot = 11.5201500068694 | epot = -76.3806049590722 | etot = -54.4567173301382 +455000 ekin = 10.5935799379614 | erot = 11.5233605384484 | epot = -76.5736578067262 | etot = -54.4567173303164 +456000 ekin = 10.7532157912704 | erot = 11.45198578839 | epot = -76.6619189097202 | etot = -54.4567173300598 +457000 ekin = 10.8874528211611 | erot = 11.3044013916393 | epot = -76.6485715423045 | etot = -54.456717329504 +458000 ekin = 11.0015356719994 | erot = 11.0833330749703 | epot = -76.5415860757781 | etot = -54.4567173288083 +459000 ekin = 11.0999386292695 | erot = 10.7947718565247 | epot = -76.351427813892 | etot = -54.4567173280978 +460000 ekin = 11.1853921968751 | erot = 10.4469386378716 | epot = -76.08904816222 | etot = -54.4567173274733 +461000 ekin = 11.2582527529419 | erot = 10.0494375630547 | epot = -75.7644076429679 | etot = -54.4567173269713 +462000 ekin = 11.3163535530636 | erot = 9.6127305658376 | epot = -75.3858014454931 | etot = -54.4567173265919 +463000 ekin = 11.3552901634181 | erot = 9.14782741079218 | epot = -74.9598349005202 | etot = -54.4567173263099 +464000 ekin = 11.3690501275197 | erot = 8.66606699695009 | epot = -74.4918344505388 | etot = -54.456717326069 +465000 ekin = 11.3509395537104 | erot = 8.17907283455601 | epot = -73.9867297140495 | etot = -54.4567173257831 +466000 ekin = 11.2946941726445 | erot = 7.69877194992159 | epot = -73.4501834479714 | etot = -54.4567173254054 +467000 ekin = 11.1954789031938 | erot = 7.23723472358706 | epot = -72.8894309516824 | etot = -54.4567173249016 +468000 ekin = 11.0507711892684 | erot = 6.80628316338651 | epot = -72.3137716769225 | etot = -54.4567173242676 +469000 ekin = 10.8610622879441 | erot = 6.41684853510692 | epot = -71.7346281465774 | etot = -54.4567173235264 +470000 ekin = 10.6303293037576 | erot = 6.07816222727485 | epot = -71.1652088537423 | etot = -54.4567173227098 +471000 ekin = 10.3662986164779 | erot = 5.7969515350622 | epot = -70.6199674733878 | etot = -54.4567173218477 +472000 ekin = 10.0804738216297 | erot = 5.57685091064185 | epot = -70.1140420532388 | etot = -54.4567173209673 +473000 ekin = 9.78780661768799 | erot = 5.41818349563855 | epot = -69.6627074334256 | etot = -54.456717320099 +474000 ekin = 9.50580460755706 | erot = 5.31815275509628 | epot = -69.2806746819618 | etot = -54.4567173193084 +475000 ekin = 9.25291327930302 | erot = 5.27138134031401 | epot = -68.9810119383048 | etot = -54.4567173186878 +476000 ekin = 9.04625597797891 | erot = 5.27069575629549 | epot = -68.7736690526116 | etot = -54.4567173183372 +477000 ekin = 8.89916818083511 | erot = 5.30806481992805 | epot = -68.6639503190903 | etot = -54.4567173183271 +478000 ekin = 8.81917608292222 | erot = 5.37558721490333 | epot = -68.651480616495 | etot = -54.4567173186694 +479000 ekin = 8.80688801078725 | erot = 5.46634570346839 | epot = -68.7299510335938 | etot = -54.4567173193382 +480000 ekin = 8.8559577273249 | erot = 5.57491529291688 | epot = -68.8875903404855 | etot = -54.4567173202437 +481000 ekin = 8.95427411301321 | erot = 5.69752640401541 | epot = -69.1085178383731 | etot = -54.4567173213445 +482000 ekin = 9.08519639592524 | erot = 5.83169305186526 | epot = -69.3736067703773 | etot = -54.4567173225868 +483000 ekin = 9.22914118620374 | erot = 5.97559221269923 | epot = -69.6614507228185 | etot = -54.4567173239156 +484000 ekin = 9.36528214546114 | erot = 6.12746790496011 | epot = -69.9494673756776 | etot = -54.4567173252563 +485000 ekin = 9.47329519940515 | erot = 6.28524325031333 | epot = -70.215255776229 | etot = -54.4567173265105 +486000 ekin = 9.53507247963369 | erot = 6.44644236439794 | epot = -70.4382321715999 | etot = -54.4567173275683 +487000 ekin = 9.53625700455088 | erot = 6.60839833384011 | epot = -70.6013726667204 | etot = -54.4567173283294 +488000 ekin = 9.46740386001613 | erot = 6.76861264891106 | epot = -70.6927338376571 | etot = -54.45671732873 +489000 ekin = 9.32459963449382 | erot = 6.92506407616929 | epot = -70.7063810394197 | etot = -54.4567173287566 +490000 ekin = 9.10947948780052 | erot = 7.07631880463668 | epot = -70.6425156208857 | etot = -54.4567173284485 +491000 ekin = 8.82889148608906 | erot = 7.22129660538092 | epot = -70.5069054189664 | etot = -54.4567173274964 +492000 ekin = 8.49628756221007 | erot = 7.35787986415986 | epot = -70.3108847533214 | etot = -54.4567173269515 +493000 ekin = 8.1248866002914 | erot = 7.48347573766511 | epot = -70.0650796642496 | etot = -54.4567173262931 +494000 ekin = 7.72897177736439 | erot = 7.59497930547508 | epot = -69.7806684084087 | etot = -54.4567173255692 +495000 ekin = 7.32471897791198 | erot = 7.68843463888807 | epot = -69.4698709364699 | etot = -54.4567173196699 +496000 ekin = 6.87941085033985 | erot = 7.73484184189949 | epot = -69.0709701954506 | etot = -54.4567175032113 +497000 ekin = 6.1073967841752 | erot = 7.42313588089099 | epot = -67.9872498480929 | etot = -54.4567171830267 +498000 ekin = 6.82192117262335 | erot = 7.452484020769 | epot = -68.7311226730924 | etot = -54.4567174797001 +499000 ekin = 6.94584861699919 | erot = 7.49830975478806 | epot = -68.9008757168235 | etot = -54.4567173450363 +500000 ekin = 6.96878886921288 | erot = 7.49013442210754 | epot = -68.9156406384887 | etot = -54.4567173471683 +501000 ekin = 7.01883264695104 | erot = 7.44447241972064 | epot = -68.9200224127215 | etot = -54.4567173460498 +502000 ekin = 7.10336336313328 | erot = 7.36823892373464 | epot = -68.928319631582 | etot = -54.456717344714 +503000 ekin = 7.22899289906535 | erot = 7.27372377746777 | epot = -68.9594340198038 | etot = -54.4567173432706 +504000 ekin = 7.40059940684358 | erot = 7.17755657732221 | epot = -69.0348733260352 | etot = -54.4567173418694 +505000 ekin = 7.62076916490399 | erot = 7.09828995866922 | epot = -69.1757764642455 | etot = -54.4567173406723 +506000 ekin = 7.88922231362901 | erot = 7.05443045705873 | epot = -69.4003701105086 | etot = -54.4567173398209 +507000 ekin = 8.20252308360173 | erot = 7.06244306985725 | epot = -69.7216834928758 | etot = -54.4567173394168 +508000 ekin = 8.55418648388798 | erot = 7.13501434822598 | epot = -70.1459181716168 | etot = -54.4567173395029 +509000 ekin = 8.93520489703516 | erot = 7.27978431320956 | epot = -70.6717065503075 | etot = -54.4567173400628 +510000 ekin = 9.33488714865156 | erot = 7.49865655844805 | epot = -71.2902610481376 | etot = -54.456717341038 +511000 ekin = 9.74177952548336 | erot = 7.78769810223546 | epot = -71.9861949700715 | etot = -54.4567173423527 +512000 ekin = 10.1443709695578 | erot = 8.1375553911762 | epot = -72.7386437046762 | etot = -54.4567173439422 +513000 ekin = 10.5313274213469 | erot = 8.53425799992997 | epot = -73.5223027670439 | etot = -54.456717345767 +514000 ekin = 10.8911959115567 | erot = 8.96029115460181 | epot = -74.3082044139501 | etot = -54.4567173477916 +515000 ekin = 11.2118380805486 | erot = 9.39590833078901 | epot = -75.0644637612815 | etot = -54.4567173499439 +516000 ekin = 11.480143336322 | erot = 9.8207630711781 | epot = -75.7576237595617 | etot = -54.4567173520616 +517000 ekin = 11.6825679425228 | erot = 10.2159470151048 | epot = -76.3552323115135 | etot = -54.4567173538859 +518000 ekin = 11.8066633107499 | erot = 10.5663069187178 | epot = -76.8296875845938 | etot = -54.4567173551261 +519000 ekin = 11.8431596193386 | erot = 10.8625837428977 | epot = -77.1624607177948 | etot = -54.4567173555585 +520000 ekin = 11.7878285859595 | erot = 11.1027186624904 | epot = -77.3472646035842 | etot = -54.4567173551343 +521000 ekin = 11.642256322058 | erot = 11.2918969270651 | epot = -77.3908706030792 | etot = -54.4567173539561 +522000 ekin = 11.4135745678739 | erot = 11.4412270159323 | epot = -77.3115189360688 | etot = -54.4567173522626 +523000 ekin = 11.1132889181913 | erot = 11.5654013626807 | epot = -77.1354076312241 | etot = -54.456717350352 +524000 ekin = 10.755617164738 | erot = 11.6798233409266 | epot = -76.8921578542007 | etot = -54.4567173485361 +525000 ekin = 10.3557495856328 | erot = 11.7976048718395 | epot = -76.6100718045692 | etot = -54.4567173470969 +526000 ekin = 9.92830200951311 | erot = 11.926776165877 | epot = -76.3117955216426 | etot = -54.4567173462526 +527000 ekin = 9.48617609162457 | erot = 12.0681058739613 | epot = -76.0109993117011 | etot = -54.4567173461153 +528000 ekin = 9.04001720128526 | erot = 12.2139837697204 | epot = -75.7107183176543 | etot = -54.4567173466486 +529000 ekin = 8.59838558980895 | erot = 12.3488494507838 | epot = -75.4039523882422 | etot = -54.4567173476494 +530000 ekin = 8.16860222528581 | erot = 12.451455933101 | epot = -75.0767755071562 | etot = -54.4567173487694 +531000 ekin = 7.75801650616995 | erot = 12.4988074604779 | epot = -74.7135413162469 | etot = -54.4567173495991 +532000 ekin = 7.37526556648521 | erot = 12.4710301212504 | epot = -74.3030130375118 | etot = -54.4567173497761 +533000 ekin = 7.03105781109593 | erot = 12.355970528871 | epot = -73.8437456890664 | etot = -54.4567173490995 +534000 ekin = 6.73815971496944 | erot = 12.1522682791584 | epot = -73.3471453417096 | etot = -54.4567173475817 +535000 ekin = 6.51053456918365 | erot = 11.8701146968395 | epot = -72.8373666114564 | etot = -54.4567173454333 +536000 ekin = 6.36183924353497 | erot = 11.5296683851411 | epot = -72.3482249716737 | etot = -54.4567173429977 +537000 ekin = 6.30361425976245 | erot = 11.1591555752809 | epot = -71.9194871756187 | etot = -54.4567173405753 +538000 ekin = 6.34347309062121 | erot = 10.7899247971681 | epot = -71.5901152265605 | etot = -54.4567173387712 +539000 ekin = 6.48353756609007 | erot = 10.4488647730074 | epot = -71.3891196768614 | etot = -54.456717337764 +540000 ekin = 6.71929044884176 | erot = 10.1573936013085 | epot = -71.3334013879135 | etot = -54.4567173377632 +541000 ekin = 7.03900384377945 | erot = 9.92878251410278 | epot = -71.4245036967398 | etot = -54.4567173388576 +542000 ekin = 7.42390727692028 | erot = 9.766581713257 | epot = -71.6472063311658 | etot = -54.4567173409885 +543000 ekin = 7.84922333881028 | erot = 9.6644315124603 | epot = -71.9703721952034 | etot = -54.4567173439328 +544000 ekin = 8.2860857685601 | erot = 9.60741387125263 | epot = -72.3502169871389 | etot = -54.4567173473261 +545000 ekin = 8.70416168565955 | erot = 9.57483819178386 | epot = -72.7357172281503 | etot = -54.4567173507069 +546000 ekin = 9.07464757514397 | erot = 9.54408103802403 | epot = -73.0754459667689 | etot = -54.4567173536009 +547000 ekin = 9.37316662913337 | erot = 9.49472293134589 | epot = -73.3246069161013 | etot = -54.4567173556221 +548000 ekin = 9.582086858095 | erot = 9.41206012905516 | epot = -73.4508643436985 | etot = -54.4567173565483 +549000 ekin = 9.69189882139144 | erot = 9.28920893813615 | epot = -73.4378251158813 | etot = -54.4567173563537 +550000 ekin = 9.70150390326778 | erot = 9.12788542696047 | epot = -73.2861066852756 | etot = -54.4567173550473 +551000 ekin = 9.61749941013993 | erot = 8.93692851356279 | epot = -73.0111452769067 | etot = -54.4567173532039 +552000 ekin = 9.45272119087526 | erot = 8.72887496113547 | epot = -72.638313502974 | etot = -54.4567173509632 +553000 ekin = 9.22440824207383 | erot = 8.5184174665468 | epot = -72.1995430572152 | etot = -54.4567173485946 +554000 ekin = 8.95232614946355 | erot = 8.3203167700183 | epot = -71.7293602657827 | etot = -54.4567173463009 +555000 ekin = 8.65710798385505 | erot = 8.1480165512927 | epot = -71.2618418793551 | etot = -54.4567173442074 +556000 ekin = 8.35889174136217 | erot = 8.01297313098835 | epot = -70.8285822147343 | etot = -54.4567173423838 +557000 ekin = 8.07627835316373 | erot = 7.92452278400383 | epot = -70.4575184780232 | etot = -54.4567173408556 +558000 ekin = 7.82557556424515 | erot = 7.89005526871232 | epot = -70.1723481725954 | etot = -54.4567173396379 +559000 ekin = 7.62022949922536 | erot = 7.91519977429377 | epot = -69.9921466122746 | etot = -54.4567173387554 +560000 ekin = 7.4703716719749 | erot = 8.00382469732972 | epot = -69.9309137075519 | etot = -54.4567173382473 +561000 ekin = 7.38244374305034 | erot = 8.15776606028061 | epot = -69.9969271414971 | etot = -54.4567173381662 +562000 ekin = 7.35891939626811 | erot = 8.37634747921777 | epot = -70.1919842140397 | etot = -54.4567173385538 +563000 ekin = 7.39821090242063 | erot = 8.6559101898171 | epot = -70.5108384316496 | etot = -54.4567173394119 +564000 ekin = 7.49490249873246 | erot = 8.9896739347677 | epot = -70.9412937741658 | etot = -54.4567173406656 +565000 ekin = 7.64044839042939 | erot = 9.36842791898228 | epot = -71.4655936514913 | etot = -54.4567173420797 +566000 ekin = 7.82436206843023 | erot = 9.7814600942301 | epot = -72.0625395063096 | etot = -54.4567173436493 +567000 ekin = 8.03570817671908 | erot = 10.2171991123419 | epot = -72.7096246341783 | etot = -54.4567173451174 +568000 ekin = 8.26450258147759 | erot = 10.6646881726758 | epot = -73.3859081005832 | etot = -54.4567173464298 +569000 ekin = 8.50263013239885 | erot = 11.113655831685 | epot = -74.073003311693 | etot = -54.4567173476091 +570000 ekin = 8.74345958959415 | erot = 11.5533265255611 | epot = -74.7535034643013 | etot = -54.456717349146 +571000 ekin = 8.98083952020989 | erot = 11.9715855040848 | epot = -75.4091423756117 | etot = -54.456717351317 +572000 ekin = 9.2082893113693 | erot = 12.3553438318372 | epot = -76.0203504955679 | etot = -54.4567173523613 +573000 ekin = 9.42090854110401 | erot = 12.6948199769537 | epot = -76.5724458709045 | etot = -54.4567173528468 +574000 ekin = 9.61857732717091 | erot = 12.9876096043916 | epot = -77.0629042836827 | etot = -54.4567173521202 +575000 ekin = 9.80559233524997 | erot = 13.2418166844266 | epot = -77.5041263701766 | etot = -54.4567173505001 +576000 ekin = 9.99035771754399 | erot = 13.4731869806347 | epot = -77.9202620466162 | etot = -54.4567173484375 +577000 ekin = 10.18356327221 | erot = 13.7002526866703 | epot = -78.3405333055655 | etot = -54.4567173466852 +578000 ekin = 10.39537510065 | erot = 13.9378911113595 | epot = -78.7899835575021 | etot = -54.4567173454925 +579000 ekin = 10.6324997791117 | erot = 14.1944325430615 | epot = -79.2836496674951 | etot = -54.456717345322 +580000 ekin = 10.8957969406474 | erot = 14.4694129346268 | epot = -79.8219272215725 | etot = -54.4567173462984 +581000 ekin = 11.1787341118591 | erot = 14.7532777796623 | epot = -80.3887292399432 | etot = -54.4567173484219 +582000 ekin = 11.4668332923165 | erot = 15.0284724124031 | epot = -80.9520230561213 | etot = -54.4567173514017 +583000 ekin = 11.7383428294213 | erot = 15.2728618931176 | epot = -81.4679220774225 | etot = -54.4567173548836 +584000 ekin = 11.9664778295178 | erot = 15.4633320550726 | epot = -81.8865272428793 | etot = -54.456717358289 +585000 ekin = 12.1233962794599 | erot = 15.5801019753244 | epot = -82.1602156157044 | etot = -54.4567173609202 +586000 ekin = 12.1854288034047 | erot = 15.6113292070022 | epot = -82.253475372555 | etot = -54.4567173621481 +587000 ekin = 12.1382875982282 | erot = 15.5565429926412 | epot = -82.1515479525114 | etot = -54.4567173616419 +588000 ekin = 11.980567263597 | erot = 15.4274086012163 | epot = -81.8646932243473 | etot = -54.4567173595339 +589000 ekin = 11.7241953475155 | erot = 15.2450549080607 | epot = -81.42596761198 | etot = -54.4567173564038 +590000 ekin = 11.3915332486529 | erot = 15.0345988268665 | epot = -80.8828494285826 | etot = -54.4567173530633 +591000 ekin = 11.0101533181373 | erot = 14.8188164822443 | epot = -80.2856871506142 | etot = -54.4567173502326 +592000 ekin = 10.6073077807716 | erot = 14.6133535707705 | epot = -79.6773786998103 | etot = -54.4567173482682 +593000 ekin = 10.20611413012 | erot = 14.4250491600538 | epot = -79.0878806372874 | etot = -54.4567173471136 +594000 ekin = 9.82433917827452 | erot = 14.2531987869176 | epot = -78.5342553116875 | etot = -54.4567173464954 +595000 ekin = 9.47512062813722 | erot = 14.0920125306389 | epot = -78.0238505049661 | etot = -54.45671734619 +596000 ekin = 9.16819158320015 | erot = 13.9323441617294 | epot = -77.5572530910782 | etot = -54.4567173461486 +597000 ekin = 8.91059203433178 | erot = 13.7621053819093 | epot = -77.1294147626611 | etot = -54.45671734642 +598000 ekin = 8.70677308285503 | erot = 13.5663641000429 | epot = -76.7298545298872 | etot = -54.4567173469893 +599000 ekin = 8.55852376885718 | erot = 13.3285545477924 | epot = -76.3437956643477 | etot = -54.4567173476981 +600000 ekin = 8.46506569152837 | erot = 13.0361676653189 | epot = -75.9579507047602 | etot = -54.4567173479129 +601000 ekin = 8.42303296005732 | erot = 12.6870523997539 | epot = -75.5668027086096 | etot = -54.4567173487984 +602000 ekin = 8.42685459634187 | erot = 12.2732861398249 | epot = -75.1568580852133 | etot = -54.4567173490466 +603000 ekin = 8.4695014305831 | erot = 11.7970571525042 | epot = -74.723275931772 | etot = -54.4567173486848 +604000 ekin = 8.54270518569668 | erot = 11.2713924782976 | epot = -74.2708150118676 | etot = -54.4567173478733 +605000 ekin = 8.63728733668962 | erot = 10.7173462217099 | epot = -73.8113509052181 | etot = -54.4567173468186 +606000 ekin = 8.74373801583669 | erot = 10.1602725630121 | epot = -73.3607279245415 | etot = -54.4567173456927 +607000 ekin = 8.85303389951875 | erot = 9.62621357886593 | epot = -72.9359648230231 | etot = -54.4567173446384 +608000 ekin = 8.95757126311852 | erot = 9.13896619782446 | epot = -72.5532548046386 | etot = -54.4567173436956 +609000 ekin = 9.05196680869766 | erot = 8.71829532640637 | epot = -72.2269794780634 | etot = -54.4567173429594 +610000 ekin = 9.13352888585026 | erot = 8.37856547526864 | epot = -71.9688117034343 | etot = -54.4567173423154 +611000 ekin = 9.20215106475175 | erot = 8.12901246857978 | epot = -71.7878808752659 | etot = -54.4567173419343 +612000 ekin = 9.25956583882272 | erot = 7.97314000869066 | epot = -71.68942318941 | etot = -54.4567173418966 +613000 ekin = 9.3081148722521 | erot = 7.90851279248914 | epot = -71.6733450070467 | etot = -54.4567173423054 +614000 ekin = 9.34927530415222 | erot = 7.92684519058937 | epot = -71.7328378379836 | etot = -54.456717343242 +615000 ekin = 9.38237013825649 | erot = 8.0143318290608 | epot = -71.8534193119474 | etot = -54.4567173446301 +616000 ekin = 9.40383195122376 | erot = 8.15304439798393 | epot = -72.0135936957706 | etot = -54.4567173465629 +617000 ekin = 9.4077387597377 | erot = 8.32048130514227 | epot = -72.1849374136078 | etot = -54.4567173487279 +618000 ekin = 9.38718282197665 | erot = 8.49205380137603 | epot = -72.3359539741535 | etot = -54.4567173508008 +619000 ekin = 9.33634137208541 | erot = 8.64410576157911 | epot = -72.4371644860788 | etot = -54.4567173524143 +620000 ekin = 9.25274239708756 | erot = 8.75706693533138 | epot = -72.4665266856622 | etot = -54.4567173532432 +621000 ekin = 9.13908734781248 | erot = 8.81838549165813 | epot = -72.4141901925553 | etot = -54.4567173530847 +622000 ekin = 9.00413159185615 | erot = 8.82453847239636 | epot = -72.2853874161675 | etot = -54.456717351915 +623000 ekin = 8.86237387262931 | erot = 8.78159044372925 | epot = -72.1006816657179 | etot = -54.4567173493594 +624000 ekin = 8.73233250270114 | erot = 8.70601363406663 | epot = -71.8950634838214 | etot = -54.4567173470537 +625000 ekin = 8.63352260270537 | erot = 8.61836006911987 | epot = -71.7086000163401 | etot = -54.4567173445148 +626000 ekin = 8.58515687058863 | erot = 8.54022417072272 | epot = -71.5820983834213 | etot = -54.4567173421099 +627000 ekin = 8.60386594898203 | erot = 8.49340879468718 | epot = -71.5539920838551 | etot = -54.4567173401859 +628000 ekin = 8.70125272962733 | erot = 8.49697729760153 | epot = -71.6549473663013 | etot = -54.4567173390724 +629000 ekin = 8.88211046284254 | erot = 8.56410343043823 | epot = -71.9029312321935 | etot = -54.4567173389128 +630000 ekin = 9.142461312833 | erot = 8.70144773181049 | epot = -72.3006263845185 | etot = -54.456717339875 +631000 ekin = 9.468374580938 | erot = 8.90764779898911 | epot = -72.8327397225276 | etot = -54.4567173426005 +632000 ekin = 9.83312177173734 | erot = 9.17246776668357 | epot = -73.4623068842449 | etot = -54.456717345824 +633000 ekin = 10.2047873751234 | erot = 9.47797241849862 | epot = -74.1394771430913 | etot = -54.4567173494693 +634000 ekin = 10.5489934613283 | erot = 9.80262636498115 | epot = -74.8083371792022 | etot = -54.4567173528927 +635000 ekin = 10.8335202630285 | erot = 10.1258655273367 | epot = -75.4161031458045 | etot = -54.4567173554393 +636000 ekin = 11.0335668276672 | erot = 10.4324958345106 | epot = -75.9227800187459 | etot = -54.4567173565681 +637000 ekin = 11.1356918483419 | erot = 10.7158485159515 | epot = -76.3082577206544 | etot = -54.456717356361 +638000 ekin = 11.1388069575836 | erot = 10.9775008619056 | epot = -76.5730251745032 | etot = -54.456717355014 +639000 ekin = 11.0524003327262 | erot = 11.2253769821853 | epot = -76.7344946679159 | etot = -54.4567173530044 +640000 ekin = 10.8928630382599 | erot = 11.4709640829734 | epot = -76.8205444720317 | etot = -54.4567173507984 +641000 ekin = 10.6795161167506 | erot = 11.7265694567167 | epot = -76.8628029221806 | etot = -54.4567173487133 +642000 ekin = 10.4316521519997 | erot = 12.0033863745313 | epot = -76.8917558734831 | etot = -54.4567173469521 +643000 ekin = 10.1667694779079 | erot = 12.3102216340097 | epot = -76.9337084574385 | etot = -54.4567173455209 +644000 ekin = 9.90007447735835 | erot = 12.6530565857597 | epot = -77.0098484077146 | etot = -54.4567173445965 +645000 ekin = 9.64408802623023 | erot = 13.0333521361229 | epot = -77.1341575065314 | etot = -54.4567173441782 +646000 ekin = 9.40846495821037 | erot = 13.446884270576 | epot = -77.3120665731115 | etot = -54.4567173443251 +647000 ekin = 9.20006047025728 | erot = 13.8841334486704 | epot = -77.5409112640638 | etot = -54.4567173451361 +648000 ekin = 9.02208271231024 | erot = 14.3287870732609 | epot = -77.8075871321958 | etot = -54.4567173466247 +649000 ekin = 8.87371560217377 | erot = 14.7582675570719 | epot = -78.0887005080209 | etot = -54.4567173487753 +650000 ekin = 8.74973394434129 | erot = 15.1446190956748 | epot = -78.3510703915045 | etot = -54.4567173514884 +651000 ekin = 8.64055354277824 | erot = 15.456197674687 | epot = -78.5534685720233 | etot = -54.4567173545581 +652000 ekin = 8.53295942946815 | erot = 15.6603023870487 | epot = -78.6499791741566 | etot = -54.4567173576397 +653000 ekin = 8.41177726194849 | erot = 15.7268429393637 | epot = -78.5953375615569 | etot = -54.4567173602447 +654000 ekin = 8.26255435899738 | erot = 15.6329185652919 | epot = -78.3521902861014 | etot = -54.4567173618121 +655000 ekin = 8.07486030838614 | erot = 15.3675533060751 | epot = -77.8991309762939 | etot = -54.4567173618327 +656000 ekin = 7.85584872990473 | erot = 14.9356063836805 | epot = -77.2481728999348 | etot = -54.4567177863496 +657000 ekin = 6.2670540018988 | erot = 14.5624207623774 | epot = -75.2861920812074 | etot = -54.4567173169312 +658000 ekin = 6.04203621440511 | erot = 14.8338374902085 | epot = -75.332591284386 | etot = -54.4567175797724 +659000 ekin = 6.38626397395935 | erot = 14.3789536735285 | epot = -75.221934911762 | etot = -54.4567172642741 +660000 ekin = 6.51825323395761 | erot = 13.6086452149817 | epot = -74.5836157134663 | etot = -54.456717264527 +661000 ekin = 6.6610961784344 | erot = 12.8240798503498 | epot = -73.9418932898507 | etot = -54.4567172610665 +662000 ekin = 6.81858404113844 | erot = 12.0684544027732 | epot = -73.3437557024229 | etot = -54.4567172585112 +663000 ekin = 6.99165023050995 | erot = 11.3761522151523 | epot = -72.824519702647 | etot = -54.4567172569848 +664000 ekin = 7.17719978229865 | erot = 10.770609793234 | epot = -72.4045268320221 | etot = -54.4567172564894 +665000 ekin = 7.36750072099867 | erot = 10.2650050778477 | epot = -72.08922305566 | etot = -54.4567172568136 +666000 ekin = 7.5509085313514 | erot = 9.86588701345707 | epot = -71.8735128030129 | etot = -54.4567172582044 +667000 ekin = 7.71548675044036 | erot = 9.56433968480603 | epot = -71.7365436952187 | etot = -54.4567172599723 +668000 ekin = 7.84942783247078 | erot = 9.34349379624979 | epot = -71.6496388907549 | etot = -54.4567172620343 +669000 ekin = 7.94275892173366 | erot = 9.18157787767355 | epot = -71.5810540633531 | etot = -54.4567172639459 +670000 ekin = 7.98895216682981 | erot = 9.05544419067568 | epot = -71.5011136229456 | etot = -54.4567172654401 +671000 ekin = 7.98617320848899 | erot = 8.94354459266666 | epot = -71.3864350674714 | etot = -54.4567172663158 +672000 ekin = 7.93791523097339 | erot = 8.82829898979078 | epot = -71.2229314872407 | etot = -54.4567172664766 +673000 ekin = 7.85355743596615 | erot = 8.6982430977836 | epot = -71.0085177991557 | etot = -54.456717265406 +674000 ekin = 7.74778223222283 | erot = 8.54905666588965 | epot = -70.7535561623678 | etot = -54.4567172642553 +675000 ekin = 7.63634833353771 | erot = 8.38135292474944 | epot = -70.4744185210863 | etot = -54.4567172627992 +676000 ekin = 7.53516291001198 | erot = 8.20022759713448 | epot = -70.1921077684553 | etot = -54.4567172613088 +677000 ekin = 7.45794951914645 | erot = 8.01347239991047 | epot = -69.9281391793211 | etot = -54.4567172602642 +678000 ekin = 7.41073692377504 | erot = 7.82731022274383 | epot = -69.6947644060845 | etot = -54.4567172595657 +679000 ekin = 7.3956939541761 | erot = 7.6480666128801 | epot = -69.5004778263083 | etot = -54.4567172592521 +680000 ekin = 7.4115184631352 | erot = 7.48353806506187 | epot = -69.3517737862543 | etot = -54.4567172580573 +681000 ekin = 7.45301960111475 | erot = 7.34389485533304 | epot = -69.2536317152404 | etot = -54.4567172587926 +682000 ekin = 7.5092276071674 | erot = 7.23034627473376 | epot = -69.1962911416763 | etot = -54.4567172597751 +683000 ekin = 7.56703179131234 | erot = 7.14137901608625 | epot = -69.1651280682368 | etot = -54.4567172608383 +684000 ekin = 7.6133784577155 | erot = 7.07402860505464 | epot = -69.1441243245358 | etot = -54.4567172617657 +685000 ekin = 7.6370692355068 | erot = 7.02480923675523 | epot = -69.1185957348129 | etot = -54.4567172625509 +686000 ekin = 7.63012070152936 | erot = 6.98974489721365 | epot = -69.0765828617828 | etot = -54.4567172630398 +687000 ekin = 7.58847196987618 | erot = 6.9645182618173 | epot = -69.0097074950062 | etot = -54.4567172633128 +688000 ekin = 7.51200727213185 | erot = 6.94458821703858 | epot = -68.9133127522802 | etot = -54.4567172631098 +689000 ekin = 7.40470220584746 | erot = 6.92788077433601 | epot = -68.7893002428668 | etot = -54.4567172626833 +690000 ekin = 7.2735114018564 | erot = 6.91313342460364 | epot = -68.6433620885619 | etot = -54.4567172621018 +691000 ekin = 7.1273993324396 | erot = 6.89961683270119 | epot = -68.4837334265735 | etot = -54.4567172614327 +692000 ekin = 6.97639340738409 | erot = 6.88713701597176 | epot = -68.3202476840878 | etot = -54.456717260732 +693000 ekin = 6.83172646956237 | erot = 6.87668966225714 | epot = -68.1651333908689 | etot = -54.4567172590494 +694000 ekin = 6.70636456506374 | erot = 6.87119415658171 | epot = -68.0342759801826 | etot = -54.4567172585371 +695000 ekin = 6.6079642505311 | erot = 6.87171260019125 | epot = -67.9363941088555 | etot = -54.4567172581332 +696000 ekin = 6.54180332237583 | erot = 6.87956193852472 | epot = -67.8780825187723 | etot = -54.4567172578718 +697000 ekin = 6.51072403245576 | erot = 6.89634898360005 | epot = -67.863790273859 | etot = -54.4567172578032 +698000 ekin = 6.51486325252216 | erot = 6.92352997719932 | epot = -67.8951104879818 | etot = -54.4567172582604 +699000 ekin = 6.55040388684346 | erot = 6.96167022069946 | epot = -67.9687913660279 | etot = -54.456717258485 +700000 ekin = 6.6121585282628 | erot = 7.01154258674288 | epot = -68.0804183739391 | etot = -54.4567172589334 +701000 ekin = 6.69364481782336 | erot = 7.07323470973425 | epot = -68.22359678703 | etot = -54.4567172594724 +702000 ekin = 6.78699610283142 | erot = 7.14577119400644 | epot = -68.3894845569424 | etot = -54.4567172601045 +703000 ekin = 6.88366969337153 | erot = 7.22749691999373 | epot = -68.567883874144 | etot = -54.4567172607787 +704000 ekin = 6.97518890726232 | erot = 7.31588802326638 | epot = -68.7477941919628 | etot = -54.4567172614341 +705000 ekin = 7.05384046082615 | erot = 7.40783149503349 | epot = -68.9183892178659 | etot = -54.4567172620063 +706000 ekin = 7.1132484519367 | erot = 7.5000940326921 | epot = -69.0700597470648 | etot = -54.4567172624361 +707000 ekin = 7.14876450804701 | erot = 7.58991849146167 | epot = -69.1954002621842 | etot = -54.4567172626755 +708000 ekin = 7.15764928629245 | erot = 7.67564119575173 | epot = -69.2900077447402 | etot = -54.456717262696 +709000 ekin = 7.13905930512345 | erot = 7.757204472591 | epot = -69.3529810402078 | etot = -54.4567172624933 +710000 ekin = 7.09387935442471 | erot = 7.83644881069707 | epot = -69.3870454272082 | etot = -54.4567172620864 +711000 ekin = 7.0244446759596 | erot = 7.91710241224915 | epot = -69.3982643497324 | etot = -54.4567172615236 +712000 ekin = 6.93418797429413 | erot = 8.0044413772892 | epot = -69.3953466124448 | etot = -54.4567172608615 +713000 ekin = 6.82724359613869 | erot = 8.10466156446648 | epot = -69.3886224208104 | etot = -54.4567172602053 +714000 ekin = 6.70804581030452 | erot = 8.22386653915046 | epot = -69.3886296090861 | etot = -54.4567172596311 +715000 ekin = 6.58096815991889 | erot = 8.36710453058969 | epot = -69.4047899497292 | etot = -54.4567172592206 +716000 ekin = 6.45005603944762 | erot = 8.53736910172616 | epot = -69.4441424002111 | etot = -54.4567172590373 +717000 ekin = 6.31889522685732 | erot = 8.73472575134746 | epot = -69.5103382373227 | etot = -54.4567172591179 +718000 ekin = 6.19064203156286 | erot = 8.95572089431508 | epot = -69.6030801853378 | etot = -54.4567172594598 +719000 ekin = 6.0682180271129 | erot = 9.1932035682174 | epot = -69.7181388553502 | etot = -54.4567172600199 +720000 ekin = 5.95464760383327 | erot = 9.43665584958345 | epot = -69.8480207141297 | etot = -54.456717260713 +721000 ekin = 5.85348609830537 | erot = 9.67307075503052 | epot = -69.9832741147543 | etot = -54.4567172614184 +722000 ekin = 5.76925126938791 | erot = 9.88829892325627 | epot = -70.1142674546659 | etot = -54.4567172620217 +723000 ekin = 5.70773585553192 | erot = 10.0686021330634 | epot = -70.2330552509752 | etot = -54.4567172623799 +724000 ekin = 5.67606450428522 | erot = 10.2025682810643 | epot = -70.3353500477706 | etot = -54.4567172624211 +725000 ekin = 5.68237542169558 | erot = 10.282593505772 | epot = -70.4216861895975 | etot = -54.4567172621299 +726000 ekin = 5.73506597281358 | erot = 10.305857569948 | epot = -70.4976408043275 | etot = -54.4567172615659 +727000 ekin = 5.84164351928237 | erot = 10.2746192681783 | epot = -70.5729800483047 | etot = -54.456717260844 +728000 ekin = 6.0073687533578 | erot = 10.1958472011005 | epot = -70.6599332145571 | etot = -54.4567172600989 +729000 ekin = 6.23388239567308 | erot = 10.0804050315184 | epot = -70.7710046866831 | etot = -54.4567172594917 +730000 ekin = 6.51810798560694 | erot = 9.94175964622273 | epot = -70.9165848909866 | etot = -54.4567172591569 +731000 ekin = 6.85163923572006 | erot = 9.79445434032714 | epot = -71.1028108352439 | etot = -54.4567172591967 +732000 ekin = 7.22074424892383 | erot = 9.65249486308226 | epot = -71.3299563716739 | etot = -54.4567172596678 +733000 ekin = 7.60696817055788 | erot = 9.5281042285174 | epot = -71.5917896595965 | etot = -54.4567172605213 +734000 ekin = 7.98843781663386 | erot = 9.43013551829001 | epot = -71.8752905967343 | etot = -54.4567172618105 +735000 ekin = 8.34173972940781 | erot = 9.36277858700205 | epot = -72.1612355797593 | etot = -54.4567172633495 +736000 ekin = 8.6440278758694 | erot = 9.32573536300172 | epot = -72.4264805038396 | etot = -54.4567172649685 +737000 ekin = 8.87535498676661 | erot = 9.31467922069703 | epot = -72.6467514739115 | etot = -54.4567172664478 +738000 ekin = 9.0209200187997 | erot = 9.32245328122186 | epot = -72.8000905675755 | etot = -54.456717267554 +739000 ekin = 9.0729502311621 | erot = 9.34080514543739 | epot = -72.8704726446821 | etot = -54.4567172680826 +740000 ekin = 9.03191801001054 | erot = 9.36236057638055 | epot = -72.8509958542847 | etot = -54.4567172678936 +741000 ekin = 8.90683448950978 | erot = 9.38246134467714 | epot = -72.7460131011363 | etot = -54.4567172669494 +742000 ekin = 8.7144873599651 | erot = 9.40037005969976 | epot = -72.5715746850596 | etot = -54.4567172653947 +743000 ekin = 8.47780203517238 | erot = 9.41934825450641 | epot = -72.3538675527427 | etot = -54.4567172630639 +744000 ekin = 8.22394413364553 | erot = 9.44738079429509 | epot = -72.1280421887658 | etot = -54.4567172608252 +745000 ekin = 7.97995720631533 | erot = 9.49389903750132 | epot = -71.9305735025832 | etot = -54.4567172587665 +746000 ekin = 7.76976645073265 | erot = 9.56761523723776 | epot = -71.7940989452355 | etot = -54.4567172572651 +747000 ekin = 7.61167419657528 | erot = 9.6742258343332 | epot = -71.7426172875988 | etot = -54.4567172566903 +748000 ekin = 7.51658612860559 | erot = 9.81263188349218 | epot = -71.7859352693208 | etot = -54.456717257223 +749000 ekin = 7.48573262346974 | erot = 9.97339077048108 | epot = -71.915840652861 | etot = -54.4567172589101 +750000 ekin = 7.51095577906381 | erot = 10.138730860191 | epot = -72.106403900703 | etot = -54.4567172614481 +751000 ekin = 7.57621289890869 | erot = 10.2849285861996 | epot = -72.3178587495214 | etot = -54.4567172644132 +752000 ekin = 7.66072006264762 | erot = 10.3863157071598 | epot = -72.5037530370257 | etot = -54.4567172672183 +753000 ekin = 7.74275043504004 | erot = 10.419629418506 | epot = -72.619097123056 | etot = -54.4567172695099 +754000 ekin = 7.80325401374989 | erot = 10.3685500609919 | epot = -72.6285213451875 | etot = -54.4567172704458 +755000 ekin = 7.83074135616447 | erot = 10.228246958563 | epot = -72.5157055848015 | etot = -54.4567172700741 +756000 ekin = 7.8216430677752 | erot = 10.0059989462675 | epot = -72.2843592825357 | etot = -54.456717268493 +757000 ekin = 7.77995058071358 | erot = 9.72007455918367 | epot = -71.9567424059144 | etot = -54.4567172660171 +758000 ekin = 7.71576193733231 | erot = 9.39663554339804 | epot = -71.569114743751 | etot = -54.4567172630207 +759000 ekin = 7.64335601050446 | erot = 9.06548554812967 | epot = -71.1655588186764 | etot = -54.4567172600423 +760000 ekin = 7.57812578251839 | erot = 8.75574971039739 | epot = -70.7905927503519 | etot = -54.4567172574361 +761000 ekin = 7.5347738470458 | erot = 8.49179690722728 | epot = -70.4832880097503 | etot = -54.4567172554773 +762000 ekin = 7.52580486703051 | erot = 8.29027904918141 | epot = -70.2728011706493 | etot = -54.4567172544374 +763000 ekin = 7.56027219190173 | erot = 8.15788493774223 | epot = -70.1748743838271 | etot = -54.4567172541832 +764000 ekin = 7.64375808866712 | erot = 8.09209341180804 | epot = -70.192568755521 | etot = -54.4567172550458 +765000 ekin = 7.77732533268789 | erot = 8.08087591863538 | epot = -70.3149185076153 | etot = -54.456717256292 +766000 ekin = 7.95932937986269 | erot = 8.10617755734732 | epot = -70.5222241951193 | etot = -54.4567172579093 +767000 ekin = 8.18579174507 | erot = 8.1468327745402 | epot = -70.7893417792868 | etot = -54.4567172596766 +768000 ekin = 8.45095313233048 | erot = 8.18150203238947 | epot = -71.0891724260222 | etot = -54.4567172613023 +769000 ekin = 8.74814097856872 | erot = 8.19192572078243 | epot = -71.3967839618926 | etot = -54.4567172625415 +770000 ekin = 9.06864484883337 | erot = 8.16518273784215 | epot = -71.6905448508566 | etot = -54.4567172641811 +771000 ekin = 9.40152051237963 | erot = 8.09534580342965 | epot = -71.9535835800912 | etot = -54.4567172642819 +772000 ekin = 9.74055140014758 | erot = 7.98665030970658 | epot = -72.1839189737122 | etot = -54.456717263858 +773000 ekin = 10.0800699458974 | erot = 7.85110373964542 | epot = -72.3878909486576 | etot = -54.4567172631147 +774000 ekin = 10.4140305141887 | erot = 7.70610726771234 | epot = -72.5768550442126 | etot = -54.4567172623115 +775000 ekin = 10.7352090238702 | erot = 7.57137133474641 | epot = -72.7632976203061 | etot = -54.4567172616894 +776000 ekin = 11.0347273426372 | erot = 7.46577166843489 | epot = -72.9572162724777 | etot = -54.4567172614056 +777000 ekin = 11.3022272086694 | erot = 7.40478419490446 | epot = -73.1637286650686 | etot = -54.4567172614947 +778000 ekin = 11.5267923325131 | erot = 7.39895687129842 | epot = -73.3824664656885 | etot = -54.456717261877 +779000 ekin = 11.6984431849081 | erot = 7.45346445936768 | epot = -73.6086249066891 | etot = -54.4567172624134 +780000 ekin = 11.8098204310185 | erot = 7.56848658975163 | epot = -73.8350242837125 | etot = -54.4567172629423 +781000 ekin = 11.8576135100164 | erot = 7.74008064719624 | epot = -74.0544114205676 | etot = -54.456717263355 +782000 ekin = 11.843354622401 | erot = 7.96106713730013 | epot = -74.261139023307 | etot = -54.4567172636059 +783000 ekin = 11.773466092508 | erot = 8.22175785627727 | epot = -74.4519412124876 | etot = -54.4567172637024 +784000 ekin = 11.6594880030509 | erot = 8.51068468333472 | epot = -74.6268899497988 | etot = -54.4567172634132 +785000 ekin = 11.5166274256803 | erot = 8.81499326195249 | epot = -74.7883379509651 | etot = -54.4567172633323 +786000 ekin = 11.3609895910229 | erot = 9.12075819547596 | epot = -74.9384650496785 | etot = -54.4567172631797 +787000 ekin = 11.2098737157431 | erot = 9.4141199487952 | epot = -75.0807109274858 | etot = -54.4567172629475 +788000 ekin = 11.080783815695 | erot = 9.68217635157661 | epot = -75.2196774299222 | etot = -54.4567172626505 +789000 ekin = 10.9904701398751 | erot = 9.91392462847478 | epot = -75.3611120306443 | etot = -54.4567172622944 +790000 ekin = 10.9537524860344 | erot = 10.1009165691342 | epot = -75.5113863171584 | etot = -54.4567172619898 +791000 ekin = 10.9817979913698 | erot = 10.2372809089016 | epot = -75.6757961621672 | etot = -54.4567172618958 +792000 ekin = 11.0801481532749 | erot = 10.3193115157086 | epot = -75.8561769311707 | etot = -54.4567172621873 +793000 ekin = 11.2467542974375 | erot = 10.344770000213 | epot = -76.0482415606321 | etot = -54.4567172629816 +794000 ekin = 11.4705768798105 | erot = 10.312315188859 | epot = -76.2396093328906 | etot = -54.4567172642211 +795000 ekin = 11.733102407737 | erot = 10.2218576029472 | epot = -76.4116772763532 | etot = -54.456717265669 +796000 ekin = 12.0104523793572 | erot = 10.0755577767611 | epot = -76.5427274230367 | etot = -54.4567172669184 +797000 ekin = 12.2774168644973 | erot = 9.87947565190563 | epot = -76.6136097839764 | etot = -54.4567172675735 +798000 ekin = 12.51184923474 | erot = 9.64485933476574 | epot = -76.6134258369316 | etot = -54.4567172674259 +799000 ekin = 12.6978284048735 | erot = 9.38805929779039 | epot = -76.542604969205 | etot = -54.4567172665411 +800000 ekin = 12.8267336417013 | erot = 9.12873028579183 | epot = -76.4121811926931 | etot = -54.4567172652 +801000 ekin = 12.8964017894472 | erot = 8.88689375953526 | epot = -76.2400128127339 | etot = -54.4567172637514 +802000 ekin = 12.9092334834948 | erot = 8.67992468171397 | epot = -76.0458754276961 | etot = -54.4567172624874 +803000 ekin = 12.8701763431697 | erot = 8.52035040788718 | epot = -75.8472440126345 | etot = -54.4567172615776 +804000 ekin = 12.7851658304062 | erot = 8.41501298175795 | epot = -75.6568960731657 | etot = -54.4567172610016 +805000 ekin = 12.660041487181 | erot = 8.36523459713533 | epot = -75.4819933451657 | etot = -54.4567172608494 +806000 ekin = 12.5000407944888 | erot = 8.36656829157481 | epot = -75.3233263471994 | etot = -54.4567172611358 +807000 ekin = 12.3098796732018 | erot = 8.40968834838668 | epot = -75.1762852832351 | etot = -54.4567172616467 +808000 ekin = 12.0938131957673 | erot = 8.48342142270803 | epot = -75.0339518808583 | etot = -54.456717262383 +809000 ekin = 11.855746418418 | erot = 8.57397165846824 | epot = -74.8864353400818 | etot = -54.4567172631955 +810000 ekin = 11.5994894992308 | erot = 8.66620690073695 | epot = -74.7224136639664 | etot = -54.4567172639987 +811000 ekin = 11.3289496686299 | erot = 8.74571674833127 | epot = -74.5313836816674 | etot = -54.4567172647062 +812000 ekin = 11.0482743074323 | erot = 8.80005767537732 | epot = -74.3050492480417 | etot = -54.4567172652321 +813000 ekin = 10.7652338995879 | erot = 8.82039840384585 | epot = -74.0423495681397 | etot = -54.4567172647059 +814000 ekin = 10.491599345393 | erot = 8.80333280511247 | epot = -73.7516494161139 | etot = -54.4567172656085 +815000 ekin = 10.1506392602966 | erot = 8.72916604612333 | epot = -73.3365225755524 | etot = -54.4567172691325 +816000 ekin = 10.0078569448266 | erot = 8.6078590322844 | epot = -73.072433255896 | etot = -54.456717278785 +817000 ekin = 9.94168629455641 | erot = 8.48386018509532 | epot = -72.8822637662572 | etot = -54.4567172866055 +818000 ekin = 9.81602541284464 | erot = 8.35562171935582 | epot = -72.6283644162418 | etot = -54.4567172840414 +819000 ekin = 9.72001449698606 | erot = 8.23727756032506 | epot = -72.4140093391615 | etot = -54.4567172818503 +820000 ekin = 9.65393768634831 | erot = 8.15065357777487 | epot = -72.2613085437321 | etot = -54.456717279609 +821000 ekin = 9.62991083867892 | erot = 8.11519232361071 | epot = -72.2018204400444 | etot = -54.4567172777548 +822000 ekin = 9.66070438850672 | erot = 8.14514958891508 | epot = -72.2625712541767 | etot = -54.4567172767549 +823000 ekin = 9.75366113132238 | erot = 8.2472923862444 | epot = -72.4576707944586 | etot = -54.4567172768918 +824000 ekin = 9.90784075220442 | erot = 8.41983721970679 | epot = -72.7843952500946 | etot = -54.4567172781834 +825000 ekin = 10.1134132500794 | erot = 8.65280772349328 | epot = -73.2229382539831 | etot = -54.4567172804104 +826000 ekin = 10.3532272232306 | erot = 8.92957217377799 | epot = -73.7395166802203 | etot = -54.4567172832117 +827000 ekin = 10.6056861232938 | erot = 9.22912189012728 | epot = -74.2915252996209 | etot = -54.4567172861998 +828000 ekin = 10.8478833100547 | erot = 9.52863932137444 | epot = -74.8332399204591 | etot = -54.4567172890299 +829000 ekin = 11.0582941053682 | erot = 9.80604986035545 | epot = -75.3210612571405 | etot = -54.4567172914169 +830000 ekin = 11.218802233765 | erot = 10.0424425697305 | epot = -75.7179620966237 | etot = -54.4567172931282 +831000 ekin = 11.3161133791475 | erot = 10.2243333144541 | epot = -75.9971639875828 | etot = -54.4567172939812 +832000 ekin = 11.3426219926857 | erot = 10.3456446448569 | epot = -76.1449839314125 | etot = -54.4567172938699 +833000 ekin = 11.2966905573002 | erot = 10.4090470942552 | epot = -76.1624549443618 | etot = -54.4567172928064 +834000 ekin = 11.1822293589888 | erot = 10.4261077170764 | epot = -76.0650543670288 | etot = -54.4567172909636 +835000 ekin = 11.007516118298 | erot = 10.4150475473475 | epot = -75.8792809543085 | etot = -54.4567172886631 +836000 ekin = 10.7833649095725 | erot = 10.3987463121013 | epot = -75.6388285079847 | etot = -54.456717286311 +837000 ekin = 10.5209605455866 | erot = 10.4007504685316 | epot = -75.3784282984345 | etot = -54.4567172843164 +838000 ekin = 10.2299052199325 | erot = 10.4407488045102 | epot = -75.127371307417 | etot = -54.4567172829743 +839000 ekin = 9.91700879951234 | erot = 10.5309577036362 | epot = -74.9046837856422 | etot = -54.4567172824936 +840000 ekin = 9.58612989122598 | erot = 10.6748490697653 | epot = -74.7176962435954 | etot = -54.4567172826041 +841000 ekin = 9.23902247601797 | erot = 10.8680222456759 | epot = -74.5637620048616 | etot = -54.4567172831678 +842000 ekin = 8.87682183145439 | erot = 11.0993209654069 | epot = -74.4328600810384 | etot = -54.4567172841771 +843000 ekin = 8.50166697120823 | erot = 11.3515587655238 | epot = -74.309943021544 | etot = -54.456717284812 +844000 ekin = 8.11786122477187 | erot = 11.6086450390288 | epot = -74.1832235489468 | etot = -54.4567172851461 +845000 ekin = 7.73224665953605 | erot = 11.8569199011394 | epot = -74.0458838457577 | etot = -54.4567172850822 +846000 ekin = 7.35386726302661 | erot = 12.0865858113318 | epot = -73.8971703589764 | etot = -54.4567172846179 +847000 ekin = 6.99310483296078 | erot = 12.2927531541356 | epot = -73.742575270915 | etot = -54.4567172838186 +848000 ekin = 6.66064227401819 | erot = 12.4755849218195 | epot = -73.5929444786285 | etot = -54.4567172827908 +849000 ekin = 6.36657021963096 | erot = 12.6396628746056 | epot = -73.4629503758848 | etot = -54.4567172816482 +850000 ekin = 6.11978999358428 | erot = 12.7927789148331 | epot = -73.3692861889307 | etot = -54.4567172805133 +851000 ekin = 5.92769059315122 | erot = 12.9443936749977 | epot = -73.3288015476477 | etot = -54.4567172794987 +852000 ekin = 5.79598233515264 | erot = 13.1040127665475 | epot = -73.3567123804052 | etot = -54.4567172787051 +853000 ekin = 5.72857612922473 | erot = 13.2797145891883 | epot = -73.465007996636 | etot = -54.456717278223 +854000 ekin = 5.72746426144119 | erot = 13.4770198626781 | epot = -73.6612014022099 | etot = -54.4567172780906 +855000 ekin = 5.7926221201218 | erot = 13.6982251276403 | epot = -73.9475645260821 | etot = -54.45671727832 +856000 ekin = 5.92198051767567 | erot = 13.9422405100738 | epot = -74.3209383066334 | etot = -54.456717278884 +857000 ekin = 6.11150866263892 | erot = 14.2048890108794 | epot = -74.7731149532434 | etot = -54.456717279725 +858000 ekin = 6.3554128794462 | erot = 14.4795498832106 | epot = -75.2916800434266 | etot = -54.4567172807698 +859000 ekin = 6.64641352741666 | erot = 14.7579710750353 | epot = -75.8611018843973 | etot = -54.4567172819453 +860000 ekin = 6.97602906176176 | erot = 15.0310494938697 | epot = -76.4637958388347 | etot = -54.4567172832033 +861000 ekin = 7.33478689142115 | erot = 15.2894014997167 | epot = -77.0809056756608 | etot = -54.456717284523 +862000 ekin = 7.71230494059453 | erot = 15.5236284018639 | epot = -77.692650628373 | etot = -54.4567172859146 +863000 ekin = 8.09724291543955 | erot = 15.7243060787791 | epot = -78.2782662816227 | etot = -54.4567172874041 +864000 ekin = 8.4771915669909 | erot = 15.8818501460663 | epot = -78.8157590020617 | etot = -54.4567172890045 +865000 ekin = 8.83862795338403 | erot = 15.9864762743823 | epot = -79.2818215184602 | etot = -54.4567172906939 +866000 ekin = 9.16709499256939 | erot = 16.0284566448153 | epot = -79.6522689297808 | etot = -54.4567172923961 +867000 ekin = 9.44775496531617 | erot = 15.9987710029987 | epot = -79.9032432622897 | etot = -54.4567172939749 +868000 ekin = 9.6664170744331 | erot = 15.8900978286616 | epot = -80.0132321983435 | etot = -54.4567172952488 +869000 ekin = 9.81104759054282 | erot = 15.6979368125003 | epot = -79.9657016990601 | etot = -54.456717296017 +870000 ekin = 9.87363911507953 | erot = 15.4215512161863 | epot = -79.7519076273703 | etot = -54.4567172961045 +871000 ekin = 9.85215986226638 | erot = 15.0644163888267 | epot = -79.3732935464946 | etot = -54.4567172954015 +872000 ekin = 9.75216666239265 | erot = 14.6339832229935 | epot = -78.8428671792867 | etot = -54.4567172939006 +873000 ekin = 9.58760337522076 | erot = 14.1407822457039 | epot = -78.1851029126354 | etot = -54.4567172917107 +874000 ekin = 9.38036224431465 | erot = 13.5971115526464 | epot = -77.4341910860126 | etot = -54.4567172890515 +875000 ekin = 9.1583690804909 | erot = 13.0156613281791 | epot = -76.6307476948981 | etot = -54.4567172862282 +876000 ekin = 8.95224910375881 | erot = 12.4083870186345 | epot = -75.8173534059835 | etot = -54.4567172835902 +877000 ekin = 8.79100811654741 | erot = 11.7858100333618 | epot = -75.0335354313758 | etot = -54.4567172814667 +878000 ekin = 8.69754976343306 | erot = 11.1567995255978 | epot = -74.3110665691266 | etot = -54.4567172800958 +879000 ekin = 8.68509191536562 | erot = 10.528822608113 | epot = -73.6706318030318 | etot = -54.4567172795532 +880000 ekin = 8.75545564717777 | erot = 9.90861257464238 | epot = -73.1207855015467 | etot = -54.4567172797265 +881000 ekin = 8.89970025389319 | erot = 9.30313444737478 | epot = -72.6595519816192 | etot = -54.4567172803512 +882000 ekin = 9.10082855527117 | erot = 8.72061110511921 | epot = -72.278156941492 | etot = -54.4567172811017 +883000 ekin = 9.33764332483114 | erot = 8.17127546242785 | epot = -71.9656360689544 | etot = -54.4567172816955 +884000 ekin = 9.58861580338188 | erot = 7.66753088023467 | epot = -71.7128639655819 | etot = -54.4567172819654 +885000 ekin = 9.83488676084092 | erot = 7.22337392463723 | epot = -71.5149779673575 | etot = -54.4567172818793 +886000 ekin = 10.0620352551567 | erot = 6.85319082653713 | epot = -71.3719433631991 | etot = -54.4567172815053 +887000 ekin = 10.2607068157852 | erot = 6.57023940272128 | epot = -71.2876634994672 | etot = -54.4567172809607 +888000 ekin = 10.4264068596208 | erot = 6.38516766531517 | epot = -71.2682918053188 | etot = -54.4567172803829 +889000 ekin = 10.5587552560681 | erot = 6.30481332826537 | epot = -71.3202858642362 | etot = -54.4567172799027 +890000 ekin = 10.660400957153 | erot = 6.33138191738457 | epot = -71.4485001541795 | etot = -54.456717279642 +891000 ekin = 10.7357341009314 | erot = 6.46201557973017 | epot = -71.6544669603625 | etot = -54.456717279701 +892000 ekin = 10.7895437607956 | erot = 6.68876199668767 | epot = -71.9350230376277 | etot = -54.4567172801445 +893000 ekin = 10.8258166395352 | erot = 6.99898655744732 | epot = -72.2815204779588 | etot = -54.4567172809762 +894000 ekin = 10.8468969134544 | erot = 7.3762819960095 | epot = -72.6798961915935 | etot = -54.4567172821296 +895000 ekin = 10.8531861940648 | erot = 7.80188530605902 | epot = -73.1117887835901 | etot = -54.4567172834663 +896000 ekin = 10.8434432145783 | erot = 8.25651048988296 | epot = -73.5566709892582 | etot = -54.4567172847969 +897000 ekin = 10.8155751276529 | erot = 8.72237163403413 | epot = -73.9946640476099 | etot = -54.4567172859228 +898000 ekin = 10.767662782976 | erot = 9.18505046674875 | epot = -74.409430536412 | etot = -54.4567172866873 +899000 ekin = 10.6988999917894 | erot = 9.63481320602856 | epot = -74.790430484832 | etot = -54.456717287014 +900000 ekin = 10.6101778354415 | erot = 10.0670454033808 | epot = -75.1339405257556 | etot = -54.4567172869334 +901000 ekin = 10.5041792335631 | erot = 10.4816537280782 | epot = -75.4425502482074 | etot = -54.456717286566 +902000 ekin = 10.3850069961039 | erot = 10.8815370479879 | epot = -75.7232613301866 | etot = -54.4567172860948 +903000 ekin = 10.2574985061915 | erot = 11.2704782388129 | epot = -75.9846940307164 | etot = -54.456717285712 +904000 ekin = 10.1264528577835 | erot = 11.6509689580187 | epot = -76.2341391013718 | etot = -54.4567172855695 +905000 ekin = 9.99600212712643 | erot = 12.0224964837842 | epot = -76.4752158966507 | etot = -54.4567172857401 +906000 ekin = 9.86930089573122 | erot = 12.3806889297523 | epot = -76.7067071116865 | etot = -54.4567172862029 +907000 ekin = 9.74860096925809 | erot = 12.7174733297172 | epot = -76.92279158583 | etot = -54.4567172868547 +908000 ekin = 9.63564731433989 | erot = 13.0221203324162 | epot = -77.1144849343097 | etot = -54.4567172875536 +909000 ekin = 9.53221635085886 | erot = 13.2828159174028 | epot = -77.2717495564238 | etot = -54.4567172881622 +910000 ekin = 9.44056511133843 | erot = 13.4883008486278 | epot = -77.385583248554 | etot = -54.4567172885878 +911000 ekin = 9.36359901014175 | erot = 13.629200211069 | epot = -77.4495165100058 | etot = -54.456717288795 +912000 ekin = 9.30468390682152 | erot = 13.6988898091622 | epot = -77.4602910047774 | etot = -54.4567172887937 +913000 ekin = 9.26716675185183 | erot = 13.6939842819864 | epot = -77.4178683224487 | etot = -54.4567172886105 +914000 ekin = 9.25375894933069 | erot = 13.6146373108726 | epot = -77.3251135484751 | etot = -54.4567172882718 +915000 ekin = 9.265942472167 | erot = 13.4647622141606 | epot = -77.1874219741286 | etot = -54.456717287801 +916000 ekin = 9.30349967050416 | erot = 13.2520951427828 | epot = -77.0123121005179 | etot = -54.456717287231 +917000 ekin = 9.36419714227949 | erot = 12.9878926206989 | epot = -76.8088070496005 | etot = -54.4567172866221 +918000 ekin = 9.44361963624214 | erot = 12.6860933859995 | epot = -76.5864303082981 | etot = -54.4567172860564 +919000 ekin = 9.53516188538878 | erot = 12.3619660455222 | epot = -76.3538452165377 | etot = -54.4567172856267 +920000 ekin = 9.6302153355728 | erot = 12.0304853675748 | epot = -76.1174179885498 | etot = -54.4567172854022 +921000 ekin = 9.71859337755521 | erot = 11.70479770819 | epot = -75.8801083711618 | etot = -54.4567172854166 +922000 ekin = 9.78920667212906 | erot = 11.3950992586109 | epot = -75.6410232163825 | etot = -54.4567172856426 +923000 ekin = 9.83094506626224 | erot = 11.1081050699541 | epot = -75.39576742223 | etot = -54.4567172860137 +924000 ekin = 9.83367304677115 | erot = 10.8471196662737 | epot = -75.13750999948 | etot = -54.4567172864352 +925000 ekin = 9.78921982197768 | erot = 10.6125977274222 | epot = -74.8585348361976 | etot = -54.4567172867977 +926000 ekin = 9.69224265479811 | erot = 10.4030278881592 | epot = -74.5519878299579 | etot = -54.4567172870006 +927000 ekin = 9.54086684313772 | erot = 10.215970608909 | epot = -74.2135547390065 | etot = -54.4567172869598 +928000 ekin = 9.33704160539799 | erot = 10.049113171618 | epot = -73.842872063634 | etot = -54.456717286618 +929000 ekin = 9.08657260989333 | erot = 9.90122855057232 | epot = -73.4445184464149 | etot = -54.4567172859493 +930000 ekin = 8.79883716647138 | erot = 9.77291303140251 | epot = -73.0284674828389 | etot = -54.4567172849651 +931000 ekin = 8.48619808320862 | erot = 9.66694330183042 | epot = -72.6098586687716 | etot = -54.4567172837326 +932000 ekin = 8.16314309637535 | erot = 9.58807622102903 | epot = -72.207936599781 | etot = -54.4567172823766 +933000 ekin = 7.84519354297996 | erot = 9.54217917974753 | epot = -71.8440900038035 | etot = -54.456717281076 +934000 ekin = 7.54765679209689 | erot = 9.53474238369921 | epot = -71.539116455835 | etot = -54.4567172800389 +935000 ekin = 7.28433307165894 | erot = 9.56903045433067 | epot = -71.3100808054524 | etot = -54.4567172794628 +936000 ekin = 7.066312850676 | erot = 9.64428867320406 | epot = -71.167318803382 | etot = -54.456717279502 +937000 ekin = 6.9010072119673 | erot = 9.75446862329103 | epot = -71.1121931154852 | etot = -54.4567172802269 +938000 ekin = 6.79154129359436 | erot = 9.88787401266418 | epot = -71.1361325878541 | etot = -54.4567172815956 +939000 ekin = 6.73661249436847 | erot = 10.0281331615685 | epot = -71.2214629393441 | etot = -54.4567172834071 +940000 ekin = 6.73087289994123 | erot = 10.156091356866 | epot = -71.3436815423055 | etot = -54.4567172854983 +941000 ekin = 6.76583136811592 | erot = 10.2524184937916 | epot = -71.4749671493956 | etot = -54.4567172874881 +942000 ekin = 6.83124487460903 | erot = 10.3013419690641 | epot = -71.5893041326923 | etot = -54.4567172890192 +943000 ekin = 6.91692812763227 | erot = 10.2938485499083 | epot = -71.6674939673214 | etot = -54.4567172897808 +944000 ekin = 7.01479645628877 | erot = 10.2298584620993 | epot = -71.7013722079767 | etot = -54.4567172895886 +945000 ekin = 7.12068760755787 | erot = 10.11864719739 | epot = -71.6960520934326 | etot = -54.4567172884847 +946000 ekin = 7.23514614953277 | erot = 9.97707725572987 | epot = -71.6689406920673 | etot = -54.4567172868047 +947000 ekin = 7.36229609113449 | erot = 9.82579824697724 | epot = -71.6448116232399 | etot = -54.4567172851282 +948000 ekin = 7.5066654784363 | erot = 9.68437595393612 | epot = -71.6477587164466 | etot = -54.4567172840742 +949000 ekin = 7.66924616192619 | erot = 9.56691299469446 | epot = -71.6928764406203 | etot = -54.4567172839997 +950000 ekin = 7.84507329856733 | erot = 9.47964218466348 | epot = -71.7814327680629 | etot = -54.4567172848321 +951000 ekin = 8.02398780692388 | erot = 9.42110967883054 | epot = -71.9018147718842 | etot = -54.4567172861297 +952000 ekin = 8.1941768416605 | erot = 9.38438008351819 | epot = -72.0352742125472 | etot = -54.4567172873685 +953000 ekin = 8.346267788022 | erot = 9.35991642815096 | epot = -72.1629015043888 | etot = -54.4567172882158 +954000 ekin = 8.47568923856527 | erot = 9.33789032825475 | epot = -72.2702968554351 | etot = -54.4567172886151 +955000 ekin = 8.58250201859919 | erot = 9.30949114579842 | epot = -72.3487104530905 | etot = -54.4567172886929 +956000 ekin = 8.66948436712674 | erot = 9.26761872824813 | epot = -72.3938203840475 | etot = -54.4567172886726 +957000 ekin = 8.739832657523 | erot = 9.20719774878436 | epot = -72.4037476947865 | etot = -54.4567172884791 +958000 ekin = 8.79545874723552 | erot = 9.126476244584 | epot = -72.378652279995 | etot = -54.4567172881754 +959000 ekin = 8.83619167919023 | erot = 9.02839052826676 | epot = -72.3212994951729 | etot = -54.4567172877159 +960000 ekin = 8.85975167755722 | erot = 8.92106613096496 | epot = -72.2375350955793 | etot = -54.4567172870572 +961000 ekin = 8.86221391090885 | erot = 8.81796977944934 | epot = -72.1369009765478 | etot = -54.4567172861896 +962000 ekin = 8.83870974711557 | erot = 8.73730143651553 | epot = -72.0327284687764 | etot = -54.4567172851453 +963000 ekin = 8.78419063763695 | erot = 8.70062153323996 | epot = -71.9415294548756 | etot = -54.4567172839987 +964000 ekin = 8.69414320506481 | erot = 8.73080443183895 | epot = -71.8816649197731 | etot = -54.4567172828693 +965000 ekin = 8.56518846880189 | erot = 8.84947946883654 | epot = -71.8713852195325 | etot = -54.4567172818941 +966000 ekin = 8.395531843865 | erot = 9.07419585613114 | epot = -71.9264449812332 | etot = -54.4567172812371 +967000 ekin = 8.18525791182074 | erot = 9.41563515999431 | epot = -72.0576103528451 | etot = -54.4567172810301 +968000 ekin = 7.93667478275607 | erot = 9.875203754605 | epot = -72.2685958186773 | etot = -54.4567172813162 +969000 ekin = 7.65450207892527 | erot = 10.4432619151776 | epot = -72.5544812763479 | etot = -54.4567172822451 +970000 ekin = 7.34445294204124 | erot = 11.0999552910906 | epot = -72.9011255166925 | etot = -54.4567172835607 +971000 ekin = 7.01467245164451 | erot = 11.8168528075962 | epot = -73.2882425443051 | etot = -54.4567172850644 +972000 ekin = 6.67605450386153 | erot = 12.5598107323186 | epot = -73.69258252268 | etot = -54.4567172864998 +973000 ekin = 6.34244769973959 | erot = 13.292339627092 | epot = -74.0915046145631 | etot = -54.4567172877315 +974000 ekin = 6.03025176745024 | erot = 13.9789096322743 | epot = -74.4658786881816 | etot = -54.4567172884571 +975000 ekin = 5.75716039266692 | erot = 14.5899381417919 | epot = -74.8038158231207 | etot = -54.4567172886618 +976000 ekin = 5.54124167937354 | erot = 15.1033057452736 | epot = -75.1012647130769 | etot = -54.4567172884298 +977000 ekin = 5.39911082447761 | erot = 15.5049119864332 | epot = -75.360740098856 | etot = -54.4567172879452 +978000 ekin = 5.34386272244975 | erot = 15.7880067440261 | epot = -75.5885867539051 | etot = -54.4567172874293 +979000 ekin = 5.38319930699435 | erot = 15.9517029513751 | epot = -75.7916195454502 | etot = -54.4567172870807 +980000 ekin = 5.51814445206285 | erot = 15.9991910955127 | epot = -75.974052834607 | etot = -54.4567172870314 +981000 ekin = 5.74260488047642 | erot = 15.9361251477645 | epot = -76.1354473155615 | etot = -54.4567172873206 +982000 ekin = 6.04385436983203 | erot = 15.7695224495612 | epot = -76.2700941072787 | etot = -54.4567172878855 +983000 ekin = 6.40384970651062 | erot = 15.5073539290585 | epot = -76.3679209241518 | etot = -54.4567172885826 +984000 ekin = 6.80116238511539 | erot = 15.158811851248 | epot = -76.4166915255777 | etot = -54.4567172892143 +985000 ekin = 7.21323365728782 | erot = 14.7350438440015 | epot = -76.4049947908705 | etot = -54.4567172895812 +986000 ekin = 7.61862562386071 | erot = 14.2499737923667 | epot = -76.3253167057545 | etot = -54.4567172895271 +987000 ekin = 7.99894925438823 | erot = 13.7207610181892 | epot = -76.1764275615598 | etot = -54.4567172889824 +988000 ekin = 8.34021171333252 | erot = 13.1675370959784 | epot = -75.9644660972962 | etot = -54.4567172879853 +989000 ekin = 8.63344275568658 | erot = 12.6122920455365 | epot = -75.7024520878918 | etot = -54.4567172866688 +990000 ekin = 8.87460950487308 | erot = 12.0770718402453 | epot = -75.4083986303363 | etot = -54.4567172852179 +991000 ekin = 9.06396875502587 | erot = 11.5818647058656 | epot = -75.1025507447246 | etot = -54.4567172838331 +992000 ekin = 9.20509314120202 | erot = 11.1426150700437 | epot = -74.8044254939285 | etot = -54.4567172826828 +993000 ekin = 9.30382170788786 | erot = 10.7697167152029 | epot = -74.5302557049708 | etot = -54.4567172818801 +994000 ekin = 9.36733435635714 | erot = 10.4671721138003 | epot = -74.2912237516329 | etot = -54.4567172814754 +995000 ekin = 9.40346085607831 | erot = 10.2324426393021 | epot = -74.0926207768454 | etot = -54.456717281465 +996000 ekin = 9.42024172457918 | erot = 10.056905047134 | epot = -73.9338640535126 | etot = -54.4567172817994 +997000 ekin = 9.42568515134584 | erot = 9.92679732909049 | epot = -73.8091997628356 | etot = -54.4567172823993 +998000 ekin = 9.42763194298499 | erot = 9.82456426529677 | epot = -73.7089134914418 | etot = -54.45671728316 +999000 ekin = 9.43365149694049 | erot = 9.73053828900897 | epot = -73.620907069925 | etot = -54.4567172839756 +1000000 ekin = 9.45092723106241 | erot = 9.62486149933323 | epot = -73.5325060150984 | etot = -54.4567172847028 + 1000000 352.2878 -75.545604 2.0130979 -64.081579 -0.0098473389 39304000 +Loop time of 10.0925 on 4 procs for 1000000 steps with 10 atoms + +Performance: 146.047 ns/day, 0.164 hours/ns, 99083.127 timesteps/s, 990.831 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.3362 | 4.003 | 5.7128 | 49.6 | 39.66 +Bond | 0.12031 | 0.17704 | 0.23635 | 10.9 | 1.75 +Neigh | 0.00676 | 0.006813 | 0.006854 | 0.0 | 0.07 +Comm | 2.2652 | 4.2367 | 5.0428 | 55.8 | 41.98 +Output | 0.062416 | 0.073606 | 0.1045 | 6.6 | 0.73 +Modify | 0.36934 | 0.44375 | 0.5325 | 11.1 | 4.40 +Other | | 1.152 | | | 11.41 + +Nlocal: 2.5 ave 4 max 1 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 9 max 6 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 19 max 5 min +Histogram: 2 1 0 0 0 0 0 0 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:10 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/data.duplex2 new file mode 100644 index 0000000000..78a6fdd51a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/data.duplex2 @@ -0,0 +1,91 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +16 atoms +4 atom types +13 bonds +1 bond types +16 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -5.224492277936935 -5.6003990662830665 3.072035980595378 1 1 1.0016462505133576 0 0 0 +2 2 -3.855482258589815 -8.54410812515585 6.182955020430966 1 1 1.0016462505133576 0 0 0 +3 3 -0.8418698080395857 -10.56041032511679 9.10967975032824 1 1 1.0016462505133576 0 0 0 +4 4 2.502394065492512 -10.715431837829685 12.145744722571814 1 1 1.0016462505133576 0 0 0 +5 1 5.355178690564601 -8.674171903962998 15.067785212133312 1 1 1.0016462505133576 0 0 0 +6 2 6.7305169669220595 -5.763569949980494 18.347908888941284 1 1 1.0016462505133576 0 0 0 +7 3 6.061219006086631 -3.4238594469157198 21.88758604427721 1 1 1.0016462505133576 0 0 0 +8 4 4.001186577913306 -2.576839632838177 26.12300846270287 1 1 1.0016462505133576 0 0 0 +9 1 3.454997351061381 -12.298079702286948 26.05718083554597 2 1 1.0016462505133576 0 0 0 +10 2 -0.2728181587270111 -11.028698363238112 23.169872406755868 2 1 1.0016462505133576 0 0 0 +11 3 -2.692868178466912 -7.73787195036868 20.549852065183913 2 1 1.0016462505133576 0 0 0 +12 4 -3.316857346830113 -4.145374554885233 17.08862230448963 2 1 1.0016462505133576 0 0 0 +13 1 -0.5308965342198838 -0.6095451431748122 13.28229291571604 3 1 1.0016462505133576 0 0 0 +14 2 1.5233668194980015 -0.46991432454420656 8.699204689407908 3 1 1.0016462505133576 0 0 0 +15 3 3.844548159551531 -2.026909836907328 5.074452450044903 3 1 1.0016462505133576 0 0 0 +16 4 4.325141724684425 -4.740799489595668 1.4104749932020408 3 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.00026896558742537556 0.00011298695236274073 0.001242364337461123 0.7538466533118467 -1.2587520584415195 -1.1163576881067447 +2 -0.00019946914535880285 0.0013465785184092233 -0.0009479872206420321 -0.13024003640483983 -0.5006975787807386 0.17048535791572514 +3 -0.0010377647810347322 -0.0006804774738725614 -0.000302697462953215 -0.15638545864527348 -0.2683843524758034 -0.6295604792026762 +4 -0.0011968051721949484 -0.002808404437492725 0.00016214368951061121 -0.7029471277015998 1.2169631204234201 1.42700472482703 +5 -0.0008046113463391788 -0.001142874812754601 -0.0006767129075723855 0.304218367349499 -0.4005571162913614 0.5710347488390389 +6 -0.00023475461149269044 0.000959484075931813 0.0007283860029089665 0.3921776444343422 -2.399417440979843 0.3950910265578085 +7 0.0002545632912247854 -0.00019202725318668095 -0.0007112078778547229 1.4800522749729792 1.8058703404340948 -0.5778414965351256 +8 0.0018887377488028885 -0.0002473511615838234 0.0008120520191337178 0.18841278062652408 0.3347372075847072 -0.5408605905745774 +9 0.0002452564077667799 0.00020601300929708606 6.1033299095680186e-05 0.13966147753401867 -0.0005390290197378453 0.6635632318913824 +10 0.000968244047328249 0.0005529827424647325 -0.00020224034557198784 -0.7235582069719148 -1.9412262416735993 -1.289806869224333 +11 -0.0017543321990246556 -0.000939796984860897 0.0018048542648271923 -1.5775475529872025 -2.0891633737315023 0.40142307521789933 +12 -0.0005934853675296159 0.001116191652783757 4.626275649966328e-05 -1.200961814632207 0.4371811217355096 0.43287366246768927 +13 -0.0007222905985558083 -0.0005767904238661645 0.0006648020330562531 -1.084763819731394 1.1718860080947717 0.2470159472481526 +14 0.0002573730178578412 -0.00182797610679242 -0.00033107273492769625 -0.510496177490122 0.29118940603730814 0.9195837620128926 +15 -0.0010092903785878923 0.0011654195253227475 4.0609661125969864e-05 -0.723803934131871 0.07956576746268508 -1.1413793944128399 +16 -0.0009587558806876301 -0.0004046946607553641 -0.0002343452641922075 0.07373406158203998 -1.3986322243084912 0.4617216556119086 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 9 10 +9 1 10 11 +10 1 11 12 +11 1 13 14 +12 1 14 15 +13 1 15 16 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9964752158482045 -0.053253555733239796 0.011391163807102514 -0.06380787090289707 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9369923833143513 0.11220716044648564 0.06732538499716349 0.3239168400846305 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.797964932091827 0.14473096354527873 0.18374142699366386 0.5554673737937029 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5660864821344559 0.14688275499481052 0.09873742533340191 0.8051226439917721 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.2533023785125306 0.12062313161679827 0.08583012223905846 0.9559922359911086 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.03855807343534716 0.08405913137017908 0.02236505169306371 0.9954632800204194 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.45592844330248017 0.1004550065061007 -0.052524745294758785 0.8827679181910482 +8 9.999999997766462 9.999999997766462 9.999999997766462 0.768021221540491 -0.009582139884533599 0.03658677589040892 -0.63930665074644 +9 9.999999997766462 9.999999997766462 9.999999997766462 -0.23299975754512345 0.688686395231341 0.6747873944883376 -0.12682324016841584 +10 9.999999997766462 9.999999997766462 9.999999997766462 -0.24662061871907232 0.8744456399178389 0.39370836087823996 -0.13970261209395163 +11 9.999999997766462 9.999999997766462 9.999999997766462 -0.087475900850909 0.977367602388229 0.14493549113095577 -0.12686307572668784 +12 9.999999997766462 9.999999997766462 9.999999997766462 -0.03181169300779214 0.9634374984140112 -0.2442360692534371 -0.10547485630879185 +13 9.999999997766462 9.999999997766462 9.999999997766462 -0.032786070696572266 0.7922941528811777 -0.6084214170523915 -0.03191282109962717 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.047188686288341455 0.6316396208287698 -0.7737349519945348 0.011783095844627799 +15 9.999999997766462 9.999999997766462 9.999999997766462 -0.05869980642620335 -0.34229358203414423 0.9376740835056508 0.012519965878508689 +16 9.999999997766462 9.999999997766462 9.999999997766462 -0.08582818143150042 0.0008707732197394232 0.9939540921464659 -0.0684691735853161 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/in.duplex2 new file mode 100644 index 0000000000..83474d62e4 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/in.duplex2 @@ -0,0 +1,71 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..caee1b298f --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 @@ -0,0 +1,1105 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -131.137679785989 | etot = -98.3191045555159 +Per MPI rank memory allocation (min/avg/max) = 7.322 | 7.322 | 7.322 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -132.72638 1.5886993 -115.01736 0.034438461 39304000 +1000 ekin = 16.0002912584478 | erot = 15.4130110640124 | epot = -130.027520323725 | etot = -98.6142180012648 +2000 ekin = 15.5533535250411 | erot = 14.7917296260752 | epot = -129.046610368884 | etot = -98.7015272177675 +3000 ekin = 15.7337839961821 | erot = 14.6842095726446 | epot = -128.328696192996 | etot = -97.9107026241695 +4000 ekin = 15.3482319530843 | erot = 14.1372237687107 | epot = -127.776261802948 | etot = -98.2908060811534 +5000 ekin = 14.9263694483589 | erot = 12.443938366847 | epot = -127.296202022196 | etot = -99.9258942069904 +6000 ekin = 14.0721574322892 | erot = 14.008279091165 | epot = -126.855924907346 | etot = -98.7754883838923 +7000 ekin = 14.1550430881492 | erot = 12.9264438891654 | epot = -126.709078100902 | etot = -99.6275911235871 +8000 ekin = 14.4700082617388 | erot = 12.7980942938229 | epot = -126.72076237707 | etot = -99.4526598215087 +9000 ekin = 13.7935207810181 | erot = 11.1109944089258 | epot = -126.899837825726 | etot = -101.995322635783 +10000 ekin = 13.8730717933148 | erot = 11.5704248326849 | epot = -127.244033240875 | etot = -101.800536614875 +11000 ekin = 13.3507232443761 | erot = 12.9112263667083 | epot = -127.760111494138 | etot = -101.498161883054 +12000 ekin = 13.4086541156856 | erot = 13.8643429386181 | epot = -128.401057480199 | etot = -101.128060425895 +13000 ekin = 13.7941097212275 | erot = 15.1829473516003 | epot = -128.924634303951 | etot = -99.9475772311232 +14000 ekin = 13.7373019772469 | erot = 16.8593959312396 | epot = -129.287018821105 | etot = -98.6903209126183 +15000 ekin = 14.3775667172534 | erot = 15.5179347513432 | epot = -129.421282945982 | etot = -99.5257814773857 +16000 ekin = 13.8847755684525 | erot = 16.5304656056102 | epot = -129.305608895632 | etot = -98.8903677215693 +17000 ekin = 14.2834170163594 | erot = 18.0673540120274 | epot = -129.01182681491 | etot = -96.6610557865233 +18000 ekin = 13.905752827044 | erot = 18.7376551039341 | epot = -128.621578737511 | etot = -95.9781708065332 +19000 ekin = 14.4760834974064 | erot = 17.7902128999092 | epot = -128.117151475392 | etot = -95.8508550780764 +20000 ekin = 15.3937345783259 | erot = 19.8648992029204 | epot = -127.56855463044 | etot = -92.3099208491937 +21000 ekin = 15.7671119393256 | erot = 19.8430380451201 | epot = -127.124003368253 | etot = -91.5138533838069 +22000 ekin = 15.7994783207316 | erot = 19.4784869721879 | epot = -126.816699306327 | etot = -91.5387340134077 +23000 ekin = 16.3483836601625 | erot = 17.0357673010608 | epot = -126.649700985973 | etot = -93.2655500247493 +24000 ekin = 16.1507594840298 | erot = 15.2693364703422 | epot = -126.685461426128 | etot = -95.2653654717559 +25000 ekin = 16.203184519179 | erot = 14.6059430302144 | epot = -126.807847056136 | etot = -95.9987195067425 +26000 ekin = 16.7507819920595 | erot = 15.3659928707758 | epot = -127.061168325559 | etot = -94.9443934627232 +27000 ekin = 17.3027801847627 | erot = 15.0549761447199 | epot = -127.358431293729 | etot = -95.0006749642463 +28000 ekin = 16.7275411326653 | erot = 14.4833693237958 | epot = -127.72825168154 | etot = -96.5173412250786 +29000 ekin = 16.9331906804681 | erot = 14.1732399680703 | epot = -128.314160300347 | etot = -97.2077296518087 +30000 ekin = 17.3979368845819 | erot = 15.0750861896632 | epot = -129.049441921784 | etot = -96.5764188475391 +31000 ekin = 17.9805518710242 | erot = 15.9147863527506 | epot = -129.875453929081 | etot = -95.9801157053065 +32000 ekin = 18.991749110182 | erot = 16.1051463551532 | epot = -130.726992714223 | etot = -95.6300972488879 +33000 ekin = 20.6032790039669 | erot = 18.2127305854676 | epot = -131.442482248633 | etot = -92.6264726591987 +34000 ekin = 20.7015732844057 | erot = 20.3695139053724 | epot = -132.038212296576 | etot = -90.9671251067976 +35000 ekin = 20.6224774217646 | erot = 19.1826782921038 | epot = -132.36647836209 | etot = -92.5613226482212 +36000 ekin = 20.1520537423062 | erot = 17.8179561641377 | epot = -132.366786362955 | etot = -94.3967764565106 +37000 ekin = 19.6565905262906 | erot = 16.3054808375501 | epot = -132.145922204066 | etot = -96.1838508402256 +38000 ekin = 19.9043964212916 | erot = 15.6056111124709 | epot = -131.77788857791 | etot = -96.2678810441475 +39000 ekin = 19.2882958101298 | erot = 15.4027429551991 | epot = -131.213373717576 | etot = -96.5223349522475 +40000 ekin = 18.5691038706094 | erot = 13.0929098923544 | epot = -130.537124768966 | etot = -98.8751110060019 +41000 ekin = 18.1316081462315 | erot = 13.3149957669955 | epot = -130.010011539913 | etot = -98.5634076266863 +42000 ekin = 16.9837403650448 | erot = 16.7094940454199 | epot = -129.655904971791 | etot = -95.9626705613262 +43000 ekin = 16.6349665476583 | erot = 14.3402625718885 | epot = -129.393776619619 | etot = -98.418547500072 +44000 ekin = 15.8682276051288 | erot = 14.7913358635091 | epot = -129.290903327673 | etot = -98.631339859035 +45000 ekin = 15.374715567058 | erot = 14.977371976636 | epot = -129.432162022537 | etot = -99.0800744788433 +46000 ekin = 16.2897580482644 | erot = 16.2176299382166 | epot = -129.612152759202 | etot = -97.1047647727206 +47000 ekin = 15.7516354593177 | erot = 15.4475115771978 | epot = -129.956141906889 | etot = -98.7569948703731 +48000 ekin = 15.4507690861218 | erot = 14.5236736832187 | epot = -130.3940307148 | etot = -100.419587945459 +49000 ekin = 16.2344750706822 | erot = 13.3047207185633 | epot = -130.84669718433 | etot = -101.307501395085 +50000 ekin = 16.974320381226 | erot = 11.9032594834734 | epot = -131.236179316067 | etot = -102.358599451368 +51000 ekin = 17.2827942073029 | erot = 11.4154864948559 | epot = -131.479776782662 | etot = -102.781496080503 +52000 ekin = 18.1014798851337 | erot = 13.1049523637151 | epot = -131.679246819995 | etot = -100.472814571146 +53000 ekin = 17.8363780895838 | erot = 14.2885179417882 | epot = -131.763708181028 | etot = -99.6388121496565 +54000 ekin = 17.8598848344147 | erot = 13.8728193262606 | epot = -131.772814929948 | etot = -100.040110769273 +55000 ekin = 17.8592413500744 | erot = 14.8949775530269 | epot = -131.788674697824 | etot = -99.0344557947223 +56000 ekin = 17.5814377002229 | erot = 14.5440455332349 | epot = -131.675930178395 | etot = -99.5504469449374 +57000 ekin = 17.5694966593012 | erot = 12.6931336033397 | epot = -131.401500646115 | etot = -101.138870383474 +58000 ekin = 16.8071038576405 | erot = 12.7212915633872 | epot = -131.028272581344 | etot = -101.499877160317 +59000 ekin = 16.1422224289164 | erot = 14.2423694840757 | epot = -130.526951561124 | etot = -100.142359648132 +60000 ekin = 16.1183208468105 | erot = 15.2534297133036 | epot = -129.877962750013 | etot = -98.5062121898987 +61000 ekin = 15.8468789930106 | erot = 15.1008931337113 | epot = -129.107716413246 | etot = -98.1599442865238 +62000 ekin = 15.5108881063089 | erot = 13.2610118920851 | epot = -128.242062813497 | etot = -99.4701628151025 +63000 ekin = 15.6866053841808 | erot = 13.2559649896144 | epot = -127.370136974907 | etot = -98.4275666011119 +64000 ekin = 16.3650311075986 | erot = 13.0247193745828 | epot = -126.81154472196 | etot = -97.4217942397782 +65000 ekin = 16.217921452927 | erot = 12.3591320054664 | epot = -126.401331482561 | etot = -97.8242780241672 +66000 ekin = 15.3952746105419 | erot = 12.3832665394644 | epot = -126.246883127669 | etot = -98.4683419776623 +67000 ekin = 15.3668510897215 | erot = 14.5485753507038 | epot = -126.332363292344 | etot = -96.4169368519185 +68000 ekin = 14.8298516167412 | erot = 12.6826894448494 | epot = -126.499589453513 | etot = -98.9870483919221 +69000 ekin = 14.4197557600489 | erot = 13.0250391104792 | epot = -126.686977344856 | etot = -99.2421824743277 +70000 ekin = 14.4530539036206 | erot = 11.6611565262399 | epot = -126.836765346542 | etot = -100.722554916682 +71000 ekin = 14.4961247230087 | erot = 11.0649797539566 | epot = -127.014655125463 | etot = -101.453550648498 +72000 ekin = 14.9071629587059 | erot = 9.53168845128428 | epot = -127.281977581188 | etot = -102.843126171198 +73000 ekin = 16.0169617863648 | erot = 11.2607729989771 | epot = -127.583014326462 | etot = -100.30527954112 +74000 ekin = 16.2569393274987 | erot = 11.8334160482446 | epot = -127.818314339837 | etot = -99.7279589640935 +75000 ekin = 16.8670757324127 | erot = 12.4213486471541 | epot = -128.029735422439 | etot = -98.7413110428726 +76000 ekin = 17.2976336472792 | erot = 12.879667512141 | epot = -128.139997635216 | etot = -97.9626964757962 +77000 ekin = 18.9931403596589 | erot = 11.9221218276246 | epot = -128.052440626273 | etot = -97.1371784389893 +78000 ekin = 19.394659905772 | erot = 12.1596842130888 | epot = -127.76770141798 | etot = -96.2133572991196 +79000 ekin = 19.7391494083177 | erot = 12.9687576857251 | epot = -127.276778614558 | etot = -94.5688715205149 +80000 ekin = 19.3784743185415 | erot = 10.6322882254241 | epot = -126.796792973285 | etot = -96.7860304293193 +81000 ekin = 19.5852720432779 | erot = 9.69691370921807 | epot = -126.444229916257 | etot = -97.1620441637614 +82000 ekin = 19.2528014767837 | erot = 9.16533538275201 | epot = -126.419751672762 | etot = -98.0016148132264 +83000 ekin = 19.2726394261073 | erot = 10.5733782728441 | epot = -126.649102059466 | etot = -96.8030843605145 +84000 ekin = 19.4901256787956 | erot = 10.2566570330584 | epot = -126.969410464622 | etot = -97.2226277527679 +85000 ekin = 19.3717582209146 | erot = 10.2207007723129 | epot = -127.279479509792 | etot = -97.6870205165645 +86000 ekin = 20.1169646940559 | erot = 12.2331608931121 | epot = -127.669894380001 | etot = -95.3197687928331 +87000 ekin = 19.8199316335769 | erot = 12.6055320729838 | epot = -128.209799664864 | etot = -95.7843359583029 +88000 ekin = 20.1143482830516 | erot = 11.2392321140212 | epot = -129.003860885668 | etot = -97.6502804885948 +89000 ekin = 20.2912810198292 | erot = 10.3771111810482 | epot = -129.862921520447 | etot = -99.1945293195698 +90000 ekin = 21.2385708389402 | erot = 12.5546025693475 | epot = -130.937191073068 | etot = -97.1440176647801 +91000 ekin = 21.2084155909481 | erot = 14.436661012157 | epot = -132.067716247902 | etot = -96.4226396447972 +92000 ekin = 21.71873003754 | erot = 15.8603151651083 | epot = -133.245555158888 | etot = -95.6665099562398 +93000 ekin = 22.1317495382794 | erot = 15.6295367194274 | epot = -134.200273553933 | etot = -96.4389872962266 +94000 ekin = 21.949719023268 | erot = 14.6383852953061 | epot = -134.922496598838 | etot = -98.3343922802639 +95000 ekin = 21.468800110721 | erot = 15.5094419013228 | epot = -135.565235686649 | etot = -98.5869936746055 +96000 ekin = 21.0494524849867 | erot = 16.2349068795399 | epot = -136.032384853513 | etot = -98.7480254889863 +97000 ekin = 20.7022343863734 | erot = 16.3930105482435 | epot = -136.280776864423 | etot = -99.1855319298058 +98000 ekin = 20.0586507158573 | erot = 15.7422390985769 | epot = -136.24083928734 | etot = -100.439949472906 +99000 ekin = 18.9200848479137 | erot = 16.9075669037859 | epot = -136.045266794452 | etot = -100.217615042752 +100000 ekin = 17.8102741519931 | erot = 16.9898477309619 | epot = -135.820697365174 | etot = -101.020575482219 +101000 ekin = 16.7191861190764 | erot = 16.572117698704 | epot = -135.367559627769 | etot = -102.076255809988 +102000 ekin = 15.5604601147527 | erot = 18.7393309186972 | epot = -134.606463333772 | etot = -100.306672300322 +103000 ekin = 15.043766004853 | erot = 18.6887446608384 | epot = -133.629407863476 | etot = -99.8968971977843 +104000 ekin = 14.2309904924867 | erot = 16.7585227469162 | epot = -132.657529916021 | etot = -101.668016676618 +105000 ekin = 13.5307342972836 | erot = 14.2329071196199 | epot = -131.710640738879 | etot = -103.946999321976 +106000 ekin = 12.7588190389982 | erot = 12.5675515841715 | epot = -131.062722179269 | etot = -105.736351556099 +107000 ekin = 12.2848069136798 | erot = 13.8288267188167 | epot = -130.665821320327 | etot = -104.552187687831 +108000 ekin = 12.8978548254809 | erot = 14.6573820266306 | epot = -130.544172595275 | etot = -102.988935743164 +109000 ekin = 12.9066390538737 | erot = 14.2468668334229 | epot = -130.69655634357 | etot = -103.543050456274 +110000 ekin = 13.5825831993828 | erot = 12.0551466952966 | epot = -131.153439888024 | etot = -105.515709993345 +111000 ekin = 14.4468776745219 | erot = 12.4348555024264 | epot = -131.878599317061 | etot = -104.996866140112 +112000 ekin = 15.2148666281821 | erot = 12.2384602080734 | epot = -132.638387064263 | etot = -105.185060228007 +113000 ekin = 15.8160811574652 | erot = 11.0065173851632 | epot = -133.382963297375 | etot = -106.560364754746 +114000 ekin = 16.4085569951633 | erot = 12.3376379377087 | epot = -134.005415783613 | etot = -105.259220850741 +115000 ekin = 16.4020966917755 | erot = 13.1540800498664 | epot = -134.641649425681 | etot = -105.085472684039 +116000 ekin = 16.8996004253809 | erot = 13.296911620848 | epot = -135.229810156526 | etot = -105.033298110297 +117000 ekin = 17.1887029044031 | erot = 14.2289002418826 | epot = -135.754078163037 | etot = -104.336475016752 +118000 ekin = 17.5090683674025 | erot = 13.4749070837834 | epot = -136.19297997047 | etot = -105.209004519284 +119000 ekin = 19.0558350472289 | erot = 13.2667454261941 | epot = -136.458998196109 | etot = -104.136417722686 +120000 ekin = 18.9045500154951 | erot = 13.4435679533703 | epot = -136.568097306505 | etot = -104.219979337639 +121000 ekin = 19.2557939304512 | erot = 14.4339693154683 | epot = -136.569048606398 | etot = -102.879285360479 +122000 ekin = 18.8865007741635 | erot = 13.6663074510193 | epot = -136.587605250461 | etot = -104.034797025279 +123000 ekin = 18.7137166321052 | erot = 11.169333805289 | epot = -136.646720786768 | etot = -106.763670349374 +124000 ekin = 18.3218148265107 | erot = 12.3689492421929 | epot = -136.64304942624 | etot = -105.952285357536 +125000 ekin = 17.9902568889492 | erot = 10.4651260036653 | epot = -136.608097596548 | etot = -108.152714703934 +126000 ekin = 17.6810494767023 | erot = 11.2690108811725 | epot = -136.570395380905 | etot = -107.62033502303 +127000 ekin = 17.8729038850439 | erot = 11.4759215374361 | epot = -136.391207617742 | etot = -107.042382195262 +128000 ekin = 18.2989451975646 | erot = 11.8732548028112 | epot = -136.265155167301 | etot = -106.092955166925 +129000 ekin = 17.9032951218842 | erot = 11.6160534805629 | epot = -136.069640494141 | etot = -106.550291891694 +130000 ekin = 16.9045975355621 | erot = 14.9262955299882 | epot = -135.688547941966 | etot = -103.857654876415 +131000 ekin = 16.2349308565787 | erot = 16.1403468239481 | epot = -135.10681866779 | etot = -102.731540987263 +132000 ekin = 15.6332820235376 | erot = 15.0630053125927 | epot = -134.181800815943 | etot = -103.485513479812 +133000 ekin = 15.7009729678023 | erot = 14.2528271870486 | epot = -132.916499565398 | etot = -102.962699410548 +134000 ekin = 14.9315011699325 | erot = 12.4915114384226 | epot = -131.575630200091 | etot = -104.152617591736 +135000 ekin = 14.8045596171802 | erot = 12.8071231802165 | epot = -130.318367864972 | etot = -102.706685067575 +136000 ekin = 15.0986027791077 | erot = 10.3883791876898 | epot = -129.220547878708 | etot = -103.733565911911 +137000 ekin = 15.3176346759751 | erot = 10.4825340194199 | epot = -128.412442913985 | etot = -102.61227421859 +138000 ekin = 15.0740242341681 | erot = 11.4385668785644 | epot = -127.819127774961 | etot = -101.306536662228 +139000 ekin = 15.3573672627478 | erot = 10.7684531712248 | epot = -127.494497268646 | etot = -101.368676834673 +140000 ekin = 15.6199088724475 | erot = 9.04566079561385 | epot = -127.38675330942 | etot = -102.721183641359 +141000 ekin = 15.5698778978445 | erot = 9.24310378273314 | epot = -127.464223511521 | etot = -102.651241830943 +142000 ekin = 15.0115449600326 | erot = 10.0113260240699 | epot = -127.712250221221 | etot = -102.689379237119 +143000 ekin = 14.8991843032077 | erot = 9.06970244498392 | epot = -128.136878896406 | etot = -104.167992148215 +144000 ekin = 15.1898171101041 | erot = 10.8668122423024 | epot = -128.858201876452 | etot = -102.801572524046 +145000 ekin = 15.3171573114553 | erot = 12.7878827054972 | epot = -129.647569384495 | etot = -101.542529367543 +146000 ekin = 15.9413992219932 | erot = 13.4735306574188 | epot = -130.234770564237 | etot = -100.819840684825 +147000 ekin = 16.0347198576474 | erot = 15.2458163610442 | epot = -130.576336429324 | etot = -99.295800210632 +148000 ekin = 16.7791528014655 | erot = 15.4906262875814 | epot = -130.69472449657 | etot = -98.4249454075234 +149000 ekin = 16.3974490292734 | erot = 13.8758696818836 | epot = -130.734343874237 | etot = -100.46102516308 +150000 ekin = 16.0380854312512 | erot = 14.4637229471481 | epot = -130.553161201443 | etot = -100.051352823044 +151000 ekin = 15.8946438576778 | erot = 14.2701384636695 | epot = -129.365628155838 | etot = -99.2008458344912 +152000 ekin = 15.9244818270971 | erot = 15.1347805649692 | epot = -128.715889634918 | etot = -97.6566272428514 +153000 ekin = 16.1479991430796 | erot = 16.2402011023445 | epot = -129.650834574842 | etot = -97.2626343294183 +154000 ekin = 16.6917314371582 | erot = 16.451832508432 | epot = -130.087230811386 | etot = -96.9436668657962 +155000 ekin = 16.2489098122788 | erot = 17.2157917300678 | epot = -129.559076328912 | etot = -96.0943747865656 +156000 ekin = 15.8423098858465 | erot = 16.5702905283791 | epot = -128.955263004383 | etot = -96.5426625901579 +157000 ekin = 15.2853301639819 | erot = 16.1544241722267 | epot = -128.325555922222 | etot = -96.8858015860138 +158000 ekin = 15.3551884809801 | erot = 16.3192694941534 | epot = -127.806205056443 | etot = -96.1317470813092 +159000 ekin = 15.2508248933275 | erot = 17.4482804319322 | epot = -127.421417710431 | etot = -94.7223123851718 +160000 ekin = 15.1833265141526 | erot = 16.7226535455955 | epot = -127.059746301972 | etot = -95.153766242224 +161000 ekin = 14.7380410492237 | erot = 17.329552553938 | epot = -126.786115621944 | etot = -94.7185220187828 +162000 ekin = 15.0014487927904 | erot = 15.3205308979557 | epot = -126.5574162697 | etot = -96.2354365789538 +163000 ekin = 15.0312059815085 | erot = 14.803202250397 | epot = -126.515068752591 | etot = -96.6806605206855 +164000 ekin = 15.0902427307857 | erot = 13.9580872796748 | epot = -126.642563682153 | etot = -97.594233671693 +165000 ekin = 15.481282446002 | erot = 12.6743787504216 | epot = -126.905859153793 | etot = -98.750197957369 +166000 ekin = 16.0608755355545 | erot = 12.3086848707364 | epot = -127.24911338436 | etot = -98.8795529780688 +167000 ekin = 16.2282316088892 | erot = 12.6143211413337 | epot = -127.683675953027 | etot = -98.8411232028041 +168000 ekin = 16.3389435120181 | erot = 12.8827177881545 | epot = -128.23863628333 | etot = -99.0169749831576 +169000 ekin = 16.9532736782907 | erot = 11.7574256374146 | epot = -128.746548281825 | etot = -100.035848966119 +170000 ekin = 18.2540588255421 | erot = 11.4722914498663 | epot = -129.244632914848 | etot = -99.5182826394401 +171000 ekin = 19.1497515906143 | erot = 9.49869493296074 | epot = -129.744877695631 | etot = -101.096431172056 +172000 ekin = 20.0681191250966 | erot = 9.95519996138493 | epot = -130.152728743129 | etot = -100.129409656648 +173000 ekin = 20.3331863851461 | erot = 11.2046910177818 | epot = -130.438278432724 | etot = -98.9004010297965 +174000 ekin = 20.6529243059645 | erot = 11.7240396464557 | epot = -130.610859886778 | etot = -98.2338959343579 +175000 ekin = 20.7286579041432 | erot = 9.29182363661769 | epot = -130.472756798948 | etot = -100.452275258187 +176000 ekin = 19.1181096676417 | erot = 9.23346759201931 | epot = -130.161831508159 | etot = -101.810254248498 +177000 ekin = 18.6791037094626 | erot = 7.67821204772778 | epot = -129.600557171612 | etot = -103.243241414421 +178000 ekin = 18.2871156893105 | erot = 7.56184967577425 | epot = -128.974796857575 | etot = -103.125831492491 +179000 ekin = 18.043015789403 | erot = 9.37993265109908 | epot = -128.33568973733 | etot = -100.912741296828 +180000 ekin = 18.0964905790507 | erot = 9.99801977043647 | epot = -127.679401629723 | etot = -99.5848912802359 +181000 ekin = 17.0120997756123 | erot = 10.4535491853832 | epot = -127.217825960243 | etot = -99.7521769992471 +182000 ekin = 16.3473936279656 | erot = 10.761354749287 | epot = -126.905304899434 | etot = -99.7965565221812 +183000 ekin = 16.4609643727092 | erot = 10.8354988012549 | epot = -126.556207283471 | etot = -99.2597441095067 +184000 ekin = 16.0469067177505 | erot = 11.109442164242 | epot = -126.247810862301 | etot = -99.0914619803086 +185000 ekin = 15.6202500798552 | erot = 12.3669619352056 | epot = -126.096968425562 | etot = -98.109756410501 +186000 ekin = 15.1924452621001 | erot = 12.8295056259982 | epot = -125.968901879549 | etot = -97.946950991451 +187000 ekin = 14.7771944109672 | erot = 12.6493832440545 | epot = -126.106569826735 | etot = -98.6799921717135 +188000 ekin = 14.3207779227598 | erot = 13.6116854714263 | epot = -126.402203973973 | etot = -98.4697405797871 +189000 ekin = 13.385260119371 | erot = 13.8479820839096 | epot = -126.775222723285 | etot = -99.5419805200042 +190000 ekin = 13.5514846421718 | erot = 14.6728282356554 | epot = -127.365057872334 | etot = -99.140744994507 +191000 ekin = 14.2360401850254 | erot = 15.8334204771094 | epot = -127.88954605325 | etot = -97.8200853911154 +192000 ekin = 14.0394062170729 | erot = 18.6498901434561 | epot = -128.443582464875 | etot = -95.754286104346 +193000 ekin = 13.9057228894394 | erot = 18.8750739063564 | epot = -128.948119462078 | etot = -96.1673226662823 +194000 ekin = 14.1078589447328 | erot = 22.3833421748141 | epot = -129.3945413397 | etot = -92.9033402201531 +195000 ekin = 13.5757179047645 | erot = 25.2041428404574 | epot = -129.660083110115 | etot = -90.8802223648927 +196000 ekin = 13.4159639631571 | erot = 25.0155233968615 | epot = -129.591217872059 | etot = -91.1597305120399 +197000 ekin = 12.7331825620695 | erot = 23.6181766985819 | epot = -129.274693665 | etot = -92.9233344043489 +198000 ekin = 12.5238727214166 | erot = 20.6772199687304 | epot = -128.852316296547 | etot = -95.6512236064 +199000 ekin = 12.3353111593904 | erot = 18.0354427762159 | epot = -128.513210124739 | etot = -98.1424561891331 +200000 ekin = 12.3733317169889 | erot = 18.8116130335414 | epot = -128.331355786181 | etot = -97.1464110356508 +201000 ekin = 13.2940290718405 | erot = 15.9786030977858 | epot = -128.411423714828 | etot = -99.1387915452015 +202000 ekin = 13.2038790800745 | erot = 16.1428217321254 | epot = -128.572901959575 | etot = -99.2262011473754 +203000 ekin = 13.6834241382204 | erot = 14.7859534761891 | epot = -128.748093246908 | etot = -100.278715632499 +204000 ekin = 13.4726523769991 | erot = 14.9049225906812 | epot = -128.999005210395 | etot = -100.621430242714 +205000 ekin = 14.312738708907 | erot = 15.6330075134966 | epot = -129.273568080049 | etot = -99.3278218576454 +206000 ekin = 14.9985564010157 | erot = 15.2142768714429 | epot = -129.499986068484 | etot = -99.2871527960254 +207000 ekin = 15.2486951661946 | erot = 13.8132121356488 | epot = -129.843774815407 | etot = -100.781867513563 +208000 ekin = 15.5979820144755 | erot = 12.5704782835112 | epot = -129.908177320465 | etot = -101.739717022479 +209000 ekin = 15.9388640690578 | erot = 12.489018324278 | epot = -130.201081837909 | etot = -101.773199444573 +210000 ekin = 16.8762349462909 | erot = 12.7190509274418 | epot = -131.145026574916 | etot = -101.549740701184 +211000 ekin = 17.4220344404586 | erot = 12.6471677876529 | epot = -132.519387999437 | etot = -102.450185771325 +212000 ekin = 17.9158339611631 | erot = 14.2816709902002 | epot = -133.564060958952 | etot = -101.366556007588 +213000 ekin = 18.6791844656338 | erot = 14.7410608598078 | epot = -134.521756200711 | etot = -101.10151087527 +214000 ekin = 19.3123062163582 | erot = 14.0028524424837 | epot = -135.374158066027 | etot = -102.058999407186 +215000 ekin = 19.4134189144043 | erot = 13.4900891515746 | epot = -135.986326780715 | etot = -103.082818714736 +216000 ekin = 19.8944087115707 | erot = 13.4198267426885 | epot = -136.475272377482 | etot = -103.161036923223 +217000 ekin = 20.3143700135294 | erot = 14.6569915101503 | epot = -136.826129411951 | etot = -101.854767888271 +218000 ekin = 20.5260831833942 | erot = 14.3225070474492 | epot = -136.955719311893 | etot = -102.107129081049 +219000 ekin = 20.0261261099089 | erot = 14.0855117453547 | epot = -137.045898242291 | etot = -102.934260387027 +220000 ekin = 19.5772178023657 | erot = 14.8079025538451 | epot = -137.035690586438 | etot = -102.650570230227 +221000 ekin = 19.0686644538266 | erot = 15.7270830972781 | epot = -136.797883254277 | etot = -102.002135703172 +222000 ekin = 18.2092174924555 | erot = 15.4615482209608 | epot = -136.39657978212 | etot = -102.725814068703 +223000 ekin = 17.9697270507782 | erot = 16.1464066152582 | epot = -135.801551344766 | etot = -101.68541767873 +224000 ekin = 17.7178255154891 | erot = 16.0656630046494 | epot = -135.167568318264 | etot = -101.384079798125 +225000 ekin = 17.3477532062982 | erot = 16.1544999122399 | epot = -134.802495354868 | etot = -101.30024223633 +226000 ekin = 16.6517061779647 | erot = 15.1979683929058 | epot = -134.798630887109 | etot = -102.948956316239 +227000 ekin = 16.5149238351976 | erot = 13.734679973746 | epot = -135.011165815353 | etot = -104.761562006409 +228000 ekin = 16.5975136787034 | erot = 13.5550357367901 | epot = -135.44882457975 | etot = -105.296275164256 +229000 ekin = 16.4664582112495 | erot = 14.2645570036993 | epot = -135.928480049796 | etot = -105.197464834847 +230000 ekin = 16.9589676053995 | erot = 14.4619844215598 | epot = -136.29006123152 | etot = -104.86910920456 +231000 ekin = 17.444530146953 | erot = 16.5760137368524 | epot = -136.464945197664 | etot = -102.444401313858 +232000 ekin = 17.4720797716795 | erot = 13.9037237803607 | epot = -136.377600567084 | etot = -105.001797015044 +233000 ekin = 17.1305119969797 | erot = 12.9940728716144 | epot = -136.045491235421 | etot = -105.920906366826 +234000 ekin = 17.3941720895486 | erot = 12.3971971519277 | epot = -135.524764844421 | etot = -105.733395602945 +235000 ekin = 17.2222918114377 | erot = 11.1795795703929 | epot = -135.112434520214 | etot = -106.710563138383 +236000 ekin = 16.9622450999128 | erot = 11.50173508147 | epot = -134.562992360186 | etot = -106.099012178803 +237000 ekin = 16.5431140101905 | erot = 11.9685358265296 | epot = -133.810906450387 | etot = -105.299256613667 +238000 ekin = 16.5518547445294 | erot = 11.0722705438122 | epot = -133.199095342347 | etot = -105.574970054005 +239000 ekin = 16.2543912576344 | erot = 10.8806497272305 | epot = -132.982555090604 | etot = -105.847514105739 +240000 ekin = 16.0314195713285 | erot = 12.4496344754948 | epot = -133.046699057712 | etot = -104.565645010888 +241000 ekin = 16.1924009690743 | erot = 14.0898563327293 | epot = -133.406445180049 | etot = -103.124187878245 +242000 ekin = 16.3502244599483 | erot = 16.0736417497567 | epot = -133.977527530223 | etot = -101.553661320518 +243000 ekin = 15.8307360625516 | erot = 18.4098416555442 | epot = -134.768966704509 | etot = -100.528388986413 +244000 ekin = 15.5660987903881 | erot = 18.216424446668 | epot = -135.704771720512 | etot = -101.922248483456 +245000 ekin = 15.0206879832057 | erot = 18.3347125890275 | epot = -136.709866936058 | etot = -103.354466363825 +246000 ekin = 14.5983592669302 | erot = 17.2791372467644 | epot = -137.659912920669 | etot = -105.782416406974 +247000 ekin = 14.1389633248416 | erot = 17.8322351386096 | epot = -138.411568752716 | etot = -106.440370289265 +248000 ekin = 14.0556558873111 | erot = 15.6482142940717 | epot = -138.969271581399 | etot = -109.265401400016 +249000 ekin = 13.9871814152265 | erot = 15.1488259769451 | epot = -139.233103913672 | etot = -110.0970965215 +250000 ekin = 13.0889756322674 | erot = 15.0994464326628 | epot = -139.151301578144 | etot = -110.962879513214 +251000 ekin = 13.1265133320355 | erot = 15.1671673579225 | epot = -138.834287785767 | etot = -110.540607095809 +252000 ekin = 13.6807409207044 | erot = 13.5786302525258 | epot = -138.504314451182 | etot = -111.244943277952 +253000 ekin = 13.3626877424682 | erot = 15.9553236397028 | epot = -138.160123882558 | etot = -108.842112500387 +254000 ekin = 13.1819154618248 | erot = 16.8128591383959 | epot = -137.798880274068 | etot = -107.804105673847 +255000 ekin = 13.0646354839786 | erot = 17.1265318147002 | epot = -137.431415416262 | etot = -107.240248117583 +256000 ekin = 12.5455352336142 | erot = 15.0691738093945 | epot = -137.037269359459 | etot = -109.422560316451 +257000 ekin = 12.4610621922096 | erot = 15.3244442994292 | epot = -136.650137111473 | etot = -108.864630619834 +258000 ekin = 13.0934983821441 | erot = 12.7478447445714 | epot = -136.179917609462 | etot = -110.338574482747 +259000 ekin = 13.1927221115934 | erot = 12.3903494092558 | epot = -135.770628179201 | etot = -110.187556658352 +260000 ekin = 13.2941157489993 | erot = 11.22688430765 | epot = -135.451558075777 | etot = -110.930558019128 +261000 ekin = 13.3169193064141 | erot = 10.1699688960191 | epot = -135.237869432726 | etot = -111.750981230293 +262000 ekin = 14.3711228423067 | erot = 10.4503987705639 | epot = -135.113914031243 | etot = -110.292392418373 +263000 ekin = 15.1617681926543 | erot = 9.76935646696164 | epot = -135.118250431521 | etot = -110.187125771906 +264000 ekin = 15.6249686448438 | erot = 9.54663847149783 | epot = -135.300018145263 | etot = -110.128411028921 +265000 ekin = 15.7070435934641 | erot = 9.62497037452938 | epot = -135.636255277972 | etot = -110.304241309979 +266000 ekin = 15.8792704002142 | erot = 11.3471449824637 | epot = -136.133743198173 | etot = -108.907327815495 +267000 ekin = 16.9884321303562 | erot = 11.7427982683644 | epot = -136.655021558832 | etot = -107.923791160112 +268000 ekin = 17.2245327247186 | erot = 13.3186954001273 | epot = -137.191242260107 | etot = -106.648014135262 +269000 ekin = 17.6491304051601 | erot = 14.088257284035 | epot = -137.597464707406 | etot = -105.860077018211 +270000 ekin = 19.0828861152192 | erot = 13.8308394104387 | epot = -137.711801575054 | etot = -104.798076049396 +271000 ekin = 19.7133229003058 | erot = 13.0047824303646 | epot = -137.668061575719 | etot = -104.949956245049 +272000 ekin = 20.1809313158975 | erot = 13.5694407845615 | epot = -137.453986195083 | etot = -103.703614094624 +273000 ekin = 20.5379119616857 | erot = 13.896572634632 | epot = -137.108139763831 | etot = -102.673655167513 +274000 ekin = 19.6672280108431 | erot = 14.0368019105876 | epot = -136.556049686856 | etot = -102.852019765425 +275000 ekin = 19.1151518991178 | erot = 12.9713100474465 | epot = -135.942867662374 | etot = -103.85640571581 +276000 ekin = 18.9644196866248 | erot = 15.1190182514797 | epot = -135.305761696867 | etot = -101.222323758763 +277000 ekin = 18.1790415654528 | erot = 15.6915033365274 | epot = -134.686290990098 | etot = -100.815746088118 +278000 ekin = 17.2302816699807 | erot = 14.5630186482311 | epot = -134.192212791496 | etot = -102.398912473285 +279000 ekin = 16.369908562734 | erot = 13.9908783510267 | epot = -133.797540061325 | etot = -103.436753147565 +280000 ekin = 16.433782481313 | erot = 14.3147528722557 | epot = -133.452962953684 | etot = -102.704427600115 +281000 ekin = 15.8960625121675 | erot = 13.2178776330307 | epot = -133.399396244585 | etot = -104.285456099387 +282000 ekin = 15.548559273272 | erot = 12.8722007360345 | epot = -133.49732624149 | etot = -105.076566232184 +283000 ekin = 15.4150561563309 | erot = 12.3116409770538 | epot = -133.588854787054 | etot = -105.862157653669 +284000 ekin = 15.1964277060974 | erot = 13.3914179429752 | epot = -133.806054668234 | etot = -105.218209019162 +285000 ekin = 15.2489124117006 | erot = 16.4856490647835 | epot = -134.22065384738 | etot = -102.486092370896 +286000 ekin = 15.550747369737 | erot = 18.8796113679636 | epot = -134.69002569583 | etot = -100.259666958129 +287000 ekin = 14.8603292913743 | erot = 18.8135765008557 | epot = -134.998990769646 | etot = -101.325084977416 +288000 ekin = 14.9073867488869 | erot = 20.8515827516646 | epot = -135.209097506634 | etot = -99.4501280060825 +289000 ekin = 14.580042804101 | erot = 19.9269408519653 | epot = -135.262547507993 | etot = -100.755563851926 +290000 ekin = 14.2667577225128 | erot = 18.5576074022871 | epot = -135.14384414274 | etot = -102.31947901794 +291000 ekin = 14.4608493520139 | erot = 17.020989166249 | epot = -135.100140508514 | etot = -103.618301990251 +292000 ekin = 14.3512951121633 | erot = 16.4441072192349 | epot = -135.176730339777 | etot = -104.381328008378 +293000 ekin = 14.4343768380636 | erot = 15.2817002428186 | epot = -135.340148693332 | etot = -105.62407161245 +294000 ekin = 14.7414214511854 | erot = 17.4317969241924 | epot = -135.463496511849 | etot = -103.290278136471 +295000 ekin = 14.8006885026394 | erot = 15.8578506551645 | epot = -135.633228910137 | etot = -104.974689752333 +296000 ekin = 14.9509290304818 | erot = 15.0968130074849 | epot = -135.846814176395 | etot = -105.799072138428 +297000 ekin = 15.3553412489363 | erot = 16.8227270457587 | epot = -135.965779977314 | etot = -103.787711682618 +298000 ekin = 15.7861548470201 | erot = 15.4994205982361 | epot = -135.923798442612 | etot = -104.638222997356 +299000 ekin = 15.3731178851645 | erot = 14.9134030635961 | epot = -135.788540081438 | etot = -105.502019132677 +300000 ekin = 15.1591467758614 | erot = 14.913706960876 | epot = -135.541047558063 | etot = -105.468193821326 +301000 ekin = 15.1397822527051 | erot = 13.8966200648362 | epot = -135.135635625953 | etot = -106.099233308412 +302000 ekin = 15.159623148571 | erot = 14.0664742347814 | epot = -134.731648984919 | etot = -105.505551601567 +303000 ekin = 15.2175218974919 | erot = 13.4462351632379 | epot = -134.411234683939 | etot = -105.747477623209 +304000 ekin = 14.5374568169516 | erot = 11.5234287916082 | epot = -134.106892875677 | etot = -108.046007267117 +305000 ekin = 14.1500393411098 | erot = 11.9173026853239 | epot = -134.047561404168 | etot = -107.980219377735 +306000 ekin = 13.9196264051666 | erot = 11.6457724597909 | epot = -134.132883888331 | etot = -108.567485023374 +307000 ekin = 14.1005702019832 | erot = 12.5077575778325 | epot = -134.434608932883 | etot = -107.826281153068 +308000 ekin = 14.2585019936264 | erot = 15.3958591359035 | epot = -134.946476601929 | etot = -105.2921154724 +309000 ekin = 14.4850692770863 | erot = 14.9402760560304 | epot = -135.555546751183 | etot = -106.130201418066 +310000 ekin = 15.492391653303 | erot = 17.0903447047106 | epot = -136.088841261877 | etot = -103.506104903864 +311000 ekin = 15.3890643243749 | erot = 19.2610528144109 | epot = -136.416623046967 | etot = -101.766505908181 +312000 ekin = 15.2534523734811 | erot = 20.639433925015 | epot = -136.486497272686 | etot = -100.59361097419 +313000 ekin = 15.2642533521526 | erot = 19.4719026755312 | epot = -136.453193514327 | etot = -101.717037486643 +314000 ekin = 15.9088102113763 | erot = 18.1158097744565 | epot = -136.079284445116 | etot = -102.054664459283 +315000 ekin = 16.3317488039196 | erot = 17.8215548717385 | epot = -135.489614657583 | etot = -101.336310981925 +316000 ekin = 16.7127254665424 | erot = 17.0621123809074 | epot = -134.692922956559 | etot = -100.918085109109 +317000 ekin = 17.5082995775713 | erot = 15.454754479648 | epot = -133.709498409164 | etot = -100.746444351945 +318000 ekin = 17.2770894172302 | erot = 15.0009638702678 | epot = -132.809048322747 | etot = -100.530995035249 +319000 ekin = 17.3853813655136 | erot = 14.6635925801312 | epot = -131.945684244476 | etot = -99.8967102988308 +320000 ekin = 18.3081586199625 | erot = 13.8417925858814 | epot = -131.130097913125 | etot = -98.9801467072811 +321000 ekin = 18.7025012020988 | erot = 12.5254510027626 | epot = -130.554557102668 | etot = -99.3266048978071 +322000 ekin = 19.3729234492728 | erot = 14.6496801700427 | epot = -130.267637027781 | etot = -96.2450334084658 +323000 ekin = 19.305884647827 | erot = 15.108631117722 | epot = -130.280223563659 | etot = -95.86570779811 +324000 ekin = 20.1791746601352 | erot = 12.9595357297034 | epot = -130.560819572515 | etot = -97.4221091826763 +325000 ekin = 19.9229721579764 | erot = 12.6937530782134 | epot = -130.854796864401 | etot = -98.2380716282109 +326000 ekin = 20.1494557071319 | erot = 11.2055252329235 | epot = -131.031149467831 | etot = -99.6761685277753 +327000 ekin = 20.1584272008461 | erot = 12.8758025350741 | epot = -131.233681045978 | etot = -98.1994513100582 +328000 ekin = 20.2643855639433 | erot = 14.5928040377303 | epot = -131.292981088156 | etot = -96.435791486482 +329000 ekin = 20.3915092050716 | erot = 13.323391436832 | epot = -131.131824450461 | etot = -97.416923808557 +330000 ekin = 20.2912600284135 | erot = 12.8991717498625 | epot = -130.672767581113 | etot = -97.4823358028366 +331000 ekin = 18.9233901861363 | erot = 12.4977211780143 | epot = -129.925928506111 | etot = -98.5048171419608 +332000 ekin = 17.7836902793254 | erot = 14.8657125217102 | epot = -129.218240818358 | etot = -96.5688380173225 +333000 ekin = 17.2104765267529 | erot = 13.4490686449807 | epot = -128.531401145493 | etot = -97.8718559737597 +334000 ekin = 16.2590845220449 | erot = 13.9850453847657 | epot = -128.188656013223 | etot = -97.9445261064122 +335000 ekin = 15.9740258843418 | erot = 15.2587829777059 | epot = -128.194625469078 | etot = -96.9618166070303 +336000 ekin = 16.0871088550339 | erot = 15.9231026554215 | epot = -128.442662404935 | etot = -96.4324508944797 +337000 ekin = 15.4081060894536 | erot = 18.6510765846712 | epot = -129.029581276312 | etot = -94.9703986021868 +338000 ekin = 14.9084404652835 | erot = 18.5521822060606 | epot = -129.67002053088 | etot = -96.209397859536 +339000 ekin = 14.2887751325506 | erot = 18.3637986948568 | epot = -130.377076219122 | etot = -97.7245023917149 +340000 ekin = 14.8657804006019 | erot = 17.7641504172419 | epot = -131.02063068338 | etot = -98.3906998655363 +341000 ekin = 14.8960466933512 | erot = 17.2892865665249 | epot = -131.496204140598 | etot = -99.3108708807218 +342000 ekin = 15.0156852076313 | erot = 16.8226002620008 | epot = -131.849716442671 | etot = -100.011430973038 +343000 ekin = 14.829880784036 | erot = 16.2291852975375 | epot = -132.272502245046 | etot = -101.213436163473 +344000 ekin = 15.461309073626 | erot = 16.6968933814696 | epot = -132.490462225244 | etot = -100.332259770148 +345000 ekin = 16.4175355377691 | erot = 16.5679997852715 | epot = -132.518100798509 | etot = -99.5325654754687 +346000 ekin = 16.7873544963258 | erot = 13.9089222946379 | epot = -132.494362386097 | etot = -101.798085595133 +347000 ekin = 17.5341944625862 | erot = 14.8988271783669 | epot = -132.643299258145 | etot = -100.210277617192 +348000 ekin = 17.7040765279244 | erot = 16.3501560162002 | epot = -132.679901962864 | etot = -98.6256694187397 +349000 ekin = 18.6732345768778 | erot = 16.6988217905427 | epot = -132.625569643541 | etot = -97.2535132761207 +350000 ekin = 18.4130575315697 | erot = 17.096873206343 | epot = -132.463584372258 | etot = -96.9536536343456 +351000 ekin = 18.4327090823276 | erot = 15.202701456387 | epot = -132.460712631495 | etot = -98.8253020927801 +352000 ekin = 18.5786729672979 | erot = 13.1442948374853 | epot = -132.422025658642 | etot = -100.699057853859 +353000 ekin = 18.3167584321581 | erot = 13.5377327815225 | epot = -132.307592865039 | etot = -100.453101651358 +354000 ekin = 18.1047840391406 | erot = 13.5953436553486 | epot = -132.195846272543 | etot = -100.495718578054 +355000 ekin = 18.1986897792976 | erot = 13.5583564256669 | epot = -132.091108805341 | etot = -100.334062600376 +356000 ekin = 18.3907444230833 | erot = 13.2933159759753 | epot = -132.00073429578 | etot = -100.316673896722 +357000 ekin = 18.228074400546 | erot = 14.265637563401 | epot = -131.856932329748 | etot = -99.3632203658011 +358000 ekin = 18.905942614608 | erot = 16.1142874028293 | epot = -131.849628069353 | etot = -96.8293980519153 +359000 ekin = 18.8676526001794 | erot = 16.6138177795695 | epot = -131.891754625532 | etot = -96.4102842457828 +360000 ekin = 18.7099054939284 | erot = 15.3718802743092 | epot = -131.997021147589 | etot = -97.9152353793512 +361000 ekin = 18.4905666675549 | erot = 17.3995560989326 | epot = -132.031349470221 | etot = -96.1412267037338 +362000 ekin = 18.1855970132715 | erot = 17.942912738158 | epot = -132.011645615621 | etot = -95.8831358641914 +363000 ekin = 18.2338378875984 | erot = 17.7801397977108 | epot = -131.858096991963 | etot = -95.8441193066534 +364000 ekin = 17.7535711043704 | erot = 18.8250835249016 | epot = -131.66069608376 | etot = -95.0820414544875 +365000 ekin = 17.3695156905276 | erot = 17.9883441026839 | epot = -131.364026405965 | etot = -96.006166612754 +366000 ekin = 16.9850573956501 | erot = 16.6067085347191 | epot = -130.892399012665 | etot = -97.3006330822961 +367000 ekin = 15.997392244026 | erot = 14.7885107777799 | epot = -130.541890303735 | etot = -99.7559872819289 +368000 ekin = 15.8563119798033 | erot = 15.0425885910495 | epot = -130.433580819971 | etot = -99.5346802491183 +369000 ekin = 15.3277171500825 | erot = 12.7447003449411 | epot = -130.381445733827 | etot = -102.309028238804 +370000 ekin = 14.7095470896123 | erot = 13.0656296157977 | epot = -130.483012980666 | etot = -102.707836275256 +371000 ekin = 14.0759895035629 | erot = 14.1359591379551 | epot = -130.384112296464 | etot = -102.172163654946 +372000 ekin = 14.0274743219116 | erot = 11.5530950019089 | epot = -130.161328386178 | etot = -104.580759062357 +373000 ekin = 13.2735786074107 | erot = 11.7624698283845 | epot = -129.929770447592 | etot = -104.893722011797 +374000 ekin = 12.5703680081111 | erot = 14.4470952413483 | epot = -129.713420572473 | etot = -102.695957323014 +375000 ekin = 12.5023514450046 | erot = 15.8497938518021 | epot = -129.637706135675 | etot = -101.285560838869 +376000 ekin = 12.0221432627941 | erot = 17.5431672416675 | epot = -129.715548310157 | etot = -100.150237805695 +377000 ekin = 11.7237507704746 | erot = 18.4106449767234 | epot = -129.779086106179 | etot = -99.6446903589815 +378000 ekin = 11.0789972070929 | erot = 17.5195452694909 | epot = -129.895108316626 | etot = -101.296565840043 +379000 ekin = 10.791187345069 | erot = 17.2671980167644 | epot = -129.974216175833 | etot = -101.915830814 +380000 ekin = 10.3303845891398 | erot = 19.7350662610716 | epot = -129.985033641003 | etot = -99.9195827907913 +381000 ekin = 10.6501452347105 | erot = 17.9096333905339 | epot = -130.048148553028 | etot = -101.488369927783 +382000 ekin = 10.8437625928638 | erot = 19.6245357971332 | epot = -130.162960896156 | etot = -99.6946625061586 +383000 ekin = 11.3542531169641 | erot = 19.2079982598655 | epot = -130.251228617436 | etot = -99.6889772406066 +384000 ekin = 11.0272904963054 | erot = 18.6311518814503 | epot = -129.943258464192 | etot = -100.284816086437 +385000 ekin = 11.4771222018941 | erot = 17.1360629774048 | epot = -129.430781333483 | etot = -100.817596154184 +386000 ekin = 12.4376078364946 | erot = 14.6619087078055 | epot = -130.047233050888 | etot = -102.947716506588 +387000 ekin = 12.8153361806634 | erot = 15.3926488614594 | epot = -130.959137626804 | etot = -102.751152584681 +388000 ekin = 13.1378115586545 | erot = 15.8470409404985 | epot = -131.544384429979 | etot = -102.559531930826 +389000 ekin = 13.1350510873651 | erot = 15.808281971926 | epot = -132.065057931578 | etot = -103.121724872287 +390000 ekin = 13.3617719743925 | erot = 16.6918377695317 | epot = -132.580573672771 | etot = -102.526963928847 +391000 ekin = 13.5851369990731 | erot = 15.4004538175445 | epot = -133.044781890658 | etot = -104.059191074041 +392000 ekin = 13.4438982626802 | erot = 14.1857107746609 | epot = -133.309825877743 | etot = -105.680216840402 +393000 ekin = 14.3296801723329 | erot = 13.6901426487985 | epot = -133.547799958499 | etot = -105.527977137368 +394000 ekin = 14.2177717751005 | erot = 12.0786990382449 | epot = -133.641139399124 | etot = -107.344668585779 +395000 ekin = 14.0616425604673 | erot = 12.7471805398942 | epot = -133.908782967968 | etot = -107.099959867607 +396000 ekin = 14.1032172942454 | erot = 14.0283872031366 | epot = -134.074906003737 | etot = -105.943301506355 +397000 ekin = 13.8378437478735 | erot = 14.2359696883988 | epot = -134.163422059715 | etot = -106.089608623443 +398000 ekin = 13.5940545581343 | erot = 14.6507863495143 | epot = -134.074310654568 | etot = -105.82946974692 +399000 ekin = 13.3759242523696 | erot = 13.1356112226362 | epot = -133.887986258004 | etot = -107.376450782998 +400000 ekin = 13.2095793005716 | erot = 12.5790429567952 | epot = -133.576623692892 | etot = -107.788001435525 +401000 ekin = 13.0396921424937 | erot = 12.2222140410468 | epot = -133.239411997493 | etot = -107.977505813952 +402000 ekin = 12.9124676200662 | erot = 12.802771887062 | epot = -132.749760635641 | etot = -107.034521128513 +403000 ekin = 13.6179554188645 | erot = 13.0476775850248 | epot = -132.374859479026 | etot = -105.709226475137 +404000 ekin = 13.9894231701241 | erot = 12.5074913311586 | epot = -132.071111245917 | etot = -105.574196744634 +405000 ekin = 14.5489181812674 | erot = 11.634731946324 | epot = -131.925777405071 | etot = -105.742127277479 +406000 ekin = 14.976727696514 | erot = 10.9961892206581 | epot = -131.890965998628 | etot = -105.918049081456 +407000 ekin = 14.7146600327761 | erot = 11.6658057798981 | epot = -131.87989514807 | etot = -105.499429335395 +408000 ekin = 15.9530558009153 | erot = 13.4701962947535 | epot = -131.991523588142 | etot = -102.568271492473 +409000 ekin = 15.8818880911976 | erot = 14.1597558336122 | epot = -131.939714559954 | etot = -101.898070635144 +410000 ekin = 15.81619586303 | erot = 14.0248035740244 | epot = -131.84757648489 | etot = -102.006577047836 +411000 ekin = 15.9025579383179 | erot = 13.3878786896913 | epot = -131.767259935917 | etot = -102.476823307908 +412000 ekin = 16.2083664349041 | erot = 12.276906139516 | epot = -131.672975695472 | etot = -103.187703121052 +413000 ekin = 17.4022750179687 | erot = 12.5891828631102 | epot = -131.587541886629 | etot = -101.59608400555 +414000 ekin = 17.6851004318575 | erot = 11.9592267254818 | epot = -131.583004895796 | etot = -101.938677738457 +415000 ekin = 17.5336471811434 | erot = 12.8184792185166 | epot = -131.704230153421 | etot = -101.352103753761 +416000 ekin = 17.9668105672965 | erot = 13.7108633385326 | epot = -132.037460565773 | etot = -100.359786659944 +417000 ekin = 17.8399648024649 | erot = 14.2203301850684 | epot = -132.426256244686 | etot = -100.365961257153 +418000 ekin = 17.4373266510266 | erot = 15.5396524051407 | epot = -132.754253958411 | etot = -99.7772749022435 +419000 ekin = 18.0205796450897 | erot = 15.3126889659148 | epot = -133.005735986312 | etot = -99.672467375307 +420000 ekin = 18.5794007469783 | erot = 13.0784072360516 | epot = -133.261233710656 | etot = -101.603425727626 +421000 ekin = 18.4757093355527 | erot = 14.9535208579566 | epot = -133.799291639828 | etot = -100.370061446318 +422000 ekin = 19.2487771494885 | erot = 16.268026050742 | epot = -134.536311090174 | etot = -99.0195078899435 +423000 ekin = 19.710846898957 | erot = 15.0015583081186 | epot = -135.119946009976 | etot = -100.4075408029 +424000 ekin = 20.1011764905376 | erot = 13.9954970565913 | epot = -135.493941644932 | etot = -101.397268097803 +425000 ekin = 20.4927709508711 | erot = 12.7359618472531 | epot = -135.644203458846 | etot = -102.415470660721 +426000 ekin = 20.2344431180808 | erot = 12.4974029807555 | epot = -135.682241584656 | etot = -102.95039548582 +427000 ekin = 20.20892349886 | erot = 12.4896758256051 | epot = -135.651436139498 | etot = -102.952836815033 +428000 ekin = 19.7621890963077 | erot = 12.1541092473208 | epot = -135.687038886783 | etot = -103.770740543154 +429000 ekin = 19.8396272648528 | erot = 13.6427748903784 | epot = -135.721716464191 | etot = -102.23931430896 +430000 ekin = 19.1242728130447 | erot = 13.3933193323844 | epot = -135.663972003042 | etot = -103.146379857613 +431000 ekin = 19.1762831784107 | erot = 12.6020570852289 | epot = -135.522194472845 | etot = -103.743854209205 +432000 ekin = 18.2266115891595 | erot = 12.6834992627955 | epot = -135.36090839296 | etot = -104.450797541005 +433000 ekin = 18.1788501350975 | erot = 12.6590600202183 | epot = -135.284447049825 | etot = -104.446536894509 +434000 ekin = 17.720384648689 | erot = 12.2966448579521 | epot = -135.171510962613 | etot = -105.154481455972 +435000 ekin = 17.5311827306758 | erot = 13.5626215409125 | epot = -135.015208240923 | etot = -103.921403969335 +436000 ekin = 16.4711775181156 | erot = 12.8102827557078 | epot = -134.842179935764 | etot = -105.560719661941 +437000 ekin = 15.4657901044588 | erot = 10.80418591292 | epot = -134.709837955315 | etot = -108.439861937937 +438000 ekin = 15.2386769334434 | erot = 12.0324207051325 | epot = -134.707049527887 | etot = -107.435951889311 +439000 ekin = 15.0935841802307 | erot = 13.0754089066331 | epot = -134.836060039942 | etot = -106.667066953078 +440000 ekin = 14.3360038839268 | erot = 14.291563980863 | epot = -134.988119560412 | etot = -106.360551695622 +441000 ekin = 14.2694626093034 | erot = 13.1679327831247 | epot = -135.087990978588 | etot = -107.65059558616 +442000 ekin = 13.9397245181093 | erot = 13.5878148151393 | epot = -135.27763911375 | etot = -107.750099780502 +443000 ekin = 13.6891873480654 | erot = 12.7391553909139 | epot = -135.564786299035 | etot = -109.136443560056 +444000 ekin = 13.3446443464529 | erot = 13.499236365613 | epot = -135.849809317035 | etot = -109.005928604969 +445000 ekin = 13.6875995140372 | erot = 13.2030900365622 | epot = -136.086843695633 | etot = -109.196154145034 +446000 ekin = 13.7510820507316 | erot = 13.7935955897445 | epot = -136.319424424693 | etot = -108.774746784217 +447000 ekin = 13.9536756645579 | erot = 12.6323777770505 | epot = -136.507693431303 | etot = -109.921639989694 +448000 ekin = 13.827548811272 | erot = 11.285056587657 | epot = -136.608608530592 | etot = -111.496003131663 +449000 ekin = 14.9136066480825 | erot = 12.7726370410636 | epot = -136.711695112838 | etot = -109.025451423692 +450000 ekin = 15.3130329071512 | erot = 12.937348088392 | epot = -136.734120986225 | etot = -108.483739990681 +451000 ekin = 15.301302701309 | erot = 14.8417359986012 | epot = -136.867644105403 | etot = -106.724605405493 +452000 ekin = 15.3991468229934 | erot = 16.1597910131671 | epot = -136.947934830867 | etot = -105.388996994706 +453000 ekin = 15.3544337424077 | erot = 14.4343236069841 | epot = -136.960688535188 | etot = -107.171931185796 +454000 ekin = 15.9488000063485 | erot = 12.9304684614664 | epot = -136.856618010944 | etot = -107.977349543129 +455000 ekin = 15.2922715833283 | erot = 14.486121405257 | epot = -136.770277576782 | etot = -106.991884588196 +456000 ekin = 16.1315234476418 | erot = 14.4187765377405 | epot = -136.76890079148 | etot = -106.218600806097 +457000 ekin = 15.9303613769982 | erot = 13.9233688633883 | epot = -136.927755091366 | etot = -107.07402485098 +458000 ekin = 16.7129528959658 | erot = 12.4702904353342 | epot = -137.053260145678 | etot = -107.870016814378 +459000 ekin = 17.1862391955335 | erot = 12.622579403626 | epot = -137.11674220014 | etot = -107.30792360098 +460000 ekin = 16.7474694887743 | erot = 11.4402733756922 | epot = -137.064789703783 | etot = -108.877046839317 +461000 ekin = 16.3707132234329 | erot = 11.9667807483365 | epot = -136.909114896434 | etot = -108.571620924665 +462000 ekin = 16.057050749257 | erot = 11.071055260652 | epot = -136.760977151544 | etot = -109.632871141635 +463000 ekin = 15.9960445636137 | erot = 10.2608114523641 | epot = -136.645584443945 | etot = -110.388728427967 +464000 ekin = 15.9839199462213 | erot = 10.8607695443336 | epot = -136.533700257303 | etot = -109.689010766748 +465000 ekin = 16.2497389586414 | erot = 10.5313175008318 | epot = -136.422141283632 | etot = -109.641084824158 +466000 ekin = 16.4518159227467 | erot = 8.66003642684213 | epot = -136.240386445842 | etot = -111.128534096253 +467000 ekin = 16.100799974088 | erot = 8.85502090217157 | epot = -135.945676273344 | etot = -110.989855397085 +468000 ekin = 15.1757358310978 | erot = 8.75786767066468 | epot = -135.561277287738 | etot = -111.627673785976 +469000 ekin = 15.3336805141778 | erot = 10.294151576367 | epot = -135.258770009998 | etot = -109.630937919453 +470000 ekin = 15.1416986121053 | erot = 8.28861239898659 | epot = -134.943369066082 | etot = -111.51305805499 +471000 ekin = 15.0808434941798 | erot = 9.35823693722223 | epot = -134.657084844574 | etot = -110.218004413172 +472000 ekin = 14.8199031521034 | erot = 9.75538519900261 | epot = -134.368392289563 | etot = -109.793103938457 +473000 ekin = 14.4399928658261 | erot = 11.1636383462408 | epot = -134.206329135161 | etot = -108.602697923094 +474000 ekin = 14.935676186505 | erot = 12.4931115595082 | epot = -134.145148601937 | etot = -106.716360855924 +475000 ekin = 14.6384685751387 | erot = 11.0850165170751 | epot = -134.221735909125 | etot = -108.498250816911 +476000 ekin = 13.9153709379498 | erot = 12.0827855450883 | epot = -134.469586713931 | etot = -108.471430230893 +477000 ekin = 14.6563896342164 | erot = 12.0460213856471 | epot = -134.829702895449 | etot = -108.127291875586 +478000 ekin = 14.3931715088047 | erot = 14.4906569380074 | epot = -135.139673364882 | etot = -106.25584491807 +479000 ekin = 13.8400742131686 | erot = 13.8710649509623 | epot = -135.382131827147 | etot = -107.670992663016 +480000 ekin = 14.0424905732934 | erot = 14.0689887089952 | epot = -135.588748807054 | etot = -107.477269524765 +481000 ekin = 13.6170227455239 | erot = 13.1439295606646 | epot = -135.69134424373 | etot = -108.930391937541 +482000 ekin = 13.8439473766551 | erot = 14.4045116666526 | epot = -135.770512223603 | etot = -107.522053180295 +483000 ekin = 13.5424118445011 | erot = 15.2738244947149 | epot = -135.761995151043 | etot = -106.945758811827 +484000 ekin = 14.1849101922232 | erot = 15.8666757145785 | epot = -135.575970226919 | etot = -105.524384320117 +485000 ekin = 14.195940956825 | erot = 15.6114816494057 | epot = -135.39877590756 | etot = -105.591353301329 +486000 ekin = 13.9111457593459 | erot = 14.7215876222303 | epot = -135.223040470219 | etot = -106.590307088643 +487000 ekin = 12.9992191510958 | erot = 16.0593366085531 | epot = -135.161251042679 | etot = -106.10269528303 +488000 ekin = 12.6168795173545 | erot = 15.220417466404 | epot = -135.112432961673 | etot = -107.275135977914 +489000 ekin = 13.201759570014 | erot = 15.5867132105965 | epot = -135.074404157315 | etot = -106.285931376705 +490000 ekin = 13.2265885469164 | erot = 13.3100611495396 | epot = -134.568930622594 | etot = -108.032280926138 +491000 ekin = 13.5709245520791 | erot = 11.2379321911317 | epot = -133.759906399328 | etot = -108.951049656117 +492000 ekin = 15.1091749804628 | erot = 11.7194529548775 | epot = -133.655474302235 | etot = -106.826846366895 +493000 ekin = 16.2076959760405 | erot = 12.441837078746 | epot = -134.249886628433 | etot = -105.600353573647 +494000 ekin = 16.6484098740154 | erot = 10.9573285365692 | epot = -134.403715395303 | etot = -106.797976984718 +495000 ekin = 16.5025641778354 | erot = 10.3597875757963 | epot = -134.308352870214 | etot = -107.446001116582 +496000 ekin = 16.9766321377782 | erot = 9.35188747914268 | epot = -134.281373463348 | etot = -107.952853846427 +497000 ekin = 16.078651039206 | erot = 10.3949908356289 | epot = -134.223609434181 | etot = -107.749967559347 +498000 ekin = 15.6772701233096 | erot = 11.8315398449411 | epot = -134.244125085288 | etot = -106.735315117037 +499000 ekin = 15.7882815478804 | erot = 13.6372268111213 | epot = -134.289867732572 | etot = -104.86435937357 +500000 ekin = 15.6419277561492 | erot = 13.3617656571946 | epot = -134.377671866557 | etot = -105.373978453214 +501000 ekin = 15.4257894818581 | erot = 15.21161110053 | epot = -134.484904618377 | etot = -103.847504035988 +502000 ekin = 15.3486659157681 | erot = 15.4855204602635 | epot = -134.581746159061 | etot = -103.747559783029 +503000 ekin = 16.0150000243146 | erot = 15.3699470263174 | epot = -134.643201434117 | etot = -103.258254383485 +504000 ekin = 16.1490322325749 | erot = 15.6846837800625 | epot = -134.388203436914 | etot = -102.554487424276 +505000 ekin = 16.7723260928518 | erot = 14.0444994484244 | epot = -133.964626020725 | etot = -103.147800479449 +506000 ekin = 16.4475237902167 | erot = 13.5971228003138 | epot = -133.629606075219 | etot = -103.584959484689 +507000 ekin = 16.5024238998181 | erot = 12.429540490011 | epot = -133.299502045104 | etot = -104.367537655275 +508000 ekin = 16.3169089606643 | erot = 13.3198009459649 | epot = -133.005026942353 | etot = -103.368317035724 +509000 ekin = 16.6164955497601 | erot = 14.4826644625662 | epot = -132.746126116551 | etot = -101.646966104225 +510000 ekin = 16.1209406991229 | erot = 13.7477413055598 | epot = -132.592852521091 | etot = -102.724170516408 +511000 ekin = 15.6091977614599 | erot = 13.8436628675437 | epot = -132.380877927575 | etot = -102.928017298572 +512000 ekin = 15.6596479673297 | erot = 12.9299515573588 | epot = -132.048855483892 | etot = -103.459255959204 +513000 ekin = 15.6707994531395 | erot = 13.5959910505632 | epot = -131.731147580255 | etot = -102.464357076552 +514000 ekin = 15.6264137878191 | erot = 14.3727983536369 | epot = -131.520236647057 | etot = -101.521024505601 +515000 ekin = 14.4146997050622 | erot = 15.0596594316434 | epot = -131.342225044141 | etot = -101.867865907436 +516000 ekin = 14.9555651275164 | erot = 16.623536869884 | epot = -130.964505322647 | etot = -99.3854033252465 +517000 ekin = 14.8906196334375 | erot = 15.5851664164921 | epot = -130.510208206423 | etot = -100.034422156494 +518000 ekin = 14.3416366159403 | erot = 15.5365067560293 | epot = -130.130994049642 | etot = -100.252850677672 +519000 ekin = 13.7572803913558 | erot = 13.6198602780253 | epot = -129.803290384483 | etot = -102.426149715102 +520000 ekin = 13.5689181041519 | erot = 13.681926699745 | epot = -129.450948259648 | etot = -102.200103455751 +521000 ekin = 13.4082068826809 | erot = 14.1274743169116 | epot = -129.208824571097 | etot = -101.673143371504 +522000 ekin = 14.0315761677748 | erot = 14.1153864915646 | epot = -129.153644705208 | etot = -101.006682045869 +523000 ekin = 14.166597113974 | erot = 12.7207551535532 | epot = -129.405656319294 | etot = -102.518304051766 +524000 ekin = 14.8887229346385 | erot = 13.3588377354723 | epot = -129.865664477682 | etot = -101.618103807571 +525000 ekin = 14.688902281872 | erot = 14.9972172935593 | epot = -130.367047855264 | etot = -100.680928279832 +526000 ekin = 14.8363870564648 | erot = 15.4274874416849 | epot = -130.737233349362 | etot = -100.473358851212 +527000 ekin = 15.2869545670686 | erot = 16.1904831046063 | epot = -131.085990612593 | etot = -99.6085529409177 +528000 ekin = 15.2918013581306 | erot = 16.5067056449313 | epot = -131.451788517536 | etot = -99.6532815144741 +529000 ekin = 14.8678046515922 | erot = 17.291651478174 | epot = -131.723891935077 | etot = -99.5644358053108 +530000 ekin = 15.2573279172882 | erot = 20.5735211144431 | epot = -131.892883532099 | etot = -96.0620345003679 +531000 ekin = 15.6180440994647 | erot = 20.3297963054759 | epot = -132.105039828192 | etot = -96.157199423251 +532000 ekin = 15.7576388597626 | erot = 19.385030015024 | epot = -132.470818857238 | etot = -97.3281499824516 +533000 ekin = 15.8706341627548 | erot = 18.6066906708007 | epot = -132.905264850299 | etot = -98.4279400167437 +534000 ekin = 15.3696535565231 | erot = 20.3101666824023 | epot = -133.506233176794 | etot = -97.8264129378684 +535000 ekin = 15.2002473385359 | erot = 20.7831933548962 | epot = -134.11565174357 | etot = -98.1322110501384 +536000 ekin = 15.1615571330119 | erot = 20.1952257505014 | epot = -134.713251892966 | etot = -99.3564690094531 +537000 ekin = 14.9999277554404 | erot = 20.8390703164538 | epot = -135.462424885782 | etot = -99.6234268138877 +538000 ekin = 15.2115436578884 | erot = 22.3424857038856 | epot = -136.279383530687 | etot = -98.7253541689125 +539000 ekin = 15.386866594686 | erot = 22.69624463026 | epot = -136.979522583157 | etot = -98.8964113582114 +540000 ekin = 14.9545130224662 | erot = 22.6718649747582 | epot = -136.975604226613 | etot = -99.3492262293885 +541000 ekin = 14.7052299608299 | erot = 20.8759766501206 | epot = -136.170699327884 | etot = -100.589492716934 +542000 ekin = 15.4627037134851 | erot = 18.9043634730505 | epot = -136.392086463158 | etot = -102.025019276622 +543000 ekin = 15.7339524861005 | erot = 18.278149011262 | epot = -137.617204947251 | etot = -103.605103449888 +544000 ekin = 16.4706711523584 | erot = 16.4296713716256 | epot = -138.254480342312 | etot = -105.354137818328 +545000 ekin = 16.5610113459295 | erot = 17.2785208493854 | epot = -138.339071018101 | etot = -104.499538822786 +546000 ekin = 16.5789197609368 | erot = 15.1504740634871 | epot = -138.313871915051 | etot = -106.584478090627 +547000 ekin = 16.7878570141239 | erot = 14.7267570932877 | epot = -138.142446983588 | etot = -106.627832876176 +548000 ekin = 16.6455858796663 | erot = 16.6956992651407 | epot = -137.853579013093 | etot = -104.512293868286 +549000 ekin = 16.4197155196691 | erot = 16.1951837028797 | epot = -137.47646138011 | etot = -104.861562157561 +550000 ekin = 16.0121780135926 | erot = 16.5563179618333 | epot = -137.001885168841 | etot = -104.433389193415 +551000 ekin = 15.7084668677551 | erot = 16.9496657427157 | epot = -136.432267850723 | etot = -103.774135240252 +552000 ekin = 15.8326822462472 | erot = 17.1645099805633 | epot = -135.769947950372 | etot = -102.772755723561 +553000 ekin = 15.5762449855294 | erot = 14.9351507169072 | epot = -134.949512056203 | etot = -104.438116353766 +554000 ekin = 15.2061720137279 | erot = 14.6141329679615 | epot = -134.235489211813 | etot = -104.415184230123 +555000 ekin = 14.8324273580499 | erot = 14.4249898884469 | epot = -133.547214238345 | etot = -104.289796991849 +556000 ekin = 14.5316030200092 | erot = 14.6505308104098 | epot = -132.899169936009 | etot = -103.71703610559 +557000 ekin = 14.0459856506802 | erot = 14.0161608645567 | epot = -132.386383041322 | etot = -104.324236526085 +558000 ekin = 13.7020140248454 | erot = 14.782028582676 | epot = -131.910334835384 | etot = -103.426292227863 +559000 ekin = 13.7432172213168 | erot = 14.5379288254006 | epot = -131.411435046497 | etot = -103.130288999779 +560000 ekin = 13.5764218212111 | erot = 13.2381632256738 | epot = -130.994489577413 | etot = -104.179904530529 +561000 ekin = 13.6694726081568 | erot = 12.6384801319582 | epot = -130.581065186663 | etot = -104.273112446548 +562000 ekin = 13.0725079305121 | erot = 14.7244789763498 | epot = -130.498504712296 | etot = -102.701517805434 +563000 ekin = 13.4441169709271 | erot = 14.3755753345078 | epot = -130.583300492981 | etot = -102.763608187546 +564000 ekin = 14.3355089861334 | erot = 13.3790453196086 | epot = -130.804412145375 | etot = -103.089857839633 +565000 ekin = 14.6463307763696 | erot = 13.5486951094224 | epot = -131.204065969761 | etot = -103.009040083968 +566000 ekin = 14.3164808224567 | erot = 13.1814841428168 | epot = -131.597877349356 | etot = -104.099912384082 +567000 ekin = 14.5801374605908 | erot = 12.6017253683148 | epot = -131.986438794862 | etot = -104.804575965956 +568000 ekin = 14.4596416689885 | erot = 13.0421302262916 | epot = -132.231847146029 | etot = -104.730075250749 +569000 ekin = 14.393036553157 | erot = 12.5269341604941 | epot = -132.421675425711 | etot = -105.50170471206 +570000 ekin = 13.7030235038524 | erot = 12.2078817020517 | epot = -132.56865427436 | etot = -106.657749068456 +571000 ekin = 14.1650035664346 | erot = 12.2664973696732 | epot = -132.662283950982 | etot = -106.230783014874 +572000 ekin = 13.80817038309 | erot = 15.4383237311916 | epot = -132.642462945806 | etot = -103.395968831524 +573000 ekin = 13.7312113229557 | erot = 13.7697915123458 | epot = -132.501933226632 | etot = -105.00093039133 +574000 ekin = 13.2327575645112 | erot = 13.9844401957313 | epot = -132.336703603402 | etot = -105.11950584316 +575000 ekin = 13.8802071791623 | erot = 12.7631149758893 | epot = -132.105424543308 | etot = -105.462102388256 +576000 ekin = 14.2841183967677 | erot = 12.8966359591139 | epot = -131.811456667571 | etot = -104.63070231169 +577000 ekin = 13.955392583855 | erot = 11.5459823908892 | epot = -131.541549476664 | etot = -106.04017450192 +578000 ekin = 12.9003719500766 | erot = 11.5907900539213 | epot = -131.283674188775 | etot = -106.792512184777 +579000 ekin = 12.5310866104434 | erot = 11.5216820056368 | epot = -130.98539489617 | etot = -106.932626280089 +580000 ekin = 11.8973995685346 | erot = 11.6553088676291 | epot = -130.646310809283 | etot = -107.093602373119 +581000 ekin = 11.7065186885648 | erot = 11.869388389168 | epot = -130.358427822785 | etot = -106.782520745052 +582000 ekin = 11.0914180718352 | erot = 11.3567488184505 | epot = -130.22758086689 | etot = -107.779413976605 +583000 ekin = 10.2506360999176 | erot = 11.7568857204028 | epot = -130.336040517298 | etot = -108.328518696977 +584000 ekin = 10.1601197978661 | erot = 10.9760836192065 | epot = -130.620163191849 | etot = -109.483959774776 +585000 ekin = 10.4034716853605 | erot = 12.1580330986388 | epot = -131.093630730313 | etot = -108.532125946314 +586000 ekin = 10.3456966546715 | erot = 10.9642773747521 | epot = -131.662529259606 | etot = -110.352555230183 +587000 ekin = 10.1101055033411 | erot = 12.2604221492255 | epot = -132.202061141041 | etot = -109.831533488475 +588000 ekin = 10.8550854785802 | erot = 12.1180835063843 | epot = -132.721338026939 | etot = -109.748169041974 +589000 ekin = 10.4838288102523 | erot = 12.4652186764336 | epot = -133.094533075413 | etot = -110.145485588727 +590000 ekin = 10.2708605727086 | erot = 12.0832199140329 | epot = -133.373241152813 | etot = -111.019160666072 +591000 ekin = 10.5461874611445 | erot = 13.1100448360533 | epot = -133.560319943383 | etot = -109.904087646185 +592000 ekin = 10.3683190472224 | erot = 13.8143658675337 | epot = -133.721970598625 | etot = -109.539285683869 +593000 ekin = 10.3963603270053 | erot = 14.0225276294655 | epot = -133.713364164402 | etot = -109.294476207931 +594000 ekin = 10.3885184551674 | erot = 11.8366624994157 | epot = -133.432214935383 | etot = -111.207033980799 +595000 ekin = 10.8901100347939 | erot = 12.7293674296796 | epot = -133.490144522074 | etot = -109.870667057601 +596000 ekin = 11.2395722555263 | erot = 13.2248327342833 | epot = -133.796673156416 | etot = -109.332268166606 +597000 ekin = 11.0753436447356 | erot = 13.2536125837525 | epot = -133.948486901648 | etot = -109.619530673159 +598000 ekin = 11.3295624496026 | erot = 14.4195031759415 | epot = -133.954880324906 | etot = -108.205814699362 +599000 ekin = 11.331046112778 | erot = 15.4881855975619 | epot = -134.083362573079 | etot = -107.264130862739 +600000 ekin = 11.787907714726 | erot = 16.2359247840996 | epot = -134.420698276021 | etot = -106.396865777195 +601000 ekin = 11.0674547947287 | erot = 17.1991417694205 | epot = -134.739702452331 | etot = -106.473105888182 +602000 ekin = 11.0658520666972 | erot = 17.8370750074243 | epot = -135.079186592698 | etot = -106.176259518577 +603000 ekin = 11.123025232225 | erot = 16.6582984609292 | epot = -135.353147132872 | etot = -107.571823439718 +604000 ekin = 11.0624256310746 | erot = 17.669693596944 | epot = -135.471225799491 | etot = -106.739106571472 +605000 ekin = 11.3655531984221 | erot = 16.8851075345015 | epot = -135.342771432833 | etot = -107.092110699909 +606000 ekin = 11.790361471117 | erot = 14.5486847318163 | epot = -134.887938817663 | etot = -108.54889261473 +607000 ekin = 11.9947476941859 | erot = 14.6413174773056 | epot = -134.171826699456 | etot = -107.535761527964 +608000 ekin = 12.6872570248572 | erot = 13.7892560118068 | epot = -133.234735764685 | etot = -106.758222728021 +609000 ekin = 12.2978389537806 | erot = 12.6216102709477 | epot = -132.338952096986 | etot = -107.419502872258 +610000 ekin = 12.9319596688048 | erot = 12.8528160105898 | epot = -131.595816421921 | etot = -105.811040742526 +611000 ekin = 13.403950451031 | erot = 14.5703491939065 | epot = -131.024347032422 | etot = -103.050047387485 +612000 ekin = 13.921720677335 | erot = 14.5312432623672 | epot = -130.66128472498 | etot = -102.208320785278 +613000 ekin = 14.8335676341184 | erot = 12.1892650746368 | epot = -130.57911763963 | etot = -103.556284930875 +614000 ekin = 15.6973748522454 | erot = 10.612671055615 | epot = -130.733946081241 | etot = -104.423900173381 +615000 ekin = 16.5193269330944 | erot = 10.4111060862413 | epot = -131.257652843502 | etot = -104.327219824166 +616000 ekin = 17.4182254801146 | erot = 10.6241298247176 | epot = -131.879015462748 | etot = -103.836660157916 +617000 ekin = 18.8060108860562 | erot = 10.6269464192339 | epot = -132.516170710368 | etot = -103.083213405078 +618000 ekin = 19.7521663009964 | erot = 11.7065011338251 | epot = -133.037629576903 | etot = -101.578962142082 +619000 ekin = 20.7319417879726 | erot = 10.5260631750347 | epot = -133.415676264291 | etot = -102.157671301284 +620000 ekin = 20.806112241773 | erot = 11.2973621819735 | epot = -133.777756947299 | etot = -101.674282523553 +621000 ekin = 21.5639010876462 | erot = 11.8815197873692 | epot = -134.077776891501 | etot = -100.632356016486 +622000 ekin = 21.3689926748465 | erot = 10.4000956440602 | epot = -134.021288449876 | etot = -102.25220013097 +623000 ekin = 21.6413407887715 | erot = 10.2158203320462 | epot = -133.796628671815 | etot = -101.939467550998 +624000 ekin = 21.8076351837845 | erot = 10.1265152484649 | epot = -133.459085422801 | etot = -101.524934990551 +625000 ekin = 21.5096831710928 | erot = 9.17825774554449 | epot = -133.038125310673 | etot = -102.350184394036 +626000 ekin = 21.0176216446481 | erot = 8.97744992051248 | epot = -132.607623817873 | etot = -102.612552252713 +627000 ekin = 20.8788365359662 | erot = 9.87058291961609 | epot = -132.164577569461 | etot = -101.415158113879 +628000 ekin = 20.2034168939666 | erot = 10.4444442872214 | epot = -131.678338536356 | etot = -101.030477355168 +629000 ekin = 19.3064563629411 | erot = 10.2499650498306 | epot = -131.144652768321 | etot = -101.58823135555 +630000 ekin = 19.0283822665889 | erot = 11.4607176277001 | epot = -130.715631612411 | etot = -100.226531718122 +631000 ekin = 18.853928236171 | erot = 11.6825333882764 | epot = -130.198991821501 | etot = -99.6625301970532 +632000 ekin = 18.7638574657448 | erot = 11.7839211128261 | epot = -129.872523807162 | etot = -99.3247452285915 +633000 ekin = 19.1642923397429 | erot = 11.9682159332104 | epot = -129.641992518844 | etot = -98.5094842458908 +634000 ekin = 19.011902271626 | erot = 11.9959688493353 | epot = -129.402075848754 | etot = -98.3942047277926 +635000 ekin = 18.4542360070819 | erot = 10.3492575604963 | epot = -129.096467560285 | etot = -100.292973992707 +636000 ekin = 17.4532790638245 | erot = 11.0635840815128 | epot = -128.911926960293 | etot = -100.395063814956 +637000 ekin = 17.3697707632952 | erot = 11.8426124617262 | epot = -128.885602395439 | etot = -99.6732191704177 +638000 ekin = 17.8124685503002 | erot = 15.0406823494439 | epot = -128.862699862875 | etot = -96.0095489631308 +639000 ekin = 16.8245330169191 | erot = 15.3819182323387 | epot = -128.707243154464 | etot = -96.5007919052067 +640000 ekin = 17.1487785956868 | erot = 16.1921496722363 | epot = -128.479723988268 | etot = -95.1387957203447 +641000 ekin = 17.632304741787 | erot = 14.5156274009652 | epot = -128.247653925063 | etot = -96.0997217823104 +642000 ekin = 17.6377005136293 | erot = 14.8918647023334 | epot = -127.7222158562 | etot = -95.1926506402372 +643000 ekin = 17.5995374741385 | erot = 13.0483903667298 | epot = -127.475347763399 | etot = -96.8274199225309 +644000 ekin = 17.2764214454808 | erot = 13.4322078016665 | epot = -127.50241310641 | etot = -96.7937838592628 +645000 ekin = 17.6329098614701 | erot = 14.8201317624595 | epot = -127.370024239851 | etot = -94.9169826159211 +646000 ekin = 17.3427098437108 | erot = 13.7780394339763 | epot = -127.073196149197 | etot = -95.9524468715101 +647000 ekin = 17.3595786850669 | erot = 13.9873874432287 | epot = -126.772558544259 | etot = -95.4255924159632 +648000 ekin = 17.0611431890051 | erot = 13.0626442863658 | epot = -126.584048857572 | etot = -96.4602613822013 +649000 ekin = 16.7266328806953 | erot = 11.9283675008885 | epot = -126.556686003538 | etot = -97.9016856219541 +650000 ekin = 16.6456727674167 | erot = 12.2570663207293 | epot = -126.548172209526 | etot = -97.6454331213801 +651000 ekin = 16.9002856731565 | erot = 13.3933098195866 | epot = -126.720400236418 | etot = -96.4268047436752 +652000 ekin = 16.7932763933177 | erot = 14.7033800305508 | epot = -127.049483045287 | etot = -95.5528266214182 +653000 ekin = 17.7647934818536 | erot = 13.8375007670746 | epot = -127.392270209636 | etot = -95.789975960708 +654000 ekin = 17.209316171397 | erot = 14.2007953575714 | epot = -127.56913405221 | etot = -96.159022523242 +655000 ekin = 17.6084053546657 | erot = 13.9941896781433 | epot = -127.645735987679 | etot = -96.0431409548704 +656000 ekin = 17.2654955511365 | erot = 14.2668455216441 | epot = -127.748066013247 | etot = -96.2157249404664 +657000 ekin = 16.5710486898344 | erot = 14.8882862137457 | epot = -127.842117997841 | etot = -96.3827830942608 +658000 ekin = 16.5743027081066 | erot = 15.6308833553704 | epot = -127.848455858139 | etot = -95.6432697946622 +659000 ekin = 15.8266958160284 | erot = 16.4254782065586 | epot = -127.71822851761 | etot = -95.4660544950226 +660000 ekin = 15.3112771903098 | erot = 15.6235881574271 | epot = -127.557942038109 | etot = -96.6230766903721 +661000 ekin = 15.8077883257459 | erot = 15.6666313122459 | epot = -127.508168696619 | etot = -96.0337490586269 +662000 ekin = 15.3802586792991 | erot = 15.337973703448 | epot = -127.419047017781 | etot = -96.700814635034 +663000 ekin = 14.8214266320984 | erot = 14.2399068140589 | epot = -127.519931099912 | etot = -98.4585976537543 +664000 ekin = 14.9926156053738 | erot = 13.1516722159445 | epot = -127.751223811833 | etot = -99.6069359905142 +665000 ekin = 14.5355886254308 | erot = 14.4330045828586 | epot = -127.860821729608 | etot = -98.8922285213183 +666000 ekin = 13.993202155639 | erot = 15.5478123878428 | epot = -127.957098605449 | etot = -98.4160840619675 +667000 ekin = 13.8245326045681 | erot = 15.3532694542223 | epot = -128.10704925619 | etot = -98.9292471973995 +668000 ekin = 14.0604782799456 | erot = 14.4332737800123 | epot = -128.176648458561 | etot = -99.6828963986028 +669000 ekin = 13.7787536594503 | erot = 13.9395856557243 | epot = -128.348271613639 | etot = -100.629932298465 +670000 ekin = 14.2424674257766 | erot = 14.5981257177606 | epot = -128.431794917609 | etot = -99.5912017740719 +671000 ekin = 14.387062989952 | erot = 15.5143125489868 | epot = -128.778242221573 | etot = -98.876866682634 +672000 ekin = 15.2473568542792 | erot = 15.2152626056923 | epot = -129.394110943278 | etot = -98.931491483307 +673000 ekin = 15.5056041088206 | erot = 17.2342681078165 | epot = -130.048159647237 | etot = -97.3082874305997 +674000 ekin = 16.3082128970751 | erot = 16.8038738415255 | epot = -130.669452416793 | etot = -97.5573656781928 +675000 ekin = 17.3496022950423 | erot = 14.099213708718 | epot = -131.146386881476 | etot = -99.6975708777154 +676000 ekin = 17.4855817054841 | erot = 13.6259419730735 | epot = -131.573074528302 | etot = -100.461550849744 +677000 ekin = 17.9773747000129 | erot = 13.2884946897501 | epot = -131.905198606277 | etot = -100.639329216514 +678000 ekin = 18.756104779453 | erot = 11.5097220147452 | epot = -132.009951932527 | etot = -101.744125138329 +679000 ekin = 19.6534720398864 | erot = 12.5636470497439 | epot = -131.955300256185 | etot = -99.738181166555 +680000 ekin = 20.1148588822356 | erot = 11.9869019758845 | epot = -131.765794686934 | etot = -99.6640338288138 +681000 ekin = 20.6125173098223 | erot = 11.3275556925411 | epot = -131.422403214398 | etot = -99.4823302120342 +682000 ekin = 20.1612020041995 | erot = 10.25296966302 | epot = -130.85139674089 | etot = -100.437225073671 +683000 ekin = 20.4206920530109 | erot = 11.0282007623623 | epot = -130.068105322083 | etot = -98.6192125067094 +684000 ekin = 20.05862830642 | erot = 10.6196531732859 | epot = -129.017037414534 | etot = -98.3387559348276 +685000 ekin = 20.0501427662243 | erot = 9.32187952123111 | epot = -127.900190622709 | etot = -98.5281683352532 +686000 ekin = 19.6532740905757 | erot = 8.65222158893636 | epot = -126.80071547898 | etot = -98.4952197994682 +687000 ekin = 19.6071118679399 | erot = 6.25822222115198 | epot = -125.750923597613 | etot = -99.8855895085213 +688000 ekin = 18.6107517889504 | erot = 6.89943216928201 | epot = -124.767749264565 | etot = -99.2575653063329 +689000 ekin = 17.786165697441 | erot = 7.34415317404528 | epot = -123.934925934202 | etot = -98.804607062716 +690000 ekin = 17.2137917120142 | erot = 6.85316361120009 | epot = -123.304074630627 | etot = -99.2371193074124 +691000 ekin = 17.009061300303 | erot = 8.04723455588605 | epot = -122.926862515605 | etot = -97.8705666594159 +692000 ekin = 16.8427529291393 | erot = 9.64210590522718 | epot = -122.715486115409 | etot = -96.2306272810422 +693000 ekin = 16.6030310253516 | erot = 10.4924589289819 | epot = -122.768020487027 | etot = -95.6725305326935 +694000 ekin = 16.3048528654834 | erot = 12.4471190740222 | epot = -123.022286253553 | etot = -94.270314314047 +695000 ekin = 15.339802993942 | erot = 12.8071087066075 | epot = -123.319286176581 | etot = -95.1723744760314 +696000 ekin = 14.9987332166208 | erot = 15.2635629143938 | epot = -123.644497776405 | etot = -93.3822016453903 +697000 ekin = 14.940762697799 | erot = 14.9244275674713 | epot = -123.960109795361 | etot = -94.0949195300911 +698000 ekin = 14.0997549981025 | erot = 15.7381881754958 | epot = -124.107312815591 | etot = -94.2693696419927 +699000 ekin = 13.7943337632395 | erot = 16.0170549498387 | epot = -123.991134657769 | etot = -94.1797459446904 +700000 ekin = 12.8063636607364 | erot = 12.680481544518 | epot = -123.85162587337 | etot = -98.3647806681157 +701000 ekin = 12.8612106473772 | erot = 12.9911896973119 | epot = -123.747249168771 | etot = -97.8948488240819 +702000 ekin = 12.5373972410767 | erot = 12.6276758774894 | epot = -123.640580341737 | etot = -98.4755072231712 +703000 ekin = 12.6072489563843 | erot = 12.5468539742673 | epot = -123.699321244085 | etot = -98.545218313433 +704000 ekin = 12.6734208156719 | erot = 12.5270514569359 | epot = -123.756584691502 | etot = -98.5561124188939 +705000 ekin = 12.8445978291383 | erot = 12.750222980517 | epot = -123.976213049728 | etot = -98.3813922400731 +706000 ekin = 12.8449829535686 | erot = 13.5171315458091 | epot = -124.316370759914 | etot = -97.9542562605358 +707000 ekin = 12.8620546770194 | erot = 15.0519067703314 | epot = -124.917435471422 | etot = -97.0034740240716 +708000 ekin = 12.9796643069234 | erot = 14.8620447269899 | epot = -125.502317311951 | etot = -97.6606082780378 +709000 ekin = 13.4425028573336 | erot = 15.9332647617992 | epot = -126.272781545451 | etot = -96.8970139263186 +710000 ekin = 13.1547552000127 | erot = 17.8834151113392 | epot = -127.033117464091 | etot = -95.9949471527395 +711000 ekin = 13.4874377372487 | erot = 16.0607910461807 | epot = -127.504754023023 | etot = -97.9565252395938 +712000 ekin = 13.7924126544431 | erot = 15.2920613726707 | epot = -127.815103299365 | etot = -98.7306292722512 +713000 ekin = 13.9907440471021 | erot = 15.8322143325442 | epot = -128.080408121937 | etot = -98.2574497422907 +714000 ekin = 14.6731230864015 | erot = 14.6744003398262 | epot = -128.139315876289 | etot = -98.7917924500613 +715000 ekin = 14.9866978807952 | erot = 14.2251786521101 | epot = -127.99112794836 | etot = -98.7792514154548 +716000 ekin = 15.3347364297118 | erot = 15.1475300811861 | epot = -127.845332694351 | etot = -97.3630661834535 +717000 ekin = 15.7619963336696 | erot = 14.1476757849327 | epot = -127.888362278856 | etot = -97.9786901602535 +718000 ekin = 16.0048893455512 | erot = 15.6262184360819 | epot = -128.122619123465 | etot = -96.4915113418323 +719000 ekin = 16.6349193746809 | erot = 15.1484323248786 | epot = -128.272096588204 | etot = -96.4887448886448 +720000 ekin = 16.0143934659125 | erot = 14.5414311757607 | epot = -128.480047240563 | etot = -97.9242225988903 +721000 ekin = 15.8386507266873 | erot = 14.9433149722159 | epot = -128.906317156562 | etot = -98.1243514576583 +722000 ekin = 15.7282032498829 | erot = 15.9023039697213 | epot = -129.341717518457 | etot = -97.7112102988526 +723000 ekin = 15.731880435534 | erot = 17.749192011007 | epot = -129.777579686607 | etot = -96.2965072400656 +724000 ekin = 15.427042918024 | erot = 16.4686399920709 | epot = -130.116589837276 | etot = -98.2209069271809 +725000 ekin = 15.5672329831503 | erot = 16.0722969231333 | epot = -130.474940539864 | etot = -98.8354106335801 +726000 ekin = 16.1328135687716 | erot = 15.7741216094127 | epot = -130.724853139716 | etot = -98.8179179615313 +727000 ekin = 15.6837398672645 | erot = 16.6270161118848 | epot = -130.86237501229 | etot = -98.5516190331405 +728000 ekin = 14.6858065335577 | erot = 17.7598917766687 | epot = -130.772258770392 | etot = -98.3265604601657 +729000 ekin = 14.9842824776698 | erot = 17.3304276406768 | epot = -130.51834477387 | etot = -98.2036346555234 +730000 ekin = 14.9986618380551 | erot = 16.977161143267 | epot = -130.349888473804 | etot = -98.3740654924819 +731000 ekin = 15.072419946482 | erot = 15.5025002987448 | epot = -130.313937515373 | etot = -99.7390172701463 +732000 ekin = 15.0409370451248 | erot = 16.2573442357521 | epot = -130.274919889256 | etot = -98.9766386083787 +733000 ekin = 15.6185311878005 | erot = 15.0146206472834 | epot = -130.180741386029 | etot = -99.5475895509451 +734000 ekin = 15.7749636780031 | erot = 16.2756923502233 | epot = -130.196950898771 | etot = -98.1462948705443 +735000 ekin = 16.044115826757 | erot = 18.3259275272639 | epot = -130.085814501036 | etot = -95.7157711470153 +736000 ekin = 16.2339951070393 | erot = 16.3221994127835 | epot = -130.005795136695 | etot = -97.4496006168719 +737000 ekin = 16.4642106151448 | erot = 15.5915334244816 | epot = -129.968543990814 | etot = -97.9127999511879 +738000 ekin = 17.7474567806986 | erot = 13.3846078157141 | epot = -130.065858513805 | etot = -98.9337939173927 +739000 ekin = 18.2743829557154 | erot = 12.4537693748626 | epot = -130.333016566357 | etot = -99.6048642357788 +740000 ekin = 19.5421159739048 | erot = 13.9198719736109 | epot = -130.741176612734 | etot = -97.279188665218 +741000 ekin = 20.0405631999331 | erot = 13.8151974831221 | epot = -131.114870812315 | etot = -97.2591101292603 +742000 ekin = 20.1818484809558 | erot = 13.397127844109 | epot = -131.504055759369 | etot = -97.9250794343039 +743000 ekin = 20.0007073391441 | erot = 12.6273491140328 | epot = -132.076033929977 | etot = -99.4479774768002 +744000 ekin = 20.6160415767284 | erot = 13.5049314394245 | epot = -132.559227691432 | etot = -98.4382546752792 +745000 ekin = 20.944556948979 | erot = 13.0220816885235 | epot = -132.956762159222 | etot = -98.9901235217199 +746000 ekin = 21.6545317174542 | erot = 13.685648829312 | epot = -133.287520475787 | etot = -97.9473399290209 +747000 ekin = 21.8754679889551 | erot = 13.1649764213831 | epot = -133.499334676271 | etot = -98.4588902659332 +748000 ekin = 20.9798296230572 | erot = 14.3677983877726 | epot = -133.697635079704 | etot = -98.3500070688744 +749000 ekin = 21.2941195504557 | erot = 12.2988241905264 | epot = -133.964567395955 | etot = -100.371623654973 +750000 ekin = 20.8791041785629 | erot = 12.653626434287 | epot = -134.294471152444 | etot = -100.761740539594 +751000 ekin = 21.0339776589627 | erot = 12.9333552750725 | epot = -134.603899040048 | etot = -100.636566106013 +752000 ekin = 21.0774807924274 | erot = 12.7418232022087 | epot = -134.857220864973 | etot = -101.037916870337 +753000 ekin = 21.1546021542847 | erot = 11.3522599642878 | epot = -135.227146596956 | etot = -102.720284478383 +754000 ekin = 20.5989298905737 | erot = 11.1611855235251 | epot = -135.609613516534 | etot = -103.849498102435 +755000 ekin = 20.3529899217498 | erot = 10.721023454402 | epot = -135.85498251637 | etot = -104.780969140219 +756000 ekin = 19.9366508667302 | erot = 11.8706717129902 | epot = -135.957321057682 | etot = -104.149998477962 +757000 ekin = 19.4492537888836 | erot = 13.3040371984666 | epot = -136.055534015096 | etot = -103.302243027746 +758000 ekin = 18.870441602617 | erot = 13.940907005559 | epot = -135.932113520107 | etot = -103.120764911931 +759000 ekin = 18.4381079682431 | erot = 17.3593158119301 | epot = -135.430914119115 | etot = -99.6334903389415 +760000 ekin = 18.6535478425871 | erot = 16.3778024131385 | epot = -134.384013538437 | etot = -99.3526632827115 +761000 ekin = 18.0084310402216 | erot = 15.1920476092574 | epot = -132.912547865729 | etot = -99.7120692162498 +762000 ekin = 16.6250024488483 | erot = 14.6931539795508 | epot = -131.231500252283 | etot = -99.9133438238835 +763000 ekin = 15.9176228846105 | erot = 14.1239676637626 | epot = -129.548148653073 | etot = -99.5065581046994 +764000 ekin = 14.6501966418504 | erot = 13.2622214975588 | epot = -127.8921214723 | etot = -99.9797033328911 +765000 ekin = 13.9564269642774 | erot = 13.0613675990511 | epot = -126.543459959695 | etot = -99.525665396366 +766000 ekin = 13.6966651105155 | erot = 13.7626226983998 | epot = -125.41601449072 | etot = -97.9567266818045 +767000 ekin = 13.0978987393861 | erot = 12.1472706916983 | epot = -124.506389593956 | etot = -99.2612201628716 +768000 ekin = 12.4142543061902 | erot = 13.4245758119772 | epot = -123.786612364054 | etot = -97.9477822458871 +769000 ekin = 12.289582250433 | erot = 14.4568180345425 | epot = -123.42169845901 | etot = -96.6752981740347 +770000 ekin = 11.9859942037679 | erot = 14.6546247707137 | epot = -123.397779734471 | etot = -96.7571607599892 +771000 ekin = 11.8475710151106 | erot = 14.8012891749296 | epot = -123.869190330419 | etot = -97.220330140379 +772000 ekin = 11.7359793659099 | erot = 16.5883752490396 | epot = -124.768006930615 | etot = -96.4436523156657 +773000 ekin = 12.0733307671956 | erot = 16.5674235924411 | epot = -125.8522838928 | etot = -97.2115295331635 +774000 ekin = 12.5912612730351 | erot = 17.7892613421319 | epot = -127.008516926733 | etot = -96.6279943115656 +775000 ekin = 12.7512581989845 | erot = 19.0144480580651 | epot = -128.283580553391 | etot = -96.5178742963414 +776000 ekin = 13.4059786045676 | erot = 18.2473301169866 | epot = -129.393853982732 | etot = -97.7405452611776 +777000 ekin = 13.5315026296802 | erot = 18.1698856467946 | epot = -130.174580869581 | etot = -98.4731925931059 +778000 ekin = 13.6435316916632 | erot = 18.7285223705771 | epot = -130.610133816236 | etot = -98.2380797539954 +779000 ekin = 14.1728401216417 | erot = 19.3726258416256 | epot = -130.752679341931 | etot = -97.2072133786632 +780000 ekin = 14.3824254384742 | erot = 20.2805423869659 | epot = -130.435745396869 | etot = -95.7727775714289 +781000 ekin = 14.0634521502132 | erot = 20.3041404137273 | epot = -129.692899713134 | etot = -95.3253071491932 +782000 ekin = 13.8997273963854 | erot = 19.7159523322204 | epot = -128.633785263159 | etot = -95.0181055345536 +783000 ekin = 14.5805702964738 | erot = 20.1367377346838 | epot = -127.487731977038 | etot = -92.7704239458805 +784000 ekin = 14.7295631629307 | erot = 18.7608866458735 | epot = -126.409989889347 | etot = -92.9195400805428 +785000 ekin = 14.5790289372303 | erot = 17.4212018507806 | epot = -125.571701429834 | etot = -93.5714706418234 +786000 ekin = 14.2141516435897 | erot = 14.6518199402866 | epot = -124.99579338584 | etot = -96.1298218019636 +787000 ekin = 14.7660420282759 | erot = 14.3914140729782 | epot = -123.862400112953 | etot = -94.704944011699 +788000 ekin = 15.7494797111644 | erot = 12.6417731115525 | epot = -123.487492512329 | etot = -95.0962396896122 +789000 ekin = 16.4321389308584 | erot = 13.473476852771 | epot = -125.223738036691 | etot = -95.3181222530615 +790000 ekin = 17.3944355914136 | erot = 14.2126538098132 | epot = -127.385989262941 | etot = -95.7788998617147 +791000 ekin = 17.542338647832 | erot = 14.3976563853015 | epot = -128.733371193597 | etot = -96.7933761604638 +792000 ekin = 17.6101111277555 | erot = 14.9499923510334 | epot = -129.847480085414 | etot = -97.287376606625 +793000 ekin = 17.2581577551513 | erot = 14.1974755752264 | epot = -130.580364142478 | etot = -99.1247308121006 +794000 ekin = 16.7526133614699 | erot = 13.8636403294348 | epot = -130.973813390232 | etot = -100.357559699328 +795000 ekin = 16.152604382294 | erot = 12.334243547554 | epot = -131.129532088002 | etot = -102.642684158154 +796000 ekin = 15.6349941418492 | erot = 12.4142765623166 | epot = -131.056983721197 | etot = -103.007713017031 +797000 ekin = 14.5293002263362 | erot = 11.759988164135 | epot = -130.813311575391 | etot = -104.524023184919 +798000 ekin = 14.1135420442321 | erot = 10.8474101898055 | epot = -130.507414821542 | etot = -105.546462587504 +799000 ekin = 13.7157706752659 | erot = 9.15130327128856 | epot = -130.090152366231 | etot = -107.223078419677 +800000 ekin = 13.466337314599 | erot = 9.16452060462954 | epot = -129.481458557592 | etot = -106.850600638364 +801000 ekin = 12.8490622653902 | erot = 8.41321946082014 | epot = -128.96939259777 | etot = -107.70711087156 +802000 ekin = 13.7835122772835 | erot = 8.99586275439796 | epot = -128.432235679839 | etot = -105.652860648157 +803000 ekin = 14.0432574044119 | erot = 8.39637796858142 | epot = -128.177607032156 | etot = -105.737971659163 +804000 ekin = 13.8804500627769 | erot = 9.39056778995296 | epot = -128.315756136538 | etot = -105.044738283808 +805000 ekin = 15.0895769357648 | erot = 12.097064628012 | epot = -128.936249613784 | etot = -101.749608050007 +806000 ekin = 16.1350689976413 | erot = 13.8359534948363 | epot = -129.911548037637 | etot = -99.9405255451598 +807000 ekin = 16.6487380381467 | erot = 14.4054222723811 | epot = -131.140263119421 | etot = -100.086102808893 +808000 ekin = 16.8039057643138 | erot = 15.758311021031 | epot = -132.506156082331 | etot = -99.9439392969863 +809000 ekin = 17.2617813404718 | erot = 16.0034253999197 | epot = -133.900332428715 | etot = -100.635125688324 +810000 ekin = 17.4397194922013 | erot = 17.7015647323618 | epot = -135.106809970596 | etot = -99.9655257460327 +811000 ekin = 18.5552016569806 | erot = 15.5843807328861 | epot = -135.96875770198 | etot = -101.829175312113 +812000 ekin = 18.452942576441 | erot = 15.477064826739 | epot = -136.446107523642 | etot = -102.516100120462 +813000 ekin = 18.0113066408674 | erot = 16.4026644740323 | epot = -136.670265971773 | etot = -102.256294856873 +814000 ekin = 17.7868542427568 | erot = 17.3205338046621 | epot = -136.743768644101 | etot = -101.636380596682 +815000 ekin = 17.7754863920035 | erot = 18.7339508013952 | epot = -136.659989345585 | etot = -100.150552152186 +816000 ekin = 17.5065493572092 | erot = 17.1968985200238 | epot = -136.400538862054 | etot = -101.697090984821 +817000 ekin = 17.2588765439722 | erot = 15.6021104078125 | epot = -136.167389858462 | etot = -103.306402906677 +818000 ekin = 16.876373306759 | erot = 15.0018605000463 | epot = -135.870042114207 | etot = -103.991808307402 +819000 ekin = 16.1216438713348 | erot = 11.849282533174 | epot = -135.48669525519 | etot = -107.515768850682 +820000 ekin = 16.0944828339213 | erot = 11.8427524808205 | epot = -135.233140928133 | etot = -107.295905613391 +821000 ekin = 15.2472975456955 | erot = 12.9378009309886 | epot = -134.9979253824 | etot = -106.812826905715 +822000 ekin = 15.0752482356614 | erot = 12.7408900780694 | epot = -134.73675818524 | etot = -106.920619871509 +823000 ekin = 14.3163077300462 | erot = 14.6185288827014 | epot = -134.536623471219 | etot = -105.601786858471 +824000 ekin = 13.8825887049532 | erot = 12.1669825326315 | epot = -134.375629636678 | etot = -108.326058399093 +825000 ekin = 13.4148282268949 | erot = 12.0634646733754 | epot = -134.280881024751 | etot = -108.802588124481 +826000 ekin = 13.0078373334353 | erot = 11.1634559575192 | epot = -134.41845725157 | etot = -110.247163960615 +827000 ekin = 12.8902878621291 | erot = 12.4990264061792 | epot = -134.596703509122 | etot = -109.207389240814 +828000 ekin = 11.5646757522929 | erot = 11.7439684813367 | epot = -134.731964075119 | etot = -111.42331984149 +829000 ekin = 11.4309614137037 | erot = 13.7952087113858 | epot = -134.695440471703 | etot = -109.469270346614 +830000 ekin = 11.2235876454851 | erot = 14.6428741287968 | epot = -134.725488974224 | etot = -108.859027199942 +831000 ekin = 11.3182098379071 | erot = 14.8589328583958 | epot = -134.746515470085 | etot = -108.569372773782 +832000 ekin = 11.0441964839711 | erot = 14.7856408247966 | epot = -134.69527750462 | etot = -108.865440195853 +833000 ekin = 10.682877295527 | erot = 15.2548604731414 | epot = -134.718548488044 | etot = -108.780810719376 +834000 ekin = 10.7039002106542 | erot = 14.579139201353 | epot = -134.735534464464 | etot = -109.452495052457 +835000 ekin = 10.754888995261 | erot = 14.0543937892664 | epot = -134.87402565228 | etot = -110.064742867752 +836000 ekin = 10.1202700043138 | erot = 15.3187790957702 | epot = -134.966464909492 | etot = -109.527415809408 +837000 ekin = 9.36234114773746 | erot = 14.4708358739391 | epot = -135.110181941762 | etot = -111.277004920085 +838000 ekin = 8.87163067670835 | erot = 13.3319755420188 | epot = -135.14565322912 | etot = -112.942047010393 +839000 ekin = 8.26265877207255 | erot = 10.7014626128465 | epot = -134.963344229617 | etot = -115.999222844698 +840000 ekin = 8.65274084856224 | erot = 11.6602884297826 | epot = -134.667798245535 | etot = -114.35476896719 +841000 ekin = 9.09288775627553 | erot = 13.2429300960466 | epot = -134.331535715412 | etot = -111.99571786309 +842000 ekin = 8.73215975376481 | erot = 12.5284564004336 | epot = -133.950833272912 | etot = -112.690217118713 +843000 ekin = 8.65124461219831 | erot = 12.9503805345727 | epot = -133.483565630294 | etot = -111.881940483523 +844000 ekin = 8.92016599758121 | erot = 14.1441235679163 | epot = -133.090855503351 | etot = -110.026565937854 +845000 ekin = 9.24238498531286 | erot = 14.160904310189 | epot = -132.693134649357 | etot = -109.289845353855 +846000 ekin = 9.47094397282618 | erot = 13.9264005793038 | epot = -132.141006784401 | etot = -108.743662232271 +847000 ekin = 9.22691639989 | erot = 13.232116465856 | epot = -131.514293754285 | etot = -109.055260888539 +848000 ekin = 9.81639190741643 | erot = 13.4624778225235 | epot = -131.049818949204 | etot = -107.770949219264 +849000 ekin = 9.87499092114145 | erot = 13.4822095987195 | epot = -130.870134339441 | etot = -107.51293381958 +850000 ekin = 9.83564446645358 | erot = 12.6007895189713 | epot = -131.029439664217 | etot = -108.593005678792 +851000 ekin = 10.5153977481081 | erot = 13.1044039605866 | epot = -131.446208931684 | etot = -107.826407222989 +852000 ekin = 10.5652395268177 | erot = 13.6468476218826 | epot = -132.131050112736 | etot = -107.918962964036 +853000 ekin = 11.262037481661 | erot = 14.446483379253 | epot = -132.979088951229 | etot = -107.270568090315 +854000 ekin = 11.4569649466538 | erot = 17.1991085713483 | epot = -134.009370355524 | etot = -105.353296837522 +855000 ekin = 11.445488750865 | erot = 16.5529047086022 | epot = -134.943555963858 | etot = -106.945162504391 +856000 ekin = 11.2646195062545 | erot = 17.558083039108 | epot = -135.668419945928 | etot = -106.845717400566 +857000 ekin = 11.2354695936597 | erot = 16.7487718857675 | epot = -136.143808419399 | etot = -108.159566939972 +858000 ekin = 10.5439313741143 | erot = 18.2042876178967 | epot = -136.307794363773 | etot = -107.559575371762 +859000 ekin = 10.7672246081709 | erot = 17.9429149428159 | epot = -136.236481879082 | etot = -107.526342328095 +860000 ekin = 11.0765038715224 | erot = 15.1462206889691 | epot = -136.047337276816 | etot = -109.824612716324 +861000 ekin = 11.4922571976088 | erot = 14.5695602895126 | epot = -135.790868771919 | etot = -109.729051284798 +862000 ekin = 12.1881568645894 | erot = 15.0206074004975 | epot = -135.424809146931 | etot = -108.216044881844 +863000 ekin = 12.3866842688664 | erot = 13.1123151530289 | epot = -135.015770553593 | etot = -109.516771131698 +864000 ekin = 12.8632139181769 | erot = 13.7451008182927 | epot = -134.614814546035 | etot = -108.006499809565 +865000 ekin = 12.9638528536504 | erot = 13.6732291585873 | epot = -134.295821517661 | etot = -107.658739505423 +866000 ekin = 12.5285835028733 | erot = 14.008283117103 | epot = -133.888276396547 | etot = -107.351409776571 +867000 ekin = 12.8000471911401 | erot = 14.4698446946666 | epot = -133.467248927542 | etot = -106.197357041736 +868000 ekin = 13.1554690969182 | erot = 13.964610280343 | epot = -133.175453685062 | etot = -106.0553743078 +869000 ekin = 13.7120033028546 | erot = 11.8020589066468 | epot = -132.989469614359 | etot = -107.475407404858 +870000 ekin = 13.9391425121738 | erot = 13.0192309663512 | epot = -133.0787492608 | etot = -106.120375782275 +871000 ekin = 13.3534556427411 | erot = 13.3944244233334 | epot = -133.277418395417 | etot = -106.529538329343 +872000 ekin = 13.7050089765843 | erot = 11.495485697045 | epot = -133.445985589622 | etot = -108.245490915993 +873000 ekin = 13.8738540716938 | erot = 12.2832282136725 | epot = -133.643235472027 | etot = -107.486153186661 +874000 ekin = 13.8212081970824 | erot = 12.1151874051868 | epot = -133.808063577332 | etot = -107.871667975063 +875000 ekin = 14.0946798797608 | erot = 11.7035888290353 | epot = -133.895351646674 | etot = -108.097082937878 +876000 ekin = 14.1819210407418 | erot = 10.0686648643882 | epot = -134.058953727432 | etot = -109.808367822302 +877000 ekin = 13.5901545093495 | erot = 10.9480086211963 | epot = -134.241074066514 | etot = -109.702910935968 +878000 ekin = 13.4971281598819 | erot = 11.1672820818965 | epot = -134.290468904476 | etot = -109.626058662697 +879000 ekin = 13.3086598631466 | erot = 12.7622181194315 | epot = -134.337336158552 | etot = -108.266458175974 +880000 ekin = 12.7541898443434 | erot = 13.6844425966541 | epot = -134.456318873947 | etot = -108.017686432949 +881000 ekin = 12.704424051613 | erot = 12.7860717477841 | epot = -134.506208701955 | etot = -109.015712902558 +882000 ekin = 12.38175129326 | erot = 12.5269482810238 | epot = -134.475617168012 | etot = -109.566917593728 +883000 ekin = 12.8005161905499 | erot = 13.7653440439173 | epot = -134.385992892951 | etot = -107.820132658484 +884000 ekin = 12.3652892075703 | erot = 15.5648473454406 | epot = -134.222776727309 | etot = -106.292640174298 +885000 ekin = 12.0619930057671 | erot = 14.1939231875669 | epot = -134.080051417373 | etot = -107.824135224039 +886000 ekin = 12.2054674734484 | erot = 14.8698901321818 | epot = -133.957603716119 | etot = -106.882246110488 +887000 ekin = 12.1829993268256 | erot = 15.6890235183903 | epot = -133.904222766011 | etot = -106.032199920795 +888000 ekin = 11.8698368140704 | erot = 15.4726957926098 | epot = -134.032299812731 | etot = -106.689767206051 +889000 ekin = 11.8558062660389 | erot = 16.6333316988663 | epot = -134.313150343233 | etot = -105.824012378328 +890000 ekin = 11.7074193256418 | erot = 16.4561079507288 | epot = -134.686433124892 | etot = -106.522905848521 +891000 ekin = 11.8227765090214 | erot = 18.718819634335 | epot = -135.196066326519 | etot = -104.654470183162 +892000 ekin = 11.8650323220337 | erot = 19.9226451035174 | epot = -135.556241115282 | etot = -103.76856368973 +893000 ekin = 12.0470317758748 | erot = 19.3855445494598 | epot = -135.891211989264 | etot = -104.458635663929 +894000 ekin = 12.1250598934591 | erot = 19.2499377433869 | epot = -136.174199472749 | etot = -104.799201835903 +895000 ekin = 11.9703268745587 | erot = 18.9604233891347 | epot = -136.240824123016 | etot = -105.310073859322 +896000 ekin = 10.8580427095038 | erot = 16.9854081129452 | epot = -136.159057957534 | etot = -108.315607135085 +897000 ekin = 10.7026227472956 | erot = 17.4906089849623 | epot = -135.932613786588 | etot = -107.73938205433 +898000 ekin = 10.7568818714307 | erot = 19.3984017753267 | epot = -135.457667467377 | etot = -105.30238382062 +899000 ekin = 11.1540453865913 | erot = 20.6151680986397 | epot = -135.047602655699 | etot = -103.278389170468 +900000 ekin = 11.2175608638145 | erot = 19.8715641919662 | epot = -134.736413488125 | etot = -103.647288432344 +901000 ekin = 11.5101373877627 | erot = 17.8933441490503 | epot = -134.479708180581 | etot = -105.076226643768 +902000 ekin = 11.4087293028101 | erot = 20.4577282287692 | epot = -134.293838000833 | etot = -102.427380469254 +903000 ekin = 11.4178722691804 | erot = 17.4756725453983 | epot = -134.016292968863 | etot = -105.122748154284 +904000 ekin = 11.4124991341652 | erot = 16.9249725788514 | epot = -133.687544123328 | etot = -105.350072410311 +905000 ekin = 11.9954511177595 | erot = 14.3970744281279 | epot = -133.425037879226 | etot = -107.032512333339 +906000 ekin = 12.0771681940923 | erot = 14.9878917468925 | epot = -133.185172444762 | etot = -106.120112503778 +907000 ekin = 12.764164755251 | erot = 16.127921504246 | epot = -132.903026797284 | etot = -104.010940537786 +908000 ekin = 13.2416154546869 | erot = 14.0281141132319 | epot = -132.582508485649 | etot = -105.31277891773 +909000 ekin = 12.771252526275 | erot = 13.0977024687493 | epot = -132.229917788064 | etot = -106.36096279304 +910000 ekin = 12.9561361597062 | erot = 13.2736243804977 | epot = -131.821724501839 | etot = -105.591963961635 +911000 ekin = 12.9068816048144 | erot = 13.6485321023552 | epot = -131.407608343572 | etot = -104.852194636402 +912000 ekin = 13.2772456269506 | erot = 14.5242824475044 | epot = -130.977971232473 | etot = -103.176443158018 +913000 ekin = 13.1306998666374 | erot = 14.7149120267765 | epot = -130.52100490856 | etot = -102.675393015147 +914000 ekin = 12.8093566473286 | erot = 13.8806688643145 | epot = -130.224086240756 | etot = -103.534060729113 +915000 ekin = 12.8745710469366 | erot = 12.6676371277359 | epot = -130.008628800888 | etot = -104.466420626215 +916000 ekin = 13.223678815262 | erot = 13.4318130589697 | epot = -129.849039579721 | etot = -103.19354770549 +917000 ekin = 13.3230372229 | erot = 14.0310965196101 | epot = -129.790699621134 | etot = -102.436565878624 +918000 ekin = 12.4265792123797 | erot = 15.6148707504268 | epot = -129.8169124534 | etot = -101.775462490593 +919000 ekin = 12.220974434008 | erot = 14.1518762580801 | epot = -130.092421038386 | etot = -103.719570346298 +920000 ekin = 11.8569854116187 | erot = 12.9944440715349 | epot = -130.372816939904 | etot = -105.52138745675 +921000 ekin = 11.9745758153479 | erot = 13.7045518397409 | epot = -130.579378399795 | etot = -104.900250744706 +922000 ekin = 11.468261093001 | erot = 13.2111290377418 | epot = -130.67355905795 | etot = -105.994168927208 +923000 ekin = 11.2696141785986 | erot = 14.8033836218883 | epot = -130.604779557645 | etot = -104.531781757158 +924000 ekin = 10.9244534653336 | erot = 13.7528204728959 | epot = -130.350543738113 | etot = -105.673269799883 +925000 ekin = 10.748471352004 | erot = 14.9078929219465 | epot = -130.176002568529 | etot = -104.519638294578 +926000 ekin = 11.3564418867195 | erot = 13.6652442920639 | epot = -130.027164773435 | etot = -105.005478594652 +927000 ekin = 10.4765814318482 | erot = 13.503963295669 | epot = -130.028984607566 | etot = -106.048439880048 +928000 ekin = 10.3151612142982 | erot = 13.4727210163475 | epot = -130.188689943777 | etot = -106.400807713131 +929000 ekin = 10.151015523495 | erot = 13.3951209233371 | epot = -130.553489617275 | etot = -107.007353170443 +930000 ekin = 10.6440405527458 | erot = 13.9301361945634 | epot = -131.189687645539 | etot = -106.61551089823 +931000 ekin = 10.595775497238 | erot = 14.6636196854686 | epot = -132.016296679709 | etot = -106.756901497003 +932000 ekin = 10.5626271885369 | erot = 15.4572471481413 | epot = -133.026095879091 | etot = -107.006221542412 +933000 ekin = 10.6490766959895 | erot = 15.3038627591627 | epot = -134.057954665411 | etot = -108.105015210259 +934000 ekin = 11.1937467149855 | erot = 14.5937452805419 | epot = -134.893443999866 | etot = -109.105952004339 +935000 ekin = 11.3488940339692 | erot = 15.4807492324312 | epot = -135.595176425098 | etot = -108.765533158698 +936000 ekin = 11.3744288823135 | erot = 17.1112970346653 | epot = -135.937168990954 | etot = -107.451443073975 +937000 ekin = 11.1657976751234 | erot = 15.7606154645341 | epot = -135.860030492702 | etot = -108.933617353045 +938000 ekin = 11.1829378761665 | erot = 14.4189121235504 | epot = -135.351180399316 | etot = -109.749330399599 +939000 ekin = 10.5851827305985 | erot = 14.3272900546407 | epot = -134.523380642394 | etot = -109.610907857155 +940000 ekin = 10.4903114388466 | erot = 13.3425812668397 | epot = -133.366179589938 | etot = -109.533286884252 +941000 ekin = 9.52063942115619 | erot = 13.5352915653376 | epot = -132.123237965418 | etot = -109.067306978924 +942000 ekin = 8.74706267981836 | erot = 12.4110030144493 | epot = -130.908618290138 | etot = -109.75055259587 +943000 ekin = 8.9549636255604 | erot = 12.473092229632 | epot = -130.058250494687 | etot = -108.630194639494 +944000 ekin = 8.98821699338599 | erot = 12.3873422546726 | epot = -129.470595306546 | etot = -108.095036058487 +945000 ekin = 9.09403438906677 | erot = 13.3614165234565 | epot = -129.289328427114 | etot = -106.833877514591 +946000 ekin = 9.95513668013973 | erot = 13.1181423396425 | epot = -129.364277357447 | etot = -106.290998337665 +947000 ekin = 10.4725815693779 | erot = 14.4861547677326 | epot = -129.471170334547 | etot = -104.512433997437 +948000 ekin = 10.5412885878304 | erot = 13.3820116775197 | epot = -129.651745198669 | etot = -105.728444933319 +949000 ekin = 11.3390682449021 | erot = 12.8346039395199 | epot = -129.853068461769 | etot = -105.679396277347 +950000 ekin = 11.8794959542905 | erot = 13.7224705305763 | epot = -130.324131082403 | etot = -104.722164597536 +951000 ekin = 12.5217035454997 | erot = 13.7824684702848 | epot = -130.875487062828 | etot = -104.571315047044 +952000 ekin = 12.9654307635086 | erot = 16.0387315207576 | epot = -131.40058602524 | etot = -102.396423740973 +953000 ekin = 13.6692114039146 | erot = 16.0850126958549 | epot = -132.148229978679 | etot = -102.39400587891 +954000 ekin = 14.8931307274368 | erot = 15.0103797716773 | epot = -132.83987069331 | etot = -102.936360194196 +955000 ekin = 15.9734871407686 | erot = 17.0379601351532 | epot = -133.552722143682 | etot = -100.541274867761 +956000 ekin = 17.025406676142 | erot = 17.0899757623241 | epot = -134.234131690523 | etot = -100.118749252057 +957000 ekin = 17.540142645343 | erot = 19.3177114307724 | epot = -134.708519326177 | etot = -97.8506652500616 +958000 ekin = 18.4016736399259 | erot = 18.4240376247552 | epot = -134.751779209151 | etot = -97.9260679444695 +959000 ekin = 18.5940884762891 | erot = 18.347307346037 | epot = -134.358100904725 | etot = -97.4167050823986 +960000 ekin = 17.3247294602177 | erot = 17.9629603679272 | epot = -133.460927708724 | etot = -98.1732378805788 +961000 ekin = 17.2306824725633 | erot = 16.7825045081642 | epot = -132.047541059604 | etot = -98.034354078877 +962000 ekin = 16.2087363183156 | erot = 16.0768499749745 | epot = -130.288840410701 | etot = -98.0032541174114 +963000 ekin = 15.5499262105869 | erot = 14.3007373099541 | epot = -128.435374572404 | etot = -98.5847110518625 +964000 ekin = 14.3795154917121 | erot = 12.9245269567082 | epot = -126.598763146099 | etot = -99.2947206976787 +965000 ekin = 13.9616806865964 | erot = 12.1486231334406 | epot = -124.963453525024 | etot = -98.8531497049867 +966000 ekin = 13.0155517382896 | erot = 12.0708514834773 | epot = -123.798553047858 | etot = -98.7121498260912 +967000 ekin = 12.3914707709181 | erot = 12.6226506849405 | epot = -122.905482106119 | etot = -97.8913606502604 +968000 ekin = 11.8072823696662 | erot = 13.4385266736669 | epot = -122.270775658815 | etot = -97.0249666154823 +969000 ekin = 11.9064670191824 | erot = 12.8382084862548 | epot = -122.129056637682 | etot = -97.384381132245 +970000 ekin = 11.9766530746505 | erot = 13.8039016134453 | epot = -122.193888973048 | etot = -96.4133342849519 +971000 ekin = 12.159620075604 | erot = 15.341662000356 | epot = -122.480873285093 | etot = -94.979591209133 +972000 ekin = 12.5956668716873 | erot = 15.9071846222339 | epot = -122.764232934679 | etot = -94.2613814407573 +973000 ekin = 12.7616925472694 | erot = 16.6414713137862 | epot = -122.899748930094 | etot = -93.4965850690388 +974000 ekin = 12.1483639370037 | erot = 17.4786162173978 | epot = -122.866366650609 | etot = -93.2393864962079 +975000 ekin = 11.4260688976502 | erot = 15.2790586824017 | epot = -122.596269183682 | etot = -95.8911416036296 +976000 ekin = 10.9216516769999 | erot = 15.7519482858511 | epot = -122.319486518036 | etot = -95.6458865551851 +977000 ekin = 10.5216621983397 | erot = 16.0123618137797 | epot = -121.88416826783 | etot = -95.3501442557107 +978000 ekin = 10.3472075940097 | erot = 13.5450182182488 | epot = -121.556550278314 | etot = -97.6643244660555 +979000 ekin = 10.803310231626 | erot = 12.1528830044995 | epot = -121.334850754201 | etot = -98.3786575180758 +980000 ekin = 10.6895825619785 | erot = 10.2559339362194 | epot = -121.109151001193 | etot = -100.163634502995 +981000 ekin = 10.9968022195623 | erot = 9.53919152162597 | epot = -121.208373587714 | etot = -100.672379846526 +982000 ekin = 11.5373240954519 | erot = 10.4706043721691 | epot = -121.620091061045 | etot = -99.6121625934238 +983000 ekin = 11.9172748436564 | erot = 11.8485953609637 | epot = -122.126407301373 | etot = -98.3605370967528 +984000 ekin = 13.0889146402121 | erot = 12.4878324404259 | epot = -122.927779363662 | etot = -97.3510322830236 +985000 ekin = 13.7889356146106 | erot = 13.380892004438 | epot = -123.875604227913 | etot = -96.7057766088645 +986000 ekin = 14.6369741755906 | erot = 12.4272204904535 | epot = -124.920620462043 | etot = -97.856425795999 +987000 ekin = 15.2725809361966 | erot = 13.5313107393271 | epot = -125.964544413027 | etot = -97.1606527375033 +988000 ekin = 15.9394864570637 | erot = 13.7633278728772 | epot = -127.059285682591 | etot = -97.3564713526504 +989000 ekin = 16.7034442412101 | erot = 14.8636845615711 | epot = -128.067821490903 | etot = -96.5006926881219 +990000 ekin = 17.3598679987177 | erot = 16.0856163930444 | epot = -128.903898946066 | etot = -95.4584145543041 +991000 ekin = 18.3664301585912 | erot = 18.399967003844 | epot = -129.448926673439 | etot = -92.6825295110034 +992000 ekin = 18.6308602186873 | erot = 18.749563061417 | epot = -129.691537637601 | etot = -92.3111143574964 +993000 ekin = 18.6355049261452 | erot = 18.5256774093057 | epot = -129.643793449999 | etot = -92.4826111145484 +994000 ekin = 18.5321198188331 | erot = 20.2443491138306 | epot = -129.571189129639 | etot = -90.7947201969756 +995000 ekin = 18.3418410607544 | erot = 21.5710227479243 | epot = -129.467040986364 | etot = -89.5541771776855 +996000 ekin = 18.4398021901266 | erot = 19.2378942069908 | epot = -129.422390629411 | etot = -91.7446942322936 +997000 ekin = 18.0450043136384 | erot = 19.2580344833964 | epot = -129.394444796923 | etot = -92.0914059998885 +998000 ekin = 18.2062986210865 | erot = 19.8852445419398 | epot = -129.196206296319 | etot = -91.1046631332925 +999000 ekin = 18.7341404690777 | erot = 19.3234540065288 | epot = -128.842851529638 | etot = -90.7852570540318 +1000000 ekin = 18.6583620145008 | erot = 16.6848586754118 | epot = -128.346967556883 | etot = -93.0037468669704 + 1000000 417.29959 -129.94144 1.5944718 -109.68861 0.062656806 39304000 +Loop time of 22.0444 on 1 procs for 1000000 steps with 16 atoms + +Performance: 66.864 ns/day, 0.359 hours/ns, 45363.046 timesteps/s, 725.809 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 17.105 | 17.105 | 17.105 | 0.0 | 77.59 +Bond | 0.67238 | 0.67238 | 0.67238 | 0.0 | 3.05 +Neigh | 0.016373 | 0.016373 | 0.016373 | 0.0 | 0.07 +Comm | 0.29298 | 0.29298 | 0.29298 | 0.0 | 1.33 +Output | 0.12608 | 0.12608 | 0.12608 | 0.0 | 0.57 +Modify | 3.5001 | 3.5001 | 3.5001 | 0.0 | 15.88 +Other | | 0.3318 | | | 1.51 + +Nlocal: 16 ave 16 max 16 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 105 +Ave neighs/atom = 6.5625 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:22 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..206baf6975 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 @@ -0,0 +1,1105 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -131.137679785989 | etot = -98.3191045555159 +Per MPI rank memory allocation (min/avg/max) = 7.232 | 7.264 | 7.344 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -132.72638 1.5886993 -115.01736 0.034438461 39304000 +1000 ekin = 16.0915734242602 | erot = 18.1131907799999 | epot = -129.960758701937 | etot = -95.7559944976768 +2000 ekin = 16.3445512762835 | erot = 14.8147206882645 | epot = -128.691660333568 | etot = -97.5323883690197 +3000 ekin = 16.1759985834646 | erot = 13.3386627579329 | epot = -127.637971683901 | etot = -98.1233103425036 +4000 ekin = 15.6545057241999 | erot = 13.1236462676588 | epot = -126.77586522849 | etot = -97.9977132366311 +5000 ekin = 15.1758404392585 | erot = 13.0857411237448 | epot = -126.165703238772 | etot = -97.9041216757689 +6000 ekin = 15.1413640531156 | erot = 13.3861657435171 | epot = -125.809598527628 | etot = -97.282068730995 +7000 ekin = 15.1774504947436 | erot = 12.9637778426295 | epot = -125.76113527326 | etot = -97.619906935887 +8000 ekin = 14.5595245432668 | erot = 11.3238063810154 | epot = -125.967991017334 | etot = -100.084660093052 +9000 ekin = 14.8927108369538 | erot = 11.4216264838282 | epot = -126.397480899428 | etot = -100.083143578646 +10000 ekin = 15.5221737145433 | erot = 13.8269758172558 | epot = -126.818238777881 | etot = -97.4690892460816 +11000 ekin = 15.0053200181519 | erot = 15.5093678794875 | epot = -127.17066902637 | etot = -96.655981128731 +12000 ekin = 15.0557850237049 | erot = 14.2278865862305 | epot = -127.611853301489 | etot = -98.3281816915534 +13000 ekin = 15.5007975534887 | erot = 14.1582062863706 | epot = -128.190402950814 | etot = -98.5313991109551 +14000 ekin = 15.9123478432744 | erot = 13.2884863097123 | epot = -128.77065424977 | etot = -99.569820096783 +15000 ekin = 16.1874456366003 | erot = 13.1984958116548 | epot = -129.368116004472 | etot = -99.9821745562173 +16000 ekin = 16.987752968205 | erot = 14.5429430611517 | epot = -129.945650295152 | etot = -98.4149542657954 +17000 ekin = 17.5894073729048 | erot = 14.2448280375259 | epot = -130.400289816865 | etot = -98.5660544064342 +18000 ekin = 17.0413568209226 | erot = 14.1346624808112 | epot = -130.57596518431 | etot = -99.3999458825761 +19000 ekin = 16.5319443382977 | erot = 13.947657144873 | epot = -130.450874378105 | etot = -99.9712728949343 +20000 ekin = 15.4026055300823 | erot = 15.2171572465952 | epot = -130.066075567863 | etot = -99.4463127911858 +21000 ekin = 14.9726687525356 | erot = 14.9897963360516 | epot = -129.561873475372 | etot = -99.599408386785 +22000 ekin = 14.8466725545297 | erot = 15.0786863271903 | epot = -128.948825210294 | etot = -99.0234663285742 +23000 ekin = 14.2532915697464 | erot = 13.1592595555267 | epot = -128.266976221893 | etot = -100.85442509662 +24000 ekin = 14.0658797888538 | erot = 11.3521316996468 | epot = -127.585110784609 | etot = -102.167099296108 +25000 ekin = 13.6024746157443 | erot = 11.742533824335 | epot = -127.070880960057 | etot = -101.725872519978 +26000 ekin = 13.0978066432598 | erot = 13.5826324483342 | epot = -126.769055195787 | etot = -100.088616104193 +27000 ekin = 11.9699125238479 | erot = 13.1150613622135 | epot = -126.7844815598 | etot = -101.699507673739 +28000 ekin = 10.976958959255 | erot = 13.6899050629201 | epot = -126.937013027768 | etot = -102.270149005593 +29000 ekin = 11.0368750062285 | erot = 12.709718724462 | epot = -127.369395793738 | etot = -103.622802063048 +30000 ekin = 10.8238378103432 | erot = 14.1297110441393 | epot = -127.987976670544 | etot = -103.034427816061 +31000 ekin = 11.1817723397155 | erot = 13.7202852392807 | epot = -128.851290355668 | etot = -103.949232776672 +32000 ekin = 11.9975217177556 | erot = 14.2657511631903 | epot = -129.880371605081 | etot = -103.617098724135 +33000 ekin = 12.5203490340081 | erot = 15.8304065565672 | epot = -131.014428299273 | etot = -102.663672708697 +34000 ekin = 12.0696862490131 | erot = 16.9564094479006 | epot = -132.324011685246 | etot = -103.297915988333 +35000 ekin = 11.7726407778174 | erot = 17.990672971408 | epot = -133.663597856935 | etot = -103.900284107709 +36000 ekin = 11.9959593870982 | erot = 17.3956522997854 | epot = -134.862973450605 | etot = -105.471361763722 +37000 ekin = 12.3526748777694 | erot = 18.2934291366227 | epot = -135.947502079273 | etot = -105.301398064881 +38000 ekin = 12.2423038130269 | erot = 18.1018836744392 | epot = -136.801871054289 | etot = -106.457683566823 +39000 ekin = 12.3301933819594 | erot = 18.4512027729023 | epot = -137.321697704824 | etot = -106.540301549962 +40000 ekin = 11.9214026505523 | erot = 18.155853425263 | epot = -137.484973787963 | etot = -107.407717712147 +41000 ekin = 12.2283801694364 | erot = 16.5594427515912 | epot = -137.235774487483 | etot = -108.447951566455 +42000 ekin = 12.2314632281809 | erot = 17.0024712401299 | epot = -136.723923546115 | etot = -107.489989077804 +43000 ekin = 11.5473242505992 | erot = 18.1570126474715 | epot = -136.048887123393 | etot = -106.344550225323 +44000 ekin = 11.0056443389832 | erot = 17.5202845883571 | epot = -135.346714231662 | etot = -106.820785304322 +45000 ekin = 10.3089452018478 | erot = 15.5453434092819 | epot = -134.738395816973 | etot = -108.884107205843 +46000 ekin = 9.48705433272769 | erot = 15.6671792391693 | epot = -134.176879085244 | etot = -109.022645513347 +47000 ekin = 9.18503548542159 | erot = 15.8180331675045 | epot = -133.624329948875 | etot = -108.621261295949 +48000 ekin = 9.10761376026737 | erot = 15.2682372491717 | epot = -133.032908706349 | etot = -108.65705769691 +49000 ekin = 8.65668957250512 | erot = 13.0944047989688 | epot = -132.550858027152 | etot = -110.799763655678 +50000 ekin = 8.1737259790025 | erot = 14.1949347253049 | epot = -132.2185709826 | etot = -109.849910278292 +51000 ekin = 8.21916407653718 | erot = 15.2388404404011 | epot = -131.883447609852 | etot = -108.425443092913 +52000 ekin = 8.1845083787042 | erot = 15.788134210059 | epot = -131.669258926228 | etot = -107.696616337465 +53000 ekin = 8.65161111403999 | erot = 17.068486763557 | epot = -131.618869332305 | etot = -105.898771454708 +54000 ekin = 8.90576877224079 | erot = 18.0582236265828 | epot = -131.689941436948 | etot = -104.725949038125 +55000 ekin = 9.24202585479757 | erot = 14.9731119730928 | epot = -131.819084800161 | etot = -107.603946972271 +56000 ekin = 8.88882310600324 | erot = 15.1891758585241 | epot = -131.975081416319 | etot = -107.897082451792 +57000 ekin = 8.94491042496245 | erot = 14.4108327591405 | epot = -132.246801477382 | etot = -108.891058293279 +58000 ekin = 9.57648602676765 | erot = 13.3529125589093 | epot = -132.56882440802 | etot = -109.639425822343 +59000 ekin = 10.3109680181628 | erot = 13.8677646293818 | epot = -132.891622299369 | etot = -108.712889651825 +60000 ekin = 10.0897668833558 | erot = 14.3091845020349 | epot = -133.20939158103 | etot = -108.810440195639 +61000 ekin = 10.290789659164 | erot = 12.5797002428319 | epot = -133.446868280818 | etot = -110.576378378822 +62000 ekin = 10.7068064774009 | erot = 13.2073275266195 | epot = -133.677681123353 | etot = -109.763547119333 +63000 ekin = 10.5676870641081 | erot = 13.735975736358 | epot = -133.826597743211 | etot = -109.522934942745 +64000 ekin = 11.0603266771933 | erot = 13.7863043276276 | epot = -133.950208397973 | etot = -109.103577393152 +65000 ekin = 10.6704349910448 | erot = 11.6124881615164 | epot = -133.950498994477 | etot = -111.667575841916 +66000 ekin = 10.5670030718972 | erot = 10.8876772742217 | epot = -133.847500084089 | etot = -112.39281973797 +67000 ekin = 10.7868181650423 | erot = 11.5085527656524 | epot = -133.790955553073 | etot = -111.495584622378 +68000 ekin = 11.3210825282139 | erot = 12.0516390700809 | epot = -133.788999651569 | etot = -110.416278053274 +69000 ekin = 11.4223846034049 | erot = 11.9043057631203 | epot = -133.879195860376 | etot = -110.552505493851 +70000 ekin = 11.7601725001356 | erot = 11.8946373824682 | epot = -133.974361358016 | etot = -110.319551475413 +71000 ekin = 11.9369565657213 | erot = 12.1587051890993 | epot = -134.06649094326 | etot = -109.970829188439 +72000 ekin = 12.2201356783385 | erot = 13.4203096414169 | epot = -134.148152400829 | etot = -108.507707081074 +73000 ekin = 11.7316097869837 | erot = 15.2661105057596 | epot = -134.197324788334 | etot = -107.199604495591 +74000 ekin = 11.5690454821182 | erot = 13.4185622894577 | epot = -134.084325017159 | etot = -109.096717245583 +75000 ekin = 11.3541437997286 | erot = 12.5773883852486 | epot = -133.907173454644 | etot = -109.975641269667 +76000 ekin = 11.740167238967 | erot = 12.0171543614756 | epot = -133.707208332066 | etot = -109.949886731623 +77000 ekin = 11.5941480714565 | erot = 11.3641007358234 | epot = -133.461741313057 | etot = -110.503492505777 +78000 ekin = 11.7433960085455 | erot = 11.5091759189829 | epot = -133.211758849829 | etot = -109.959186922301 +79000 ekin = 11.6812633246783 | erot = 11.1354353644819 | epot = -132.913438827558 | etot = -110.096740138397 +80000 ekin = 12.4071653100863 | erot = 9.00188979502124 | epot = -132.719598371346 | etot = -111.310543266239 +81000 ekin = 12.6725361317755 | erot = 10.0624404211498 | epot = -132.652952964947 | etot = -109.917976412022 +82000 ekin = 12.5350998837219 | erot = 10.0263772168773 | epot = -132.790356964392 | etot = -110.228879863793 +83000 ekin = 12.7855032943191 | erot = 10.8502686831836 | epot = -132.979108225794 | etot = -109.343336248291 +84000 ekin = 12.7147866504013 | erot = 12.0987110978396 | epot = -133.207699067029 | etot = -108.394201318788 +85000 ekin = 12.4318211562989 | erot = 13.8366282022955 | epot = -133.445467029335 | etot = -107.177017670741 +86000 ekin = 12.9409373725302 | erot = 11.7015118858333 | epot = -133.683038178489 | etot = -109.040588920126 +87000 ekin = 13.354234292103 | erot = 13.3370432943118 | epot = -133.969966837143 | etot = -107.278689250728 +88000 ekin = 13.5612268384264 | erot = 12.836777717707 | epot = -134.226306622826 | etot = -107.828302066693 +89000 ekin = 13.6432048747635 | erot = 12.6826068084665 | epot = -134.529852057328 | etot = -108.204040374098 +90000 ekin = 13.7316673862683 | erot = 13.6890146705956 | epot = -134.865860116451 | etot = -107.445178059587 +91000 ekin = 13.793156118478 | erot = 12.3833233041062 | epot = -135.075133149533 | etot = -108.898653726949 +92000 ekin = 14.149859068654 | erot = 13.335295026605 | epot = -135.149724950008 | etot = -107.664570854749 +93000 ekin = 13.4980981353872 | erot = 15.839915962006 | epot = -135.091526446813 | etot = -105.75351234942 +94000 ekin = 13.5365193696502 | erot = 16.1422521803842 | epot = -134.821112082621 | etot = -105.142340532587 +95000 ekin = 12.8768504224914 | erot = 16.5006661696424 | epot = -134.411357406747 | etot = -105.033840814613 +96000 ekin = 12.7317120655562 | erot = 17.9157627764991 | epot = -133.813467873532 | etot = -103.165993031477 +97000 ekin = 12.3620275480032 | erot = 15.8088677905014 | epot = -133.036335674756 | etot = -104.865440336251 +98000 ekin = 12.6047637501621 | erot = 15.6670590119394 | epot = -132.381652529338 | etot = -104.109829767237 +99000 ekin = 12.772362081575 | erot = 15.8664620748852 | epot = -131.817074700568 | etot = -103.178250544108 +100000 ekin = 12.9540440847007 | erot = 12.4848150466462 | epot = -131.419169306588 | etot = -105.980310175241 +101000 ekin = 12.8094026921687 | erot = 14.2352897206951 | epot = -131.233253678842 | etot = -104.188561265978 +102000 ekin = 12.9075167891449 | erot = 15.7903246648522 | epot = -131.287129201557 | etot = -102.58928774756 +103000 ekin = 12.8268218514855 | erot = 15.2926771721625 | epot = -131.552091540385 | etot = -103.432592516737 +104000 ekin = 12.860831753567 | erot = 15.6609633521036 | epot = -132.011631626406 | etot = -103.489836520735 +105000 ekin = 12.6856584399003 | erot = 15.8393109865105 | epot = -132.442611390941 | etot = -103.91764196453 +106000 ekin = 12.7490296627693 | erot = 16.4923225385789 | epot = -132.819026273508 | etot = -103.57767407216 +107000 ekin = 13.1257231720193 | erot = 15.9047147356431 | epot = -132.9779702812 | etot = -103.947532373538 +108000 ekin = 12.9781624509355 | erot = 16.7386244266203 | epot = -133.008694729617 | etot = -103.291907852061 +109000 ekin = 13.1080842306847 | erot = 17.3246912941556 | epot = -132.846381558103 | etot = -102.413606033263 +110000 ekin = 12.9475997478039 | erot = 16.7850636978276 | epot = -132.497755741303 | etot = -102.765092295671 +111000 ekin = 12.8408247556273 | erot = 14.6321690150569 | epot = -131.894060346807 | etot = -104.421066576123 +112000 ekin = 12.7390861304882 | erot = 15.1117102902424 | epot = -130.984815863023 | etot = -103.134019442292 +113000 ekin = 12.8023139379481 | erot = 14.2324468707309 | epot = -129.882034899179 | etot = -102.8472740905 +114000 ekin = 12.6751738711337 | erot = 13.4254865804269 | epot = -128.756084659542 | etot = -102.655424207982 +115000 ekin = 12.557402062209 | erot = 13.8313460573849 | epot = -127.640176987516 | etot = -101.251428867922 +116000 ekin = 12.2716056143536 | erot = 13.9615225919651 | epot = -126.709200713432 | etot = -100.476072507113 +117000 ekin = 12.2847487950703 | erot = 13.6658123026522 | epot = -125.940464748038 | etot = -99.9899036503155 +118000 ekin = 12.347565234157 | erot = 13.4953928075455 | epot = -125.314722779843 | etot = -99.4717647381409 +119000 ekin = 12.3072829088613 | erot = 11.56019171662 | epot = -125.058806664351 | etot = -101.19133203887 +120000 ekin = 12.6296065527395 | erot = 11.0377809484387 | epot = -125.099637270972 | etot = -101.432249769794 +121000 ekin = 12.9145904443762 | erot = 13.9293169064353 | epot = -125.374907702351 | etot = -98.5310003515397 +122000 ekin = 13.5256452707358 | erot = 14.3717971253563 | epot = -125.827679973218 | etot = -97.9302375771264 +123000 ekin = 13.198802866049 | erot = 13.8107684289809 | epot = -126.275164852546 | etot = -99.2655935575157 +124000 ekin = 13.4518200076391 | erot = 15.4211124799704 | epot = -126.829001981501 | etot = -97.9560694938919 +125000 ekin = 13.6280016089997 | erot = 14.8298658476017 | epot = -127.205034447317 | etot = -98.7471669907156 +126000 ekin = 14.0397253286273 | erot = 16.0000098172294 | epot = -127.428770535868 | etot = -97.3890353900114 +127000 ekin = 13.8129336121093 | erot = 15.8531342695909 | epot = -127.500620517311 | etot = -97.8345526356106 +128000 ekin = 14.5061529689428 | erot = 14.8309580426828 | epot = -127.382851147517 | etot = -98.0457401358917 +129000 ekin = 14.2869042038546 | erot = 12.5620727215151 | epot = -127.305998717116 | etot = -100.457021791747 +130000 ekin = 14.4107502489808 | erot = 10.7964820337384 | epot = -127.311709857223 | etot = -102.104477574504 +131000 ekin = 14.3444673612414 | erot = 10.5888492005681 | epot = -127.326961511477 | etot = -102.393644949667 +132000 ekin = 14.3594541413417 | erot = 10.320464075859 | epot = -127.305521202206 | etot = -102.625602985006 +133000 ekin = 14.1546729294946 | erot = 11.0859672393095 | epot = -127.303615695499 | etot = -102.062975526695 +134000 ekin = 14.0570010332958 | erot = 12.3312282654639 | epot = -127.315060459314 | etot = -100.926831160555 +135000 ekin = 13.8473879798681 | erot = 13.0027980951685 | epot = -127.252918803603 | etot = -100.402732728566 +136000 ekin = 13.4783448344795 | erot = 12.3181728167375 | epot = -127.18263098152 | etot = -101.386113330303 +137000 ekin = 13.3123106942823 | erot = 13.5051604453636 | epot = -127.08518294385 | etot = -100.267711804204 +138000 ekin = 13.4309678557282 | erot = 13.1985799236462 | epot = -127.143176389732 | etot = -100.513628610357 +139000 ekin = 14.0341574099361 | erot = 12.592173678287 | epot = -127.630455692374 | etot = -101.004124604151 +140000 ekin = 13.8065761622945 | erot = 13.5119869120374 | epot = -128.179355103039 | etot = -100.860792028707 +141000 ekin = 13.9214361852354 | erot = 13.3848320157243 | epot = -128.251831418661 | etot = -100.945563217702 +142000 ekin = 13.934909380203 | erot = 11.8831702139305 | epot = -128.331562017751 | etot = -102.513482423617 +143000 ekin = 14.0700905519444 | erot = 10.619272505908 | epot = -128.561461044053 | etot = -103.872097986201 +144000 ekin = 14.3846568066528 | erot = 11.0308870704306 | epot = -128.895057471406 | etot = -103.479513594323 +145000 ekin = 14.9295000268487 | erot = 11.80072002172 | epot = -129.156865883934 | etot = -102.426645835365 +146000 ekin = 15.0588681489582 | erot = 11.6178166529404 | epot = -129.47454946755 | etot = -102.797864665651 +147000 ekin = 15.2106427102622 | erot = 11.0376270042099 | epot = -129.927765438226 | etot = -103.679495723754 +148000 ekin = 15.0876610117964 | erot = 11.9374908285857 | epot = -130.557482212129 | etot = -103.532330371747 +149000 ekin = 14.7490538017439 | erot = 11.9315940063832 | epot = -131.322108511717 | etot = -104.641460703589 +150000 ekin = 15.2657424668262 | erot = 12.1726110910327 | epot = -131.985788180337 | etot = -104.547434622478 +151000 ekin = 14.5781518851264 | erot = 13.9496009411186 | epot = -132.673335698855 | etot = -104.14558287261 +152000 ekin = 14.5777113379811 | erot = 13.4755555746181 | epot = -133.162587051672 | etot = -105.109320139073 +153000 ekin = 14.6773814043059 | erot = 12.9849504561485 | epot = -133.330572771012 | etot = -105.668240910557 +154000 ekin = 14.8598979227303 | erot = 13.0480139509153 | epot = -133.356298154222 | etot = -105.448386280576 +155000 ekin = 14.5658462808371 | erot = 12.7291316324933 | epot = -133.159457277165 | etot = -105.864479363835 +156000 ekin = 14.6072311785003 | erot = 13.4815572745023 | epot = -132.755625124995 | etot = -104.666836671993 +157000 ekin = 14.7186895782839 | erot = 11.514964433911 | epot = -132.443538170593 | etot = -106.209884158398 +158000 ekin = 14.756915811197 | erot = 11.2678012861988 | epot = -132.19840267674 | etot = -106.173685579344 +159000 ekin = 14.5674148933329 | erot = 10.8738418737426 | epot = -131.950323387759 | etot = -106.509066620683 +160000 ekin = 14.0467728438122 | erot = 11.063386097205 | epot = -131.797209529149 | etot = -106.687050588132 +161000 ekin = 14.5555554295251 | erot = 12.8052370294303 | epot = -131.76970435803 | etot = -104.408911899074 +162000 ekin = 14.6977677167711 | erot = 12.2364421421908 | epot = -131.778479435647 | etot = -104.844269576685 +163000 ekin = 14.1196642871595 | erot = 12.9329860305353 | epot = -131.948814514085 | etot = -104.89616419639 +164000 ekin = 13.7898491622463 | erot = 13.0457286661398 | epot = -132.281155651746 | etot = -105.44557782336 +165000 ekin = 14.146767384781 | erot = 15.4611523406016 | epot = -132.760779804613 | etot = -103.15286007923 +166000 ekin = 14.6508841513351 | erot = 17.3890180629077 | epot = -133.236728473221 | etot = -101.196826258978 +167000 ekin = 15.0721587960347 | erot = 17.6227659908065 | epot = -133.680095808284 | etot = -100.985171021443 +168000 ekin = 14.1994828512195 | erot = 15.9037522618147 | epot = -134.055194827403 | etot = -103.951959714369 +169000 ekin = 14.1602341444753 | erot = 18.0296755447982 | epot = -134.449473646656 | etot = -102.259563957382 +170000 ekin = 14.0694306307775 | erot = 19.4725625534463 | epot = -134.692004642621 | etot = -101.150011458397 +171000 ekin = 13.7361512674535 | erot = 18.7505480644722 | epot = -134.786694998901 | etot = -102.299995666975 +172000 ekin = 13.5627257932729 | erot = 18.093237266307 | epot = -134.689962511105 | etot = -103.033999451525 +173000 ekin = 13.6193404079345 | erot = 18.3116904639331 | epot = -134.630527397265 | etot = -102.699496525397 +174000 ekin = 13.8652291607269 | erot = 17.9414686212446 | epot = -134.704751380789 | etot = -102.898053598817 +175000 ekin = 13.6178278396075 | erot = 16.01475083407 | epot = -134.841815041644 | etot = -105.209236367966 +176000 ekin = 14.2818264517968 | erot = 15.7467129433123 | epot = -135.135186152403 | etot = -105.106646757294 +177000 ekin = 13.9605374749723 | erot = 16.9682019434855 | epot = -135.553348493467 | etot = -104.624609075009 +178000 ekin = 14.1719985856751 | erot = 17.9568318814641 | epot = -136.147751073445 | etot = -104.018920606306 +179000 ekin = 14.5848015120145 | erot = 17.0815739296152 | epot = -136.819563786046 | etot = -105.153188344416 +180000 ekin = 14.5317430049169 | erot = 16.515035644651 | epot = -137.453724809158 | etot = -106.40694615959 +181000 ekin = 14.7963541253609 | erot = 15.6683381743307 | epot = -138.009004975563 | etot = -107.544312675871 +182000 ekin = 14.8779441014054 | erot = 14.4395053549216 | epot = -138.44189613322 | etot = -109.124446676893 +183000 ekin = 15.7558270527731 | erot = 12.9184044380285 | epot = -138.693559981229 | etot = -110.019328490427 +184000 ekin = 15.5143742044925 | erot = 13.3181825150061 | epot = -138.800057405125 | etot = -109.967500685627 +185000 ekin = 15.3652686778713 | erot = 14.6676409373754 | epot = -138.908865602223 | etot = -108.875955986977 +186000 ekin = 15.0348400978665 | erot = 15.3231102748848 | epot = -138.945875626631 | etot = -108.58792525388 +187000 ekin = 14.9176766057609 | erot = 16.6599898753524 | epot = -138.88156084498 | etot = -107.303894363866 +188000 ekin = 14.6921621349464 | erot = 18.1602885309884 | epot = -138.60499813301 | etot = -105.752547467075 +189000 ekin = 13.7408076240997 | erot = 16.4479475752207 | epot = -138.155816715908 | etot = -107.967061516588 +190000 ekin = 13.6152992340025 | erot = 17.7725230118411 | epot = -137.628867284981 | etot = -106.241045039138 +191000 ekin = 13.4728687325774 | erot = 18.0823791600731 | epot = -137.091957918931 | etot = -105.53671002628 +192000 ekin = 12.3530399718251 | erot = 19.8393244691615 | epot = -136.481023981569 | etot = -104.288659540582 +193000 ekin = 11.5299273102656 | erot = 19.1824282103537 | epot = -135.946553250796 | etot = -105.234197730177 +194000 ekin = 11.1649895000932 | erot = 18.9423306262241 | epot = -135.561409713864 | etot = -105.454089587546 +195000 ekin = 10.2365038832962 | erot = 16.2974974326929 | epot = -135.016356459364 | etot = -108.482355143375 +196000 ekin = 9.9052405548998 | erot = 15.4114866769535 | epot = -134.379903501341 | etot = -109.063176269488 +197000 ekin = 10.5101662173868 | erot = 13.2519428202659 | epot = -133.773926980255 | etot = -110.011817942602 +198000 ekin = 10.0701100246755 | erot = 12.1224401786724 | epot = -133.192517881119 | etot = -110.999967677771 +199000 ekin = 10.0888815862907 | erot = 14.6060699047979 | epot = -132.831052684003 | etot = -108.136101192915 +200000 ekin = 10.2713328348432 | erot = 14.1677382732657 | epot = -132.499452328271 | etot = -108.060381220162 +201000 ekin = 9.67279836297051 | erot = 17.4741053490013 | epot = -131.99405625743 | etot = -104.847152545458 +202000 ekin = 9.42113475905542 | erot = 15.2416466004391 | epot = -131.442522675496 | etot = -106.779741316001 +203000 ekin = 9.0781733153247 | erot = 15.1373499225716 | epot = -130.854993475045 | etot = -106.639470237149 +204000 ekin = 8.64036139073472 | erot = 17.435031602458 | epot = -130.304718885752 | etot = -104.22932589256 +205000 ekin = 8.66192717162963 | erot = 17.8705703808059 | epot = -129.744393097525 | etot = -103.211895545089 +206000 ekin = 8.18798685710702 | erot = 16.9494530844962 | epot = -129.347297685166 | etot = -104.209857743563 +207000 ekin = 7.88269489811464 | erot = 18.0934252936306 | epot = -128.990899660502 | etot = -103.014779468757 +208000 ekin = 8.12847467633978 | erot = 18.4474275963927 | epot = -128.638908979831 | etot = -102.063006707099 +209000 ekin = 8.26627077414831 | erot = 17.1117207999031 | epot = -128.23848022138 | etot = -102.860488647329 +210000 ekin = 8.57369266047589 | erot = 17.032945225006 | epot = -127.514761594822 | etot = -101.908123709341 +211000 ekin = 8.18082139293309 | erot = 15.8142422862498 | epot = -126.729751967164 | etot = -102.734688287982 +212000 ekin = 9.07705835356712 | erot = 15.9995543237684 | epot = -125.964981789987 | etot = -100.888369112651 +213000 ekin = 9.76583660780628 | erot = 15.8151382659827 | epot = -125.199540834626 | etot = -99.6185659608372 +214000 ekin = 9.73283924990857 | erot = 16.6768685665889 | epot = -124.440549725109 | etot = -98.0308419086116 +215000 ekin = 10.1664065327728 | erot = 16.0847590616496 | epot = -123.79380778278 | etot = -97.5426421883573 +216000 ekin = 10.3574466909358 | erot = 14.6556450781529 | epot = -123.28062097795 | etot = -98.2675292088615 +217000 ekin = 9.99430963257152 | erot = 14.6958322737206 | epot = -123.189352423249 | etot = -98.499210516957 +218000 ekin = 10.1271230685036 | erot = 16.0494811167673 | epot = -123.437228010009 | etot = -97.2606238247383 +219000 ekin = 10.4093264435591 | erot = 17.1225695976585 | epot = -123.698309155169 | etot = -96.1664131139511 +220000 ekin = 10.5602197780445 | erot = 16.2275384087012 | epot = -124.065089165668 | etot = -97.277330978922 +221000 ekin = 10.9045703829906 | erot = 18.0174254671399 | epot = -124.727084208592 | etot = -95.8050883584616 +222000 ekin = 11.040495548172 | erot = 17.5416727186541 | epot = -125.550268118699 | etot = -96.9680998518726 +223000 ekin = 11.1981785017269 | erot = 18.164520187603 | epot = -126.473672051786 | etot = -97.1109733624564 +224000 ekin = 12.3865134633279 | erot = 17.2503270676206 | epot = -127.415472901141 | etot = -97.7786323701921 +225000 ekin = 13.4632742183497 | erot = 16.909295138679 | epot = -128.40622689616 | etot = -98.0336575391309 +226000 ekin = 14.1793039795669 | erot = 16.7746173675137 | epot = -129.250401073249 | etot = -98.2964797261683 +227000 ekin = 14.8975736064985 | erot = 17.3200491535059 | epot = -129.944415508111 | etot = -97.7267927481065 +228000 ekin = 15.2580858632895 | erot = 17.2813783440679 | epot = -130.50979767698 | etot = -97.970333469623 +229000 ekin = 15.2815972995915 | erot = 18.1327345586269 | epot = -130.858522010649 | etot = -97.4441901524304 +230000 ekin = 14.9973822396235 | erot = 17.8215863917617 | epot = -130.974519927144 | etot = -98.1555512957592 +231000 ekin = 15.4944447453545 | erot = 16.2505631688955 | epot = -130.85331196464 | etot = -99.1083040503902 +232000 ekin = 15.5013714729644 | erot = 16.2360267966493 | epot = -130.500978065803 | etot = -98.7635797961897 +233000 ekin = 15.6475288254976 | erot = 15.1355009388718 | epot = -130.001130700983 | etot = -99.2181009366136 +234000 ekin = 14.9928070596118 | erot = 14.4561491773725 | epot = -129.212554811537 | etot = -99.7635985745524 +235000 ekin = 14.1500040050198 | erot = 13.5773795570139 | epot = -128.226927217841 | etot = -100.499543655807 +236000 ekin = 14.4337875956183 | erot = 10.7128375101057 | epot = -127.271678633039 | etot = -102.125053527315 +237000 ekin = 14.5718229916728 | erot = 9.51868813665584 | epot = -126.478805285378 | etot = -102.38829415705 +238000 ekin = 14.5641840406761 | erot = 10.4514244387947 | epot = -125.959186005466 | etot = -100.943577525995 +239000 ekin = 14.7945250169988 | erot = 11.969263456021 | epot = -125.65407099266 | etot = -98.89028251964 +240000 ekin = 14.0676596483411 | erot = 13.0566366120945 | epot = -125.489156131504 | etot = -98.364859871068 +241000 ekin = 14.7580193710404 | erot = 15.6473002667172 | epot = -125.66357027176 | etot = -95.2582506340023 +242000 ekin = 15.0062171423708 | erot = 15.5223047402974 | epot = -126.083825388996 | etot = -95.5553035063272 +243000 ekin = 14.7207315030811 | erot = 18.4914286449845 | epot = -126.572433200165 | etot = -93.3602730520994 +244000 ekin = 15.0653849672011 | erot = 19.6152150630557 | epot = -127.121940701804 | etot = -92.4413406715474 +245000 ekin = 14.5826576895288 | erot = 20.3516097643047 | epot = -127.553594792066 | etot = -92.6193273382324 +246000 ekin = 13.9733910446231 | erot = 19.6995579979128 | epot = -127.855154542609 | etot = -94.182205500073 +247000 ekin = 13.736300165071 | erot = 20.1509121154037 | epot = -127.994211800693 | etot = -94.106999520218 +248000 ekin = 13.4538859747754 | erot = 18.603950634457 | epot = -127.933960738259 | etot = -95.8761241290265 +249000 ekin = 13.297290371713 | erot = 16.5376067949551 | epot = -127.726266783486 | etot = -97.8913696168181 +250000 ekin = 13.0769443442147 | erot = 15.5723980218652 | epot = -127.384478077717 | etot = -98.7351357116367 +251000 ekin = 12.3569665649421 | erot = 14.4296804417377 | epot = -127.05572435213 | etot = -100.26907734545 +252000 ekin = 12.2031777119723 | erot = 12.4241877259964 | epot = -126.724280026054 | etot = -102.096914588085 +253000 ekin = 12.3738435396613 | erot = 14.5862876200654 | epot = -126.430208509831 | etot = -99.4700773501048 +254000 ekin = 12.701123410553 | erot = 11.9848764326328 | epot = -126.255809655633 | etot = -101.569809812447 +255000 ekin = 12.3382365581446 | erot = 12.7694066951398 | epot = -126.233303332426 | etot = -101.125660079142 +256000 ekin = 12.5719056004921 | erot = 11.5455936083012 | epot = -126.375065873605 | etot = -102.257566664812 +257000 ekin = 12.8416394174466 | erot = 10.7766996711506 | epot = -126.680049307901 | etot = -103.061710219303 +258000 ekin = 12.9127876656524 | erot = 10.6100975371551 | epot = -127.056048348568 | etot = -103.533163145761 +259000 ekin = 13.0763581338929 | erot = 12.1546697170536 | epot = -127.528741703229 | etot = -102.297713852282 +260000 ekin = 12.9774755067595 | erot = 11.7128970638702 | epot = -127.854225807735 | etot = -103.163853237105 +261000 ekin = 12.6289865133086 | erot = 11.916003948093 | epot = -128.074160501116 | etot = -103.529170039715 +262000 ekin = 12.7023707694459 | erot = 11.5117802208444 | epot = -128.203484535596 | etot = -103.989333545305 +263000 ekin = 12.6698225025792 | erot = 11.6383988496484 | epot = -128.150951306963 | etot = -103.842729954735 +264000 ekin = 12.7498512344178 | erot = 11.747728649697 | epot = -128.001417548791 | etot = -103.503837664677 +265000 ekin = 12.7016227310984 | erot = 12.8720320892253 | epot = -127.952383302815 | etot = -102.378728482492 +266000 ekin = 12.8942439084782 | erot = 12.8567176427997 | epot = -128.012852928163 | etot = -102.261891376885 +267000 ekin = 13.0340848907472 | erot = 11.6602421677083 | epot = -128.191216268543 | etot = -103.496889210087 +268000 ekin = 13.74589289983 | erot = 11.7671487795819 | epot = -128.563005843981 | etot = -103.049964164569 +269000 ekin = 13.9144500485916 | erot = 12.0904513989345 | epot = -128.873355694132 | etot = -102.868454246606 +270000 ekin = 13.5038302515385 | erot = 13.2027756375057 | epot = -129.228046693482 | etot = -102.521440804438 +271000 ekin = 13.1726853474607 | erot = 14.5028204858769 | epot = -129.509496883975 | etot = -101.833991050637 +272000 ekin = 13.1912017675959 | erot = 13.5128916820094 | epot = -129.700425481901 | etot = -102.996332032296 +273000 ekin = 12.9622515947264 | erot = 12.8466394726389 | epot = -129.921650080588 | etot = -104.112759013222 +274000 ekin = 12.5726481833756 | erot = 13.144678909737 | epot = -130.003176276943 | etot = -104.28584918383 +275000 ekin = 12.2148607636527 | erot = 13.2928615382628 | epot = -129.750232770451 | etot = -104.242510468535 +276000 ekin = 11.5576072728742 | erot = 11.9452733541113 | epot = -129.307440448112 | etot = -105.804559821127 +277000 ekin = 11.0565703290287 | erot = 11.469754008817 | epot = -128.75449578412 | etot = -106.228171446274 +278000 ekin = 10.7140705151042 | erot = 12.8871671766821 | epot = -128.25525823396 | etot = -104.654020542174 +279000 ekin = 10.2324972238429 | erot = 12.7118920306067 | epot = -127.872408298753 | etot = -104.928019044303 +280000 ekin = 9.79931602143696 | erot = 13.8984293718546 | epot = -127.807598666717 | etot = -104.109853273425 +281000 ekin = 9.96767949511765 | erot = 14.9654599630386 | epot = -127.757791381375 | etot = -102.824651923219 +282000 ekin = 9.89651453389989 | erot = 13.5038073340885 | epot = -127.982178238681 | etot = -104.581856370693 +283000 ekin = 9.35876750231768 | erot = 15.0311658542219 | epot = -128.425494240096 | etot = -104.035560883557 +284000 ekin = 8.57796244132644 | erot = 17.1817140478391 | epot = -129.113884013508 | etot = -103.354207524343 +285000 ekin = 9.05859694880589 | erot = 17.9339958923453 | epot = -130.133829218508 | etot = -103.141236377357 +286000 ekin = 9.17556209977891 | erot = 18.2995006002098 | epot = -131.242009857551 | etot = -103.766947157562 +287000 ekin = 9.39155514425713 | erot = 17.9196244698037 | epot = -132.27033351819 | etot = -104.959153904129 +288000 ekin = 9.76851862303189 | erot = 17.6913296641995 | epot = -133.197079996702 | etot = -105.737231709471 +289000 ekin = 10.1309528932397 | erot = 14.7061979034103 | epot = -133.872197861025 | etot = -109.035047064375 +290000 ekin = 10.9195489558526 | erot = 15.1690523778334 | epot = -134.442096043655 | etot = -108.353494709969 +291000 ekin = 11.3604751581556 | erot = 13.153742270531 | epot = -134.942066208005 | etot = -110.427848779318 +292000 ekin = 12.1184001542666 | erot = 12.7399143491585 | epot = -135.347997739513 | etot = -110.489683236088 +293000 ekin = 12.5651917109573 | erot = 13.5564554248973 | epot = -135.657332732208 | etot = -109.535685596353 +294000 ekin = 13.2393207416801 | erot = 11.835377731584 | epot = -135.972747963976 | etot = -110.898049490712 +295000 ekin = 14.0110196704011 | erot = 11.3649738472938 | epot = -136.372700304619 | etot = -110.996706786924 +296000 ekin = 14.7267764120059 | erot = 13.5793475441506 | epot = -136.743277666314 | etot = -108.437153710158 +297000 ekin = 15.2715627348123 | erot = 11.5626347691872 | epot = -137.087873604616 | etot = -110.253676100617 +298000 ekin = 16.0387776845994 | erot = 12.8157712333341 | epot = -137.568618159699 | etot = -108.714069241765 +299000 ekin = 16.587224686565 | erot = 13.5924474386199 | epot = -138.038387602089 | etot = -107.858715476904 +300000 ekin = 16.9700828590548 | erot = 13.2635259234366 | epot = -138.350224271807 | etot = -108.116615489315 +301000 ekin = 17.5403695703678 | erot = 12.344461606446 | epot = -138.564780141525 | etot = -108.679948964711 +302000 ekin = 17.999368780733 | erot = 10.9002774435477 | epot = -138.669984344615 | etot = -109.770338120335 +303000 ekin = 18.5119335743994 | erot = 11.3459589833676 | epot = -138.702590892745 | etot = -108.844698334978 +304000 ekin = 18.9041713193929 | erot = 9.35010741615854 | epot = -138.69532616302 | etot = -110.441047427468 +305000 ekin = 19.4425597436692 | erot = 9.42197838138271 | epot = -138.633141612569 | etot = -109.768603487517 +306000 ekin = 19.6036016605872 | erot = 10.6931976987772 | epot = -138.477912570479 | etot = -108.181113211115 +307000 ekin = 19.3417236015309 | erot = 13.2387828544056 | epot = -138.253199109005 | etot = -105.672692653069 +308000 ekin = 18.6999426944204 | erot = 11.973083632259 | epot = -137.851569596535 | etot = -107.178543269856 +309000 ekin = 18.7265657872805 | erot = 13.0303472217923 | epot = -137.317309351105 | etot = -105.560396342032 +310000 ekin = 17.8195957255941 | erot = 14.0238269204621 | epot = -136.848405156991 | etot = -105.004982510935 +311000 ekin = 17.1255719645332 | erot = 15.2230056343622 | epot = -136.455665695132 | etot = -104.107088096236 +312000 ekin = 17.5406156481837 | erot = 16.4951001106738 | epot = -136.079726861853 | etot = -102.044011102996 +313000 ekin = 17.1670923816363 | erot = 15.0877984771809 | epot = -135.822923328133 | etot = -103.568032469316 +314000 ekin = 16.6423728735091 | erot = 15.2891889046024 | epot = -135.810853367455 | etot = -103.879291589344 +315000 ekin = 16.7627241814776 | erot = 14.6381862323553 | epot = -135.936566495695 | etot = -104.535656081862 +316000 ekin = 16.7205036269676 | erot = 15.3512491017753 | epot = -136.088132270724 | etot = -104.016379541981 +317000 ekin = 17.366695391312 | erot = 15.0403764000411 | epot = -136.090944178317 | etot = -103.683872386964 +318000 ekin = 17.3898541429783 | erot = 14.4562587649093 | epot = -136.029567624113 | etot = -104.183454716225 +319000 ekin = 17.6468368920276 | erot = 13.5657924751129 | epot = -135.837201238631 | etot = -104.62457187149 +320000 ekin = 17.853845424944 | erot = 11.4555633526327 | epot = -135.634795052626 | etot = -106.325386275049 +321000 ekin = 18.4774011194484 | erot = 9.47340321644106 | epot = -135.396484896295 | etot = -107.445680560405 +322000 ekin = 18.5638208747372 | erot = 10.5540356873042 | epot = -135.178405880719 | etot = -106.060549318678 +323000 ekin = 18.3144849132937 | erot = 9.18750574356535 | epot = -135.011277898535 | etot = -107.509287241676 +324000 ekin = 18.2814120547138 | erot = 8.43295922987849 | epot = -134.870516827034 | etot = -108.156145542441 +325000 ekin = 17.6828287811198 | erot = 9.25503886901379 | epot = -134.72004058206 | etot = -107.782172931927 +326000 ekin = 17.5682068543231 | erot = 8.80877184189272 | epot = -134.518753123174 | etot = -108.141774426958 +327000 ekin = 17.563579091233 | erot = 9.26405936905546 | epot = -134.407298439375 | etot = -107.579659979087 +328000 ekin = 17.6947130932733 | erot = 10.1923998064966 | epot = -134.311937694853 | etot = -106.424824795083 +329000 ekin = 17.1881472843045 | erot = 9.42382068529237 | epot = -134.061202456107 | etot = -107.44923448651 +330000 ekin = 16.7033164328865 | erot = 10.5958861015874 | epot = -133.644326190092 | etot = -106.345123655618 +331000 ekin = 16.5614873472988 | erot = 11.0963106255071 | epot = -133.114955864068 | etot = -105.457157891263 +332000 ekin = 15.344800831015 | erot = 10.5204968548347 | epot = -132.655714437217 | etot = -106.790416751368 +333000 ekin = 14.8824601261092 | erot = 11.0665055647672 | epot = -132.381703135978 | etot = -106.432737445102 +334000 ekin = 14.3520097856488 | erot = 11.2693925718679 | epot = -132.234967905192 | etot = -106.613565547675 +335000 ekin = 13.3400126008158 | erot = 11.5365782005848 | epot = -132.005833272039 | etot = -107.129242470638 +336000 ekin = 13.4251377988672 | erot = 12.7016844832713 | epot = -131.693539084324 | etot = -105.566716802185 +337000 ekin = 13.0974476255357 | erot = 10.5699064068532 | epot = -131.267127574954 | etot = -107.599773542565 +338000 ekin = 13.6450169603266 | erot = 11.3468402093231 | epot = -130.910112680268 | etot = -105.918255510618 +339000 ekin = 13.6181925950493 | erot = 12.1076210040202 | epot = -130.557539825855 | etot = -104.831726226786 +340000 ekin = 13.7060735716503 | erot = 12.8412065521541 | epot = -130.462716763992 | etot = -103.915436640188 +341000 ekin = 13.7778063734593 | erot = 13.1174330704424 | epot = -130.531074545887 | etot = -103.635835101985 +342000 ekin = 13.954513538403 | erot = 13.7402525553091 | epot = -130.774043628587 | etot = -103.079277534875 +343000 ekin = 13.6604942473275 | erot = 15.5089663905455 | epot = -131.055721366082 | etot = -101.886260728209 +344000 ekin = 14.2665127121401 | erot = 12.2031321771093 | epot = -131.282570170384 | etot = -104.812925281134 +345000 ekin = 14.982149542259 | erot = 14.1635371069014 | epot = -131.519726557152 | etot = -102.374039907991 +346000 ekin = 14.998876481554 | erot = 13.4617445281837 | epot = -131.723744104871 | etot = -103.263123095133 +347000 ekin = 15.541259245477 | erot = 13.601421487498 | epot = -131.923412477975 | etot = -102.780731745 +348000 ekin = 16.7329536809704 | erot = 15.090740991205 | epot = -132.143772859728 | etot = -100.320078187552 +349000 ekin = 17.3861913016786 | erot = 15.1922827054211 | epot = -132.306356374554 | etot = -99.7278823674542 +350000 ekin = 16.8574823749626 | erot = 18.3600447459492 | epot = -132.445783817605 | etot = -97.2282566966928 +351000 ekin = 16.6164885604699 | erot = 17.7507419907115 | epot = -132.477967998207 | etot = -98.1107374470257 +352000 ekin = 16.3906985693055 | erot = 16.3395128451898 | epot = -132.469143894269 | etot = -99.7389324797738 +353000 ekin = 16.4418561748943 | erot = 15.3428425414812 | epot = -132.543386699625 | etot = -100.758687983249 +354000 ekin = 16.6947592950631 | erot = 15.1610311708645 | epot = -132.725354977831 | etot = -100.869564511904 +355000 ekin = 16.7054244183613 | erot = 15.2739548015032 | epot = -132.888828993417 | etot = -100.909449773552 +356000 ekin = 15.8418260139205 | erot = 15.6343326906158 | epot = -133.092904724418 | etot = -101.616746019881 +357000 ekin = 15.8177678978165 | erot = 15.2776312771737 | epot = -133.349964737571 | etot = -102.254565562581 +358000 ekin = 16.247272467314 | erot = 17.5237438978863 | epot = -133.533290253873 | etot = -99.7622738886724 +359000 ekin = 15.9369501984957 | erot = 16.4723204711401 | epot = -133.373483972013 | etot = -100.964213302377 +360000 ekin = 15.6524039179353 | erot = 16.0917756991532 | epot = -133.088827410712 | etot = -101.344647793623 +361000 ekin = 16.1255813737833 | erot = 14.6043819685595 | epot = -132.682676037011 | etot = -101.952712694669 +362000 ekin = 16.2084060425783 | erot = 15.3061306055287 | epot = -132.004572522378 | etot = -100.490035874271 +363000 ekin = 16.5841147977374 | erot = 13.2870116635265 | epot = -131.206997511749 | etot = -101.335871050485 +364000 ekin = 16.2264175141248 | erot = 13.4839607171259 | epot = -130.301334854897 | etot = -100.590956623646 +365000 ekin = 16.3338338884753 | erot = 11.8882794464809 | epot = -129.439123661589 | etot = -101.217010326633 +366000 ekin = 17.1178313527511 | erot = 10.6429828523485 | epot = -128.636953230029 | etot = -100.876139024929 +367000 ekin = 17.3978780298834 | erot = 10.6214323462969 | epot = -127.896731204461 | etot = -99.8774208282811 +368000 ekin = 18.3422043204519 | erot = 9.4920165520943 | epot = -127.35450483558 | etot = -99.5202839630333 +369000 ekin = 18.4267461523155 | erot = 7.58439614439429 | epot = -126.945478039691 | etot = -100.934335742981 +370000 ekin = 18.2591228784488 | erot = 7.91611442179113 | epot = -126.712837988326 | etot = -100.537600688086 +371000 ekin = 18.2272055256963 | erot = 8.48549388283735 | epot = -126.57487508976 | etot = -99.862175681226 +372000 ekin = 18.0229029350717 | erot = 8.16872677639403 | epot = -126.568133032703 | etot = -100.376503321237 +373000 ekin = 18.0182875091869 | erot = 8.52949424427823 | epot = -126.633731606883 | etot = -100.085949853418 +374000 ekin = 17.5191535636621 | erot = 8.7866303781134 | epot = -126.751870079523 | etot = -100.446086137747 +375000 ekin = 17.5729190729748 | erot = 11.0368009575165 | epot = -127.082054262238 | etot = -98.4723342317464 +376000 ekin = 18.0972024010139 | erot = 12.0869149457635 | epot = -127.446482398761 | etot = -97.2623650519836 +377000 ekin = 17.6238550669767 | erot = 13.7823413485362 | epot = -127.957012085504 | etot = -96.5508156699915 +378000 ekin = 17.1545260492794 | erot = 13.8789438569943 | epot = -128.483574679142 | etot = -97.4501047728679 +379000 ekin = 17.3943043447361 | erot = 15.6128954133663 | epot = -128.994286417227 | etot = -95.9870866591242 +380000 ekin = 16.9345655337106 | erot = 18.1586393022775 | epot = -129.430697636469 | etot = -94.3374928004806 +381000 ekin = 17.8592077966176 | erot = 16.952172224398 | epot = -130.21546363601 | etot = -95.404083614994 +382000 ekin = 17.6738126866299 | erot = 17.8907570066601 | epot = -130.472318203666 | etot = -94.907748510376 +383000 ekin = 17.3598919179248 | erot = 16.8602796085688 | epot = -130.370641785571 | etot = -96.1504702590775 +384000 ekin = 18.2785876510998 | erot = 16.1041146883972 | epot = -130.284480210515 | etot = -95.9017778710178 +385000 ekin = 18.0115952307709 | erot = 16.1845211065083 | epot = -130.175062220429 | etot = -95.9789458831495 +386000 ekin = 18.2027845423779 | erot = 13.5505429677105 | epot = -130.071894452599 | etot = -98.3185669425111 +387000 ekin = 19.0293092080126 | erot = 12.3123326888389 | epot = -130.135076599882 | etot = -98.7934347030301 +388000 ekin = 18.6600110494417 | erot = 12.2331355301054 | epot = -130.332797961397 | etot = -99.4396513818503 +389000 ekin = 18.818884817512 | erot = 12.7152045936026 | epot = -130.592939995127 | etot = -99.0588505840127 +390000 ekin = 18.6974666589397 | erot = 10.8179966323085 | epot = -130.78222296628 | etot = -101.266759675032 +391000 ekin = 18.3414303481244 | erot = 12.2662395181876 | epot = -131.036431663152 | etot = -100.42876179684 +392000 ekin = 18.5329248278577 | erot = 12.6118921508214 | epot = -131.466923523897 | etot = -100.322106545218 +393000 ekin = 18.5931926394875 | erot = 12.8938189916972 | epot = -132.085060887916 | etot = -100.598049256732 +394000 ekin = 18.2689521082511 | erot = 15.0363349114738 | epot = -132.658203470269 | etot = -99.3529164505442 +395000 ekin = 18.6758840400074 | erot = 16.5774071524663 | epot = -133.167812128949 | etot = -97.9145209364753 +396000 ekin = 18.4208033998166 | erot = 16.041020157979 | epot = -133.420028914843 | etot = -98.9582053570477 +397000 ekin = 18.4283974295758 | erot = 17.6803004336543 | epot = -133.424412246365 | etot = -97.3157143831351 +398000 ekin = 18.4760707507248 | erot = 16.8354806241528 | epot = -133.369641128673 | etot = -98.0580897537952 +399000 ekin = 18.0667158930869 | erot = 15.5802846351424 | epot = -133.22438235147 | etot = -99.5773818232405 +400000 ekin = 17.3629932701991 | erot = 14.8051530851039 | epot = -133.239266370825 | etot = -101.071120015522 +401000 ekin = 17.2940999376157 | erot = 16.6455729704891 | epot = -133.275703752707 | etot = -99.3360308446024 +402000 ekin = 17.3373502544325 | erot = 17.3495249767143 | epot = -133.263650452982 | etot = -98.5767752218353 +403000 ekin = 17.0362458779982 | erot = 16.4801854838531 | epot = -133.157361678239 | etot = -99.6409303163881 +404000 ekin = 17.5013218057167 | erot = 17.2356941364713 | epot = -132.956729120098 | etot = -98.2197131779096 +405000 ekin = 17.0802098794189 | erot = 16.960939476204 | epot = -132.73062826728 | etot = -98.6894789116567 +406000 ekin = 17.1407753969823 | erot = 16.5675801382684 | epot = -132.546431302203 | etot = -98.8380757669523 +407000 ekin = 17.5700320840176 | erot = 16.7173366740167 | epot = -132.354385760767 | etot = -98.0670170027328 +408000 ekin = 17.9123282076661 | erot = 15.7372438792219 | epot = -132.093303820899 | etot = -98.4437317340109 +409000 ekin = 18.044290976688 | erot = 16.407264301022 | epot = -131.981012061687 | etot = -97.5294567839774 +410000 ekin = 17.4352926916021 | erot = 16.3490998455989 | epot = -131.999734401999 | etot = -98.2153418647982 +411000 ekin = 17.0403229577767 | erot = 17.0106034249502 | epot = -131.927984341917 | etot = -97.8770579591898 +412000 ekin = 16.3738553108077 | erot = 15.0380907323597 | epot = -131.815285103374 | etot = -100.403339060206 +413000 ekin = 15.6919116030853 | erot = 17.2865003579153 | epot = -131.733742658542 | etot = -98.7553306975415 +414000 ekin = 15.6596268128862 | erot = 18.3746086998306 | epot = -131.584803652767 | etot = -97.5505681400504 +415000 ekin = 14.8929074608614 | erot = 17.7221778643748 | epot = -131.540961193749 | etot = -98.9258758685133 +416000 ekin = 14.4887531949694 | erot = 16.0376591524414 | epot = -131.440311706363 | etot = -100.913899358952 +417000 ekin = 14.1092266063953 | erot = 15.9394824142608 | epot = -131.425898951561 | etot = -101.377189930905 +418000 ekin = 13.5048216543633 | erot = 16.2965565979027 | epot = -131.446662451558 | etot = -101.645284199292 +419000 ekin = 13.3086351919324 | erot = 15.4549783534211 | epot = -131.453449134288 | etot = -102.689835588934 +420000 ekin = 13.0039130784646 | erot = 15.3952024087555 | epot = -131.719273036113 | etot = -103.320157548893 +421000 ekin = 12.9877601419768 | erot = 15.1190337961972 | epot = -132.049830775422 | etot = -103.943036837248 +422000 ekin = 12.554469558493 | erot = 16.7536314378964 | epot = -132.424089805828 | etot = -103.115988809439 +423000 ekin = 12.3222010360323 | erot = 14.8918300268163 | epot = -132.786217773111 | etot = -105.572186710262 +424000 ekin = 12.5012656891908 | erot = 14.7126562690067 | epot = -132.854779708475 | etot = -105.640857750277 +425000 ekin = 12.4166002750664 | erot = 16.1748358263138 | epot = -132.827420051655 | etot = -104.235983950275 +426000 ekin = 12.1981797043573 | erot = 15.3722763039744 | epot = -132.839512680494 | etot = -105.269056672162 +427000 ekin = 12.2165197755212 | erot = 15.2845443324948 | epot = -132.75768742892 | etot = -105.256623320904 +428000 ekin = 13.1144440915078 | erot = 15.6749776075794 | epot = -132.542738612485 | etot = -103.753316913397 +429000 ekin = 13.036052320167 | erot = 15.7209148357586 | epot = -132.22260768664 | etot = -103.465640530715 +430000 ekin = 13.6804158115964 | erot = 14.2380884060342 | epot = -131.771024384698 | etot = -103.852520167068 +431000 ekin = 13.9916031179658 | erot = 14.4553961722166 | epot = -131.156620565525 | etot = -102.709621275343 +432000 ekin = 13.8407074506787 | erot = 14.0482504895216 | epot = -130.497219933366 | etot = -102.608261993166 +433000 ekin = 13.9379330807462 | erot = 14.8523876478218 | epot = -129.700123346572 | etot = -100.909802618004 +434000 ekin = 14.1249100563244 | erot = 14.6514940517254 | epot = -128.827486006554 | etot = -100.051081898504 +435000 ekin = 14.0577137236944 | erot = 14.8667331330112 | epot = -128.014172796523 | etot = -99.0897259398178 +436000 ekin = 14.5305553563525 | erot = 14.077832522527 | epot = -127.226475749873 | etot = -98.6180878709938 +437000 ekin = 15.1830124290822 | erot = 14.1336118031537 | epot = -126.373743476486 | etot = -97.0571192442501 +438000 ekin = 16.1148966247471 | erot = 13.7238250343371 | epot = -125.603706556133 | etot = -95.7649848970485 +439000 ekin = 15.385679382347 | erot = 13.0371901783453 | epot = -125.011554691989 | etot = -96.5886851312965 +440000 ekin = 14.8956016821331 | erot = 13.2387714435016 | epot = -124.533132544974 | etot = -96.3987594193397 +441000 ekin = 15.1065254767362 | erot = 11.8972960070098 | epot = -124.250944728352 | etot = -97.2471232446062 +442000 ekin = 15.3644507419134 | erot = 10.7065439746187 | epot = -124.229899271249 | etot = -98.1589045547165 +443000 ekin = 15.3891963376255 | erot = 10.1101763676241 | epot = -124.493875210453 | etot = -98.9945025052031 +444000 ekin = 16.0632437745756 | erot = 10.4333528402067 | epot = -124.833925383649 | etot = -98.3373287688666 +445000 ekin = 17.2273822876834 | erot = 8.91547796476049 | epot = -125.383423644888 | etot = -99.2405633924442 +446000 ekin = 17.1389184638908 | erot = 9.12523748934503 | epot = -126.015232743036 | etot = -99.7510767898003 +447000 ekin = 17.377575602989 | erot = 8.67259461502235 | epot = -126.729888890992 | etot = -100.67971867298 +448000 ekin = 17.2411873858276 | erot = 10.5843952673172 | epot = -127.469866797344 | etot = -99.6442841441993 +449000 ekin = 16.5447004709401 | erot = 12.6570239249849 | epot = -127.967892349291 | etot = -98.7661679533661 +450000 ekin = 16.6696115448345 | erot = 13.660677404722 | epot = -128.35986377413 | etot = -98.0295748245735 +451000 ekin = 16.5552547561237 | erot = 16.503578149668 | epot = -128.634970955751 | etot = -95.5761380499589 +452000 ekin = 16.2155010684469 | erot = 17.0500352874338 | epot = -128.726789743404 | etot = -95.4612533875228 +453000 ekin = 16.2255379767424 | erot = 16.185189206655 | epot = -128.722337839339 | etot = -96.3116106559417 +454000 ekin = 16.5243165270907 | erot = 16.6985926110523 | epot = -128.556875352001 | etot = -95.3339662138579 +455000 ekin = 16.9760722657111 | erot = 17.8495892261178 | epot = -128.399530068863 | etot = -93.5738685770343 +456000 ekin = 16.9744890299368 | erot = 17.0726018893998 | epot = -128.193610158915 | etot = -94.1465192395783 +457000 ekin = 16.1512954354001 | erot = 16.737623335392 | epot = -127.967910997967 | etot = -95.0789922271744 +458000 ekin = 15.8580429496479 | erot = 16.4857785048016 | epot = -127.751523953145 | etot = -95.407702498695 +459000 ekin = 15.5887403100112 | erot = 15.4749874483398 | epot = -127.617668067827 | etot = -96.5539403094756 +460000 ekin = 15.0949705154881 | erot = 13.2973001244165 | epot = -127.598680189169 | etot = -99.2064095492648 +461000 ekin = 15.0290066467678 | erot = 14.29519361259 | epot = -127.707013966238 | etot = -98.3828137068801 +462000 ekin = 15.8077450100979 | erot = 13.6257527682163 | epot = -127.884476940387 | etot = -98.4509791620729 +463000 ekin = 16.062196194493 | erot = 14.3797480578408 | epot = -127.829474639376 | etot = -97.387530387042 +464000 ekin = 16.1624606718217 | erot = 13.3998051887236 | epot = -127.51699406138 | etot = -97.9547282008342 +465000 ekin = 15.6381101655691 | erot = 12.5725935623154 | epot = -127.066598022852 | etot = -98.8558942949679 +466000 ekin = 15.2407794586003 | erot = 13.3100076426715 | epot = -126.622194820008 | etot = -98.0714077187358 +467000 ekin = 15.0664135855113 | erot = 13.6942009748088 | epot = -126.28954890608 | etot = -97.5289343457599 +468000 ekin = 14.5001274424649 | erot = 15.1357469131307 | epot = -126.07424293658 | etot = -96.4383685809844 +469000 ekin = 13.8148903552505 | erot = 14.223999189392 | epot = -125.858567589752 | etot = -97.8196780451091 +470000 ekin = 12.6907212988909 | erot = 13.6918076668432 | epot = -125.767431927259 | etot = -99.3849029615245 +471000 ekin = 12.4289290086777 | erot = 15.0863192981982 | epot = -125.804921167394 | etot = -98.2896728605182 +472000 ekin = 12.1365487961463 | erot = 15.8579152946744 | epot = -125.988649611677 | etot = -97.9941855208562 +473000 ekin = 13.0961380363004 | erot = 16.1001497266475 | epot = -126.771177224312 | etot = -97.5748894613642 +474000 ekin = 13.3403983346927 | erot = 15.895679725814 | epot = -127.294879744049 | etot = -98.0588016835421 +475000 ekin = 13.3958404060839 | erot = 15.5810145881428 | epot = -127.668448007433 | etot = -98.691593013206 +476000 ekin = 12.8342624195179 | erot = 14.012167697525 | epot = -127.891612353104 | etot = -101.045182236061 +477000 ekin = 13.4994760162231 | erot = 14.5514425266847 | epot = -127.705505124345 | etot = -99.6545865814376 +478000 ekin = 13.0008910137509 | erot = 14.4625603245608 | epot = -127.285952890868 | etot = -99.8225015525561 +479000 ekin = 12.925623431067 | erot = 12.8402234582223 | epot = -126.723146755559 | etot = -100.957299866269 +480000 ekin = 12.6915178381984 | erot = 11.8974174666012 | epot = -126.064725410566 | etot = -101.475790105766 +481000 ekin = 11.9916396192061 | erot = 12.2214430216206 | epot = -125.413028349128 | etot = -101.199945708301 +482000 ekin = 11.3629431274558 | erot = 11.391757186839 | epot = -124.8621930605 | etot = -102.107492746205 +483000 ekin = 11.5689648109245 | erot = 10.144520666394 | epot = -124.438832864686 | etot = -102.725347387368 +484000 ekin = 11.4499537844141 | erot = 11.7371690424975 | epot = -124.381939468864 | etot = -101.194816641953 +485000 ekin = 12.0189710017623 | erot = 11.7434065697059 | epot = -124.614298842439 | etot = -100.851921270971 +486000 ekin = 11.8991797933449 | erot = 13.5151264595704 | epot = -125.077358922215 | etot = -99.6630526693001 +487000 ekin = 12.4219195894054 | erot = 15.6605158990156 | epot = -125.929338188086 | etot = -97.8469026996647 +488000 ekin = 12.8520167671218 | erot = 16.2319523237351 | epot = -126.955871195299 | etot = -97.8719021044424 +489000 ekin = 13.7133618431336 | erot = 18.3140519919298 | epot = -128.237887359736 | etot = -96.2104735246727 +490000 ekin = 14.2146690739332 | erot = 18.9961890015251 | epot = -129.588400932625 | etot = -96.3775428571665 +491000 ekin = 14.808905169883 | erot = 21.5224586397688 | epot = -131.015732216573 | etot = -94.6843684069208 +492000 ekin = 14.750712438806 | erot = 22.5923047841892 | epot = -132.246725890571 | etot = -94.9037086675762 +493000 ekin = 15.1077946421563 | erot = 22.6929093665649 | epot = -133.247303637476 | etot = -95.4465996287548 +494000 ekin = 15.1920275386136 | erot = 23.5057837098355 | epot = -133.917128945417 | etot = -95.2193176969681 +495000 ekin = 15.0480842601332 | erot = 21.4431285606056 | epot = -134.196913391918 | etot = -97.7057005711795 +496000 ekin = 14.801133841351 | erot = 22.137297148718 | epot = -134.202005678487 | etot = -97.2635746884177 +497000 ekin = 14.5566297317389 | erot = 22.9603809009053 | epot = -133.933825890348 | etot = -96.4168152577042 +498000 ekin = 14.6619206915101 | erot = 22.9348589273131 | epot = -133.417393773742 | etot = -95.8206141549183 +499000 ekin = 14.6543962596984 | erot = 18.7924434716854 | epot = -132.757790561971 | etot = -99.3109508305874 +500000 ekin = 14.7948775335471 | erot = 16.8704146240129 | epot = -131.958349808731 | etot = -100.293057651171 +501000 ekin = 14.8212816049331 | erot = 17.2091603638901 | epot = -131.118007497895 | etot = -99.0875655290715 +502000 ekin = 14.2885953758062 | erot = 15.85905487186 | epot = -130.39871612516 | etot = -100.251065877494 +503000 ekin = 14.0762344761913 | erot = 14.1483016387479 | epot = -129.744615024457 | etot = -101.520078909518 +504000 ekin = 14.176212959032 | erot = 14.2350898986543 | epot = -129.207198739059 | etot = -100.795895881373 +505000 ekin = 13.6888052577052 | erot = 14.2289443328037 | epot = -128.696137557374 | etot = -100.778387966865 +506000 ekin = 13.4857007103928 | erot = 11.6555737897757 | epot = -128.364531164014 | etot = -103.223256663846 +507000 ekin = 13.0537719068172 | erot = 10.7795083902701 | epot = -128.193789387401 | etot = -104.360509090314 +508000 ekin = 13.1162062822673 | erot = 11.4121783699166 | epot = -128.279833854618 | etot = -103.751449202435 +509000 ekin = 13.1836336688781 | erot = 11.5863056276099 | epot = -128.45911395506 | etot = -103.689174658572 +510000 ekin = 13.0280622782 | erot = 11.8450610227354 | epot = -128.740981895406 | etot = -103.86785859447 +511000 ekin = 12.3628109385324 | erot = 12.7404715566925 | epot = -128.944512647296 | etot = -103.841230152071 +512000 ekin = 12.3887761509538 | erot = 13.4980201010906 | epot = -128.966759710659 | etot = -103.079963458614 +513000 ekin = 12.6203594119359 | erot = 14.9620317911436 | epot = -128.917294459074 | etot = -101.334903255995 +514000 ekin = 12.416213783629 | erot = 12.5299068441166 | epot = -128.735514185956 | etot = -103.789393558211 +515000 ekin = 12.0294921527753 | erot = 13.3421264250705 | epot = -128.446078796814 | etot = -103.074460218968 +516000 ekin = 11.8441128618075 | erot = 12.277781080756 | epot = -128.103440698687 | etot = -103.981546756123 +517000 ekin = 12.3586706122186 | erot = 12.3670188016377 | epot = -128.082833904249 | etot = -103.357144490393 +518000 ekin = 12.9365280265603 | erot = 11.8762998706373 | epot = -128.22698743522 | etot = -103.414159538022 +519000 ekin = 13.6117924708073 | erot = 13.3273571491215 | epot = -128.635724945509 | etot = -101.69657532558 +520000 ekin = 14.1284257546955 | erot = 14.8580807891771 | epot = -129.210763866088 | etot = -100.224257322215 +521000 ekin = 14.2594823424047 | erot = 15.9120363152587 | epot = -129.920545116455 | etot = -99.7490264587917 +522000 ekin = 14.6923115374459 | erot = 15.7230660161783 | epot = -130.676867164244 | etot = -100.26148961062 +523000 ekin = 15.8340959189976 | erot = 15.7547714850755 | epot = -131.59187880646 | etot = -100.003011402387 +524000 ekin = 15.9462671339903 | erot = 16.1578758631154 | epot = -132.52371992845 | etot = -100.419576931344 +525000 ekin = 15.813201014982 | erot = 14.802508044054 | epot = -133.377920150286 | etot = -102.76221109125 +526000 ekin = 15.9259293672298 | erot = 16.1371214076855 | epot = -134.291592712454 | etot = -102.228541937539 +527000 ekin = 15.9819142520504 | erot = 15.5862790563603 | epot = -135.192735086636 | etot = -103.624541778225 +528000 ekin = 16.1691928695597 | erot = 17.1936054197086 | epot = -136.054848670118 | etot = -102.69205038085 +529000 ekin = 15.8817769138475 | erot = 19.3393060367764 | epot = -136.763310777796 | etot = -101.542227827172 +530000 ekin = 15.5515554360964 | erot = 19.8324657382225 | epot = -137.157056151491 | etot = -101.773034977172 +531000 ekin = 14.9303544336884 | erot = 19.0533857282465 | epot = -137.248602719131 | etot = -103.264862557196 +532000 ekin = 14.6915272773098 | erot = 19.0390414117406 | epot = -136.996143110598 | etot = -103.265574421548 +533000 ekin = 13.9218469991517 | erot = 18.7667814804586 | epot = -136.361439999745 | etot = -103.672811520135 +534000 ekin = 13.4103769437142 | erot = 18.8946707342246 | epot = -135.40463976648 | etot = -103.099592088541 +535000 ekin = 12.6789216861393 | erot = 17.8184136269511 | epot = -134.182890960124 | etot = -103.685555647033 +536000 ekin = 12.590240564203 | erot = 17.6185115266883 | epot = -132.857306433374 | etot = -102.648554342482 +537000 ekin = 12.7801413064203 | erot = 18.0490344965301 | epot = -131.608606294163 | etot = -100.779430491213 +538000 ekin = 12.0877979797428 | erot = 14.9801227270707 | epot = -130.49452729631 | etot = -103.426606589496 +539000 ekin = 12.3249668177085 | erot = 13.0781131963431 | epot = -129.732435692574 | etot = -104.329355678523 +540000 ekin = 12.7893035389578 | erot = 9.75097061835908 | epot = -129.346688800889 | etot = -106.806414643573 +541000 ekin = 12.7487638514656 | erot = 9.97259012466338 | epot = -129.383324148842 | etot = -106.661970172713 +542000 ekin = 13.652289820802 | erot = 10.738186646458 | epot = -129.724457369635 | etot = -105.333980902375 +543000 ekin = 14.4952710603151 | erot = 10.2165874947633 | epot = -130.086121346986 | etot = -105.374262791908 +544000 ekin = 15.416882573394 | erot = 11.4128423966562 | epot = -130.51978905639 | etot = -103.69006408634 +545000 ekin = 16.1991969290116 | erot = 11.8259443121054 | epot = -130.995098171202 | etot = -102.969956930085 +546000 ekin = 16.7458919606058 | erot = 12.4861916085953 | epot = -131.293817426567 | etot = -102.061733857366 +547000 ekin = 17.1167854935215 | erot = 9.90508540311228 | epot = -131.450445770389 | etot = -104.428574873755 +548000 ekin = 17.5980170044881 | erot = 8.59899762550693 | epot = -131.534284690752 | etot = -105.337270060757 +549000 ekin = 18.05716372922 | erot = 9.03817412574295 | epot = -131.461799421632 | etot = -104.36646156667 +550000 ekin = 18.0110025502984 | erot = 8.75474126584266 | epot = -131.197169935683 | etot = -104.431426119542 +551000 ekin = 18.0766639239252 | erot = 8.53967490713076 | epot = -130.876590963895 | etot = -104.260252132839 +552000 ekin = 17.8245432639909 | erot = 8.21111901724959 | epot = -130.613873841209 | etot = -104.578211559969 +553000 ekin = 17.5785562404818 | erot = 8.1637249709468 | epot = -130.411446104862 | etot = -104.669164893433 +554000 ekin = 18.1123880413587 | erot = 9.24690423334698 | epot = -130.275148444209 | etot = -102.915856169503 +555000 ekin = 17.9212552367127 | erot = 9.62912969525877 | epot = -130.169859263365 | etot = -102.619474331394 +556000 ekin = 17.3952054982104 | erot = 10.6263113078829 | epot = -130.010818613481 | etot = -101.989301807388 +557000 ekin = 16.9877102103003 | erot = 9.66426744471381 | epot = -129.86176781953 | etot = -103.209790164516 +558000 ekin = 16.4865425164111 | erot = 10.8347141196074 | epot = -129.73204173083 | etot = -102.410785094812 +559000 ekin = 14.6833363987515 | erot = 13.8364712312426 | epot = -128.194049488042 | etot = -99.674241858048 +560000 ekin = 13.8032704865151 | erot = 16.3621868060878 | epot = -128.630373745615 | etot = -98.4649164530117 +561000 ekin = 15.490294368332 | erot = 14.8483889650737 | epot = -131.674752388104 | etot = -101.336069054698 +562000 ekin = 16.4428741862032 | erot = 17.5475675993354 | epot = -132.990492692958 | etot = -99.0000509074191 +563000 ekin = 17.1003382235047 | erot = 19.640250194249 | epot = -133.976850490626 | etot = -97.2362620728722 +564000 ekin = 16.8297751290314 | erot = 19.1525128665222 | epot = -134.481565057905 | etot = -98.4992770623515 +565000 ekin = 16.3252092422451 | erot = 19.1618918613524 | epot = -134.565272154893 | etot = -99.0781710512954 +566000 ekin = 17.2895019331068 | erot = 16.8462091007505 | epot = -134.327406255376 | etot = -100.191695221518 +567000 ekin = 17.0323906492612 | erot = 16.2918825563585 | epot = -133.70766075318 | etot = -100.383387547561 +568000 ekin = 16.3790772060084 | erot = 15.574422277605 | epot = -132.83958628787 | etot = -100.886086804257 +569000 ekin = 16.2273810520686 | erot = 14.7240543653566 | epot = -131.797679013765 | etot = -100.84624359634 +570000 ekin = 15.9900641522897 | erot = 13.4261011321613 | epot = -130.646318396574 | etot = -101.230153112123 +571000 ekin = 15.7066604174784 | erot = 13.0234217520948 | epot = -129.518264815906 | etot = -100.788182646333 +572000 ekin = 16.0092989285471 | erot = 12.1575559277608 | epot = -128.379111697494 | etot = -100.212256841186 +573000 ekin = 15.9708631343734 | erot = 11.1187133232187 | epot = -127.396033205366 | etot = -100.306456747774 +574000 ekin = 16.4336742572048 | erot = 11.0463709626913 | epot = -126.578179119945 | etot = -99.0981339000487 +575000 ekin = 16.6705776713588 | erot = 10.7073066200581 | epot = -125.724205448364 | etot = -98.3463211569468 +576000 ekin = 16.643261097378 | erot = 12.4216729485139 | epot = -125.152387316774 | etot = -96.0874532708816 +577000 ekin = 15.6029696585245 | erot = 12.0210027469721 | epot = -124.637013618676 | etot = -97.013041213179 +578000 ekin = 15.1217504082973 | erot = 11.4595910442715 | epot = -124.233033278189 | etot = -97.6516918256206 +579000 ekin = 15.0465935734355 | erot = 12.7262115365452 | epot = -123.793441452729 | etot = -96.020636342748 +580000 ekin = 15.0940489280731 | erot = 13.6051774356274 | epot = -123.331749104319 | etot = -94.6325227406182 +581000 ekin = 14.7781331191962 | erot = 13.1159956075504 | epot = -122.898867614539 | etot = -95.0047388877927 +582000 ekin = 15.6100957687545 | erot = 11.534434713536 | epot = -122.427694372763 | etot = -95.283163890472 +583000 ekin = 15.7489992202402 | erot = 11.4364124472658 | epot = -121.985823755297 | etot = -94.8004120877914 +584000 ekin = 15.8254878380624 | erot = 10.2058040644955 | epot = -121.640978549533 | etot = -95.6096866469753 +585000 ekin = 15.8487737856408 | erot = 8.71747367911913 | epot = -121.394720232222 | etot = -96.8284727674621 +586000 ekin = 15.9308434965333 | erot = 6.8128965677088 | epot = -121.46318607434 | etot = -98.7194460100977 +587000 ekin = 15.8799609085446 | erot = 7.01145208775909 | epot = -121.773232683032 | etot = -98.8818196867284 +588000 ekin = 16.4457907771307 | erot = 9.32918579174535 | epot = -122.366046753847 | etot = -96.5910701849708 +589000 ekin = 16.8324168458399 | erot = 9.1361453433059 | epot = -123.120906016409 | etot = -97.1523438272635 +590000 ekin = 17.7155015065396 | erot = 10.8010239309507 | epot = -123.950279101779 | etot = -95.4337536642889 +591000 ekin = 18.582172637572 | erot = 12.1434913540551 | epot = -124.74317051467 | etot = -94.0175065230431 +592000 ekin = 19.7287269455987 | erot = 11.640248069895 | epot = -125.49053884396 | etot = -94.1215638284665 +593000 ekin = 20.2421360449823 | erot = 11.4691273703594 | epot = -125.936877192475 | etot = -94.2256137771328 +594000 ekin = 20.8258968307947 | erot = 11.5067585781664 | epot = -126.003184271851 | etot = -93.6705288628895 +595000 ekin = 20.9016737450791 | erot = 11.1374359774499 | epot = -125.680251813537 | etot = -93.6411420910081 +596000 ekin = 20.5312730467165 | erot = 12.1007665172713 | epot = -125.005964164709 | etot = -92.3739246007213 +597000 ekin = 21.2832040757798 | erot = 11.0271699946615 | epot = -124.018711426703 | etot = -91.7083373562622 +598000 ekin = 21.6040849696085 | erot = 10.0992687087962 | epot = -122.785973741727 | etot = -91.0826200633223 +599000 ekin = 21.1832754570889 | erot = 9.77634716460214 | epot = -121.476563224164 | etot = -90.5169406024733 +600000 ekin = 20.1228831509292 | erot = 9.54773898830651 | epot = -120.17647917022 | etot = -90.5058570309846 +601000 ekin = 19.1118572595483 | erot = 8.11320736376245 | epot = -119.010980700425 | etot = -91.785916077114 +602000 ekin = 18.665680178544 | erot = 7.4830535665545 | epot = -118.045890820527 | etot = -91.8971570754285 +603000 ekin = 18.081995606827 | erot = 7.92648414432153 | epot = -117.479261710445 | etot = -91.4707819592969 +604000 ekin = 17.4910237608208 | erot = 8.46224773004699 | epot = -117.280073334434 | etot = -91.3268018435657 +605000 ekin = 16.4456067890573 | erot = 9.20099509670733 | epot = -117.313042448408 | etot = -91.6664405626436 +606000 ekin = 16.1733601636595 | erot = 11.093246978186 | epot = -117.38446139491 | etot = -90.1178542530648 +607000 ekin = 15.1981680377195 | erot = 13.1805232503445 | epot = -117.510376798243 | etot = -89.1316855101794 +608000 ekin = 14.0081061131211 | erot = 13.7561125379848 | epot = -117.649547699418 | etot = -89.8853290483125 +609000 ekin = 13.818830938552 | erot = 14.2766924193893 | epot = -117.637467628634 | etot = -89.5419442706926 +610000 ekin = 13.1121335077745 | erot = 16.045118377416 | epot = -117.371219818667 | etot = -88.2139679334762 +611000 ekin = 12.0976672808248 | erot = 15.1858927078526 | epot = -116.858556378552 | etot = -89.5749963898744 +612000 ekin = 11.9220029638036 | erot = 13.3855104580498 | epot = -116.373946806847 | etot = -91.066433384994 +613000 ekin = 11.3666160758114 | erot = 13.2728981904756 | epot = -115.771250337883 | etot = -91.1317360715958 +614000 ekin = 11.2524143895935 | erot = 11.9009495049358 | epot = -115.241963454889 | etot = -92.0885995603595 +615000 ekin = 11.1884819806374 | erot = 13.6569860280969 | epot = -114.774782544834 | etot = -89.9293145360998 +616000 ekin = 10.6499975272197 | erot = 15.2013862540199 | epot = -114.309207967121 | etot = -88.4578241858816 +617000 ekin = 10.4138402335121 | erot = 15.0033070762677 | epot = -113.953877170139 | etot = -88.5367298603587 +618000 ekin = 10.3874764562149 | erot = 16.4172186143102 | epot = -113.710134407831 | etot = -86.905439337306 +619000 ekin = 9.99028636695849 | erot = 14.7274727636021 | epot = -113.508001683668 | etot = -88.7902425531073 +620000 ekin = 10.3041883721209 | erot = 13.8526750931187 | epot = -113.308536373256 | etot = -89.1516729080167 +621000 ekin = 10.1555806788994 | erot = 13.963035038534 | epot = -113.272222139053 | etot = -89.1536064216194 +622000 ekin = 10.86693916419 | erot = 14.0813122989611 | epot = -113.376374288736 | etot = -88.4281228255848 +623000 ekin = 11.3859700250509 | erot = 14.8524083294346 | epot = -113.589012852683 | etot = -87.3506344981977 +624000 ekin = 11.6048296639596 | erot = 13.5297803701118 | epot = -113.839931482373 | etot = -88.7053214483019 +625000 ekin = 12.1696847808373 | erot = 13.4945782229098 | epot = -114.125840311987 | etot = -88.4615773082402 +626000 ekin = 13.3063758914076 | erot = 11.0407694649289 | epot = -114.542707544126 | etot = -90.195562187789 +627000 ekin = 14.0513781678418 | erot = 12.9296572169748 | epot = -115.235963654475 | etot = -88.2549282696589 +628000 ekin = 14.7386326295209 | erot = 14.2733655885988 | epot = -116.140527364528 | etot = -87.1285291464083 +629000 ekin = 16.0597037656505 | erot = 14.8674132821056 | epot = -117.325470573689 | etot = -86.3983535259332 +630000 ekin = 17.2708284639223 | erot = 16.7113994079231 | epot = -118.67269157756 | etot = -84.6904637057142 +631000 ekin = 19.0760838890113 | erot = 17.1201987673922 | epot = -120.170898337672 | etot = -83.9746156812687 +632000 ekin = 19.549583469596 | erot = 16.7553102323763 | epot = -121.774107568747 | etot = -85.4692138667745 +633000 ekin = 19.7557365237614 | erot = 19.5052241200048 | epot = -123.382136946336 | etot = -84.1211763025696 +634000 ekin = 20.3758046951383 | erot = 20.4839422619294 | epot = -124.793264832696 | etot = -83.9335178756281 +635000 ekin = 20.5084225289458 | erot = 20.7141390055288 | epot = -126.044346489046 | etot = -84.8217849545716 +636000 ekin = 21.1081835997456 | erot = 21.7042260881149 | epot = -127.030253954489 | etot = -84.2178442666289 +637000 ekin = 21.7890525197018 | erot = 22.3611764197008 | epot = -127.462306332383 | etot = -83.3120773929799 +638000 ekin = 22.8566093419233 | erot = 23.1784344200364 | epot = -127.315216811043 | etot = -81.2801730490835 +639000 ekin = 22.3429920008256 | erot = 22.0459046291129 | epot = -126.706799479394 | etot = -82.3179028494555 +640000 ekin = 22.6953942607299 | erot = 20.8983710819614 | epot = -125.829760713803 | etot = -82.2359953711113 +641000 ekin = 22.8439968772693 | erot = 21.0740721959676 | epot = -124.721138440745 | etot = -80.8030693675081 +642000 ekin = 22.1533451706583 | erot = 21.1494022467433 | epot = -123.447161286469 | etot = -80.144413869067 +643000 ekin = 21.5294868902541 | erot = 20.1256715660592 | epot = -122.008233998322 | etot = -80.3530755420084 +644000 ekin = 20.2303184656479 | erot = 19.3407148019869 | epot = -120.681831167764 | etot = -81.1107979001294 +645000 ekin = 19.4828971696373 | erot = 19.0195806413955 | epot = -119.467917319826 | etot = -80.9654395087931 +646000 ekin = 19.0662621367578 | erot = 18.9888559285631 | epot = -118.272684937573 | etot = -80.2175668722518 +647000 ekin = 18.6861208388155 | erot = 16.4218027074871 | epot = -117.232865439236 | etot = -82.1249418929329 +648000 ekin = 18.418772080989 | erot = 16.1392001141573 | epot = -116.443271389682 | etot = -81.8852991945353 +649000 ekin = 16.9720643990158 | erot = 15.679285405117 | epot = -115.834634277679 | etot = -83.1832844735462 +650000 ekin = 16.637818718134 | erot = 17.4493822417518 | epot = -115.341820195353 | etot = -81.254619235467 +651000 ekin = 16.7043030093967 | erot = 16.7313546097741 | epot = -115.376079299152 | etot = -81.9404216799809 +652000 ekin = 16.4646476925032 | erot = 17.3683673741032 | epot = -115.48194607439 | etot = -81.6489310077834 +653000 ekin = 15.8000469685932 | erot = 17.0265265526311 | epot = -115.746812156879 | etot = -82.9202386356544 +654000 ekin = 15.7743381483674 | erot = 19.3876348309309 | epot = -116.186419410868 | etot = -81.0244464315693 +655000 ekin = 15.6655810278436 | erot = 19.2583049313345 | epot = -116.555885603646 | etot = -81.6319996444684 +656000 ekin = 15.0368233093534 | erot = 20.8003287973529 | epot = -116.82925763844 | etot = -80.9921055317338 +657000 ekin = 15.1977678605749 | erot = 22.5087472235756 | epot = -116.936596984334 | etot = -79.2300819001832 +658000 ekin = 15.0298677342316 | erot = 21.6714000896342 | epot = -116.869137587512 | etot = -80.1678697636462 +659000 ekin = 14.8443959405137 | erot = 20.4195205180262 | epot = -116.673989819183 | etot = -81.410073360643 +660000 ekin = 14.5570644255729 | erot = 19.4853396657641 | epot = -116.400519641973 | etot = -82.3581155506359 +661000 ekin = 14.2956622818766 | erot = 18.7621543659755 | epot = -116.213425951533 | etot = -83.1556093036806 +662000 ekin = 14.4919431565361 | erot = 20.1886485654266 | epot = -115.918921077967 | etot = -81.2383293560043 +663000 ekin = 14.8058643406684 | erot = 20.6580010049446 | epot = -115.546581931323 | etot = -80.0827165857098 +664000 ekin = 14.7871760339976 | erot = 22.1135393371422 | epot = -115.398518278306 | etot = -78.497802907166 +665000 ekin = 15.8458781174239 | erot = 20.1244374174276 | epot = -115.392650343006 | etot = -79.4223348081541 +666000 ekin = 16.0080119400059 | erot = 18.1659687841157 | epot = -115.303268542373 | etot = -81.1292878182515 +667000 ekin = 15.5486521051748 | erot = 18.0884297532321 | epot = -115.256306296413 | etot = -81.6192244380064 +668000 ekin = 15.0598613033583 | erot = 15.4712674184192 | epot = -115.093834281093 | etot = -84.5627055593156 +669000 ekin = 15.3526157137167 | erot = 16.0088825474127 | epot = -115.00952385519 | etot = -83.6480255940608 +670000 ekin = 15.4977592110664 | erot = 14.8092487819138 | epot = -114.862532491762 | etot = -84.5555244987819 +671000 ekin = 15.4000237698432 | erot = 15.1143684799316 | epot = -114.652041425745 | etot = -84.1376491759703 +672000 ekin = 15.9713138534395 | erot = 14.5307653528988 | epot = -114.375144978471 | etot = -83.8730657721329 +673000 ekin = 16.3571505623909 | erot = 14.7153383635329 | epot = -113.918004164911 | etot = -82.8455152389876 +674000 ekin = 16.4861407399183 | erot = 13.3557709857525 | epot = -113.506238187029 | etot = -83.6643264613584 +675000 ekin = 16.4743983981331 | erot = 13.8105719239148 | epot = -113.022350157152 | etot = -82.737379835104 +676000 ekin = 17.3383460372365 | erot = 12.757377551601 | epot = -112.515050263435 | etot = -82.4193266745974 +677000 ekin = 16.9898565100054 | erot = 12.1680687389642 | epot = -112.128350557786 | etot = -82.9704253088166 +678000 ekin = 16.8525966578395 | erot = 13.7263413713123 | epot = -111.889145456694 | etot = -81.3102074275422 +679000 ekin = 16.9505937066578 | erot = 14.8954677234306 | epot = -111.616506596362 | etot = -79.7704451662738 +680000 ekin = 16.6414596570693 | erot = 14.6477182707077 | epot = -111.397557777114 | etot = -80.1083798493368 +681000 ekin = 16.2530255794803 | erot = 13.7865807840322 | epot = -111.318742772779 | etot = -81.2791364092661 +682000 ekin = 16.3185190504211 | erot = 14.6921548981951 | epot = -111.351569076462 | etot = -80.3408951278459 +683000 ekin = 16.2911111923816 | erot = 15.4238571396284 | epot = -111.548791079125 | etot = -79.8338227471145 +684000 ekin = 16.3651768582959 | erot = 14.9055126637841 | epot = -111.716864234947 | etot = -80.4461747128669 +685000 ekin = 15.9554620519382 | erot = 15.0240157618528 | epot = -111.878241765913 | etot = -80.8987639521215 +686000 ekin = 16.4059641913669 | erot = 15.3352984316397 | epot = -111.971770781358 | etot = -80.2305081583519 +687000 ekin = 16.7571821779775 | erot = 16.6079020554036 | epot = -112.02692872915 | etot = -78.6618444957691 +688000 ekin = 16.6415130117968 | erot = 15.8521345488749 | epot = -112.172800950489 | etot = -79.6791533898177 +689000 ekin = 16.7359898215401 | erot = 14.8035884446369 | epot = -112.53523866823 | etot = -80.9956604020534 +690000 ekin = 16.8520545819418 | erot = 14.9597259359453 | epot = -113.117923875801 | etot = -81.3061433579143 +691000 ekin = 17.1386154555738 | erot = 15.3420381306263 | epot = -113.815057780648 | etot = -81.3344041944475 +692000 ekin = 17.3543364338973 | erot = 17.3837703304784 | epot = -114.578602205326 | etot = -79.8404954409507 +693000 ekin = 18.236928358818 | erot = 17.1339159798889 | epot = -115.378509414152 | etot = -80.0076650754447 +694000 ekin = 17.1861910484986 | erot = 18.1297188911614 | epot = -116.139393340963 | etot = -80.8234834013025 +695000 ekin = 17.1237054673681 | erot = 18.1517844517828 | epot = -116.808974183386 | etot = -81.5334842642353 +696000 ekin = 17.4738329836767 | erot = 18.9867781591255 | epot = -117.420473407581 | etot = -80.9598622647786 +697000 ekin = 17.1553618265826 | erot = 19.5068840346769 | epot = -117.886125153115 | etot = -81.223879291855 +698000 ekin = 16.7865903997279 | erot = 19.0601681299166 | epot = -118.19902016553 | etot = -82.3522616358854 +699000 ekin = 16.2934280530717 | erot = 19.0599342090789 | epot = -118.052863064983 | etot = -82.6995008028323 +700000 ekin = 15.4184996147696 | erot = 15.9110837414063 | epot = -117.595973373478 | etot = -86.2663900173019 +701000 ekin = 15.5318785396331 | erot = 14.2265443299337 | epot = -117.037441525618 | etot = -87.2790186560516 +702000 ekin = 15.7357667092624 | erot = 15.1652334280863 | epot = -116.473846536182 | etot = -85.5728463988331 +703000 ekin = 15.2723305471281 | erot = 15.3880906719037 | epot = -115.787949915447 | etot = -85.1275286964155 +704000 ekin = 14.9831548145634 | erot = 16.7463413685097 | epot = -115.05972941091 | etot = -83.330233227837 +705000 ekin = 14.5159504582253 | erot = 16.6398789411266 | epot = -114.297577433871 | etot = -83.1417480345187 +706000 ekin = 14.5872231438258 | erot = 17.5787870360321 | epot = -113.518744454188 | etot = -81.35273427433 +707000 ekin = 14.9278866425061 | erot = 16.6557553871101 | epot = -112.751461632238 | etot = -81.1678196026222 +708000 ekin = 14.4328586823026 | erot = 15.5195587722882 | epot = -111.994936287192 | etot = -82.042518832601 +709000 ekin = 13.8576942695953 | erot = 14.1136534418066 | epot = -111.410050264174 | etot = -83.4387025527717 +710000 ekin = 13.5706587266072 | erot = 13.7463574518263 | epot = -111.040631911948 | etot = -83.7236157335143 +711000 ekin = 13.1978890368118 | erot = 13.1768388142301 | epot = -110.941500879792 | etot = -84.5667730287496 +712000 ekin = 13.3102169421158 | erot = 13.1640922590864 | epot = -110.967842198588 | etot = -84.4935329973858 +713000 ekin = 13.6132122765889 | erot = 12.3364585742912 | epot = -110.879608176168 | etot = -84.9299373252874 +714000 ekin = 14.7428498532989 | erot = 12.0295592979849 | epot = -111.015008669574 | etot = -84.2425995182899 +715000 ekin = 15.3901173158569 | erot = 12.7484723792576 | epot = -111.491503816928 | etot = -83.3529141218137 +716000 ekin = 15.3539152995683 | erot = 15.1814525656434 | epot = -112.277977254205 | etot = -81.7426093889929 +717000 ekin = 15.9160011253634 | erot = 15.8038627550558 | epot = -113.174131044634 | etot = -81.454267164215 +718000 ekin = 16.3504419499244 | erot = 15.4025864539449 | epot = -114.156959448308 | etot = -82.4039310444385 +719000 ekin = 16.549602317868 | erot = 14.5807668603065 | epot = -114.891534334078 | etot = -83.7611651559037 +720000 ekin = 16.699182133157 | erot = 13.8081822822405 | epot = -115.438802283192 | etot = -84.9314378677944 +721000 ekin = 17.1673185529944 | erot = 12.9193605231338 | epot = -115.861508293824 | etot = -85.7748292176956 +722000 ekin = 17.4322438179512 | erot = 12.6776690207364 | epot = -116.375570814202 | etot = -86.2656579755143 +723000 ekin = 18.5581458626413 | erot = 14.2424135829758 | epot = -116.917532631926 | etot = -84.1169731863093 +724000 ekin = 18.9428272620659 | erot = 15.165421285469 | epot = -117.57414912553 | etot = -83.465900577995 +725000 ekin = 19.441432399728 | erot = 15.7836923804543 | epot = -118.074905294794 | etot = -82.8497805146113 +726000 ekin = 20.2132558330506 | erot = 14.7911998387733 | epot = -118.490382568412 | etot = -83.4859268965885 +727000 ekin = 20.9690773603413 | erot = 11.3121249395298 | epot = -118.880706212445 | etot = -86.5995039125738 +728000 ekin = 21.4971860333606 | erot = 10.174445400751 | epot = -119.160483525573 | etot = -87.4888520914613 +729000 ekin = 21.8812710806639 | erot = 10.6840378391884 | epot = -119.399746884653 | etot = -86.8344379648003 +730000 ekin = 21.4809035479769 | erot = 10.7417210007781 | epot = -119.442086082618 | etot = -87.2194615338635 +731000 ekin = 20.4761865270565 | erot = 10.8248255192935 | epot = -119.278005568648 | etot = -87.9769935222981 +732000 ekin = 20.3680589172194 | erot = 10.678516662158 | epot = -119.003139163919 | etot = -87.9565635845412 +733000 ekin = 19.4298841117498 | erot = 11.8407837845394 | epot = -118.616695680095 | etot = -87.346027783806 +734000 ekin = 19.5819429337487 | erot = 12.4147186446835 | epot = -118.117352533724 | etot = -86.1206909552921 +735000 ekin = 19.0632000575252 | erot = 11.5927293968676 | epot = -117.616849772036 | etot = -86.9609203176429 +736000 ekin = 18.297506560165 | erot = 12.7308502117521 | epot = -117.091431606781 | etot = -86.0630748348637 +737000 ekin = 18.0538832577921 | erot = 10.7657920073953 | epot = -116.578648690768 | etot = -87.7589734255808 +738000 ekin = 17.421418619176 | erot = 12.5509163664985 | epot = -116.136132354182 | etot = -86.1637973685077 +739000 ekin = 17.0897370867241 | erot = 13.2088390637356 | epot = -115.640502304353 | etot = -85.3419261538932 +740000 ekin = 16.310117342326 | erot = 13.6200255516858 | epot = -115.050866589654 | etot = -85.1207236956421 +741000 ekin = 15.6365317806195 | erot = 14.019129912876 | epot = -114.449993391252 | etot = -84.7943316977568 +742000 ekin = 14.9732300630273 | erot = 15.7356270066579 | epot = -113.890619494628 | etot = -83.181762424943 +743000 ekin = 14.4083614596627 | erot = 16.5554398771082 | epot = -113.280494362843 | etot = -82.3166930260719 +744000 ekin = 13.03898614748 | erot = 15.4061319404246 | epot = -112.634742954922 | etot = -84.1896248670175 +745000 ekin = 13.1381721908975 | erot = 14.6690692508061 | epot = -112.009444415089 | etot = -84.2022029733852 +746000 ekin = 13.0326251674368 | erot = 13.5725220329178 | epot = -111.333092273034 | etot = -84.7279450726797 +747000 ekin = 12.8821095039388 | erot = 12.0155935329808 | epot = -110.787633139541 | etot = -85.8899301026215 +748000 ekin = 12.9584427751653 | erot = 11.5383896235378 | epot = -110.394048001213 | etot = -85.8972156025098 +749000 ekin = 12.3400213550355 | erot = 10.5815921772998 | epot = -110.143265497353 | etot = -87.221651965018 +750000 ekin = 11.5393734324413 | erot = 10.9845533382395 | epot = -109.959563791501 | etot = -87.4356370208202 +751000 ekin = 10.9222252305684 | erot = 11.6128989794224 | epot = -109.949578832544 | etot = -87.4144546225531 +752000 ekin = 10.8238329042319 | erot = 10.0479136602577 | epot = -110.149993490078 | etot = -89.278246925588 +753000 ekin = 11.4962089358426 | erot = 9.58927029980097 | epot = -110.492110868259 | etot = -89.4066316326155 +754000 ekin = 11.6378196030486 | erot = 9.80908458276957 | epot = -110.821288821443 | etot = -89.3743846356246 +755000 ekin = 12.38505496023 | erot = 8.99090744479519 | epot = -111.249098590009 | etot = -89.8731361849842 +756000 ekin = 12.7731677402928 | erot = 9.77341945625968 | epot = -111.842275371625 | etot = -89.2956881750728 +757000 ekin = 12.8115161379076 | erot = 12.7795055261822 | epot = -112.510161341528 | etot = -86.9191396774381 +758000 ekin = 13.5020359203668 | erot = 14.4715401370259 | epot = -113.210435142659 | etot = -85.2368590852658 +759000 ekin = 13.2381945175707 | erot = 16.983701060954 | epot = -113.881228857596 | etot = -83.6593332790709 +760000 ekin = 13.3246669671446 | erot = 14.6963642691986 | epot = -114.560324803731 | etot = -86.5392935673879 +761000 ekin = 14.0784624928702 | erot = 14.2932107965424 | epot = -115.370367666941 | etot = -86.9986943775289 +762000 ekin = 14.7915513624397 | erot = 13.904714415853 | epot = -116.143777057633 | etot = -87.4475112793401 +763000 ekin = 15.2123522918624 | erot = 15.2465001915023 | epot = -116.81256893766 | etot = -86.3537164542953 +764000 ekin = 14.8052789359422 | erot = 16.1650390125407 | epot = -117.411346708376 | etot = -86.4410287598929 +765000 ekin = 15.5310091315323 | erot = 15.2812812493463 | epot = -117.982434585728 | etot = -87.1701442048491 +766000 ekin = 15.994350647252 | erot = 14.2761412052699 | epot = -118.562864469692 | etot = -88.2923726171706 +767000 ekin = 16.2653623244275 | erot = 13.7064523675545 | epot = -119.093242354204 | etot = -89.121427662222 +768000 ekin = 16.3947126291507 | erot = 14.7588954053121 | epot = -119.6036559285 | etot = -88.450047894037 +769000 ekin = 15.629652360566 | erot = 12.0886911958527 | epot = -119.97790024693 | etot = -92.2595566905108 +770000 ekin = 15.7806956095376 | erot = 12.2052577997901 | epot = -120.284346707973 | etot = -92.2983932986457 +771000 ekin = 16.6370376614557 | erot = 13.2528225497813 | epot = -120.446347401408 | etot = -90.5564871901711 +772000 ekin = 16.9996640417653 | erot = 12.0570296338132 | epot = -120.44856845661 | etot = -91.3918747810311 +773000 ekin = 16.9898540586523 | erot = 10.6185471059335 | epot = -120.369839005892 | etot = -92.7614378413063 +774000 ekin = 16.8919394319844 | erot = 9.77617810301849 | epot = -120.229185976585 | etot = -93.561068441582 +775000 ekin = 16.5524346521886 | erot = 10.4045168893084 | epot = -120.094649134474 | etot = -93.137697592977 +776000 ekin = 16.2101595715457 | erot = 11.2240534564775 | epot = -120.110452870025 | etot = -92.676239842002 +777000 ekin = 16.7785554550484 | erot = 10.1287514469566 | epot = -120.151810661078 | etot = -93.2445037590733 +778000 ekin = 17.1166911974141 | erot = 9.50157485152149 | epot = -120.313848313001 | etot = -93.6955822640657 +779000 ekin = 17.6889693237664 | erot = 9.32976665587914 | epot = -120.610167321774 | etot = -93.5914313421284 +780000 ekin = 17.9806088731003 | erot = 9.33508062594656 | epot = -120.940873026538 | etot = -93.6251835274909 +781000 ekin = 18.5993438310554 | erot = 10.627473857285 | epot = -121.148642480253 | etot = -91.9218247919125 +782000 ekin = 19.2641311336065 | erot = 11.1079291456411 | epot = -121.32487065963 | etot = -90.9528103803828 +783000 ekin = 20.2812434331 | erot = 8.23327550658308 | epot = -121.316369254064 | etot = -92.8018503143813 +784000 ekin = 20.9752118637556 | erot = 8.15469782183701 | epot = -121.272107440927 | etot = -92.1421977553348 +785000 ekin = 21.8924066799283 | erot = 7.70304666368148 | epot = -121.238520205958 | etot = -91.6430668623479 +786000 ekin = 21.7796096028903 | erot = 8.04220753044906 | epot = -121.159628332142 | etot = -91.3378111988023 +787000 ekin = 22.1195259314042 | erot = 6.8282785893581 | epot = -120.922313278572 | etot = -91.9745087578098 +788000 ekin = 21.3828517102018 | erot = 6.99007001840233 | epot = -120.69597980518 | etot = -92.3230580765763 +789000 ekin = 21.936131278614 | erot = 5.79811923390562 | epot = -120.340814667307 | etot = -92.6065641547875 +790000 ekin = 21.8385813428668 | erot = 4.72762778556262 | epot = -120.048164377261 | etot = -93.481955248832 +791000 ekin = 21.8319066908171 | erot = 5.39355344376339 | epot = -119.853156156477 | etot = -92.6276960218966 +792000 ekin = 21.0658428104221 | erot = 5.79436809250518 | epot = -119.743288386152 | etot = -92.8830774832244 +793000 ekin = 19.8199186658772 | erot = 5.82943748935814 | epot = -119.596178428627 | etot = -93.9468222733916 +794000 ekin = 19.7672847441192 | erot = 5.59633501272583 | epot = -119.475585853262 | etot = -94.111966096417 +795000 ekin = 18.6499050116789 | erot = 8.31430007281567 | epot = -119.285414166791 | etot = -92.3212090822962 +796000 ekin = 17.9363655678375 | erot = 9.507008126683 | epot = -119.093130917218 | etot = -91.6497572226971 +797000 ekin = 17.6195070538523 | erot = 11.5281197691252 | epot = -118.913703089804 | etot = -89.7660762668261 +798000 ekin = 16.7416832038213 | erot = 10.8230200177241 | epot = -118.592676023165 | etot = -91.0279728016191 +799000 ekin = 15.9683628681919 | erot = 10.5008188359403 | epot = -118.118213389297 | etot = -91.6490316851645 +800000 ekin = 15.8328009163475 | erot = 10.6678350162836 | epot = -117.620684456068 | etot = -91.1200485234368 +801000 ekin = 15.8815393666215 | erot = 11.8801796924214 | epot = -117.150405220342 | etot = -89.3886861612996 +802000 ekin = 15.2912046436652 | erot = 12.3681708297557 | epot = -116.682465911253 | etot = -89.0230904378323 +803000 ekin = 15.0644332574077 | erot = 13.4381207505363 | epot = -116.228148754426 | etot = -87.7255947464824 +804000 ekin = 14.8698392773217 | erot = 12.3545854788909 | epot = -115.807242252982 | etot = -88.582817496769 +805000 ekin = 14.2149826847359 | erot = 11.5366482534163 | epot = -115.507222545212 | etot = -89.7555916070598 +806000 ekin = 14.1074639425469 | erot = 11.0928417857839 | epot = -115.376020508432 | etot = -90.1757147801011 +807000 ekin = 14.113570534875 | erot = 10.7403809857074 | epot = -115.500754282591 | etot = -90.6468027620081 +808000 ekin = 14.8515656803556 | erot = 9.93484379441975 | epot = -115.742973376619 | etot = -90.9565639018439 +809000 ekin = 15.5106263974934 | erot = 9.46177919939148 | epot = -116.039589606039 | etot = -91.067184009154 +810000 ekin = 15.3650711677996 | erot = 10.9192101328555 | epot = -116.36001113323 | etot = -90.0757298325749 +811000 ekin = 15.6996079985536 | erot = 11.3353249327696 | epot = -116.659308700673 | etot = -89.6243757693493 +812000 ekin = 15.5955589758704 | erot = 9.77769038449703 | epot = -116.933632012428 | etot = -91.5603826520602 +813000 ekin = 15.7905106860366 | erot = 10.0769482126314 | epot = -117.121213114681 | etot = -91.2537542160133 +814000 ekin = 15.836943371153 | erot = 10.4725840830616 | epot = -117.242992703304 | etot = -90.9334652490891 +815000 ekin = 15.7798728273714 | erot = 10.270859520781 | epot = -117.464478160431 | etot = -91.4137458122788 +816000 ekin = 15.5108139706635 | erot = 9.81402764178317 | epot = -117.700565923965 | etot = -92.375724311518 +817000 ekin = 14.9505026726033 | erot = 12.6345228166784 | epot = -117.993099747899 | etot = -90.4080742586175 +818000 ekin = 15.1200903840887 | erot = 12.1447825805719 | epot = -118.351925084352 | etot = -91.0870521196916 +819000 ekin = 14.4311436258796 | erot = 12.6781303279808 | epot = -118.826174003248 | etot = -91.7169000493874 +820000 ekin = 13.5072356830853 | erot = 12.3586951787113 | epot = -119.259399926334 | etot = -93.3934690645378 +821000 ekin = 13.4519855490784 | erot = 13.635560178739 | epot = -119.686972219316 | etot = -92.5994264914982 +822000 ekin = 13.2612756217885 | erot = 12.828076715774 | epot = -120.107052971282 | etot = -94.0177006337199 +823000 ekin = 13.6566874959119 | erot = 12.8519595303742 | epot = -120.692147426794 | etot = -94.183500400508 +824000 ekin = 13.6549705792837 | erot = 13.7641831570978 | epot = -121.262313617144 | etot = -93.8431598807624 +825000 ekin = 13.9319007132007 | erot = 14.8682888426075 | epot = -121.845959741125 | etot = -93.045770185317 +826000 ekin = 14.2062841472185 | erot = 14.0474169899914 | epot = -122.317101839548 | etot = -94.0634007023385 +827000 ekin = 14.6726774871556 | erot = 14.3687000686378 | epot = -122.63996326646 | etot = -93.5985857106662 +828000 ekin = 14.954904414193 | erot = 12.1762478618103 | epot = -122.850502321156 | etot = -95.7193500451532 +829000 ekin = 15.8405253719071 | erot = 12.0065735120163 | epot = -123.014458934709 | etot = -95.167360050786 +830000 ekin = 16.3737927574426 | erot = 11.8470255390997 | epot = -123.203517144017 | etot = -94.982698847475 +831000 ekin = 17.0141828340646 | erot = 11.2463282353398 | epot = -123.352294850051 | etot = -95.0917837806466 +832000 ekin = 17.3349692010058 | erot = 10.0974853526763 | epot = -123.490699679036 | etot = -96.0582451253537 +833000 ekin = 17.6111288592833 | erot = 9.39186517389969 | epot = -123.666551367413 | etot = -96.6635573342296 +834000 ekin = 17.8993253229693 | erot = 9.24560386945977 | epot = -123.969738347961 | etot = -96.824809155532 +835000 ekin = 18.3602247479247 | erot = 9.79891209034335 | epot = -124.198813308332 | etot = -96.0396764700638 +836000 ekin = 18.964054173631 | erot = 11.4834158200508 | epot = -124.485950275745 | etot = -94.0384802820636 +837000 ekin = 19.161629252954 | erot = 10.2394617340205 | epot = -124.746605863583 | etot = -95.3455148766088 +838000 ekin = 19.1740945620472 | erot = 9.13223901034505 | epot = -125.035058601471 | etot = -96.7287250290788 +839000 ekin = 19.7505157589066 | erot = 9.63496380125181 | epot = -125.284451947216 | etot = -95.8989723870572 +840000 ekin = 20.1471792177468 | erot = 9.10187944827153 | epot = -125.534736495681 | etot = -96.2856778296631 +841000 ekin = 19.6027548002793 | erot = 8.52546960166535 | epot = -125.680127019133 | etot = -97.5519026171889 +842000 ekin = 19.4863854237829 | erot = 9.54974707904911 | epot = -125.695704153012 | etot = -96.6595716501799 +843000 ekin = 19.155026075008 | erot = 10.3127317669629 | epot = -125.588742330561 | etot = -96.12098448859 +844000 ekin = 18.7487380479702 | erot = 9.96785575488987 | epot = -125.34545235114 | etot = -96.6288585482803 +845000 ekin = 18.2331914387742 | erot = 9.53282016412031 | epot = -125.057985349926 | etot = -97.2919737470317 +846000 ekin = 18.5216298811579 | erot = 10.6765011499907 | epot = -124.75053142677 | etot = -95.5524003956219 +847000 ekin = 17.6129752038445 | erot = 11.1954358895151 | epot = -124.458389475805 | etot = -95.649978382445 +848000 ekin = 17.8418961529153 | erot = 13.3467675634966 | epot = -124.107460776295 | etot = -92.9187970598832 +849000 ekin = 17.0906867018798 | erot = 14.9412863530835 | epot = -123.797756965365 | etot = -91.7657839104019 +850000 ekin = 16.5565760771884 | erot = 16.3168424817122 | epot = -123.572248019221 | etot = -90.69882946032 +851000 ekin = 16.3630368263058 | erot = 17.241519847228 | epot = -123.335025531801 | etot = -89.7304688582673 +852000 ekin = 15.9752556062866 | erot = 17.7177869526889 | epot = -123.116884707468 | etot = -89.4238421484925 +853000 ekin = 15.8668361896513 | erot = 18.0092422853688 | epot = -122.872128188376 | etot = -88.9960497133555 +854000 ekin = 15.8229688728036 | erot = 18.0711771193 | epot = -122.5253434954 | etot = -88.6311975032962 +855000 ekin = 15.9585783329093 | erot = 18.7102931799029 | epot = -122.021344738748 | etot = -87.3524732259361 +856000 ekin = 15.6873864921224 | erot = 18.1729033343094 | epot = -121.461170358966 | etot = -87.6008805325342 +857000 ekin = 15.4166200885964 | erot = 18.1249802377734 | epot = -120.732895294045 | etot = -87.1912949676752 +858000 ekin = 15.920319634723 | erot = 17.2576511362215 | epot = -119.978117030039 | etot = -86.8001462590944 +859000 ekin = 15.8396762585139 | erot = 18.5696751038999 | epot = -119.31190868098 | etot = -84.9025573185659 +860000 ekin = 15.5827603182971 | erot = 18.7231746346669 | epot = -118.677135587555 | etot = -84.3712006345911 +861000 ekin = 15.1722766838704 | erot = 18.3361843793459 | epot = -118.024779075157 | etot = -84.5163180119404 +862000 ekin = 15.0094595057786 | erot = 18.888095695251 | epot = -117.561240138321 | etot = -83.6636849372913 +863000 ekin = 16.3992141495581 | erot = 19.0270095430012 | epot = -117.158995958539 | etot = -81.7327722659794 +864000 ekin = 17.0456638476167 | erot = 16.7973031691559 | epot = -116.781733582951 | etot = -82.9387665661782 +865000 ekin = 17.6056841777089 | erot = 14.0078111610621 | epot = -116.43066511917 | etot = -84.8171697803986 +866000 ekin = 17.9448372652699 | erot = 14.0693010157328 | epot = -116.126112398458 | etot = -84.1119741174554 +867000 ekin = 18.2732015455461 | erot = 13.244034526719 | epot = -115.888005802281 | etot = -84.3707697300162 +868000 ekin = 18.2849597704299 | erot = 12.9928912198279 | epot = -115.682028470573 | etot = -84.4041774803151 +869000 ekin = 17.7524383551921 | erot = 12.0043148955387 | epot = -115.581878837995 | etot = -85.8251255872641 +870000 ekin = 18.12155333597 | erot = 11.1888007724603 | epot = -115.508894436749 | etot = -86.1985403283188 +871000 ekin = 18.7002477332545 | erot = 11.3537342736374 | epot = -115.469320490239 | etot = -85.4153384833468 +872000 ekin = 18.3281851410687 | erot = 11.3049334382773 | epot = -115.522508538055 | etot = -85.8893899587089 +873000 ekin = 18.9326956575937 | erot = 11.6721180224957 | epot = -115.602256457199 | etot = -84.9974427771099 +874000 ekin = 18.8522970516783 | erot = 11.911050725311 | epot = -115.846744057966 | etot = -85.0833962809767 +875000 ekin = 18.4229796561767 | erot = 11.8729396239959 | epot = -116.074179417696 | etot = -85.7782601375235 +876000 ekin = 18.7082371539651 | erot = 12.516865025384 | epot = -116.343864328932 | etot = -85.1187621495826 +877000 ekin = 18.3022205400887 | erot = 13.6432909766226 | epot = -116.743995963962 | etot = -84.7984844472511 +878000 ekin = 18.6015825941817 | erot = 13.8971846266847 | epot = -117.366355702891 | etot = -84.867588482025 +879000 ekin = 17.9525634287373 | erot = 12.9414239809514 | epot = -118.014864660128 | etot = -87.120877250439 +880000 ekin = 18.3766039136358 | erot = 14.5500115107006 | epot = -118.764298269044 | etot = -85.8376828447072 +881000 ekin = 17.262513355404 | erot = 14.9536600733876 | epot = -119.565385720242 | etot = -87.3492122914507 +882000 ekin = 16.7762235931364 | erot = 14.5097084376052 | epot = -120.289225623202 | etot = -89.0032935924604 +883000 ekin = 15.8395576604101 | erot = 15.8361420619882 | epot = -120.824117258563 | etot = -89.148417536165 +884000 ekin = 15.5937774075175 | erot = 13.8227021338877 | epot = -121.099783610957 | etot = -91.6833040695522 +885000 ekin = 14.9813853737919 | erot = 13.3756451967454 | epot = -121.078780185378 | etot = -92.7217496148406 +886000 ekin = 14.5031068301856 | erot = 13.5060136353071 | epot = -120.843158893017 | etot = -92.8340384275241 +887000 ekin = 14.6650536360114 | erot = 13.7553660443201 | epot = -120.357347236274 | etot = -91.9369275559425 +888000 ekin = 14.1759873663133 | erot = 14.4716353583819 | epot = -119.759474461657 | etot = -91.1118517369617 +889000 ekin = 14.1111904475878 | erot = 12.7620258712917 | epot = -119.106732143149 | etot = -92.2335158242697 +890000 ekin = 13.5338966496054 | erot = 14.264867338732 | epot = -118.366576823951 | etot = -90.567812835614 +891000 ekin = 12.589910875445 | erot = 16.09351402541 | epot = -117.697261254063 | etot = -89.0138363532079 +892000 ekin = 12.367696657161 | erot = 14.8343112464362 | epot = -117.114979792313 | etot = -89.9129718887153 +893000 ekin = 11.8888199540295 | erot = 15.5619355677984 | epot = -116.569736465347 | etot = -89.1189809435189 +894000 ekin = 12.0695922005297 | erot = 14.1768659854505 | epot = -116.193015287478 | etot = -89.9465571014977 +895000 ekin = 12.0137012689767 | erot = 14.7176843341314 | epot = -116.049279411988 | etot = -89.3178938088798 +896000 ekin = 12.0457177984029 | erot = 15.0690385660324 | epot = -116.226063999879 | etot = -89.1113076354438 +897000 ekin = 11.9649944708071 | erot = 16.7585652239991 | epot = -116.547901475597 | etot = -87.8243417807911 +898000 ekin = 12.4125505791435 | erot = 16.0288167842045 | epot = -116.877747709982 | etot = -88.4363803466339 +899000 ekin = 12.7913647101517 | erot = 16.2599665436297 | epot = -117.22389856283 | etot = -88.1725673090489 +900000 ekin = 12.7213203733162 | erot = 15.9346879561939 | epot = -117.525910997654 | etot = -88.8699026681444 +901000 ekin = 13.3925140460675 | erot = 13.0898105027757 | epot = -117.79105806064 | etot = -91.3087335117963 +902000 ekin = 13.5974591701383 | erot = 12.6629036844613 | epot = -118.166495804444 | etot = -91.9061329498441 +903000 ekin = 13.8239248106963 | erot = 12.9097445050843 | epot = -118.503808290443 | etot = -91.7701389746622 +904000 ekin = 13.9003237222555 | erot = 12.7187951249901 | epot = -118.954435028969 | etot = -92.3353161817234 +905000 ekin = 13.8484759023217 | erot = 14.4414990804685 | epot = -119.555904078968 | etot = -91.2659290961777 +906000 ekin = 14.0709567230086 | erot = 17.1395182144883 | epot = -120.256597236867 | etot = -89.0461222993702 +907000 ekin = 13.0525497710419 | erot = 17.0435686835159 | epot = -120.833284821664 | etot = -90.7371663671067 +908000 ekin = 13.5011032375864 | erot = 17.4068087159159 | epot = -121.378539430815 | etot = -90.4706274773124 +909000 ekin = 13.0477752122483 | erot = 17.3551032189452 | epot = -121.944468320843 | etot = -91.5415898896497 +910000 ekin = 13.0734564213323 | erot = 17.7240098890034 | epot = -122.455605036845 | etot = -91.6581387265093 +911000 ekin = 12.9549554196173 | erot = 18.5309639253154 | epot = -122.885520670757 | etot = -91.3996013258247 +912000 ekin = 12.9071827432122 | erot = 19.3038132220738 | epot = -123.295755441277 | etot = -91.0847594759915 +913000 ekin = 12.873639651769 | erot = 17.6447968514768 | epot = -123.591389017518 | etot = -93.0729525142721 +914000 ekin = 13.2090327600462 | erot = 18.6146303397366 | epot = -123.77613155181 | etot = -91.9524684520271 +915000 ekin = 13.7372183863305 | erot = 16.6833035864293 | epot = -123.924888819256 | etot = -93.5043668464961 +916000 ekin = 13.3061011890743 | erot = 15.5577380665692 | epot = -124.029742172947 | etot = -95.1659029173032 +917000 ekin = 12.890908113948 | erot = 15.6377285599624 | epot = -124.171723385822 | etot = -95.6430867119113 +918000 ekin = 13.2538313269488 | erot = 15.4177757921272 | epot = -124.357165714437 | etot = -95.6855585953608 +919000 ekin = 14.0444948242936 | erot = 15.0452292964814 | epot = -124.576101947629 | etot = -95.4863778268544 +920000 ekin = 14.0410127504381 | erot = 13.9634869300633 | epot = -124.738136118335 | etot = -96.7336364378338 +921000 ekin = 14.1551987065811 | erot = 12.3941306059594 | epot = -125.088498782391 | etot = -98.5391694698508 +922000 ekin = 14.2276920732135 | erot = 15.0327547601353 | epot = -125.526288759493 | etot = -96.2658419261437 +923000 ekin = 14.3552438210034 | erot = 14.1363941405235 | epot = -126.12829028672 | etot = -97.6366523251935 +924000 ekin = 14.5041705296654 | erot = 15.9619253409903 | epot = -126.843033999763 | etot = -96.3769381291074 +925000 ekin = 14.5400944209119 | erot = 17.4997296566513 | epot = -127.507177319307 | etot = -95.4673532417434 +926000 ekin = 14.6046327805672 | erot = 17.1373142992145 | epot = -128.134692034914 | etot = -96.392744955132 +927000 ekin = 14.6215715719242 | erot = 16.8724972360635 | epot = -128.740987589665 | etot = -97.2469187816775 +928000 ekin = 14.6396595729414 | erot = 17.1396439909469 | epot = -129.209041498762 | etot = -97.4297379348733 +929000 ekin = 13.808814016571 | erot = 18.5482425791424 | epot = -129.59969540295 | etot = -97.2426388072368 +930000 ekin = 13.3703713100728 | erot = 18.6606507891562 | epot = -129.760150362545 | etot = -97.7291282633159 +931000 ekin = 13.1805297982085 | erot = 19.545741585529 | epot = -129.743156282366 | etot = -97.0168848986289 +932000 ekin = 13.2649592845646 | erot = 17.8574402167804 | epot = -129.645087354661 | etot = -98.5226878533157 +933000 ekin = 12.9607863802779 | erot = 16.307893445402 | epot = -129.63857938217 | etot = -100.36989955649 +934000 ekin = 12.4022727576482 | erot = 17.8774718578769 | epot = -129.637637094327 | etot = -99.3578924788016 +935000 ekin = 12.2995741285428 | erot = 14.8343045174739 | epot = -129.628654926379 | etot = -102.494776280362 +936000 ekin = 12.3522202641654 | erot = 13.1781575590471 | epot = -129.751598147133 | etot = -104.221220323921 +937000 ekin = 12.8178813976735 | erot = 13.3255184079132 | epot = -130.052677130556 | etot = -103.90927732497 +938000 ekin = 13.6621340607039 | erot = 15.3154449818888 | epot = -130.403259068065 | etot = -101.425680025473 +939000 ekin = 14.2055416406367 | erot = 15.7669887777399 | epot = -130.71799989098 | etot = -100.745469472603 +940000 ekin = 14.6172332568569 | erot = 15.1413456776972 | epot = -130.980505941845 | etot = -101.221927007291 +941000 ekin = 14.7993386129929 | erot = 12.9776335555139 | epot = -131.272247687568 | etot = -103.495275519061 +942000 ekin = 15.5335296614623 | erot = 14.077753507083 | epot = -131.64827113102 | etot = -102.036987962475 +943000 ekin = 15.8153674520153 | erot = 13.8900929959998 | epot = -132.104615249043 | etot = -102.399154801027 +944000 ekin = 15.995840679904 | erot = 13.2503963107949 | epot = -132.383467447975 | etot = -103.137230457276 +945000 ekin = 16.9506733718874 | erot = 13.0128057924875 | epot = -132.814341083772 | etot = -102.850861919398 +946000 ekin = 17.2683330453948 | erot = 12.2206111801736 | epot = -133.190147697266 | etot = -103.701203471697 +947000 ekin = 18.2654627390238 | erot = 12.607864411813 | epot = -133.437356622139 | etot = -102.564029471302 +948000 ekin = 18.9247564734275 | erot = 10.7958947548298 | epot = -133.491427845306 | etot = -103.770776617049 +949000 ekin = 19.0156199461051 | erot = 10.4720682695147 | epot = -133.362034264067 | etot = -103.874346048447 +950000 ekin = 18.6246087033182 | erot = 13.6364514367478 | epot = -133.04549769442 | etot = -100.784437554354 +951000 ekin = 18.6927083514433 | erot = 13.6661715172821 | epot = -132.47325327942 | etot = -100.114373410695 +952000 ekin = 18.3844441390729 | erot = 13.8860557825372 | epot = -131.51579451266 | etot = -99.2452945910494 +953000 ekin = 17.8871996339964 | erot = 15.3325866197267 | epot = -130.276129986655 | etot = -97.0563437329319 +954000 ekin = 16.8413865084877 | erot = 14.9334765987234 | epot = -128.903833142085 | etot = -97.1289700348742 +955000 ekin = 15.7491647284399 | erot = 13.5522552230972 | epot = -127.637147734617 | etot = -98.3357277830796 +956000 ekin = 15.0316123603932 | erot = 13.0118712405706 | epot = -126.594426180261 | etot = -98.5509425792974 +957000 ekin = 13.9511166207686 | erot = 12.8079283002139 | epot = -125.829517110607 | etot = -99.0704721896241 +958000 ekin = 13.3400958629755 | erot = 12.8632040396806 | epot = -125.202163021613 | etot = -98.9988631189573 +959000 ekin = 12.3250795668259 | erot = 12.4564269151362 | epot = -124.933673005766 | etot = -100.152166523804 +960000 ekin = 11.692935434419 | erot = 13.0608145327809 | epot = -124.894940531961 | etot = -100.141190564761 +961000 ekin = 11.1176175414437 | erot = 14.4883300738387 | epot = -124.970867463286 | etot = -99.3649198480031 +962000 ekin = 10.411109427009 | erot = 16.3322519853867 | epot = -125.234118963607 | etot = -98.4907575512117 +963000 ekin = 9.3402588646206 | erot = 16.0988706764342 | epot = -125.397678792901 | etot = -99.9585492518461 +964000 ekin = 9.16866022508975 | erot = 17.2216753836534 | epot = -125.348930629784 | etot = -98.9585950210411 +965000 ekin = 8.68918272510296 | erot = 17.3709063020777 | epot = -125.23288520793 | etot = -99.1727961807491 +966000 ekin = 8.81826896074676 | erot = 14.5745151863203 | epot = -125.032911211113 | etot = -101.640127064046 +967000 ekin = 8.9569030293131 | erot = 14.2045669524529 | epot = -124.84250103047 | etot = -101.681031048704 +968000 ekin = 9.54853320838666 | erot = 13.2723352951195 | epot = -124.74515666583 | etot = -101.924288162324 +969000 ekin = 9.4502437687464 | erot = 14.3945740263151 | epot = -124.682399280719 | etot = -100.837581485658 +970000 ekin = 9.21873366215398 | erot = 13.9996220324049 | epot = -124.744791785532 | etot = -101.526436090974 +971000 ekin = 9.99365012208013 | erot = 12.832841266649 | epot = -125.082193628276 | etot = -102.255702239547 +972000 ekin = 10.8531518844497 | erot = 10.1692890940719 | epot = -125.661646459223 | etot = -104.639205480702 +973000 ekin = 12.2157559658085 | erot = 10.8538801407932 | epot = -126.544527982808 | etot = -103.474891876206 +974000 ekin = 12.8260432549802 | erot = 10.3799360087168 | epot = -127.611569187676 | etot = -104.405589923979 +975000 ekin = 13.6580394236602 | erot = 11.9432331482014 | epot = -128.916385945886 | etot = -103.315113374025 +976000 ekin = 14.9533034244138 | erot = 13.0781940579022 | epot = -130.386531138976 | etot = -102.35503365666 +977000 ekin = 16.1302157200235 | erot = 11.728247443694 | epot = -131.809854533652 | etot = -103.951391369934 +978000 ekin = 17.4131006781175 | erot = 12.2883320926868 | epot = -133.127724933689 | etot = -103.426292162884 +979000 ekin = 18.3408340925242 | erot = 12.638307739685 | epot = -134.299556644019 | etot = -103.32041481181 +980000 ekin = 18.486099268637 | erot = 11.4553544827387 | epot = -135.258651277385 | etot = -105.31719752601 +981000 ekin = 18.3977271567707 | erot = 10.6940239109833 | epot = -135.863204035817 | etot = -106.771452968063 +982000 ekin = 18.264195125121 | erot = 11.8519030299459 | epot = -136.325677964425 | etot = -106.209579809358 +983000 ekin = 18.2336771349386 | erot = 11.5789339214239 | epot = -136.608013715885 | etot = -106.795402659523 +984000 ekin = 18.0795330780538 | erot = 10.8886569682827 | epot = -136.787086300594 | etot = -107.818896254257 +985000 ekin = 18.3215007661408 | erot = 11.1826156263063 | epot = -136.893675411741 | etot = -107.389559019294 +986000 ekin = 18.9278184735634 | erot = 10.2084663205533 | epot = -136.842552426241 | etot = -107.706267632124 +987000 ekin = 19.2070490323178 | erot = 10.3450839761618 | epot = -136.728820076786 | etot = -107.176687068307 +988000 ekin = 19.3393384968811 | erot = 13.1094542662134 | epot = -136.487574308696 | etot = -104.038781545602 +989000 ekin = 18.8692607694595 | erot = 10.804304167891 | epot = -136.128710512953 | etot = -106.455145575602 +990000 ekin = 19.1296994352489 | erot = 11.0871442087597 | epot = -135.566590211579 | etot = -105.349746567571 +991000 ekin = 19.2058799885993 | erot = 10.5863233864291 | epot = -134.828724859505 | etot = -105.036521484476 +992000 ekin = 18.6626052074925 | erot = 9.94438664060896 | epot = -134.114003323149 | etot = -105.507011475048 +993000 ekin = 18.2986732324755 | erot = 12.5751167790973 | epot = -133.457845849078 | etot = -102.584055837505 +994000 ekin = 18.9118804426949 | erot = 16.3587861176306 | epot = -132.884788625388 | etot = -97.6141220650621 +995000 ekin = 18.8780869759588 | erot = 14.201731801613 | epot = -132.323032403657 | etot = -99.243213626085 +996000 ekin = 19.0405880064438 | erot = 12.7388574752212 | epot = -131.843357344105 | etot = -100.06391186244 +997000 ekin = 18.2614854697624 | erot = 12.4531767028895 | epot = -131.423862770818 | etot = -100.709200598166 +998000 ekin = 17.4819080210013 | erot = 11.3300069724737 | epot = -130.959892229695 | etot = -102.14797723622 +999000 ekin = 17.0511128282761 | erot = 11.8922913066054 | epot = -130.533301683943 | etot = -101.589897549061 +1000000 ekin = 16.4176868113516 | erot = 10.505891115617 | epot = -130.086633390017 | etot = -103.163055463049 + 1000000 367.18625 -134.96443 4.8777959 -113.66895 -0.029625089 39304000 +Loop time of 17.8373 on 4 procs for 1000000 steps with 16 atoms + +Performance: 82.635 ns/day, 0.290 hours/ns, 56062.259 timesteps/s, 896.996 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.4709 | 7.3456 | 10.788 | 75.7 | 41.18 +Bond | 0.25222 | 0.29369 | 0.34982 | 7.2 | 1.65 +Neigh | 0.009763 | 0.0099055 | 0.010039 | 0.1 | 0.06 +Comm | 3.6693 | 7.3401 | 9.3552 | 81.3 | 41.15 +Output | 0.074481 | 0.079893 | 0.09183 | 2.5 | 0.45 +Modify | 1.0375 | 1.2928 | 1.4979 | 18.1 | 7.25 +Other | | 1.475 | | | 8.27 + +Nlocal: 4 ave 6 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 12 ave 14 max 10 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 26.25 ave 67 max 8 min +Histogram: 1 2 0 0 0 0 0 0 0 1 + +Total # of neighbors = 105 +Ave neighs/atom = 6.5625 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:17 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/data.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/data.duplex1 new file mode 100644 index 0000000000..a368cef424 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -2.8740969069282687 -3.723118600434732 5.494693518792015 1 1 1.0016462505133576 0 0 0 +2 2 -2.7379071878387986 -6.079929519421481 10.066032484018534 1 1 1.0016462505133576 0 0 0 +3 3 -1.110437385073819 -7.791537941948432 13.848676172779387 1 1 1.0016462505133576 0 0 0 +4 4 1.4306089998272526 -8.354886654263622 17.79828313773629 1 1 1.0016462505133576 0 0 0 +5 1 3.9498326729322186 -6.646891787969407 20.657842369456382 1 1 1.0016462505133576 0 0 0 +6 4 -3.801540967989063 0.7719150486872158 21.01300417274477 2 1 1.0016462505133576 0 0 0 +7 1 -0.287657468030243 1.787063409177335 17.702181979507532 2 1 1.0016462505133576 0 0 0 +8 2 2.8086617684512323 1.5040732709582532 14.656350509768911 2 1 1.0016462505133576 0 0 0 +9 3 5.165059071666839 0.3988634556159852 10.50699529001116 2 1 1.0016462505133576 0 0 0 +10 4 6.817789789050184 -3.1038996716078557 8.419212766646357 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.0015993537866009029 -0.000680681865016988 -0.00014678467473993874 1.3034875452014287 -0.6725260292370423 1.5263182328899618 +2 0.0008422431968202534 -0.0002471920411024751 0.0007894382186365997 -0.32615096872390803 -0.0034351199136194157 -0.9136220137417161 +3 -0.0011446153381118452 0.00041850425643063176 -0.00045926941555484915 1.7184317758530245 2.6050996986101502 -0.47065934236730145 +4 -0.0011077496385743138 0.0002472924939324634 -0.00034633314311123244 -0.5778245520276679 1.752085001878762 -0.24048635097513535 +5 0.0004072478403200556 -0.0012804934445473403 0.0008610591638760516 0.23142339993018143 0.3972766524238825 1.363641236078021 +6 0.00017968178785700138 -0.00024308968845109275 0.00014280408309295725 0.1704955558294103 -1.3525913126172677 1.5501424653239764 +7 -4.108556803115003e-05 0.00023724044475488887 -0.00013843701960263193 0.7809156374181498 -2.1218743676572576 0.2975087875146955 +8 -0.00035835254321313353 0.0008579277312926632 0.0019500603503724006 -0.711656157643413 -2.0351916264105014 -0.7613827970610736 +9 -0.0008730894357027041 -0.00039026927657647716 0.0002796967510539106 -1.193834703375802 1.023301140813147 -1.8342354268493246 +10 0.0009421885758929626 -0.0005326396944231774 0.0006296458639527654 -0.24420734152643714 1.5633648178267814 0.6376075187926279 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 9.999999997766462 9.999999997766462 9.999999997766462 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 new file mode 100644 index 0000000000..0caf44b6d9 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 @@ -0,0 +1,71 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * oxdna.real +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv oxdna.real +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 oxdna.real +pair_coeff * * oxdna/hbond seqav oxdna.real +pair_coeff 1 4 oxdna/hbond seqav oxdna.real +pair_coeff 2 3 oxdna/hbond seqav oxdna.real +pair_coeff * * oxdna/xstk oxdna.real +pair_coeff * * oxdna/coaxstk oxdna.real + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..7a84803893 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.1 @@ -0,0 +1,1113 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxdna.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8452930576477 | etot = -54.4566354061166 +Per MPI rank memory allocation (min/avg/max) = 7.196 | 7.196 | 7.196 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.414328 2.5690347 -71.23842 -0.031164648 39304000 +1000 ekin = 6.43820748574479 | erot = 17.3362209220524 | epot = -78.2310638156466 | etot = -54.4566354078494 +2000 ekin = 6.25962687713456 | erot = 17.7614973153003 | epot = -78.4777596014537 | etot = -54.4566354090188 +3000 ekin = 6.07700448778501 | erot = 18.0349390575316 | epot = -78.5685789546716 | etot = -54.456635409355 +4000 ekin = 5.8974424369014 | erot = 18.1444655563221 | epot = -78.4985434019985 | etot = -54.456635408775 +5000 ekin = 5.72921495795424 | erot = 18.0898135345449 | epot = -78.2756638999 | etot = -54.4566354074009 +6000 ekin = 5.58102962967708 | erot = 17.881890737865 | epot = -77.9195557730913 | etot = -54.4566354055493 +7000 ekin = 5.46083564262923 | erot = 17.5394365844241 | epot = -77.4569076305333 | etot = -54.45663540348 +8000 ekin = 5.37466374419903 | erot = 17.0860544650629 | epot = -76.9173536106644 | etot = -54.4566354014025 +9000 ekin = 5.32595754281569 | erot = 16.5482852541262 | epot = -76.3308781963659 | etot = -54.456635399424 +10000 ekin = 5.31554676342217 | erot = 15.954413846903 | epot = -75.7265960077926 | etot = -54.4566353974674 +11000 ekin = 5.34211698054867 | erot = 15.3332614944559 | epot = -75.132013870846 | etot = -54.4566353958413 +12000 ekin = 5.4028703847121 | erot = 14.711083423083 | epot = -74.5705892022628 | etot = -54.4566353944677 +13000 ekin = 5.49411526233304 | erot = 14.1110915850693 | epot = -74.0618422408422 | etot = -54.4566353934398 +14000 ekin = 5.61166305682735 | erot = 13.5517399019593 | epot = -73.6200383516251 | etot = -54.4566353928384 +15000 ekin = 5.75104953856985 | erot = 13.0453199784599 | epot = -73.2530049096301 | etot = -54.4566353926003 +16000 ekin = 5.90767197595959 | erot = 12.5986167018215 | epot = -72.9629240705716 | etot = -54.4566353927906 +17000 ekin = 6.07693584949005 | erot = 12.2121424091128 | epot = -72.7457136520755 | etot = -54.4566353934727 +18000 ekin = 6.25447802454937 | erot = 11.8809715590397 | epot = -72.5920849774634 | etot = -54.4566353938743 +19000 ekin = 6.43644156574384 | erot = 11.5970868983705 | epot = -72.4901638588709 | etot = -54.4566353947565 +20000 ekin = 6.61975078718414 | erot = 11.3493268347887 | epot = -72.425713017461 | etot = -54.4566353954882 +21000 ekin = 6.80231654537078 | erot = 11.1279852357805 | epot = -72.386937177108 | etot = -54.4566353959567 +22000 ekin = 6.9831066603949 | erot = 10.9264899080746 | epot = -72.3662319645787 | etot = -54.4566353961091 +23000 ekin = 7.16204136914421 | erot = 10.7423471683524 | epot = -72.3610239334525 | etot = -54.4566353959559 +24000 ekin = 7.33971202276034 | erot = 10.5772893708791 | epot = -72.3736367892022 | etot = -54.4566353955627 +25000 ekin = 7.51694389098066 | erot = 10.4366021288186 | epot = -72.4101814148955 | etot = -54.4566353950963 +26000 ekin = 7.69428547961004 | erot = 10.3277743414164 | epot = -72.4786952155962 | etot = -54.4566353945698 +27000 ekin = 7.87150355456813 | erot = 10.2597385959261 | epot = -72.5878775446635 | etot = -54.4566353941693 +28000 ekin = 8.04704621231786 | erot = 10.2410408314318 | epot = -72.7447224377789 | etot = -54.4566353940292 +29000 ekin = 8.21759311371839 | erot = 10.2782069424415 | epot = -72.9524354504287 | etot = -54.4566353942689 +30000 ekin = 8.37773815926491 | erot = 10.3742402092555 | epot = -73.2086137634984 | etot = -54.456635394978 +31000 ekin = 8.5199063606362 | erot = 10.5273635253434 | epot = -73.5039052821707 | etot = -54.4566353961911 +32000 ekin = 8.63465075757977 | erot = 10.7302372452279 | epot = -73.8215234006618 | etot = -54.4566353978541 +33000 ekin = 8.71148242170727 | erot = 10.9699568578568 | epot = -74.1380746793619 | etot = -54.4566353997978 +34000 ekin = 8.74030401673698 | erot = 11.2291118958906 | epot = -74.4260513143637 | etot = -54.4566354017361 +35000 ekin = 8.71331738120299 | erot = 11.4879439611373 | epot = -74.6578967456838 | etot = -54.4566354033435 +36000 ekin = 8.62700768065711 | erot = 11.7272655611848 | epot = -74.8109086460864 | etot = -54.4566354042445 +37000 ekin = 8.48360459165237 | erot = 11.9311379268697 | epot = -74.8713779230666 | etot = -54.4566354045445 +38000 ekin = 8.29146113848086 | erot = 12.0877506878432 | epot = -74.8358472300852 | etot = -54.4566354037611 +39000 ekin = 8.06413250091548 | erot = 12.1939343847315 | epot = -74.7147022878414 | etot = -54.4566354021944 +40000 ekin = 7.81835387769382 | erot = 12.2536662217391 | epot = -74.5286554998782 | etot = -54.4566354004452 +41000 ekin = 7.57154460494701 | erot = 12.2737017000962 | epot = -74.3018817037925 | etot = -54.4566353987493 +42000 ekin = 7.33953370634719 | erot = 12.2616149193725 | epot = -74.0577840229955 | etot = -54.4566353972758 +43000 ekin = 7.13480148719636 | erot = 12.225151124624 | epot = -73.8165880080345 | etot = -54.4566353962141 +44000 ekin = 6.96550034046731 | erot = 12.1705709864264 | epot = -73.5927067224915 | etot = -54.4566353955978 +45000 ekin = 6.83524619732669 | erot = 12.1023709627624 | epot = -73.3942525554551 | etot = -54.456635395366 +46000 ekin = 6.74354326448599 | erot = 12.0237258448777 | epot = -73.2239045047616 | etot = -54.456635395398 +47000 ekin = 6.68665553239008 | erot = 11.9373578617833 | epot = -73.0806487897222 | etot = -54.4566353955488 +48000 ekin = 6.6587160612366 | erot = 11.846339390239 | epot = -72.9616908473448 | etot = -54.4566353958692 +49000 ekin = 6.65288529208964 | erot = 11.7537905708822 | epot = -72.8633112588598 | etot = -54.456635395888 +50000 ekin = 6.66236602673449 | erot = 11.665645731731 | epot = -72.7846471541946 | etot = -54.4566353957291 +51000 ekin = 6.68111338468324 | erot = 11.5899588724776 | epot = -72.7277076525689 | etot = -54.4566353954081 +52000 ekin = 6.70418283073615 | erot = 11.5360342718571 | epot = -72.6968524975893 | etot = -54.456635394996 +53000 ekin = 6.72772596002091 | erot = 11.5133896479182 | epot = -72.6977510025407 | etot = -54.4566353946016 +54000 ekin = 6.74871529529379 | erot = 11.5307308739651 | epot = -72.7360815636092 | etot = -54.4566353943504 +55000 ekin = 6.76452000506484 | erot = 11.5943437358561 | epot = -72.8154991352817 | etot = -54.4566353943608 +56000 ekin = 6.77244089755462 | erot = 11.7063368897022 | epot = -72.9354131819766 | etot = -54.4566353947198 +57000 ekin = 6.76933125218943 | erot = 11.8641785052103 | epot = -73.0901451528759 | etot = -54.4566353954762 +58000 ekin = 6.75138787630661 | erot = 12.0602581117046 | epot = -73.2682813846362 | etot = -54.456635396625 +59000 ekin = 6.71417211137041 | erot = 12.2820346405452 | epot = -73.4528421500119 | etot = -54.4566353980963 +60000 ekin = 6.65291138937908 | erot = 12.5128606065824 | epot = -73.6224073957182 | etot = -54.4566353997567 +61000 ekin = 6.56310936735918 | erot = 12.7334757971162 | epot = -73.7532205658841 | etot = -54.4566354014088 +62000 ekin = 6.4414673896219 | erot = 12.9241153784064 | epot = -73.8222181708359 | etot = -54.4566354028076 +63000 ekin = 6.28706349170015 | erot = 13.0670025811129 | epot = -73.810701476737 | etot = -54.456635403924 +64000 ekin = 6.10266894647869 | erot = 13.1477550766291 | epot = -73.7070594271612 | etot = -54.4566354040534 +65000 ekin = 5.89591961177536 | erot = 13.159243189225 | epot = -73.5117982043027 | etot = -54.4566354033024 +66000 ekin = 5.67987986272269 | erot = 13.1031941166757 | epot = -73.2397093810288 | etot = -54.4566354016304 +67000 ekin = 5.47247153600003 | erot = 12.989279234259 | epot = -72.9183861696828 | etot = -54.4566353994238 +68000 ekin = 5.29472138366934 | erot = 12.8325717552519 | epot = -72.5839285358223 | etot = -54.4566353969011 +69000 ekin = 5.16838664772545 | erot = 12.6515520795185 | epot = -72.2765741217863 | etot = -54.4566353945424 +70000 ekin = 5.11229587755514 | erot = 12.4645483617671 | epot = -72.0334796321543 | etot = -54.456635392832 +71000 ekin = 5.13861822273185 | erot = 12.2861550396877 | epot = -71.8814086546626 | etot = -54.456635392243 +72000 ekin = 5.2491977626994 | erot = 12.1240996085004 | epot = -71.8299327640264 | etot = -54.4566353928266 +73000 ekin = 5.43492595011745 | erot = 11.9780482590895 | epot = -71.8696096036143 | etot = -54.4566353944073 +74000 ekin = 5.67784516722635 | erot = 11.8411405072589 | epot = -71.9756210710801 | etot = -54.4566353965948 +75000 ekin = 5.95413179780696 | erot = 11.7025554045187 | epot = -72.1133226012198 | etot = -54.4566353988942 +76000 ekin = 6.23821902238384 | erot = 11.550835238765 | epot = -72.2456896619949 | etot = -54.456635400846 +77000 ekin = 6.50672473640332 | erot = 11.3769509006249 | epot = -72.3403110391631 | etot = -54.4566354021349 +78000 ekin = 6.74134494190867 | erot = 11.1763190057829 | epot = -72.3742993503321 | etot = -54.4566354026406 +79000 ekin = 6.93029998725147 | erot = 10.9493831098248 | epot = -72.3363184995039 | etot = -54.4566354024276 +80000 ekin = 7.06837455802669 | erot = 10.7008607206279 | epot = -72.2258706803373 | etot = -54.4566354016827 +81000 ekin = 7.15592612862585 | erot = 10.4381578436614 | epot = -72.05071937292 | etot = -54.4566354006327 +82000 ekin = 7.19737523755897 | erot = 10.1696204752438 | epot = -71.8236311122793 | etot = -54.4566353994766 +83000 ekin = 7.19964138072357 | erot = 9.90319185133895 | epot = -71.559468630406 | etot = -54.4566353983435 +84000 ekin = 7.17082378076055 | erot = 9.64576283606949 | epot = -71.2732220141216 | etot = -54.4566353972916 +85000 ekin = 7.11924100547637 | erot = 9.40319183444012 | epot = -70.9790682362424 | etot = -54.4566353963259 +86000 ekin = 7.05280646949636 | erot = 9.18075710620515 | epot = -70.6901989711303 | etot = -54.4566353954288 +87000 ekin = 6.97865213852011 | erot = 8.98373783121374 | epot = -70.4190253643139 | etot = -54.45663539458 +88000 ekin = 6.9029074524998 | erot = 8.8178750532503 | epot = -70.1774178995232 | etot = -54.4566353937731 +89000 ekin = 6.83056643684682 | erot = 8.68957621789659 | epot = -69.9767780477612 | etot = -54.4566353930177 +90000 ekin = 6.76540803039367 | erot = 8.6058366061046 | epot = -69.8278800288353 | etot = -54.456635392337 +91000 ekin = 6.70995822419681 | erot = 8.57392290473256 | epot = -69.7405165206917 | etot = -54.4566353917624 +92000 ekin = 6.66549387606452 | erot = 8.60089293174941 | epot = -69.7230221991425 | etot = -54.4566353913285 +93000 ekin = 6.63209392240901 | erot = 8.69302362042091 | epot = -69.7817529338986 | etot = -54.4566353910687 +94000 ekin = 6.6087387957867 | erot = 8.85520324232614 | epot = -69.9205774291257 | etot = -54.4566353910128 +95000 ekin = 6.5934554231299 | erot = 9.08998001249973 | epot = -70.1400708268608 | etot = -54.4566353912311 +96000 ekin = 6.58349816402809 | erot = 9.39670336712944 | epot = -70.4368369228354 | etot = -54.4566353916779 +97000 ekin = 6.57557086190993 | erot = 9.7723203542983 | epot = -70.8045266085995 | etot = -54.4566353923912 +98000 ekin = 6.56607746070853 | erot = 10.2103280886839 | epot = -71.233040942761 | etot = -54.4566353933686 +99000 ekin = 6.55139785883141 | erot = 10.700518875157 | epot = -71.7085521285789 | etot = -54.4566353945905 +100000 ekin = 6.52819744721324 | erot = 11.2290265012434 | epot = -72.2138593444663 | etot = -54.4566353960097 +101000 ekin = 6.49377694354442 | erot = 11.778744418072 | epot = -72.7291567591596 | etot = -54.4566353975432 +102000 ekin = 6.44645975182924 | erot = 12.3302092947474 | epot = -73.2333044456467 | etot = -54.4566353990701 +103000 ekin = 6.38599188040475 | erot = 12.8629861678417 | epot = -73.7056134486881 | etot = -54.4566354004416 +104000 ekin = 6.31389917689188 | erot = 13.3574827218747 | epot = -74.1280173002654 | etot = -54.4566354014988 +105000 ekin = 6.23372050746404 | erot = 13.7969365030789 | epot = -74.4872924127827 | etot = -54.4566354022397 +106000 ekin = 6.15161195850931 | erot = 14.1683082609505 | epot = -74.7765556218299 | etot = -54.45663540237 +107000 ekin = 6.07599644252674 | erot = 14.4651582362835 | epot = -74.9977900809679 | etot = -54.4566354021577 +108000 ekin = 6.01224980359744 | erot = 14.6879762973639 | epot = -75.1568615023395 | etot = -54.4566354013782 +109000 ekin = 5.96718055298343 | erot = 14.8435302087046 | epot = -75.2673461618523 | etot = -54.4566354001642 +110000 ekin = 5.94906585806739 | erot = 14.9433946245219 | epot = -75.3490958813021 | etot = -54.4566353987129 +111000 ekin = 5.96692254396596 | erot = 15.0017732632798 | epot = -75.4253312044835 | etot = -54.4566353972378 +112000 ekin = 6.02963894580686 | erot = 15.0332002745137 | epot = -75.5194746162464 | etot = -54.4566353959258 +113000 ekin = 6.14472749189881 | erot = 15.0506190089295 | epot = -75.6519818961823 | etot = -54.456635395354 +114000 ekin = 6.31294119125893 | erot = 15.0641400294536 | epot = -75.8337166157274 | etot = -54.4566353950148 +115000 ekin = 6.53170723497726 | erot = 15.0810976270015 | epot = -76.0694402570575 | etot = -54.4566353950787 +116000 ekin = 6.79565473868378 | erot = 15.1058873747025 | epot = -76.3581775089288 | etot = -54.4566353955425 +117000 ekin = 7.09589353296915 | erot = 15.1399747310401 | epot = -76.6925036604113 | etot = -54.4566353964021 +118000 ekin = 7.42010913176814 | erot = 15.1818878453243 | epot = -77.0586323747378 | etot = -54.4566353976454 +119000 ekin = 7.75291308545885 | erot = 15.2271156041089 | epot = -77.436664088802 | etot = -54.4566353992342 +120000 ekin = 8.07655694001114 | erot = 15.2680755527864 | epot = -77.8012678938754 | etot = -54.4566354010778 +121000 ekin = 8.37209283452514 | erot = 15.2944252034468 | epot = -78.1231534409902 | etot = -54.4566354030182 +122000 ekin = 8.62097203571359 | erot = 15.2939565964172 | epot = -78.3715640369608 | etot = -54.45663540483 +123000 ekin = 8.80691805373849 | erot = 15.2541302313802 | epot = -78.5176836913811 | etot = -54.4566354062624 +124000 ekin = 8.91774775140848 | erot = 15.1640393169121 | epot = -78.5384224754137 | etot = -54.4566354070931 +125000 ekin = 8.94673865107599 | erot = 15.0163758445777 | epot = -78.4197499028408 | etot = -54.4566354071871 +126000 ekin = 8.89353504113546 | erot = 14.8103810343862 | epot = -78.1605514820978 | etot = -54.4566354065761 +127000 ekin = 8.76295715660914 | erot = 14.5505246086874 | epot = -77.7701171706756 | etot = -54.4566354053791 +128000 ekin = 8.56412338279211 | erot = 14.2447148868085 | epot = -77.2654736732317 | etot = -54.456635403631 +129000 ekin = 8.30999977775241 | erot = 13.9056008475438 | epot = -76.6722360268308 | etot = -54.4566354015347 +130000 ekin = 8.01598983357869 | erot = 13.5489784634635 | epot = -76.0216036963406 | etot = -54.4566353992984 +131000 ekin = 7.69860752663267 | erot = 13.191973628217 | epot = -75.3472165519593 | etot = -54.4566353971097 +132000 ekin = 7.37433696937952 | erot = 12.8512990204963 | epot = -74.682271384997 | etot = -54.4566353951211 +133000 ekin = 7.05872362614925 | erot = 12.5417941515422 | epot = -74.0571531711344 | etot = -54.4566353934429 +134000 ekin = 6.76570888198983 | erot = 12.2753542959273 | epot = -73.4976985700582 | etot = -54.4566353921411 +135000 ekin = 6.50719363731297 | erot = 12.0602549647526 | epot = -73.0240839933233 | etot = -54.4566353912577 +136000 ekin = 6.29279008475018 | erot = 11.9007669358432 | epot = -72.6501924113932 | etot = -54.4566353907998 +137000 ekin = 6.1297097827656 | erot = 11.797057630299 | epot = -72.3834028038282 | etot = -54.4566353907636 +138000 ekin = 6.02274351233274 | erot = 11.7455123962494 | epot = -72.2248912997163 | etot = -54.4566353911342 +139000 ekin = 5.97430404723505 | erot = 11.7390412107215 | epot = -72.1699806498505 | etot = -54.456635391894 +140000 ekin = 5.98449840319398 | erot = 11.7661921151461 | epot = -72.2073259113408 | etot = -54.4566353930008 +141000 ekin = 6.05122402382853 | erot = 11.8123445028326 | epot = -72.3202039210611 | etot = -54.4566353944 +142000 ekin = 6.17031735772835 | erot = 11.860441511122 | epot = -72.4873942648628 | etot = -54.4566353960124 +143000 ekin = 6.33577810129533 | erot = 11.8919671618459 | epot = -72.6843806606519 | etot = -54.4566353975106 +144000 ekin = 6.5400911832184 | erot = 11.8891339130634 | epot = -72.8858604955073 | etot = -54.4566353992254 +145000 ekin = 6.7746586664194 | erot = 11.8352952468181 | epot = -73.0665893139994 | etot = -54.4566354007619 +146000 ekin = 7.03032727827686 | erot = 11.7160091899344 | epot = -73.2029718703323 | etot = -54.456635402121 +147000 ekin = 7.29660189209642 | erot = 11.5221059419086 | epot = -73.2753432368926 | etot = -54.4566354028876 +148000 ekin = 7.56407690493304 | erot = 11.2503448019254 | epot = -73.2710571099655 | etot = -54.4566354031071 +149000 ekin = 7.82544292003207 | erot = 10.9039979828621 | epot = -73.1860763056619 | etot = -54.4566354027677 +150000 ekin = 8.07517324147418 | erot = 10.4929858681079 | epot = -73.0247945114893 | etot = -54.4566354019072 +151000 ekin = 8.30975251519227 | erot = 10.0330103746793 | epot = -72.7993982905126 | etot = -54.4566354006411 +152000 ekin = 8.52766332329262 | erot = 9.54393934171969 | epot = -72.5282380641322 | etot = -54.4566353991199 +153000 ekin = 8.72913641124913 | erot = 9.04783809538959 | epot = -72.2336099041494 | etot = -54.4566353975106 +154000 ekin = 8.91570927168975 | erot = 8.56693447900063 | epot = -71.9392791466627 | etot = -54.4566353959723 +155000 ekin = 9.08966068414512 | erot = 8.12178607637931 | epot = -71.6680821551646 | etot = -54.4566353946402 +156000 ekin = 9.25339893961253 | erot = 7.72982624258095 | epot = -71.4398605758094 | etot = -54.4566353936159 +157000 ekin = 9.40888952795375 | erot = 7.40436483126651 | epot = -71.2698897521795 | etot = -54.4566353929592 +158000 ekin = 9.5571792388578 | erot = 7.15403664791566 | epot = -71.1678512794925 | etot = -54.456635392719 +159000 ekin = 9.69792111012153 | erot = 6.98265633604475 | epot = -71.1372128390505 | etot = -54.4566353928842 +160000 ekin = 9.82919776336752 | erot = 6.88943769583961 | epot = -71.1752708526347 | etot = -54.4566353934276 +161000 ekin = 9.94745815557448 | erot = 6.8695239744895 | epot = -71.2736175243542 | etot = -54.4566353942902 +162000 ekin = 10.0476105552154 | erot = 6.9148102338052 | epot = -71.4190561844078 | etot = -54.4566353953872 +163000 ekin = 10.1232836123728 | erot = 7.01503930069488 | epot = -71.5949583096737 | etot = -54.4566353966061 +164000 ekin = 10.1672576282715 | erot = 7.15913239145111 | epot = -71.7830254175365 | etot = -54.4566353978139 +165000 ekin = 10.1720616886924 | erot = 7.33667115267699 | epot = -71.9653682402348 | etot = -54.4566353988654 +166000 ekin = 10.130718189882 | erot = 7.53939136045688 | epot = -72.1267449499592 | etot = -54.4566353996203 +167000 ekin = 10.0375906740833 | erot = 7.76248640952837 | epot = -72.2567124835719 | etot = -54.4566353999602 +168000 ekin = 9.88925393885932 | erot = 8.00550722627944 | epot = -72.3513965649499 | etot = -54.4566353998111 +169000 ekin = 9.68526445659958 | erot = 8.27264999921095 | epot = -72.4145498549766 | etot = -54.4566353991661 +170000 ekin = 9.42867794111905 | erot = 8.57229328100177 | epot = -72.4576066202142 | etot = -54.4566353980934 +171000 ekin = 9.12616910816985 | erot = 8.91577619747958 | epot = -72.4985807023847 | etot = -54.4566353967353 +172000 ekin = 8.78767440912354 | erot = 9.31557620898523 | epot = -72.5598860133921 | etot = -54.4566353952833 +173000 ekin = 8.4308902629603 | erot = 9.78404466318918 | epot = -72.6715703175844 | etot = -54.4566353914349 +174000 ekin = 8.08808636305844 | erot = 10.330351924278 | epot = -72.8750736787358 | etot = -54.4566353913993 +175000 ekin = 7.76683289792752 | erot = 10.9528766887196 | epot = -73.1763449782723 | etot = -54.4566353916252 +176000 ekin = 7.47165533673879 | erot = 11.6455953906608 | epot = -73.5738861195206 | etot = -54.456635392121 +177000 ekin = 7.20644207982112 | erot = 12.3989755240462 | epot = -74.0620529967131 | etot = -54.4566353928457 +178000 ekin = 6.974264785072 | erot = 13.2002588275757 | epot = -74.6311590065932 | etot = -54.4566353939455 +179000 ekin = 6.77739061781459 | erot = 14.034248956954 | epot = -75.2682749696791 | etot = -54.4566353949105 +180000 ekin = 6.61743414637729 | erot = 14.8862774181217 | epot = -75.9603469603612 | etot = -54.4566353958622 +181000 ekin = 6.49561144162321 | erot = 15.7407037445572 | epot = -76.6929505832098 | etot = -54.4566353970295 +182000 ekin = 6.41305807095974 | erot = 16.5823414720904 | epot = -77.4520349408826 | etot = -54.4566353978324 +183000 ekin = 6.37104675400492 | erot = 17.3988622631936 | epot = -78.2265444157012 | etot = -54.4566353985027 +184000 ekin = 6.37106698283056 | erot = 18.1794275278873 | epot = -79.0071299097852 | etot = -54.4566353990674 +185000 ekin = 6.41462378113363 | erot = 18.9143606927346 | epot = -79.7856198734752 | etot = -54.456635399607 +186000 ekin = 6.50261133383222 | erot = 19.594459796067 | epot = -80.5537065301622 | etot = -54.456635400263 +187000 ekin = 6.63422049770368 | erot = 20.2099561332676 | epot = -81.3008120321885 | etot = -54.4566354012172 +188000 ekin = 6.80553106495261 | erot = 20.7492823612707 | epot = -82.0114488288671 | etot = -54.4566354026438 +189000 ekin = 7.00817768191868 | erot = 21.1980708186845 | epot = -82.6628839052196 | etot = -54.4566354046164 +190000 ekin = 7.22864796075227 | erot = 21.5390297894768 | epot = -83.2243131572579 | etot = -54.4566354070288 +191000 ekin = 7.44767622618309 | erot = 21.7493732842278 | epot = -83.6536849211036 | etot = -54.4566354106927 +192000 ekin = 7.64121438364656 | erot = 21.8048177890285 | epot = -83.9026675850786 | etot = -54.4566354124035 +193000 ekin = 7.78824892260135 | erot = 21.6992058928577 | epot = -83.9440902285495 | etot = -54.4566354130904 +194000 ekin = 7.87254337485893 | erot = 21.4376021938463 | epot = -83.7667809811825 | etot = -54.4566354124772 +195000 ekin = 7.88497345911822 | erot = 21.0375935324407 | epot = -83.3792024018217 | etot = -54.4566354102629 +196000 ekin = 7.82453658225029 | erot = 20.5298119321328 | epot = -82.8109839217733 | etot = -54.4566354073902 +197000 ekin = 7.69767210841892 | erot = 19.9508117348117 | epot = -82.1051192473244 | etot = -54.4566354040938 +198000 ekin = 7.51634139122171 | erot = 19.3371432855414 | epot = -81.3101200775114 | etot = -54.4566354007483 +199000 ekin = 7.29564803023476 | erot = 18.7233240020312 | epot = -80.4756074302768 | etot = -54.4566353980108 +200000 ekin = 7.05166010690528 | erot = 18.1350524779765 | epot = -79.6433479808066 | etot = -54.4566353959248 +201000 ekin = 6.79981173468669 | erot = 17.5880304600562 | epot = -78.8444775892921 | etot = -54.4566353945492 +202000 ekin = 6.55389933641572 | erot = 17.0888778993458 | epot = -78.0994126296097 | etot = -54.4566353938482 +203000 ekin = 6.32553919621666 | erot = 16.6360378263834 | epot = -77.4182124163434 | etot = -54.4566353937433 +204000 ekin = 6.12389632660999 | erot = 16.221171795851 | epot = -76.8017035165982 | etot = -54.4566353941373 +205000 ekin = 5.95555200640865 | erot = 15.8307416505747 | epot = -76.2429290519105 | etot = -54.4566353949271 +206000 ekin = 5.82446904491665 | erot = 15.4476864597757 | epot = -75.7287909006854 | etot = -54.456635395993 +207000 ekin = 5.73208912867472 | erot = 15.0532400346064 | epot = -75.2419645604691 | etot = -54.4566353971881 +208000 ekin = 5.67762302906586 | erot = 14.6289641823334 | epot = -74.7632226097333 | etot = -54.4566353983341 +209000 ekin = 5.65855387682243 | erot = 14.1589879691225 | epot = -74.2741772451824 | etot = -54.4566353992374 +210000 ekin = 5.67127672991725 | erot = 13.6322671582814 | epot = -73.7601792879283 | etot = -54.4566353997296 +211000 ekin = 5.71170069345446 | erot = 13.0444908839479 | epot = -73.2128269771113 | etot = -54.456635399709 +212000 ekin = 5.77562712092918 | erot = 12.3991887587334 | epot = -72.6314512788358 | etot = -54.4566353991733 +213000 ekin = 5.85883014811268 | erot = 11.7077170437804 | epot = -72.0231825901061 | etot = -54.456635398213 +214000 ekin = 5.95693715945621 | erot = 10.9880856586527 | epot = -71.4016582150861 | etot = -54.4566353969771 +215000 ekin = 6.06530009270273 | erot = 10.2628764798217 | epot = -70.7848119681606 | etot = -54.4566353956361 +216000 ekin = 6.17899119913878 | erot = 9.55666412395529 | epot = -70.1922907174477 | etot = -54.4566353943536 +217000 ekin = 6.29291855291586 | erot = 8.89336715125219 | epot = -69.64292109744 | etot = -54.4566353932719 +218000 ekin = 6.40196857726006 | erot = 8.29389599676029 | epot = -69.1524999665188 | etot = -54.4566353924985 +219000 ekin = 6.50110173408261 | erot = 7.77437623954087 | epot = -68.7321133657201 | etot = -54.4566353920966 +220000 ekin = 6.58540342133091 | erot = 7.34511996775883 | epot = -68.3871587811671 | etot = -54.4566353920774 +221000 ekin = 6.65014690325897 | erot = 7.01039395844385 | epot = -68.1171762541011 | etot = -54.4566353923982 +222000 ekin = 6.69092576193417 | erot = 6.76891043700557 | epot = -67.9164715919184 | etot = -54.4566353929786 +223000 ekin = 6.70387621884996 | erot = 6.61487073126029 | epot = -67.77538234382 | etot = -54.4566353937098 +224000 ekin = 6.6859658221945 | erot = 6.53933741261809 | epot = -67.6819386292908 | etot = -54.4566353944782 +225000 ekin = 6.63529509868518 | erot = 6.53169516027476 | epot = -67.6236256540922 | etot = -54.4566353951323 +226000 ekin = 6.55134622983674 | erot = 6.58124861354781 | epot = -67.5892302390912 | etot = -54.4566353957066 +227000 ekin = 6.43512582373462 | erot = 6.6778633909886 | epot = -67.5696246108205 | etot = -54.4566353960973 +228000 ekin = 6.28919825971956 | erot = 6.81242105498751 | epot = -67.5582547110045 | etot = -54.4566353962974 +229000 ekin = 6.11758034386912 | erot = 6.97737322344776 | epot = -67.5515889636427 | etot = -54.4566353963259 +230000 ekin = 5.92553219663261 | erot = 7.1666772772129 | epot = -67.5488448700593 | etot = -54.4566353962138 +231000 ekin = 5.71928874368776 | erot = 7.37558258297039 | epot = -67.5515067226485 | etot = -54.4566353959904 +232000 ekin = 5.50576904745089 | erot = 7.60029005185252 | epot = -67.5626944950135 | etot = -54.4566353957101 +233000 ekin = 5.29228522016845 | erot = 7.83763848257108 | epot = -67.5865590981304 | etot = -54.4566353953909 +234000 ekin = 5.08626778915082 | erot = 8.0849723575554 | epot = -67.627875541769 | etot = -54.4566353950628 +235000 ekin = 4.89496149390685 | erot = 8.33993380345756 | epot = -67.6915306921237 | etot = -54.4566353947593 +236000 ekin = 4.725107662887 | erot = 8.60023942152078 | epot = -67.7819824789196 | etot = -54.4566353945118 +237000 ekin = 4.58266891059204 | erot = 8.863520450285 | epot = -67.9028247552286 | etot = -54.4566353943516 +238000 ekin = 4.47254352856373 | erot = 9.12714914792354 | epot = -68.0563280707913 | etot = -54.456635394304 +239000 ekin = 4.39832589608058 | erot = 9.38815494537381 | epot = -68.2431162358326 | etot = -54.4566353943782 +240000 ekin = 4.36214482372772 | erot = 9.64329675760556 | epot = -68.4620769758964 | etot = -54.4566353945632 +241000 ekin = 4.36460414736016 | erot = 9.88932905774899 | epot = -68.7105685999353 | etot = -54.4566353948261 +242000 ekin = 4.40483557566032 | erot = 10.123401279054 | epot = -68.9848722498437 | etot = -54.4566353951294 +243000 ekin = 4.48065587113318 | erot = 10.3436288280301 | epot = -69.2809200945657 | etot = -54.4566353954024 +244000 ekin = 4.58880538052794 | erot = 10.5497091929702 | epot = -69.5951499691048 | etot = -54.4566353956067 +245000 ekin = 4.72523059106075 | erot = 10.7433050692471 | epot = -69.925171056014 | etot = -54.4566353957062 +246000 ekin = 4.88536596035895 | erot = 10.9281953102942 | epot = -70.2701966663515 | etot = -54.4566353956983 +247000 ekin = 5.06437032892622 | erot = 11.1100753168529 | epot = -70.6310810413878 | etot = -54.4566353956087 +248000 ekin = 5.2572803931489 | erot = 11.2959779038021 | epot = -71.0098936924448 | etot = -54.4566353954938 +249000 ekin = 5.4590578306858 | erot = 11.4933498885016 | epot = -71.4090431146237 | etot = -54.4566353954363 +250000 ekin = 5.6645272689396 | erot = 11.7088807610481 | epot = -71.8300434255194 | etot = -54.4566353955318 +251000 ekin = 5.86822964772049 | erot = 11.9472357725875 | epot = -72.2721008161787 | etot = -54.4566353958707 +252000 ekin = 6.06424926084265 | erot = 12.2098996244356 | epot = -72.7307842817964 | etot = -54.4566353965181 +253000 ekin = 6.24611969949079 | erot = 12.4943889560454 | epot = -73.1971440530269 | etot = -54.4566353974907 +254000 ekin = 6.4068657770421 | erot = 12.7940520504516 | epot = -73.6575532262015 | etot = -54.4566353987078 +255000 ekin = 6.53934545678292 | erot = 13.0988013252432 | epot = -74.0947821820346 | etot = -54.4566354000085 +256000 ekin = 6.63702718994521 | erot = 13.3967890648194 | epot = -74.4904516559583 | etot = -54.4566354011937 +257000 ekin = 6.69481406277413 | erot = 13.676395236133 | epot = -74.8278447009719 | etot = -54.4566354020648 +258000 ekin = 6.70987363015967 | erot = 13.9283274305685 | epot = -75.0948364631916 | etot = -54.4566354024634 +259000 ekin = 6.68224111902895 | erot = 14.1473011903233 | epot = -75.2861777117026 | etot = -54.4566354023504 +260000 ekin = 6.6149121085381 | erot = 14.3326259136799 | epot = -75.4041734240351 | etot = -54.4566354018171 +261000 ekin = 6.51341628163524 | erot = 14.4874368525599 | epot = -75.4574885351826 | etot = -54.4566354009875 +262000 ekin = 6.38501100285347 | erot = 14.6175606151456 | epot = -75.459207018044 | etot = -54.4566354000449 +263000 ekin = 6.23771961613877 | erot = 14.7299444235434 | epot = -75.4242994388567 | etot = -54.4566353991745 +264000 ekin = 6.07941608333398 | erot = 14.8311371615597 | epot = -75.3671886433855 | etot = -54.4566353984918 +265000 ekin = 5.91710326790405 | erot = 14.926199726942 | epot = -75.2999383929275 | etot = -54.4566353980815 +266000 ekin = 5.75646622878407 | erot = 15.017979690906 | epot = -75.231081317672 | etot = -54.4566353979818 +267000 ekin = 5.60176709254115 | erot = 15.106656765002 | epot = -75.1650592557273 | etot = -54.4566353981841 +268000 ekin = 5.45614222906146 | erot = 15.189616158016 | epot = -75.1023937856933 | etot = -54.4566353986158 +269000 ekin = 5.32233940193201 | erot = 15.2616013239986 | epot = -75.0405761254131 | etot = -54.4566353994824 +270000 ekin = 5.20386526321306 | erot = 15.313412678491 | epot = -74.9739133416087 | etot = -54.4566353999047 +271000 ekin = 5.10636511575734 | erot = 15.3371670926589 | epot = -74.9001676083476 | etot = -54.4566353999314 +272000 ekin = 5.03883267753818 | erot = 15.3275595144062 | epot = -74.8230275914628 | etot = -54.4566353995184 +273000 ekin = 5.01408540358722 | erot = 15.2821242951832 | epot = -74.7528450973462 | etot = -54.4566353985758 +274000 ekin = 5.04781979148557 | erot = 15.2024861316973 | epot = -74.7069413204901 | etot = -54.4566353973072 +275000 ekin = 5.15587366097677 | erot = 15.0944379866221 | epot = -74.70694704358 | etot = -54.4566353959811 +276000 ekin = 5.35005421474681 | erot = 14.9659067954328 | epot = -74.7725964054904 | etot = -54.4566353953107 +277000 ekin = 5.63375697520957 | erot = 14.823836281555 | epot = -74.9142286522973 | etot = -54.4566353955328 +278000 ekin = 5.99906841359137 | erot = 14.6726954109903 | epot = -75.1283992213119 | etot = -54.4566353967302 +279000 ekin = 6.42677541448493 | erot = 14.5136733620313 | epot = -75.3970841751191 | etot = -54.4566353986028 +280000 ekin = 6.88949881397351 | erot = 14.3457690850598 | epot = -75.6919032996898 | etot = -54.4566354006565 +281000 ekin = 7.35667779023817 | erot = 14.1678579049843 | epot = -75.9811710982574 | etot = -54.4566354030349 +282000 ekin = 7.79883836993533 | erot = 13.9783154933866 | epot = -76.2337892675062 | etot = -54.4566354041843 +283000 ekin = 8.19321965983707 | erot = 13.7803017892201 | epot = -76.4301568535012 | etot = -54.456635404444 +284000 ekin = 8.52580258151993 | erot = 13.5821927274771 | epot = -76.5646307128671 | etot = -54.4566354038701 +285000 ekin = 8.79108509960225 | erot = 13.3960919484842 | epot = -76.6438124507659 | etot = -54.4566354026794 +286000 ekin = 8.99063008546271 | erot = 13.2361528285313 | epot = -76.6834183151731 | etot = -54.4566354011791 +287000 ekin = 9.13077921529744 | erot = 13.1164348721714 | epot = -76.7038494871523 | etot = -54.4566353996835 +288000 ekin = 9.22018153921085 | erot = 13.0487287839798 | epot = -76.7255457216523 | etot = -54.4566353984616 +289000 ekin = 9.26763004982218 | erot = 13.0407273170634 | epot = -76.7649927645828 | etot = -54.4566353976972 +290000 ekin = 9.28050533355007 | erot = 13.094833692554 | epot = -76.8319744235714 | etot = -54.4566353974674 +291000 ekin = 9.26393617617635 | erot = 13.2077741770249 | epot = -76.9283457509549 | etot = -54.4566353977536 +292000 ekin = 9.22062696895226 | erot = 13.3710137562639 | epot = -77.0482761236745 | etot = -54.4566353984584 +293000 ekin = 9.15118773751663 | erot = 13.5717951426594 | epot = -77.1796182796241 | etot = -54.4566353994481 +294000 ekin = 9.05474970264756 | erot = 13.7942987417177 | epot = -77.3056838449919 | etot = -54.4566354006267 +295000 ekin = 8.92966682643982 | erot = 14.0208093015831 | epot = -77.4071115298357 | etot = -54.4566354018128 +296000 ekin = 8.7741774127974 | erot = 14.233571023826 | epot = -77.4643838395654 | etot = -54.4566354029419 +297000 ekin = 8.58698226598697 | erot = 14.4154370340303 | epot = -77.4590547039531 | etot = -54.4566354039359 +298000 ekin = 8.36775865344638 | erot = 14.5506208496152 | epot = -77.3750149077777 | etot = -54.456635404716 +299000 ekin = 8.11762616774706 | erot = 14.6254987182126 | epot = -77.1997602911624 | etot = -54.4566354052028 +300000 ekin = 7.83954023620354 | erot = 14.6294629242916 | epot = -76.9256385658176 | etot = -54.4566354053225 +301000 ekin = 7.53854212204199 | erot = 14.5557510868048 | epot = -76.5509286138768 | etot = -54.45663540503 +302000 ekin = 7.22177736042479 | erot = 14.4020878566552 | epot = -76.0805006213996 | etot = -54.4566354043196 +303000 ekin = 6.89822321248548 | erot = 14.1709638782383 | epot = -75.5258224939627 | etot = -54.4566354032389 +304000 ekin = 6.57813083858624 | erot = 13.869444626723 | epot = -74.9042108671878 | etot = -54.4566354018786 +305000 ekin = 6.27226349854785 | erot = 13.5085175341593 | epot = -74.2374164330628 | etot = -54.4566354003557 +306000 ekin = 5.99106804508633 | erot = 13.1021011111619 | epot = -73.5498045550381 | etot = -54.4566353987898 +307000 ekin = 5.74393176217476 | erot = 12.6659083209143 | epot = -72.8664754803728 | etot = -54.4566353972837 +308000 ekin = 5.53864569893524 | erot = 12.2163535665821 | epot = -72.2116346614262 | etot = -54.4566353959089 +309000 ekin = 5.38113513069927 | erot = 11.7694200620306 | epot = -71.6071905875238 | etot = -54.4566353947939 +310000 ekin = 5.27545873877789 | erot = 11.3397497111436 | epot = -71.0718438437192 | etot = -54.4566353937978 +311000 ekin = 5.22395041073499 | erot = 10.9408344797135 | epot = -70.6214202834639 | etot = -54.4566353930154 +312000 ekin = 5.22743903848066 | erot = 10.5841016939956 | epot = -70.2681761249448 | etot = -54.4566353924685 +313000 ekin = 5.28546710256986 | erot = 10.2783241765307 | epot = -70.0204266712923 | etot = -54.4566353921918 +314000 ekin = 5.39643142780609 | erot = 10.0290048888872 | epot = -69.8820717089236 | etot = -54.4566353922303 +315000 ekin = 5.55762409515259 | erot = 9.83776650484665 | epot = -69.8520259926243 | etot = -54.4566353926251 +316000 ekin = 5.76519532362118 | erot = 9.70186120840598 | epot = -69.9236919254295 | etot = -54.4566353934023 +317000 ekin = 6.01409543293347 | erot = 9.61396213871344 | epot = -70.0846929662005 | etot = -54.4566353945536 +318000 ekin = 6.29807297065393 | erot = 9.562417609845 | epot = -70.3171259765173 | etot = -54.4566353960184 +319000 ekin = 6.60980622314066 | erot = 9.53213013021435 | epot = -70.5985717510309 | etot = -54.4566353976759 +320000 ekin = 6.94122281960071 | erot = 9.50614507367243 | epot = -70.9040032926193 | etot = -54.4566353993461 +321000 ekin = 7.28401648903376 | erot = 9.46788297195031 | epot = -71.208534861796 | etot = -54.4566354008119 +322000 ekin = 7.63030660902787 | erot = 9.40373715745484 | epot = -71.4906791683421 | etot = -54.4566354018594 +323000 ekin = 7.97332122461268 | erot = 9.30554772849007 | epot = -71.7355043554331 | etot = -54.4566354023304 +324000 ekin = 8.30794457963839 | erot = 9.17235846962826 | epot = -71.936938451434 | etot = -54.4566354021673 +325000 ekin = 8.63098140949704 | erot = 9.0109566441418 | epot = -72.0985734550708 | etot = -54.456635401432 +326000 ekin = 8.94105719146754 | erot = 8.83498929956515 | epot = -72.232681891326 | etot = -54.4566354002933 +327000 ekin = 9.2381710054864 | erot = 8.66283136635324 | epot = -72.3576377708286 | etot = -54.4566353989889 +328000 ekin = 9.52300348811516 | erot = 8.5146834839797 | epot = -72.4943223698687 | etot = -54.4566353977739 +329000 ekin = 9.79612481313629 | erot = 8.40948710595072 | epot = -72.6622473159659 | etot = -54.4566353968789 +330000 ekin = 10.0572432527195 | erot = 8.362163518333 | epot = -72.876042167532 | etot = -54.4566353964795 +331000 ekin = 10.3046041371655 | erot = 8.38150606119571 | epot = -73.1427455950476 | etot = -54.4566353966864 +332000 ekin = 10.5346182384524 | erot = 8.46889046679764 | epot = -73.4601441027809 | etot = -54.4566353975309 +333000 ekin = 10.7417838215593 | erot = 8.61787963653054 | epot = -73.8162988570504 | etot = -54.4566353989605 +334000 ekin = 10.9189661695317 | erot = 8.81478419867269 | epot = -74.1903857690307 | etot = -54.4566354008263 +335000 ekin = 11.0580923139754 | erot = 9.0402445035637 | epot = -74.5549722204231 | etot = -54.456635402884 +336000 ekin = 11.1512758054914 | erot = 9.27184425622304 | epot = -74.8797554665151 | etot = -54.4566354048006 +337000 ekin = 11.192283410668 | erot = 9.48758788095734 | epot = -75.1365066978345 | etot = -54.4566354062091 +338000 ekin = 11.1781049966217 | erot = 9.66977867524164 | epot = -75.3045190786432 | etot = -54.4566354067799 +339000 ekin = 11.110253074136 | erot = 9.80853289682954 | epot = -75.3754213772802 | etot = -54.4566354063147 +340000 ekin = 10.9953916139861 | erot = 9.90404205087864 | epot = -75.3560690696778 | etot = -54.4566354048131 +341000 ekin = 10.8450335653197 | erot = 9.96690251907776 | epot = -75.2685714868785 | etot = -54.456635402481 +342000 ekin = 10.6743190321388 | erot = 10.0163513349014 | epot = -75.1473057667194 | etot = -54.4566353996792 +343000 ekin = 10.5001667181513 | erot = 10.0768603504225 | epot = -75.0336624654006 | etot = -54.4566353968268 +344000 ekin = 10.3392423699624 | erot = 10.1739542078182 | epot = -74.9698319720972 | etot = -54.4566353943167 +345000 ekin = 10.2061520845065 | erot = 10.3301605013023 | epot = -74.9929479782598 | etot = -54.4566353924511 +346000 ekin = 10.112097481429 | erot = 10.5617272299193 | epot = -75.1304601027765 | etot = -54.4566353914282 +347000 ekin = 10.0640336630298 | erot = 10.8763584969767 | epot = -75.3970275513628 | etot = -54.4566353913564 +348000 ekin = 10.0642411405127 | erot = 11.2719278614799 | epot = -75.7928043942644 | etot = -54.4566353922718 +349000 ekin = 10.1101933212636 | erot = 11.7360295300956 | epot = -76.3028582455116 | etot = -54.4566353941525 +350000 ekin = 10.1946552474004 | erot = 12.2463088365559 | epot = -76.8975994808581 | etot = -54.4566353969019 +351000 ekin = 10.306045543854 | erot = 12.7716910290039 | epot = -77.5343719731872 | etot = -54.4566354003293 +352000 ekin = 10.4291816280409 | erot = 13.2747779707954 | epot = -78.1605950029443 | etot = -54.456635404108 +353000 ekin = 10.5465535663497 | erot = 13.7156648337578 | epot = -78.718853807879 | etot = -54.4566354077714 +354000 ekin = 10.6401856668561 | erot = 14.0571283974516 | epot = -79.1539494750733 | etot = -54.4566354107656 +355000 ekin = 10.6939351373282 | erot = 14.2705585631452 | epot = -79.421129113035 | etot = -54.4566354125615 +356000 ekin = 10.6958108467941 | erot = 14.3413604466876 | epot = -79.4938067062911 | etot = -54.4566354128094 +357000 ekin = 10.639721828255 | erot = 14.2722433045623 | epot = -79.3686005442783 | etot = -54.456635411461 +358000 ekin = 10.5263737986249 | erot = 14.0832351439808 | epot = -79.0662443502861 | etot = -54.4566354076805 +359000 ekin = 10.3671285162277 | erot = 13.8092183812893 | epot = -78.6329823019411 | etot = -54.4566354044241 +360000 ekin = 10.17316577932 | erot = 13.4915210097222 | epot = -78.1213221900177 | etot = -54.4566354009755 +361000 ekin = 9.95567993138924 | erot = 13.1714056563713 | epot = -77.5837209856608 | etot = -54.4566353979003 +362000 ekin = 9.72639985071429 | erot = 12.8842804433114 | epot = -77.067315689619 | etot = -54.4566353955933 +363000 ekin = 9.49607796369749 | erot = 12.6551764253519 | epot = -76.6078897832975 | etot = -54.456635394248 +364000 ekin = 9.27360822633292 | erot = 12.4965538445838 | epot = -76.2267974647912 | etot = -54.4566353938744 +365000 ekin = 9.0656878434669 | erot = 12.4083291366445 | epot = -75.9306523744536 | etot = -54.4566353943422 +366000 ekin = 8.87683460603669 | erot = 12.3796974185334 | epot = -75.7131674199994 | etot = -54.4566353954294 +367000 ekin = 8.7096167114834 | erot = 12.3921806495176 | epot = -75.5584327578787 | etot = -54.4566353968777 +368000 ekin = 8.56493490850766 | erot = 12.4232160321889 | epot = -75.4447863391428 | etot = -54.4566353984462 +369000 ekin = 8.44226817634377 | erot = 12.4495921416358 | epot = -75.348495717927 | etot = -54.4566353999474 +370000 ekin = 8.33986053924033 | erot = 12.450192287463 | epot = -75.2466882279602 | etot = -54.4566354012569 +371000 ekin = 8.25489807014457 | erot = 12.4078154254081 | epot = -75.119348897848 | etot = -54.4566354022953 +372000 ekin = 8.1837680247658 | erot = 12.310190867959 | epot = -74.9505942957263 | etot = -54.4566354030015 +373000 ekin = 8.1224708952436 | erot = 12.1505028141942 | epot = -74.7296091127515 | etot = -54.4566354033137 +374000 ekin = 8.06687702985106 | erot = 11.927429705507 | epot = -74.4509421386789 | etot = -54.4566354033209 +375000 ekin = 8.0136053899695 | erot = 11.645430301628 | epot = -74.1156710942693 | etot = -54.4566354026719 +376000 ekin = 7.96102274026665 | erot = 11.3151262124852 | epot = -73.7327843543635 | etot = -54.4566354016116 +377000 ekin = 7.90863816659117 | erot = 10.9518631003599 | epot = -73.3171366672237 | etot = -54.4566354002726 +378000 ekin = 7.85683990183276 | erot = 10.5740091031991 | epot = -72.8874844038712 | etot = -54.4566353988393 +379000 ekin = 7.80642061178599 | erot = 10.2007165018144 | epot = -72.4637725111139 | etot = -54.4566353975135 +380000 ekin = 7.75811152743384 | erot = 9.8496139866053 | epot = -72.0643609104786 | etot = -54.4566353964394 +381000 ekin = 7.71654925828114 | erot = 9.53814492422012 | epot = -71.7113295774989 | etot = -54.4566353949976 +382000 ekin = 7.68451239863347 | erot = 9.27843266615603 | epot = -71.4195804598395 | etot = -54.45663539505 +383000 ekin = 7.65796830190889 | erot = 9.07311806362129 | epot = -71.1877217606714 | etot = -54.4566353951412 +384000 ekin = 7.63469818489458 | erot = 8.92246566923042 | epot = -71.0137992492274 | etot = -54.4566353951024 +385000 ekin = 7.61503891044967 | erot = 8.82614106516799 | epot = -70.8978153704589 | etot = -54.4566353948413 +386000 ekin = 7.60197533238529 | erot = 8.78441775442624 | epot = -70.8430284811966 | etot = -54.4566353943851 +387000 ekin = 7.60049226510599 | erot = 8.79836488560014 | epot = -70.8554925445896 | etot = -54.4566353938834 +388000 ekin = 7.61629032899055 | erot = 8.8689023697532 | epot = -70.9418280923105 | etot = -54.4566353935667 +389000 ekin = 7.65416483434698 | erot = 8.9950195746858 | epot = -71.1058198027103 | etot = -54.4566353936776 +390000 ekin = 7.71643785888504 | erot = 9.17173992639597 | epot = -71.3448131796954 | etot = -54.4566353944143 +391000 ekin = 7.80181238366649 | erot = 9.38839302764267 | epot = -71.6468408071618 | etot = -54.4566353958526 +392000 ekin = 7.90489923332247 | erot = 9.62796379831632 | epot = -71.9894984295676 | etot = -54.4566353979288 +393000 ekin = 8.01655002691858 | erot = 9.86772713454984 | epot = -72.3409125619011 | etot = -54.4566354004327 +394000 ekin = 8.12497584792011 | erot = 10.0812703662914 | epot = -72.662881617248 | etot = -54.4566354030366 +395000 ekin = 8.2174716208145 | erot = 10.2416533823477 | epot = -72.9157604085161 | etot = -54.4566354053539 +396000 ekin = 8.2824383224774 | erot = 10.3253672880818 | epot = -73.0644410175194 | etot = -54.4566354069602 +397000 ekin = 8.31132698802442 | erot = 10.3159962168273 | epot = -73.0839586125428 | etot = -54.456635407691 +398000 ekin = 8.30014555011519 | erot = 10.206120512026 | epot = -72.9629014694186 | etot = -54.4566354072774 +399000 ekin = 8.2502366708628 | erot = 9.99952429134871 | epot = -72.7063963681449 | etot = -54.4566354059334 +400000 ekin = 8.1681866367312 | erot = 9.70984792287219 | epot = -72.3346699633647 | etot = -54.4566354037613 +401000 ekin = 8.06443767762594 | erot = 9.35851558615808 | epot = -71.8795886650977 | etot = -54.4566354013137 +402000 ekin = 7.95182608081662 | erot = 8.97220739200882 | epot = -71.3806688712322 | etot = -54.4566353984067 +403000 ekin = 7.84544588741641 | erot = 8.57990607062258 | epot = -70.8819873536886 | etot = -54.4566353956496 +404000 ekin = 7.75991092033335 | erot = 8.20916918182752 | epot = -70.4257154955327 | etot = -54.4566353933718 +405000 ekin = 7.70721158904269 | erot = 7.88394698602643 | epot = -70.047793966617 | etot = -54.4566353915479 +406000 ekin = 7.69666260474901 | erot = 7.62282033660503 | epot = -69.7761183316813 | etot = -54.4566353903273 +407000 ekin = 7.7350040209002 | erot = 7.43821712170258 | epot = -69.6298565323385 | etot = -54.4566353897357 +408000 ekin = 7.82558122097257 | erot = 7.33626935411989 | epot = -69.6184859648542 | etot = -54.4566353897618 +409000 ekin = 7.96830915348111 | erot = 7.31687210469156 | epot = -69.7418166485681 | etot = -54.4566353903955 +410000 ekin = 8.15969424373301 | erot = 7.37386951086162 | epot = -69.9901991462101 | etot = -54.4566353916155 +411000 ekin = 8.39287612484659 | erot = 7.49540270153548 | epot = -70.3449142197616 | etot = -54.4566353933795 +412000 ekin = 8.65774455619527 | erot = 7.66457893931484 | epot = -70.7789588911044 | etot = -54.4566353955943 +413000 ekin = 8.94129116530325 | erot = 7.86068273350687 | epot = -71.258609296898 | etot = -54.4566353980879 +414000 ekin = 9.22842184777222 | erot = 8.06113294632612 | epot = -71.7461901946816 | etot = -54.4566354005832 +415000 ekin = 9.50339868561016 | erot = 8.24420492650161 | epot = -72.2042390148415 | etot = -54.4566354027298 +416000 ekin = 9.75183806738326 | erot = 8.39218393331151 | epot = -72.6006574048789 | etot = -54.4566354041842 +417000 ekin = 9.9628320827581 | erot = 8.49422554923714 | epot = -72.9136930367169 | etot = -54.4566354047217 +418000 ekin = 10.1305167323595 | erot = 8.54790138251185 | epot = -73.1350535191826 | etot = -54.4566354043112 +419000 ekin = 10.2545191073023 | erot = 8.55932055564976 | epot = -73.270475066081 | etot = -54.4566354031289 +420000 ekin = 10.3391601305845 | erot = 8.54147699792933 | epot = -73.3372725299946 | etot = -54.4566354014807 +421000 ekin = 10.3917847643115 | erot = 8.51147867525398 | epot = -73.3598988392543 | etot = -54.4566353996888 +422000 ekin = 10.4208099208918 | erot = 8.4877596621653 | epot = -73.3652049810802 | etot = -54.4566353980231 +423000 ekin = 10.4339704342082 | erot = 8.48766818012622 | epot = -73.3782740110689 | etot = -54.4566353967345 +424000 ekin = 10.4369827822117 | erot = 8.52566990469129 | epot = -73.4192880827333 | etot = -54.4566353958303 +425000 ekin = 10.4323601115191 | erot = 8.61251346626977 | epot = -73.5015091924224 | etot = -54.4566356146335 +426000 ekin = 10.1026717198751 | erot = 8.31096137628217 | epot = -72.8702682878912 | etot = -54.4566351917339 +427000 ekin = 10.5734553943682 | erot = 8.79632347543578 | epot = -73.8264144771792 | etot = -54.4566356073752 +428000 ekin = 10.6072422295385 | erot = 9.02803563913991 | epot = -74.0919131525333 | etot = -54.4566352838549 +429000 ekin = 10.5962603681844 | erot = 9.29488255867862 | epot = -74.3477782125074 | etot = -54.4566352856444 +430000 ekin = 10.5389594927131 | erot = 9.58934591829317 | epot = -74.5849406986421 | etot = -54.4566352876359 +431000 ekin = 10.4245953942776 | erot = 9.89238704681948 | epot = -74.7736177306457 | etot = -54.4566352895486 +432000 ekin = 10.245696886456 | erot = 10.1829761184383 | epot = -74.8853082959497 | etot = -54.4566352910554 +433000 ekin = 10.0003056146292 | erot = 10.4407089711134 | epot = -74.8976498775905 | etot = -54.456635291848 +434000 ekin = 9.69371342948773 | erot = 10.6486269472888 | epot = -74.7989756684881 | etot = -54.4566352917115 +435000 ekin = 9.33916315685611 | erot = 10.7956251646109 | epot = -74.5914236120697 | etot = -54.4566352906027 +436000 ekin = 8.95712875742735 | erot = 10.8778397412534 | epot = -74.2916037873504 | etot = -54.4566352886697 +437000 ekin = 8.57313769393175 | erot = 10.8986617406356 | epot = -73.9284347207896 | etot = -54.4566352862222 +438000 ekin = 8.21453260376657 | erot = 10.8674634356771 | epot = -73.5386313230875 | etot = -54.4566352836438 +439000 ekin = 7.90690315351327 | erot = 10.7975428309107 | epot = -73.1610812657124 | etot = -54.4566352812884 +440000 ekin = 7.6709950562787 | erot = 10.7039809990724 | epot = -72.8316113347451 | etot = -54.4566352793941 +441000 ekin = 7.52069557968595 | erot = 10.6019760377327 | epot = -72.5793068954817 | etot = -54.4566352780631 +442000 ekin = 7.46231680922547 | erot = 10.5058607974097 | epot = -72.4248128839192 | etot = -54.4566352772841 +443000 ekin = 7.49502555660675 | erot = 10.4286364553075 | epot = -72.3802972888998 | etot = -54.4566352769855 +444000 ekin = 7.61203666089189 | erot = 10.3816439307591 | epot = -72.4503158687455 | etot = -54.4566352770945 +445000 ekin = 7.80213707906526 | erot = 10.3740191034624 | epot = -72.6327914600963 | etot = -54.4566352775686 +446000 ekin = 8.05120889605329 | erot = 10.411793260142 | epot = -72.9196374345791 | etot = -54.4566352783837 +447000 ekin = 8.34362619155195 | erot = 10.4967971423188 | epot = -73.2970586134515 | etot = -54.4566352795808 +448000 ekin = 8.66322518430969 | erot = 10.6255592268213 | epot = -73.745419692246 | etot = -54.4566352811151 +449000 ekin = 8.99429132589985 | erot = 10.788857275459 | epot = -74.2397838842748 | etot = -54.456635282916 +450000 ekin = 9.32243048437278 | erot = 10.9721164674744 | epot = -74.7511822366959 | etot = -54.4566352848487 +451000 ekin = 9.63533692189911 | erot = 11.156756002054 | epot = -75.2487282106873 | etot = -54.4566352867343 +452000 ekin = 9.92346130381757 | erot = 11.3223196777254 | epot = -75.7024162699076 | etot = -54.4566352883646 +453000 ekin = 10.1805259141491 | erot = 11.4490169495349 | epot = -76.08617815326 | etot = -54.456635289576 +454000 ekin = 10.4037354722937 | erot = 11.5200589234786 | epot = -76.3804296860442 | etot = -54.4566352902719 +455000 ekin = 10.5935831355321 | erot = 11.5233067080518 | epot = -76.573525134034 | etot = -54.4566352904502 +456000 ekin = 10.7532212609292 | erot = 11.4519763299573 | epot = -76.661832881081 | etot = -54.4566352901944 +457000 ekin = 10.8874570866201 | erot = 11.304441066212 | epot = -76.6485334424715 | etot = -54.4566352896394 +458000 ekin = 11.0015355382719 | erot = 11.0834241212114 | epot = -76.541594948426 | etot = -54.4566352889428 +459000 ekin = 11.0999318012795 | erot = 10.7949138906133 | epot = -76.3514809801242 | etot = -54.4566352882314 +460000 ekin = 11.185377739659 | erot = 10.4471286620219 | epot = -76.0891416892845 | etot = -54.4566352876037 +461000 ekin = 11.258231340308 | erot = 10.0496701056143 | epot = -75.7645367330242 | etot = -54.4566352871019 +462000 ekin = 11.3163274976769 | erot = 9.61299797023347 | epot = -75.385960754631 | etot = -54.4566352867206 +463000 ekin = 11.3552632497945 | erot = 9.14812026271252 | epot = -74.9600187989452 | etot = -54.4566352864381 +464000 ekin = 11.3690273085563 | erot = 8.66637468807761 | epot = -74.4920372828284 | etot = -54.4566352861945 +465000 ekin = 11.3509265610548 | erot = 8.17938417024519 | epot = -73.9869460172089 | etot = -54.4566352859089 +466000 ekin = 11.2946971057441 | erot = 7.69907577472872 | epot = -73.4504081660039 | etot = -54.4566352855311 +467000 ekin = 11.1955035374656 | erot = 7.23752069346309 | epot = -72.8896595159555 | etot = -54.4566352850269 +468000 ekin = 11.050822539511 | erot = 6.80654240242827 | epot = -72.3140002263333 | etot = -54.4566352843941 +469000 ekin = 10.86114406671 | erot = 6.41707429380281 | epot = -71.7348536441655 | etot = -54.4566352836527 +470000 ekin = 10.6304433621366 | erot = 6.07835039051584 | epot = -71.1654290354893 | etot = -54.4566352828368 +471000 ekin = 10.3664443931402 | erot = 5.79710085709561 | epot = -70.6201805322111 | etot = -54.4566352819752 +472000 ekin = 10.0806478860474 | erot = 5.57696288908532 | epot = -70.1142460562275 | etot = -54.4566352810949 +473000 ekin = 9.78800246195651 | erot = 5.41826188422999 | epot = -69.6628996264136 | etot = -54.4566352802271 +474000 ekin = 9.50601286877946 | erot = 5.31820281474071 | epot = -69.2808509629562 | etot = -54.456635279436 +475000 ekin = 9.25312250159259 | erot = 5.27140899122385 | epot = -68.981166771632 | etot = -54.4566352788155 +476000 ekin = 9.04645385403574 | erot = 5.27070679329708 | epot = -68.7737959257985 | etot = -54.4566352784657 +477000 ekin = 8.89934302897966 | erot = 5.30806431670584 | epot = -68.664042624141 | etot = -54.4566352784555 +478000 ekin = 8.81931824251968 | erot = 5.37557918610962 | epot = -68.6515327074266 | etot = -54.4566352787973 +479000 ekin = 8.80699076959439 | erot = 5.46633303732314 | epot = -68.7299590863708 | etot = -54.4566352794532 +480000 ekin = 8.85601818726949 | erot = 5.57490002076701 | epot = -68.8875534883974 | etot = -54.4566352803609 +481000 ekin = 8.95429342118332 | erot = 5.69751011508116 | epot = -69.1084388177255 | etot = -54.456635281461 +482000 ekin = 9.08517946645072 | erot = 5.83167729002761 | epot = -69.3734920391816 | etot = -54.4566352827033 +483000 ekin = 9.22909607276365 | erot = 5.97557873339551 | epot = -69.6613100901915 | etot = -54.4566352840323 +484000 ekin = 9.36521899372269 | erot = 6.12745864218488 | epot = -69.9493129212799 | etot = -54.4566352853723 +485000 ekin = 9.47322485683509 | erot = 6.28523994694603 | epot = -70.215100090408 | etot = -54.4566352866269 +486000 ekin = 9.53500494319618 | erot = 6.44644593217249 | epot = -70.4380861630537 | etot = -54.456635287685 +487000 ekin = 9.53619997079524 | erot = 6.60840812030772 | epot = -70.60124337955 | etot = -54.456635288447 +488000 ekin = 9.46736165753982 | erot = 6.76862588122827 | epot = -70.6926228276161 | etot = -54.456635288848 +489000 ekin = 9.32457274797106 | erot = 6.92507571371354 | epot = -70.7062837505591 | etot = -54.4566352888745 +490000 ekin = 9.10946474824588 | erot = 7.07632195430853 | epot = -70.6424219911205 | etot = -54.4566352885661 +491000 ekin = 8.82888029926538 | erot = 7.22128416903702 | epot = -70.5067997559143 | etot = -54.4566352876119 +492000 ekin = 8.49626753098065 | erot = 7.35784727800537 | epot = -70.310750096053 | etot = -54.456635287067 +493000 ekin = 8.1248527430003 | erot = 7.48341898212076 | epot = -70.0649070115298 | etot = -54.4566352864087 +494000 ekin = 7.72891988561606 | erot = 7.594896974988 | epot = -69.7804521462887 | etot = -54.4566352856847 +495000 ekin = 7.32464765069171 | erot = 7.68832902470749 | epot = -69.4696119585252 | etot = -54.456635283126 +496000 ekin = 6.87909737983938 | erot = 7.73460610289615 | epot = -69.0703390393874 | etot = -54.4566355566519 +497000 ekin = 6.10749796783306 | erot = 7.42289860775864 | epot = -67.9870318122161 | etot = -54.4566352366244 +498000 ekin = 6.8223384553338 | erot = 7.45240806496291 | epot = -68.7313820537625 | etot = -54.4566355334658 +499000 ekin = 6.94585811355033 | erot = 7.49819185265535 | epot = -68.9006852433609 | etot = -54.4566352771552 +500000 ekin = 6.96877722036869 | erot = 7.49002786304807 | epot = -68.9154403630746 | etot = -54.4566352796579 +501000 ekin = 7.01880112773725 | erot = 7.44438420076744 | epot = -68.9198206071064 | etot = -54.4566352786017 +502000 ekin = 7.10331622209194 | erot = 7.3681739431656 | epot = -68.9281254425242 | etot = -54.4566352772666 +503000 ekin = 7.22893470364811 | erot = 7.27368415101028 | epot = -68.9592541304816 | etot = -54.4566352758232 +504000 ekin = 7.40053482834623 | erot = 7.17754137262058 | epot = -69.0347114753891 | etot = -54.4566352744222 +505000 ekin = 7.620702806129 | erot = 7.09829571792874 | epot = -69.1756337972824 | etot = -54.4566352732246 +506000 ekin = 7.8891584943945 | erot = 7.05445199996171 | epot = -69.4002457667284 | etot = -54.4566352723722 +507000 ekin = 8.20246554171515 | erot = 7.06247440845856 | epot = -69.7215752221428 | etot = -54.4566352719691 +508000 ekin = 8.55413799383062 | erot = 7.13504955838413 | epot = -70.1458228242684 | etot = -54.4566352720537 +509000 ekin = 8.93516686126007 | erot = 7.27981823673083 | epot = -70.6716203706044 | etot = -54.4566352726135 +510000 ekin = 9.33485927282882 | erot = 7.49868525981083 | epot = -71.2901798062273 | etot = -54.4566352735876 +511000 ekin = 9.74175973587721 | erot = 7.78771907258941 | epot = -71.9861140833685 | etot = -54.4566352749019 +512000 ekin = 10.1443557396928 | erot = 8.13756756500318 | epot = -72.7385585811883 | etot = -54.4566352764922 +513000 ekin = 10.5313126056699 | erot = 8.53426169204685 | epot = -73.5222095760326 | etot = -54.4566352783158 +514000 ekin = 10.8911780109873 | erot = 8.96028799858001 | epot = -74.3081012899077 | etot = -54.4566352803403 +515000 ekin = 11.2118156252179 | erot = 9.39590120044802 | epot = -75.0643521081583 | etot = -54.4566352824925 +516000 ekin = 11.4801179010227 | erot = 9.82075584956387 | epot = -75.7575090351961 | etot = -54.4566352846096 +517000 ekin = 11.6825443563144 | erot = 10.2159440472245 | epot = -76.3551236899727 | etot = -54.4566352864338 +518000 ekin = 11.8066489253373 | erot = 10.5663121117384 | epot = -76.8295963247492 | etot = -54.4566352876736 +519000 ekin = 11.8431629051622 | erot = 10.8625994980096 | epot = -77.1623976912762 | etot = -54.4566352881044 +520000 ekin = 11.7878575690797 | erot = 11.1027449902058 | epot = -77.3472378469657 | etot = -54.4566352876802 +521000 ekin = 11.6423174236629 | erot = 11.29193106552 | epot = -77.3908837756855 | etot = -54.4566352865025 +522000 ekin = 11.4136719884741 | erot = 11.4412637557161 | epot = -77.3115710289993 | etot = -54.4566352848091 +523000 ekin = 11.1134246219281 | erot = 11.5654340582746 | epot = -77.1354939631016 | etot = -54.456635282899 +524000 ekin = 10.7557913149077 | erot = 11.6798454532603 | epot = -76.8922720492505 | etot = -54.4566352810825 +525000 ekin = 10.3559612263718 | erot = 11.7976117586443 | epot = -76.6102082646594 | etot = -54.4566352796433 +526000 ekin = 9.92854976444486 | erot = 11.9267667903689 | epot = -76.3119518336127 | etot = -54.4566352787989 +527000 ekin = 9.48645866346676 | erot = 12.0680840250121 | epot = -76.0111779671406 | etot = -54.4566352786618 +528000 ekin = 9.04033350014003 | erot = 12.2139583839317 | epot = -75.7109271632676 | etot = -54.4566352791959 +529000 ekin = 8.59873443632333 | erot = 12.3488338467362 | epot = -75.4042035632559 | etot = -54.4566352801964 +530000 ekin = 8.16898173779832 | erot = 12.4514660033289 | epot = -75.0770830224439 | etot = -54.4566352813166 +531000 ekin = 7.75842341266217 | erot = 12.4988592010136 | epot = -74.7139178958228 | etot = -54.4566352821471 +532000 ekin = 7.37569471991213 | erot = 12.4711371154282 | epot = -74.3034671176647 | etot = -54.4566352823243 +533000 ekin = 7.03150209878443 | erot = 12.3561420075346 | epot = -73.8442793879667 | etot = -54.4566352816476 +534000 ekin = 6.73861037988931 | erot = 12.1525081131711 | epot = -73.3477537731904 | etot = -54.45663528013 +535000 ekin = 6.51098179615119 | erot = 11.8704212665668 | epot = -72.8380383407013 | etot = -54.4566352779833 +536000 ekin = 6.36227279688875 | erot = 11.5300349542147 | epot = -72.3489430266505 | etot = -54.456635275547 +537000 ekin = 6.30402397008893 | erot = 11.1595690920527 | epot = -71.9202283348878 | etot = -54.4566352727462 +538000 ekin = 6.34384912539326 | erot = 10.7903690893075 | epot = -71.5908534856437 | etot = -54.456635270943 +539000 ekin = 6.48387052849282 | erot = 10.449318947169 | epot = -71.3898247455974 | etot = -54.4566352699356 +540000 ekin = 6.71957140286 | erot = 10.1578313306127 | epot = -71.3340380034084 | etot = -54.4566352699357 +541000 ekin = 7.03922441471471 | erot = 9.92917206920205 | epot = -71.425031754947 | etot = -54.4566352710303 +542000 ekin = 7.42406000054681 | erot = 9.7668871120603 | epot = -71.6475823857676 | etot = -54.4566352731605 +543000 ekin = 7.8493023531804 | erot = 9.66461535275778 | epot = -71.9705529820422 | etot = -54.4566352761041 +544000 ekin = 8.28608775689842 | erot = 9.60744188180074 | epot = -72.3501649181947 | etot = -54.4566352794955 +545000 ekin = 8.70408689278687 | erot = 9.57468499690642 | epot = -72.7354071725678 | etot = -54.4566352828746 +546000 ekin = 9.07450055253648 | erot = 9.54373584492586 | epot = -73.07487168323 | etot = -54.4566352857677 +547000 ekin = 9.37295630422306 | erot = 9.49419334511057 | epot = -73.3237849371211 | etot = -54.4566352877874 +548000 ekin = 9.58182570226534 | erot = 9.41137262818507 | epot = -73.4498336191623 | etot = -54.4566352887119 +549000 ekin = 9.69160120899948 | erot = 9.288405596616 | epot = -73.4366420941315 | etot = -54.4566352885161 +550000 ekin = 9.70118406830511 | erot = 9.12701779123922 | epot = -73.2848371467454 | etot = -54.4566352872011 +551000 ekin = 9.61716955377869 | erot = 8.93605057969941 | epot = -73.0098554188361 | etot = -54.456635285358 +552000 ekin = 9.45239020385166 | erot = 8.72803660183396 | epot = -72.6370620888035 | etot = -54.4566352831179 +553000 ekin = 9.2240812648701 | erot = 8.51766004434715 | epot = -72.1983765899684 | etot = -54.4566352807511 +554000 ekin = 8.95200493899196 | erot = 8.31967116939608 | epot = -71.7283113868479 | etot = -54.4566352784598 +555000 ekin = 8.65679189107807 | erot = 8.14750332104929 | epot = -71.2609304884951 | etot = -54.4566352763678 +556000 ekin = 8.35857893219484 | erot = 8.01260395508868 | epot = -70.8278181618281 | etot = -54.4566352745446 +557000 ekin = 8.07596711126812 | erot = 7.92430276672875 | epot = -70.4569051510142 | etot = -54.4566352730173 +558000 ekin = 7.82526545931107 | erot = 7.88998546795382 | epot = -70.1718861990647 | etot = -54.4566352717999 +559000 ekin = 7.61992228153161 | erot = 7.91527958484657 | epot = -69.9918371372954 | etot = -54.4566352709172 +560000 ekin = 7.47007181068654 | erot = 8.00405379786488 | epot = -69.9307608789601 | etot = -54.4566352704086 +561000 ekin = 7.38215855425466 | erot = 8.15814566484878 | epot = -69.9969394894308 | etot = -54.4566352703273 +562000 ekin = 7.35865871746505 | erot = 8.37688060997226 | epot = -70.192174598151 | etot = -54.4566352707137 +563000 ekin = 7.39798626084945 | erot = 8.65660065502576 | epot = -70.5112221874459 | etot = -54.4566352715707 +564000 ekin = 7.49472571183601 | erot = 8.99052373941851 | epot = -70.9418847240798 | etot = -54.4566352728253 +565000 ekin = 7.64032956783369 | erot = 9.36943411102764 | epot = -71.4663989531132 | etot = -54.4566352742518 +566000 ekin = 7.82430710587938 | erot = 9.78260719502216 | epot = -72.0635495767252 | etot = -54.4566352758236 +567000 ekin = 8.03571605971452 | erot = 10.2184542007834 | epot = -72.7108055377923 | etot = -54.4566352772944 +568000 ekin = 8.26456312039748 | erot = 10.665997223562 | epot = -73.3871956225684 | etot = -54.4566352786089 +569000 ekin = 8.50272301774751 | erot = 11.1149437632744 | epot = -74.0743020608117 | etot = -54.4566352797898 +570000 ekin = 8.74355516144858 | erot = 11.554502920604 | epot = -74.7546933635585 | etot = -54.456635281506 +571000 ekin = 8.98090334155492 | erot = 11.9725583583672 | epot = -75.4100969832648 | etot = -54.4566352833427 +572000 ekin = 9.2082873836897 | erot = 12.356036477509 | epot = -76.0209591455829 | etot = -54.4566352843841 +573000 ekin = 9.42081793455992 | erot = 12.6951950119417 | epot = -76.5726482312271 | etot = -54.4566352847255 +574000 ekin = 9.61839098683161 | erot = 12.987675719223 | epot = -77.0627019900489 | etot = -54.4566352839943 +575000 ekin = 9.8053207114464 | erot = 13.2416249343119 | epot = -77.5035809281287 | etot = -54.4566352823704 +576000 ekin = 9.99002522865977 | erot = 13.4728181322991 | epot = -77.9194786412667 | etot = -54.4566352803078 +577000 ekin = 10.1832012886898 | erot = 13.6997981601504 | epot = -78.3396347273587 | etot = -54.4566352785186 +578000 ekin = 10.3950145220004 | erot = 13.9374358143628 | epot = -78.7890856136916 | etot = -54.4566352773284 +579000 ekin = 10.6321657048067 | erot = 14.1940413546622 | epot = -79.2828423366299 | etot = -54.456635277161 +580000 ekin = 10.8955063623585 | erot = 14.4691297491996 | epot = -79.8212713896975 | etot = -54.4566352781394 +581000 ekin = 11.1784960138876 | erot = 14.7531280290353 | epot = -80.3882593231847 | etot = -54.4566352802618 +582000 ekin = 11.466649890903 | erot = 15.0284667683102 | epot = -80.9517519424562 | etot = -54.456635283243 +583000 ekin = 11.7382109395759 | erot = 15.2729975156372 | epot = -81.46784374194 | etot = -54.4566352867269 +584000 ekin = 11.9663900039709 | erot = 15.4635948123567 | epot = -81.8866201064609 | etot = -54.4566352901333 +585000 ekin = 12.1233421755881 | erot = 15.5804670946604 | epot = -82.160444563015 | etot = -54.4566352927665 +586000 ekin = 12.1853975661735 | erot = 15.6117625736168 | epot = -82.2537954337851 | etot = -54.4566352939948 +587000 ekin = 12.1382713601941 | erot = 15.5570038313302 | epot = -82.1519104850123 | etot = -54.456635293488 +588000 ekin = 11.9805642896439 | erot = 15.4278527969017 | epot = -81.8650523779254 | etot = -54.4566352913799 +589000 ekin = 11.7242102225958 | erot = 15.2454372701353 | epot = -81.4262827809805 | etot = -54.4566352882494 +590000 ekin = 11.3915725976128 | erot = 15.0348737081542 | epot = -80.8830815906766 | etot = -54.4566352849096 +591000 ekin = 11.0102189263756 | erot = 14.8189389013234 | epot = -80.2857931097779 | etot = -54.4566352820789 +592000 ekin = 10.607391880722 | erot = 14.6132844347576 | epot = -79.6773115955935 | etot = -54.456635280114 +593000 ekin = 10.2062007299119 | erot = 14.4247656797278 | epot = -79.0876016885973 | etot = -54.4566352789576 +594000 ekin = 9.8244107941942 | erot = 14.2527059307027 | epot = -78.5337520032326 | etot = -54.4566352783357 +595000 ekin = 9.4751657623942 | erot = 14.0913483028674 | epot = -78.0231493432885 | etot = -54.4566352780269 +596000 ekin = 9.16820839960829 | erot = 13.9315742319822 | epot = -77.556417909575 | etot = -54.4566352779845 +597000 ekin = 8.91058714548235 | erot = 13.7613090155275 | epot = -77.1285314392662 | etot = -54.4566352782563 +598000 ekin = 8.7067575239535 | erot = 13.565617791176 | epot = -76.7290105939553 | etot = -54.4566352788258 +599000 ekin = 8.55850888714088 | erot = 13.3279192983947 | epot = -76.3430634650727 | etot = -54.4566352795371 +600000 ekin = 8.46506040530667 | erot = 13.0357131362851 | epot = -75.9574088200021 | etot = -54.4566352784104 +601000 ekin = 8.42304118578906 | erot = 12.6867916099869 | epot = -75.566468075072 | etot = -54.4566352792961 +602000 ekin = 8.42687753936552 | erot = 12.2731929910378 | epot = -75.1567058099478 | etot = -54.4566352795445 +603000 ekin = 8.4695384899465 | erot = 11.797098713486 | epot = -74.7232724826155 | etot = -54.456635279183 +604000 ekin = 8.54275438847601 | erot = 11.2715335231716 | epot = -74.2709231900193 | etot = -54.4566352783717 +605000 ekin = 8.63734562583982 | erot = 10.7175531247483 | epot = -73.8115340279045 | etot = -54.4566352773163 +606000 ekin = 8.7438013028547 | erot = 10.1605162228263 | epot = -73.3609528018798 | etot = -54.4566352761988 +607000 ekin = 8.85309694757045 | erot = 9.62647077148101 | epot = -72.9362029941963 | etot = -54.4566352751448 +608000 ekin = 8.95762756595134 | erot = 9.13922005193509 | epot = -72.5534828920879 | etot = -54.4566352742015 +609000 ekin = 9.05200869449805 | erot = 8.71853436573584 | epot = -72.2271783337178 | etot = -54.4566352734839 +610000 ekin = 9.13354825725741 | erot = 8.37878256427127 | epot = -71.9689660943683 | etot = -54.4566352728396 +611000 ekin = 9.20214054253594 | erot = 8.1292053216989 | epot = -71.7879811366928 | etot = -54.4566352724579 +612000 ekin = 9.25952066990905 | erot = 7.97330837182916 | epot = -71.6894643141582 | etot = -54.45663527242 +613000 ekin = 9.30803502782429 | erot = 7.90865833531061 | epot = -71.6733286359623 | etot = -54.4566352728274 +614000 ekin = 9.34916711094965 | erot = 7.92697148192955 | epot = -71.732773866643 | etot = -54.4566352737638 +615000 ekin = 9.38224690750502 | erot = 8.01444322716698 | epot = -71.8533254097658 | etot = -54.4566352750938 +616000 ekin = 9.40371294252271 | erot = 8.15314542837713 | epot = -72.0134936479267 | etot = -54.4566352770269 +617000 ekin = 9.40764668982314 | erot = 8.32057787067663 | epot = -72.1848598396912 | etot = -54.4566352791914 +618000 ekin = 9.38714075160868 | erot = 8.49215030180821 | epot = -72.3359263346812 | etot = -54.4566352812643 +619000 ekin = 9.33636921849528 | erot = 8.64420325442949 | epot = -72.437207755803 | etot = -54.4566352828783 +620000 ekin = 9.25285403025117 | erot = 8.75716147301268 | epot = -72.4666507869722 | etot = -54.4566352837083 +621000 ekin = 9.13928884697163 | erot = 8.81846717425121 | epot = -72.4143913047736 | etot = -54.4566352835508 +622000 ekin = 9.00442091794227 | erot = 8.82459164771617 | epot = -72.2856478480408 | etot = -54.4566352823824 +623000 ekin = 8.86274189508419 | erot = 8.78159561803589 | epot = -72.1009727932407 | etot = -54.4566352801206 +624000 ekin = 8.73276401800715 | erot = 8.70595407666082 | epot = -71.8953533724822 | etot = -54.4566352778143 +625000 ekin = 8.63399867890784 | erot = 8.618212469755 | epot = -71.7088464239378 | etot = -54.4566352752749 +626000 ekin = 8.58565910354917 | erot = 8.53996947435426 | epot = -71.5822638507735 | etot = -54.4566352728701 +627000 ekin = 8.60437912917914 | erot = 8.49303514267052 | epot = -71.5540495427944 | etot = -54.4566352709448 +628000 ekin = 8.70176554878871 | erot = 8.49648522566346 | epot = -71.6548860443256 | etot = -54.4566352698734 +629000 ekin = 8.88261620993874 | erot = 8.5635071725507 | epot = -71.9027586522013 | etot = -54.4566352697118 +630000 ekin = 9.14296246573492 | erot = 8.70076359816389 | epot = -72.3003613345725 | etot = -54.4566352706737 +631000 ekin = 9.46887704354127 | erot = 8.90689930706844 | epot = -72.8324116238796 | etot = -54.4566352732699 +632000 ekin = 9.83363185826934 | erot = 9.17168072088574 | epot = -73.4619478556477 | etot = -54.4566352764926 +633000 ekin = 10.2053124154562 | erot = 9.47717112296441 | epot = -74.1391188185588 | etot = -54.4566352801382 +634000 ekin = 10.5495376010831 | erot = 9.80182933657188 | epot = -74.8080022212184 | etot = -54.4566352835635 +635000 ekin = 10.8340816739443 | erot = 10.1250818406842 | epot = -75.4157988007395 | etot = -54.456635286111 +636000 ekin = 11.0341363466738 | erot = 10.4317241828331 | epot = -75.9224958167892 | etot = -54.4566352872823 +637000 ekin = 11.1362536303687 | erot = 10.7150791019426 | epot = -76.3079680193872 | etot = -54.4566352870759 +638000 ekin = 11.1393407345868 | erot = 10.9767172064 | epot = -76.5726932267163 | etot = -54.4566352857295 +639000 ekin = 11.0528857655549 | erot = 11.224562529706 | epot = -76.7340835789804 | etot = -54.4566352837195 +640000 ekin = 10.893283375067 | erot = 11.4701066828315 | epot = -76.8200253394105 | etot = -54.456635281512 +641000 ekin = 10.6798604052081 | erot = 11.7256640733954 | epot = -76.862159758033 | etot = -54.4566352794294 +642000 ekin = 10.4319158115154 | erot = 12.0024358075463 | epot = -76.8909868967299 | etot = -54.4566352776682 +643000 ekin = 10.166953187212 | erot = 12.3092359597876 | epot = -76.9328244231824 | etot = -54.4566352761827 +644000 ekin = 9.90018316847719 | erot = 12.6520525446443 | epot = -77.0088709883795 | etot = -54.4566352752581 +645000 ekin = 9.64412813643454 | erot = 13.0323474006439 | epot = -77.1331108120166 | etot = -54.4566352749382 +646000 ekin = 9.40844464391873 | erot = 13.4458998080393 | epot = -77.3109797269726 | etot = -54.4566352750145 +647000 ekin = 9.1999884291585 | erot = 13.8831906422816 | epot = -77.5398143472699 | etot = -54.4566352758298 +648000 ekin = 9.02196759880059 | erot = 14.327906247855 | epot = -77.8065091239739 | etot = -54.4566352773183 +649000 ekin = 8.87356627779062 | erot = 14.7574673823316 | epot = -78.0876689395909 | etot = -54.4566352794687 +650000 ekin = 8.74956009132211 | erot = 15.1439160026326 | epot = -78.3501113761364 | etot = -54.4566352821817 +651000 ekin = 8.64036637406831 | erot = 15.4556053528726 | epot = -78.552607012193 | etot = -54.456635285252 +652000 ekin = 8.53277201870684 | erot = 15.6598310256854 | epot = -78.6492383327263 | etot = -54.456635288334 +653000 ekin = 8.41160402390922 | erot = 15.7264979165626 | epot = -78.5947372314111 | etot = -54.4566352909393 +654000 ekin = 8.26240952718729 | erot = 15.6326986256784 | epot = -78.3517434454054 | etot = -54.4566352925398 +655000 ekin = 8.07475580658865 | erot = 15.3674488766353 | epot = -77.8988399757855 | etot = -54.4566352925616 +656000 ekin = 7.8558568329232 | erot = 14.9355978465144 | epot = -77.2480902330833 | etot = -54.4566355536457 +657000 ekin = 6.26754941237541 | erot = 14.5622178162966 | epot = -75.2864023129602 | etot = -54.4566350842882 +658000 ekin = 6.04146739777421 | erot = 14.8336076395965 | epot = -75.3317103840911 | etot = -54.4566353467204 +659000 ekin = 6.38604373424062 | erot = 14.3792060567779 | epot = -75.2218852652085 | etot = -54.4566354741899 +660000 ekin = 6.5180692366814 | erot = 13.6089213615818 | epot = -74.5836260719848 | etot = -54.4566354737216 +661000 ekin = 6.66094978027865 | erot = 12.8243584228285 | epot = -73.9419436733274 | etot = -54.4566354702202 +662000 ekin = 6.81847461883994 | erot = 12.0687190077668 | epot = -73.3438290942705 | etot = -54.4566354676637 +663000 ekin = 6.99157703856223 | erot = 11.3763942501093 | epot = -72.824606754809 | etot = -54.4566354661374 +664000 ekin = 7.17716154109503 | erot = 10.7708280861964 | epot = -72.4046250929334 | etot = -54.4566354656419 +665000 ekin = 7.36751346457915 | erot = 10.2651942829233 | epot = -72.0893432136831 | etot = -54.4566354661807 +666000 ekin = 7.55097379427906 | erot = 9.86605911513187 | epot = -71.8736683769829 | etot = -54.456635467572 +667000 ekin = 7.71560064024578 | erot = 9.56451333310551 | epot = -71.7367494426919 | etot = -54.4566354693406 +668000 ekin = 7.84958438765827 | erot = 9.3436894719049 | epot = -71.6499093309659 | etot = -54.4566354714027 +669000 ekin = 7.94295016385616 | erot = 9.1818139048154 | epot = -71.5813995419857 | etot = -54.4566354733142 +670000 ekin = 7.9891684211374 | erot = 9.05573401739516 | epot = -71.5015379133415 | etot = -54.4566354748089 +671000 ekin = 7.98640376800962 | erot = 8.94389368817567 | epot = -71.3869329318708 | etot = -54.4566354756855 +672000 ekin = 7.9381494549713 | erot = 8.8287029853038 | epot = -71.2234879161209 | etot = -54.4566354758458 +673000 ekin = 7.85378610279984 | erot = 8.6986877436715 | epot = -71.0091093212467 | etot = -54.4566354747754 +674000 ekin = 7.74799942744435 | erot = 8.54952007570365 | epot = -70.754154976773 | etot = -54.456635473625 +675000 ekin = 7.63655278417633 | erot = 8.38180900834835 | epot = -70.4749972646932 | etot = -54.4566354721686 +676000 ekin = 7.53535852001204 | erot = 8.20065006866992 | epot = -70.1926440593593 | etot = -54.4566354706773 +677000 ekin = 7.45814475127725 | erot = 8.01383837145264 | epot = -69.9286185924865 | etot = -54.4566354697567 +678000 ekin = 7.41094295256099 | erot = 7.82760230140382 | epot = -69.6951807229993 | etot = -54.4566354690345 +679000 ekin = 7.39592235492869 | erot = 7.64827405779127 | epot = -69.5008318814407 | etot = -54.4566354687208 +680000 ekin = 7.41177806097664 | erot = 7.48365592355626 | epot = -69.3520694527969 | etot = -54.456635468264 +681000 ekin = 7.45331527396897 | erot = 7.34392547755961 | epot = -69.2538762205284 | etot = -54.4566354689998 +682000 ekin = 7.50955937697697 | erot = 7.23029783103104 | epot = -69.1964926779914 | etot = -54.4566354699834 +683000 ekin = 7.56739476561478 | erot = 7.14126315260236 | epot = -69.1652933892642 | etot = -54.456635471047 +684000 ekin = 7.61376409144466 | erot = 7.07385958563683 | epot = -69.1442591490619 | etot = -54.4566354719804 +685000 ekin = 7.63746698432958 | erot = 7.02460383232006 | epot = -69.1187062894153 | etot = -54.4566354727656 +686000 ekin = 7.63051953632514 | erot = 6.98951954535261 | epot = -69.0766745549324 | etot = -54.4566354732546 +687000 ekin = 7.58886140551023 | erot = 6.96428884092867 | epot = -69.0097857199475 | etot = -54.4566354735086 +688000 ekin = 7.5123778443976 | erot = 6.94436871140367 | epot = -68.9133820291076 | etot = -54.4566354733063 +689000 ekin = 7.40504576868385 | erot = 6.92768230556345 | epot = -68.7893635471276 | etot = -54.4566354728803 +690000 ekin = 7.27382130827893 | erot = 6.91296338857061 | epot = -68.6434201691486 | etot = -54.4566354722991 +691000 ekin = 7.12767077385367 | erot = 6.89947861386804 | epot = -68.483784859351 | etot = -54.4566354716293 +692000 ekin = 6.9766239669048 | erot = 6.88703034397747 | epot = -68.3202897818118 | etot = -54.4566354709295 +693000 ekin = 6.83191834520977 | erot = 6.87661243826572 | epot = -68.1651662534466 | etot = -54.4566354699711 +694000 ekin = 6.70652274538362 | erot = 6.87114213828651 | epot = -68.0343003531286 | etot = -54.4566354694585 +695000 ekin = 6.60809645496262 | erot = 6.87168002796421 | epot = -67.9364119519809 | etot = -54.4566354690541 +696000 ekin = 6.54192055188176 | erot = 6.87954258793329 | epot = -67.8780986086068 | etot = -54.4566354687917 +697000 ekin = 6.51083965228446 | erot = 6.89633668058504 | epot = -67.8638118015929 | etot = -54.4566354687234 +698000 ekin = 6.51499125638723 | erot = 6.92351826954681 | epot = -67.8951449951714 | etot = -54.4566354692374 +699000 ekin = 6.550556818564 | erot = 6.96165096856857 | epot = -67.9688432565951 | etot = -54.4566354694625 +700000 ekin = 6.61234823812044 | erot = 7.01150759224098 | epot = -68.0804913002851 | etot = -54.4566354699236 +701000 ekin = 6.69387980257822 | erot = 7.07317762179458 | epot = -68.2236928948352 | etot = -54.4566354704624 +702000 ekin = 6.78728068982377 | erot = 7.14568383977926 | epot = -68.3896000006983 | etot = -54.4566354710953 +703000 ekin = 6.88400379171242 | erot = 7.22737250162029 | epot = -68.5680117651016 | etot = -54.4566354717689 +704000 ekin = 6.97556832835716 | erot = 7.31572261063949 | epot = -68.747926411421 | etot = -54.4566354724243 +705000 ekin = 7.05425772042527 | erot = 7.40762548355635 | epot = -68.9185186769786 | etot = -54.4566354729969 +706000 ekin = 7.11369388310506 | erot = 7.49985325016107 | epot = -69.070182606692 | etot = -54.4566354734259 +707000 ekin = 7.14922746289103 | erot = 7.58965466907766 | epot = -69.1955176056336 | etot = -54.4566354736649 +708000 ekin = 7.15811920574744 | erot = 7.6753716118775 | epot = -69.2901262913103 | etot = -54.4566354736853 +709000 ekin = 7.13952646258542 | erot = 7.75695073870722 | epot = -69.3531126747745 | etot = -54.4566354734819 +710000 ekin = 7.09433523087588 | erot = 7.83623493467486 | epot = -69.3872056386251 | etot = -54.4566354730744 +711000 ekin = 7.02488197437687 | erot = 7.91695244606739 | epot = -69.3984698929541 | etot = -54.4566354725099 +712000 ekin = 6.93460038929036 | erot = 8.00437692967606 | epot = -69.3956127908169 | etot = -54.4566354718505 +713000 ekin = 6.82762548688049 | erot = 8.10469988089882 | epot = -69.3889608389739 | etot = -54.4566354711946 +714000 ekin = 6.70839192371242 | erot = 8.22401944315054 | epot = -69.3890468374827 | etot = -54.4566354706198 +715000 ekin = 6.58127350482036 | erot = 8.36737765962647 | epot = -69.4052866346558 | etot = -54.456635470209 +716000 ekin = 6.45031596780151 | erot = 8.53776210680492 | epot = -69.4447135446327 | etot = -54.4566354700262 +717000 ekin = 6.31910573966021 | erot = 8.73523312779016 | epot = -69.510974337557 | etot = -54.4566354701066 +718000 ekin = 6.19080028786937 | erot = 8.95633319730107 | epot = -69.603768955619 | etot = -54.4566354704485 +719000 ekin = 6.06832299313285 | erot = 9.19390878348299 | epot = -69.7188672476246 | etot = -54.4566354710087 +720000 ekin = 5.95470075028698 | erot = 9.43744070375475 | epot = -69.8487769257427 | etot = -54.4566354717009 +721000 ekin = 5.85349202512459 | erot = 9.67392180064466 | epot = -69.9840492981764 | etot = -54.4566354724072 +722000 ekin = 5.76921811618467 | erot = 9.88920295785366 | epot = -70.1150565470426 | etot = -54.4566354730043 +723000 ekin = 5.70767535089409 | erot = 10.0695468208251 | epot = -70.2338576450814 | etot = -54.4566354733622 +724000 ekin = 5.67599154890781 | erot = 10.203542552663 | epot = -70.3361695749737 | etot = -54.4566354734029 +725000 ekin = 5.68230712443453 | erot = 10.2835870142371 | epot = -70.4225296117833 | etot = -54.4566354731117 +726000 ekin = 5.73502013958263 | erot = 10.3068600066279 | epot = -70.4985156187578 | etot = -54.4566354725473 +727000 ekin = 5.84163680642924 | erot = 10.2756197556135 | epot = -70.573892033868 | etot = -54.4566354718252 +728000 ekin = 6.00741477143184 | erot = 10.1968335781189 | epot = -70.6608838206318 | etot = -54.456635471081 +729000 ekin = 6.23399006285525 | erot = 10.0813630553523 | epot = -70.771988588682 | etot = -54.4566354704744 +730000 ekin = 6.51828052765144 | erot = 9.9426735456021 | epot = -70.9175895433943 | etot = -54.4566354701407 +731000 ekin = 6.85187412405264 | erot = 9.79530805490023 | epot = -71.103817649134 | etot = -54.4566354701812 +732000 ekin = 7.22103408683562 | erot = 9.65327415425518 | epot = -71.3309437117429 | etot = -54.4566354706521 +733000 ekin = 7.60730193027085 | erot = 9.52880121518164 | epot = -71.5927386169427 | etot = -54.4566354714902 +734000 ekin = 7.98880332434209 | erot = 9.43074706131371 | epot = -71.876185858433 | etot = -54.4566354727772 +735000 ekin = 8.34212509373748 | erot = 9.3633098334892 | epot = -72.1620704015425 | etot = -54.4566354743158 +736000 ekin = 8.64442251577016 | erot = 9.32619971932519 | epot = -72.4272577110297 | etot = -54.4566354759344 +737000 ekin = 8.87574972639943 | erot = 9.31509601120067 | epot = -72.6474812150134 | etot = -54.4566354774133 +738000 ekin = 9.02130630169665 | erot = 9.32284410470334 | epot = -72.8007858849193 | etot = -54.4566354785193 +739000 ekin = 9.07331880500993 | erot = 9.34118914837109 | epot = -72.8711434324294 | etot = -54.4566354790484 +740000 ekin = 9.03225763738395 | erot = 9.36274956106376 | epot = -72.8516426773077 | etot = -54.45663547886 +741000 ekin = 8.90713122012936 | erot = 9.3828557688273 | epot = -72.7466224668723 | etot = -54.4566354779156 +742000 ekin = 8.71472462486779 | erot = 9.40075675433865 | epot = -72.5721168556002 | etot = -54.4566354763937 +743000 ekin = 8.47795966699027 | erot = 9.41969955783087 | epot = -72.3542946989564 | etot = -54.4566354741353 +744000 ekin = 8.22400086784026 | erot = 9.44765885710949 | epot = -72.1282951968482 | etot = -54.4566354718985 +745000 ekin = 7.97989641728764 | erot = 9.49406284314719 | epot = -71.9305947302801 | etot = -54.4566354698453 +746000 ekin = 7.76957023230139 | erot = 9.56762699730982 | epot = -71.7938326979343 | etot = -54.4566354683231 +747000 ekin = 7.6113281427264 | erot = 9.67405775028686 | epot = -71.7420213607417 | etot = -54.4566354677284 +748000 ekin = 7.51608906095942 | erot = 9.81227809036011 | epot = -71.7850026195773 | etot = -54.4566354682578 +749000 ekin = 7.48509635035055 | erot = 9.97286752416827 | epot = -71.914599344452 | etot = -54.4566354699332 +750000 ekin = 7.51020628173353 | erot = 10.1380775195895 | epot = -72.1049192737933 | etot = -54.4566354724703 +751000 ekin = 7.57538607462524 | erot = 10.2842078237016 | epot = -72.3162293737607 | etot = -54.4566354754339 +752000 ekin = 7.65985767866269 | erot = 10.3856021559485 | epot = -72.5020953128504 | etot = -54.4566354782391 +753000 ekin = 7.74189887066433 | erot = 10.419001280809 | epot = -72.6175356321296 | etot = -54.4566354806562 +754000 ekin = 7.80244855953598 | erot = 10.3680715765413 | epot = -72.6271556176715 | etot = -54.4566354815942 +755000 ekin = 7.83000162073562 | erot = 10.2279599097075 | epot = -72.5145970116681 | etot = -54.456635481225 +756000 ekin = 7.82097337519573 | erot = 10.0059197104317 | epot = -72.2835285652745 | etot = -54.456635479647 +757000 ekin = 7.77934134712486 | erot = 9.72019517222596 | epot = -71.9561719965242 | etot = -54.4566354771734 +758000 ekin = 7.71519090760764 | erot = 9.3969298917774 | epot = -71.568756273586 | etot = -54.4566354742009 +759000 ekin = 7.64279612364638 | erot = 9.06591672497264 | epot = -71.1653483198422 | etot = -54.4566354712232 +760000 ekin = 7.57755088532868 | erot = 8.75627990045633 | epot = -70.790466254402 | etot = -54.456635468617 +761000 ekin = 7.53416140040996 | erot = 8.49239651707641 | epot = -70.4831933841425 | etot = -54.4566354666561 +762000 ekin = 7.52513654525459 | erot = 8.29092896401282 | epot = -70.2727009748851 | etot = -54.4566354656177 +763000 ekin = 7.55953487192201 | erot = 8.15857993674247 | epot = -70.1747502740267 | etot = -54.4566354653622 +764000 ekin = 7.64294215281726 | erot = 8.0928450780051 | epot = -70.1924226970456 | etot = -54.4566354662233 +765000 ekin = 7.77642284081022 | erot = 8.08170347276273 | epot = -70.3147617810413 | etot = -54.4566354674683 +766000 ekin = 7.95834261066027 | erot = 8.10711564973332 | epot = -70.5220937294794 | etot = -54.4566354690858 +767000 ekin = 8.18472660667583 | erot = 8.14791972848129 | epot = -70.7892818060094 | etot = -54.4566354708523 +768000 ekin = 8.44981765186404 | erot = 8.18277444593156 | epot = -71.0892275702743 | etot = -54.4566354724787 +769000 ekin = 8.74694394959826 | erot = 8.19341027607498 | epot = -71.3969896993911 | etot = -54.4566354737179 +770000 ekin = 9.0674029995204 | erot = 8.16689258700995 | epot = -71.6909310619803 | etot = -54.4566354754499 +771000 ekin = 9.40024405596226 | erot = 8.09727042676162 | epot = -71.9541499582763 | etot = -54.4566354755524 +772000 ekin = 9.73924667677548 | erot = 7.98875570208412 | epot = -72.1846378539895 | etot = -54.4566354751299 +773000 ekin = 10.0787428377665 | erot = 7.85333550370643 | epot = -72.3887138158604 | etot = -54.4566354743875 +774000 ekin = 10.4126881201536 | erot = 7.70839587028075 | epot = -72.5777194640181 | etot = -54.4566354735838 +775000 ekin = 10.7338614307519 | erot = 7.5736395282272 | epot = -72.7641364319404 | etot = -54.4566354729614 +776000 ekin = 11.0333888250078 | erot = 7.46794248962755 | epot = -72.9579667873123 | etot = -54.456635472677 +777000 ekin = 11.3009163259555 | erot = 7.40678795795349 | epot = -73.1643397566749 | etot = -54.4566354727659 +778000 ekin = 11.5255306315622 | erot = 7.40073666279855 | epot = -73.3829027675071 | etot = -54.4566354731464 +779000 ekin = 11.6972525421253 | erot = 7.45497855950837 | epot = -73.6088665753155 | etot = -54.4566354736818 +780000 ekin = 11.8087202601131 | erot = 7.56970994291763 | epot = -73.8350656772418 | etot = -54.456635474211 +781000 ekin = 11.8566181530725 | erot = 7.74100457478778 | epot = -74.0542582024836 | etot = -54.4566354746234 +782000 ekin = 11.8424717374736 | erot = 7.96169824308615 | epot = -74.260805455433 | etot = -54.4566354748733 +783000 ekin = 11.772696068821 | erot = 8.22211610462947 | epot = -74.4514476484202 | etot = -54.4566354749697 +784000 ekin = 11.6588151949699 | erot = 8.51079893968734 | epot = -74.6262496093 | etot = -54.4566354746428 +785000 ekin = 11.5160383797475 | erot = 8.81490190988977 | epot = -74.7875757641991 | etot = -54.4566354745618 +786000 ekin = 11.360467176424 | erot = 9.12050352622298 | epot = -74.9376061770542 | etot = -54.4566354744072 +787000 ekin = 11.2093970331549 | erot = 9.4137436342822 | epot = -75.0797761416126 | etot = -54.4566354741755 +788000 ekin = 11.0803298420605 | erot = 9.68171559587104 | epot = -75.2186809118141 | etot = -54.4566354738826 +789000 ekin = 10.9900153478649 | erot = 9.91340849394794 | epot = -75.3600593153399 | etot = -54.456635473527 +790000 ekin = 10.9532761013338 | erot = 10.1003645461715 | epot = -75.5102761207273 | etot = -54.456635473222 +791000 ekin = 10.9812861942189 | erot = 10.2367032936654 | epot = -75.6746249610122 | etot = -54.4566354731278 +792000 ekin = 11.0795985346102 | erot = 10.3187114954301 | epot = -75.8549455034587 | etot = -54.4566354734184 +793000 ekin = 11.2461815584149 | erot = 10.344147052189 | epot = -76.0469640849238 | etot = -54.4566354743199 +794000 ekin = 11.470010961038 | erot = 10.3116670234561 | epot = -76.2383134600531 | etot = -54.4566354755591 +795000 ekin = 11.7325834354423 | erot = 10.2211808754552 | epot = -76.4103997879038 | etot = -54.4566354770063 +796000 ekin = 12.0100258299387 | erot = 10.0748477066209 | epot = -76.5415090148157 | etot = -54.456635478256 +797000 ekin = 12.277125034995 | erot = 9.87872464390326 | epot = -76.6124851578108 | etot = -54.4566354789125 +798000 ekin = 12.5117241722609 | erot = 9.64405687336503 | epot = -76.6124165243918 | etot = -54.4566354787658 +799000 ekin = 12.6978884572209 | erot = 9.38719424495255 | epot = -76.541718180055 | etot = -54.4566354778816 +800000 ekin = 12.8269839018831 | erot = 9.12779516060063 | epot = -76.4114145390235 | etot = -54.4566354765398 +801000 ekin = 12.8968371081357 | erot = 8.8858893984407 | epot = -76.2393619816671 | etot = -54.4566354750907 +802000 ekin = 12.9098422516114 | erot = 8.67886362140375 | epot = -76.0453413468402 | etot = -54.456635473825 +803000 ekin = 12.8709437099691 | erot = 8.51925810394788 | epot = -75.8468372868319 | etot = -54.4566354729149 +804000 ekin = 12.7860755415072 | erot = 8.41392281570264 | epot = -75.6566338295845 | etot = -54.4566354723747 +805000 ekin = 12.6610782480009 | erot = 8.36419460873407 | epot = -75.4819083289808 | etot = -54.4566354722458 +806000 ekin = 12.5011884973247 | erot = 8.3656329949461 | epot = -75.3234569648034 | etot = -54.4566354725326 +807000 ekin = 12.3111195444882 | erot = 8.40891169869997 | epot = -75.1766667162117 | etot = -54.4566354730235 +808000 ekin = 12.0951213686719 | erot = 8.48285306309104 | epot = -75.034609905525 | etot = -54.456635473762 +809000 ekin = 11.8570912953369 | erot = 8.57364419054096 | epot = -74.8873709604546 | etot = -54.4566354745767 +810000 ekin = 11.6008292339629 | erot = 8.66613366755959 | epot = -74.7235983769046 | etot = -54.4566354753821 +811000 ekin = 11.3302304258252 | erot = 8.74588715342986 | epot = -74.5327530553485 | etot = -54.4566354760934 +812000 ekin = 11.049430435476 | erot = 8.80043497509599 | epot = -74.3065008871933 | etot = -54.4566354766213 +813000 ekin = 10.7661929387732 | erot = 8.820921438455 | epot = -74.0437498529207 | etot = -54.4566354756925 +814000 ekin = 10.4922967616431 | erot = 8.803923684692 | epot = -73.7528559227931 | etot = -54.456635476458 +815000 ekin = 10.1508207490653 | erot = 8.72967512610392 | epot = -73.3371313415199 | etot = -54.4566354663507 +816000 ekin = 10.0080919366075 | erot = 8.6082286816217 | epot = -73.0729560943243 | etot = -54.4566354760951 +817000 ekin = 9.9417663188555 | erot = 8.48405485447215 | epot = -72.882456631768 | etot = -54.4566354584404 +818000 ekin = 9.81594850431016 | erot = 8.35559405938805 | epot = -72.6281780195682 | etot = -54.45663545587 +819000 ekin = 9.71985113501945 | erot = 8.23701168827821 | epot = -72.4134982795899 | etot = -54.4566354562922 +820000 ekin = 9.65376512615121 | erot = 8.1501567306149 | epot = -72.260557310816 | etot = -54.4566354540499 +821000 ekin = 9.62982370507439 | erot = 8.11448531446734 | epot = -72.2009444717374 | etot = -54.4566354521956 +822000 ekin = 9.66077700455577 | erot = 8.14425821637578 | epot = -72.2616706721298 | etot = -54.4566354511983 +823000 ekin = 9.75392749287522 | erot = 8.24624180251047 | epot = -72.4568047467245 | etot = -54.4566354513388 +824000 ekin = 9.90828878172935 | erot = 8.4186513843487 | epot = -72.7835756187113 | etot = -54.4566354526332 +825000 ekin = 10.1139944762006 | erot = 8.65151311650705 | epot = -73.2221430475685 | etot = -54.4566354548608 +826000 ekin = 10.3538759474279 | erot = 8.92820306635602 | epot = -73.738714471444 | etot = -54.4566354576601 +827000 ekin = 10.606338982672 | erot = 9.22772390085596 | epot = -74.2906983441747 | etot = -54.4566354606467 +828000 ekin = 10.8484921435726 | erot = 9.52726891665539 | epot = -74.8323965237032 | etot = -54.4566354634752 +829000 ekin = 11.0588299502289 | erot = 9.80476940803695 | epot = -75.3202348241266 | etot = -54.4566354658608 +830000 ekin = 11.2192526328106 | erot = 10.0413124779635 | epot = -75.7172005783464 | etot = -54.4566354675724 +831000 ekin = 11.3164768757008 | erot = 10.2234037408202 | epot = -75.996516084949 | etot = -54.4566354684279 +832000 ekin = 11.3429029406713 | erot = 10.3449490493039 | epot = -76.1444874582939 | etot = -54.4566354683187 +833000 ekin = 11.2968956967983 | erot = 10.4085990339246 | epot = -76.1621301979783 | etot = -54.4566354672554 +834000 ekin = 11.1823662954395 | erot = 10.4259018262243 | epot = -76.0649035871392 | etot = -54.4566354654754 +835000 ekin = 11.0075932322104 | erot = 10.415064292159 | epot = -75.8792929875455 | etot = -54.4566354631761 +836000 ekin = 10.7833921149831 | erot = 10.3989545533741 | epot = -75.6389821291817 | etot = -54.4566354608245 +837000 ekin = 10.5209501551182 | erot = 10.4011161497682 | epot = -75.3787017637168 | etot = -54.4566354588304 +838000 ekin = 10.2298721897682 | erot = 10.4412405801822 | epot = -75.1277482274376 | etot = -54.4566354574871 +839000 ekin = 9.9169698633829 | erot = 10.5315530525306 | epot = -74.9051583728937 | etot = -54.4566354569802 +840000 ekin = 9.58610156141702 | erot = 10.6755294545289 | epot = -74.7182664730354 | etot = -54.4566354570895 +841000 ekin = 9.23901842927408 | erot = 10.868774358744 | epot = -74.5644282456714 | etot = -54.4566354576533 +842000 ekin = 8.87685056107778 | erot = 11.1001329244142 | epot = -74.4336189440919 | etot = -54.4566354585999 +843000 ekin = 8.50173060234696 | erot = 11.3524188663457 | epot = -74.3107849279275 | etot = -54.4566354592348 +844000 ekin = 8.11795575231061 | erot = 11.6095427521259 | epot = -74.1841339640053 | etot = -54.4566354595688 +845000 ekin = 7.73236361560105 | erot = 11.8578438185536 | epot = -74.0468428936599 | etot = -54.4566354595052 +846000 ekin = 7.35399612874066 | erot = 12.0875238819158 | epot = -73.8981554696971 | etot = -54.4566354590406 +847000 ekin = 6.99323530265824 | erot = 12.2936929401837 | epot = -73.7435637010834 | etot = -54.4566354582415 +848000 ekin = 6.66076569760595 | erot = 12.476513505272 | epot = -73.5939146600918 | etot = -54.4566354572138 +849000 ekin = 6.36668003284545 | erot = 12.6405664289168 | epot = -73.4638819178322 | etot = -54.45663545607 +850000 ekin = 6.11988143343135 | erot = 12.7936422801385 | epot = -73.3701591685048 | etot = -54.4566354549349 +851000 ekin = 5.9277602422565 | erot = 12.9452003506214 | epot = -73.3295960467989 | etot = -54.4566354539209 +852000 ekin = 5.79602796366905 | erot = 13.1047455614325 | epot = -73.3574089782281 | etot = -54.4566354531266 +853000 ekin = 5.72859704152406 | erot = 13.2803568755571 | epot = -73.4655893697262 | etot = -54.4566354526451 +854000 ekin = 5.72746205359738 | erot = 13.4775571123792 | epot = -73.6616546184891 | etot = -54.4566354525126 +855000 ekin = 5.79260154210359 | erot = 13.6986462729226 | epot = -73.9478832677686 | etot = -54.4566354527424 +856000 ekin = 5.92195007057475 | erot = 13.9425386772173 | epot = -74.3211242010997 | etot = -54.4566354533076 +857000 ekin = 6.11148060846784 | erot = 14.2050613164122 | epot = -74.7731773790288 | etot = -54.4566354541488 +858000 ekin = 6.35540247729863 | erot = 14.4795962341537 | epot = -75.2916341666453 | etot = -54.456635455193 +859000 ekin = 6.6464375003053 | erot = 14.7578922330101 | epot = -75.8609651896848 | etot = -54.4566354563695 +860000 ekin = 6.97610349830149 | erot = 15.0308449598478 | epot = -76.4635839157752 | etot = -54.4566354576259 +861000 ekin = 7.3349249363496 | erot = 15.2890679300596 | epot = -77.0806283253549 | etot = -54.4566354589457 +862000 ekin = 7.71251467470176 | erot = 15.5231591806792 | epot = -77.6923093157189 | etot = -54.4566354603379 +863000 ekin = 8.09752575484634 | erot = 15.7236923479157 | epot = -78.2778535645897 | etot = -54.4566354618277 +864000 ekin = 8.47754136486205 | erot = 15.8810831527475 | epot = -78.8152599810381 | etot = -54.4566354634286 +865000 ekin = 8.83903083982985 | erot = 15.9855505169334 | epot = -79.2812168218813 | etot = -54.456635465118 +866000 ekin = 9.16752990645287 | erot = 16.0273731150022 | epot = -79.6515384882752 | etot = -54.4566354668201 +867000 ekin = 9.44819483540946 | erot = 15.997539865398 | epot = -79.9023701692061 | etot = -54.4566354683986 +868000 ekin = 9.66683066873641 | erot = 15.8887400708614 | epot = -80.0122062092691 | etot = -54.4566354696714 +869000 ekin = 9.81140211470355 | erot = 15.6964846394016 | epot = -79.9645222245439 | etot = -54.4566354704387 +870000 ekin = 9.87390363906791 | erot = 15.4200471696184 | epot = -79.7505862792118 | etot = -54.4566354705255 +871000 ekin = 9.8523095259315 | erot = 15.0629113172219 | epot = -79.3718563129752 | etot = -54.4566354698218 +872000 ekin = 9.752187308027 | erot = 14.6325332986052 | epot = -78.841356074952 | etot = -54.4566354683198 +873000 ekin = 9.58749579142185 | erot = 14.1394452329319 | epot = -78.1835764904824 | etot = -54.4566354661287 +874000 ekin = 9.38014472395005 | erot = 13.5959424947095 | epot = -77.4327226821286 | etot = -54.4566354634691 +875000 ekin = 9.15807680471866 | erot = 13.014707802176 | epot = -76.6294200675408 | etot = -54.4566354606461 +876000 ekin = 8.95192933213213 | erot = 12.4076841945948 | epot = -75.816248984735 | etot = -54.4566354580081 +877000 ekin = 8.79071144345444 | erot = 11.7853760071662 | epot = -75.0327229065074 | etot = -54.4566354558868 +878000 ekin = 8.69731943591344 | erot = 11.1566317214223 | epot = -74.3105866118547 | etot = -54.456635454519 +879000 ekin = 8.68495451684523 | erot = 10.5288962872203 | epot = -73.6704862580452 | etot = -54.4566354539797 +880000 ekin = 8.75541640190843 | erot = 9.90888240825742 | epot = -73.1209342643213 | etot = -54.4566354541554 +881000 ekin = 8.8997445293349 | erot = 9.30353954409839 | epot = -72.6599195282146 | etot = -54.4566354547813 +882000 ekin = 9.10092859929824 | erot = 8.72108289024305 | epot = -72.2786469450737 | etot = -54.4566354555324 +883000 ekin = 9.33776725236621 | erot = 8.17174677407215 | epot = -71.9661494825623 | etot = -54.456635456124 +884000 ekin = 9.58873539183595 | erot = 7.66794414586939 | epot = -71.7133149940986 | etot = -54.4566354563932 +885000 ekin = 9.83498174992465 | erot = 7.22368667480856 | epot = -71.5153038810381 | etot = -54.4566354563048 +886000 ekin = 10.0620936934736 | erot = 6.85337791012132 | epot = -71.3721070595231 | etot = -54.4566354559282 +887000 ekin = 10.2607225025527 | erot = 6.57029245231516 | epot = -71.2876504102503 | etot = -54.4566354553824 +888000 ekin = 10.4263755446124 | erot = 6.38509300456668 | epot = -71.2681040039826 | etot = -54.4566354548035 +889000 ekin = 10.5586710814385 | erot = 6.30462943885317 | epot = -71.319935974615 | etot = -54.4566354543233 +890000 ekin = 10.6602540894462 | erot = 6.3311170754918 | epot = -71.4480066190011 | etot = -54.4566354540632 +891000 ekin = 10.7355099946819 | erot = 6.46170576302369 | epot = -71.6538512118289 | etot = -54.4566354541233 +892000 ekin = 10.7892241406154 | erot = 6.68844891426448 | epot = -71.9343085094461 | etot = -54.4566354545662 +893000 ekin = 10.8253819948177 | erot = 6.99871565289404 | epot = -72.280733103109 | etot = -54.4566354553972 +894000 ekin = 10.8463299662712 | erot = 7.37610035056202 | epot = -72.6790657733836 | etot = -54.4566354565504 +895000 ekin = 10.852475486525 | erot = 7.80183940289732 | epot = -73.1109503473091 | etot = -54.4566354578867 +896000 ekin = 10.8425858689659 | erot = 8.25664380954496 | epot = -73.5558651377289 | etot = -54.456635459218 +897000 ekin = 10.8145780999263 | erot = 8.72272211941494 | epot = -73.9939356796854 | etot = -54.4566354603442 +898000 ekin = 10.7665424605736 | erot = 9.18564804398081 | epot = -74.4088259656637 | etot = -54.4566354611092 +899000 ekin = 10.6976805034733 | erot = 9.63567769333504 | epot = -74.7899936582461 | etot = -54.4566354614378 +900000 ekin = 10.6088887087272 | erot = 10.0681851806236 | epot = -75.1337093507081 | etot = -54.4566354613573 +901000 ekin = 10.502853007353 | erot = 10.4830654351765 | epot = -75.4425539035197 | etot = -54.4566354609902 +902000 ekin = 10.3836771774535 | erot = 10.8832063665621 | epot = -75.7235190045351 | etot = -54.4566354605195 +903000 ekin = 10.2561979891383 | erot = 11.2723815658634 | epot = -75.9852150151384 | etot = -54.4566354601367 +904000 ekin = 10.1252127005282 | erot = 11.6530755864755 | epot = -76.2349237469979 | etot = -54.4566354599942 +905000 ekin = 9.99485047044705 | erot = 12.0247708238103 | epot = -76.4762567544226 | etot = -54.4566354601653 +906000 ekin = 9.86826182519167 | erot = 12.3830923597808 | epot = -76.7079896456003 | etot = -54.4566354606279 +907000 ekin = 9.74769326327752 | erot = 12.7199654418464 | epot = -76.9242941664046 | etot = -54.4566354612807 +908000 ekin = 9.63488321935044 | erot = 13.024659583975 | epot = -77.1161782653058 | etot = -54.4566354619803 +909000 ekin = 9.53160068472383 | erot = 13.2853599353513 | epot = -77.2735960826646 | etot = -54.4566354625895 +910000 ekin = 9.44009501998067 | erot = 13.4908067507586 | epot = -77.3875372337547 | etot = -54.4566354630154 +911000 ekin = 9.36326455556512 | erot = 13.6316252373525 | epot = -77.4515252561402 | etot = -54.4566354632226 +912000 ekin = 9.30446941107284 | erot = 13.7011923330111 | epot = -77.4622972073039 | etot = -54.45663546322 +913000 ekin = 9.26705259278318 | erot = 13.6961250397271 | epot = -77.419813095547 | etot = -54.4566354630367 +914000 ekin = 9.25372341949208 | erot = 13.6165806074811 | epot = -77.3269394896719 | etot = -54.4566354626987 +915000 ekin = 9.26596340708621 | erot = 13.4664769842073 | epot = -77.1890758535215 | etot = -54.4566354622281 +916000 ekin = 9.30355576102913 | erot = 13.2535559655594 | epot = -77.0137471882459 | etot = -54.4566354616573 +917000 ekin = 9.36426903858459 | erot = 12.9890809272589 | epot = -76.809985426892 | etot = -54.4566354610485 +918000 ekin = 9.44369101175022 | erot = 12.6869990269965 | epot = -76.587325499227 | etot = -54.4566354604803 +919000 ekin = 9.53522052882113 | erot = 12.3625891360067 | epot = -76.3544451248775 | etot = -54.4566354600497 +920000 ekin = 9.63025415658243 | erot = 12.0308380430302 | epot = -76.1177276594349 | etot = -54.4566354598223 +921000 ekin = 9.71861106511874 | erot = 11.7049052779173 | epot = -75.8801518028705 | etot = -54.4566354598345 +922000 ekin = 9.78920770644036 | erot = 11.3950002816103 | epot = -75.6408434481097 | etot = -54.4566354600591 +923000 ekin = 9.83093885317139 | erot = 11.1078500466024 | epot = -75.3954243602039 | etot = -54.4566354604301 +924000 ekin = 9.83367208378622 | erot = 10.8467682564577 | epot = -75.1370758010956 | etot = -54.4566354608517 +925000 ekin = 9.78923699199639 | erot = 10.6122146417245 | epot = -74.8580870949345 | etot = -54.4566354612136 +926000 ekin = 9.69228799630493 | erot = 10.4026778523962 | epot = -74.5516013101181 | etot = -54.456635461417 +927000 ekin = 9.54094420680802 | erot = 10.2157130838007 | epot = -74.2132927519865 | etot = -54.4566354613778 +928000 ekin = 9.3371459859503 | erot = 10.0489976142885 | epot = -73.8427790612753 | etot = -54.4566354610365 +929000 ekin = 9.08668869599518 | erot = 9.90129105968912 | epot = -73.4446152160518 | etot = -54.4566354603675 +930000 ekin = 8.79893949160058 | erot = 9.77317491044661 | epot = -73.0287498614319 | etot = -54.4566354593847 +931000 ekin = 8.48625276384768 | erot = 9.66741161204924 | epot = -72.6102998340512 | etot = -54.4566354581543 +932000 ekin = 8.16311074513819 | erot = 9.58874585509042 | epot = -72.2084920570281 | etot = -54.4566354567995 +933000 ekin = 7.84503269780539 | erot = 9.54303556689035 | epot = -71.8447037201951 | etot = -54.4566354554993 +934000 ekin = 7.54732721404963 | erot = 9.53576382282306 | epot = -71.5397264913334 | etot = -54.4566354544607 +935000 ekin = 7.28379852832834 | erot = 9.57018935591102 | epot = -71.3106233381242 | etot = -54.4566354538848 +936000 ekin = 7.06554340229853 | erot = 9.64555160732505 | epot = -71.167730463548 | etot = -54.4566354539244 +937000 ekin = 6.89998137838447 | erot = 9.75579580002511 | epot = -71.112412633057 | etot = -54.4566354546474 +938000 ekin = 6.79024863688773 | erot = 9.88921936738739 | epot = -71.1361034602903 | etot = -54.4566354560152 +939000 ekin = 6.73505698751703 | erot = 10.0294464266678 | epot = -71.2211388720031 | etot = -54.4566354578183 +940000 ekin = 6.72907691272921 | erot = 10.1573224430157 | epot = -71.3430348156531 | etot = -54.4566354599082 +941000 ekin = 6.7638392322072 | erot = 10.2535241006084 | epot = -71.473998794711 | etot = -54.4566354618954 +942000 ekin = 6.82912409655559 | erot = 10.3022923171274 | epot = -71.5880518771063 | etot = -54.4566354634233 +943000 ekin = 6.91476596974007 | erot = 10.2946315405203 | epot = -71.6660329744438 | etot = -54.4566354641834 +944000 ekin = 7.01269053560795 | erot = 10.2304790515295 | epot = -71.6998050511278 | etot = -54.4566354639903 +945000 ekin = 7.11873167357596 | erot = 10.1191217606592 | epot = -71.6944888971226 | etot = -54.4566354628875 +946000 ekin = 7.23341535201951 | erot = 9.97742521428816 | epot = -71.6674760275169 | etot = -54.4566354612092 +947000 ekin = 7.36083754475568 | erot = 9.82603454656194 | epot = -71.6435075508528 | etot = -54.4566354595352 +948000 ekin = 7.50549771867048 | erot = 9.68450715332286 | epot = -71.646640330475 | etot = -54.4566354584817 +949000 ekin = 7.66836590288662 | erot = 9.56693750756918 | epot = -71.6919388688627 | etot = -54.4566354584069 +950000 ekin = 7.8444636655597 | erot = 9.47955332201817 | epot = -71.7806524468177 | etot = -54.4566354592398 +951000 ekin = 8.02362258957402 | erot = 9.42089965829233 | epot = -71.9011577084041 | etot = -54.4566354605377 +952000 ekin = 8.19401979343905 | erot = 9.38404388099782 | epot = -72.0346991362141 | etot = -54.4566354617773 +953000 ekin = 8.34627037919898 | erot = 9.35945524415897 | epot = -72.1623610859837 | etot = -54.4566354626257 +954000 ekin = 8.47579105972131 | erot = 9.3373146667663 | epot = -72.2697411895169 | etot = -54.4566354630293 +955000 ekin = 8.58263553139959 | erot = 9.308823031816 | epot = -72.3480940263229 | etot = -54.4566354631073 +956000 ekin = 8.66958271584179 | erot = 9.26689225473929 | epot = -72.393110433665 | etot = -54.4566354630839 +957000 ekin = 8.73983792556415 | erot = 9.20645883858331 | epot = -72.402932227037 | etot = -54.4566354628896 +958000 ekin = 8.79532848877231 | erot = 9.12577516410996 | epot = -72.3777391154678 | etot = -54.4566354625855 +959000 ekin = 8.83590266111342 | erot = 9.02777800336421 | epot = -72.3203161266023 | etot = -54.4566354621246 +960000 ekin = 8.85930075562178 | erot = 8.92058787880297 | epot = -72.2365240958907 | etot = -54.456635461466 +961000 ekin = 8.86161651519074 | erot = 8.8176620297481 | epot = -72.1359140055372 | etot = -54.4566354605984 +962000 ekin = 8.83799666717614 | erot = 8.73718807970271 | epot = -72.0318202064324 | etot = -54.4566354595536 +963000 ekin = 8.7834038645067 | erot = 8.70071313770526 | epot = -71.9407524606206 | etot = -54.4566354584087 +964000 ekin = 8.6933315650967 | erot = 8.73109905622396 | epot = -71.8810660786001 | etot = -54.4566354572794 +965000 ekin = 8.56440365903402 | erot = 8.84996493880067 | epot = -71.8710040541396 | etot = -54.4566354563049 +966000 ekin = 8.39482523796214 | erot = 9.07485296714587 | epot = -71.9263136607553 | etot = -54.4566354556473 +967000 ekin = 8.18467818887415 | erot = 9.41644113229026 | epot = -72.0577547766049 | etot = -54.4566354554405 +968000 ekin = 7.93626974430701 | erot = 9.8761337464021 | epot = -72.2690389465259 | etot = -54.4566354558168 +969000 ekin = 7.65431026894464 | erot = 10.4442911838587 | epot = -72.5552369095504 | etot = -54.4566354567471 +970000 ekin = 7.34450165167553 | erot = 11.1010614724236 | epot = -72.9021985821619 | etot = -54.4566354580628 +971000 ekin = 7.01497831136109 | erot = 11.8180138555475 | epot = -73.2896276264753 | etot = -54.4566354595667 +972000 ekin = 6.67661988307432 | erot = 12.561002201264 | epot = -73.6942575453412 | etot = -54.4566354610029 +973000 ekin = 6.34325563533771 | erot = 13.2935365140162 | epot = -74.093427611541 | etot = -54.4566354621871 +974000 ekin = 6.03126679101612 | erot = 13.9800756161257 | epot = -74.467977870057 | etot = -54.4566354629151 +975000 ekin = 5.75832704440613 | erot = 14.5910245181588 | epot = -74.8059870256856 | etot = -54.4566354631207 +976000 ekin = 5.54248690291485 | erot = 15.1042545810727 | epot = -75.103376946877 | etot = -54.4566354628895 +977000 ekin = 5.4003503184872 | erot = 15.5056612502236 | epot = -75.3626470311159 | etot = -54.4566354624051 +978000 ekin = 5.34501003153766 | erot = 15.7884985247711 | epot = -75.5901440181963 | etot = -54.4566354618875 +979000 ekin = 5.38417633217786 | erot = 15.9518932070818 | epot = -75.7927050007967 | etot = -54.456635461537 +980000 ekin = 5.51889158471155 | erot = 15.999058478668 | epot = -75.9745855248649 | etot = -54.4566354614853 +981000 ekin = 5.74308889432032 | erot = 15.9356762595534 | epot = -76.1354006156442 | etot = -54.4566354617704 +982000 ekin = 6.04407260764492 | erot = 15.7687916692872 | epot = -76.2694997392642 | etot = -54.456635462332 +983000 ekin = 6.4038298993232 | erot = 15.5063975907864 | epot = -76.3668629531362 | etot = -54.4566354630267 +984000 ekin = 6.80095841871057 | erot = 15.1576983609449 | epot = -76.4152922433134 | etot = -54.456635463658 +985000 ekin = 7.21291844142515 | erot = 14.7338425283028 | epot = -76.4033964337531 | etot = -54.4566354640251 +986000 ekin = 7.61828265636069 | erot = 14.2487453064303 | epot = -76.3236634267622 | etot = -54.4566354639712 +987000 ekin = 7.99866441020991 | erot = 13.7195510825214 | epot = -76.17485095616 | etot = -54.4566354634287 +988000 ekin = 8.34006634563207 | erot = 13.1663738041721 | epot = -75.9630756122385 | etot = -54.4566354624343 +989000 ekin = 8.63350862200756 | erot = 12.6111857672338 | epot = -75.7013298503602 | etot = -54.4566354611189 +990000 ekin = 8.87494555503115 | erot = 12.0760163566083 | epot = -75.4075973713094 | etot = -54.45663545967 +991000 ekin = 9.06461955877742 | erot = 11.5808385824354 | epot = -75.1020935994994 | etot = -54.4566354582866 +992000 ekin = 9.20608865934225 | erot = 11.1415830196626 | epot = -74.8043071361417 | etot = -54.4566354571369 +993000 ekin = 9.3051781291951 | erot = 10.7686313368412 | epot = -74.5304449223712 | etot = -54.4566354563349 +994000 ekin = 9.36905574676181 | erot = 10.4659766382208 | epot = -74.2916678409143 | etot = -54.4566354559316 +995000 ekin = 9.4055413677824 | erot = 10.2310751484372 | epot = -74.0932519721414 | etot = -54.4566354559218 +996000 ekin = 9.42266810575618 | erot = 10.055304234773 | epot = -73.934607796785 | etot = -54.4566354562558 +997000 ekin = 9.42843932276535 | erot = 9.92490942423686 | epot = -73.8099842038573 | etot = -54.4566354568551 +998000 ekin = 9.43069348804015 | erot = 9.82234985059454 | epot = -73.7096787962489 | etot = -54.4566354576142 +999000 ekin = 9.43700002885815 | erot = 9.72798019148381 | epot = -73.6216156787693 | etot = -54.4566354584274 +1000000 ekin = 9.45454475437508 | erot = 9.62197027192603 | epot = -73.5331504854538 | etot = -54.4566354591527 + 1000000 352.42265 -75.546285 2.0131342 -64.078606 -0.0098335381 39304000 +Loop time of 9.84056 on 1 procs for 1000000 steps with 10 atoms + +Performance: 149.787 ns/day, 0.160 hours/ns, 101620.202 timesteps/s, 1.016 Matom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 7.6388 | 7.6388 | 7.6388 | 0.0 | 77.63 +Bond | 0.4116 | 0.4116 | 0.4116 | 0.0 | 4.18 +Neigh | 0.012626 | 0.012626 | 0.012626 | 0.0 | 0.13 +Comm | 0.25713 | 0.25713 | 0.25713 | 0.0 | 2.61 +Output | 0.11932 | 0.11932 | 0.11932 | 0.0 | 1.21 +Modify | 1.1253 | 1.1253 | 1.1253 | 0.0 | 11.44 +Other | | 0.2758 | | | 2.80 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:09 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..d9917b5143 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/log.19May24.duplex1.g++.4 @@ -0,0 +1,1113 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxdna.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxdna.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 25.179212 + ghost atom cutoff = 32.4 + binsize = 12.589606, bins = 28 28 28 + 4 neighbor lists, perpetual/occasional/extra = 4 0 0 + (1) pair oxdna/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8452930576479 | etot = -54.4566354061168 +Per MPI rank memory allocation (min/avg/max) = 7.105 | 7.11 | 7.116 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.414328 2.5690347 -71.23842 -0.031164648 39304000 +1000 ekin = 6.43820748574481 | erot = 17.3362209220524 | epot = -78.2310638156467 | etot = -54.4566354078494 +2000 ekin = 6.25962687713457 | erot = 17.7614973153004 | epot = -78.4777596014537 | etot = -54.4566354090187 +3000 ekin = 6.07700448778499 | erot = 18.0349390575317 | epot = -78.5685789546716 | etot = -54.4566354093549 +4000 ekin = 5.89744243690135 | erot = 18.1444655563223 | epot = -78.4985434019984 | etot = -54.4566354087747 +5000 ekin = 5.72921495795417 | erot = 18.089813534545 | epot = -78.2756638998997 | etot = -54.4566354074005 +6000 ekin = 5.58102962967702 | erot = 17.8818907378652 | epot = -77.9195557730909 | etot = -54.4566354055487 +7000 ekin = 5.46083564262917 | erot = 17.5394365844243 | epot = -77.4569076305326 | etot = -54.4566354034791 +8000 ekin = 5.37466374419897 | erot = 17.0860544650632 | epot = -76.9173536106637 | etot = -54.4566354014016 +9000 ekin = 5.32595754281565 | erot = 16.5482852541265 | epot = -76.3308781963651 | etot = -54.456635399423 +10000 ekin = 5.31554676342212 | erot = 15.9544138469034 | epot = -75.726596007792 | etot = -54.4566353974665 +11000 ekin = 5.34211698054861 | erot = 15.3332614944564 | epot = -75.1320138708453 | etot = -54.4566353958403 +12000 ekin = 5.40287038471206 | erot = 14.7110834230834 | epot = -74.5705892022623 | etot = -54.4566353944669 +13000 ekin = 5.49411526233303 | erot = 14.1110915850697 | epot = -74.061842240842 | etot = -54.4566353934393 +14000 ekin = 5.61166305682739 | erot = 13.5517399019597 | epot = -73.620038351625 | etot = -54.4566353928379 +15000 ekin = 5.75104953856992 | erot = 13.0453199784602 | epot = -73.2530049096301 | etot = -54.4566353926 +16000 ekin = 5.90767197595969 | erot = 12.5986167018217 | epot = -72.9629240705716 | etot = -54.4566353927902 +17000 ekin = 6.07693584949018 | erot = 12.2121424091129 | epot = -72.7457136520755 | etot = -54.4566353934724 +18000 ekin = 6.25447802454953 | erot = 11.8809715590397 | epot = -72.5920849774633 | etot = -54.456635393874 +19000 ekin = 6.43644156574403 | erot = 11.5970868983705 | epot = -72.4901638588708 | etot = -54.4566353947562 +20000 ekin = 6.61975078718435 | erot = 11.3493268347886 | epot = -72.4257130174612 | etot = -54.4566353954882 +21000 ekin = 6.80231654537102 | erot = 11.1279852357804 | epot = -72.3869371771082 | etot = -54.4566353959567 +22000 ekin = 6.98310666039517 | erot = 10.9264899080746 | epot = -72.3662319645786 | etot = -54.4566353961088 +23000 ekin = 7.16204136914452 | erot = 10.7423471683523 | epot = -72.3610239334526 | etot = -54.4566353959558 +24000 ekin = 7.33971202276069 | erot = 10.5772893708791 | epot = -72.3736367892021 | etot = -54.4566353955622 +25000 ekin = 7.51694389098104 | erot = 10.4366021288186 | epot = -72.4101814148953 | etot = -54.4566353950956 +26000 ekin = 7.69428547961043 | erot = 10.3277743414165 | epot = -72.4786952155958 | etot = -54.4566353945689 +27000 ekin = 7.87150355456855 | erot = 10.2597385959262 | epot = -72.5878775446629 | etot = -54.4566353941681 +28000 ekin = 8.04704621231831 | erot = 10.2410408314319 | epot = -72.7447224377784 | etot = -54.4566353940281 +29000 ekin = 8.21759311371884 | erot = 10.2782069424416 | epot = -72.9524354504283 | etot = -54.4566353942678 +30000 ekin = 8.37773815926537 | erot = 10.3742402092557 | epot = -73.2086137634978 | etot = -54.4566353949767 +31000 ekin = 8.51990636063666 | erot = 10.5273635253436 | epot = -73.5039052821701 | etot = -54.4566353961898 +32000 ekin = 8.63465075758022 | erot = 10.7302372452282 | epot = -73.8215234006611 | etot = -54.4566353978527 +33000 ekin = 8.71148242170772 | erot = 10.9699568578571 | epot = -74.138074679361 | etot = -54.4566353997962 +34000 ekin = 8.74030401673744 | erot = 11.2291118958909 | epot = -74.4260513143626 | etot = -54.4566354017342 +35000 ekin = 8.71331738120349 | erot = 11.4879439611377 | epot = -74.6578967456826 | etot = -54.4566354033414 +36000 ekin = 8.6270076806576 | erot = 11.7272655611852 | epot = -74.8109086460857 | etot = -54.4566354042429 +37000 ekin = 8.48360459165283 | erot = 11.9311379268702 | epot = -74.871377923066 | etot = -54.456635404543 +38000 ekin = 8.29146113848127 | erot = 12.0877506878437 | epot = -74.8358472300847 | etot = -54.4566354037597 +39000 ekin = 8.06413250091585 | erot = 12.193934384732 | epot = -74.7147022878405 | etot = -54.4566354021927 +40000 ekin = 7.81835387769415 | erot = 12.2536662217397 | epot = -74.5286554998775 | etot = -54.4566354004436 +41000 ekin = 7.57154460494732 | erot = 12.2737017000968 | epot = -74.3018817037919 | etot = -54.4566353987478 +42000 ekin = 7.33953370634753 | erot = 12.2616149193731 | epot = -74.0577840229946 | etot = -54.4566353972739 +43000 ekin = 7.13480148719676 | erot = 12.2251511246247 | epot = -73.8165880080337 | etot = -54.4566353962123 +44000 ekin = 6.96550034046782 | erot = 12.1705709864272 | epot = -73.5927067224907 | etot = -54.4566353955957 +45000 ekin = 6.83524619732735 | erot = 12.1023709627633 | epot = -73.3942525554547 | etot = -54.456635395364 +46000 ekin = 6.74354326448681 | erot = 12.0237258448786 | epot = -73.2239045047614 | etot = -54.456635395396 +47000 ekin = 6.68665553239108 | erot = 11.9373578617843 | epot = -73.0806487897224 | etot = -54.456635395547 +48000 ekin = 6.65871606123777 | erot = 11.8463393902399 | epot = -72.9616908473445 | etot = -54.4566353958669 +49000 ekin = 6.65288529209096 | erot = 11.753790570883 | epot = -72.8633112588596 | etot = -54.4566353958856 +50000 ekin = 6.66236602673595 | erot = 11.6656457317317 | epot = -72.7846471541945 | etot = -54.4566353957269 +51000 ekin = 6.6811133846848 | erot = 11.5899588724781 | epot = -72.7277076525686 | etot = -54.4566353954056 +52000 ekin = 6.70418283073775 | erot = 11.5360342718575 | epot = -72.6968524975888 | etot = -54.4566353949935 +53000 ekin = 6.72772596002251 | erot = 11.5133896479184 | epot = -72.6977510025402 | etot = -54.4566353945994 +54000 ekin = 6.74871529529539 | erot = 11.530730873965 | epot = -72.7360815636084 | etot = -54.456635394348 +55000 ekin = 6.76452000506643 | erot = 11.5943437358558 | epot = -72.8154991352808 | etot = -54.4566353943586 +56000 ekin = 6.77244089755618 | erot = 11.7063368897017 | epot = -72.9354131819756 | etot = -54.4566353947177 +57000 ekin = 6.76933125219097 | erot = 11.8641785052097 | epot = -73.0901451528751 | etot = -54.4566353954744 +58000 ekin = 6.75138787630819 | erot = 12.0602581117039 | epot = -73.2682813846355 | etot = -54.4566353966234 +59000 ekin = 6.71417211137197 | erot = 12.2820346405445 | epot = -73.4528421500115 | etot = -54.4566353980951 +60000 ekin = 6.65291138938061 | erot = 12.5128606065817 | epot = -73.6224073957175 | etot = -54.4566353997552 +61000 ekin = 6.56310936736069 | erot = 12.7334757971155 | epot = -73.7532205658834 | etot = -54.4566354014071 +62000 ekin = 6.44146738962339 | erot = 12.924115378406 | epot = -73.8222181708354 | etot = -54.456635402806 +63000 ekin = 6.28706349170159 | erot = 13.0670025811126 | epot = -73.8107014767365 | etot = -54.4566354039223 +64000 ekin = 6.10266894648004 | erot = 13.1477550766289 | epot = -73.707059427161 | etot = -54.4566354040521 +65000 ekin = 5.89591961177657 | erot = 13.159243189225 | epot = -73.5117982043025 | etot = -54.4566354033009 +66000 ekin = 5.67987986272372 | erot = 13.1031941166757 | epot = -73.2397093810282 | etot = -54.4566354016288 +67000 ekin = 5.47247153600082 | erot = 12.9892792342589 | epot = -72.9183861696817 | etot = -54.456635399422 +68000 ekin = 5.29472138366983 | erot = 12.8325717552517 | epot = -72.5839285358207 | etot = -54.4566353968992 +69000 ekin = 5.16838664772562 | erot = 12.6515520795182 | epot = -72.2765741217841 | etot = -54.4566353945403 +70000 ekin = 5.11229587755497 | erot = 12.4645483617666 | epot = -72.0334796321513 | etot = -54.4566353928297 +71000 ekin = 5.13861822273141 | erot = 12.286155039687 | epot = -71.8814086546595 | etot = -54.456635392241 +72000 ekin = 5.24919776269878 | erot = 12.1240996084996 | epot = -71.8299327640232 | etot = -54.4566353928249 +73000 ekin = 5.43492595011674 | erot = 11.9780482590885 | epot = -71.8696096036112 | etot = -54.4566353944059 +74000 ekin = 5.67784516722565 | erot = 11.8411405072579 | epot = -71.9756210710773 | etot = -54.4566353965938 +75000 ekin = 5.95413179780636 | erot = 11.7025554045176 | epot = -72.113322601217 | etot = -54.456635398893 +76000 ekin = 6.23821902238342 | erot = 11.550835238764 | epot = -72.2456896619923 | etot = -54.4566354008449 +77000 ekin = 6.50672473640307 | erot = 11.376950900624 | epot = -72.3403110391609 | etot = -54.4566354021339 +78000 ekin = 6.74134494190868 | erot = 11.176319005782 | epot = -72.3742993503304 | etot = -54.4566354026398 +79000 ekin = 6.93029998725172 | erot = 10.9493831098239 | epot = -72.3363184995026 | etot = -54.456635402427 +80000 ekin = 7.06837455802717 | erot = 10.7008607206271 | epot = -72.2258706803366 | etot = -54.4566354016823 +81000 ekin = 7.1559261286265 | erot = 10.4381578436606 | epot = -72.0507193729194 | etot = -54.4566354006323 +82000 ekin = 7.19737523755975 | erot = 10.169620475243 | epot = -71.8236311122788 | etot = -54.4566353994761 +83000 ekin = 7.19964138072444 | erot = 9.90319185133819 | epot = -71.5594686304058 | etot = -54.4566353983432 +84000 ekin = 7.17082378076146 | erot = 9.64576283606872 | epot = -71.2732220141215 | etot = -54.4566353972913 +85000 ekin = 7.11924100547725 | erot = 9.40319183443934 | epot = -70.9790682362418 | etot = -54.4566353963252 +86000 ekin = 7.05280646949722 | erot = 9.18075710620435 | epot = -70.69019897113 | etot = -54.4566353954284 +87000 ekin = 6.97865213852087 | erot = 8.98373783121296 | epot = -70.4190253643134 | etot = -54.4566353945796 +88000 ekin = 6.90290745250038 | erot = 8.81787505324958 | epot = -70.1774178995224 | etot = -54.4566353937725 +89000 ekin = 6.8305664368472 | erot = 8.68957621789595 | epot = -69.9767780477601 | etot = -54.4566353930169 +90000 ekin = 6.76540803039386 | erot = 8.60583660610408 | epot = -69.8278800288341 | etot = -54.4566353923362 +91000 ekin = 6.70995822419679 | erot = 8.57392290473218 | epot = -69.7405165206908 | etot = -54.4566353917618 +92000 ekin = 6.6654938760643 | erot = 8.6008929317492 | epot = -69.7230221991413 | etot = -54.4566353913278 +93000 ekin = 6.6320939224086 | erot = 8.69302362042084 | epot = -69.7817529338974 | etot = -54.456635391068 +94000 ekin = 6.60873879578613 | erot = 8.85520324232627 | epot = -69.9205774291246 | etot = -54.4566353910122 +95000 ekin = 6.59345542312922 | erot = 9.08998001250007 | epot = -70.1400708268598 | etot = -54.4566353912305 +96000 ekin = 6.5834981640273 | erot = 9.39670336713002 | epot = -70.4368369228347 | etot = -54.4566353916773 +97000 ekin = 6.57557086190908 | erot = 9.77232035429913 | epot = -70.804526608599 | etot = -54.4566353923908 +98000 ekin = 6.56607746070764 | erot = 10.2103280886849 | epot = -71.2330409427607 | etot = -54.4566353933681 +99000 ekin = 6.55139785883052 | erot = 10.7005188751583 | epot = -71.7085521285791 | etot = -54.4566353945903 +100000 ekin = 6.5281974472124 | erot = 11.2290265012449 | epot = -72.2138593444665 | etot = -54.4566353960093 +101000 ekin = 6.49377694354365 | erot = 11.7787444180737 | epot = -72.7291567591601 | etot = -54.4566353975427 +102000 ekin = 6.44645975182853 | erot = 12.3302092947493 | epot = -73.2333044456477 | etot = -54.4566353990699 +103000 ekin = 6.38599188040413 | erot = 12.8629861678438 | epot = -73.7056134486895 | etot = -54.4566354004416 +104000 ekin = 6.31389917689136 | erot = 13.3574827218768 | epot = -74.1280173002666 | etot = -54.4566354014985 +105000 ekin = 6.23372050746358 | erot = 13.796936503081 | epot = -74.487292412784 | etot = -54.4566354022394 +106000 ekin = 6.15161195850888 | erot = 14.1683082609525 | epot = -74.7765556218311 | etot = -54.4566354023697 +107000 ekin = 6.07599644252632 | erot = 14.4651582362854 | epot = -74.997790080969 | etot = -54.4566354021573 +108000 ekin = 6.01224980359702 | erot = 14.6879762973655 | epot = -75.1568615023399 | etot = -54.4566354013773 +109000 ekin = 5.96718055298296 | erot = 14.843530208706 | epot = -75.2673461618521 | etot = -54.4566354001632 +110000 ekin = 5.94906585806687 | erot = 14.943394624523 | epot = -75.3490958813013 | etot = -54.4566353987115 +111000 ekin = 5.96692254396536 | erot = 15.0017732632805 | epot = -75.4253312044823 | etot = -54.4566353972364 +112000 ekin = 6.02963894580617 | erot = 15.0332002745141 | epot = -75.5194746162447 | etot = -54.4566353959245 +113000 ekin = 6.14472749189804 | erot = 15.0506190089294 | epot = -75.6519818961805 | etot = -54.456635395353 +114000 ekin = 6.31294119125814 | erot = 15.0641400294533 | epot = -75.8337166157251 | etot = -54.4566353950137 +115000 ekin = 6.53170723497647 | erot = 15.0810976270009 | epot = -76.0694402570546 | etot = -54.4566353950772 +116000 ekin = 6.79565473868305 | erot = 15.1058873747017 | epot = -76.3581775089261 | etot = -54.4566353955414 +117000 ekin = 7.09589353296846 | erot = 15.1399747310391 | epot = -76.6925036604087 | etot = -54.4566353964011 +118000 ekin = 7.42010913176748 | erot = 15.1818878453232 | epot = -77.0586323747352 | etot = -54.4566353976445 +119000 ekin = 7.75291308545818 | erot = 15.2271156041078 | epot = -77.4366640887991 | etot = -54.4566353992331 +120000 ekin = 8.07655694001048 | erot = 15.2680755527854 | epot = -77.8012678938729 | etot = -54.456635401077 +121000 ekin = 8.3720928345245 | erot = 15.2944252034459 | epot = -78.1231534409883 | etot = -54.4566354030179 +122000 ekin = 8.62097203571297 | erot = 15.2939565964165 | epot = -78.3715640369595 | etot = -54.4566354048301 +123000 ekin = 8.80691805373792 | erot = 15.2541302313797 | epot = -78.5176836913799 | etot = -54.4566354062623 +124000 ekin = 8.91774775140796 | erot = 15.1640393169118 | epot = -78.5384224754126 | etot = -54.4566354070929 +125000 ekin = 8.94673865107553 | erot = 15.0163758445778 | epot = -78.4197499028398 | etot = -54.4566354071866 +126000 ekin = 8.89353504113502 | erot = 14.8103810343866 | epot = -78.1605514820973 | etot = -54.4566354065757 +127000 ekin = 8.76295715660881 | erot = 14.5505246086881 | epot = -77.7701171706755 | etot = -54.4566354053786 +128000 ekin = 8.56412338279188 | erot = 14.2447148868095 | epot = -77.2654736732318 | etot = -54.4566354036303 +129000 ekin = 8.30999977775227 | erot = 13.9056008475451 | epot = -76.6722360268316 | etot = -54.4566354015342 +130000 ekin = 8.01598983357864 | erot = 13.5489784634651 | epot = -76.0216036963415 | etot = -54.4566353992978 +131000 ekin = 7.69860752663272 | erot = 13.1919736282187 | epot = -75.3472165519605 | etot = -54.4566353971091 +132000 ekin = 7.37433696937962 | erot = 12.851299020498 | epot = -74.6822713849979 | etot = -54.4566353951203 +133000 ekin = 7.05872362614942 | erot = 12.5417941515438 | epot = -74.0571531711352 | etot = -54.4566353934419 +134000 ekin = 6.76570888199004 | erot = 12.2753542959287 | epot = -73.4976985700589 | etot = -54.4566353921402 +135000 ekin = 6.50719363731323 | erot = 12.0602549647537 | epot = -73.0240839933238 | etot = -54.4566353912568 +136000 ekin = 6.29279008475048 | erot = 11.9007669358439 | epot = -72.6501924113933 | etot = -54.456635390799 +137000 ekin = 6.12970978276592 | erot = 11.7970576302993 | epot = -72.3834028038277 | etot = -54.4566353907625 +138000 ekin = 6.02274351233308 | erot = 11.7455123962492 | epot = -72.2248912997151 | etot = -54.4566353911327 +139000 ekin = 5.97430404723539 | erot = 11.7390412107208 | epot = -72.169980649849 | etot = -54.4566353918928 +140000 ekin = 5.98449840319435 | erot = 11.766192115145 | epot = -72.2073259113389 | etot = -54.4566353929996 +141000 ekin = 6.05122402382894 | erot = 11.8123445028313 | epot = -72.3202039210585 | etot = -54.4566353943982 +142000 ekin = 6.17031735772885 | erot = 11.8604415111205 | epot = -72.4873942648603 | etot = -54.456635396011 +143000 ekin = 6.33577810129594 | erot = 11.8919671618443 | epot = -72.6843806606496 | etot = -54.4566353975093 +144000 ekin = 6.54009118321911 | erot = 11.8891339130619 | epot = -72.8858604955051 | etot = -54.4566353992241 +145000 ekin = 6.77465866642021 | erot = 11.8352952468168 | epot = -73.0665893139978 | etot = -54.4566354007608 +146000 ekin = 7.03032727827779 | erot = 11.7160091899335 | epot = -73.2029718703312 | etot = -54.4566354021199 +147000 ekin = 7.29660189209746 | erot = 11.5221059419082 | epot = -73.2753432368922 | etot = -54.4566354028866 +148000 ekin = 7.56407690493411 | erot = 11.2503448019254 | epot = -73.271057109966 | etot = -54.4566354031065 +149000 ekin = 7.82544292003312 | erot = 10.9039979828626 | epot = -73.1860763056627 | etot = -54.456635402767 +150000 ekin = 8.07517324147515 | erot = 10.4929858681088 | epot = -73.0247945114901 | etot = -54.4566354019061 +151000 ekin = 8.30975251519315 | erot = 10.0330103746804 | epot = -72.7993982905134 | etot = -54.4566354006398 +152000 ekin = 8.52766332329339 | erot = 9.54393934172104 | epot = -72.5282380641334 | etot = -54.456635399119 +153000 ekin = 8.72913641124975 | erot = 9.04783809539102 | epot = -72.2336099041502 | etot = -54.4566353975094 +154000 ekin = 8.91570927169019 | erot = 8.56693447900203 | epot = -71.9392791466633 | etot = -54.4566353959711 +155000 ekin = 9.08966068414541 | erot = 8.1217860763806 | epot = -71.668082155165 | etot = -54.456635394639 +156000 ekin = 9.25339893961263 | erot = 7.72982624258207 | epot = -71.4398605758096 | etot = -54.4566353936149 +157000 ekin = 9.40888952795367 | erot = 7.4043648312674 | epot = -71.2698897521792 | etot = -54.4566353929582 +158000 ekin = 9.55717923885758 | erot = 7.15403664791629 | epot = -71.1678512794919 | etot = -54.456635392718 +159000 ekin = 9.69792111012121 | erot = 6.98265633604506 | epot = -71.1372128390497 | etot = -54.4566353928835 +160000 ekin = 9.82919776336712 | erot = 6.88943769583961 | epot = -71.1752708526339 | etot = -54.4566353934271 +161000 ekin = 9.94745815557405 | erot = 6.86952397448919 | epot = -71.273617524353 | etot = -54.4566353942898 +162000 ekin = 10.0476105552149 | erot = 6.91481023380469 | epot = -71.419056184406 | etot = -54.4566353953863 +163000 ekin = 10.1232836123725 | erot = 7.01503930069418 | epot = -71.5949583096716 | etot = -54.4566353966049 +164000 ekin = 10.1672576282714 | erot = 7.15913239145027 | epot = -71.7830254175348 | etot = -54.4566353978131 +165000 ekin = 10.1720616886925 | erot = 7.33667115267616 | epot = -71.9653682402332 | etot = -54.4566353988645 +166000 ekin = 10.1307181898823 | erot = 7.53939136045619 | epot = -72.1267449499579 | etot = -54.4566353996194 +167000 ekin = 10.037590674084 | erot = 7.76248640952783 | epot = -72.2567124835707 | etot = -54.4566353999589 +168000 ekin = 9.88925393886035 | erot = 8.00550722627906 | epot = -72.3513965649497 | etot = -54.4566353998102 +169000 ekin = 9.68526445660093 | erot = 8.27264999921073 | epot = -72.4145498549769 | etot = -54.4566353991653 +170000 ekin = 9.42867794112066 | erot = 8.57229328100171 | epot = -72.457606620215 | etot = -54.4566353980927 +171000 ekin = 9.1261691081717 | erot = 8.91577619747958 | epot = -72.4985807023853 | etot = -54.456635396734 +172000 ekin = 8.78767440912551 | erot = 9.3155762089852 | epot = -72.5598860133929 | etot = -54.4566353952822 +173000 ekin = 8.43089026296227 | erot = 9.784044663189 | epot = -72.6715703175853 | etot = -54.456635391434 +174000 ekin = 8.08808636306041 | erot = 10.3303519242776 | epot = -72.8750736787362 | etot = -54.4566353913982 +175000 ekin = 7.76683289792949 | erot = 10.9528766887188 | epot = -73.176344978273 | etot = -54.4566353916247 +176000 ekin = 7.47165533674071 | erot = 11.6455953906595 | epot = -73.5738861195204 | etot = -54.4566353921202 +177000 ekin = 7.20644207982307 | erot = 12.3989755240444 | epot = -74.0620529967119 | etot = -54.4566353928445 +178000 ekin = 6.97426478507405 | erot = 13.2002588275732 | epot = -74.6311590065916 | etot = -54.4566353939443 +179000 ekin = 6.77739061781677 | erot = 14.034248956951 | epot = -75.2682749696775 | etot = -54.4566353949098 +180000 ekin = 6.61743414637963 | erot = 14.8862774181183 | epot = -75.9603469603592 | etot = -54.4566353958613 +181000 ekin = 6.49561144162575 | erot = 15.7407037445534 | epot = -76.6929505832078 | etot = -54.4566353970286 +182000 ekin = 6.41305807096253 | erot = 16.5823414720865 | epot = -77.452034940881 | etot = -54.456635397832 +183000 ekin = 6.37104675400798 | erot = 17.3988622631897 | epot = -78.2265444156999 | etot = -54.4566353985022 +184000 ekin = 6.37106698283396 | erot = 18.1794275278836 | epot = -79.0071299097841 | etot = -54.4566353990665 +185000 ekin = 6.41462378113729 | erot = 18.9143606927311 | epot = -79.7856198734746 | etot = -54.4566353996061 +186000 ekin = 6.50261133383612 | erot = 19.5944597960639 | epot = -80.553706530162 | etot = -54.456635400262 +187000 ekin = 6.63422049770768 | erot = 20.2099561332651 | epot = -81.3008120321887 | etot = -54.456635401216 +188000 ekin = 6.80553106495658 | erot = 20.7492823612688 | epot = -82.011448828868 | etot = -54.4566354026426 +189000 ekin = 7.00817768192241 | erot = 21.1980708186833 | epot = -82.6628839052214 | etot = -54.4566354046157 +190000 ekin = 7.22864796075561 | erot = 21.5390297894763 | epot = -83.2243131572599 | etot = -54.456635407028 +191000 ekin = 7.4476762261859 | erot = 21.7493732842279 | epot = -83.6536849211055 | etot = -54.4566354106917 +192000 ekin = 7.64121438364872 | erot = 21.8048177890289 | epot = -83.9026675850806 | etot = -54.456635412403 +193000 ekin = 7.78824892260277 | erot = 21.6992058928584 | epot = -83.9440902285507 | etot = -54.4566354130896 +194000 ekin = 7.87254337485953 | erot = 21.437602193847 | epot = -83.7667809811829 | etot = -54.4566354124764 +195000 ekin = 7.88497345911802 | erot = 21.0375935324412 | epot = -83.3792024018214 | etot = -54.4566354102622 +196000 ekin = 7.82453658224934 | erot = 20.5298119321333 | epot = -82.8109839217721 | etot = -54.4566354073895 +197000 ekin = 7.69767210841737 | erot = 19.950811734812 | epot = -82.1051192473219 | etot = -54.4566354040925 +198000 ekin = 7.51634139121972 | erot = 19.3371432855416 | epot = -81.3101200775087 | etot = -54.4566354007473 +199000 ekin = 7.29564803023246 | erot = 18.7233240020315 | epot = -80.4756074302738 | etot = -54.4566353980098 +200000 ekin = 7.05166010690275 | erot = 18.1350524779769 | epot = -79.6433479808032 | etot = -54.4566353959236 +201000 ekin = 6.79981173468412 | erot = 17.5880304600566 | epot = -78.8444775892884 | etot = -54.4566353945477 +202000 ekin = 6.55389933641319 | erot = 17.0888778993463 | epot = -78.0994126296062 | etot = -54.4566353938467 +203000 ekin = 6.32553919621424 | erot = 16.6360378263841 | epot = -77.4182124163399 | etot = -54.4566353937415 +204000 ekin = 6.12389632660782 | erot = 16.2211717958518 | epot = -76.8017035165952 | etot = -54.4566353941356 +205000 ekin = 5.95555200640684 | erot = 15.8307416505757 | epot = -76.2429290519083 | etot = -54.4566353949257 +206000 ekin = 5.82446904491528 | erot = 15.4476864597769 | epot = -75.728790900684 | etot = -54.4566353959918 +207000 ekin = 5.73208912867381 | erot = 15.0532400346077 | epot = -75.2419645604683 | etot = -54.4566353971868 +208000 ekin = 5.67762302906544 | erot = 14.6289641823349 | epot = -74.7632226097329 | etot = -54.4566353983326 +209000 ekin = 5.65855387682248 | erot = 14.1589879691241 | epot = -74.2741772451826 | etot = -54.456635399236 +210000 ekin = 5.67127672991778 | erot = 13.6322671582832 | epot = -73.760179287929 | etot = -54.456635399728 +211000 ekin = 5.71170069345543 | erot = 13.0444908839498 | epot = -73.2128269771126 | etot = -54.4566353997073 +212000 ekin = 5.77562712093054 | erot = 12.3991887587355 | epot = -72.6314512788375 | etot = -54.4566353991715 +213000 ekin = 5.85883014811436 | erot = 11.7077170437825 | epot = -72.0231825901079 | etot = -54.4566353982111 +214000 ekin = 5.95693715945814 | erot = 10.9880856586548 | epot = -71.4016582150883 | etot = -54.4566353969753 +215000 ekin = 6.06530009270476 | erot = 10.2628764798238 | epot = -70.7848119681625 | etot = -54.456635395634 +216000 ekin = 6.17899119914079 | erot = 9.5566641239572 | epot = -70.1922907174491 | etot = -54.4566353943512 +217000 ekin = 6.29291855291775 | erot = 8.89336715125394 | epot = -69.6429210974408 | etot = -54.4566353932691 +218000 ekin = 6.40196857726172 | erot = 8.2938959967619 | epot = -69.1524999665194 | etot = -54.4566353924958 +219000 ekin = 6.501101734084 | erot = 7.77437623954234 | epot = -68.73211336572 | etot = -54.4566353920937 +220000 ekin = 6.58540342133204 | erot = 7.34511996776021 | epot = -68.3871587811666 | etot = -54.4566353920744 +221000 ekin = 6.65014690325988 | erot = 7.01039395844519 | epot = -68.1171762541006 | etot = -54.4566353923955 +222000 ekin = 6.69092576193491 | erot = 6.76891043700687 | epot = -67.9164715919178 | etot = -54.456635392976 +223000 ekin = 6.70387621885061 | erot = 6.61487073126159 | epot = -67.7753823438195 | etot = -54.4566353937073 +224000 ekin = 6.6859658221951 | erot = 6.53933741261943 | epot = -67.6819386292903 | etot = -54.4566353944758 +225000 ekin = 6.63529509868586 | erot = 6.53169516027613 | epot = -67.6236256540918 | etot = -54.4566353951298 +226000 ekin = 6.55134622983753 | erot = 6.58124861354915 | epot = -67.5892302390907 | etot = -54.456635395704 +227000 ekin = 6.4351258237356 | erot = 6.67786339098986 | epot = -67.5696246108199 | etot = -54.4566353960945 +228000 ekin = 6.2891982597207 | erot = 6.81242105498861 | epot = -67.5582547110039 | etot = -54.4566353962946 +229000 ekin = 6.11758034387043 | erot = 6.9773732234486 | epot = -67.551588963642 | etot = -54.4566353963229 +230000 ekin = 5.92553219663407 | erot = 7.16667727721339 | epot = -67.5488448700583 | etot = -54.4566353962108 +231000 ekin = 5.71928874368935 | erot = 7.37558258297045 | epot = -67.5515067226471 | etot = -54.4566353959873 +232000 ekin = 5.50576904745257 | erot = 7.60029005185209 | epot = -67.5626944950116 | etot = -54.4566353957069 +233000 ekin = 5.29228522017016 | erot = 7.83763848257012 | epot = -67.5865590981282 | etot = -54.456635395388 +234000 ekin = 5.08626778915252 | erot = 8.08497235755395 | epot = -67.6278755417667 | etot = -54.4566353950602 +235000 ekin = 4.89496149390852 | erot = 8.33993380345567 | epot = -67.6915306921206 | etot = -54.4566353947564 +236000 ekin = 4.72510766288859 | erot = 8.60023942151853 | epot = -67.7819824789156 | etot = -54.4566353945085 +237000 ekin = 4.58266891059355 | erot = 8.86352045028253 | epot = -67.9028247552247 | etot = -54.4566353943486 +238000 ekin = 4.4725435285652 | erot = 9.12714914792106 | epot = -68.0563280707871 | etot = -54.4566353943009 +239000 ekin = 4.39832589608195 | erot = 9.38815494537151 | epot = -68.2431162358287 | etot = -54.4566353943752 +240000 ekin = 4.36214482372901 | erot = 9.64329675760364 | epot = -68.4620769758926 | etot = -54.45663539456 +241000 ekin = 4.36460414736138 | erot = 9.88932905774764 | epot = -68.7105685999319 | etot = -54.4566353948228 +242000 ekin = 4.40483557566148 | erot = 10.1234012790534 | epot = -68.9848722498409 | etot = -54.456635395126 +243000 ekin = 4.4806558711343 | erot = 10.3436288280303 | epot = -69.2809200945631 | etot = -54.4566353953985 +244000 ekin = 4.58880538052901 | erot = 10.5497091929712 | epot = -69.5951499691031 | etot = -54.456635395603 +245000 ekin = 4.72523059106174 | erot = 10.7433050692489 | epot = -69.9251710560126 | etot = -54.4566353957019 +246000 ekin = 4.88536596035982 | erot = 10.9281953102969 | epot = -70.2701966663511 | etot = -54.4566353956944 +247000 ekin = 5.06437032892696 | erot = 11.1100753168562 | epot = -70.631081041388 | etot = -54.4566353956048 +248000 ekin = 5.25728039314947 | erot = 11.295977903806 | epot = -71.0098936924454 | etot = -54.45663539549 +249000 ekin = 5.4590578306862 | erot = 11.493349888506 | epot = -71.4090431146249 | etot = -54.4566353954327 +250000 ekin = 5.66452726893982 | erot = 11.7088807610528 | epot = -71.8300434255207 | etot = -54.4566353955281 +251000 ekin = 5.86822964772049 | erot = 11.9472357725923 | epot = -72.2721008161799 | etot = -54.4566353958671 +252000 ekin = 6.06424926084244 | erot = 12.2098996244403 | epot = -72.7307842817972 | etot = -54.4566353965145 +253000 ekin = 6.24611969949034 | erot = 12.4943889560497 | epot = -73.1971440530269 | etot = -54.4566353974869 +254000 ekin = 6.40686577704143 | erot = 12.7940520504554 | epot = -73.6575532262011 | etot = -54.4566353987043 +255000 ekin = 6.53934545678203 | erot = 13.0988013252464 | epot = -74.094782182033 | etot = -54.4566354000046 +256000 ekin = 6.63702718994409 | erot = 13.3967890648217 | epot = -74.4904516559556 | etot = -54.4566354011898 +257000 ekin = 6.69481406277285 | erot = 13.6763952361342 | epot = -74.8278447009679 | etot = -54.4566354020609 +258000 ekin = 6.70987363015829 | erot = 13.9283274305686 | epot = -75.0948364631864 | etot = -54.4566354024595 +259000 ekin = 6.68224111902752 | erot = 14.1473011903223 | epot = -75.2861777116964 | etot = -54.4566354023465 +260000 ekin = 6.6149121085367 | erot = 14.332625913678 | epot = -75.4041734240278 | etot = -54.4566354018132 +261000 ekin = 6.51341628163392 | erot = 14.487436852557 | epot = -75.4574885351744 | etot = -54.4566354009835 +262000 ekin = 6.38501100285228 | erot = 14.6175606151421 | epot = -75.4592070180357 | etot = -54.4566354000413 +263000 ekin = 6.23771961613781 | erot = 14.7299444235393 | epot = -75.4242994388476 | etot = -54.4566353991704 +264000 ekin = 6.07941608333323 | erot = 14.8311371615553 | epot = -75.3671886433762 | etot = -54.4566353984877 +265000 ekin = 5.91710326790354 | erot = 14.9261997269373 | epot = -75.2999383929177 | etot = -54.4566353980769 +266000 ekin = 5.75646622878376 | erot = 15.0179796909013 | epot = -75.2310813176621 | etot = -54.456635397977 +267000 ekin = 5.60176709254105 | erot = 15.1066567649974 | epot = -75.1650592557177 | etot = -54.4566353981793 +268000 ekin = 5.45614222906157 | erot = 15.1896161580118 | epot = -75.1023937856842 | etot = -54.4566353986109 +269000 ekin = 5.32233940193233 | erot = 15.2616013239948 | epot = -75.0405761254044 | etot = -54.4566353994772 +270000 ekin = 5.20386526321353 | erot = 15.3134126784878 | epot = -74.9739133416008 | etot = -54.4566353998994 +271000 ekin = 5.10636511575788 | erot = 15.3371670926565 | epot = -74.9001676083405 | etot = -54.4566353999261 +272000 ekin = 5.0388326775387 | erot = 15.3275595144047 | epot = -74.8230275914564 | etot = -54.456635399513 +273000 ekin = 5.0140854035876 | erot = 15.2821242951824 | epot = -74.7528450973405 | etot = -54.4566353985705 +274000 ekin = 5.04781979148567 | erot = 15.2024861316973 | epot = -74.706941320485 | etot = -54.4566353973021 +275000 ekin = 5.15587366097644 | erot = 15.0944379866226 | epot = -74.7069470435752 | etot = -54.4566353959761 +276000 ekin = 5.35005421474597 | erot = 14.9659067954337 | epot = -74.7725964054856 | etot = -54.4566353953059 +277000 ekin = 5.63375697520818 | erot = 14.8238362815561 | epot = -74.9142286522922 | etot = -54.4566353955279 +278000 ekin = 5.99906841358956 | erot = 14.6726954109915 | epot = -75.1283992213069 | etot = -54.4566353967258 +279000 ekin = 6.42677541448279 | erot = 14.5136733620326 | epot = -75.3970841751134 | etot = -54.456635398598 +280000 ekin = 6.88949881397129 | erot = 14.345769085061 | epot = -75.6919032996845 | etot = -54.4566354006523 +281000 ekin = 7.35667779023604 | erot = 14.1678579049855 | epot = -75.9811710982522 | etot = -54.4566354030307 +282000 ekin = 7.7988383699336 | erot = 13.978315493388 | epot = -76.2337892675015 | etot = -54.4566354041799 +283000 ekin = 8.19321965983599 | erot = 13.7803017892219 | epot = -76.4301568534981 | etot = -54.4566354044402 +284000 ekin = 8.52580258151957 | erot = 13.5821927274793 | epot = -76.5646307128652 | etot = -54.4566354038664 +285000 ekin = 8.79108509960268 | erot = 13.3960919484868 | epot = -76.6438124507651 | etot = -54.4566354026756 +286000 ekin = 8.99063008546389 | erot = 13.2361528285341 | epot = -76.6834183151734 | etot = -54.4566354011754 +287000 ekin = 9.13077921529927 | erot = 13.1164348721742 | epot = -76.7038494871529 | etot = -54.4566353996795 +288000 ekin = 9.22018153921315 | erot = 13.0487287839825 | epot = -76.7255457216534 | etot = -54.4566353984578 +289000 ekin = 9.26763004982475 | erot = 13.0407273170656 | epot = -76.7649927645839 | etot = -54.4566353976935 +290000 ekin = 9.28050533355268 | erot = 13.0948336925554 | epot = -76.831974423572 | etot = -54.4566353974639 +291000 ekin = 9.26393617617883 | erot = 13.2077741770254 | epot = -76.9283457509546 | etot = -54.4566353977503 +292000 ekin = 9.2206269689545 | erot = 13.3710137562633 | epot = -77.0482761236731 | etot = -54.4566353984553 +293000 ekin = 9.15118773751851 | erot = 13.5717951426576 | epot = -77.1796182796211 | etot = -54.456635399445 +294000 ekin = 9.05474970264902 | erot = 13.7942987417148 | epot = -77.3056838449873 | etot = -54.4566354006235 +295000 ekin = 8.9296668264409 | erot = 14.0208093015791 | epot = -77.4071115298294 | etot = -54.4566354018094 +296000 ekin = 8.77417741279813 | erot = 14.2335710238213 | epot = -77.4643838395581 | etot = -54.4566354029387 +297000 ekin = 8.58698226598745 | erot = 14.4154370340251 | epot = -77.4590547039454 | etot = -54.4566354039329 +298000 ekin = 8.36775865344672 | erot = 14.55062084961 | epot = -77.37501490777 | etot = -54.4566354047133 +299000 ekin = 8.11762616774734 | erot = 14.6254987182077 | epot = -77.199760291155 | etot = -54.4566354051999 +300000 ekin = 7.83954023620377 | erot = 14.6294629242875 | epot = -76.9256385658109 | etot = -54.4566354053197 +301000 ekin = 7.53854212204226 | erot = 14.5557510868017 | epot = -76.550928613871 | etot = -54.456635405027 +302000 ekin = 7.22177736042507 | erot = 14.4020878566535 | epot = -76.0805006213951 | etot = -54.4566354043166 +303000 ekin = 6.89822321248575 | erot = 14.1709638782381 | epot = -75.52582249396 | etot = -54.4566354032361 +304000 ekin = 6.5781308385865 | erot = 13.8694446267246 | epot = -74.9042108671869 | etot = -54.4566354018759 +305000 ekin = 6.27226349854811 | erot = 13.5085175341625 | epot = -74.2374164330635 | etot = -54.4566354003529 +306000 ekin = 5.99106804508657 | erot = 13.1021011111668 | epot = -73.5498045550402 | etot = -54.4566353987867 +307000 ekin = 5.74393176217499 | erot = 12.6659083209208 | epot = -72.8664754803767 | etot = -54.4566353972809 +308000 ekin = 5.53864569893549 | erot = 12.2163535665898 | epot = -72.2116346614312 | etot = -54.4566353959058 +309000 ekin = 5.38113513069954 | erot = 11.7694200620394 | epot = -71.6071905875296 | etot = -54.4566353947906 +310000 ekin = 5.27545873877812 | erot = 11.3397497111531 | epot = -71.071843843725 | etot = -54.4566353937938 +311000 ekin = 5.22395041073517 | erot = 10.9408344797234 | epot = -70.62142028347 | etot = -54.4566353930114 +312000 ekin = 5.22743903848079 | erot = 10.5841016940056 | epot = -70.2681761249511 | etot = -54.4566353924647 +313000 ekin = 5.28546710256986 | erot = 10.2783241765405 | epot = -70.0204266712983 | etot = -54.456635392188 +314000 ekin = 5.39643142780591 | erot = 10.0290048888967 | epot = -69.8820717089291 | etot = -54.4566353922265 +315000 ekin = 5.55762409515217 | erot = 9.83776650485558 | epot = -69.8520259926288 | etot = -54.4566353926211 +316000 ekin = 5.7651953236205 | erot = 9.70186120841432 | epot = -69.9236919254333 | etot = -54.4566353933985 +317000 ekin = 6.01409543293256 | erot = 9.61396213872118 | epot = -70.0846929662035 | etot = -54.4566353945497 +318000 ekin = 6.29807297065279 | erot = 9.56241760985219 | epot = -70.3171259765194 | etot = -54.4566353960145 +319000 ekin = 6.60980622313929 | erot = 9.53213013022109 | epot = -70.5985717510326 | etot = -54.4566353976722 +320000 ekin = 6.94122281959915 | erot = 9.50614507367891 | epot = -70.9040032926207 | etot = -54.4566353993426 +321000 ekin = 7.28401648903199 | erot = 9.46788297195665 | epot = -71.2085348617973 | etot = -54.4566354008087 +322000 ekin = 7.63030660902592 | erot = 9.40373715746107 | epot = -71.4906791683431 | etot = -54.4566354018561 +323000 ekin = 7.97332122461047 | erot = 9.30554772849627 | epot = -71.7355043554335 | etot = -54.4566354023268 +324000 ekin = 8.30794457963584 | erot = 9.17235846963436 | epot = -71.936938451434 | etot = -54.4566354021638 +325000 ekin = 8.63098140949411 | erot = 9.01095664414776 | epot = -72.09857345507 | etot = -54.4566354014281 +326000 ekin = 8.94105719146425 | erot = 8.83498929957085 | epot = -72.2326818913245 | etot = -54.4566354002894 +327000 ekin = 9.23817100548276 | erot = 8.66283136635856 | epot = -72.357637770827 | etot = -54.4566353989857 +328000 ekin = 9.52300348811115 | erot = 8.51468348398446 | epot = -72.4943223698665 | etot = -54.4566353977709 +329000 ekin = 9.79612481313189 | erot = 8.40948710595479 | epot = -72.6622473159623 | etot = -54.4566353968756 +330000 ekin = 10.0572432527148 | erot = 8.3621635183362 | epot = -72.876042167527 | etot = -54.456635396476 +331000 ekin = 10.3046041371606 | erot = 8.38150606119792 | epot = -73.1427455950411 | etot = -54.4566353966826 +332000 ekin = 10.5346182384475 | erot = 8.46889046679882 | epot = -73.4601441027738 | etot = -54.4566353975274 +333000 ekin = 10.7417838215547 | erot = 8.6178796365307 | epot = -73.8162988570423 | etot = -54.456635398957 +334000 ekin = 10.9189661695274 | erot = 8.81478419867182 | epot = -74.1903857690225 | etot = -54.4566354008232 +335000 ekin = 11.0580923139719 | erot = 9.04024450356191 | epot = -74.5549722204147 | etot = -54.4566354028809 +336000 ekin = 11.1512758054888 | erot = 9.27184425622038 | epot = -74.8797554665068 | etot = -54.4566354047977 +337000 ekin = 11.1922834106664 | erot = 9.4875878809539 | epot = -75.1365066978262 | etot = -54.4566354062058 +338000 ekin = 11.1781049966213 | erot = 9.66977867523749 | epot = -75.3045190786353 | etot = -54.4566354067765 +339000 ekin = 11.1102530741368 | erot = 9.80853289682485 | epot = -75.3754213772729 | etot = -54.4566354063113 +340000 ekin = 10.9953916139881 | erot = 9.90404205087346 | epot = -75.3560690696715 | etot = -54.4566354048099 +341000 ekin = 10.8450335653229 | erot = 9.96690251907219 | epot = -75.2685714868729 | etot = -54.4566354024778 +342000 ekin = 10.6743190321432 | erot = 10.0163513348956 | epot = -75.1473057667146 | etot = -54.4566353996758 +343000 ekin = 10.5001667181566 | erot = 10.0768603504166 | epot = -75.0336624653962 | etot = -54.456635396823 +344000 ekin = 10.3392423699684 | erot = 10.1739542078124 | epot = -74.9698319720935 | etot = -54.4566353943128 +345000 ekin = 10.2061520845131 | erot = 10.3301605012967 | epot = -74.9929479782567 | etot = -54.4566353924469 +346000 ekin = 10.112097481436 | erot = 10.5617272299143 | epot = -75.1304601027748 | etot = -54.4566353914245 +347000 ekin = 10.0640336630371 | erot = 10.8763584969724 | epot = -75.3970275513622 | etot = -54.4566353913527 +348000 ekin = 10.0642411405202 | erot = 11.2719278614765 | epot = -75.7928043942647 | etot = -54.456635392268 +349000 ekin = 10.1101933212711 | erot = 11.7360295300931 | epot = -76.3028582455133 | etot = -54.4566353941491 +350000 ekin = 10.1946552474078 | erot = 12.2463088365544 | epot = -76.8975994808607 | etot = -54.4566353968986 +351000 ekin = 10.3060455438612 | erot = 12.7716910290036 | epot = -77.5343719731905 | etot = -54.4566354003258 +352000 ekin = 10.4291816280477 | erot = 13.2747779707961 | epot = -78.160595002948 | etot = -54.4566354041043 +353000 ekin = 10.5465535663563 | erot = 13.7156648337593 | epot = -78.718853807883 | etot = -54.4566354077673 +354000 ekin = 10.6401856668622 | erot = 14.0571283974538 | epot = -79.1539494750778 | etot = -54.4566354107618 +355000 ekin = 10.6939351373338 | erot = 14.270558563148 | epot = -79.4211291130393 | etot = -54.4566354125575 +356000 ekin = 10.6958108467991 | erot = 14.341360446691 | epot = -79.4938067062953 | etot = -54.4566354128053 +357000 ekin = 10.6397218282593 | erot = 14.272243304566 | epot = -79.368600544282 | etot = -54.4566354114567 +358000 ekin = 10.5263737986286 | erot = 14.0832351439846 | epot = -79.0662443502896 | etot = -54.4566354076763 +359000 ekin = 10.3671285162307 | erot = 13.8092183812934 | epot = -78.6329823019441 | etot = -54.45663540442 +360000 ekin = 10.1731657793225 | erot = 13.4915210097263 | epot = -78.1213221900204 | etot = -54.4566354009716 +361000 ekin = 9.95567993139114 | erot = 13.1714056563755 | epot = -77.5837209856629 | etot = -54.4566353978963 +362000 ekin = 9.72639985071578 | erot = 12.8842804433156 | epot = -77.0673156896208 | etot = -54.4566353955895 +363000 ekin = 9.49607796369864 | erot = 12.6551764253562 | epot = -76.6078897832988 | etot = -54.456635394244 +364000 ekin = 9.2736082263338 | erot = 12.4965538445883 | epot = -76.2267974647922 | etot = -54.4566353938701 +365000 ekin = 9.06568784346758 | erot = 12.4083291366491 | epot = -75.9306523744547 | etot = -54.456635394338 +366000 ekin = 8.87683460603723 | erot = 12.379697418538 | epot = -75.7131674200002 | etot = -54.456635395425 +367000 ekin = 8.70961671148385 | erot = 12.392180649522 | epot = -75.5584327578792 | etot = -54.4566353968734 +368000 ekin = 8.56493490850803 | erot = 12.4232160321931 | epot = -75.4447863391433 | etot = -54.4566353984421 +369000 ekin = 8.44226817634411 | erot = 12.4495921416395 | epot = -75.3484957179267 | etot = -54.456635399943 +370000 ekin = 8.33986053924071 | erot = 12.4501922874661 | epot = -75.2466882279597 | etot = -54.4566354012529 +371000 ekin = 8.25489807014507 | erot = 12.4078154254107 | epot = -75.1193488978471 | etot = -54.4566354022914 +372000 ekin = 8.18376802476647 | erot = 12.3101908679608 | epot = -74.9505942957248 | etot = -54.4566354029975 +373000 ekin = 8.1224708952445 | erot = 12.1505028141953 | epot = -74.7296091127495 | etot = -54.4566354033097 +374000 ekin = 8.06687702985228 | erot = 11.9274297055073 | epot = -74.450942138676 | etot = -54.4566354033165 +375000 ekin = 8.01360538997109 | erot = 11.6454303016277 | epot = -74.1156710942663 | etot = -54.4566354026676 +376000 ekin = 7.96102274026872 | erot = 11.3151262124845 | epot = -73.7327843543605 | etot = -54.4566354016074 +377000 ekin = 7.90863816659382 | erot = 10.9518631003588 | epot = -73.3171366672208 | etot = -54.4566354002681 +378000 ekin = 7.85683990183601 | erot = 10.5740091031979 | epot = -72.8874844038688 | etot = -54.4566353988349 +379000 ekin = 7.80642061178984 | erot = 10.2007165018131 | epot = -72.463772511112 | etot = -54.4566353975091 +380000 ekin = 7.7581115274382 | erot = 9.84961398660417 | epot = -72.0643609104773 | etot = -54.4566353964349 +381000 ekin = 7.71654925828585 | erot = 9.53814492421914 | epot = -71.7113295774989 | etot = -54.4566353949939 +382000 ekin = 7.68451239863845 | erot = 9.27843266615522 | epot = -71.4195804598393 | etot = -54.4566353950456 +383000 ekin = 7.65796830191401 | erot = 9.07311806362067 | epot = -71.1877217606715 | etot = -54.4566353951369 +384000 ekin = 7.63469818489975 | erot = 8.92246566923003 | epot = -71.0137992492276 | etot = -54.4566353950979 +385000 ekin = 7.6150389104547 | erot = 8.82614106516781 | epot = -70.8978153704587 | etot = -54.4566353948362 +386000 ekin = 7.60197533239001 | erot = 8.78441775442625 | epot = -70.8430284811969 | etot = -54.4566353943807 +387000 ekin = 7.60049226511034 | erot = 8.79836488560037 | epot = -70.8554925445894 | etot = -54.4566353938787 +388000 ekin = 7.6162903289944 | erot = 8.86890236975378 | epot = -70.9418280923102 | etot = -54.456635393562 +389000 ekin = 7.65416483435022 | erot = 8.99501957468683 | epot = -71.1058198027096 | etot = -54.4566353936725 +390000 ekin = 7.71643785888768 | erot = 9.17173992639764 | epot = -71.3448131796951 | etot = -54.4566353944097 +391000 ekin = 7.80181238366844 | erot = 9.38839302764512 | epot = -71.6468408071612 | etot = -54.4566353958476 +392000 ekin = 7.90489923332377 | erot = 9.62796379831973 | epot = -71.9894984295669 | etot = -54.4566353979234 +393000 ekin = 8.01655002691925 | erot = 9.86772713455431 | epot = -72.3409125619008 | etot = -54.4566354004272 +394000 ekin = 8.12497584792015 | erot = 10.0812703662968 | epot = -72.662881617248 | etot = -54.456635403031 +395000 ekin = 8.21747162081394 | erot = 10.241653382354 | epot = -72.9157604085161 | etot = -54.4566354053482 +396000 ekin = 8.28243832247632 | erot = 10.3253672880888 | epot = -73.0644410175198 | etot = -54.4566354069548 +397000 ekin = 8.31132698802282 | erot = 10.3159962168349 | epot = -73.0839586125433 | etot = -54.4566354076855 +398000 ekin = 8.30014555011308 | erot = 10.206120512034 | epot = -72.9629014694189 | etot = -54.4566354072718 +399000 ekin = 8.25023667086019 | erot = 9.99952429135689 | epot = -72.7063963681449 | etot = -54.4566354059278 +400000 ekin = 8.16818663672813 | erot = 9.70984792288031 | epot = -72.3346699633645 | etot = -54.4566354037561 +401000 ekin = 8.06443767762248 | erot = 9.35851558616598 | epot = -71.8795886650967 | etot = -54.4566354013083 +402000 ekin = 7.95182608081287 | erot = 8.9722073920163 | epot = -71.3806688712303 | etot = -54.4566353984011 +403000 ekin = 7.84544588741245 | erot = 8.57990607062952 | epot = -70.8819873536865 | etot = -54.4566353956445 +404000 ekin = 7.75991092032929 | erot = 8.20916918183379 | epot = -70.4257154955299 | etot = -54.4566353933669 +405000 ekin = 7.70721158903879 | erot = 7.88394698603192 | epot = -70.0477939666144 | etot = -54.4566353915437 +406000 ekin = 7.69666260474535 | erot = 7.62282033660977 | epot = -69.7761183316777 | etot = -54.4566353903226 +407000 ekin = 7.73500402089687 | erot = 7.43821712170657 | epot = -69.6298565323343 | etot = -54.4566353897309 +408000 ekin = 7.82558122096966 | erot = 7.33626935412315 | epot = -69.6184859648506 | etot = -54.4566353897578 +409000 ekin = 7.96830915347866 | erot = 7.31687210469422 | epot = -69.7418166485639 | etot = -54.456635390391 +410000 ekin = 8.15969424373099 | erot = 7.3738695108638 | epot = -69.9901991462061 | etot = -54.4566353916113 +411000 ekin = 8.39287612484498 | erot = 7.49540270153733 | epot = -70.3449142197579 | etot = -54.4566353933756 +412000 ekin = 8.65774455619398 | erot = 7.66457893931641 | epot = -70.7789588911007 | etot = -54.4566353955903 +413000 ekin = 8.94129116530218 | erot = 7.86068273350839 | epot = -71.2586092968941 | etot = -54.4566353980836 +414000 ekin = 9.22842184777127 | erot = 8.06113294632768 | epot = -71.7461901946777 | etot = -54.4566354005787 +415000 ekin = 9.50339868560924 | erot = 8.24420492650335 | epot = -72.2042390148381 | etot = -54.4566354027255 +416000 ekin = 9.75183806738226 | erot = 8.39218393331359 | epot = -72.6006574048759 | etot = -54.45663540418 +417000 ekin = 9.96283208275691 | erot = 8.49422554923971 | epot = -72.9136930367139 | etot = -54.4566354047173 +418000 ekin = 10.130516732358 | erot = 8.54790138251502 | epot = -73.1350535191802 | etot = -54.4566354043071 +419000 ekin = 10.2545191073004 | erot = 8.5593205556536 | epot = -73.2704750660785 | etot = -54.4566354031245 +420000 ekin = 10.3391601305823 | erot = 8.5414769979339 | epot = -73.3372725299922 | etot = -54.456635401476 +421000 ekin = 10.391784764309 | erot = 8.51147867525926 | epot = -73.3598988392523 | etot = -54.456635399684 +422000 ekin = 10.4208099208889 | erot = 8.48775966217129 | epot = -73.365204981078 | etot = -54.4566353980178 +423000 ekin = 10.4339704342051 | erot = 8.48766818013271 | epot = -73.3782740110675 | etot = -54.4566353967297 +424000 ekin = 10.4369827822084 | erot = 8.52566990469808 | epot = -73.4192880827323 | etot = -54.4566353958258 +425000 ekin = 10.4323601115178 | erot = 8.61251346627881 | epot = -73.5015091924256 | etot = -54.456635614629 +426000 ekin = 10.1026717198712 | erot = 8.31096137629846 | epot = -72.8702682878989 | etot = -54.4566351917292 +427000 ekin = 10.5734553943522 | erot = 8.79632347543036 | epot = -73.8264144771538 | etot = -54.4566356073712 +428000 ekin = 10.6072422295352 | erot = 9.02803563914449 | epot = -74.0919131525303 | etot = -54.4566352838506 +429000 ekin = 10.5962603681818 | erot = 9.29488255868299 | epot = -74.347778212505 | etot = -54.4566352856402 +430000 ekin = 10.5389594927114 | erot = 9.58934591829726 | epot = -74.5849406986405 | etot = -54.4566352876318 +431000 ekin = 10.424595394277 | erot = 9.89238704682332 | epot = -74.7736177306447 | etot = -54.4566352895443 +432000 ekin = 10.2456968864566 | erot = 10.1829761184419 | epot = -74.8853082959501 | etot = -54.4566352910516 +433000 ekin = 10.0003056146311 | erot = 10.4407089711168 | epot = -74.8976498775916 | etot = -54.4566352918438 +434000 ekin = 9.69371342949066 | erot = 10.648626947292 | epot = -74.7989756684902 | etot = -54.4566352917075 +435000 ekin = 9.33916315685989 | erot = 10.7956251646138 | epot = -74.5914236120725 | etot = -54.4566352905987 +436000 ekin = 8.95712875743166 | erot = 10.8778397412559 | epot = -74.2916037873533 | etot = -54.4566352886657 +437000 ekin = 8.57313769393628 | erot = 10.8986617406378 | epot = -73.9284347207922 | etot = -54.4566352862182 +438000 ekin = 8.21453260377098 | erot = 10.8674634356788 | epot = -73.5386313230889 | etot = -54.4566352836392 +439000 ekin = 7.90690315351739 | erot = 10.7975428309118 | epot = -73.1610812657131 | etot = -54.4566352812839 +440000 ekin = 7.67099505628251 | erot = 10.7039809990729 | epot = -72.8316113347452 | etot = -54.4566352793899 +441000 ekin = 7.52069557968947 | erot = 10.6019760377327 | epot = -72.5793068954808 | etot = -54.4566352780587 +442000 ekin = 7.46231680922884 | erot = 10.5058607974092 | epot = -72.4248128839175 | etot = -54.4566352772794 +443000 ekin = 7.49502555661017 | erot = 10.4286364553068 | epot = -72.3802972888983 | etot = -54.4566352769813 +444000 ekin = 7.61203666089557 | erot = 10.381643930758 | epot = -72.4503158687433 | etot = -54.4566352770898 +445000 ekin = 7.80213707906935 | erot = 10.374019103461 | epot = -72.6327914600942 | etot = -54.4566352775638 +446000 ekin = 8.05120889605804 | erot = 10.4117932601404 | epot = -72.9196374345776 | etot = -54.4566352783792 +447000 ekin = 8.34362619155747 | erot = 10.4967971423168 | epot = -73.2970586134505 | etot = -54.4566352795762 +448000 ekin = 8.66322518431604 | erot = 10.6255592268189 | epot = -73.7454196922454 | etot = -54.4566352811105 +449000 ekin = 8.99429132590707 | erot = 10.7888572754563 | epot = -74.2397838842746 | etot = -54.4566352829112 +450000 ekin = 9.32243048438082 | erot = 10.9721164674713 | epot = -74.7511822366964 | etot = -54.4566352848442 +451000 ekin = 9.63533692190787 | erot = 11.1567560020506 | epot = -75.2487282106882 | etot = -54.4566352867298 +452000 ekin = 9.92346130382689 | erot = 11.3223196777218 | epot = -75.7024162699088 | etot = -54.4566352883602 +453000 ekin = 10.1805259141588 | erot = 11.449016949531 | epot = -76.0861781532617 | etot = -54.4566352895719 +454000 ekin = 10.4037354723037 | erot = 11.5200589234746 | epot = -76.3804296860463 | etot = -54.456635290268 +455000 ekin = 10.5935831355421 | erot = 11.5233067080478 | epot = -76.5735251340364 | etot = -54.4566352904466 +456000 ekin = 10.753221260939 | erot = 11.4519763299534 | epot = -76.6618328810834 | etot = -54.456635290191 +457000 ekin = 10.8874570866295 | erot = 11.3044410662084 | epot = -76.6485334424738 | etot = -54.456635289636 +458000 ekin = 11.0015355382807 | erot = 11.0834241212083 | epot = -76.5415949484287 | etot = -54.4566352889397 +459000 ekin = 11.0999318012878 | erot = 10.7949138906107 | epot = -76.351480980127 | etot = -54.4566352882285 +460000 ekin = 11.1853777396665 | erot = 10.44712866202 | epot = -76.0891416892873 | etot = -54.4566352876008 +461000 ekin = 11.2582313403146 | erot = 10.0496701056132 | epot = -75.7645367330272 | etot = -54.4566352870993 +462000 ekin = 11.3163274976827 | erot = 9.61299797023314 | epot = -75.3859607546339 | etot = -54.4566352867181 +463000 ekin = 11.3552632497994 | erot = 9.14812026271289 | epot = -74.9600187989476 | etot = -54.4566352864354 +464000 ekin = 11.3690273085602 | erot = 8.66637468807853 | epot = -74.492037282831 | etot = -54.4566352861923 +465000 ekin = 11.3509265610579 | erot = 8.17938417024641 | epot = -73.9869460172111 | etot = -54.4566352859068 +466000 ekin = 11.2946971057464 | erot = 7.69907577472996 | epot = -73.450408166005 | etot = -54.4566352855287 +467000 ekin = 11.1955035374672 | erot = 7.23752069346408 | epot = -72.8896595159555 | etot = -54.4566352850242 +468000 ekin = 11.050822539512 | erot = 6.80654240242868 | epot = -72.3140002263315 | etot = -54.4566352843908 +469000 ekin = 10.8611440667107 | erot = 6.41707429380236 | epot = -71.7348536441621 | etot = -54.456635283649 +470000 ekin = 10.6304433621371 | erot = 6.07835039051434 | epot = -71.1654290354842 | etot = -54.4566352828328 +471000 ekin = 10.3664443931406 | erot = 5.79710085709296 | epot = -70.620180532205 | etot = -54.4566352819714 +472000 ekin = 10.080647886048 | erot = 5.57696288908153 | epot = -70.1142460562208 | etot = -54.4566352810913 +473000 ekin = 9.78800246195762 | erot = 5.41826188422521 | epot = -69.6628996264059 | etot = -54.4566352802231 +474000 ekin = 9.50601286878116 | erot = 5.3182028147351 | epot = -69.2808509629482 | etot = -54.456635279432 +475000 ekin = 9.25312250159501 | erot = 5.27140899121769 | epot = -68.9811667716237 | etot = -54.456635278811 +476000 ekin = 9.04645385403901 | erot = 5.27070679329064 | epot = -68.7737959257915 | etot = -54.4566352784618 +477000 ekin = 8.89934302898377 | erot = 5.3080643166994 | epot = -68.664042624135 | etot = -54.4566352784518 +478000 ekin = 8.81931824252445 | erot = 5.37557918610341 | epot = -68.6515327074218 | etot = -54.4566352787939 +479000 ekin = 8.80699076959969 | erot = 5.46633303731731 | epot = -68.7299590863674 | etot = -54.4566352794504 +480000 ekin = 8.85601818727501 | erot = 5.57490002076168 | epot = -68.8875534883949 | etot = -54.4566352803582 +481000 ekin = 8.95429342118878 | erot = 5.69751011507638 | epot = -69.108438817723 | etot = -54.4566352814579 +482000 ekin = 9.08517946645594 | erot = 5.83167729002342 | epot = -69.3734920391789 | etot = -54.4566352826995 +483000 ekin = 9.2290960727685 | erot = 5.97557873339194 | epot = -69.6613100901891 | etot = -54.4566352840286 +484000 ekin = 9.36521899372712 | erot = 6.127458642182 | epot = -69.949312921278 | etot = -54.4566352853688 +485000 ekin = 9.47322485683908 | erot = 6.28523994694383 | epot = -70.215100090406 | etot = -54.4566352866231 +486000 ekin = 9.53500494319974 | erot = 6.44644593217097 | epot = -70.438086163052 | etot = -54.4566352876813 +487000 ekin = 9.53619997079837 | erot = 6.60840812030681 | epot = -70.6012433795484 | etot = -54.4566352884432 +488000 ekin = 9.4673616575425 | erot = 6.76862588122785 | epot = -70.692622827615 | etot = -54.4566352888446 +489000 ekin = 9.32457274797321 | erot = 6.92507571371342 | epot = -70.7062837505581 | etot = -54.4566352888715 +490000 ekin = 9.10946474824739 | erot = 7.07632195430842 | epot = -70.6424219911187 | etot = -54.4566352885629 +491000 ekin = 8.82888029926593 | erot = 7.22128416903665 | epot = -70.5067997559112 | etot = -54.4566352876086 +492000 ekin = 8.49626753097993 | erot = 7.35784727800451 | epot = -70.3107500960481 | etot = -54.4566352870636 +493000 ekin = 8.12485274299824 | erot = 7.48341898211923 | epot = -70.064907011523 | etot = -54.4566352864055 +494000 ekin = 7.72891988561272 | erot = 7.59489697498567 | epot = -69.7804521462802 | etot = -54.4566352856818 +495000 ekin = 7.32464765068735 | erot = 7.68832902470436 | epot = -69.4696119585145 | etot = -54.4566352831228 +496000 ekin = 6.87909737981739 | erot = 7.73460610288381 | epot = -69.0703390393494 | etot = -54.4566355566482 +497000 ekin = 6.10749796784233 | erot = 7.42289860774637 | epot = -67.9870318122098 | etot = -54.4566352366211 +498000 ekin = 6.82233845536795 | erot = 7.45240806496377 | epot = -68.731382053793 | etot = -54.4566355334613 +499000 ekin = 6.9458581135547 | erot = 7.49819185265288 | epot = -68.900685243359 | etot = -54.4566352771515 +500000 ekin = 6.9687772203723 | erot = 7.49002786304578 | epot = -68.9154403630723 | etot = -54.4566352796543 +501000 ekin = 7.01880112774021 | erot = 7.44438420076566 | epot = -68.9198206071042 | etot = -54.4566352785983 +502000 ekin = 7.10331622209455 | erot = 7.36817394316464 | epot = -68.9281254425226 | etot = -54.4566352772634 +503000 ekin = 7.22893470365061 | erot = 7.2736841510104 | epot = -68.959254130481 | etot = -54.45663527582 +504000 ekin = 7.40053482834885 | erot = 7.17754137262199 | epot = -69.0347114753898 | etot = -54.456635274419 +505000 ekin = 7.62070280613197 | erot = 7.09829571793159 | epot = -69.1756337972853 | etot = -54.4566352732217 +506000 ekin = 7.88915849439799 | erot = 7.05445199996608 | epot = -69.4002457667333 | etot = -54.4566352723693 +507000 ekin = 8.20246554171929 | erot = 7.06247440846451 | epot = -69.7215752221496 | etot = -54.4566352719658 +508000 ekin = 8.55413799383551 | erot = 7.13504955839166 | epot = -70.145822824278 | etot = -54.4566352720509 +509000 ekin = 8.93516686126571 | erot = 7.27981823673993 | epot = -70.6716203706166 | etot = -54.4566352726109 +510000 ekin = 9.33485927283508 | erot = 7.49868525982142 | epot = -71.2901798062416 | etot = -54.4566352735851 +511000 ekin = 9.74175973588398 | erot = 7.78771907260134 | epot = -71.9861140833848 | etot = -54.4566352748994 +512000 ekin = 10.1443557396999 | erot = 8.13756756501622 | epot = -72.738558581206 | etot = -54.4566352764899 +513000 ekin = 10.531312605677 | erot = 8.53426169206068 | epot = -73.5222095760515 | etot = -54.4566352783138 +514000 ekin = 10.8911780109942 | erot = 8.96028799859434 | epot = -74.3081012899268 | etot = -54.4566352803383 +515000 ekin = 11.2118156252243 | erot = 9.39590120046256 | epot = -75.0643521081772 | etot = -54.4566352824903 +516000 ekin = 11.4801179010287 | erot = 9.82075584957822 | epot = -75.7575090352141 | etot = -54.4566352846072 +517000 ekin = 11.6825443563199 | erot = 10.2159440472384 | epot = -76.3551236899899 | etot = -54.4566352864315 +518000 ekin = 11.8066489253425 | erot = 10.5663121117515 | epot = -76.8295963247647 | etot = -54.4566352876706 +519000 ekin = 11.8431629051674 | erot = 10.8625994980219 | epot = -77.1623976912905 | etot = -54.4566352881013 +520000 ekin = 11.787857569085 | erot = 11.102744990217 | epot = -77.3472378469788 | etot = -54.4566352876768 +521000 ekin = 11.6423174236686 | erot = 11.2919310655302 | epot = -77.3908837756977 | etot = -54.456635286499 +522000 ekin = 11.4136719884803 | erot = 11.4412637557252 | epot = -77.3115710290112 | etot = -54.4566352848057 +523000 ekin = 11.113424621935 | erot = 11.5654340582824 | epot = -77.1354939631131 | etot = -54.4566352828957 +524000 ekin = 10.7557913149156 | erot = 11.6798454532669 | epot = -76.8922720492617 | etot = -54.4566352810793 +525000 ekin = 10.3559612263806 | erot = 11.7976117586495 | epot = -76.6102082646709 | etot = -54.4566352796408 +526000 ekin = 9.92854976445471 | erot = 11.9267667903727 | epot = -76.3119518336234 | etot = -54.456635278796 +527000 ekin = 9.48645866347763 | erot = 12.0680840250146 | epot = -76.0111779671512 | etot = -54.456635278659 +528000 ekin = 9.04033350015186 | erot = 12.2139583839329 | epot = -75.7109271632781 | etot = -54.4566352791933 +529000 ekin = 8.5987344363361 | erot = 12.3488338467365 | epot = -75.4042035632657 | etot = -54.4566352801931 +530000 ekin = 8.16898173781198 | erot = 12.4514660033284 | epot = -75.0770830224534 | etot = -54.456635281313 +531000 ekin = 7.75842341267674 | erot = 12.4988592010124 | epot = -74.7139178958321 | etot = -54.4566352821429 +532000 ekin = 7.37569471992756 | erot = 12.4711371154268 | epot = -74.3034671176744 | etot = -54.45663528232 +533000 ekin = 7.03150209880071 | erot = 12.3561420075333 | epot = -73.844279387978 | etot = -54.456635281644 +534000 ekin = 6.7386103799064 | erot = 12.1525081131702 | epot = -73.3477537732032 | etot = -54.4566352801267 +535000 ekin = 6.51098179616902 | erot = 11.8704212665667 | epot = -72.8380383407155 | etot = -54.4566352779798 +536000 ekin = 6.36227279690717 | erot = 11.5300349542156 | epot = -72.3489430266664 | etot = -54.4566352755436 +537000 ekin = 6.30402397010781 | erot = 11.1595690920548 | epot = -71.9202283349053 | etot = -54.4566352727426 +538000 ekin = 6.34384912541234 | erot = 10.7903690893108 | epot = -71.5908534856624 | etot = -54.4566352709393 +539000 ekin = 6.48387052851178 | erot = 10.4493189471733 | epot = -71.3898247456171 | etot = -54.456635269932 +540000 ekin = 6.71957140287839 | erot = 10.1578313306175 | epot = -71.3340380034278 | etot = -54.4566352699319 +541000 ekin = 7.03922441473198 | erot = 9.92917206920642 | epot = -71.4250317549648 | etot = -54.4566352710264 +542000 ekin = 7.42406000056234 | erot = 9.76688711206304 | epot = -71.6475823857816 | etot = -54.4566352731563 +543000 ekin = 7.84930235319357 | erot = 9.66461535275746 | epot = -71.9705529820511 | etot = -54.4566352761 +544000 ekin = 8.28608775690868 | erot = 9.60744188179591 | epot = -72.3501649181961 | etot = -54.4566352794915 +545000 ekin = 8.70408689279382 | erot = 9.57468499689601 | epot = -72.7354071725602 | etot = -54.4566352828704 +546000 ekin = 9.07450055253985 | erot = 9.5437358449094 | epot = -73.0748716832126 | etot = -54.4566352857634 +547000 ekin = 9.3729563042228 | erot = 9.49419334508817 | epot = -73.3237849370942 | etot = -54.4566352877832 +548000 ekin = 9.58182570226172 | erot = 9.4113726281576 | epot = -73.4498336191269 | etot = -54.4566352887075 +549000 ekin = 9.69160120899291 | erot = 9.28840559658494 | epot = -73.4366420940901 | etot = -54.4566352885123 +550000 ekin = 9.70118406829612 | erot = 9.12701779120654 | epot = -73.2848371466999 | etot = -54.4566352871972 +551000 ekin = 9.61716955376783 | erot = 8.93605057966714 | epot = -73.0098554187887 | etot = -54.4566352853538 +552000 ekin = 9.45239020383949 | erot = 8.72803660180396 | epot = -72.6370620887567 | etot = -54.4566352831133 +553000 ekin = 9.2240812648571 | erot = 8.51766004432099 | epot = -72.1983765899246 | etot = -54.4566352807465 +554000 ekin = 8.95200493897852 | erot = 8.31967116937484 | epot = -71.7283113868087 | etot = -54.4566352784553 +555000 ekin = 8.65679189106452 | erot = 8.14750332103372 | epot = -71.2609304884617 | etot = -54.4566352763634 +556000 ekin = 8.35857893218147 | erot = 8.01260395507915 | epot = -70.8278181618014 | etot = -54.4566352745408 +557000 ekin = 8.07596711125517 | erot = 7.92430276672531 | epot = -70.4569051509942 | etot = -54.4566352730137 +558000 ekin = 7.82526545929883 | erot = 7.88998546795632 | epot = -70.1718861990513 | etot = -54.4566352717961 +559000 ekin = 7.61992228152034 | erot = 7.9152795848548 | epot = -69.9918371372886 | etot = -54.4566352709135 +560000 ekin = 7.47007181067657 | erot = 8.0040537978786 | epot = -69.9307608789597 | etot = -54.4566352704045 +561000 ekin = 7.38215855424633 | erot = 8.15814566486797 | epot = -69.9969394894381 | etot = -54.4566352703238 +562000 ekin = 7.35865871745874 | erot = 8.376880609997 | epot = -70.1921745981657 | etot = -54.4566352707099 +563000 ekin = 7.39798626084559 | erot = 8.65660065505618 | epot = -70.5112221874692 | etot = -54.4566352715674 +564000 ekin = 7.49472571183499 | erot = 8.99052373945481 | epot = -70.9418847241114 | etot = -54.4566352728216 +565000 ekin = 7.6403295678358 | erot = 9.36943411106999 | epot = -71.4663989531537 | etot = -54.4566352742479 +566000 ekin = 7.82430710588482 | erot = 9.78260719507037 | epot = -72.0635495767755 | etot = -54.4566352758203 +567000 ekin = 8.03571605972324 | erot = 10.2184542008367 | epot = -72.7108055378515 | etot = -54.4566352772916 +568000 ekin = 8.26456312040914 | erot = 10.6659972236189 | epot = -73.3871956226338 | etot = -54.4566352786058 +569000 ekin = 8.50272301776145 | erot = 11.1149437633325 | epot = -74.0743020608808 | etot = -54.4566352797868 +570000 ekin = 8.74355516146364 | erot = 11.5545029206602 | epot = -74.7546933636264 | etot = -54.4566352815025 +571000 ekin = 8.98090334156988 | erot = 11.972558358418 | epot = -75.4100969833271 | etot = -54.4566352833392 +572000 ekin = 9.20828738370295 | erot = 12.3560364775513 | epot = -76.0209591456352 | etot = -54.4566352843809 +573000 ekin = 9.42081793457053 | erot = 12.6951950119738 | epot = -76.5726482312666 | etot = -54.4566352847223 +574000 ekin = 9.61839098683931 | erot = 12.9876757192449 | epot = -77.0627019900754 | etot = -54.4566352839912 +575000 ekin = 9.80532071145167 | erot = 13.2416249343254 | epot = -77.5035809281439 | etot = -54.4566352823668 +576000 ekin = 9.99002522866369 | erot = 13.4728181323069 | epot = -77.9194786412748 | etot = -54.4566352803041 +577000 ekin = 10.1832012886937 | erot = 13.6997981601557 | epot = -78.3396347273641 | etot = -54.4566352785147 +578000 ekin = 10.3950145220056 | erot = 13.9374358143685 | epot = -78.7890856136979 | etot = -54.4566352773239 +579000 ekin = 10.6321657048142 | erot = 14.1940413546702 | epot = -79.2828423366402 | etot = -54.4566352771559 +580000 ekin = 10.8955063623687 | erot = 14.4691297492109 | epot = -79.8212713897138 | etot = -54.4566352781342 +581000 ekin = 11.1784960139007 | erot = 14.7531280290501 | epot = -80.3882593232073 | etot = -54.4566352802565 +582000 ekin = 11.4666498909183 | erot = 15.0284667683282 | epot = -80.9517519424842 | etot = -54.4566352832377 +583000 ekin = 11.7382109395925 | erot = 15.2729975156575 | epot = -81.4678437419717 | etot = -54.4566352867217 +584000 ekin = 11.9663900039874 | erot = 15.463594812378 | epot = -81.8866201064935 | etot = -54.4566352901281 +585000 ekin = 12.1233421756029 | erot = 15.5804670946814 | epot = -82.1604445630453 | etot = -54.456635292761 +586000 ekin = 12.1853975661852 | erot = 15.611762573636 | epot = -82.2537954338106 | etot = -54.4566352939894 +587000 ekin = 12.1382713602016 | erot = 15.557003831346 | epot = -82.1519104850302 | etot = -54.4566352934825 +588000 ekin = 11.9805642896466 | erot = 15.4278527969129 | epot = -81.8650523779339 | etot = -54.4566352913745 +589000 ekin = 11.7242102225938 | erot = 15.2454372701407 | epot = -81.4262827809785 | etot = -54.456635288244 +590000 ekin = 11.3915725976067 | erot = 15.0348737081526 | epot = -80.8830815906634 | etot = -54.456635284904 +591000 ekin = 11.0102189263661 | erot = 14.8189389013138 | epot = -80.2857931097531 | etot = -54.4566352820732 +592000 ekin = 10.6073918807094 | erot = 14.6132844347391 | epot = -79.6773115955566 | etot = -54.4566352801081 +593000 ekin = 10.2062007298967 | erot = 14.4247656797 | epot = -79.0876016885481 | etot = -54.4566352789514 +594000 ekin = 9.82441079417659 | erot = 14.2527059306663 | epot = -78.5337520031729 | etot = -54.45663527833 +595000 ekin = 9.47516576237465 | erot = 14.091348302824 | epot = -78.0231493432196 | etot = -54.456635278021 +596000 ekin = 9.16820839958766 | erot = 13.9315742319346 | epot = -77.5564179095013 | etot = -54.4566352779791 +597000 ekin = 8.91058714546151 | erot = 13.7613090154786 | epot = -77.1285314391907 | etot = -54.4566352782506 +598000 ekin = 8.70675752393341 | erot = 13.5656177911289 | epot = -76.7290105938819 | etot = -54.4566352788196 +599000 ekin = 8.55850888712236 | erot = 13.3279192983518 | epot = -76.3430634650047 | etot = -54.4566352795306 +600000 ekin = 8.46506040529032 | erot = 13.0357131362493 | epot = -75.9574088199436 | etot = -54.456635278404 +601000 ekin = 8.42304118577515 | erot = 12.686791609959 | epot = -75.566468075024 | etot = -54.4566352792899 +602000 ekin = 8.42687753935408 | erot = 12.2731929910171 | epot = -75.1567058099102 | etot = -54.4566352795389 +603000 ekin = 8.46953848993741 | erot = 11.7970987134719 | epot = -74.7232724825868 | etot = -54.4566352791774 +604000 ekin = 8.54275438846908 | erot = 11.2715335231632 | epot = -74.2709231899985 | etot = -54.4566352783662 +605000 ekin = 8.63734562583461 | erot = 10.7175531247449 | epot = -73.8115340278902 | etot = -54.4566352773107 +606000 ekin = 8.74380130285083 | erot = 10.1605162228269 | epot = -73.3609528018709 | etot = -54.4566352761931 +607000 ekin = 8.85309694756741 | erot = 9.62647077148512 | epot = -72.9362029941922 | etot = -54.4566352751397 +608000 ekin = 8.95762756594859 | erot = 9.13922005194219 | epot = -72.5534828920873 | etot = -54.4566352741965 +609000 ekin = 9.05200869449502 | erot = 8.71853436574554 | epot = -72.2271783337194 | etot = -54.4566352734788 +610000 ekin = 9.13354825725354 | erot = 8.37878256428323 | epot = -71.9689660943716 | etot = -54.4566352728348 +611000 ekin = 9.20214054253083 | erot = 8.12920532171282 | epot = -71.7879811366974 | etot = -54.4566352724537 +612000 ekin = 9.25952066990242 | erot = 7.97330837184469 | epot = -71.6894643141628 | etot = -54.4566352724157 +613000 ekin = 9.30803502781619 | erot = 7.90865833532742 | epot = -71.6733286359666 | etot = -54.456635272823 +614000 ekin = 9.3491671109403 | erot = 7.92697148194727 | epot = -71.7327738666472 | etot = -54.4566352737596 +615000 ekin = 9.38224690749493 | erot = 8.01444322718518 | epot = -71.8533254097698 | etot = -54.4566352750897 +616000 ekin = 9.40371294251254 | erot = 8.15314542839535 | epot = -72.0134936479301 | etot = -54.4566352770223 +617000 ekin = 9.40764668981377 | erot = 8.32057787069446 | epot = -72.184859839695 | etot = -54.4566352791868 +618000 ekin = 9.38714075160097 | erot = 8.49215030182523 | epot = -72.3359263346865 | etot = -54.4566352812603 +619000 ekin = 9.33636921849 | erot = 8.64420325444537 | epot = -72.4372077558095 | etot = -54.4566352828742 +620000 ekin = 9.252854030249 | erot = 8.75716147302693 | epot = -72.4666507869801 | etot = -54.4566352837042 +621000 ekin = 9.13928884697304 | erot = 8.81846717426335 | epot = -72.4143913047831 | etot = -54.4566352835467 +622000 ekin = 9.00442091794753 | erot = 8.82459164772566 | epot = -72.2856478480514 | etot = -54.4566352823782 +623000 ekin = 8.86274189509341 | erot = 8.78159561804225 | epot = -72.1009727932514 | etot = -54.4566352801158 +624000 ekin = 8.73276401802021 | erot = 8.70595407666386 | epot = -71.8953533724934 | etot = -54.4566352778093 +625000 ekin = 8.63399867892453 | erot = 8.6182124697542 | epot = -71.708846423948 | etot = -54.4566352752693 +626000 ekin = 8.58565910356922 | erot = 8.53996947434913 | epot = -71.582263850783 | etot = -54.4566352728646 +627000 ekin = 8.60437912920223 | erot = 8.49303514266094 | epot = -71.5540495428028 | etot = -54.4566352709396 +628000 ekin = 8.70176554881456 | erot = 8.49648522564954 | epot = -71.6548860443321 | etot = -54.456635269868 +629000 ekin = 8.88261620996708 | erot = 8.56350717253297 | epot = -71.9027586522068 | etot = -54.4566352697068 +630000 ekin = 9.14296246576545 | erot = 8.70076359814303 | epot = -72.3003613345765 | etot = -54.456635270668 +631000 ekin = 9.4688770435737 | erot = 8.90689930704519 | epot = -72.8324116238827 | etot = -54.4566352732638 +632000 ekin = 9.8336318583032 | erot = 9.17168072086099 | epot = -73.461947855651 | etot = -54.4566352764868 +633000 ekin = 10.205312415491 | erot = 9.47717112293907 | epot = -74.1391188185627 | etot = -54.4566352801326 +634000 ekin = 10.5495376011183 | erot = 9.8018293365467 | epot = -74.808002221223 | etot = -54.4566352835579 +635000 ekin = 10.8340816739795 | erot = 10.1250818406596 | epot = -75.4157988007439 | etot = -54.4566352861047 +636000 ekin = 11.0341363467081 | erot = 10.4317241828093 | epot = -75.9224958167932 | etot = -54.4566352872758 +637000 ekin = 11.1362536304014 | erot = 10.7150791019197 | epot = -76.3079680193905 | etot = -54.4566352870694 +638000 ekin = 11.1393407346171 | erot = 10.9767172063777 | epot = -76.5726932267179 | etot = -54.4566352857231 +639000 ekin = 11.0528857655821 | erot = 11.2245625296839 | epot = -76.7340835789793 | etot = -54.4566352837134 +640000 ekin = 10.8932833750906 | erot = 11.4701066828092 | epot = -76.8200253394056 | etot = -54.4566352815059 +641000 ekin = 10.6798604052278 | erot = 11.7256640733726 | epot = -76.8621597580235 | etot = -54.4566352794231 +642000 ekin = 10.4319158115311 | erot = 12.0024358075229 | epot = -76.8909868967156 | etot = -54.4566352776616 +643000 ekin = 10.1669531872239 | erot = 12.3092359597637 | epot = -76.9328244231637 | etot = -54.4566352761762 +644000 ekin = 9.90018316848564 | erot = 12.6520525446199 | epot = -77.0088709883572 | etot = -54.4566352752517 +645000 ekin = 9.64412813643985 | erot = 13.0323474006194 | epot = -77.1331108119919 | etot = -54.4566352749326 +646000 ekin = 9.40844464392144 | erot = 13.445899808015 | epot = -77.3109797269448 | etot = -54.4566352750084 +647000 ekin = 9.19998842915914 | erot = 13.8831906422576 | epot = -77.5398143472399 | etot = -54.4566352758232 +648000 ekin = 9.02196759879953 | erot = 14.3279062478315 | epot = -77.8065091239426 | etot = -54.4566352773116 +649000 ekin = 8.87356627778827 | erot = 14.7574673823088 | epot = -78.0876689395587 | etot = -54.4566352794617 +650000 ekin = 8.74956009131858 | erot = 15.1439160026106 | epot = -78.3501113761033 | etot = -54.4566352821742 +651000 ekin = 8.64036637406374 | erot = 15.4556053528513 | epot = -78.5526070121591 | etot = -54.456635285244 +652000 ekin = 8.53277201870133 | erot = 15.6598310256647 | epot = -78.6492383326926 | etot = -54.4566352883265 +653000 ekin = 8.41160402390284 | erot = 15.7264979165423 | epot = -78.5947372313765 | etot = -54.4566352909314 +654000 ekin = 8.26240952717994 | erot = 15.6326986256584 | epot = -78.3517434453699 | etot = -54.4566352925316 +655000 ekin = 8.0747558065804 | erot = 15.3674488766155 | epot = -77.8988399757495 | etot = -54.4566352925536 +656000 ekin = 7.85585683290951 | erot = 14.9355978464948 | epot = -77.2480902330419 | etot = -54.4566355536375 +657000 ekin = 6.26754941231325 | erot = 14.5622178162979 | epot = -75.2864023128906 | etot = -54.4566350842794 +658000 ekin = 6.04146739778998 | erot = 14.8336076396148 | epot = -75.3317103841209 | etot = -54.4566353467161 +659000 ekin = 6.38604373423614 | erot = 14.3792060567669 | epot = -75.2218852651894 | etot = -54.4566354741863 +660000 ekin = 6.51806923667787 | erot = 13.6089213615713 | epot = -74.583626071967 | etot = -54.4566354737179 +661000 ekin = 6.66094978027619 | erot = 12.8243584228189 | epot = -73.9419436733112 | etot = -54.4566354702161 +662000 ekin = 6.81847461883888 | erot = 12.0687190077588 | epot = -73.3438290942572 | etot = -54.4566354676595 +663000 ekin = 6.99157703856281 | erot = 11.3763942501033 | epot = -72.8246067547991 | etot = -54.456635466133 +664000 ekin = 7.17716154109741 | erot = 10.7708280861928 | epot = -72.4046250929277 | etot = -54.4566354656374 +665000 ekin = 7.3675134645839 | erot = 10.2651942829219 | epot = -72.0893432136818 | etot = -54.4566354661759 +666000 ekin = 7.55097379428619 | erot = 9.86605911513289 | epot = -71.8736683769863 | etot = -54.4566354675673 +667000 ekin = 7.71560064025504 | erot = 9.56451333310892 | epot = -71.7367494427 | etot = -54.456635469336 +668000 ekin = 7.84958438766926 | erot = 9.34368947191058 | epot = -71.6499093309775 | etot = -54.4566354713976 +669000 ekin = 7.94295016386841 | erot = 9.18181390482315 | epot = -71.5813995420007 | etot = -54.4566354733091 +670000 ekin = 7.98916842115041 | erot = 9.05573401740469 | epot = -71.5015379133589 | etot = -54.4566354748038 +671000 ekin = 7.98640376802285 | erot = 8.9438936881866 | epot = -71.3869329318896 | etot = -54.4566354756801 +672000 ekin = 7.93814945498434 | erot = 8.82870298531564 | epot = -71.2234879161406 | etot = -54.4566354758406 +673000 ekin = 7.8537861028125 | erot = 8.69868774368351 | epot = -71.0091093212669 | etot = -54.4566354747709 +674000 ekin = 7.74799942745653 | erot = 8.54952007571503 | epot = -70.754154976792 | etot = -54.4566354736204 +675000 ekin = 7.63655278418813 | erot = 8.38180900835833 | epot = -70.4749972647102 | etot = -54.4566354721638 +676000 ekin = 7.53535852002373 | erot = 8.20065006867783 | epot = -70.1926440593739 | etot = -54.4566354706724 +677000 ekin = 7.45814475128924 | erot = 8.01383837145781 | epot = -69.9286185924985 | etot = -54.4566354697515 +678000 ekin = 7.41094295257362 | erot = 7.82760230140571 | epot = -69.6951807230087 | etot = -54.4566354690294 +679000 ekin = 7.39592235494237 | erot = 7.64827405778973 | epot = -69.5008318814476 | etot = -54.4566354687155 +680000 ekin = 7.41177806099165 | erot = 7.48365592355136 | epot = -69.3520694528015 | etot = -54.4566354682585 +681000 ekin = 7.45331527398533 | erot = 7.34392547755159 | epot = -69.2538762205311 | etot = -54.4566354689942 +682000 ekin = 7.50955937699447 | erot = 7.23029783102035 | epot = -69.1964926779924 | etot = -54.4566354699776 +683000 ekin = 7.56739476563308 | erot = 7.14126315258949 | epot = -69.1652933892642 | etot = -54.4566354710416 +684000 ekin = 7.61376409146323 | erot = 7.07385958562239 | epot = -69.1442591490601 | etot = -54.4566354719745 +685000 ekin = 7.63746698434793 | erot = 7.02460383230475 | epot = -69.1187062894122 | etot = -54.4566354727596 +686000 ekin = 7.63051953634283 | erot = 6.98951954533694 | epot = -69.0766745549284 | etot = -54.4566354732486 +687000 ekin = 7.5888614055269 | erot = 6.9642888409131 | epot = -69.0097857199425 | etot = -54.4566354735025 +688000 ekin = 7.51237784441295 | erot = 6.94436871138863 | epot = -68.913382029102 | etot = -54.4566354733004 +689000 ekin = 7.40504576869775 | erot = 6.92768230554917 | epot = -68.7893635471216 | etot = -54.4566354728746 +690000 ekin = 7.2738213082913 | erot = 6.91296338855719 | epot = -68.6434201691413 | etot = -54.4566354722928 +691000 ekin = 7.12767077386446 | erot = 6.8994786138555 | epot = -68.4837848593432 | etot = -54.4566354716233 +692000 ekin = 6.97662396691413 | erot = 6.88703034396566 | epot = -68.3202897818029 | etot = -54.4566354709231 +693000 ekin = 6.83191834521804 | erot = 6.8766124382546 | epot = -68.1651662534375 | etot = -54.4566354699649 +694000 ekin = 6.70652274539129 | erot = 6.87114213827601 | epot = -68.0343003531198 | etot = -54.4566354694525 +695000 ekin = 6.6080964549702 | erot = 6.87168002795425 | epot = -67.9364119519728 | etot = -54.4566354690483 +696000 ekin = 6.54192055188977 | erot = 6.87954258792384 | epot = -67.8780986086002 | etot = -54.4566354687865 +697000 ekin = 6.51083965229348 | erot = 6.89633668057611 | epot = -67.8638118015878 | etot = -54.4566354687182 +698000 ekin = 6.51499125639776 | erot = 6.92351826953845 | epot = -67.8951449951683 | etot = -54.4566354692321 +699000 ekin = 6.55055681857638 | erot = 6.96165096856071 | epot = -67.9688432565943 | etot = -54.4566354694572 +700000 ekin = 6.61234823813492 | erot = 7.01150759223358 | epot = -68.0804913002871 | etot = -54.4566354699186 +701000 ekin = 6.69387980259486 | erot = 7.07317762178765 | epot = -68.2236928948399 | etot = -54.4566354704574 +702000 ekin = 6.78728068984252 | erot = 7.14568383977262 | epot = -68.3896000007052 | etot = -54.4566354710901 +703000 ekin = 6.88400379173301 | erot = 7.22737250161383 | epot = -68.5680117651102 | etot = -54.4566354717634 +704000 ekin = 6.9755683283792 | erot = 7.31572261063307 | epot = -68.7479264114309 | etot = -54.4566354724186 +705000 ekin = 7.05425772044827 | erot = 7.40762548354984 | epot = -68.918518676989 | etot = -54.4566354729909 +706000 ekin = 7.11369388312852 | erot = 7.49985325015459 | epot = -69.0701826067035 | etot = -54.4566354734204 +707000 ekin = 7.14922746291453 | erot = 7.58965466907143 | epot = -69.1955176056455 | etot = -54.4566354736595 +708000 ekin = 7.15811920577057 | erot = 7.6753716118719 | epot = -69.2901262913224 | etot = -54.45663547368 +709000 ekin = 7.13952646260787 | erot = 7.75695073870288 | epot = -69.3531126747875 | etot = -54.4566354734768 +710000 ekin = 7.09433523089743 | erot = 7.83623493467237 | epot = -69.3872056386393 | etot = -54.4566354730695 +711000 ekin = 7.02488197439733 | erot = 7.91695244606741 | epot = -69.3984698929695 | etot = -54.4566354725047 +712000 ekin = 6.93460038930963 | erot = 8.00437692967913 | epot = -69.3956127908343 | etot = -54.4566354718455 +713000 ekin = 6.82762548689843 | erot = 8.10469988090539 | epot = -69.3889608389937 | etot = -54.4566354711898 +714000 ekin = 6.70839192372885 | erot = 8.22401944316087 | epot = -69.3890468375048 | etot = -54.4566354706151 +715000 ekin = 6.58127350483518 | erot = 8.36737765964063 | epot = -69.4052866346802 | etot = -54.4566354702044 +716000 ekin = 6.45031596781454 | erot = 8.53776210682282 | epot = -69.4447135446588 | etot = -54.4566354700214 +717000 ekin = 6.31910573967135 | erot = 8.73523312781141 | epot = -69.5109743375848 | etot = -54.4566354701021 +718000 ekin = 6.19080028787852 | erot = 8.95633319732517 | epot = -69.6037689556476 | etot = -54.4566354704439 +719000 ekin = 6.06832299313999 | erot = 9.19390878350935 | epot = -69.7188672476532 | etot = -54.4566354710038 +720000 ekin = 5.95470075029213 | erot = 9.43744070378272 | epot = -69.848776925771 | etot = -54.4566354716962 +721000 ekin = 5.85349202512794 | erot = 9.67392180067373 | epot = -69.984049298204 | etot = -54.4566354724024 +722000 ekin = 5.7692181161866 | erot = 9.88920295788338 | epot = -70.115056547069 | etot = -54.4566354729991 +723000 ekin = 5.7076753508952 | erot = 10.0695468208552 | epot = -70.2338576451068 | etot = -54.4566354733563 +724000 ekin = 5.67599154890889 | erot = 10.2035425526933 | epot = -70.3361695749994 | etot = -54.4566354733972 +725000 ekin = 5.6823071244365 | erot = 10.2835870142678 | epot = -70.4225296118105 | etot = -54.4566354731061 +726000 ekin = 5.73502013958649 | erot = 10.3068600066592 | epot = -70.4985156187871 | etot = -54.4566354725414 +727000 ekin = 5.84163680643593 | erot = 10.2756197556458 | epot = -70.5738920339005 | etot = -54.4566354718188 +728000 ekin = 6.00741477144206 | erot = 10.1968335781523 | epot = -70.6608838206683 | etot = -54.4566354710739 +729000 ekin = 6.23399006286944 | erot = 10.0813630553867 | epot = -70.7719885887239 | etot = -54.4566354704678 +730000 ekin = 6.51828052766968 | erot = 9.9426735456371 | epot = -70.9175895434409 | etot = -54.4566354701342 +731000 ekin = 6.85187412407457 | erot = 9.79530805493521 | epot = -71.1038176491845 | etot = -54.4566354701747 +732000 ekin = 7.22103408686053 | erot = 9.65327415428921 | epot = -71.3309437117948 | etot = -54.456635470645 +733000 ekin = 7.6073019302977 | erot = 9.5288012152138 | epot = -71.5927386169948 | etot = -54.4566354714833 +734000 ekin = 7.98880332436974 | erot = 9.43074706134312 | epot = -71.8761858584825 | etot = -54.4566354727696 +735000 ekin = 8.34212509376477 | erot = 9.36330983351514 | epot = -72.1620704015887 | etot = -54.4566354743088 +736000 ekin = 8.64442251579602 | erot = 9.3261997193473 | epot = -72.4272577110702 | etot = -54.4566354759269 +737000 ekin = 8.87574972642309 | erot = 9.31509601121895 | epot = -72.6474812150474 | etot = -54.4566354774053 +738000 ekin = 9.0213063017174 | erot = 9.32284410471813 | epot = -72.8007858849472 | etot = -54.4566354785117 +739000 ekin = 9.07331880502731 | erot = 9.34118914838286 | epot = -72.8711434324511 | etot = -54.4566354790409 +740000 ekin = 9.0322576373975 | erot = 9.36274956107302 | epot = -72.8516426773234 | etot = -54.4566354788529 +741000 ekin = 8.90713122013885 | erot = 9.38285576883458 | epot = -72.7466224668824 | etot = -54.4566354779089 +742000 ekin = 8.71472462487314 | erot = 9.40075675434409 | epot = -72.5721168556042 | etot = -54.4566354763869 +743000 ekin = 8.47795966699129 | erot = 9.41969955783427 | epot = -72.3542946989535 | etot = -54.456635474128 +744000 ekin = 8.22400086783694 | erot = 9.44765885711039 | epot = -72.128295196838 | etot = -54.4566354718907 +745000 ekin = 7.97989641728011 | erot = 9.49406284314475 | epot = -71.9305947302623 | etot = -54.4566354698375 +746000 ekin = 7.76957023228948 | erot = 9.56762699730313 | epot = -71.7938326979078 | etot = -54.4566354683152 +747000 ekin = 7.6113281427099 | erot = 9.67405775027494 | epot = -71.7420213607043 | etot = -54.4566354677194 +748000 ekin = 7.51608906093837 | erot = 9.81227809034228 | epot = -71.7850026195292 | etot = -54.4566354682486 +749000 ekin = 7.48509635032519 | erot = 9.97286752414425 | epot = -71.9145993443936 | etot = -54.4566354699242 +750000 ekin = 7.51020628170433 | erot = 10.1380775195597 | epot = -72.1049192737248 | etot = -54.4566354724607 +751000 ekin = 7.57538607459301 | erot = 10.2842078236672 | epot = -72.3162293736845 | etot = -54.4566354754243 +752000 ekin = 7.6598576786284 | erot = 10.3856021559112 | epot = -72.5020953127697 | etot = -54.4566354782301 +753000 ekin = 7.7418988706293 | erot = 10.419001280771 | epot = -72.6175356320473 | etot = -54.456635480647 +754000 ekin = 7.80244855950124 | erot = 10.368071576505 | epot = -72.6271556175909 | etot = -54.4566354815847 +755000 ekin = 7.83000162070187 | erot = 10.2279599096749 | epot = -72.5145970115927 | etot = -54.4566354812159 +756000 ekin = 7.82097337516333 | erot = 10.0059197104044 | epot = -72.2835285652056 | etot = -54.4566354796378 +757000 ekin = 7.77934134709385 | erot = 9.72019517220502 | epot = -71.9561719964632 | etot = -54.4566354771644 +758000 ekin = 7.71519090757765 | erot = 9.39692989176329 | epot = -71.568756273533 | etot = -54.4566354741921 +759000 ekin = 7.64279612361687 | erot = 9.06591672496539 | epot = -71.1653483197966 | etot = -54.4566354712144 +760000 ekin = 7.57755088529913 | erot = 8.75627990045572 | epot = -70.790466254363 | etot = -54.4566354686081 +761000 ekin = 7.53416140037988 | erot = 8.49239651708238 | epot = -70.4831933841097 | etot = -54.4566354666474 +762000 ekin = 7.52513654522363 | erot = 8.29092896402533 | epot = -70.2727009748576 | etot = -54.4566354656086 +763000 ekin = 7.55953487188996 | erot = 8.15857993676166 | epot = -70.1747502740048 | etot = -54.4566354653532 +764000 ekin = 7.64294215278388 | erot = 8.09284507803136 | epot = -70.1924226970296 | etot = -54.4566354662144 +765000 ekin = 7.77642284077532 | erot = 8.08170347279627 | epot = -70.3147617810319 | etot = -54.4566354674603 +766000 ekin = 7.9583426106239 | erot = 8.1071156497746 | epot = -70.5220937294762 | etot = -54.4566354690777 +767000 ekin = 8.18472660663812 | erot = 8.14791972853061 | epot = -70.7892818060129 | etot = -54.4566354708442 +768000 ekin = 8.44981765182505 | erot = 8.18277444598896 | epot = -71.0892275702847 | etot = -54.4566354724707 +769000 ekin = 8.74694394955809 | erot = 8.1934102761401 | epot = -71.3969896994077 | etot = -54.4566354737095 +770000 ekin = 9.06740299947994 | erot = 8.1668925870822 | epot = -71.6909310620033 | etot = -54.4566354754411 +771000 ekin = 9.40024405592185 | erot = 8.0972704268396 | epot = -71.9541499583046 | etot = -54.4566354755431 +772000 ekin = 9.7392466767354 | erot = 7.98875570216604 | epot = -72.1846378540219 | etot = -54.4566354751204 +773000 ekin = 10.0787428377271 | erot = 7.85333550379026 | epot = -72.3887138158951 | etot = -54.4566354743777 +774000 ekin = 10.4126881201152 | erot = 7.7083958703643 | epot = -72.5777194640539 | etot = -54.4566354735744 +775000 ekin = 10.7338614307151 | erot = 7.57363952830843 | epot = -72.7641364319749 | etot = -54.4566354729514 +776000 ekin = 11.0333888249733 | erot = 7.46794248970476 | epot = -72.9579667873444 | etot = -54.4566354726664 +777000 ekin = 11.3009163259239 | erot = 7.4067879580252 | epot = -73.1643397567044 | etot = -54.4566354727553 +778000 ekin = 11.5255306315342 | erot = 7.40073666286383 | epot = -73.3829027675338 | etot = -54.4566354731358 +779000 ekin = 11.6972525421016 | erot = 7.45497855956651 | epot = -73.6088665753392 | etot = -54.4566354736712 +780000 ekin = 11.8087202600939 | erot = 7.56970994296815 | epot = -73.8350656772622 | etot = -54.4566354742001 +781000 ekin = 11.8566181530578 | erot = 7.74100457483039 | epot = -74.0542582025001 | etot = -54.456635474612 +782000 ekin = 11.8424717374629 | erot = 7.96169824312067 | epot = -74.2608054554455 | etot = -54.4566354748619 +783000 ekin = 11.7726960688138 | erot = 8.22211610465601 | epot = -74.451447648427 | etot = -54.4566354749572 +784000 ekin = 11.6588151949644 | erot = 8.51079893970591 | epot = -74.626249609301 | etot = -54.4566354746306 +785000 ekin = 11.5160383797427 | erot = 8.81490190990078 | epot = -74.7875757641929 | etot = -54.4566354745495 +786000 ekin = 11.3604671764187 | erot = 9.12050352622682 | epot = -74.9376061770405 | etot = -54.456635474395 +787000 ekin = 11.2093970331482 | erot = 9.41374363427949 | epot = -75.0797761415915 | etot = -54.4566354741638 +788000 ekin = 11.0803298420515 | erot = 9.68171559586226 | epot = -75.2186809117856 | etot = -54.4566354738718 +789000 ekin = 10.990015347853 | erot = 9.91340849393361 | epot = -75.3600593153028 | etot = -54.4566354735162 +790000 ekin = 10.9532761013188 | erot = 10.1003645461521 | epot = -75.5102761206814 | etot = -54.4566354732105 +791000 ekin = 10.9812861942009 | erot = 10.2367032936414 | epot = -75.6746249609582 | etot = -54.4566354731158 +792000 ekin = 11.07959853459 | erot = 10.3187114954021 | epot = -75.8549455033984 | etot = -54.4566354734063 +793000 ekin = 11.2461815583943 | erot = 10.3441470521576 | epot = -76.04696408486 | etot = -54.4566354743081 +794000 ekin = 11.4700109610192 | erot = 10.3116670234223 | epot = -76.2383134599886 | etot = -54.4566354755471 +795000 ekin = 11.7325834354277 | erot = 10.2211808754199 | epot = -76.4103997878417 | etot = -54.456635476994 +796000 ekin = 12.0100258299308 | erot = 10.0748477065846 | epot = -76.5415090147597 | etot = -54.4566354782444 +797000 ekin = 12.2771250349956 | erot = 9.8787246438661 | epot = -76.6124851577628 | etot = -54.4566354789011 +798000 ekin = 12.5117241722713 | erot = 9.64405687332679 | epot = -76.6124165243526 | etot = -54.4566354787545 +799000 ekin = 12.6978884572411 | erot = 9.38719424491272 | epot = -76.5417181800251 | etot = -54.4566354778713 +800000 ekin = 12.8269839019128 | erot = 9.12779516055864 | epot = -76.4114145390006 | etot = -54.4566354765292 +801000 ekin = 12.8968371081739 | erot = 8.8858893983962 | epot = -76.2393619816496 | etot = -54.4566354750795 +802000 ekin = 12.9098422516567 | erot = 8.67886362135672 | epot = -76.0453413468272 | etot = -54.4566354738138 +803000 ekin = 12.8709437100201 | erot = 8.51925810389878 | epot = -75.8468372868222 | etot = -54.4566354729032 +804000 ekin = 12.7860755415627 | erot = 8.41392281565234 | epot = -75.6566338295777 | etot = -54.4566354723626 +805000 ekin = 12.6610782480597 | erot = 8.36419460868408 | epot = -75.4819083289771 | etot = -54.4566354722333 +806000 ekin = 12.5011884973858 | erot = 8.36563299489813 | epot = -75.3234569648038 | etot = -54.4566354725198 +807000 ekin = 12.3111195445504 | erot = 8.40891169865597 | epot = -75.1766667162171 | etot = -54.4566354730107 +808000 ekin = 12.095121368734 | erot = 8.48285306305284 | epot = -75.0346099055361 | etot = -54.4566354737493 +809000 ekin = 11.8570912953974 | erot = 8.57364419050982 | epot = -74.8873709604715 | etot = -54.4566354745643 +810000 ekin = 11.6008292340201 | erot = 8.66613366753602 | epot = -74.7235983769252 | etot = -54.4566354753691 +811000 ekin = 11.3302304258769 | erot = 8.74588715341365 | epot = -74.5327530553702 | etot = -54.4566354760797 +812000 ekin = 11.0494304355196 | erot = 8.80043497508578 | epot = -74.3065008872132 | etot = -54.4566354766079 +813000 ekin = 10.7661929388064 | erot = 8.82092143844872 | epot = -74.0437498529341 | etot = -54.456635475679 +814000 ekin = 10.4922967616633 | erot = 8.80392368468693 | epot = -73.7528559227946 | etot = -54.4566354764443 +815000 ekin = 10.1508207490589 | erot = 8.72967512609349 | epot = -73.3371313414895 | etot = -54.4566354663372 +816000 ekin = 10.0080919366186 | erot = 8.60822868160767 | epot = -73.0729560943078 | etot = -54.4566354760815 +817000 ekin = 9.94176631885301 | erot = 8.48405485445375 | epot = -72.8824566317337 | etot = -54.4566354584269 +818000 ekin = 9.81594850430121 | erot = 8.3555940593633 | epot = -72.6281780195219 | etot = -54.4566354558574 +819000 ekin = 9.71985113500631 | erot = 8.23701168824747 | epot = -72.4134982795336 | etot = -54.4566354562799 +820000 ekin = 9.65376512613598 | erot = 8.15015673057928 | epot = -72.2605573107521 | etot = -54.4566354540368 +821000 ekin = 9.62982370506 | erot = 8.1144853144284 | epot = -72.2009444716718 | etot = -54.4566354521834 +822000 ekin = 9.66077700454417 | erot = 8.14425821633497 | epot = -72.2616706720654 | etot = -54.4566354511863 +823000 ekin = 9.75392749286654 | erot = 8.24624180246886 | epot = -72.4568047466621 | etot = -54.4566354513267 +824000 ekin = 9.90828878172196 | erot = 8.41865138430695 | epot = -72.7835756186504 | etot = -54.4566354526215 +825000 ekin = 10.1139944761915 | erot = 8.65151311646557 | epot = -73.2221430475064 | etot = -54.4566354548493 +826000 ekin = 10.3538759474141 | erot = 8.92820306631524 | epot = -73.7387144713783 | etot = -54.456635457649 +827000 ekin = 10.6063389826515 | erot = 9.22772390081661 | epot = -74.2906983441037 | etot = -54.4566354606357 +828000 ekin = 10.8484921435448 | erot = 9.52726891661857 | epot = -74.8323965236266 | etot = -54.4566354634633 +829000 ekin = 11.0588299501949 | erot = 9.80476940800405 | epot = -75.3202348240482 | etot = -54.4566354658492 +830000 ekin = 11.2192526327726 | erot = 10.0413124779358 | epot = -75.717200578269 | etot = -54.4566354675605 +831000 ekin = 11.3164768756616 | erot = 10.2234037407987 | epot = -75.996516084876 | etot = -54.4566354684156 +832000 ekin = 11.3429029406333 | erot = 10.3449490492889 | epot = -76.1444874582283 | etot = -54.456635468306 +833000 ekin = 11.2968956967637 | erot = 10.4085990339157 | epot = -76.162130197922 | etot = -54.4566354672427 +834000 ekin = 11.1823662954097 | erot = 10.4259018262208 | epot = -76.0649035870926 | etot = -54.4566354654621 +835000 ekin = 11.0075932321863 | erot = 10.4150642921595 | epot = -75.8792929875085 | etot = -54.4566354631627 +836000 ekin = 10.7833921149651 | erot = 10.3989545533777 | epot = -75.6389821291538 | etot = -54.4566354608111 +837000 ekin = 10.5209501551067 | erot = 10.4011161497741 | epot = -75.3787017636982 | etot = -54.4566354588174 +838000 ekin = 10.2298721897633 | erot = 10.4412405801904 | epot = -75.1277482274284 | etot = -54.4566354574746 +839000 ekin = 9.91696986338476 | erot = 10.5315530525419 | epot = -74.9051583728945 | etot = -54.4566354569678 +840000 ekin = 9.58610156142556 | erot = 10.6755294545447 | epot = -74.7182664730479 | etot = -54.4566354570776 +841000 ekin = 9.23901842928916 | erot = 10.868774358766 | epot = -74.5644282456966 | etot = -54.4566354576414 +842000 ekin = 8.87685056109889 | erot = 11.1001329244443 | epot = -74.4336189441309 | etot = -54.4566354585878 +843000 ekin = 8.50173060237332 | erot = 11.3524188663853 | epot = -74.3107849279809 | etot = -54.4566354592223 +844000 ekin = 8.11795575234117 | erot = 11.6095427521759 | epot = -74.1841339640736 | etot = -54.4566354595565 +845000 ekin = 7.7323636156346 | erot = 11.8578438186145 | epot = -74.0468428937419 | etot = -54.4566354594928 +846000 ekin = 7.35399612877582 | erot = 12.0875238819869 | epot = -73.8981554697915 | etot = -54.4566354590287 +847000 ekin = 6.99323530269368 | erot = 12.2936929402636 | epot = -73.7435637011866 | etot = -54.4566354582293 +848000 ekin = 6.66076569764054 | erot = 12.4765135053587 | epot = -73.5939146602003 | etot = -54.456635457201 +849000 ekin = 6.3666800328782 | erot = 12.6405664290078 | epot = -73.463881917943 | etot = -54.4566354560569 +850000 ekin = 6.11988143346162 | erot = 12.7936422802312 | epot = -73.370159168615 | etot = -54.4566354549222 +851000 ekin = 5.92776024228382 | erot = 12.9452003507133 | epot = -73.3295960469045 | etot = -54.4566354539074 +852000 ekin = 5.7960279636932 | erot = 13.1047455615212 | epot = -73.3574089783272 | etot = -54.4566354531128 +853000 ekin = 5.72859704154505 | erot = 13.2803568756409 | epot = -73.4655893698171 | etot = -54.4566354526311 +854000 ekin = 5.72746205361538 | erot = 13.4775571124567 | epot = -73.6616546185709 | etot = -54.4566354524988 +855000 ekin = 5.79260154211897 | erot = 13.6986462729931 | epot = -73.9478832678393 | etot = -54.4566354527273 +856000 ekin = 5.92195007058806 | erot = 13.9425386772803 | epot = -74.3211242011602 | etot = -54.4566354532919 +857000 ekin = 6.11148060847962 | erot = 14.2050613164675 | epot = -74.7731773790806 | etot = -54.4566354541334 +858000 ekin = 6.35540247730945 | erot = 14.4795962342016 | epot = -75.2916341666887 | etot = -54.4566354551777 +859000 ekin = 6.64643750031564 | erot = 14.7578922330507 | epot = -75.860965189721 | etot = -54.4566354563546 +860000 ekin = 6.97610349831166 | erot = 15.0308449598814 | epot = -76.4635839158042 | etot = -54.4566354576112 +861000 ekin = 7.33492493635959 | erot = 15.289067930086 | epot = -77.0806283253769 | etot = -54.4566354589313 +862000 ekin = 7.71251467471118 | erot = 15.5231591806985 | epot = -77.6923093157332 | etot = -54.4566354603235 +863000 ekin = 8.09752575485436 | erot = 15.7236923479273 | epot = -78.2778535645947 | etot = -54.456635461813 +864000 ekin = 8.47754136486755 | erot = 15.8810831527511 | epot = -78.8152599810321 | etot = -54.4566354634134 +865000 ekin = 8.83903083983137 | erot = 15.9855505169287 | epot = -79.2812168218629 | etot = -54.4566354651028 +866000 ekin = 9.16752990644855 | erot = 16.0273731149892 | epot = -79.6515384882424 | etot = -54.4566354668046 +867000 ekin = 9.4481948353974 | erot = 15.9975398653769 | epot = -79.9023701691577 | etot = -54.4566354683834 +868000 ekin = 9.66683066871462 | erot = 15.8887400708328 | epot = -80.012206209204 | etot = -54.4566354696565 +869000 ekin = 9.8114021146704 | erot = 15.6964846393668 | epot = -79.964522224461 | etot = -54.4566354704238 +870000 ekin = 9.87390363902202 | erot = 15.4200471695787 | epot = -79.7505862791116 | etot = -54.456635470511 +871000 ekin = 9.85230952587241 | erot = 15.0629113171792 | epot = -79.3718563128587 | etot = -54.4566354698071 +872000 ekin = 9.75218730795529 | erot = 14.6325332985615 | epot = -78.8413560748222 | etot = -54.4566354683054 +873000 ekin = 9.58749579133931 | erot = 14.1394452328893 | epot = -78.183576490343 | etot = -54.4566354661144 +874000 ekin = 9.38014472385971 | erot = 13.5959424946698 | epot = -77.4327226819843 | etot = -54.4566354634548 +875000 ekin = 9.15807680462459 | erot = 13.0147078021408 | epot = -76.6294200673967 | etot = -54.4566354606314 +876000 ekin = 8.95192933203906 | erot = 12.4076841945648 | epot = -75.8162489845978 | etot = -54.4566354579939 +877000 ekin = 8.79071144336724 | erot = 11.7853760071416 | epot = -75.0327229063821 | etot = -54.4566354558733 +878000 ekin = 8.69731943583637 | erot = 11.1566317214023 | epot = -74.310586611744 | etot = -54.4566354545054 +879000 ekin = 8.68495451678148 | erot = 10.5288962872035 | epot = -73.6704862579504 | etot = -54.4566354539655 +880000 ekin = 8.75541640185982 | erot = 9.90888240824182 | epot = -73.1209342642439 | etot = -54.4566354541422 +881000 ekin = 8.89974452930202 | erot = 9.30353954408173 | epot = -72.6599195281517 | etot = -54.456635454768 +882000 ekin = 9.10092859928086 | erot = 8.72108289022328 | epot = -72.2786469450228 | etot = -54.4566354555187 +883000 ekin = 9.33776725236377 | erot = 8.1717467740479 | epot = -71.9661494825224 | etot = -54.4566354561108 +884000 ekin = 9.58873539184783 | erot = 7.66794414584009 | epot = -71.7133149940681 | etot = -54.4566354563802 +885000 ekin = 9.83498174995039 | erot = 7.22368667477458 | epot = -71.5153038810174 | etot = -54.4566354562924 +886000 ekin = 10.0620936935129 | erot = 6.85337791008391 | epot = -71.3721070595131 | etot = -54.4566354559163 +887000 ekin = 10.2607225026047 | erot = 6.57029245227609 | epot = -71.287650410252 | etot = -54.4566354553712 +888000 ekin = 10.4263755446762 | erot = 6.3850930045279 | epot = -71.2681040039977 | etot = -54.4566354547936 +889000 ekin = 10.5586710815122 | erot = 6.30462943881654 | epot = -71.3199359746427 | etot = -54.456635454314 +890000 ekin = 10.6602540895274 | erot = 6.33111707545905 | epot = -71.44800661904 | etot = -54.4566354540535 +891000 ekin = 10.7355099947677 | erot = 6.46170576299619 | epot = -71.6538512118778 | etot = -54.4566354541139 +892000 ekin = 10.7892241407025 | erot = 6.68844891424348 | epot = -71.9343085095022 | etot = -54.4566354545561 +893000 ekin = 10.8253819949029 | erot = 6.99871565288043 | epot = -72.2807331031711 | etot = -54.4566354553878 +894000 ekin = 10.8463299663516 | erot = 7.37610035055649 | epot = -72.6790657734492 | etot = -54.4566354565412 +895000 ekin = 10.8524754865981 | erot = 7.80183940290034 | epot = -73.1109503473759 | etot = -54.4566354578775 +896000 ekin = 10.84258586903 | erot = 8.25664380955676 | epot = -73.5558651377955 | etot = -54.4566354592087 +897000 ekin = 10.8145780999804 | erot = 8.72272211943533 | epot = -73.9939356797506 | etot = -54.4566354603349 +898000 ekin = 10.7665424606173 | erot = 9.1856480440094 | epot = -74.408825965727 | etot = -54.4566354611003 +899000 ekin = 10.6976805035067 | erot = 9.63567769337116 | epot = -74.789993658306 | etot = -54.4566354614281 +900000 ekin = 10.6088887087511 | erot = 10.0681851806665 | epot = -75.1337093507649 | etot = -54.4566354613474 +901000 ekin = 10.5028530073684 | erot = 10.4830654352253 | epot = -75.4425539035738 | etot = -54.4566354609801 +902000 ekin = 10.3836771774617 | erot = 10.8832063666161 | epot = -75.7235190045867 | etot = -54.4566354605089 +903000 ekin = 10.2561979891409 | erot = 11.2723815659219 | epot = -75.985215015189 | etot = -54.4566354601263 +904000 ekin = 10.1252127005267 | erot = 11.6530755865379 | epot = -76.2349237470494 | etot = -54.4566354599848 +905000 ekin = 9.99485047044316 | erot = 12.0247708238758 | epot = -76.4762567544754 | etot = -54.4566354601564 +906000 ekin = 9.86826182518682 | erot = 12.3830923598489 | epot = -76.7079896456546 | etot = -54.4566354606189 +907000 ekin = 9.74769326327307 | erot = 12.7199654419163 | epot = -76.924294166461 | etot = -54.4566354612716 +908000 ekin = 9.6348832193475 | erot = 13.024659584046 | epot = -77.1161782653647 | etot = -54.4566354619712 +909000 ekin = 9.53160068472316 | erot = 13.2853599354225 | epot = -77.273596082726 | etot = -54.4566354625803 +910000 ekin = 9.44009501998267 | erot = 13.4908067508291 | epot = -77.3875372338177 | etot = -54.4566354630059 +911000 ekin = 9.36326455556987 | erot = 13.631625237421 | epot = -77.4515252562038 | etot = -54.4566354632128 +912000 ekin = 9.30446941108009 | erot = 13.7011923330762 | epot = -77.4622972073668 | etot = -54.4566354632104 +913000 ekin = 9.26705259279243 | erot = 13.6961250397873 | epot = -77.419813095607 | etot = -54.4566354630273 +914000 ekin = 9.25372341950282 | erot = 13.6165806075345 | epot = -77.3269394897264 | etot = -54.4566354626891 +915000 ekin = 9.26596340709781 | erot = 13.4664769842524 | epot = -77.1890758535679 | etot = -54.4566354622177 +916000 ekin = 9.30355576104106 | erot = 13.2535559655947 | epot = -77.0137471882823 | etot = -54.4566354616466 +917000 ekin = 9.36426903859647 | erot = 12.9890809272832 | epot = -76.8099854269176 | etot = -54.4566354610379 +918000 ekin = 9.4436910117618 | erot = 12.6869990270094 | epot = -76.5873254992422 | etot = -54.456635460471 +919000 ekin = 9.53522052883235 | erot = 12.3625891360082 | epot = -76.3544451248811 | etot = -54.4566354600405 +920000 ekin = 9.63025415659348 | erot = 12.0308380430208 | epot = -76.1177276594267 | etot = -54.4566354598124 +921000 ekin = 9.71861106513001 | erot = 11.7049052778984 | epot = -75.8801518028528 | etot = -54.4566354598243 +922000 ekin = 9.78920770645238 | erot = 11.3950002815838 | epot = -75.6408434480852 | etot = -54.456635460049 +923000 ekin = 9.83093885318482 | erot = 11.1078500465709 | epot = -75.3954243601764 | etot = -54.4566354604207 +924000 ekin = 9.83367208380175 | erot = 10.8467682564238 | epot = -75.1370758010691 | etot = -54.4566354608435 +925000 ekin = 9.78923699201468 | erot = 10.6122146416912 | epot = -74.8580870949111 | etot = -54.4566354612052 +926000 ekin = 9.69228799632639 | erot = 10.4026778523663 | epot = -74.5516013101013 | etot = -54.4566354614087 +927000 ekin = 9.54094420683278 | erot = 10.2157130837765 | epot = -74.2132927519792 | etot = -54.4566354613699 +928000 ekin = 9.33714598597803 | erot = 10.048997614272 | epot = -73.8427790612797 | etot = -54.4566354610296 +929000 ekin = 9.08668869602515 | erot = 9.90129105968178 | epot = -73.4446152160675 | etot = -54.4566354603605 +930000 ekin = 8.79893949163162 | erot = 9.77317491044917 | epot = -73.0287498614586 | etot = -54.4566354593778 +931000 ekin = 8.48625276387823 | erot = 9.66741161206176 | epot = -72.6102998340871 | etot = -54.4566354581471 +932000 ekin = 8.16311074516661 | erot = 9.58874585511257 | epot = -72.2084920570715 | etot = -54.4566354567923 +933000 ekin = 7.84503269783002 | erot = 9.54303556692145 | epot = -71.8447037202439 | etot = -54.4566354554924 +934000 ekin = 7.54732721406884 | erot = 9.53576382286218 | epot = -71.5397264913837 | etot = -54.4566354544527 +935000 ekin = 7.28379852834082 | erot = 9.57018935595719 | epot = -71.3106233381741 | etot = -54.4566354538761 +936000 ekin = 7.06554340230337 | erot = 9.64555160737715 | epot = -71.1677304635952 | etot = -54.4566354539147 +937000 ekin = 6.89998137838108 | erot = 9.75579580008181 | epot = -71.1124126331005 | etot = -54.4566354546376 +938000 ekin = 6.79024863687593 | erot = 9.88921936744704 | epot = -71.1361034603281 | etot = -54.4566354560052 +939000 ekin = 6.735056987497 | erot = 10.0294464267282 | epot = -71.2211388720331 | etot = -54.4566354578079 +940000 ekin = 6.72907691270157 | erot = 10.1573224430746 | epot = -71.3430348156733 | etot = -54.4566354598971 +941000 ekin = 6.76383923217314 | erot = 10.2535241006628 | epot = -71.4739987947202 | etot = -54.4566354618843 +942000 ekin = 6.82912409651702 | erot = 10.3022923171746 | epot = -71.5880518771031 | etot = -54.4566354634114 +943000 ekin = 6.91476596969959 | erot = 10.294631540558 | epot = -71.6660329744293 | etot = -54.4566354641717 +944000 ekin = 7.0126905355688 | erot = 10.2304790515559 | epot = -71.6998050511037 | etot = -54.456635463979 +945000 ekin = 7.11873167354183 | erot = 10.1191217606733 | epot = -71.6944888970905 | etot = -54.4566354628754 +946000 ekin = 7.23341535199415 | erot = 9.97742521428975 | epot = -71.6674760274804 | etot = -54.4566354611965 +947000 ekin = 7.36083754474229 | erot = 9.82603454655117 | epot = -71.6435075508161 | etot = -54.4566354595226 +948000 ekin = 7.50549771867113 | erot = 9.68450715330014 | epot = -71.64664033044 | etot = -54.4566354584687 +949000 ekin = 7.6683659029019 | erot = 9.56693750753481 | epot = -71.6919388688308 | etot = -54.4566354583941 +950000 ekin = 7.84446366558868 | erot = 9.47955332197239 | epot = -71.7806524467887 | etot = -54.4566354592276 +951000 ekin = 8.02362258961447 | erot = 9.42089965823563 | epot = -71.901157708376 | etot = -54.4566354605259 +952000 ekin = 8.19401979348799 | erot = 9.38404388093099 | epot = -72.0346991361836 | etot = -54.4566354617646 +953000 ekin = 8.34627037925309 | erot = 9.35945524408341 | epot = -72.16236108595 | etot = -54.4566354626135 +954000 ekin = 8.47579105977707 | erot = 9.33731466668423 | epot = -72.269741189478 | etot = -54.4566354630167 +955000 ekin = 8.58263553145364 | erot = 9.3088230317301 | epot = -72.3480940262788 | etot = -54.4566354630951 +956000 ekin = 8.66958271589105 | erot = 9.26689225465248 | epot = -72.3931104336158 | etot = -54.4566354630722 +957000 ekin = 8.73983792560592 | erot = 9.20645883849863 | epot = -72.4029322269823 | etot = -54.4566354628778 +958000 ekin = 8.79532848880433 | erot = 9.12577516403045 | epot = -72.3777391154085 | etot = -54.4566354625737 +959000 ekin = 8.835902661134 | erot = 9.02777800329253 | epot = -72.3203161265399 | etot = -54.4566354621134 +960000 ekin = 8.85930075562983 | erot = 8.9205878787414 | epot = -72.2365240958258 | etot = -54.4566354614546 +961000 ekin = 8.86161651518579 | erot = 8.81766202969833 | epot = -72.1359140054711 | etot = -54.4566354605869 +962000 ekin = 8.83799666715819 | erot = 8.73718807966582 | epot = -72.0318202063664 | etot = -54.4566354595424 +963000 ekin = 8.78340386447636 | erot = 8.70071313768174 | epot = -71.9407524605549 | etot = -54.4566354583968 +964000 ekin = 8.69333156505503 | erot = 8.73109905621387 | epot = -71.8810660785369 | etot = -54.456635457268 +965000 ekin = 8.56440365898252 | erot = 8.84996493880353 | epot = -71.8710040540795 | etot = -54.4566354562935 +966000 ekin = 8.39482523790268 | erot = 9.07485296716098 | epot = -71.9263136607 | etot = -54.4566354556363 +967000 ekin = 8.1846781888089 | erot = 9.41644113231655 | epot = -72.0577547765549 | etot = -54.4566354554294 +968000 ekin = 7.93626974423865 | erot = 9.87613374643838 | epot = -72.2690389464832 | etot = -54.4566354558062 +969000 ekin = 7.65431026887565 | erot = 10.4442911839035 | epot = -72.5552369095158 | etot = -54.4566354567367 +970000 ekin = 7.34450165160811 | erot = 11.1010614724754 | epot = -72.9021985821365 | etot = -54.456635458053 +971000 ekin = 7.01497831129744 | erot = 11.8180138556047 | epot = -73.2896276264596 | etot = -54.4566354595575 +972000 ekin = 6.67661988301637 | erot = 12.5610022013245 | epot = -73.6942575453356 | etot = -54.4566354609948 +973000 ekin = 6.34325563528696 | erot = 13.2935365140779 | epot = -74.0934276115446 | etot = -54.4566354621798 +974000 ekin = 6.03126679097362 | erot = 13.9800756161855 | epot = -74.4679778700673 | etot = -54.4566354629081 +975000 ekin = 5.75832704437232 | erot = 14.5910245182133 | epot = -74.8059870256995 | etot = -54.4566354631139 +976000 ekin = 5.54248690288958 | erot = 15.1042545811179 | epot = -75.1033769468906 | etot = -54.4566354628831 +977000 ekin = 5.40035031846992 | erot = 15.5056612502556 | epot = -75.3626470311247 | etot = -54.4566354623992 +978000 ekin = 5.34501003152772 | erot = 15.7884985247861 | epot = -75.5901440181953 | etot = -54.4566354618815 +979000 ekin = 5.38417633217446 | erot = 15.9518932070765 | epot = -75.7927050007827 | etot = -54.4566354615317 +980000 ekin = 5.51889158471417 | erot = 15.9990584786403 | epot = -75.9745855248341 | etot = -54.4566354614796 +981000 ekin = 5.74308889432877 | erot = 15.9356762595028 | epot = -76.1354006155962 | etot = -54.4566354617647 +982000 ekin = 6.04407260765955 | erot = 15.7687916692143 | epot = -76.2694997391999 | etot = -54.4566354623261 +983000 ekin = 6.40382989934479 | erot = 15.5063975906933 | epot = -76.3668629530592 | etot = -54.4566354630211 +984000 ekin = 6.80095841874027 | erot = 15.1576983608347 | epot = -76.4152922432271 | etot = -54.456635463652 +985000 ekin = 7.21291844146417 | erot = 14.7338425281795 | epot = -76.4033964336627 | etot = -54.4566354640191 +986000 ekin = 7.6182826564102 | erot = 14.2487453062978 | epot = -76.3236634266735 | etot = -54.4566354639655 +987000 ekin = 7.99866441027088 | erot = 13.7195510823837 | epot = -76.1748509560775 | etot = -54.4566354634229 +988000 ekin = 8.34006634570511 | erot = 13.1663738040327 | epot = -75.9630756121665 | etot = -54.4566354624287 +989000 ekin = 8.63350862209283 | erot = 12.6111857670953 | epot = -75.7013298503023 | etot = -54.4566354611142 +990000 ekin = 8.87494555512831 | erot = 12.0760163564726 | epot = -75.4075973712662 | etot = -54.4566354596653 +991000 ekin = 9.06461955888563 | erot = 11.5808385823036 | epot = -75.1020935994709 | etot = -54.4566354582817 +992000 ekin = 9.20608865946024 | erot = 11.1415830195349 | epot = -74.8043071361274 | etot = -54.4566354571323 +993000 ekin = 9.30517812932134 | erot = 10.7686313367174 | epot = -74.5304449223696 | etot = -54.4566354563309 +994000 ekin = 9.36905574689451 | erot = 10.4659766381002 | epot = -74.2916678409224 | etot = -54.4566354559277 +995000 ekin = 9.40554136791977 | erot = 10.2310751483189 | epot = -74.0932519721565 | etot = -54.4566354559178 +996000 ekin = 9.42266810589654 | erot = 10.0553042346563 | epot = -73.9346077968042 | etot = -54.4566354562514 +997000 ekin = 9.42843932290709 | erot = 9.92490942412143 | epot = -73.8099842038803 | etot = -54.4566354568518 +998000 ekin = 9.43069348818201 | erot = 9.82234985048033 | epot = -73.7096787962734 | etot = -54.4566354576111 +999000 ekin = 9.43700002899931 | erot = 9.72798019137154 | epot = -73.6216156787951 | etot = -54.4566354584243 +1000000 ekin = 9.45454475451511 | erot = 9.62197027181692 | epot = -73.5331504854816 | etot = -54.4566354591496 + 1000000 352.42265 -75.546285 2.0131342 -64.078606 -0.0098335381 39304000 +Loop time of 10.2487 on 4 procs for 1000000 steps with 10 atoms + +Performance: 143.822 ns/day, 0.167 hours/ns, 97573.589 timesteps/s, 975.736 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.464 | 4.1822 | 5.9402 | 50.2 | 40.81 +Bond | 0.13841 | 0.18486 | 0.23656 | 8.9 | 1.80 +Neigh | 0.006895 | 0.006952 | 0.007001 | 0.1 | 0.07 +Comm | 2.2239 | 4.2461 | 5.1692 | 57.6 | 41.43 +Output | 0.059508 | 0.061929 | 0.066381 | 1.1 | 0.60 +Modify | 0.37634 | 0.4606 | 0.52884 | 10.0 | 4.49 +Other | | 1.106 | | | 10.79 + +Nlocal: 2.5 ave 4 max 1 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 9 max 6 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 19 max 5 min +Histogram: 2 1 0 0 0 0 0 0 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:10 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/data.dsring b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/data.dsring new file mode 100644 index 0000000000..33f6115ae5 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/data.dsring @@ -0,0 +1,622 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +148 atoms +4 atom types +148 bonds +1 bond types +148 ellipsoids + +0 851 xlo xhi +0 851 ylo yhi +0 851 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 208.31885120063512 209.07830059400624 213.0216021921939 1 1 1.0016462505133576 0 0 0 +2 4 208.94483576838627 206.4448010919165 216.6882923344523 1 1 1.0016462505133576 0 0 0 +3 3 211.56385346871699 204.30406864289688 220.11920728875927 1 1 1.0016462505133576 0 0 0 +4 2 214.31495335572012 204.35063728809808 223.61677544780568 1 1 1.0016462505133576 0 0 0 +5 1 217.30951997235965 206.16090626093134 225.4674912137906 1 1 1.0016462505133576 0 0 0 +6 2 219.30502197188136 209.00909667501074 227.49674701236893 1 1 1.0016462505133576 0 0 0 +7 3 219.83292281044646 212.19753274141107 230.53026977239148 1 1 1.0016462505133576 0 0 0 +8 2 218.93091557749156 214.31473141418766 234.6931272540053 1 1 1.0016462505133576 0 0 0 +9 4 220.32518751145957 214.85183803522298 239.6469648355356 1 1 1.0016462505133576 0 0 0 +10 2 219.79275827382872 213.3404053532149 243.70006386710043 1 1 1.0016462505133576 0 0 0 +11 3 220.70928151349608 210.21381004200654 247.14815553587854 1 1 1.0016462505133576 0 0 0 +12 2 223.67193733154724 208.04535577836813 249.67978988879284 1 1 1.0016462505133576 0 0 0 +13 2 227.31016552169513 206.16686658451448 251.61597827076264 1 1 1.0016462505133576 0 0 0 +14 1 231.80592101718645 204.9336536048614 251.53105173903185 1 1 1.0016462505133576 0 0 0 +15 2 236.2250804923752 205.47987477011685 250.98539881261863 1 1 1.0016462505133576 0 0 0 +16 3 240.0068773257833 207.77004331975903 249.53594241966383 1 1 1.0016462505133576 0 0 0 +17 1 242.98566065658693 210.5462682234126 249.63496548893542 1 1 1.0016462505133576 0 0 0 +18 4 245.42888445426894 214.27953740691964 250.53493716205472 1 1 1.0016462505133576 0 0 0 +19 2 248.78751685377597 216.90541434653767 253.53160552044426 1 1 1.0016462505133576 0 0 0 +20 4 251.39963359406735 218.16175894319667 257.62870661099066 1 1 1.0016462505133576 0 0 0 +21 2 255.5677235249031 217.61926364274564 260.07819570237643 1 1 1.0016462505133576 0 0 0 +22 3 259.63024332567574 215.18262726567113 260.69715353283686 1 1 1.0016462505133576 0 0 0 +23 1 263.1457867599882 212.6433935962059 258.9487935453862 1 1 1.0016462505133576 0 0 0 +24 1 266.3827446371434 210.87213953618837 256.26055100860737 1 1 1.0016462505133576 0 0 0 +25 2 267.97463902393866 210.20760693366043 251.4251108047254 1 1 1.0016462505133576 0 0 0 +26 3 270.07811694250654 210.90888555541903 247.7392596432837 1 1 1.0016462505133576 0 0 0 +27 1 271.09287437447114 213.11656552311496 244.5712139335691 1 1 1.0016462505133576 0 0 0 +28 4 272.8644901379567 216.09853596389848 242.34668607897146 1 1 1.0016462505133576 0 0 0 +29 3 277.14925724680575 218.15361661850437 241.02448320337692 1 1 1.0016462505133576 0 0 0 +30 2 281.6281862385014 219.54423347807102 240.83577460409623 1 1 1.0016462505133576 0 0 0 +31 4 285.53553117381364 218.07611082158127 239.4456849189117 1 1 1.0016462505133576 0 0 0 +32 2 288.8938226529956 215.3666526766779 237.57548982559325 1 1 1.0016462505133576 0 0 0 +33 1 291.12514756370877 212.98912935663924 233.8324040870632 1 1 1.0016462505133576 0 0 0 +34 4 291.3890795510732 210.45844522291486 230.3986316964525 1 1 1.0016462505133576 0 0 0 +35 2 290.3105820760069 208.74036664050792 226.7042745336879 1 1 1.0016462505133576 0 0 0 +36 4 289.18201447621146 208.91363527052587 222.89820557251684 1 1 1.0016462505133576 0 0 0 +37 2 288.971153902218 209.4805264669763 218.28666756836168 1 1 1.0016462505133576 0 0 0 +38 4 288.3534988328343 212.6173536934077 215.1661607036478 1 1 1.0016462505133576 0 0 0 +39 3 290.5684723991064 215.9608847032356 212.4583306861778 1 1 1.0016462505133576 0 0 0 +40 1 292.68130870382674 219.40449003374115 209.55910765683777 1 1 1.0016462505133576 0 0 0 +41 4 295.442338041982 219.36246849520484 206.48916887364152 1 1 1.0016462505133576 0 0 0 +42 2 296.36417522086 218.26244483114334 201.69379456148616 1 1 1.0016462505133576 0 0 0 +43 1 296.0323698080443 215.8225532800091 197.3280985778793 1 1 1.0016462505133576 0 0 0 +44 4 294.6530843322007 212.83142447716733 193.82965995050543 1 1 1.0016462505133576 0 0 0 +45 4 293.09410894134015 209.80599344824577 192.16605946359905 1 1 1.0016462505133576 0 0 0 +46 2 288.83490978178446 208.30134671602775 191.4877951864582 1 1 1.0016462505133576 0 0 0 +47 3 284.41597526830526 208.24835045301987 190.80522332231112 1 1 1.0016462505133576 0 0 0 +48 3 280.435589003895 210.25289346065463 190.2013738364397 1 1 1.0016462505133576 0 0 0 +49 1 276.458218418495 212.91127251248324 189.31964814095224 1 1 1.0016462505133576 0 0 0 +50 4 274.110573437327 215.08405186209467 186.3098121169227 1 1 1.0016462505133576 0 0 0 +51 2 272.2617942946457 216.3726311673256 182.27450679276578 1 1 1.0016462505133576 0 0 0 +52 2 269.83153994135154 216.05780869626503 177.8206876525648 1 1 1.0016462505133576 0 0 0 +53 3 267.4176400816519 213.93217536542784 174.3937134479138 1 1 1.0016462505133576 0 0 0 +54 2 263.3829580061682 212.17957495128988 172.47054426846077 1 1 1.0016462505133576 0 0 0 +55 2 259.23622219283226 208.62789572578382 172.79202606983338 1 1 1.0016462505133576 0 0 0 +56 1 254.9232399751811 207.98723446147798 174.1700423374239 1 1 1.0016462505133576 0 0 0 +57 1 251.01429470107985 207.4727826811597 176.6191860923174 1 1 1.0016462505133576 0 0 0 +58 4 247.503087519173 208.84937318781766 178.95270962305977 1 1 1.0016462505133576 0 0 0 +59 3 244.61228396290568 211.4487115261513 181.15392286257216 1 1 1.0016462505133576 0 0 0 +60 2 242.5582847227905 215.2537157253442 181.8226233142989 1 1 1.0016462505133576 0 0 0 +61 3 239.6649079158646 218.62799057023 180.73365427978584 1 1 1.0016462505133576 0 0 0 +62 2 235.1055006856569 219.4991097490642 179.19993338536528 1 1 1.0016462505133576 0 0 0 +63 2 230.06536838356837 218.20707751777684 178.12542542954407 1 1 1.0016462505133576 0 0 0 +64 1 226.19712505087438 216.01242228173862 178.66827050301285 1 1 1.0016462505133576 0 0 0 +65 4 223.80183977746594 212.48637324492603 181.4677574683601 1 1 1.0016462505133576 0 0 0 +66 2 223.35826983209282 209.42164303546804 184.31154729173656 1 1 1.0016462505133576 0 0 0 +67 4 223.115707961134 207.64116343000455 187.8227276328026 1 1 1.0016462505133576 0 0 0 +68 3 223.1828783897832 207.2041863918756 192.56176469772987 1 1 1.0016462505133576 0 0 0 +69 4 222.9562562898953 209.33623615586666 196.6941257026712 1 1 1.0016462505133576 0 0 0 +70 2 221.66690235711982 212.16853654386955 200.42093434949206 1 1 1.0016462505133576 0 0 0 +71 3 218.49749796817483 214.58613674743094 202.99887088045244 1 1 1.0016462505133576 0 0 0 +72 2 214.79843871210093 215.83998598169165 204.93838976343113 1 1 1.0016462505133576 0 0 0 +73 3 211.43258956470967 215.7076069451841 207.4075522992357 1 1 1.0016462505133576 0 0 0 +74 2 208.89304193837674 212.96791745700727 209.88970503949264 1 1 1.0016462505133576 0 0 0 +75 3 218.04384080398626 208.8517661220443 212.25851740130685 2 1 1.0016462505133576 0 0 0 +76 2 216.5892197279808 206.99598258539012 208.2068688237662 2 1 1.0016462505133576 0 0 0 +77 3 213.50296493867867 205.91838818342708 204.7824350973285 2 1 1.0016462505133576 0 0 0 +78 2 212.40344730057544 207.07794779056923 200.15488529641686 2 1 1.0016462505133576 0 0 0 +79 3 212.49899284410188 209.585331832834 196.59639195093382 2 1 1.0016462505133576 0 0 0 +80 1 213.8718296204717 212.43788517712443 194.07978733684686 2 1 1.0016462505133576 0 0 0 +81 2 217.77995345895644 215.8195741549278 192.62165385854775 2 1 1.0016462505133576 0 0 0 +82 1 221.28004012766087 217.1654248225849 190.47251220533374 2 1 1.0016462505133576 0 0 0 +83 3 225.8620451555664 217.7952321162026 189.70184485639834 2 1 1.0016462505133576 0 0 0 +84 1 229.11796505110405 216.62355134353226 188.55566261486354 2 1 1.0016462505133576 0 0 0 +85 4 231.93009597179287 213.28552897804775 187.18308633796394 2 1 1.0016462505133576 0 0 0 +86 3 233.8457023652249 210.92567784153482 183.76710295197495 2 1 1.0016462505133576 0 0 0 +87 3 235.10900957816648 209.21540627355986 179.91110079537762 2 1 1.0016462505133576 0 0 0 +88 2 237.54221305824186 209.88061882623805 175.87474946957948 2 1 1.0016462505133576 0 0 0 +89 3 240.73227695628347 211.91788237876028 172.5923540320211 2 1 1.0016462505133576 0 0 0 +90 2 244.20465175243865 215.00793672836622 171.518087640663 2 1 1.0016462505133576 0 0 0 +91 1 248.409983413366 216.8790144672266 172.84039701116973 2 1 1.0016462505133576 0 0 0 +92 4 252.3613185226405 217.80167017847748 174.7982475734568 2 1 1.0016462505133576 0 0 0 +93 4 255.03798994310935 216.90557703947596 178.41643036458865 2 1 1.0016462505133576 0 0 0 +94 3 258.0123600922758 214.0688621082654 181.3748252106654 2 1 1.0016462505133576 0 0 0 +95 3 261.4793208403472 211.18651636405338 182.10154093744066 2 1 1.0016462505133576 0 0 0 +96 2 264.61342330509945 208.4069633573196 182.13340389630036 2 1 1.0016462505133576 0 0 0 +97 3 268.1423255602099 206.43410772886958 180.6438100024248 2 1 1.0016462505133576 0 0 0 +98 3 272.6968293511453 206.12748243877718 180.10513377562995 2 1 1.0016462505133576 0 0 0 +99 1 277.10377489948667 208.1005328826892 179.3644456424518 2 1 1.0016462505133576 0 0 0 +100 4 281.00559845205873 211.06408209877605 180.10786289756504 2 1 1.0016462505133576 0 0 0 +101 2 284.60417782769156 214.3962696861514 181.99641804441617 2 1 1.0016462505133576 0 0 0 +102 2 286.60418124482914 216.5009851375199 185.7625155225522 2 1 1.0016462505133576 0 0 0 +103 3 287.3342876501778 217.90577178570192 189.82320249461165 2 1 1.0016462505133576 0 0 0 +104 1 287.1580072830518 218.24647026624564 194.54524399609593 2 1 1.0016462505133576 0 0 0 +105 1 285.97555699942546 216.4030183962319 198.00226153513316 2 1 1.0016462505133576 0 0 0 +106 4 286.9784674182509 213.80941634861662 200.984054131366 2 1 1.0016462505133576 0 0 0 +107 3 289.7070250162039 211.13118523574875 203.5459670820893 2 1 1.0016462505133576 0 0 0 +108 1 293.7348288391273 209.76614933968972 205.9159671580589 2 1 1.0016462505133576 0 0 0 +109 4 298.0470912443835 210.3476646132807 209.22602515661964 2 1 1.0016462505133576 0 0 0 +110 2 299.3727498239561 211.18882961507936 213.32359581947546 2 1 1.0016462505133576 0 0 0 +111 1 298.71438019179976 213.36502754336712 217.80809292107566 2 1 1.0016462505133576 0 0 0 +112 3 297.5778290486891 215.80813084505792 221.52375033983938 2 1 1.0016462505133576 0 0 0 +113 1 293.84181972000164 218.12459328726527 222.52194563573968 2 1 1.0016462505133576 0 0 0 +114 3 289.72480591547844 219.18763960036753 224.20582823532217 2 1 1.0016462505133576 0 0 0 +115 1 286.10060227835305 218.2366927723458 227.3329804786708 2 1 1.0016462505133576 0 0 0 +116 4 282.4274439426548 215.8348128129646 228.50667608915776 2 1 1.0016462505133576 0 0 0 +117 3 280.30736615533436 212.87615928361103 231.93191134907437 2 1 1.0016462505133576 0 0 0 +118 1 280.4957715892933 209.81978142604717 235.78978894134258 2 1 1.0016462505133576 0 0 0 +119 3 281.1124372652675 209.1630066603096 240.4037199441234 2 1 1.0016462505133576 0 0 0 +120 2 280.6004552189253 209.5904328052497 245.12986147761828 2 1 1.0016462505133576 0 0 0 +121 1 279.7088300157109 212.49871921998974 249.6398422165285 2 1 1.0016462505133576 0 0 0 +122 4 277.5145094311825 215.74407956221037 251.87908394986235 2 1 1.0016462505133576 0 0 0 +123 2 274.0292663881701 218.98094440600102 252.4720990110135 2 1 1.0016462505133576 0 0 0 +124 3 269.4802808363886 220.3779076053549 252.2846885821039 2 1 1.0016462505133576 0 0 0 +125 4 265.18702541695495 219.66875534535617 251.05221442068142 2 1 1.0016462505133576 0 0 0 +126 4 261.1973441761709 217.60856802642994 250.32297289687062 2 1 1.0016462505133576 0 0 0 +127 2 258.42965815651195 214.5285058619342 250.70264078825883 2 1 1.0016462505133576 0 0 0 +128 3 257.40131364348747 210.82918968859514 252.82205800210747 2 1 1.0016462505133576 0 0 0 +129 1 254.09665907944853 208.48587191866105 255.29832851571967 2 1 1.0016462505133576 0 0 0 +130 3 249.14711800822565 207.4790641809653 257.14454107837594 2 1 1.0016462505133576 0 0 0 +131 1 245.16232229032394 208.6542795519212 259.30366719951866 2 1 1.0016462505133576 0 0 0 +132 4 241.6088192401875 210.27052783917878 259.77711048596495 2 1 1.0016462505133576 0 0 0 +133 2 237.60579348133834 211.5677601936723 258.4967443170624 2 1 1.0016462505133576 0 0 0 +134 3 234.31563856213194 213.7023345421011 256.67498877187217 2 1 1.0016462505133576 0 0 0 +135 4 232.04178676973854 215.2247580978991 252.4887135012261 2 1 1.0016462505133576 0 0 0 +136 3 231.84989854624848 214.78206092351417 248.38409354076154 2 1 1.0016462505133576 0 0 0 +137 3 230.23584615132918 213.90825105541285 244.25659773796446 2 1 1.0016462505133576 0 0 0 +138 2 228.72514438427442 210.55975546279873 240.93389432997455 2 1 1.0016462505133576 0 0 0 +139 3 226.50901828126607 207.7720868061071 238.77244759668554 2 1 1.0016462505133576 0 0 0 +140 1 222.69524184571324 205.4563710695796 237.54896302353555 2 1 1.0016462505133576 0 0 0 +141 3 217.75254577305915 204.6697036863105 236.7300149978949 2 1 1.0016462505133576 0 0 0 +142 2 213.36264669166687 205.6664161637754 235.057769544392 2 1 1.0016462505133576 0 0 0 +143 3 210.36056196219099 208.22961038909222 233.43624218141468 2 1 1.0016462505133576 0 0 0 +144 4 209.52101940489996 211.7474752490511 229.6093465145509 2 1 1.0016462505133576 0 0 0 +145 3 210.0346178174762 213.46103317355895 225.4432866022292 2 1 1.0016462505133576 0 0 0 +146 2 212.1036301773736 214.37817428934144 222.09240510601887 2 1 1.0016462505133576 0 0 0 +147 1 214.8007196331168 213.86842062768343 219.12311053490302 2 1 1.0016462505133576 0 0 0 +148 4 217.11029191388695 212.18186978209044 215.47812529247457 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.00041441960428137935 -0.00044093526915074335 -0.0002769004051949902 0.4671811380872407 -0.45316000711452054 0.030147401411566938 +2 -0.0007883200593843776 0.0002582267767411247 -0.00015788826223433837 -0.9981841013239229 0.9031525891258723 -0.4463027445462194 +3 -0.00032890342226527046 0.00021454292082771174 0.0006588673608947611 1.6856487176959336 0.15828183663773915 -0.2816792383591273 +4 0.0006226412184223278 -0.0004819430644898339 0.0011543818273686507 0.771113570326925 0.9667209836529702 0.5390145490152992 +5 0.0008444214308690865 0.0006267645341900317 0.0009246638392575237 -0.9987251151971048 0.3864646803189593 -0.7699530964442148 +6 0.0009763171425943993 -0.0003909887231919038 -0.0009121871394260499 0.7366273192130102 -1.0054394417185868 0.7471606181669701 +7 -0.0003964811445218345 -0.0004173285602521412 -0.0007056214158470973 0.06052108734325723 -0.29784593755108146 0.7316972423378784 +8 3.7047285926338676e-05 -0.0002720689524084308 -0.00034613908102107556 0.20653978207022358 -0.5600630808371041 -0.7544747714740252 +9 -0.0007009303824597543 0.001556981461008396 0.0012173625702768208 -0.3788471824273982 0.42127744223658237 0.706230160987193 +10 -0.0015981160984836474 0.0004624234429405509 0.000633042527195227 0.9137264942274623 -0.0097229359145721 -1.5620769285620402 +11 -0.0006131679864152933 -0.0002837317754898309 -0.000596160114576507 -0.16060842579146267 -1.4682292580341976 1.662901421705255 +12 0.0014114099463271759 0.0013414818109726508 -0.0003789171466630028 0.2592330791173297 0.829986229089849 0.9413867863151553 +13 0.0007570391002086509 0.0008025872372338182 -7.972953403202178e-05 -0.17099323265046504 0.003517188802442484 0.5961537792303933 +14 -0.00046259381441702234 -0.00090135523551774 -0.00025506367753356103 -0.8790499857371116 0.6176988758143042 0.05832877360454661 +15 0.0017736622371445178 -0.00021639401439837712 0.0010865438562664787 -0.13139209450799721 0.8624674720612805 -0.011036817907692937 +16 9.079351638896072e-05 0.0006800971201785199 -0.00046628761539115553 0.7977461182616878 0.8586300458614435 0.5367785839788761 +17 0.0003320853011294431 4.9782060934935786e-05 -0.0010221421644623877 -0.6443212440432361 -0.11357760375273049 0.850108891065061 +18 -0.001273799512678254 0.0011802538929646376 0.00034715679420532845 1.148914164227578 -0.5610176349462389 0.5244301492446057 +19 -0.0020462501335023037 -0.0008081103285391302 0.0004315854879938803 -1.089683852796499 -0.32463478354041436 -0.7265732502745839 +20 -8.915796710513424e-05 0.00038580427801161824 -0.00046526527667176273 0.9097166769703294 0.5738252017630338 -1.29062344651377 +21 0.001415496055715896 0.0004065686658735653 -0.00010989062666979347 -1.1571187373784757 0.023561693505977636 -0.2263304187071502 +22 -0.0008503530592149795 2.8074460028882493e-05 0.00198633110988951 -0.4436460810940315 0.7384999777235214 1.558875871313546 +23 0.001213257612781923 0.0006312085806837118 0.00029437342449475603 0.6298784491419476 2.0523178203868553 -0.6191528692800492 +24 -0.0002744446284938336 -0.0011191784233664152 -0.000707033966844946 -0.09130366470337603 0.6760929751938499 1.0349559780864541 +25 0.0009651532852808743 -0.0011155857115756785 0.0007545732220657096 -1.2532487137150916 0.3253456368605829 -0.5895446662565031 +26 0.0013519355559207951 -0.0003602465335484942 4.0583375777164296e-05 0.3822696974424084 0.08729032133339974 0.41452369513711473 +27 -0.001665301320612367 -0.0007705885202069591 0.0005018578609282953 1.1334536456402204 1.9176030539077622 0.10183970014017323 +28 0.001737706168775158 8.21782568605148e-06 -0.0008049720960126812 -0.7476612511274086 2.2303524147696283 -1.0960603548956669 +29 0.001183967869191855 0.0007794707767112501 0.0011572550877270184 -0.8726708311148604 1.0159045767027794 -0.418256497806968 +30 0.00022506137173594954 0.0007997074716567607 -0.0007511442272268112 0.8112527327298255 -0.05903807219870134 0.623173366659473 +31 -0.0008847110697388197 -0.0003554831779230716 -0.0009329868015323094 0.5545451516333009 -0.29871375676152245 0.0890228395420963 +32 -0.0011265435872626274 0.00039619848780672557 -0.0012459482196480228 1.4457577029507602 -0.06889896003288522 -0.22324642105659825 +33 0.00023845768588633132 0.00044987471851870743 9.299879812422249e-06 0.7170427987947958 0.4983890283165274 0.4217807571946686 +34 8.32516030278601e-05 0.00021623128235669596 0.00028842186460696786 -0.7259246562112577 0.5751658269069845 -0.3694177872395038 +35 -0.00041861134337793226 -0.00020890877766567396 -0.0003835693263263161 -0.04356698055332095 0.4829754783161558 -0.7868946492403924 +36 -0.0021310793657824626 0.0005296179189949723 -1.836376297756258e-05 -1.6518357943020405 1.1542189579552737 -0.8600083978480586 +37 0.00034819323635394933 0.0005277328535131145 -0.0007890234683185679 0.06901830182094872 -1.0710751951395068 -0.9003668790915229 +38 -0.0004306890871425647 0.0007084036672237173 5.4006247807143286e-05 -0.29670175877751875 0.9535854791259951 1.3068905353981062 +39 -0.00032734838061953083 5.4267842460482285e-06 0.00035178461613378674 0.4482978794046991 0.2585368302398761 -1.4948626345393037 +40 0.000425960963436888 0.0004866264349846475 -0.00032754331069256257 1.354357422327269 -1.7371693097824732 -0.5387472817872587 +41 -0.00031121156230807574 -0.000557408138619122 0.0004581712062516314 -0.2462511006049055 0.754914814110346 1.5214208316099158 +42 0.0006138294415283338 -0.001475734146105284 0.0006932832392585454 -0.4279126916663162 0.31475284637140866 0.4947719379913577 +43 -0.00032901346057991044 0.002088241897437943 4.007591827893774e-06 0.8310167656169738 -2.0323789115861537 1.0346001003326915 +44 -0.00037100941050768806 -0.0006450300422373223 -0.000991826582086897 1.677913872230059 1.0355469382794293 -1.3207502139903968 +45 -0.0014015731274973644 -0.0012218924243723739 -0.00038363514183312886 0.21441712996148996 1.0043730062590748 -0.21165269663622438 +46 -0.0004431983077692244 0.0002428406842882312 -0.0006968537750801398 0.019488989787254087 0.5074153748008283 0.32784234392500033 +47 0.0002539699490763818 0.00013063672010696437 -0.0005621326124479586 1.1289132857339166 -0.4336732389495026 -1.4418229599456827 +48 0.0004898689039600226 0.0007527815950569443 0.00017691726070110023 -0.04005858674195536 -0.3740447543467191 -1.5655401179647614 +49 0.0001564078262564333 0.0013899183819377587 0.002136610172630379 -0.889719403762743 -0.2599617169154644 0.1451237505291117 +50 0.0010371837267272566 -0.00035833149145438357 -0.0003714320448076416 0.29638519543410047 -0.3977494984303205 -0.6105638314847442 +51 0.0009820602635995975 0.0007300099198006708 0.0001445457759367302 -0.7729541689963864 0.23499445513191905 -0.4948714964687896 +52 -0.0005457475822861008 -0.0006139596879639669 0.0001276859480116569 -1.2819675747397143 -0.9022146501313074 0.5188110087927617 +53 -0.0013460292907985106 -0.0006045929031479083 0.0009730685711565265 -0.5604204014611567 0.6294902790250949 0.30894138636009333 +54 0.0016274959548552353 -0.00034228237517440935 -0.00033120130942141594 0.8479051878078213 1.2771867984242118 0.52164182542914 +55 -0.0004834266647931496 -0.00020468767210863722 0.0005357651280403127 0.5748160751561723 0.8323411456475563 0.3520914227622347 +56 0.0004006310009063323 0.0004333955160002978 -0.00029974077755727616 0.21614599123688852 -0.20213469273624976 1.228193321040514 +57 0.00018436095379532414 0.0015151679397907168 -0.0008392194652949486 -1.3778465339123198 -0.08543711080164341 -1.3168477137462207 +58 -0.00026831588288024627 0.0004916472396323976 -0.0003466761300936674 -1.927389116565991 0.9121987357722435 0.6675708203587036 +59 -0.0006258690548135083 0.001297622079709614 -0.0008844486928368857 0.3311157072888594 0.7983313017995447 1.1270556542532257 +60 -0.00018043015007094488 1.568633521465739e-05 2.4469889031939575e-06 0.6098608205841689 0.06719653600738755 -0.6226068737246789 +61 0.0006670186871407943 0.0009368758878619058 -0.0006536612657749543 -0.08245254775216962 -0.13267665294317502 0.07402067490225707 +62 0.00024971794567419547 -0.00022528002682063684 0.0010317709111284002 -0.9577657247991458 -0.465567893792205 0.5392831535575356 +63 -0.00039872166876622647 0.001114681131409033 -0.00046664584809481623 0.5614397921385779 -0.03676601977717225 0.9239434081307943 +64 -0.00022428609950955975 -0.0012092952670300532 0.0003990757469131255 -1.3388937939722194 0.4998474396687487 1.007959495302009 +65 -0.0004760321453345616 -0.001118005263589924 -0.0018913930687617015 -0.004769150595413406 0.18816230253856664 0.8465936030278335 +66 -0.000569604752461696 0.0013664722826310341 0.0011885134090689172 -1.2862730133083389 -1.725300067226994 0.2460409197199418 +67 -0.0008303642114678211 -4.6765476279521475e-05 0.00013538897487258477 0.45014165664147954 -1.5560912795384267 0.49435961844291937 +68 -0.0004166480989256062 0.0007419400328216953 0.001640065264820625 0.8519022828028688 0.7773786853644404 0.10107332851893677 +69 0.000715049387221894 -0.0007845722675302896 0.00011171267588401845 1.4124312729529342 0.6732975396570777 -1.314868900890707 +70 0.0002899597770195227 0.000960176245563633 -1.2369804764834543e-05 -0.32958544017179037 -2.194591749536253 -0.013996371604443652 +71 -0.000784599438062652 -0.0007745814721290174 -0.0015598831332579418 -0.3116052477363819 0.16420020898354412 -1.6475074357573227 +72 -0.0012109413821898103 -0.0010259792078996565 0.002009002297714139 0.9464894936396385 -0.38422490798865216 -0.11388633123866836 +73 -0.0005770654505789276 0.0013960028145465113 -0.0009586405157593675 -2.2010719253995727 -0.5064523326977327 1.5912594523789898 +74 0.00045897496166799693 -0.0003571250431536989 0.00013956166316199796 0.36653957339486676 0.7750720539917312 2.2825538122361007 +75 -0.0007635787543225344 0.0009151095119275483 0.0003621989039139825 0.7533600338402616 -0.03709654588161272 -1.5048387303147006 +76 -0.0017782702176303371 -0.0001422139697962813 3.268639826972334e-05 1.0766718044834034 0.22754200372682035 1.4094207128249334 +77 -0.0009944633549961689 -2.7185643785831554e-05 0.00035935779588646224 -0.6249513355327749 0.026376668634114326 -0.5196033249835427 +78 0.0014525047108631406 -0.0002635250122154471 0.0002946308782002014 -1.0671559183404153 -0.1420073799791104 -0.8090786443688043 +79 -0.0001738312018541894 -0.0007956971705519024 0.0007051012709860657 0.9916562444273318 0.475176667924977 0.5186997764671554 +80 0.00020560278909850191 -0.00023794602258757743 9.508202338166986e-05 -0.2755538757376673 -0.08313141332877286 0.1736802978231154 +81 0.0007960466599558679 0.00019636226289575923 -0.00026344322077701926 0.1099307676035118 0.2970133171513775 -0.39383055555986834 +82 -0.0006439151111143676 0.0007368202530057124 -0.00020757692084898483 0.46488765978295077 -0.9104435244182589 -0.7977412027945551 +83 -0.0016373958881352256 -0.0008034248902800111 -0.0006475209926272188 -1.0629433685117573 0.32694393784433146 -0.38144155381771266 +84 -9.349877721927945e-05 -0.0012837405933129888 -0.0006913804447077405 0.005372083699246987 -0.5390925149085727 -0.2777575459740771 +85 7.175984873377987e-05 -8.188145840067058e-05 0.0002476795327649455 -0.4292240517999446 0.8471718983985552 -1.379191667891945 +86 -0.0019361003225944666 0.0008281345158297657 0.0012385275618332736 0.40376229600085867 -0.2593622200277787 -0.17852822534847618 +87 0.0013350477089695762 0.0016805760989646486 -0.00011902052738513388 0.6351408631430563 0.8905103709996127 0.6769065521869173 +88 -0.0006559832276122308 0.001068966018238896 6.191198328022662e-05 0.7743332510873531 -0.5636639470178074 0.881565119273955 +89 -0.000730455146994518 -0.0019469540223469542 0.00034279428798091206 -0.6705207281868615 0.6731271636970831 0.11003603539529515 +90 0.0005181357116835608 -6.261673348842832e-05 -0.0012048597515897858 -1.616761818914026 -0.13934277940905304 0.39022517259497297 +91 0.0006963262662605267 -7.783665730819486e-05 0.00011631757641122484 -0.3235934304904304 0.2505540998731511 -0.12891213834749454 +92 0.0011733692549690815 0.0012573921682906917 -0.001115727606719598 2.0498551640221705 -0.21195045002905308 1.5462260089037279 +93 0.0003012217343432592 0.001554968567194936 -0.00019150686295984871 -1.3764375241458235 -0.7169856499022497 -0.37962935868578923 +94 -0.001071413456691653 -0.0004530890205228453 0.000676953628648073 0.04300759511723225 0.4315824556425482 -1.6513162225610292 +95 -3.462073031939998e-05 -0.0007341336126085571 0.0007750028474385615 -0.01831437912190255 0.6452234717715252 0.5634104621702328 +96 0.00016908537517974456 0.0006881867158179877 -9.660314652542665e-05 0.750539978335223 0.3644557523491205 -1.149167318038805 +97 -0.0010727177207611647 -0.0002805275665690652 0.0009397207677218869 -0.6339140219416552 1.0638581171311459 0.4915823701624352 +98 9.141003584129238e-05 -0.0001182773394138833 -0.00017713640126118887 1.4896363726120205 0.725712306523633 -0.6955334599959595 +99 -0.0005329796862308534 -0.0002213644188271466 -0.0006880914995187214 1.3214262974710724 -0.5269665401199022 -0.5922300334343619 +100 -0.0002782784640981771 0.0004974233985925297 -0.001010298225495541 -0.9078341914823335 -0.535657056472583 0.26649700017402456 +101 0.000707029389827628 -0.0009053753028934495 -0.0005667802283044673 -0.6903835242905281 0.08929827857526158 0.89536066198302 +102 -0.0005252229792661067 0.0016195606485275703 -0.0006118175800384144 0.590342438029956 0.9957317636289214 2.2899526993955805 +103 0.0005513903544292183 -0.0006753190874512704 0.0008720377845095684 -1.8485190567648884 -0.5444534851188696 -0.049430494185178954 +104 -0.0005963338052002674 0.0018664586177513723 -6.124459534834667e-05 -1.7400426438973087 -0.8933939097574652 1.3270715145663594 +105 0.00018944831231515656 -0.0004257936154314862 -0.0002325330225103875 -0.20831100370485076 -0.31951119697135577 0.17363427769999923 +106 -0.0011657683659422825 0.00021341203878020944 -0.0016036743084162136 -0.8547196577896573 -0.2022779049615188 -0.2585575583483525 +107 -0.00014071663978679116 4.368679354729772e-05 0.0005913271451610716 0.26393148141343503 0.5118496584862787 -0.19630947726526438 +108 0.0008526353343687424 -0.0007047116463317371 -0.0003338667680450761 -0.8678172295210281 0.4772470148640593 -1.1972264029793078 +109 -0.00010998013637344678 -0.0012808467322045288 -0.00019333442850743478 0.35516627827753844 0.4812786306277344 -0.5845962387823183 +110 0.0013189714183481668 -0.0003625633061155731 0.00041103542234669806 0.7863916775761682 0.5066269134009194 0.22665104319035512 +111 -0.00013336910129714763 0.00015696055100528249 0.00029023065307822766 0.34873734012781815 1.5661898034091826 0.3776293771733237 +112 0.002163162431439717 0.00010327477645835898 0.00036287818767705284 -0.14951073355663014 -0.07190162661891987 -1.289133432993426 +113 -0.000686179472822298 -0.0005734723083885262 0.000596645854960574 -0.40297446498764145 -0.868123584934036 0.6091868845217895 +114 -0.00044255825584144006 9.173141744053142e-05 0.0010119556193854276 -0.8523759721019909 -0.21029695275901308 0.7202085310387388 +115 -0.0024321958386118937 0.00012828266889842094 -0.00012253996872963992 -0.06461511751249392 -0.6845316306479935 0.369115498378376 +116 -0.0007522288798272324 -0.001134542992781188 -0.0014242747759699364 -0.785220133384427 -0.6844982300111426 1.3214875798125256 +117 -0.001631336215163934 -0.0005620783715462203 0.000526273539346324 -0.6457028977302333 1.041323338492826 -1.5550332780972522 +118 0.0006791212566566071 0.0010831088146151281 -0.00031665664113898745 0.14270976262848908 0.1863524646960678 -0.6863985478211646 +119 -0.0005598304914650194 -0.0005445967376659685 0.00018420379420410263 0.18595611493782868 0.4422247424120456 -0.17695297797747686 +120 0.0013043539626961254 0.00018519112197755528 -0.0012774569712626503 -0.6115604054405038 0.0895062618517034 -0.3309825750831735 +121 -0.0009181250548043257 -4.111216227363675e-05 0.0008431381117500141 0.3336913187282888 -0.02587997063901842 -0.4563071067258067 +122 7.770442848786119e-05 -8.104535350298567e-05 -0.0021257280290162047 -1.1480690276494463 0.1553316041533672 -0.7074712585692718 +123 0.0011888332740761425 -0.000596477576403464 2.667537957250084e-05 -1.1276615053846293 -0.021528408791956666 -0.1224979914050052 +124 0.0016536945498203726 0.0013076448975284146 -0.0005474343104989092 0.6571092201608782 -0.992841406684317 0.4358321480511963 +125 -0.0010288694146039121 -0.0012382625011454933 0.0002513281797157498 -0.9551128980193431 -0.9127811121206568 0.8723771727888141 +126 -0.00017738706389382623 0.0008443302346762141 -0.0003895671701940069 -1.839402192955252 0.7766673236745506 0.7924995277225501 +127 -0.001000073944124535 0.0016468572053478946 -0.001033799846206151 0.08222028141230207 0.11760490751739432 1.8830161394199871 +128 0.0004239531801635865 0.0005168794447760295 -0.0008684808569629269 1.1686677946182742 -1.0381261833844448 0.31667529500400227 +129 -0.0004409215346868278 -0.001334846011966227 -0.0009927021813872098 -0.29452418106809986 -0.0931580604423265 -0.5695496505424753 +130 0.0010475849808729077 0.0006734593852494781 -0.000196916984145902 -0.049321887058332695 -2.9312636591061287 0.7616066487912013 +131 0.00038209178310713256 -0.0009628321808425074 -0.0013862456638785014 1.0492127631547312 0.1874792081286924 1.168765984508699 +132 0.0002998349801308538 0.0014133875635037733 0.0022406424034771963 0.575076201826299 0.5066190271889192 2.1361541858764506 +133 -0.00011535416048985546 -0.001041236448421046 0.0006208222935037978 0.32045995652530634 0.027939039439592323 0.021695984701765626 +134 -0.000987029914011318 0.0003500553257049557 -0.001043747540934093 1.4891578320741392 1.1151589305725869 0.24251250758555928 +135 -0.0007736630662934319 -0.000967059199293291 -0.0006397683905318742 -0.02417076632718488 1.5688231591106996 -0.4723484523158896 +136 0.0007295391299404002 0.00037747623153484286 0.0004510522053885847 1.9180704542629095 -0.23011140443522696 1.5192689109368365 +137 -3.411487464010032e-05 0.0005305965613622479 0.0011846926167481048 -1.0069971256282277 0.6425051512783104 -0.7900022519142518 +138 0.0001833854213995045 0.0011288904549903575 0.000308754866655325 1.0606136661717602 0.9017800698425885 -1.4181981833204758 +139 -0.0003669433422691092 -0.00028133432743200794 -0.0025213587271965365 0.6110684475733292 0.6766724972230532 -0.08234206862684952 +140 -0.0015131285007788794 -0.00047932227630192753 0.0003214665201627273 -0.6358611781374092 -1.6870181068210965 -0.781902178156614 +141 -0.0012436739915550252 -0.0009977354846392023 3.7112034981797074e-05 -0.6365194986922683 -0.30936951076225744 0.691170950137225 +142 0.0008904963121003822 -6.935173072402482e-05 -0.00019385497034208398 0.39875153999589447 0.1170376818780472 -0.3896029747301731 +143 -9.105595122636732e-05 0.0005154380348575327 0.0015000446982266441 -1.0666759832471555 0.21484194730690612 -0.9785005663759413 +144 -0.00022173918341567467 -0.0022834626691515727 0.00047409130709445837 0.40991111056117013 0.4170482715738036 -1.463544258074392 +145 0.0014087158997011032 0.000590985481235564 0.0008470107798063848 1.4059335910946213 -1.2396510038892823 -0.15776391781443064 +146 -0.0009109264393636273 0.00043064203581946086 -3.385101992955357e-05 -0.29248506567124016 0.13213896049033017 0.15248884930478313 +147 0.0008958257305797349 -0.00042544032979553904 0.0010693000057161858 0.5655696340306448 -0.004419562051025544 0.25329683367124206 +148 -0.0012244669175850524 0.0003777690850238906 -0.0005362154272677985 1.9878055073351206 0.18048094348117455 0.6092581911235572 + +Bonds + +1 1 1 2 +2 1 74 1 +3 1 2 3 +4 1 3 4 +5 1 4 5 +6 1 5 6 +7 1 6 7 +8 1 7 8 +9 1 8 9 +10 1 9 10 +11 1 10 11 +12 1 11 12 +13 1 12 13 +14 1 13 14 +15 1 14 15 +16 1 15 16 +17 1 16 17 +18 1 17 18 +19 1 18 19 +20 1 19 20 +21 1 20 21 +22 1 21 22 +23 1 22 23 +24 1 23 24 +25 1 24 25 +26 1 25 26 +27 1 26 27 +28 1 27 28 +29 1 28 29 +30 1 29 30 +31 1 30 31 +32 1 31 32 +33 1 32 33 +34 1 33 34 +35 1 34 35 +36 1 35 36 +37 1 36 37 +38 1 37 38 +39 1 38 39 +40 1 39 40 +41 1 40 41 +42 1 41 42 +43 1 42 43 +44 1 43 44 +45 1 44 45 +46 1 45 46 +47 1 46 47 +48 1 47 48 +49 1 48 49 +50 1 49 50 +51 1 50 51 +52 1 51 52 +53 1 52 53 +54 1 53 54 +55 1 54 55 +56 1 55 56 +57 1 56 57 +58 1 57 58 +59 1 58 59 +60 1 59 60 +61 1 60 61 +62 1 61 62 +63 1 62 63 +64 1 63 64 +65 1 64 65 +66 1 65 66 +67 1 66 67 +68 1 67 68 +69 1 68 69 +70 1 69 70 +71 1 70 71 +72 1 71 72 +73 1 72 73 +74 1 73 74 +75 1 75 76 +76 1 148 75 +77 1 76 77 +78 1 77 78 +79 1 78 79 +80 1 79 80 +81 1 80 81 +82 1 81 82 +83 1 82 83 +84 1 83 84 +85 1 84 85 +86 1 85 86 +87 1 86 87 +88 1 87 88 +89 1 88 89 +90 1 89 90 +91 1 90 91 +92 1 91 92 +93 1 92 93 +94 1 93 94 +95 1 94 95 +96 1 95 96 +97 1 96 97 +98 1 97 98 +99 1 98 99 +100 1 99 100 +101 1 100 101 +102 1 101 102 +103 1 102 103 +104 1 103 104 +105 1 104 105 +106 1 105 106 +107 1 106 107 +108 1 107 108 +109 1 108 109 +110 1 109 110 +111 1 110 111 +112 1 111 112 +113 1 112 113 +114 1 113 114 +115 1 114 115 +116 1 115 116 +117 1 116 117 +118 1 117 118 +119 1 118 119 +120 1 119 120 +121 1 120 121 +122 1 121 122 +123 1 122 123 +124 1 123 124 +125 1 124 125 +126 1 125 126 +127 1 126 127 +128 1 127 128 +129 1 128 129 +130 1 129 130 +131 1 130 131 +132 1 131 132 +133 1 132 133 +134 1 133 134 +135 1 134 135 +136 1 135 136 +137 1 136 137 +138 1 137 138 +139 1 138 139 +140 1 139 140 +141 1 140 141 +142 1 141 142 +143 1 142 143 +144 1 143 144 +145 1 144 145 +146 1 145 146 +147 1 146 147 +148 1 147 148 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9828541875306525 0.12879706731240614 -0.10093645894201106 0.08497524793392826 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9076319099077714 0.14371009860279324 -0.0061127301821370696 0.3943530882425885 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.7156666230136304 0.13639947227633528 0.03941894579775276 0.6838586223622523 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.551483876992997 0.0945081114480617 0.05507676463033448 0.826982648116119 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.24878195093628586 0.25477295141293216 0.17560035853168876 0.9178032459085236 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.09814576590180418 0.2630252745002951 0.0750862666667879 0.9568422890777962 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.36099905322484027 0.20576958877633506 0.05427501922331751 0.9079607822994866 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.7222470672351088 0.18134561062508855 -0.07603445152283007 0.6630925316718025 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.7207213859113211 -0.081618921713485 0.2444656792207328 -0.6435336566113217 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.9121007124750514 -0.01217119606138896 0.2913039145765659 -0.2882120428457281 +11 9.999999997766462 9.999999997766462 9.999999997766462 0.953249593652999 0.05081512321641071 0.29695596119287027 -0.0234561839375449 +12 9.999999997766462 9.999999997766462 9.999999997766462 0.893216854716605 0.19782387032700505 0.32197381347668597 0.2436436541638224 +13 9.999999997766462 9.999999997766462 9.999999997766462 0.7804220903358083 0.3075288797089802 0.40715287039611386 0.3613777652111879 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.6203605365073518 0.3741569541553062 0.35408302093722205 0.5914258978819795 +15 9.999999997766462 9.999999997766462 9.999999997766462 0.3960444020645081 0.5102735688288697 0.4358052977828721 0.6267722544691949 +16 9.999999997766462 9.999999997766462 9.999999997766462 0.13777757932263526 0.6041124653901045 0.23900745590897193 0.7476235040554876 +17 9.999999997766462 9.999999997766462 9.999999997766462 -0.14487300744864823 0.6140449381421356 0.15150134965763856 0.7609257300858729 +18 9.999999997766462 9.999999997766462 9.999999997766462 -0.3344250731601342 0.6010892081702673 -0.017846433649279014 0.7256260325188738 +19 9.999999997766462 9.999999997766462 9.999999997766462 -0.5074640025256208 0.5175428589716987 -0.22947810189520476 0.6495917764401355 +20 9.999999997766462 9.999999997766462 9.999999997766462 0.6927772486705646 -0.40626836540518185 0.4423107744840648 -0.3992078127626656 +21 9.999999997766462 9.999999997766462 9.999999997766462 0.6829206576647326 -0.27522098535816325 0.6168603801346256 -0.27812956688100604 +22 9.999999997766462 9.999999997766462 9.999999997766462 0.6788549938954256 0.033964180979933575 0.7308067787169422 -0.06264011378478199 +23 9.999999997766462 9.999999997766462 9.999999997766462 0.5999805514844269 0.2793954015736318 0.7386615340865574 0.12783069068438008 +24 9.999999997766462 9.999999997766462 9.999999997766462 0.4418314756383255 0.5057611588638139 0.7228215888566917 0.16284823610552174 +25 9.999999997766462 9.999999997766462 9.999999997766462 0.3141779374831782 0.7142758691047312 0.539765722838384 0.31584041993110096 +26 9.999999997766462 9.999999997766462 9.999999997766462 0.13009402904433304 0.8026224209437359 0.4188011593597563 0.40432459970221063 +27 9.999999997766462 9.999999997766462 9.999999997766462 0.015395939306808548 0.9125609417624169 0.11793521250895517 0.3912630550831749 +28 9.999999997766462 9.999999997766462 9.999999997766462 0.020389821926513313 0.8930600411816652 -0.2308403071738297 0.3856692502524667 +29 9.999999997766462 9.999999997766462 9.999999997766462 -0.19829980450156168 0.789544960878009 -0.45297996531610585 0.3634626436224299 +30 9.999999997766462 9.999999997766462 9.999999997766462 -0.29878991597718874 0.6265110900381559 -0.6619230912649768 0.28295982297804007 +31 9.999999997766462 9.999999997766462 9.999999997766462 0.3240360642338418 -0.36827828790860756 0.8343565738846102 -0.2514375456181544 +32 9.999999997766462 9.999999997766462 9.999999997766462 0.32014650617553997 -0.05971181117410955 0.9438400245399936 -0.05573797867026355 +33 9.999999997766462 9.999999997766462 9.999999997766462 0.24982350857997523 0.1590081591159326 0.9549704885538687 -0.01832991779955874 +34 9.999999997766462 9.999999997766462 9.999999997766462 0.16999266129422064 0.3749550480019231 0.9099327896340427 -0.05033413784692161 +35 9.999999997766462 9.999999997766462 9.999999997766462 0.19340334476340248 0.6890998585251199 0.6972337573677242 0.040020229907810456 +36 9.999999997766462 9.999999997766462 9.999999997766462 0.1612116171856501 0.859720290458655 0.48091314403740787 0.06011975174706676 +37 9.999999997766462 9.999999997766462 9.999999997766462 0.009261495255550381 0.9402304673687385 0.3245385528799807 0.10274055008497525 +38 9.999999997766462 9.999999997766462 9.999999997766462 -0.178489162453817 0.9806521854786103 0.005310303981292909 0.08021664836046656 +39 9.999999997766462 9.999999997766462 9.999999997766462 -0.1288029405461015 0.9602840555925231 -0.21902557887358792 0.11529150393911712 +40 9.999999997766462 9.999999997766462 9.999999997766462 -0.04731791323035676 0.8474709401996229 -0.5273646012711862 0.037955209534064525 +41 9.999999997766462 9.999999997766462 9.999999997766462 -0.022651622917573347 0.5565011565487459 -0.8295791934725275 -0.03989647223225978 +42 9.999999997766462 9.999999997766462 9.999999997766462 -0.13596774829773478 -0.40509299019424533 0.9040951590175422 0.004938031933284807 +43 9.999999997766462 9.999999997766462 9.999999997766462 -0.23079724764482035 -0.14600108158768343 0.957686102648897 -0.09084956492998986 +44 9.999999997766462 9.999999997766462 9.999999997766462 -0.24753675871742536 0.17224891940889686 0.9383869011016502 -0.16877762495953091 +45 9.999999997766462 9.999999997766462 9.999999997766462 -0.2811167754571826 0.35162969585761844 0.8297679896375197 -0.32987118534443655 +46 9.999999997766462 9.999999997766462 9.999999997766462 -0.26615049812015845 0.5992229988318759 0.625822287547174 -0.422424164117712 +47 9.999999997766462 9.999999997766462 9.999999997766462 -0.26520515010155843 0.7417880533852412 0.3692915113072771 -0.49299137101062096 +48 9.999999997766462 9.999999997766462 9.999999997766462 -0.16226711788695447 0.8323801954647086 0.1174686480853541 -0.5167336928900556 +49 9.999999997766462 9.999999997766462 9.999999997766462 -0.04572661296718043 0.8408693531665875 -0.11047316886003926 -0.5278669214241181 +50 9.999999997766462 9.999999997766462 9.999999997766462 0.19411685314820926 0.7587839226558699 -0.3585937241690634 -0.5079135231802451 +51 9.999999997766462 9.999999997766462 9.999999997766462 0.2884389061686524 0.6577064384331197 -0.5877305498173151 -0.3725560884796933 +52 9.999999997766462 9.999999997766462 9.999999997766462 -0.40417504294512524 -0.5007922981141542 0.722387900683145 0.2529927464502668 +53 9.999999997766462 9.999999997766462 9.999999997766462 0.487705221455796 0.2123778745642691 -0.8387806766732518 -0.11613023637226708 +54 9.999999997766462 9.999999997766462 9.999999997766462 0.6413097692721371 -0.008544696549571698 -0.7672266752769908 0.0034636311017504627 +55 9.999999997766462 9.999999997766462 9.999999997766462 0.6030429100152689 -0.25373110064689114 -0.7459977158111821 0.12428670584311194 +56 9.999999997766462 9.999999997766462 9.999999997766462 0.5864519496083405 -0.372875091537276 -0.6178931881796406 0.36775846001532553 +57 9.999999997766462 9.999999997766462 9.999999997766462 -0.48911574896863785 0.5441144354000708 0.4276113192775303 -0.5308990722593522 +58 9.999999997766462 9.999999997766462 9.999999997766462 -0.4417465957365199 0.6181565224178451 0.16076362948117487 -0.6299980272854125 +59 9.999999997766462 9.999999997766462 9.999999997766462 -0.28308904114546696 0.6664475020761871 -0.017606380786631723 -0.6894913611607815 +60 9.999999997766462 9.999999997766462 9.999999997766462 -0.04343392830476409 0.6249932397866798 -0.2350918967721212 -0.7431209485440797 +61 9.999999997766462 9.999999997766462 9.999999997766462 0.3001051086276221 0.5396150277384395 -0.35255590439280615 -0.7031762793867672 +62 9.999999997766462 9.999999997766462 9.999999997766462 0.556986262583898 0.4368102678055262 -0.5133240400778073 -0.4852437769932583 +63 9.999999997766462 9.999999997766462 9.999999997766462 0.795279938190695 0.19986687104396691 -0.4327075609483636 -0.3746294442093639 +64 9.999999997766462 9.999999997766462 9.999999997766462 0.8774746414896595 0.14848167889587988 -0.4429894517950587 -0.10840567408197696 +65 9.999999997766462 9.999999997766462 9.999999997766462 0.9026256675673767 0.09862023274988396 -0.3935312309258709 0.14378499305169315 +66 9.999999997766462 9.999999997766462 9.999999997766462 0.7992966483039178 0.0008565776883433751 -0.3722117248777941 0.4717865684271695 +67 9.999999997766462 9.999999997766462 9.999999997766462 0.5936072962961377 -0.03652051284490529 -0.2825637892972656 0.7526316063676206 +68 9.999999997766462 9.999999997766462 9.999999997766462 0.43644057731838104 -0.13786664664361545 -0.15590190259912107 0.8753325122370452 +69 9.999999997766462 9.999999997766462 9.999999997766462 0.14188152802643034 -0.12788407699426005 0.012864675110957144 0.9815038435943596 +70 9.999999997766462 9.999999997766462 9.999999997766462 -0.17011699210314196 -0.1964455848932923 0.08682166929707971 0.9617335072223387 +71 9.999999997766462 9.999999997766462 9.999999997766462 -0.38329053167753524 -0.1996467474595419 0.09852206601835616 0.8963944148992972 +72 9.999999997766462 9.999999997766462 9.999999997766462 0.6594122085000511 0.160793297137392 -0.16758115116995345 -0.7150088199800926 +73 9.999999997766462 9.999999997766462 9.999999997766462 0.8512883171626583 0.18060232735097068 -0.17245589356555377 -0.4614650205511664 +74 9.999999997766462 9.999999997766462 9.999999997766462 0.9616314641817232 0.12709468738918034 -0.12391907222748418 -0.20917918412557554 +75 9.999999997766462 9.999999997766462 9.999999997766462 0.11151873278872049 0.1669724888151189 0.9775349714635312 -0.06410257234991716 +76 9.999999997766462 9.999999997766462 9.999999997766462 0.002211126817898623 0.5521186363105357 0.8337434054774612 0.0056618176970950045 +77 9.999999997766462 9.999999997766462 9.999999997766462 0.07044943717430134 0.7729866626831493 0.6298061627604926 0.029541385625851832 +78 9.999999997766462 9.999999997766462 9.999999997766462 -0.010806653246459833 0.9027252443710524 0.411417996086784 0.1253219131547623 +79 9.999999997766462 9.999999997766462 9.999999997766462 -0.06940131778729772 0.9746360030066041 0.11360573819677272 0.17989401041019523 +80 9.999999997766462 9.999999997766462 9.999999997766462 -0.20000556212707324 0.9595560965524266 -0.15823100448109342 0.11921754027075034 +81 9.999999997766462 9.999999997766462 9.999999997766462 -0.26251769804085484 0.8226181738157728 -0.4903553171765896 0.11804855458657725 +82 9.999999997766462 9.999999997766462 9.999999997766462 -0.3837234853374367 0.6543399037804607 -0.6234720263018537 0.1894154416623109 +83 9.999999997766462 9.999999997766462 9.999999997766462 0.3855852781915845 -0.47229630772423525 0.7839693435947087 -0.11684288277706342 +84 9.999999997766462 9.999999997766462 9.999999997766462 0.46002037442553534 -0.1407678919113547 0.866403276034954 -0.1338320551890411 +85 9.999999997766462 9.999999997766462 9.999999997766462 0.48887603366012683 0.1731127982177676 0.8530376609375365 0.05795629239499309 +86 9.999999997766462 9.999999997766462 9.999999997766462 0.43899101160689896 0.3758967470065976 0.8089928976311329 0.1073266923956608 +87 9.999999997766462 9.999999997766462 9.999999997766462 0.3553143558383719 0.6425723574078863 0.5903209324805503 0.33522182313466425 +88 9.999999997766462 9.999999997766462 9.999999997766462 0.2536540111199051 0.7421214888111948 0.45155240831127663 0.42545947049716176 +89 9.999999997766462 9.999999997766462 9.999999997766462 0.15382396432141013 0.7505310904822217 0.14263847154124493 0.6266542401168209 +90 9.999999997766462 9.999999997766462 9.999999997766462 -0.16810175118036055 0.7288374808427736 -0.10080598156099228 0.6560303970475613 +91 9.999999997766462 9.999999997766462 9.999999997766462 -0.2831885739735942 0.643948067209743 -0.26839675685463915 0.6581020431646983 +92 9.999999997766462 9.999999997766462 9.999999997766462 -0.4831024117054533 0.453267716115057 -0.42739397992663336 0.6152193293896797 +93 9.999999997766462 9.999999997766462 9.999999997766462 0.6770118192914993 -0.21059755897505428 0.4910911741276808 -0.5060959626269103 +94 9.999999997766462 9.999999997766462 9.999999997766462 0.7442670171743097 -0.08947621534664056 0.6143775419962679 -0.2461723987865454 +95 9.999999997766462 9.999999997766462 9.999999997766462 0.7666665318729418 0.12269014310665635 0.6290675727017766 -0.03799403460385277 +96 9.999999997766462 9.999999997766462 9.999999997766462 0.7171919647397696 0.27392119614493066 0.6165739462155079 0.17446900258634976 +97 9.999999997766462 9.999999997766462 9.999999997766462 0.6242311603419127 0.43977982483754113 0.46478542263682826 0.4482227961944326 +98 9.999999997766462 9.999999997766462 9.999999997766462 0.42790222650129595 0.5250655697375166 0.4214312365282337 0.6029938183014272 +99 9.999999997766462 9.999999997766462 9.999999997766462 0.2468582232791126 0.49224626821105333 0.30309532857077576 0.7777453637472519 +100 9.999999997766462 9.999999997766462 9.999999997766462 -0.03380456035420594 0.5634460183047242 0.08545990308043122 0.8210252378101995 +101 9.999999997766462 9.999999997766462 9.999999997766462 -0.26750916515001516 0.4857064004847054 0.009320517332115886 0.8321305588942125 +102 9.999999997766462 9.999999997766462 9.999999997766462 -0.543656333310932 0.3668193234682623 -0.09381801460790738 0.7490524382953638 +103 9.999999997766462 9.999999997766462 9.999999997766462 0.7108784431095552 -0.3004632412363646 0.2190205688208185 -0.5969955361820375 +104 9.999999997766462 9.999999997766462 9.999999997766462 0.8734231811131953 -0.14399683070372168 0.19737468070828412 -0.4212363883340244 +105 9.999999997766462 9.999999997766462 9.999999997766462 0.9684624161954964 -0.105190045875246 0.17391545136610614 -0.14411460176424984 +106 9.999999997766462 9.999999997766462 9.999999997766462 0.9799304485597246 0.037984124779449666 0.14105544742949488 0.13563510976418097 +107 9.999999997766462 9.999999997766462 9.999999997766462 0.8816175546504624 0.20405639480623733 0.14071717244217888 0.40163435168159917 +108 9.999999997766462 9.999999997766462 9.999999997766462 0.6668815181201708 0.2184913756962591 0.13935946384415568 0.6986483374152993 +109 9.999999997766462 9.999999997766462 9.999999997766462 0.49523667831069 0.06959764035843413 0.04878276823652622 0.8645906791282876 +110 9.999999997766462 9.999999997766462 9.999999997766462 0.2207732329238526 -0.06373893139772668 0.037699540120053256 0.9725097803741426 +111 9.999999997766462 9.999999997766462 9.999999997766462 -0.032729617987676665 -0.18237738709355036 0.08976233597699147 0.9785754870337106 +112 9.999999997766462 9.999999997766462 9.999999997766462 -0.15032793635914565 -0.23367266896015637 0.20496632388946223 0.9385027444830824 +113 9.999999997766462 9.999999997766462 9.999999997766462 0.5098818708103572 0.17022830741237596 -0.2655328085989286 -0.8003343855739379 +114 9.999999997766462 9.999999997766462 9.999999997766462 0.7386002630722802 0.13150233806957554 -0.2899184849443961 -0.5942424240655826 +115 9.999999997766462 9.999999997766462 9.999999997766462 0.8183885516845668 0.21176889551544467 -0.29030250974778893 -0.44846244680902864 +116 9.999999997766462 9.999999997766462 9.999999997766462 0.9430612626489262 0.10580295822334976 -0.2990836107868347 -0.09995090135116472 +117 9.999999997766462 9.999999997766462 9.999999997766462 0.9613379941508746 0.03141943836189481 -0.22153618567675704 0.16051105360936818 +118 9.999999997766462 9.999999997766462 9.999999997766462 0.8625667911488177 0.009442517727487543 -0.19942173035959687 0.46488745210704746 +119 9.999999997766462 9.999999997766462 9.999999997766462 0.7259073589630057 -0.13376476050843852 -0.17209740381142 0.6523403855740064 +120 9.999999997766462 9.999999997766462 9.999999997766462 0.5281310594886722 -0.2846679630342966 -0.07506778574311505 0.7964964296021063 +121 9.999999997766462 9.999999997766462 9.999999997766462 0.24241907358145395 -0.3683073657243024 0.039055584363879806 0.8966924436210727 +122 9.999999997766462 9.999999997766462 9.999999997766462 -0.044981165612273756 -0.40529534424684105 0.1971478516389492 0.8915408589998233 +123 9.999999997766462 9.999999997766462 9.999999997766462 -0.3495232584251298 -0.40209106895373176 0.34714827984449365 0.7717799789373487 +124 9.999999997766462 9.999999997766462 9.999999997766462 0.5344020410886484 0.3826673897545711 -0.38492167218812157 -0.6479316581080214 +125 9.999999997766462 9.999999997766462 9.999999997766462 0.7053269695515239 0.29260497262472956 -0.500965349977395 -0.40734495718073077 +126 9.999999997766462 9.999999997766462 9.999999997766462 0.7696439701870998 0.21424045744249637 -0.5824916559487316 -0.1498421045620125 +127 9.999999997766462 9.999999997766462 9.999999997766462 0.7423816103336222 0.1139330316098165 -0.6216492250908265 0.22235343462746351 +128 9.999999997766462 9.999999997766462 9.999999997766462 0.5887700508646756 -0.08843642096111673 -0.6840133892265956 0.4214908184185525 +129 9.999999997766462 9.999999997766462 9.999999997766462 0.453096146271983 -0.38728607571982976 -0.6241259420947486 0.5051536263270361 +130 9.999999997766462 9.999999997766462 9.999999997766462 -0.4409693358675804 0.53279196704852 0.4417418096721996 -0.5714393565905346 +131 9.999999997766462 9.999999997766462 9.999999997766462 -0.18566644236274712 0.6770317752573873 0.25184635469644123 -0.6661301382600142 +132 9.999999997766462 9.999999997766462 9.999999997766462 0.015608637060561658 0.7425789407541207 -0.020406929491472138 -0.6692656008090734 +133 9.999999997766462 9.999999997766462 9.999999997766462 0.08018393872270876 0.7828265827838332 -0.23834222384166942 -0.5691625967964753 +134 9.999999997766462 9.999999997766462 9.999999997766462 0.13194668226893702 0.7589329168513657 -0.46681103776605365 -0.43439424003717964 +135 9.999999997766462 9.999999997766462 9.999999997766462 0.23078479216727615 0.7124321296591045 -0.5847273355040361 -0.31188585002858094 +136 9.999999997766462 9.999999997766462 9.999999997766462 -0.25136284638005546 -0.45701375225575186 0.841389844073701 0.14148597103058816 +137 9.999999997766462 9.999999997766462 9.999999997766462 -0.33882629405552384 -0.365928882584538 0.8652581637618377 0.05119673222505744 +138 9.999999997766462 9.999999997766462 9.999999997766462 -0.3901032217728516 -0.04271905647523107 0.919195929073709 -0.03276282269018462 +139 9.999999997766462 9.999999997766462 9.999999997766462 -0.3503464321192356 0.2164507057056595 0.8846466649907219 -0.21864754199770353 +140 9.999999997766462 9.999999997766462 9.999999997766462 -0.2714234139641493 0.5100075547669219 0.7525252671110235 -0.3161128703362045 +141 9.999999997766462 9.999999997766462 9.999999997766462 -0.18623801902606954 0.7425995746707363 0.5393607888180064 -0.35064399531961904 +142 9.999999997766462 9.999999997766462 9.999999997766462 -0.20986530401416495 0.8687694482447833 0.31310815046609125 -0.3211845047308489 +143 9.999999997766462 9.999999997766462 9.999999997766462 -0.1354858154681459 0.9418151150282347 0.014007263864675714 -0.3072973795370049 +144 9.999999997766462 9.999999997766462 9.999999997766462 -0.09121534676964865 0.942226022288734 -0.27543028841845296 -0.16741576884323378 +145 9.999999997766462 9.999999997766462 9.999999997766462 -0.07761809459687324 0.8625267258049417 -0.49537475942792236 -0.06802151413402847 +146 9.999999997766462 9.999999997766462 9.999999997766462 -0.07853628249634757 0.6763776292711046 -0.7295609015799718 -0.06392375019562685 +147 9.999999997766462 9.999999997766462 9.999999997766462 0.18414802295685903 -0.34920401662445405 0.9187682994180332 0.0032973320918147885 +148 9.999999997766462 9.999999997766462 9.999999997766462 0.13019081328575915 -0.1370605858009623 0.9781659097238085 -0.08634929652338917 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/in.dsring b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/in.dsring new file mode 100644 index 0000000000..636af13352 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/in.dsring @@ -0,0 +1,73 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 5 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.dsring + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 100000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 new file mode 100644 index 0000000000..bfc6e85a5a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 @@ -0,0 +1,211 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (0 0 0) to (851 851 851) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 148 atoms + reading velocities ... + 148 velocities + scanning bonds ... + 1 = max bonds/atom + 148 ellipsoids + orthogonal box = (0 0 0) to (851 851 851) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 148 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 148 settings made for mass +148 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 36 36 36 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 122.015812851425 | erot = 125.402528675609 | epot = -1325.18559882055 | etot = -1077.76725729351 +Per MPI rank memory allocation (min/avg/max) = 7.806 | 7.806 | 7.806 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 278.46107 -1367.7166 42.531022 -1203.1698 -0.0059756093 6.1629505e+08 +1000 ekin = 122.370905858635 | erot = 126.447129514011 | epot = -1326.58529267981 | etot = -1077.76725730717 +2000 ekin = 122.691275133791 | erot = 127.497291822809 | epot = -1327.95582427469 | etot = -1077.76725731809 +3000 ekin = 122.920677842253 | erot = 128.459039892254 | epot = -1329.14697506148 | etot = -1077.76725732698 +4000 ekin = 123.015104309575 | erot = 129.250631266888 | epot = -1330.03299290867 | etot = -1077.76725733221 +5000 ekin = 122.9570060981 | erot = 129.822304188926 | epot = -1330.54656761964 | etot = -1077.76725733262 +6000 ekin = 122.758396503728 | erot = 130.158463496347 | epot = -1330.68411732949 | etot = -1077.76725732941 +7000 ekin = 122.444997038107 | erot = 130.2721351435 | epot = -1330.48438950495 | etot = -1077.76725732334 +8000 ekin = 122.055455926322 | erot = 130.202756105441 | epot = -1330.02546934809 | etot = -1077.76725731633 +9000 ekin = 121.639778047767 | erot = 130.001921534636 | epot = -1329.40895689073 | etot = -1077.76725730833 +10000 ekin = 121.255561480542 | erot = 129.724613334693 | epot = -1328.74743211587 | etot = -1077.76725730064 +11000 ekin = 120.959150047792 | erot = 129.417382591736 | epot = -1328.14378993383 | etot = -1077.7672572943 +12000 ekin = 120.804873255896 | erot = 129.110119861451 | epot = -1327.68225040707 | etot = -1077.76725728973 +13000 ekin = 120.84692312026 | erot = 128.811452781899 | epot = -1327.42563318933 | etot = -1077.76725728717 +14000 ekin = 121.124227416954 | erot = 128.510318857508 | epot = -1327.40180356072 | etot = -1077.76725728626 +15000 ekin = 121.666723735015 | erot = 128.179805529182 | epot = -1327.61378655278 | etot = -1077.76725728858 +16000 ekin = 122.48420413773 | erot = 127.7714101238 | epot = -1328.02287155596 | etot = -1077.76725729443 +17000 ekin = 123.554901437623 | erot = 127.223257664149 | epot = -1328.54541640317 | etot = -1077.7672573014 +18000 ekin = 124.838358543238 | erot = 126.479155255363 | epot = -1329.0847711071 | etot = -1077.7672573085 +19000 ekin = 126.271030938727 | erot = 125.497490625599 | epot = -1329.5357788797 | etot = -1077.76725731537 +20000 ekin = 127.785246119996 | erot = 124.269691231027 | epot = -1329.82219466647 | etot = -1077.76725731544 +21000 ekin = 129.341920134184 | erot = 122.835059904168 | epot = -1329.94423735083 | etot = -1077.76725731248 +22000 ekin = 130.919691006211 | erot = 121.262876727301 | epot = -1329.94982504099 | etot = -1077.76725730747 +23000 ekin = 132.5067055481 | erot = 119.63798200526 | epot = -1329.91194485558 | etot = -1077.76725730222 +24000 ekin = 134.092490326559 | erot = 118.03901918442 | epot = -1329.8987668112 | etot = -1077.76725730022 +25000 ekin = 135.660464836621 | erot = 116.515685186215 | epot = -1329.94340732287 | etot = -1077.76725730004 +26000 ekin = 137.186778726604 | erot = 115.085213344397 | epot = -1330.03924937555 | etot = -1077.76725730455 +27000 ekin = 138.631216641226 | erot = 113.733576310579 | epot = -1330.13205025948 | etot = -1077.76725730768 +28000 ekin = 139.956351860934 | erot = 112.450817889846 | epot = -1330.17442705975 | etot = -1077.76725730897 +29000 ekin = 141.132095730945 | erot = 111.248013058276 | epot = -1330.14736609674 | etot = -1077.76725730752 +30000 ekin = 142.135255524947 | erot = 110.165318126416 | epot = -1330.06783095566 | etot = -1077.7672573043 +31000 ekin = 142.945319498095 | erot = 109.26906345586 | epot = -1329.98164025322 | etot = -1077.76725729927 +32000 ekin = 143.550508334477 | erot = 108.646435343349 | epot = -1329.96420097205 | etot = -1077.76725729422 +33000 ekin = 143.94192379333 | erot = 108.385261854402 | epot = -1330.09444293819 | etot = -1077.76725729046 +34000 ekin = 144.112039801496 | erot = 108.556164698166 | epot = -1330.43546178798 | etot = -1077.76725728832 +35000 ekin = 144.054908300964 | erot = 109.203418763406 | epot = -1331.02558435228 | etot = -1077.76725728791 +36000 ekin = 143.757709793102 | erot = 110.342536293123 | epot = -1331.86750337561 | etot = -1077.76725728938 +37000 ekin = 143.224204313506 | erot = 111.95088434885 | epot = -1332.942345956 | etot = -1077.76725729365 +38000 ekin = 142.457513980673 | erot = 113.968727530034 | epot = -1334.19349881072 | etot = -1077.76725730001 +39000 ekin = 141.463565854942 | erot = 116.29723735485 | epot = -1335.52806051882 | etot = -1077.76725730903 +40000 ekin = 140.250124908962 | erot = 118.793122406283 | epot = -1336.81050463699 | etot = -1077.76725732174 +41000 ekin = 138.820773211814 | erot = 121.268568926308 | epot = -1337.85659947459 | etot = -1077.76725733647 +42000 ekin = 137.182796339923 | erot = 123.506485031842 | epot = -1338.45653872253 | etot = -1077.76725735076 +43000 ekin = 135.367500581476 | erot = 125.29033107441 | epot = -1338.42508901096 | etot = -1077.76725735508 +44000 ekin = 133.337269375167 | erot = 126.415468495777 | epot = -1337.51999529678 | etot = -1077.76725742584 +45000 ekin = 131.439049413892 | erot = 126.724836949372 | epot = -1335.93114371325 | etot = -1077.76725734999 +46000 ekin = 129.845441134595 | erot = 126.391857491267 | epot = -1334.00455608503 | etot = -1077.76725745917 +47000 ekin = 128.256459545521 | erot = 125.565939986762 | epot = -1331.58965689646 | etot = -1077.76725736418 +48000 ekin = 127.882214731217 | erot = 124.234254983921 | epot = -1329.88372728254 | etot = -1077.76725756741 +49000 ekin = 127.351717354214 | erot = 122.498251564086 | epot = -1327.61722629563 | etot = -1077.76725737733 +50000 ekin = 127.042187382637 | erot = 120.712825414822 | epot = -1325.52227015942 | etot = -1077.76725736196 +51000 ekin = 126.939090812203 | erot = 119.088171838498 | epot = -1323.7945200008 | etot = -1077.7672573501 +52000 ekin = 127.052758247807 | erot = 117.797033031223 | epot = -1322.61704861958 | etot = -1077.76725734055 +53000 ekin = 127.367330865571 | erot = 116.951027484839 | epot = -1322.08561579165 | etot = -1077.76725744124 +54000 ekin = 127.699598694243 | erot = 116.588954946935 | epot = -1322.05581098738 | etot = -1077.7672573462 +55000 ekin = 128.765472970124 | erot = 116.722527775949 | epot = -1323.25525818877 | etot = -1077.76725744269 +56000 ekin = 129.745971272492 | erot = 117.329047803033 | epot = -1324.84227644251 | etot = -1077.76725736699 +57000 ekin = 130.68679923891 | erot = 118.336149226794 | epot = -1326.79020584606 | etot = -1077.76725738035 +58000 ekin = 131.547485886187 | erot = 119.658488175854 | epot = -1328.97323145072 | etot = -1077.76725738868 +59000 ekin = 132.288746551762 | erot = 121.192124361468 | epot = -1331.2481283112 | etot = -1077.76725739797 +60000 ekin = 132.889658039575 | erot = 122.813399448196 | epot = -1333.47031489469 | etot = -1077.76725740691 +61000 ekin = 133.34147638721 | erot = 124.387402689362 | epot = -1335.49613649179 | etot = -1077.76725741522 +62000 ekin = 133.649114161524 | erot = 125.778714754977 | epot = -1337.19508633847 | etot = -1077.76725742197 +63000 ekin = 133.82819881192 | erot = 126.867080850077 | epot = -1338.46253708695 | etot = -1077.76725742496 +64000 ekin = 133.906684651824 | erot = 127.563040672905 | epot = -1339.23698275248 | etot = -1077.76725742775 +65000 ekin = 133.909388287634 | erot = 127.810288982225 | epot = -1339.48693469479 | etot = -1077.76725742493 +66000 ekin = 133.86081006735 | erot = 127.603400400037 | epot = -1339.23146788818 | etot = -1077.76725742079 +67000 ekin = 133.775485591323 | erot = 126.989915348575 | epot = -1338.53265835276 | etot = -1077.76725741286 +68000 ekin = 133.656407434476 | erot = 126.056031307506 | epot = -1337.47969615099 | etot = -1077.76725740901 +69000 ekin = 133.498245523806 | erot = 124.901121868324 | epot = -1336.16662479387 | etot = -1077.76725740175 +70000 ekin = 133.29399842671 | erot = 123.635623442427 | epot = -1334.69687926337 | etot = -1077.76725739423 +71000 ekin = 133.029392386924 | erot = 122.365171367186 | epot = -1333.16182114485 | etot = -1077.76725739074 +72000 ekin = 132.685056689193 | erot = 121.171597639892 | epot = -1331.62391171537 | etot = -1077.76725738628 +73000 ekin = 132.251376493387 | erot = 120.116099015078 | epot = -1330.13473289197 | etot = -1077.76725738351 +74000 ekin = 131.726574812548 | erot = 119.247057316129 | epot = -1328.74088951045 | etot = -1077.76725738177 +75000 ekin = 131.110698166934 | erot = 118.598252474103 | epot = -1327.47620801944 | etot = -1077.7672573784 +76000 ekin = 130.422389067205 | erot = 118.195180955537 | epot = -1326.38482739773 | etot = -1077.76725737499 +77000 ekin = 129.697453900293 | erot = 118.05495085627 | epot = -1325.51966212761 | etot = -1077.76725737104 +78000 ekin = 128.983808987508 | erot = 118.189138027539 | epot = -1324.94020438318 | etot = -1077.76725736813 +79000 ekin = 128.33503884882 | erot = 118.595476281743 | epot = -1324.69777249594 | etot = -1077.76725736537 +80000 ekin = 127.800117751073 | erot = 119.26689064397 | epot = -1324.83426576002 | etot = -1077.76725736498 +81000 ekin = 127.407996010304 | erot = 120.178391162382 | epot = -1325.35364454144 | etot = -1077.76725736875 +82000 ekin = 127.161473447285 | erot = 121.280514709077 | epot = -1326.20924553086 | etot = -1077.76725737449 +83000 ekin = 127.04595184901 | erot = 122.504106964497 | epot = -1327.31731619533 | etot = -1077.76725738182 +84000 ekin = 127.034443068044 | erot = 123.770035256801 | epot = -1328.57173571383 | etot = -1077.76725738899 +85000 ekin = 127.100009803031 | erot = 125.002871400657 | epot = -1329.87013859938 | etot = -1077.7672573957 +86000 ekin = 127.209916231691 | erot = 126.126063406782 | epot = -1331.10323704296 | etot = -1077.76725740449 +87000 ekin = 127.33974310822 | erot = 127.079810479666 | epot = -1332.186810994 | etot = -1077.76725740611 +88000 ekin = 127.492851572889 | erot = 127.842496747421 | epot = -1333.1026057236 | etot = -1077.76725740329 +89000 ekin = 127.697668813164 | erot = 128.428193060101 | epot = -1333.89311927022 | etot = -1077.76725739695 +90000 ekin = 128.002367682838 | erot = 128.890624121692 | epot = -1334.66024919208 | etot = -1077.76725738755 +91000 ekin = 128.464258986688 | erot = 129.314890049746 | epot = -1335.54640641371 | etot = -1077.76725737728 +92000 ekin = 129.138404881412 | erot = 129.795965407416 | epot = -1336.70162765837 | etot = -1077.76725736954 +93000 ekin = 130.05988004796 | erot = 130.410441748419 | epot = -1338.23757916353 | etot = -1077.76725736715 +94000 ekin = 131.22652253725 | erot = 131.190635069448 | epot = -1340.18441497914 | etot = -1077.76725737244 +95000 ekin = 132.586213223046 | erot = 132.107679404097 | epot = -1342.46115001118 | etot = -1077.76725738403 +96000 ekin = 134.044080427152 | erot = 133.075735506149 | epot = -1344.8870733339 | etot = -1077.7672574006 +97000 ekin = 135.476028603552 | erot = 133.967715320791 | epot = -1347.21100134248 | etot = -1077.76725741814 +98000 ekin = 136.748227204441 | erot = 134.641388466874 | epot = -1349.15687309791 | etot = -1077.76725742659 +99000 ekin = 137.752624159367 | erot = 134.99210077777 | epot = -1350.51198237554 | etot = -1077.7672574384 +100000 ekin = 138.392477025647 | erot = 134.944608034508 | epot = -1351.10434250636 | etot = -1077.76725744621 + 100000 315.83543 -1390.6819 39.577599 -1212.7119 -0.012722464 6.1629505e+08 +Loop time of 54.6153 on 1 procs for 100000 steps with 148 atoms + +Performance: 2.699 ns/day, 8.893 hours/ns, 1830.989 timesteps/s, 270.986 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 52.073 | 52.073 | 52.073 | 0.0 | 95.35 +Bond | 0.74079 | 0.74079 | 0.74079 | 0.0 | 1.36 +Neigh | 0.010107 | 0.010107 | 0.010107 | 0.0 | 0.02 +Comm | 0.040371 | 0.040371 | 0.040371 | 0.0 | 0.07 +Output | 0.097636 | 0.097636 | 0.097636 | 0.0 | 0.18 +Modify | 1.5841 | 1.5841 | 1.5841 | 0.0 | 2.90 +Other | | 0.06901 | | | 0.13 + +Nlocal: 148 ave 148 max 148 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4199 ave 4199 max 4199 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4199 +Ave neighs/atom = 28.371622 +Ave special neighs/atom = 6 +Neighbor list builds = 100 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:54 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 new file mode 100644 index 0000000000..fa68fac2c2 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 @@ -0,0 +1,211 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (0 0 0) to (851 851 851) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 148 atoms + reading velocities ... + 148 velocities + scanning bonds ... + 1 = max bonds/atom + 148 ellipsoids + orthogonal box = (0 0 0) to (851 851 851) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 148 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.011 seconds +Setting atom values ... + 148 settings made for mass +148 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 36 36 36 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 122.015812851425 | erot = 125.402528675609 | epot = -1325.18559882055 | etot = -1077.76725729351 +Per MPI rank memory allocation (min/avg/max) = 7.619 | 7.668 | 7.742 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 278.46107 -1367.7166 42.531022 -1203.1698 -0.0059756093 6.1629505e+08 +1000 ekin = 122.370905858635 | erot = 126.447129514011 | epot = -1326.58529267981 | etot = -1077.76725730716 +2000 ekin = 122.691275133791 | erot = 127.497291822808 | epot = -1327.95582427469 | etot = -1077.76725731809 +3000 ekin = 122.920677842253 | erot = 128.459039892254 | epot = -1329.14697506148 | etot = -1077.76725732698 +4000 ekin = 123.015104309575 | erot = 129.250631266888 | epot = -1330.03299290867 | etot = -1077.7672573322 +5000 ekin = 122.957006098101 | erot = 129.822304188925 | epot = -1330.54656761964 | etot = -1077.76725733262 +6000 ekin = 122.758396503728 | erot = 130.158463496346 | epot = -1330.68411732949 | etot = -1077.76725732941 +7000 ekin = 122.444997038108 | erot = 130.272135143499 | epot = -1330.48438950495 | etot = -1077.76725732334 +8000 ekin = 122.055455926323 | erot = 130.202756105441 | epot = -1330.02546934809 | etot = -1077.76725731633 +9000 ekin = 121.639778047767 | erot = 130.001921534637 | epot = -1329.40895689073 | etot = -1077.76725730833 +10000 ekin = 121.255561480543 | erot = 129.724613334694 | epot = -1328.74743211587 | etot = -1077.76725730063 +11000 ekin = 120.959150047793 | erot = 129.417382591737 | epot = -1328.14378993382 | etot = -1077.76725729429 +12000 ekin = 120.804873255897 | erot = 129.110119861453 | epot = -1327.68225040707 | etot = -1077.76725728972 +13000 ekin = 120.846923120261 | erot = 128.8114527819 | epot = -1327.42563318933 | etot = -1077.76725728717 +14000 ekin = 121.124227416955 | erot = 128.51031885751 | epot = -1327.40180356072 | etot = -1077.76725728625 +15000 ekin = 121.666723735015 | erot = 128.179805529184 | epot = -1327.61378655278 | etot = -1077.76725728858 +16000 ekin = 122.48420413773 | erot = 127.771410123803 | epot = -1328.02287155596 | etot = -1077.76725729443 +17000 ekin = 123.554901437623 | erot = 127.223257664152 | epot = -1328.54541640317 | etot = -1077.76725730139 +18000 ekin = 124.838358543238 | erot = 126.479155255366 | epot = -1329.0847711071 | etot = -1077.7672573085 +19000 ekin = 126.271030938727 | erot = 125.497490625601 | epot = -1329.53577887969 | etot = -1077.76725731536 +20000 ekin = 127.785246119996 | erot = 124.269691231029 | epot = -1329.82219466646 | etot = -1077.76725731543 +21000 ekin = 129.341920134184 | erot = 122.835059904169 | epot = -1329.94423735083 | etot = -1077.76725731247 +22000 ekin = 130.91969100621 | erot = 121.2628767273 | epot = -1329.94982504098 | etot = -1077.76725730747 +23000 ekin = 132.506705548099 | erot = 119.637982005259 | epot = -1329.91194485557 | etot = -1077.76725730222 +24000 ekin = 134.092490326558 | erot = 118.039019184419 | epot = -1329.89876681119 | etot = -1077.76725730022 +25000 ekin = 135.660464836621 | erot = 116.515685186213 | epot = -1329.94340732286 | etot = -1077.76725730003 +26000 ekin = 137.186778726603 | erot = 115.085213344396 | epot = -1330.03924937554 | etot = -1077.76725730454 +27000 ekin = 138.631216641226 | erot = 113.733576310578 | epot = -1330.13205025948 | etot = -1077.76725730767 +28000 ekin = 139.956351860934 | erot = 112.450817889845 | epot = -1330.17442705975 | etot = -1077.76725730897 +29000 ekin = 141.132095730946 | erot = 111.248013058276 | epot = -1330.14736609673 | etot = -1077.76725730751 +30000 ekin = 142.135255524949 | erot = 110.165318126416 | epot = -1330.06783095566 | etot = -1077.76725730429 +31000 ekin = 142.945319498097 | erot = 109.269063455861 | epot = -1329.98164025322 | etot = -1077.76725729926 +32000 ekin = 143.550508334479 | erot = 108.64643534335 | epot = -1329.96420097205 | etot = -1077.76725729422 +33000 ekin = 143.941923793332 | erot = 108.385261854403 | epot = -1330.09444293819 | etot = -1077.76725729046 +34000 ekin = 144.112039801499 | erot = 108.556164698166 | epot = -1330.43546178798 | etot = -1077.76725728831 +35000 ekin = 144.054908300967 | erot = 109.203418763407 | epot = -1331.02558435228 | etot = -1077.76725728791 +36000 ekin = 143.757709793105 | erot = 110.342536293123 | epot = -1331.8675033756 | etot = -1077.76725728938 +37000 ekin = 143.224204313509 | erot = 111.950884348849 | epot = -1332.942345956 | etot = -1077.76725729364 +38000 ekin = 142.457513980675 | erot = 113.968727530033 | epot = -1334.19349881072 | etot = -1077.76725730001 +39000 ekin = 141.463565854944 | erot = 116.297237354849 | epot = -1335.52806051882 | etot = -1077.76725730903 +40000 ekin = 140.250124908963 | erot = 118.793122406281 | epot = -1336.81050463698 | etot = -1077.76725732174 +41000 ekin = 138.820773211815 | erot = 121.268568926305 | epot = -1337.85659947459 | etot = -1077.76725733647 +42000 ekin = 137.182796339923 | erot = 123.506485031839 | epot = -1338.45653872252 | etot = -1077.76725735076 +43000 ekin = 135.367500581475 | erot = 125.290331074407 | epot = -1338.42508901096 | etot = -1077.76725735507 +44000 ekin = 133.337269375166 | erot = 126.415468495773 | epot = -1337.51999529677 | etot = -1077.76725742583 +45000 ekin = 131.43904941389 | erot = 126.724836949369 | epot = -1335.93114371325 | etot = -1077.76725734999 +46000 ekin = 129.845441134593 | erot = 126.391857491264 | epot = -1334.00455608502 | etot = -1077.76725745916 +47000 ekin = 128.256459545521 | erot = 125.565939986761 | epot = -1331.58965689646 | etot = -1077.76725736417 +48000 ekin = 127.882214731216 | erot = 124.23425498392 | epot = -1329.88372728254 | etot = -1077.7672575674 +49000 ekin = 127.351717354214 | erot = 122.498251564087 | epot = -1327.61722629563 | etot = -1077.76725737733 +50000 ekin = 127.042187382636 | erot = 120.712825414824 | epot = -1325.52227015942 | etot = -1077.76725736196 +51000 ekin = 126.939090812203 | erot = 119.088171838501 | epot = -1323.7945200008 | etot = -1077.76725735009 +52000 ekin = 127.052758247806 | erot = 117.797033031227 | epot = -1322.61704861958 | etot = -1077.76725734055 +53000 ekin = 127.36733086557 | erot = 116.951027484844 | epot = -1322.08561579166 | etot = -1077.76725744124 +54000 ekin = 127.699598694242 | erot = 116.588954946942 | epot = -1322.05581098738 | etot = -1077.7672573462 +55000 ekin = 128.765472970119 | erot = 116.722527775956 | epot = -1323.25525818877 | etot = -1077.76725744269 +56000 ekin = 129.745971272485 | erot = 117.329047803041 | epot = -1324.84227644252 | etot = -1077.76725736699 +57000 ekin = 130.686799238902 | erot = 118.336149226803 | epot = -1326.79020584605 | etot = -1077.76725738035 +58000 ekin = 131.547485886178 | erot = 119.658488175863 | epot = -1328.97323145072 | etot = -1077.76725738868 +59000 ekin = 132.288746551752 | erot = 121.192124361476 | epot = -1331.24812831119 | etot = -1077.76725739797 +60000 ekin = 132.889658039566 | erot = 122.813399448204 | epot = -1333.47031489469 | etot = -1077.76725740692 +61000 ekin = 133.341476387201 | erot = 124.387402689369 | epot = -1335.49613649179 | etot = -1077.76725741522 +62000 ekin = 133.649114161516 | erot = 125.778714754983 | epot = -1337.19508633847 | etot = -1077.76725742197 +63000 ekin = 133.828198811913 | erot = 126.867080850083 | epot = -1338.46253708696 | etot = -1077.76725742496 +64000 ekin = 133.906684651817 | erot = 127.56304067291 | epot = -1339.23698275248 | etot = -1077.76725742776 +65000 ekin = 133.909388287628 | erot = 127.81028898223 | epot = -1339.48693469479 | etot = -1077.76725742493 +66000 ekin = 133.860810067346 | erot = 127.603400400042 | epot = -1339.23146788819 | etot = -1077.7672574208 +67000 ekin = 133.775485591319 | erot = 126.98991534858 | epot = -1338.53265835276 | etot = -1077.76725741286 +68000 ekin = 133.656407434473 | erot = 126.056031307511 | epot = -1337.479696151 | etot = -1077.76725740901 +69000 ekin = 133.498245523803 | erot = 124.901121868328 | epot = -1336.16662479388 | etot = -1077.76725740175 +70000 ekin = 133.293998426708 | erot = 123.635623442431 | epot = -1334.69687926337 | etot = -1077.76725739423 +71000 ekin = 133.029392386922 | erot = 122.36517136719 | epot = -1333.16182114486 | etot = -1077.76725739074 +72000 ekin = 132.685056689192 | erot = 121.171597639896 | epot = -1331.62391171537 | etot = -1077.76725738628 +73000 ekin = 132.251376493386 | erot = 120.116099015081 | epot = -1330.13473289197 | etot = -1077.76725738351 +74000 ekin = 131.726574812547 | erot = 119.247057316132 | epot = -1328.74088951045 | etot = -1077.76725738177 +75000 ekin = 131.110698166933 | erot = 118.598252474106 | epot = -1327.47620801944 | etot = -1077.7672573784 +76000 ekin = 130.422389067204 | erot = 118.195180955539 | epot = -1326.38482739773 | etot = -1077.76725737499 +77000 ekin = 129.697453900292 | erot = 118.054950856271 | epot = -1325.51966212761 | etot = -1077.76725737104 +78000 ekin = 128.983808987507 | erot = 118.18913802754 | epot = -1324.94020438318 | etot = -1077.76725736813 +79000 ekin = 128.33503884882 | erot = 118.595476281743 | epot = -1324.69777249594 | etot = -1077.76725736537 +80000 ekin = 127.800117751073 | erot = 119.266890643969 | epot = -1324.83426576002 | etot = -1077.76725736498 +81000 ekin = 127.407996010304 | erot = 120.178391162381 | epot = -1325.35364454144 | etot = -1077.76725736875 +82000 ekin = 127.161473447286 | erot = 121.280514709075 | epot = -1326.20924553085 | etot = -1077.76725737449 +83000 ekin = 127.045951849011 | erot = 122.504106964495 | epot = -1327.31731619533 | etot = -1077.76725738182 +84000 ekin = 127.034443068046 | erot = 123.770035256799 | epot = -1328.57173571383 | etot = -1077.76725738899 +85000 ekin = 127.100009803033 | erot = 125.002871400656 | epot = -1329.87013859939 | etot = -1077.7672573957 +86000 ekin = 127.209916231694 | erot = 126.12606340678 | epot = -1331.10323704296 | etot = -1077.76725740449 +87000 ekin = 127.339743108223 | erot = 127.079810479664 | epot = -1332.186810994 | etot = -1077.76725740611 +88000 ekin = 127.492851572892 | erot = 127.842496747418 | epot = -1333.1026057236 | etot = -1077.76725740329 +89000 ekin = 127.697668813166 | erot = 128.428193060097 | epot = -1333.89311927021 | etot = -1077.76725739695 +90000 ekin = 128.00236768284 | erot = 128.890624121688 | epot = -1334.66024919208 | etot = -1077.76725738755 +91000 ekin = 128.464258986691 | erot = 129.314890049742 | epot = -1335.54640641371 | etot = -1077.76725737728 +92000 ekin = 129.138404881414 | erot = 129.795965407411 | epot = -1336.70162765836 | etot = -1077.76725736954 +93000 ekin = 130.059880047962 | erot = 130.410441748414 | epot = -1338.23757916353 | etot = -1077.76725736715 +94000 ekin = 131.226522537251 | erot = 131.190635069444 | epot = -1340.18441497913 | etot = -1077.76725737244 +95000 ekin = 132.586213223046 | erot = 132.107679404094 | epot = -1342.46115001117 | etot = -1077.76725738403 +96000 ekin = 134.044080427153 | erot = 133.075735506146 | epot = -1344.88707333389 | etot = -1077.76725740059 +97000 ekin = 135.476028603552 | erot = 133.967715320788 | epot = -1347.21100134248 | etot = -1077.76725741814 +98000 ekin = 136.748227204441 | erot = 134.641388466873 | epot = -1349.15687309791 | etot = -1077.76725742659 +99000 ekin = 137.752624159367 | erot = 134.99210077777 | epot = -1350.51198237554 | etot = -1077.7672574384 +100000 ekin = 138.392477025646 | erot = 134.94460803451 | epot = -1351.10434250636 | etot = -1077.76725744621 + 100000 315.83543 -1390.6819 39.577599 -1212.7119 -0.012722464 6.1629505e+08 +Loop time of 20.8885 on 4 procs for 100000 steps with 148 atoms + +Performance: 7.056 ns/day, 3.401 hours/ns, 4787.333 timesteps/s, 708.525 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 11.553 | 15.593 | 18.744 | 74.9 | 74.65 +Bond | 0.22099 | 0.22585 | 0.22864 | 0.6 | 1.08 +Neigh | 0.004397 | 0.0044708 | 0.004533 | 0.1 | 0.02 +Comm | 1.2201 | 4.3856 | 8.4421 | 141.8 | 21.00 +Output | 0.035571 | 0.037478 | 0.038787 | 0.7 | 0.18 +Modify | 0.45808 | 0.46752 | 0.47581 | 1.0 | 2.24 +Other | | 0.1748 | | | 0.84 + +Nlocal: 37 ave 38 max 36 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 111 ave 112 max 110 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Neighs: 1049.75 ave 1288 max 753 min +Histogram: 1 0 0 1 0 0 0 0 0 2 + +Total # of neighbors = 4199 +Ave neighs/atom = 28.371622 +Ave special neighs/atom = 6 +Neighbor list builds = 100 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:20 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/data.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/data.duplex1 new file mode 100644 index 0000000000..a368cef424 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -2.8740969069282687 -3.723118600434732 5.494693518792015 1 1 1.0016462505133576 0 0 0 +2 2 -2.7379071878387986 -6.079929519421481 10.066032484018534 1 1 1.0016462505133576 0 0 0 +3 3 -1.110437385073819 -7.791537941948432 13.848676172779387 1 1 1.0016462505133576 0 0 0 +4 4 1.4306089998272526 -8.354886654263622 17.79828313773629 1 1 1.0016462505133576 0 0 0 +5 1 3.9498326729322186 -6.646891787969407 20.657842369456382 1 1 1.0016462505133576 0 0 0 +6 4 -3.801540967989063 0.7719150486872158 21.01300417274477 2 1 1.0016462505133576 0 0 0 +7 1 -0.287657468030243 1.787063409177335 17.702181979507532 2 1 1.0016462505133576 0 0 0 +8 2 2.8086617684512323 1.5040732709582532 14.656350509768911 2 1 1.0016462505133576 0 0 0 +9 3 5.165059071666839 0.3988634556159852 10.50699529001116 2 1 1.0016462505133576 0 0 0 +10 4 6.817789789050184 -3.1038996716078557 8.419212766646357 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.0015993537866009029 -0.000680681865016988 -0.00014678467473993874 1.3034875452014287 -0.6725260292370423 1.5263182328899618 +2 0.0008422431968202534 -0.0002471920411024751 0.0007894382186365997 -0.32615096872390803 -0.0034351199136194157 -0.9136220137417161 +3 -0.0011446153381118452 0.00041850425643063176 -0.00045926941555484915 1.7184317758530245 2.6050996986101502 -0.47065934236730145 +4 -0.0011077496385743138 0.0002472924939324634 -0.00034633314311123244 -0.5778245520276679 1.752085001878762 -0.24048635097513535 +5 0.0004072478403200556 -0.0012804934445473403 0.0008610591638760516 0.23142339993018143 0.3972766524238825 1.363641236078021 +6 0.00017968178785700138 -0.00024308968845109275 0.00014280408309295725 0.1704955558294103 -1.3525913126172677 1.5501424653239764 +7 -4.108556803115003e-05 0.00023724044475488887 -0.00013843701960263193 0.7809156374181498 -2.1218743676572576 0.2975087875146955 +8 -0.00035835254321313353 0.0008579277312926632 0.0019500603503724006 -0.711656157643413 -2.0351916264105014 -0.7613827970610736 +9 -0.0008730894357027041 -0.00039026927657647716 0.0002796967510539106 -1.193834703375802 1.023301140813147 -1.8342354268493246 +10 0.0009421885758929626 -0.0005326396944231774 0.0006296458639527654 -0.24420734152643714 1.5633648178267814 0.6376075187926279 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 9.999999997766462 9.999999997766462 9.999999997766462 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/in.duplex1 new file mode 100644 index 0000000000..4936c7e9bd --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/in.duplex1 @@ -0,0 +1,73 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..a01079b1ec --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.3220946463642 | etot = -49.9334369948331 +Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -79.708623 6.3865285 -66.715222 -0.044062421 39304000 +1000 ekin = 6.41530681673926 | erot = 17.3249659795569 | epot = -73.6737097924625 | etot = -49.9334369961663 +2000 ekin = 6.27960997228419 | erot = 17.8454841526973 | epot = -74.0585311228698 | etot = -49.9334369978883 +3000 ekin = 6.20339572000348 | erot = 18.3141946085155 | epot = -74.4510273282071 | etot = -49.9334369996881 +4000 ekin = 6.18541696870776 | erot = 18.7042662877837 | epot = -74.8231202577462 | etot = -49.9334370012548 +5000 ekin = 6.22079685461299 | erot = 18.9945001618931 | epot = -75.1487340188923 | etot = -49.9334370023862 +6000 ekin = 6.30238619195772 | erot = 19.1711640282348 | epot = -75.4069872232165 | etot = -49.933437003024 +7000 ekin = 6.42181744516985 | erot = 19.2282392613116 | epot = -75.5834937096768 | etot = -49.9334370031954 +8000 ekin = 6.5702083768984 | erot = 19.1666965396848 | epot = -75.670341919563 | etot = -49.9334370029798 +9000 ekin = 6.73869975295017 | erot = 18.9934225090914 | epot = -75.6655592644387 | etot = -49.9334370023971 +10000 ekin = 6.91896362918058 | erot = 18.720482841468 | epot = -75.5728834721419 | etot = -49.9334370014934 +11000 ekin = 7.10364142561688 | erot = 18.3641504994904 | epot = -75.4012289254607 | etot = -49.9334370003534 +12000 ekin = 7.28657388923056 | erot = 17.9433928027825 | epot = -75.1634036911466 | etot = -49.9334369991335 +13000 ekin = 7.46274124826267 | erot = 17.4778556704808 | epot = -74.8740339167287 | etot = -49.9334369979852 +14000 ekin = 7.62796631031633 | erot = 16.985794378233 | epot = -74.5471976856215 | etot = -49.9334369970722 +15000 ekin = 7.77853508999226 | erot = 16.4826987969597 | epot = -74.1946708831607 | etot = -49.9334369962087 +16000 ekin = 7.91091226447414 | erot = 15.9810202779915 | epot = -73.8253695379244 | etot = -49.9334369954588 +17000 ekin = 8.02167864528801 | erot = 15.4888629495771 | epot = -73.4439785905236 | etot = -49.9334369956585 +18000 ekin = 8.10771648329849 | erot = 15.0085330298885 | epot = -73.0496865092416 | etot = -49.9334369960546 +19000 ekin = 8.16663757201098 | erot = 14.5368419756962 | epot = -72.6369165441952 | etot = -49.933436996488 +20000 ekin = 8.19737361822045 | erot = 14.069473517068 | epot = -72.2002841320777 | etot = -49.9334369967892 +21000 ekin = 8.200840326377 | erot = 13.6028244433726 | epot = -71.7371017665554 | etot = -49.9334369968058 +22000 ekin = 8.18058151811635 | erot = 13.1355858369993 | epot = -71.2496043515412 | etot = -49.9334369964255 +23000 ekin = 8.14330066835266 | erot = 12.6698318997777 | epot = -70.7465695637165 | etot = -49.9334369955862 +24000 ekin = 8.09918346860519 | erot = 12.2114790537769 | epot = -70.2440995166709 | etot = -49.9334369942888 +25000 ekin = 8.06188796651942 | erot = 11.7700779899392 | epot = -69.7654029490659 | etot = -49.9334369926073 +26000 ekin = 8.04803038217859 | erot = 11.357977539424 | epot = -69.3394449122889 | etot = -49.9334369906863 +27000 ekin = 8.07613224077752 | erot = 10.9889629668064 | epot = -68.9985321963396 | etot = -49.9334369887557 +28000 ekin = 8.16468286004856 | erot = 10.6764628926903 | epot = -68.7745827398655 | etot = -49.9334369871266 +29000 ekin = 8.32943276357165 | erot = 10.4314466403616 | epot = -68.6943163900859 | etot = -49.9334369861526 +30000 ekin = 8.58019899558303 | erot = 10.260206659823 | epot = -68.7738426415863 | etot = -49.9334369861802 +31000 ekin = 8.91780959359565 | erot = 10.1623429442233 | epot = -69.0135895252605 | etot = -49.9334369874415 +32000 ekin = 9.33207993074479 | erot = 10.1294239012755 | epot = -69.3949408219811 | etot = -49.9334369899608 +33000 ekin = 9.80167373728905 | erot = 10.1460133617213 | epot = -69.8811240921766 | etot = -49.9334369931663 +34000 ekin = 10.296255703772 | erot = 10.1906808991803 | epot = -70.4203736002083 | etot = -49.933436997256 +35000 ekin = 10.7808236403015 | erot = 10.2363285925375 | epot = -70.950589233993 | etot = -49.9334370011539 +36000 ekin = 11.2209991001448 | erot = 10.2573020893315 | epot = -71.4117381937016 | etot = -49.9334370042253 +37000 ekin = 11.5878770725935 | erot = 10.233920295851 | epot = -71.7552343744929 | etot = -49.9334370060484 +38000 ekin = 11.8612836540756 | erot = 10.1555553859583 | epot = -71.9502760465432 | etot = -49.9334370065093 +39000 ekin = 12.0309099424617 | erot = 10.0214706213655 | epot = -71.985817569609 | etot = -49.9334370057818 +40000 ekin = 12.0955556066702 | erot = 9.83943808382945 | epot = -71.8684306947124 | etot = -49.9334370042128 +41000 ekin = 12.0612052446598 | erot = 9.62294084167585 | epot = -71.617583088525 | etot = -49.9334370021893 +42000 ekin = 11.9387239948167 | erot = 9.38805049860224 | epot = -71.2602114934562 | etot = -49.9334370000373 +43000 ekin = 11.7417170850644 | erot = 9.15084162780929 | epot = -70.8259957108611 | etot = -49.9334369979874 +44000 ekin = 11.4847881035009 | erot = 8.92568438359922 | epot = -70.3439094834557 | etot = -49.9334369963556 +45000 ekin = 11.1822274471315 | erot = 8.72337977254416 | epot = -69.8390442145234 | etot = -49.9334369948477 +46000 ekin = 10.8470862022847 | erot = 8.55290687697305 | epot = -69.3334300728894 | etot = -49.9334369936317 +47000 ekin = 10.4905994457614 | erot = 8.42173082249889 | epot = -68.8457672609551 | etot = -49.9334369926948 +48000 ekin = 10.1219833658041 | erot = 8.33574076580856 | epot = -68.3911611235985 | etot = -49.9334369919859 +49000 ekin = 9.74860996204229 | erot = 8.29978137994427 | epot = -67.9818283334164 | etot = -49.9334369914298 +50000 ekin = 9.37652878062106 | erot = 8.3181429829463 | epot = -67.6281087545116 | etot = -49.9334369909443 +51000 ekin = 9.01124628424547 | erot = 8.39494797706923 | epot = -67.3396312517619 | etot = -49.9334369904472 +52000 ekin = 8.65861585992268 | erot = 8.53436345461162 | epot = -67.1264163044102 | etot = -49.9334369898759 +53000 ekin = 8.32565221212492 | erot = 8.74055503681473 | epot = -66.9996442381288 | etot = -49.9334369891891 +54000 ekin = 8.02107164181931 | erot = 9.01735593163919 | epot = -66.9718645619368 | etot = -49.9334369884783 +55000 ekin = 7.75537320775564 | erot = 9.36712982138555 | epot = -67.0559400169756 | etot = -49.9334369878344 +56000 ekin = 7.54033857901023 | erot = 9.78947615586548 | epot = -67.263251722307 | etot = -49.9334369874313 +57000 ekin = 7.38797148977987 | erot = 10.2796726902731 | epot = -67.6010811675105 | etot = -49.9334369874576 +58000 ekin = 7.30907596761463 | erot = 10.8272746456741 | epot = -68.0697876013461 | etot = -49.9334369880574 +59000 ekin = 7.31183154532697 | erot = 11.4154638702662 | epot = -68.6607324048616 | etot = -49.9334369892684 +60000 ekin = 7.40073708729543 | erot = 12.0215350766978 | epot = -69.3557091550092 | etot = -49.933436991016 +61000 ekin = 7.57612697427838 | erot = 12.6184730514599 | epot = -70.1280370189361 | etot = -49.9334369931978 +62000 ekin = 7.83421085835969 | erot = 13.1768169062567 | epot = -70.9444647601164 | etot = -49.9334369955 +63000 ekin = 8.16736345530171 | erot = 13.6689818833254 | epot = -71.7697823361826 | etot = -49.9334369975555 +64000 ekin = 8.56437270810164 | erot = 14.0716865201635 | epot = -72.5694962279815 | etot = -49.9334369997164 +65000 ekin = 9.01149485546105 | erot = 14.3654371918515 | epot = -73.310369048807 | etot = -49.9334370014944 +66000 ekin = 9.49327902442042 | erot = 14.5383989864003 | epot = -73.9651150135785 | etot = -49.9334370027578 +67000 ekin = 9.99325449816094 | erot = 14.5878691516415 | epot = -74.5145606532497 | etot = -49.9334370034473 +68000 ekin = 10.4944771426633 | erot = 14.5206532270625 | epot = -74.9485673733188 | etot = -49.933437003593 +69000 ekin = 10.9798545698929 | erot = 14.3522752904606 | epot = -75.2655668636681 | etot = -49.9334370033147 +70000 ekin = 11.4322492583888 | erot = 14.1050236216679 | epot = -75.4707098828583 | etot = -49.9334370028015 +71000 ekin = 11.8344774050144 | erot = 13.8051158639603 | epot = -75.5730302711275 | etot = -49.9334370021529 +72000 ekin = 12.1694138303341 | erot = 13.4802146493531 | epot = -75.5830654819228 | etot = -49.9334370022356 +73000 ekin = 12.4176450109615 | erot = 13.1540122377618 | epot = -75.5050942510562 | etot = -49.9334370023328 +74000 ekin = 12.5615004066025 | erot = 12.844248053038 | epot = -75.3391854623092 | etot = -49.9334370026687 +75000 ekin = 12.5860719279485 | erot = 12.5626890441996 | epot = -75.0821979751944 | etot = -49.9334370030463 +76000 ekin = 12.4812201739639 | erot = 12.3157495780693 | epot = -74.7304067552152 | etot = -49.933437003182 +77000 ekin = 12.2439814422807 | erot = 12.1061362624702 | epot = -74.2835547075503 | etot = -49.9334370027995 +78000 ekin = 11.8805929734489 | erot = 11.9347890944435 | epot = -73.7488190696168 | etot = -49.9334370017243 +79000 ekin = 11.407513143564 | erot = 11.8023493789743 | epot = -73.1432995224891 | etot = -49.9334369999508 +80000 ekin = 10.8509854812392 | erot = 11.7096658028891 | epot = -72.4940882817776 | etot = -49.9334369976493 +81000 ekin = 10.2450327503611 | erot = 11.6573342346762 | epot = -71.8358039801528 | etot = -49.9334369951155 +82000 ekin = 9.62812700027476 | erot = 11.6446829926405 | epot = -71.2062469856182 | etot = -49.933436992703 +83000 ekin = 9.03903873930662 | erot = 11.6687532921685 | epot = -70.6412290222223 | etot = -49.9334369907472 +84000 ekin = 8.51249186343724 | erot = 11.7236867864198 | epot = -70.1696156393611 | etot = -49.9334369895041 +85000 ekin = 8.07528521987734 | erot = 11.8007513441408 | epot = -69.8094735531451 | etot = -49.933436989127 +86000 ekin = 7.74350481028741 | erot = 11.888905733036 | epot = -69.5658475329518 | etot = -49.9334369896284 +87000 ekin = 7.52120913163795 | erot = 11.9758324996818 | epot = -69.4304786226217 | etot = -49.9334369913019 +88000 ekin = 7.39850764773337 | erot = 12.0479648689118 | epot = -69.3799095098051 | etot = -49.93343699316 +89000 ekin = 7.35699193773618 | erot = 12.0941781544058 | epot = -69.3846070872457 | etot = -49.9334369951037 +90000 ekin = 7.37367999758399 | erot = 12.1080231759532 | epot = -69.4151401703038 | etot = -49.9334369967666 +91000 ekin = 7.42410695857772 | erot = 12.0887796846358 | epot = -69.4463236410925 | etot = -49.9334369978791 +92000 ekin = 7.48574151827147 | erot = 12.042064982234 | epot = -69.4612434988297 | etot = -49.9334369983243 +93000 ekin = 7.5403711898821 | erot = 11.9791807163969 | epot = -69.4529889044436 | etot = -49.9334369981646 +94000 ekin = 7.57533062469026 | erot = 11.9152823419623 | epot = -69.4240499641669 | etot = -49.9334369975144 +95000 ekin = 7.58377941253783 | erot = 11.8670735491572 | epot = -69.3842899582943 | etot = -49.9334369965993 +96000 ekin = 7.56434675210399 | erot = 11.8500107777802 | epot = -69.3477945255051 | etot = -49.9334369956209 +97000 ekin = 7.52038731169875 | erot = 11.8759317072189 | epot = -69.3297560136748 | etot = -49.9334369947572 +98000 ekin = 7.45894830728074 | erot = 11.9513447834672 | epot = -69.3437300849006 | etot = -49.9334369941527 +99000 ekin = 7.3894451101094 | erot = 12.0764734057244 | epot = -69.3993555097599 | etot = -49.9334369939261 +100000 ekin = 7.32205635827605 | erot = 12.2450152227774 | epot = -69.5005085752216 | etot = -49.9334369941681 +101000 ekin = 7.26597138620094 | erot = 12.4445407770089 | epot = -69.6439491581323 | etot = -49.9334369949225 +102000 ekin = 7.22778180819636 | erot = 12.6574945089323 | epot = -69.8187133132872 | etot = -49.9334369961585 +103000 ekin = 7.21040494123207 | erot = 12.8628067179971 | epot = -70.0066486569777 | etot = -49.9334369977485 +104000 ekin = 7.21287832486989 | erot = 13.0381084092498 | epot = -70.1844237335803 | etot = -49.9334369994605 +105000 ekin = 7.23115719659566 | erot = 13.1624311874587 | epot = -70.3270253850435 | etot = -49.9334370009891 +106000 ekin = 7.25975107867426 | erot = 13.2191029175833 | epot = -70.4122909982755 | etot = -49.9334370020179 +107000 ekin = 7.29377758656529 | erot = 13.1984000366873 | epot = -70.4256146255374 | etot = -49.9334370022848 +108000 ekin = 7.33090314151437 | erot = 13.0994774135712 | epot = -70.3638175567295 | etot = -49.933437001644 +109000 ekin = 7.37271454696904 | erot = 12.9312031783767 | epot = -70.2373547254362 | etot = -49.9334370000905 +110000 ekin = 7.42526209058348 | erot = 12.7117380447812 | epot = -70.0704371331194 | etot = -49.9334369977548 +111000 ekin = 7.49872514941575 | erot = 12.4669230054386 | epot = -69.8990851497371 | etot = -49.9334369948828 +112000 ekin = 7.60628796279973 | erot = 12.2276899311231 | epot = -69.7674148857286 | etot = -49.9334369918058 +113000 ekin = 7.76235901185271 | erot = 12.0267610902749 | epot = -69.7225570910432 | etot = -49.9334369889156 +114000 ekin = 7.98027485026653 | erot = 11.8949023522835 | epot = -69.8086141891872 | etot = -49.9334369866372 +115000 ekin = 8.27045851930279 | erot = 11.8569578160189 | epot = -70.0608533199909 | etot = -49.9334369846692 +116000 ekin = 8.64333470390531 | erot = 11.927372525046 | epot = -70.5041442140703 | etot = -49.933436985119 +117000 ekin = 9.09183845377715 | erot = 12.108244816281 | epot = -71.1335202571184 | etot = -49.9334369870603 +118000 ekin = 9.59711279490118 | erot = 12.3880852370698 | epot = -71.9186350224121 | etot = -49.9334369904412 +119000 ekin = 10.1316662415165 | erot = 12.7420777955395 | epot = -72.8071810320392 | etot = -49.9334369949833 +120000 ekin = 10.6612602592498 | erot = 13.1344486371313 | epot = -73.7291458965887 | etot = -49.9334370002077 +121000 ekin = 11.1480057224142 | erot = 13.5226300221742 | epot = -74.6040727500911 | etot = -49.9334370055027 +122000 ekin = 11.5541779480657 | erot = 13.8626563199417 | epot = -75.3502712782362 | etot = -49.9334370102287 +123000 ekin = 11.8461299089274 | erot = 14.1149357811302 | epot = -75.8945027038779 | etot = -49.9334370138204 +124000 ekin = 11.9977139994366 | erot = 14.2494171746183 | epot = -76.1805681899317 | etot = -49.9334370158768 +125000 ekin = 11.9927642881939 | erot = 14.2492577099009 | epot = -76.175459014312 | etot = -49.9334370162172 +126000 ekin = 11.8263836634494 | erot = 14.1123955938888 | epot = -75.8722162722326 | etot = -49.9334370148943 +127000 ekin = 11.5049845403692 | erot = 13.8508742683788 | epot = -75.2892958209089 | etot = -49.9334370121609 +128000 ekin = 11.0452237618988 | erot = 13.48823800404 | epot = -74.4668987743424 | etot = -49.9334370084036 +129000 ekin = 10.4721243932075 | erot = 13.0556836611653 | epot = -73.4612450584324 | etot = -49.9334370040595 +130000 ekin = 9.81675568764214 | erot = 12.5878092612813 | epot = -72.3380019484647 | etot = -49.9334369995413 +131000 ekin = 9.11382601710269 | erot = 12.1187210112526 | epot = -71.165984023543 | etot = -49.9334369951877 +132000 ekin = 8.3994419110073 | erot = 11.6790046180508 | epot = -70.011883520305 | etot = -49.9334369912469 +133000 ekin = 7.70914257803186 | erot = 11.2937451501986 | epot = -68.936324716116 | etot = -49.9334369878856 +134000 ekin = 7.0759988527824 | erot = 10.9811951880483 | epot = -67.9906310260634 | etot = -49.9334369852327 +135000 ekin = 6.52777388754256 | erot = 10.75096079726 | epot = -67.2121716681418 | etot = -49.9334369833392 +136000 ekin = 6.08771006340461 | erot = 10.6081410500038 | epot = -66.6292880956376 | etot = -49.9334369822292 +137000 ekin = 5.77298785581476 | erot = 10.552372604197 | epot = -66.2587974419407 | etot = -49.9334369819289 +138000 ekin = 5.59354954718462 | erot = 10.5779497433281 | epot = -66.1049362729332 | etot = -49.9334369824205 +139000 ekin = 5.55166881072913 | erot = 10.6745917743557 | epot = -66.1596975687036 | etot = -49.9334369836187 +140000 ekin = 5.64223691297485 | erot = 10.8284932797371 | epot = -66.4041671780735 | etot = -49.9334369853615 +141000 ekin = 5.85383891387405 | erot = 11.0237191850704 | epot = -66.8109950863643 | etot = -49.9334369874198 +142000 ekin = 6.17049552359047 | erot = 11.2439004345778 | epot = -67.3478329477023 | etot = -49.9334369895341 +143000 ekin = 6.57375238284704 | erot = 11.4740276162674 | epot = -67.9812169905818 | etot = -49.9334369914673 +144000 ekin = 7.04468895168924 | erot = 11.701994075136 | epot = -68.680120019886 | etot = -49.9334369930608 +145000 ekin = 7.56544773358585 | erot = 11.9199568354569 | epot = -69.4188415632307 | etot = -49.9334369941879 +146000 ekin = 8.1200495304631 | erot = 12.1239691631675 | epot = -70.1774556887215 | etot = -49.933436995091 +147000 ekin = 8.69445128023778 | erot = 12.3121155932595 | epot = -70.9400038693255 | etot = -49.9334369958282 +148000 ekin = 9.27603993874859 | erot = 12.4837480427639 | epot = -71.6932249780922 | etot = -49.9334369965798 +149000 ekin = 9.85285670508252 | erot = 12.6377352950257 | epot = -72.4240289976087 | etot = -49.9334369975005 +150000 ekin = 10.4128357127046 | erot = 12.7710161831569 | epot = -73.1172888945392 | etot = -49.9334369986777 +151000 ekin = 10.9432663251774 | erot = 12.8778265161479 | epot = -73.7545298414573 | etot = -49.933437000132 +152000 ekin = 11.4305853782861 | erot = 12.9496878240708 | epot = -74.3137102041522 | etot = -49.9334370017953 +153000 ekin = 11.8605190183234 | erot = 12.9761831588472 | epot = -74.7701391807206 | etot = -49.9334370035501 +154000 ekin = 12.2185434955891 | erot = 12.9462452354484 | epot = -75.0982257362823 | etot = -49.9334370052448 +155000 ekin = 12.4906128205059 | erot = 12.8496668717377 | epot = -75.2737166989594 | etot = -49.9334370067158 +156000 ekin = 12.6641064725816 | erot = 12.6785919431794 | epot = -75.2761354235628 | etot = -49.9334370078019 +157000 ekin = 12.7289594615905 | erot = 12.4288160114449 | epot = -75.0912124813834 | etot = -49.933437008348 +158000 ekin = 12.6789226204095 | erot = 12.1008375004914 | epot = -74.7131971291116 | etot = -49.9334370082108 +159000 ekin = 12.5128394530715 | erot = 11.7006734245223 | epot = -74.1469498848661 | etot = -49.9334370072723 +160000 ekin = 12.2357211071562 | erot = 11.2404384839248 | epot = -73.4095965965446 | etot = -49.9334370054637 +161000 ekin = 11.8593038686461 | erot = 10.7386616356059 | epot = -72.5314025070534 | etot = -49.9334370028014 +162000 ekin = 11.4017680282997 | erot = 10.2201339236183 | epot = -71.5553389513339 | etot = -49.9334369994158 +163000 ekin = 10.8864473298725 | erot = 9.71510625265767 | epot = -70.5349905780806 | etot = -49.9334369955505 +164000 ekin = 10.339639107013 | erot = 9.25770793160017 | epot = -69.5307840301537 | etot = -49.9334369915405 +165000 ekin = 9.78791680577074 | erot = 8.8835941059149 | epot = -68.60494789944 | etot = -49.9334369877544 +166000 ekin = 9.25550622083803 | erot = 8.62702487817795 | epot = -67.8159680835519 | etot = -49.9334369845359 +167000 ekin = 8.76224456450922 | erot = 8.51776140061236 | epot = -67.2134429472672 | etot = -49.9334369821456 +168000 ekin = 8.32243639262824 | erot = 8.57826893241441 | epot = -66.8341423057718 | etot = -49.9334369807292 +169000 ekin = 7.94465566391787 | erot = 8.82168625048319 | epot = -66.6997788947134 | etot = -49.9334369803124 +170000 ekin = 7.63232945982425 | erot = 9.25084013989436 | epot = -66.8166065805367 | etot = -49.9334369808181 +171000 ekin = 7.38529238380702 | erot = 9.85836147101373 | epot = -67.1770908361287 | etot = -49.9334369813079 +172000 ekin = 7.20610015415374 | erot = 10.627083624393 | epot = -67.766620762232 | etot = -49.9334369836853 +173000 ekin = 7.08749525316584 | erot = 11.5302525574929 | epot = -68.5511847971414 | etot = -49.9334369864827 +174000 ekin = 7.01847526595513 | erot = 12.5352232664751 | epot = -69.4871355219803 | etot = -49.93343698955 +175000 ekin = 6.9877080022007 | erot = 13.6056336792489 | epot = -70.526778674216 | etot = -49.9334369927664 +176000 ekin = 6.98383597858348 | erot = 14.7031290903658 | epot = -71.6204020649724 | etot = -49.9334369960231 +177000 ekin = 6.99559888535589 | erot = 15.7890361276343 | epot = -72.7180720121957 | etot = -49.9334369992054 +178000 ekin = 7.01192097921241 | erot = 16.8261106927661 | epot = -73.7714686741545 | etot = -49.933437002176 +179000 ekin = 7.02209184959173 | erot = 17.7804349003769 | epot = -74.7359637547449 | etot = -49.9334370047763 +180000 ekin = 7.01611155414299 | erot = 18.6234022668396 | epot = -75.572950827824 | etot = -49.9334370068414 +181000 ekin = 6.98519719010984 | erot = 19.333556749081 | epot = -76.2521909474248 | etot = -49.9334370082339 +182000 ekin = 6.92238544527395 | erot = 19.8970971418282 | epot = -76.7529195977555 | etot = -49.9334370106533 +183000 ekin = 6.8222759254291 | erot = 20.2982684170427 | epot = -77.0539813535497 | etot = -49.9334370110779 +184000 ekin = 6.68055376617427 | erot = 20.5336568135041 | epot = -77.1476475904154 | etot = -49.9334370107371 +185000 ekin = 6.49623294826009 | erot = 20.6104471437531 | epot = -77.0401171017118 | etot = -49.9334370096986 +186000 ekin = 6.27250921536155 | erot = 20.5422446873304 | epot = -76.7481909107548 | etot = -49.9334370080628 +187000 ekin = 6.01720154751464 | erot = 20.3471328407271 | epot = -76.2977713941871 | etot = -49.9334370059454 +188000 ekin = 5.74286684715253 | erot = 20.0458090594969 | epot = -75.7221129101206 | etot = -49.9334370034712 +189000 ekin = 5.46641873149874 | erot = 19.6593652976558 | epot = -75.0592210301649 | etot = -49.9334370010103 +190000 ekin = 5.20811212014894 | erot = 19.2080076862205 | epot = -74.3495568046836 | etot = -49.9334369983141 +191000 ekin = 4.98983337888069 | erot = 18.7117448291952 | epot = -73.6350152038308 | etot = -49.9334369957549 +192000 ekin = 4.83291851070295 | erot = 18.1889644778813 | epot = -72.9553199820979 | etot = -49.9334369935137 +193000 ekin = 4.75584764391605 | erot = 17.6560155879572 | epot = -72.3453002236067 | etot = -49.9334369917334 +194000 ekin = 4.77223428975476 | erot = 17.1270435377863 | epot = -71.8327148180403 | etot = -49.9334369904993 +195000 ekin = 4.88948018807988 | erot = 16.6140592370741 | epot = -71.4369764149749 | etot = -49.933436989821 +196000 ekin = 5.10830059790741 | erot = 16.127174742192 | epot = -71.1689123297485 | etot = -49.9334369896491 +197000 ekin = 5.42311350132857 | erot = 15.6748848012688 | epot = -71.0314352924944 | etot = -49.933436989897 +198000 ekin = 5.823101864179 | erot = 15.264261134288 | epot = -71.0207999889323 | etot = -49.9334369904653 +199000 ekin = 6.29365371082596 | erot = 14.9009682646058 | epot = -71.1280589666963 | etot = -49.9334369912645 +200000 ekin = 6.81787606879633 | erot = 14.5890840258131 | epot = -71.3403970868379 | etot = -49.9334369922284 +201000 ekin = 7.37794822150507 | erot = 14.330785798856 | epot = -71.6421710136752 | etot = -49.9334369933141 +202000 ekin = 7.95618720633075 | erot = 14.1260142258945 | epot = -72.0156384267148 | etot = -49.9334369944895 +203000 ekin = 8.53580140319485 | erot = 13.9722340620995 | epot = -72.4414724610252 | etot = -49.9334369957309 +204000 ekin = 9.10137690711189 | erot = 13.8643800543707 | epot = -72.8991939584906 | etot = -49.9334369970081 +205000 ekin = 9.63916729956463 | erot = 13.7950217250094 | epot = -73.3676260228628 | etot = -49.9334369982888 +206000 ekin = 10.1372494437201 | erot = 13.7547335571646 | epot = -73.8254200004191 | etot = -49.9334369995343 +207000 ekin = 10.5855843060113 | erot = 13.7326036344487 | epot = -74.2516249411772 | etot = -49.9334370007172 +208000 ekin = 10.9759973534346 | erot = 13.7167490933405 | epot = -74.6261834485714 | etot = -49.9334370017963 +209000 ekin = 11.3020857284075 | erot = 13.695034284837 | epot = -74.9305570159883 | etot = -49.9334370027438 +210000 ekin = 11.5590623102062 | erot = 13.6557304747736 | epot = -75.1482297885136 | etot = -49.9334370035338 +211000 ekin = 11.7435554570199 | erot = 13.5881804316498 | epot = -75.265172892812 | etot = -49.9334370041423 +212000 ekin = 11.8533937432468 | erot = 13.4834670393969 | epot = -75.2702977872005 | etot = -49.9334370045568 +213000 ekin = 11.887405437966 | erot = 13.3351971168151 | epot = -75.1560395594847 | etot = -49.9334370047037 +214000 ekin = 11.8452570406668 | erot = 13.1395898321962 | epot = -74.918283877557 | etot = -49.9334370046941 +215000 ekin = 11.7273549851562 | erot = 12.8956103790907 | epot = -74.5564023687286 | etot = -49.9334370044816 +216000 ekin = 11.5348514637304 | erot = 12.6051585142611 | epot = -74.073446982084 | etot = -49.9334370040925 +217000 ekin = 11.2698546386903 | erot = 12.2726360414478 | epot = -73.4759276836659 | etot = -49.9334370035278 +218000 ekin = 10.9360036470647 | erot = 11.9044881932643 | epot = -72.773928843055 | etot = -49.933437002726 +219000 ekin = 10.5395729894744 | erot = 11.509107893732 | epot = -71.9821178847383 | etot = -49.9334370015319 +220000 ekin = 10.0911390958416 | erot = 11.0974113407827 | epot = -71.12198743634 | etot = -49.9334369997158 +221000 ekin = 9.60752759203925 | erot = 10.6840231535665 | epot = -70.2249877426727 | etot = -49.9334369970669 +222000 ekin = 9.11332798616989 | erot = 10.2884385364029 | epot = -69.3352035161138 | etot = -49.933436993541 +223000 ekin = 8.64094443085901 | erot = 9.93507521512023 | epot = -68.5094566353819 | etot = -49.9334369894026 +224000 ekin = 8.22827965338114 | erot = 9.65121040808671 | epot = -67.8129270467276 | etot = -49.9334369852597 +225000 ekin = 7.91390905933865 | erot = 9.4625831391754 | epot = -67.3099291804781 | etot = -49.933436981964 +226000 ekin = 7.73074804872823 | erot = 9.38753011757196 | epot = -67.0517151464721 | etot = -49.9334369801719 +227000 ekin = 7.70009206552193 | erot = 9.43243479453588 | epot = -67.0659638403967 | etot = -49.9334369803389 +228000 ekin = 7.82788964264707 | erot = 9.58936456546829 | epot = -67.3506911902218 | etot = -49.9334369821065 +229000 ekin = 8.10285729533807 | erot = 9.8405603901581 | epot = -67.8768546713476 | etot = -49.9334369858514 +230000 ekin = 8.50059317628578 | erot = 10.1544474914862 | epot = -68.5884776580864 | etot = -49.9334369903144 +231000 ekin = 8.98918217097307 | erot = 10.493400619592 | epot = -69.4160197853243 | etot = -49.9334369947592 +232000 ekin = 9.53377851904017 | erot = 10.8217737549011 | epot = -70.2889892725772 | etot = -49.9334369986359 +233000 ekin = 10.1004633099863 | erot = 11.1105033366914 | epot = -71.1444036483326 | etot = -49.9334370016548 +234000 ekin = 10.658612255984 | erot = 11.3394799942009 | epot = -71.9315292539596 | etot = -49.9334370037748 +235000 ekin = 11.1819014328097 | erot = 11.497727774584 | epot = -72.6130662125069 | etot = -49.9334370051133 +236000 ekin = 11.6484473656525 | erot = 11.5820119850608 | epot = -73.1638963565643 | etot = -49.9334370058509 +237000 ekin = 12.0359802131749 | erot = 11.5953554338433 | epot = -73.5647726545056 | etot = -49.9334370074873 +238000 ekin = 12.321983609933 | erot = 11.5429422765501 | epot = -73.7983628944192 | etot = -49.9334370079361 +239000 ekin = 12.4929747866312 | erot = 11.4297860561661 | epot = -73.8561978508111 | etot = -49.9334370080138 +240000 ekin = 12.5412393847429 | erot = 11.2618516717113 | epot = -73.7365280640656 | etot = -49.9334370076113 +241000 ekin = 12.4660778052252 | erot = 11.0462123362422 | epot = -73.4457271480737 | etot = -49.9334370066063 +242000 ekin = 12.2750005609617 | erot = 10.7914527512415 | epot = -72.9998903170961 | etot = -49.9334370048929 +243000 ekin = 11.9845096947868 | erot = 10.5081603107686 | epot = -72.4261070080167 | etot = -49.9334370024614 +244000 ekin = 11.619935904703 | erot = 10.2090471828747 | epot = -71.7624200869649 | etot = -49.9334369993872 +245000 ekin = 11.2141782120078 | erot = 9.90860612972147 | epot = -71.0562213376396 | etot = -49.9334369959104 +246000 ekin = 10.804980066499 | erot = 9.62226262065129 | epot = -70.3606796795521 | etot = -49.9334369924019 +247000 ekin = 10.4306724668814 | erot = 9.36498469828495 | epot = -69.7290941544644 | etot = -49.9334369892981 +248000 ekin = 10.125200565836 | erot = 9.14967551152589 | epot = -69.2083130643903 | etot = -49.9334369870284 +249000 ekin = 9.91424863501087 | erot = 8.98570765839854 | epot = -68.8333932790368 | etot = -49.9334369856274 +250000 ekin = 9.81343088344703 | erot = 8.87752109616444 | epot = -68.6243889655634 | etot = -49.933436985952 +251000 ekin = 9.81990124694966 | erot = 8.82321712561382 | epot = -68.5765553598857 | etot = -49.9334369873223 +252000 ekin = 9.91845576760695 | erot = 8.81663197784401 | epot = -68.6685247348515 | etot = -49.9334369894006 +253000 ekin = 10.0857195322844 | erot = 8.84890482127693 | epot = -68.868061345352 | etot = -49.9334369917907 +254000 ekin = 10.2944154464787 | erot = 8.9101104579529 | epot = -69.1379628985692 | etot = -49.9334369941377 +255000 ekin = 10.5172797771479 | erot = 8.99090198885701 | epot = -69.4416187622177 | etot = -49.9334369962128 +256000 ekin = 10.7298060333095 | erot = 9.08318965779443 | epot = -69.7464326890098 | etot = -49.9334369979058 +257000 ekin = 10.9117548400263 | erot = 9.1804779576833 | epot = -70.025669796896 | etot = -49.9334369991865 +258000 ekin = 11.0477221380872 | erot = 9.27819694071016 | epot = -70.2593560788573 | etot = -49.93343700006 +259000 ekin = 11.1271588600366 | erot = 9.3738110386782 | epot = -70.4344068992479 | etot = -49.9334370005331 +260000 ekin = 11.1442779893458 | erot = 9.4669885218801 | epot = -70.5447035117415 | etot = -49.9334370005156 +261000 ekin = 11.0980856586657 | erot = 9.56016701500807 | epot = -70.5916896739926 | etot = -49.9334370003188 +262000 ekin = 10.9907927218987 | erot = 9.6547424746047 | epot = -70.5789721960225 | etot = -49.9334369995191 +263000 ekin = 10.829537817859 | erot = 9.75638049585076 | epot = -70.5193553118446 | etot = -49.9334369981348 +264000 ekin = 10.6274954670403 | erot = 9.87566396380612 | epot = -70.4365964270687 | etot = -49.9334369962223 +265000 ekin = 10.4029385010147 | erot = 10.0259787584343 | epot = -70.3623542534473 | etot = -49.9334369939982 +266000 ekin = 10.177674265685 | erot = 10.2209385120995 | epot = -70.332049769659 | etot = -49.9334369918746 +267000 ekin = 9.97447897986438 | erot = 10.4715477508096 | epot = -70.3794637208708 | etot = -49.9334369901968 +268000 ekin = 9.81397218089898 | erot = 10.783566213847 | epot = -70.5309753841286 | etot = -49.9334369893826 +269000 ekin = 9.71175762398395 | erot = 11.1545990385867 | epot = -70.7997936521916 | etot = -49.9334369896209 +270000 ekin = 9.67524675614636 | erot = 11.5728282294546 | epot = -71.1815119767635 | etot = -49.9334369911626 +271000 ekin = 9.70205034561283 | erot = 12.0171639615848 | epot = -71.6526513009489 | etot = -49.9334369937513 +272000 ekin = 9.78119590231133 | erot = 12.4591961343094 | epot = -72.1738290335957 | etot = -49.9334369969749 +273000 ekin = 9.89551530292975 | erot = 12.8671360105974 | epot = -72.6960883138096 | etot = -49.9334370002824 +274000 ekin = 10.0251036095154 | erot = 13.2107359457393 | epot = -73.1692765583682 | etot = -49.9334370031136 +275000 ekin = 10.1509497125671 | erot = 13.4661171078288 | epot = -73.5505038254265 | etot = -49.9334370050306 +276000 ekin = 10.2579077802687 | erot = 13.6195042883016 | epot = -73.8108490743552 | etot = -49.9334370057849 +277000 ekin = 10.3365003461945 | erot = 13.6692293787605 | epot = -73.9391667302955 | etot = -49.9334370053404 +278000 ekin = 10.3834483774443 | erot = 13.6258475790822 | epot = -73.9427329603463 | etot = -49.9334370038198 +279000 ekin = 10.4011507785854 | erot = 13.5106897711507 | epot = -73.8452775512667 | etot = -49.9334370015306 +280000 ekin = 10.3964398124889 | erot = 13.3527125117199 | epot = -73.6825893230131 | etot = -49.9334369988043 +281000 ekin = 10.3779527890289 | erot = 13.1828376404639 | epot = -73.4942274264354 | etot = -49.9334369969425 +282000 ekin = 10.353053740349 | erot = 13.0291459793179 | epot = -73.3156367147798 | etot = -49.933436995113 +283000 ekin = 10.3270589211616 | erot = 12.9150697625823 | epot = -73.1755656779524 | etot = -49.9334369942086 +284000 ekin = 10.3012154521609 | erot = 12.8544062464692 | epot = -73.0890586931095 | etot = -49.9334369944795 +285000 ekin = 10.2715544103098 | erot = 12.8490241982299 | epot = -73.0540156044443 | etot = -49.9334369959046 +286000 ekin = 10.2290782152144 | erot = 12.8892797632598 | epot = -73.0517949765399 | etot = -49.9334369980656 +287000 ekin = 10.1619978630747 | erot = 12.9580079590597 | epot = -73.0534428222849 | etot = -49.9334370001504 +288000 ekin = 10.0601300944718 | erot = 13.0376429488846 | epot = -73.0312100445667 | etot = -49.9334370012103 +289000 ekin = 9.9202215965333 | erot = 13.1179600214046 | epot = -72.9716186185634 | etot = -49.9334370006255 +290000 ekin = 9.74965131749658 | erot = 13.2006151946271 | epot = -72.88370351062 | etot = -49.9334369984963 +291000 ekin = 9.56608911179359 | erot = 13.2978259857956 | epot = -72.7973520932151 | etot = -49.9334369956259 +292000 ekin = 9.39289303103483 | erot = 13.4260428295556 | epot = -72.7523728535721 | etot = -49.9334369929817 +293000 ekin = 9.25289876825675 | erot = 13.5983001411125 | epot = -72.7846359009115 | etot = -49.9334369915422 +294000 ekin = 9.16176985520236 | erot = 13.8176522641868 | epot = -72.9128591109228 | etot = -49.9334369915336 +295000 ekin = 9.12570783653474 | erot = 14.0757418165381 | epot = -73.1348866458706 | etot = -49.9334369927977 +296000 ekin = 9.14197328684946 | erot = 14.3545965147092 | epot = -73.4300067964787 | etot = -49.93343699492 +297000 ekin = 9.20093046429169 | erot = 14.6305016956108 | epot = -73.7648691574402 | etot = -49.9334369975377 +298000 ekin = 9.28824464342762 | erot = 14.876884200274 | epot = -74.0985658445748 | etot = -49.9334370008732 +299000 ekin = 9.38785334981351 | erot = 15.06438864853 | epot = -74.3856790018754 | etot = -49.9334370035319 +300000 ekin = 9.48165911896817 | erot = 15.1708080545938 | epot = -74.5859041795344 | etot = -49.9334370059724 +301000 ekin = 9.55009456870998 | erot = 15.1800632839154 | epot = -74.6635948608319 | etot = -49.9334370082066 +302000 ekin = 9.57201526805398 | erot = 15.0823927221944 | epot = -74.5878450007561 | etot = -49.9334370105077 +303000 ekin = 9.52471361885221 | erot = 14.8708920500091 | epot = -74.3290426817247 | etot = -49.9334370128634 +304000 ekin = 9.3848129445937 | erot = 14.5406211738014 | epot = -73.8588711334674 | etot = -49.9334370150724 +305000 ekin = 9.13228587662142 | erot = 14.0911381302414 | epot = -73.1568610219493 | etot = -49.9334370150865 +306000 ekin = 8.75533716881437 | erot = 13.5286285172573 | epot = -72.2174027016023 | etot = -49.9334370155306 +307000 ekin = 8.24994820430533 | erot = 12.8613386577027 | epot = -71.0447238754311 | etot = -49.933437013423 +308000 ekin = 7.64566207604119 | erot = 12.1187367066719 | epot = -69.6978357833361 | etot = -49.9334370006229 +309000 ekin = 6.2156324931436 | erot = 10.8308134934805 | epot = -66.9798826118175 | etot = -49.9334366251935 +310000 ekin = 6.98208788798062 | erot = 9.38517955465197 | epot = -66.3007041395672 | etot = -49.9334366969346 +311000 ekin = 8.46519197710877 | erot = 8.64607863222307 | epot = -67.0447073767795 | etot = -49.9334367674477 +312000 ekin = 8.66431616582106 | erot = 8.18423138032177 | epot = -66.7819843262754 | etot = -49.9334367801326 +313000 ekin = 8.81657453316169 | erot = 7.84806509572883 | epot = -66.5980764070179 | etot = -49.9334367781274 +314000 ekin = 8.92571410839843 | erot = 7.64505956838057 | epot = -66.5042104526831 | etot = -49.9334367759041 +315000 ekin = 9.01908200767406 | erot = 7.5768080611827 | epot = -66.5293268431115 | etot = -49.9334367742548 +316000 ekin = 9.12426361176407 | erot = 7.636994446041 | epot = -66.6946948314336 | etot = -49.9334367736285 +317000 ekin = 9.26338621518957 | erot = 7.81017000722538 | epot = -67.0069929987641 | etot = -49.9334367763492 +318000 ekin = 9.44365313231158 | erot = 8.06449733144152 | epot = -67.4415872427621 | etot = -49.933436779009 +319000 ekin = 9.65799853893101 | erot = 8.35781040128967 | epot = -67.9492457228302 | etot = -49.9334367826095 +320000 ekin = 9.89196359099104 | erot = 8.64893573871685 | epot = -68.4743361164125 | etot = -49.9334367867046 +321000 ekin = 10.1233187755671 | erot = 8.89745069024987 | epot = -68.9542062564504 | etot = -49.9334367906335 +322000 ekin = 10.3265544624694 | erot = 9.06891954454781 | epot = -69.3289108006577 | etot = -49.9334367936406 +323000 ekin = 10.4783638188737 | erot = 9.14041960358909 | epot = -69.5522202175213 | etot = -49.9334367950585 +324000 ekin = 10.5626654861856 | erot = 9.10522153543596 | epot = -69.601323816133 | etot = -49.9334367945114 +325000 ekin = 10.5736671949011 | erot = 8.97511339417776 | epot = -69.4822173812585 | etot = -49.9334367921796 +326000 ekin = 10.5161587200511 | erot = 8.77895419858394 | epot = -69.2285497068497 | etot = -49.9334367882147 +327000 ekin = 10.4032259690655 | erot = 8.56034165158809 | epot = -68.8970044041409 | etot = -49.9334367834874 +328000 ekin = 10.2524292214703 | erot = 8.37036212265312 | epot = -68.5562281228988 | etot = -49.9334367787753 +329000 ekin = 10.0824546438466 | erot = 8.25940958185304 | epot = -68.2753010004092 | etot = -49.9334367747096 +330000 ekin = 9.90858228192529 | erot = 8.27090994172877 | epot = -68.1129289954878 | etot = -49.9334367718337 +331000 ekin = 9.74053523959285 | erot = 8.43704440644498 | epot = -68.111016416305 | etot = -49.9334367702672 +332000 ekin = 9.5832675956993 | erot = 8.77502618163514 | epot = -68.2917305473884 | etot = -49.933436770054 +333000 ekin = 9.43734454313999 | erot = 9.28570909296637 | epot = -68.6564904072819 | etot = -49.9334367711755 +334000 ekin = 9.30005714166466 | erot = 9.95274790624692 | epot = -69.1862418212745 | etot = -49.9334367733629 +335000 ekin = 9.16539195140551 | erot = 10.7463546200975 | epot = -69.8451833478333 | etot = -49.9334367763303 +336000 ekin = 9.02588570624398 | erot = 11.6261652905678 | epot = -70.5854877765507 | etot = -49.9334367797389 +337000 ekin = 8.87412067608633 | erot = 12.5449700956801 | epot = -71.352527555002 | etot = -49.9334367832356 +338000 ekin = 8.70391892935481 | erot = 13.4530941766686 | epot = -72.0904498925114 | etot = -49.933436786488 +339000 ekin = 8.51126560344778 | erot = 14.3027075314279 | epot = -72.7474099241017 | etot = -49.933436789226 +340000 ekin = 8.29488691398144 | erot = 15.0515581550066 | epot = -73.279881860252 | etot = -49.9334367912639 +341000 ekin = 8.05646205380861 | erot = 15.6657657386799 | epot = -73.6556645849945 | etot = -49.9334367925061 +342000 ekin = 7.80050981598768 | erot = 16.1215554932821 | epot = -73.8555021022001 | etot = -49.9334367929303 +343000 ekin = 7.53404165582677 | erot = 16.4060559812044 | epot = -73.8735344295911 | etot = -49.9334367925598 +344000 ekin = 7.26609676908326 | erot = 16.5174328472112 | epot = -73.716966407732 | etot = -49.9334367914375 +345000 ekin = 7.00725922449378 | erot = 16.4646262362322 | epot = -73.4053222503422 | etot = -49.9334367896163 +346000 ekin = 6.76919816417592 | erot = 16.2668142751609 | epot = -72.9694492265047 | etot = -49.9334367871679 +347000 ekin = 6.56418602316429 | erot = 15.9525180661041 | epot = -72.4501408734789 | etot = -49.9334367842106 +348000 ekin = 6.40447863711508 | erot = 15.5581119659908 | epot = -71.8960273840418 | etot = -49.9334367809359 +349000 ekin = 6.30143449814258 | erot = 15.1255022274318 | epot = -71.3603735031937 | etot = -49.9334367776193 +350000 ekin = 6.26433457359998 | erot = 14.6988992514292 | epot = -70.8966705996324 | etot = -49.9334367746033 +351000 ekin = 6.29901365146538 | erot = 14.3208623426265 | epot = -70.5533127663415 | etot = -49.9334367722497 +352000 ekin = 6.40655985354301 | erot = 14.0280287207505 | epot = -70.3680253451799 | etot = -49.9334367708864 +353000 ekin = 6.58240652259401 | erot = 13.8470668708989 | epot = -70.3629101642376 | etot = -49.9334367707447 +354000 ekin = 6.81609810135423 | erot = 13.7914168213438 | epot = -70.5409516946199 | etot = -49.9334367719218 +355000 ekin = 7.09188628775341 | erot = 13.8593469648778 | epot = -70.8846700269776 | etot = -49.9334367743463 +356000 ekin = 7.39015539571547 | erot = 14.033790526784 | epot = -71.3573827002662 | etot = -49.9334367777667 +357000 ekin = 7.68951512332416 | erot = 14.2842611187699 | epot = -71.9072130238669 | etot = -49.9334367817729 +358000 ekin = 7.96924870687132 | erot = 14.5707976474229 | epot = -72.4734831401511 | etot = -49.9334367858569 +359000 ekin = 8.21171431832055 | erot = 14.8493901180684 | epot = -72.9945412258931 | etot = -49.9334367895041 +360000 ekin = 8.40434316521794 | erot = 15.0779079482545 | epot = -73.4156879057477 | etot = -49.9334367922752 +361000 ekin = 8.54093730786224 | erot = 15.223459117279 | epot = -73.6978332181802 | etot = -49.9334367930389 +362000 ekin = 8.62176162458319 | erot = 15.2683190552292 | epot = -73.8235174732548 | etot = -49.9334367934425 +363000 ekin = 8.65376226171469 | erot = 15.2009231864222 | epot = -73.7881222408683 | etot = -49.9334367927313 +364000 ekin = 8.65006194495836 | erot = 15.0202219537552 | epot = -73.6037206897987 | etot = -49.9334367910852 +365000 ekin = 8.62864344793139 | erot = 14.7344841776847 | epot = -73.2965644144207 | etot = -49.9334367888046 +366000 ekin = 8.6102681648128 | erot = 14.358711776373 | epot = -72.9024167274443 | etot = -49.9334367862585 +367000 ekin = 8.61582393192208 | erot = 13.9116488824808 | epot = -72.4609095982182 | etot = -49.9334367838153 +368000 ekin = 8.66349013751643 | erot = 13.4130591643207 | epot = -72.0099860836059 | etot = -49.9334367817688 +369000 ekin = 8.76619052284205 | erot = 12.8818627722083 | epot = -71.5814900753351 | etot = -49.9334367802848 +370000 ekin = 8.9297841248867 | erot = 12.335453757501 | epot = -71.1986746617711 | etot = -49.9334367793833 +371000 ekin = 9.15232413557797 | erot = 11.7901096915281 | epot = -70.8758706060768 | etot = -49.9334367789707 +372000 ekin = 9.42449522042301 | erot = 11.2619930178438 | epot = -70.619925017159 | etot = -49.9334367788923 +373000 ekin = 9.73107815945971 | erot = 10.7680247395864 | epot = -70.4325396780453 | etot = -49.9334367789992 +374000 ekin = 10.0531002399327 | erot = 10.3260325847661 | epot = -70.31256960388 | etot = -49.9334367791812 +375000 ekin = 10.3702930598053 | erot = 9.95400537168857 | epot = -70.2577352108591 | etot = -49.9334367793653 +376000 ekin = 10.6635382209248 | erot = 9.66873204743242 | epot = -70.2657070478751 | etot = -49.9334367795179 +377000 ekin = 10.9144304196578 | erot = 9.48336618941097 | epot = -70.3312333902978 | etot = -49.933436781229 +378000 ekin = 11.1033255489941 | erot = 9.40465442429995 | epot = -70.4414167547152 | etot = -49.9334367814212 +379000 ekin = 11.2228479612869 | erot = 9.43497166219466 | epot = -70.5912564051334 | etot = -49.9334367816518 +380000 ekin = 11.2715765588452 | erot = 9.57046136396965 | epot = -70.775474704902 | etot = -49.9334367820871 +381000 ekin = 11.2520704290781 | erot = 9.80028776495387 | epot = -70.9857949768612 | etot = -49.9334367828293 +382000 ekin = 11.1693057444479 | erot = 10.1070539322048 | epot = -71.2097964605076 | etot = -49.9334367838549 +383000 ekin = 11.0296540359228 | erot = 10.4684110619645 | epot = -71.4315018829166 | etot = -49.9334367850292 +384000 ekin = 10.8406006584011 | erot = 10.8594456848222 | epot = -71.6334831293848 | etot = -49.9334367861616 +385000 ekin = 10.6110745203043 | erot = 11.2550567348661 | epot = -71.7995680421826 | etot = -49.9334367870122 +386000 ekin = 10.3514833909804 | erot = 11.6320380412179 | epot = -71.9169582201447 | etot = -49.9334367879464 +387000 ekin = 10.0722200977276 | erot = 11.9687897481463 | epot = -71.9744466347428 | etot = -49.933436788869 +388000 ekin = 9.78227942381133 | erot = 12.2453759804225 | epot = -71.961092194011 | etot = -49.9334367897772 +389000 ekin = 9.48904126172454 | erot = 12.4455699112058 | epot = -71.8680479631065 | etot = -49.9334367901762 +390000 ekin = 9.1988011058867 | erot = 12.5588554599197 | epot = -71.69109335618 | etot = -49.9334367903736 +391000 ekin = 8.91824243206977 | erot = 12.5805139316136 | epot = -71.4321931531813 | etot = -49.9334367894979 +392000 ekin = 8.6575772689696 | erot = 12.5171399947339 | epot = -71.1081540510193 | etot = -49.9334367873158 +393000 ekin = 8.43231332351752 | erot = 12.3882397426851 | epot = -70.7539898501723 | etot = -49.9334367839697 +394000 ekin = 8.26247251141758 | erot = 12.2242334615178 | epot = -70.4201427530229 | etot = -49.9334367800876 +395000 ekin = 8.16904684405228 | erot = 12.0605939409215 | epot = -70.1630775616218 | etot = -49.9334367766481 +396000 ekin = 8.16818394388909 | erot = 11.9294338996869 | epot = -70.031054618239 | etot = -49.933436774663 +397000 ekin = 8.26509438251318 | erot = 11.8511087055234 | epot = -70.0496398628365 | etot = -49.9334367747999 +398000 ekin = 8.4501402415728 | erot = 11.8286142934125 | epot = -70.2121913121361 | etot = -49.9334367771509 +399000 ekin = 8.6987524085071 | erot = 11.846535735853 | epot = -70.4787249255838 | etot = -49.9334367812237 +400000 ekin = 8.97515584924223 | erot = 11.8745399217494 | epot = -70.7831325571628 | etot = -49.9334367861712 +401000 ekin = 9.23841273736301 | erot = 11.8739232099274 | epot = -71.0457727383469 | etot = -49.9334367910566 +402000 ekin = 9.44890872719654 | erot = 11.8053354457279 | epot = -71.1876809679463 | etot = -49.9334367950219 +403000 ekin = 9.57405438450813 | erot = 11.6363946720643 | epot = -71.1438858539035 | etot = -49.9334367973311 +404000 ekin = 9.59280070366271 | erot = 11.348515161749 | epot = -70.8747526628665 | etot = -49.9334367974547 +405000 ekin = 9.49859029588226 | erot = 10.9420390046576 | epot = -70.3740660957269 | etot = -49.9334367951871 +406000 ekin = 9.30027519156631 | erot = 10.4381532175857 | epot = -69.6718651999802 | etot = -49.9334367908282 +407000 ekin = 9.02027468745294 | erot = 9.87620869145151 | epot = -68.829920164067 | etot = -49.9334367851625 +408000 ekin = 8.69009310249533 | erot = 9.30670442543022 | epot = -67.9302343071319 | etot = -49.9334367792063 +409000 ekin = 8.34449651482889 | erot = 8.78220945751285 | epot = -67.0601427462141 | etot = -49.9334367738723 +410000 ekin = 8.01620286719442 | erot = 8.34920326966272 | epot = -66.2988429065481 | etot = -49.9334367696909 +411000 ekin = 7.53291151045996 | erot = 8.08116831510292 | epot = -65.5475166514788 | etot = -49.9334368259159 +412000 ekin = 6.47552839017785 | erot = 8.45821289457424 | epot = -64.8671779820466 | etot = -49.9334366972945 +413000 ekin = 6.24399442167419 | erot = 8.99561848801201 | epot = -65.1730495934361 | etot = -49.9334366837499 +414000 ekin = 6.18550934222112 | erot = 9.11685651465889 | epot = -65.2358025415366 | etot = -49.9334366846566 +415000 ekin = 6.1970619114856 | erot = 9.37263397423855 | epot = -65.5031325721667 | etot = -49.9334366864426 +416000 ekin = 6.27056156934871 | erot = 9.74301767920604 | epot = -65.9470159374523 | etot = -49.9334366888976 +417000 ekin = 6.39375612507792 | erot = 10.2017877091225 | epot = -66.5289805260413 | etot = -49.9334366918408 +418000 ekin = 6.55151386108778 | erot = 10.718082412043 | epot = -67.2030329682449 | etot = -49.9334366951141 +419000 ekin = 6.72687533385979 | erot = 11.2579372105315 | epot = -67.918249242961 | etot = -49.9334366985696 +420000 ekin = 6.90190857992248 | erot = 11.7859069157866 | epot = -68.6212521977214 | etot = -49.9334367020123 +421000 ekin = 7.05869608070453 | erot = 12.2671743403912 | epot = -69.2593071262431 | etot = -49.9334367051474 +422000 ekin = 7.18084994342412 | erot = 12.6704427611134 | epot = -69.7847294121138 | etot = -49.9334367075762 +423000 ekin = 7.25563872116252 | erot = 12.9714590209572 | epot = -70.1605344510282 | etot = -49.9334367089085 +424000 ekin = 7.27613764929304 | erot = 13.1562785232249 | epot = -70.3658528814317 | etot = -49.9334367089138 +425000 ekin = 7.24240438622737 | erot = 13.2229033437658 | epot = -70.3987444377231 | etot = -49.93343670773 +426000 ekin = 7.16102366031047 | erot = 13.1802284318522 | epot = -70.274688797831 | etot = -49.9334367056683 +427000 ekin = 7.04323569563786 | erot = 13.0453653110875 | epot = -70.0220377098918 | etot = -49.9334367031664 +428000 ekin = 6.90252931709374 | erot = 12.8399447979979 | epot = -69.6759108156912 | etot = -49.9334367005996 +429000 ekin = 6.75380655237967 | erot = 12.5877583897435 | epot = -69.2750016367889 | etot = -49.9334366946657 +430000 ekin = 6.63643931616211 | erot = 12.3309009158442 | epot = -68.9007769264406 | etot = -49.9334366944343 +431000 ekin = 6.56250777539762 | erot = 12.0862249118176 | epot = -68.5821693817337 | etot = -49.9334366945185 +432000 ekin = 6.5277574398518 | erot = 11.8551418290415 | epot = -68.3163359638447 | etot = -49.9334366949515 +433000 ekin = 6.52644586082078 | erot = 11.6363446464993 | epot = -68.0962272029283 | etot = -49.9334366956083 +434000 ekin = 6.54730069025438 | erot = 11.4229959688113 | epot = -67.9037333576921 | etot = -49.9334366986264 +435000 ekin = 6.57899083359961 | erot = 11.2084874067099 | epot = -67.7209149390926 | etot = -49.9334366987831 +436000 ekin = 6.61931202197556 | erot = 10.9928671140558 | epot = -67.5456158350846 | etot = -49.9334366990532 +437000 ekin = 6.66568526291941 | erot = 10.775445555649 | epot = -67.3745675179758 | etot = -49.9334366994074 +438000 ekin = 6.71519766409353 | erot = 10.5550626355899 | epot = -67.2036969994775 | etot = -49.9334366997941 +439000 ekin = 6.76486690072993 | erot = 10.3306264414445 | epot = -67.0289300423136 | etot = -49.9334367001391 +440000 ekin = 6.81204485682425 | erot = 10.1018252021667 | epot = -66.8473067593426 | etot = -49.9334367003517 +441000 ekin = 6.8549402585791 | erot = 9.86991417524556 | epot = -66.6582911341317 | etot = -49.9334367003071 +442000 ekin = 6.89316565875409 | erot = 9.63860472644123 | epot = -66.4652070851976 | etot = -49.9334367000023 +443000 ekin = 6.92830085529117 | erot = 9.41426089210217 | epot = -66.2759984467657 | etot = -49.9334366993723 +444000 ekin = 6.96427254047519 | erot = 9.20573448271171 | epot = -66.1034437216294 | etot = -49.9334366984425 +445000 ekin = 7.00734929586298 | erot = 9.02391831398023 | epot = -65.9647043071521 | etot = -49.9334366973089 +446000 ekin = 7.06567994298367 | erot = 8.88054940607855 | epot = -65.8796660452047 | etot = -49.9334366961425 +447000 ekin = 7.1482693853796 | erot = 8.78650081534135 | epot = -65.868206895892 | etot = -49.933436695171 +448000 ekin = 7.26342746668263 | erot = 8.74982299478608 | epot = -65.9466871561162 | etot = -49.9334366946475 +449000 ekin = 7.41688893788363 | erot = 8.77375650823683 | epot = -66.1240821409159 | etot = -49.9334366947954 +450000 ekin = 7.60996195055461 | erot = 8.85525305879979 | epot = -66.3986517051257 | etot = -49.9334366957713 +451000 ekin = 7.83859627200689 | erot = 8.98479300395988 | epot = -66.7568259731909 | etot = -49.9334366972242 +452000 ekin = 8.0953465489177 | erot = 9.14858392352467 | epot = -67.1773671722438 | etot = -49.9334366998015 +453000 ekin = 8.36501912235157 | erot = 9.32480175710959 | epot = -67.6232575823023 | etot = -49.9334367028412 +454000 ekin = 8.62787482253606 | erot = 9.48861390841596 | epot = -68.0499254368547 | etot = -49.9334367059027 +455000 ekin = 8.86318683153801 | erot = 9.61656796363323 | epot = -68.4131915036411 | etot = -49.9334367084699 +456000 ekin = 9.05301422109849 | erot = 9.6906953996789 | epot = -68.677146330813 | etot = -49.9334367100356 +457000 ekin = 9.18315881760864 | erot = 9.70061032941657 | epot = -68.8172058578391 | etot = -49.9334367108139 +458000 ekin = 9.2473908388488 | erot = 9.64764046615366 | epot = -68.8284680142724 | etot = -49.9334367092699 +459000 ekin = 9.25548953030117 | erot = 9.54869554441728 | epot = -68.7376217810851 | etot = -49.9334367063667 +460000 ekin = 9.22729166752555 | erot = 9.43094677910707 | epot = -68.5916751492618 | etot = -49.9334367026292 +461000 ekin = 9.18866313207529 | erot = 9.32746380432218 | epot = -68.4495636352403 | etot = -49.9334366988429 +462000 ekin = 9.16559319440608 | erot = 9.27112965794425 | epot = -68.3701595482546 | etot = -49.9334366959043 +463000 ekin = 9.17773873091335 | erot = 9.28803491834508 | epot = -68.3992103437155 | etot = -49.9334366944571 +464000 ekin = 9.2334219753185 | erot = 9.39218062503575 | epot = -68.5590392952285 | etot = -49.9334366948742 +465000 ekin = 9.32780582036065 | erot = 9.58246294342806 | epot = -68.8437054607551 | etot = -49.9334366969664 +466000 ekin = 9.44464021675435 | erot = 9.84368987463132 | epot = -69.2217667915085 | etot = -49.9334367001228 +467000 ekin = 9.56120377684457 | erot = 10.1507714878392 | epot = -69.6454119681725 | etot = -49.9334367034887 +468000 ekin = 9.65468489576676 | erot = 10.4750886621804 | epot = -70.0632102642043 | etot = -49.9334367062572 +469000 ekin = 9.70785696604834 | erot = 10.7910978191503 | epot = -70.4323914930665 | etot = -49.9334367078679 +470000 ekin = 9.71262212180167 | erot = 11.0813447197958 | epot = -70.7274035497418 | etot = -49.9334367081443 +471000 ekin = 9.67073883343496 | erot = 11.3387370682914 | epot = -70.9429126090358 | etot = -49.9334367073094 +472000 ekin = 9.59191180300086 | erot = 11.5659397722493 | epot = -71.091288280938 | etot = -49.9334367056878 +473000 ekin = 9.49111612470798 | erot = 11.7727565997472 | epot = -71.1973094282183 | etot = -49.9334367037631 +474000 ekin = 9.38501610880983 | erot = 11.9729251611027 | epot = -71.291377971837 | etot = -49.9334367019244 +475000 ekin = 9.2888723293099 | erot = 12.181090667979 | epot = -71.4033996977682 | etot = -49.9334367004792 +476000 ekin = 9.21413109738119 | erot = 12.4104297276944 | epot = -71.5579975245924 | etot = -49.9334366995168 +477000 ekin = 9.16769186030955 | erot = 12.6713688993763 | epot = -71.7724974587973 | etot = -49.9334366991115 +478000 ekin = 9.15149095806687 | erot = 12.9706692103864 | epot = -72.0555968677338 | etot = -49.9334366992806 +479000 ekin = 9.16265639589747 | erot = 13.3106560519201 | epot = -72.4067491478423 | etot = -49.9334367000247 +480000 ekin = 9.19406563261028 | erot = 13.6885767380482 | epot = -72.8160790719721 | etot = -49.9334367013136 +481000 ekin = 9.2351814536897 | erot = 14.0963491431014 | epot = -73.2649672998307 | etot = -49.9334367030397 +482000 ekin = 9.27324003577829 | erot = 14.5212080502509 | epot = -73.7278847910061 | etot = -49.9334367049769 +483000 ekin = 9.29487863766067 | erot = 14.9475327813956 | epot = -74.1758481259226 | etot = -49.9334367068663 +484000 ekin = 9.28813070974468 | erot = 15.3594466797463 | epot = -74.5810140977087 | etot = -49.9334367082177 +485000 ekin = 9.24449800631886 | erot = 15.7449638956355 | epot = -74.922898610798 | etot = -49.9334367088436 +486000 ekin = 9.16033951363167 | erot = 16.0979673630931 | epot = -75.1917435854299 | etot = -49.9334367087052 +487000 ekin = 9.03726433394301 | erot = 16.4183746409746 | epot = -75.3890756829008 | etot = -49.9334367079832 +488000 ekin = 8.88140769757311 | erot = 16.7103217583947 | epot = -75.5251661629628 | etot = -49.933436706995 +489000 ekin = 8.7019310328288 | erot = 16.9791336192718 | epot = -75.614501358161 | etot = -49.9334367060604 +490000 ekin = 8.50932564387278 | erot = 17.2283334637251 | epot = -75.6710958130029 | etot = -49.933436705405 +491000 ekin = 8.3140279783916 | erot = 17.4577039709126 | epot = -75.7051686544105 | etot = -49.9334367051063 +492000 ekin = 8.12558483923703 | erot = 17.6628124157463 | epot = -75.721833960107 | etot = -49.9334367051237 +493000 ekin = 7.95231204431639 | erot = 17.8358133610015 | epot = -75.7215621106728 | etot = -49.9334367053549 +494000 ekin = 7.80119073598954 | erot = 17.9669524473278 | epot = -75.7015798890239 | etot = -49.9334367057066 +495000 ekin = 7.67769081998003 | erot = 18.0460778615326 | epot = -75.6572053876598 | etot = -49.9334367061471 +496000 ekin = 7.58531059409856 | erot = 18.0636363740809 | epot = -75.5823836748914 | etot = -49.9334367067119 +497000 ekin = 7.52485262514337 | erot = 18.0110549918106 | epot = -75.469344324409 | etot = -49.933436707455 +498000 ekin = 7.49373543820694 | erot = 17.8809293893934 | epot = -75.308101535769 | etot = -49.9334367081687 +499000 ekin = 7.48617782568836 | erot = 17.6689103471237 | epot = -75.0885248818445 | etot = -49.9334367090325 +500000 ekin = 7.49347216210361 | erot = 17.3741777344968 | epot = -74.8010866062347 | etot = -49.9334367096343 +501000 ekin = 7.50537969957539 | erot = 17.0010883509615 | epot = -74.4399047602053 | etot = -49.9334367096683 +502000 ekin = 7.51248513612193 | erot = 16.5621897687607 | epot = -74.0081116138094 | etot = -49.9334367089268 +503000 ekin = 7.50819446611848 | erot = 16.0791838293679 | epot = -73.5208150028627 | etot = -49.9334367073763 +504000 ekin = 7.49011586233679 | erot = 15.5818683068884 | epot = -73.0054208743933 | etot = -49.9334367051681 +505000 ekin = 7.46056991976306 | erot = 15.1049042921301 | epot = -72.4989109145597 | etot = -49.9334367026665 +506000 ekin = 7.426166883467 | erot = 14.6834712564166 | epot = -72.0430748400303 | etot = -49.9334367001468 +507000 ekin = 7.39661274013544 | erot = 14.3486660365891 | epot = -71.6787154748017 | etot = -49.9334366980772 +508000 ekin = 7.38281606554088 | erot = 14.122381305526 | epot = -71.4386340679655 | etot = -49.9334366968986 +509000 ekin = 7.39402992167344 | erot = 14.0119926345969 | epot = -71.3394592535313 | etot = -49.9334366972609 +510000 ekin = 7.4348791744664 | erot = 14.00645497061 | epot = -71.3747708439857 | etot = -49.9334366989093 +511000 ekin = 7.50576717999883 | erot = 14.0784238742641 | epot = -71.5176277562898 | etot = -49.9334367020268 +512000 ekin = 7.60119561215965 | erot = 14.1838211434744 | epot = -71.7184534619007 | etot = -49.9334367062666 +513000 ekin = 7.71044568681027 | erot = 14.2667319445938 | epot = -71.9106143423502 | etot = -49.9334367109461 +514000 ekin = 7.81978747766632 | erot = 14.2680211759095 | epot = -72.0212453686759 | etot = -49.9334367151001 +515000 ekin = 7.91595150928813 | erot = 14.136730975867 | epot = -71.9861192028066 | etot = -49.9334367176515 +516000 ekin = 7.99023839626997 | erot = 13.8421209123312 | epot = -71.765796026329 | etot = -49.9334367177278 +517000 ekin = 8.04205550960352 | erot = 13.3828818541575 | epot = -71.3583740787928 | etot = -49.9334367150318 +518000 ekin = 8.08036426889702 | erot = 12.7898538339902 | epot = -70.8036548129272 | etot = -49.93343671004 +519000 ekin = 8.12206393604817 | erot = 12.1205081667034 | epot = -70.1760088066211 | etot = -49.9334367038696 +520000 ekin = 8.18764894630583 | erot = 11.4468759977119 | epot = -69.5679616418748 | etot = -49.9334366978571 +521000 ekin = 8.29566353773327 | erot = 10.8412363962021 | epot = -69.0703366270684 | etot = -49.933436693133 +522000 ekin = 8.45774428961541 | erot = 10.3639645179526 | epot = -68.7551454979472 | etot = -49.9334366903792 +523000 ekin = 8.6754707032932 | erot = 10.0559571765564 | epot = -68.6648645696558 | etot = -49.9334366898061 +524000 ekin = 8.93944864495669 | erot = 9.93579310878289 | epot = -68.8086784449968 | etot = -49.9334366912572 +525000 ekin = 9.23044472106861 | erot = 10.0004752135613 | epot = -69.1643566289846 | etot = -49.9334366943547 +526000 ekin = 9.52203491653689 | erot = 10.2283307207382 | epot = -69.6838023358922 | etot = -49.9334366986171 +527000 ekin = 9.78409599190119 | erot = 10.5829813010738 | epot = -70.3005139965033 | etot = -49.9334367035283 +528000 ekin = 9.98654469592338 | erot = 11.0178490698024 | epot = -70.937830474285 | etot = -49.9334367085592 +529000 ekin = 10.1029539601439 | erot = 11.4811633033496 | epot = -71.5175539766437 | etot = -49.9334367131502 +530000 ekin = 10.1138818470412 | erot = 11.9216268521526 | epot = -71.9689454159113 | etot = -49.9334367167174 +531000 ekin = 10.009768376633 | erot = 12.2946121702543 | epot = -72.2378172656133 | etot = -49.933436718726 +532000 ekin = 9.79306563777554 | erot = 12.5680717027124 | epot = -72.2945740593142 | etot = -49.9334367188263 +533000 ekin = 9.47905160959907 | erot = 12.7267270062226 | epot = -72.1392153328171 | etot = -49.9334367169954 +534000 ekin = 9.09480598113199 | erot = 12.7731458504705 | epot = -71.8013885451888 | etot = -49.9334367135863 +535000 ekin = 8.67621596356743 | erot = 12.725246773648 | epot = -71.3348994464545 | etot = -49.9334367092391 +536000 ekin = 8.26347380199202 | erot = 12.6111100069009 | epot = -70.808020513579 | etot = -49.9334367046861 +537000 ekin = 7.8959905961062 | erot = 12.4628737027919 | epot = -70.2923009994712 | etot = -49.933436700573 +538000 ekin = 7.60773288315974 | erot = 12.3114435936331 | epot = -69.8526131741348 | etot = -49.933436697342 +539000 ekin = 7.42371159250873 | erot = 12.1829376490021 | epot = -69.5400859367383 | etot = -49.9334366952274 +540000 ekin = 7.35791077724687 | erot = 12.0968490256268 | epot = -69.3881964971777 | etot = -49.933436694304 +541000 ekin = 7.41256804382714 | erot = 12.0653576080474 | epot = -69.4113623464303 | etot = -49.9334366945558 +542000 ekin = 7.57853605040992 | erot = 12.0931906687774 | epot = -69.6051634151016 | etot = -49.9334366959142 +543000 ekin = 7.83646941911308 | erot = 12.1777647790372 | epot = -69.9476708963917 | etot = -49.9334366982414 +544000 ekin = 8.15871763039278 | erot = 12.3097728230818 | epot = -70.4019271547725 | etot = -49.9334367012979 +545000 ekin = 8.51194808021862 | erot = 12.4746658403755 | epot = -70.9200506252934 | etot = -49.9334367046993 +546000 ekin = 8.8605554298828 | erot = 12.6554193667532 | epot = -71.4494115045595 | etot = -49.9334367079235 +547000 ekin = 9.17075161999858 | erot = 12.8364725166206 | epot = -71.9406608470137 | etot = -49.9334367103946 +548000 ekin = 9.41490179012599 | erot = 13.0079503310952 | epot = -72.3562888328661 | etot = -49.9334367116449 +549000 ekin = 9.57534656746483 | erot = 13.1686979374105 | epot = -72.6774812163388 | etot = -49.9334367114634 +550000 ekin = 9.64686209048007 | erot = 13.3267810142535 | epot = -72.9070798147103 | etot = -49.9334367099767 +551000 ekin = 9.63715286761366 | erot = 13.4970109715298 | epot = -73.0676005467461 | etot = -49.9334367076027 +552000 ekin = 9.56521103056892 | erot = 13.6962041250842 | epot = -73.1948518605964 | etot = -49.9334367049433 +553000 ekin = 9.45778037494705 | erot = 13.9376030903696 | epot = -73.328820167963 | etot = -49.9334367026464 +554000 ekin = 9.34444856540419 | erot = 14.2259329985704 | epot = -73.5038182652631 | etot = -49.9334367012885 +555000 ekin = 9.25213586068647 | erot = 14.554187341061 | epot = -73.739759903013 | etot = -49.9334367012655 +556000 ekin = 9.19999740124744 | erot = 14.9027731790121 | epot = -74.0362072829663 | etot = -49.9334367027067 +557000 ekin = 9.19858106847623 | erot = 15.2418626002227 | epot = -74.3738803739402 | etot = -49.9334367052413 +558000 ekin = 9.24425546373156 | erot = 15.533160676273 | epot = -74.7108528491238 | etot = -49.9334367091192 +559000 ekin = 9.31861665860527 | erot = 15.7359099530683 | epot = -74.9879633247355 | etot = -49.9334367130619 +560000 ekin = 9.39695059709786 | erot = 15.8150009569878 | epot = -75.1453882704714 | etot = -49.9334367163857 +561000 ekin = 9.45314011700227 | erot = 15.7467098708858 | epot = -75.1332867063792 | etot = -49.9334367184911 +562000 ekin = 9.46443250758529 | erot = 15.5232568984784 | epot = -74.9211261250191 | etot = -49.9334367189554 +563000 ekin = 9.41516469943674 | erot = 15.1567249816826 | epot = -74.5053263982394 | etot = -49.9334367171201 +564000 ekin = 9.2988962721603 | erot = 14.679911962652 | epot = -73.912244948898 | etot = -49.9334367140856 +565000 ekin = 9.11880310151717 | erot = 14.1400031739803 | epot = -73.1922429852183 | etot = -49.9334367097209 +566000 ekin = 8.88664822048603 | erot = 13.5965040768085 | epot = -72.4165890018559 | etot = -49.9334367045614 +567000 ekin = 8.62095363305963 | erot = 13.1147978259198 | epot = -71.669188158177 | etot = -49.9334366991976 +568000 ekin = 8.34502941995043 | erot = 12.7577046249881 | epot = -71.0361707402981 | etot = -49.9334366953595 +569000 ekin = 8.08308251282 | erot = 12.5716587303351 | epot = -70.5881779352045 | etot = -49.9334366920495 +570000 ekin = 7.85931792269072 | erot = 12.5845592067786 | epot = -70.3773138203158 | etot = -49.9334366908465 +571000 ekin = 7.69515957546865 | erot = 12.7948834197769 | epot = -70.4234796877068 | etot = -49.9334366924613 +572000 ekin = 7.60396111741565 | erot = 13.1643540858181 | epot = -70.7017519004431 | etot = -49.9334366972093 +573000 ekin = 7.58730164850477 | erot = 13.6192730323247 | epot = -71.1400113849128 | etot = -49.9334367040834 +574000 ekin = 7.63520361153434 | erot = 14.0643105452094 | epot = -71.6329508680247 | etot = -49.933436711281 +575000 ekin = 7.73080156106132 | erot = 14.404463219706 | epot = -72.0687014975707 | etot = -49.9334367168034 +576000 ekin = 7.85689248431528 | erot = 14.5664691504383 | epot = -72.3567983545794 | etot = -49.9334367198259 +577000 ekin = 8.00091593729851 | erot = 14.5094673832397 | epot = -72.4438200405807 | etot = -49.9334367200425 +578000 ekin = 8.15665258261498 | erot = 14.2276209559758 | epot = -72.3177102566093 | etot = -49.9334367180185 +579000 ekin = 8.3230672805737 | erot = 13.7443245549161 | epot = -72.0008285501224 | etot = -49.9334367146326 +580000 ekin = 8.50340996044298 | erot = 13.1029754975957 | epot = -71.5398221682012 | etot = -49.9334367101625 +581000 ekin = 8.70208311700319 | erot = 12.3569061227087 | epot = -70.9924259462229 | etot = -49.933436706511 +582000 ekin = 8.91777039447199 | erot = 11.5600287828267 | epot = -70.4112358805434 | etot = -49.9334367032448 +583000 ekin = 9.14731913957018 | erot = 10.7633073833908 | epot = -69.8440632235177 | etot = -49.9334367005567 +584000 ekin = 9.38577210814637 | erot = 10.0114551308019 | epot = -69.3306639375173 | etot = -49.9334366985691 +585000 ekin = 9.62647735599204 | erot = 9.34056459161516 | epot = -68.9004786449768 | etot = -49.9334366973696 +586000 ekin = 9.86132138676436 | erot = 8.77626879101596 | epot = -68.5710268748042 | etot = -49.9334366970239 +587000 ekin = 10.0810752649587 | erot = 8.33235621298659 | epot = -68.3468681754879 | etot = -49.9334366975425 +588000 ekin = 10.2759188426479 | erot = 8.01010405478541 | epot = -68.2194595962795 | etot = -49.9334366988462 +589000 ekin = 10.43624228336 | erot = 7.79886753304834 | epot = -68.168546517119 | etot = -49.9334367007106 +590000 ekin = 10.5537937400067 | erot = 7.67891225367106 | epot = -68.1661426964501 | etot = -49.9334367027724 +591000 ekin = 10.6230840083969 | erot = 7.62453842355608 | epot = -68.1810591364585 | etot = -49.9334367045055 +592000 ekin = 10.6427223551157 | erot = 7.61008622174455 | epot = -68.1862452824154 | etot = -49.9334367055552 +593000 ekin = 10.6162293457351 | erot = 7.61530634627727 | epot = -68.1649723976566 | etot = -49.9334367056442 +594000 ekin = 10.5518689631683 | erot = 7.62911861510402 | epot = -68.1144242830922 | etot = -49.93343670482 +595000 ekin = 10.4613549146823 | erot = 7.650415752318 | epot = -68.0452073703874 | etot = -49.933436703387 +596000 ekin = 10.3577397595494 | erot = 7.68597457794617 | epot = -67.9771510392671 | etot = -49.9334367017716 +597000 ekin = 10.2530110984654 | erot = 7.74702054973694 | epot = -67.9334683485737 | etot = -49.9334367003713 +598000 ekin = 10.1558396073476 | erot = 7.84502642243173 | epot = -67.9343027292742 | etot = -49.9334366994949 +599000 ekin = 10.0716456764075 | erot = 7.98815266721895 | epot = -67.9932350426329 | etot = -49.9334366990064 +600000 ekin = 10.0026338981048 | erot = 8.18253713499505 | epot = -68.1186077321048 | etot = -49.9334366990049 +601000 ekin = 9.9465416303757 | erot = 8.4316149653268 | epot = -68.3115932944627 | etot = -49.9334366987602 +602000 ekin = 9.90213772018176 | erot = 8.73434308375233 | epot = -68.569917503502 | etot = -49.9334366995679 +603000 ekin = 9.86461425681278 | erot = 9.08804689167329 | epot = -68.8860978487964 | etot = -49.9334367003103 +604000 ekin = 9.82582394717072 | erot = 9.49104521651916 | epot = -69.2503058646016 | etot = -49.9334367009117 +605000 ekin = 9.77966552475125 | erot = 9.9415333824285 | epot = -69.6546356086235 | etot = -49.9334367014437 +606000 ekin = 9.72222592517299 | erot = 10.436343641288 | epot = -70.0920062686126 | etot = -49.9334367021516 +607000 ekin = 9.65083110473504 | erot = 10.9682113934829 | epot = -70.5524792017389 | etot = -49.933436703521 +608000 ekin = 9.56210695279333 | erot = 11.5218646669735 | epot = -71.0174083255685 | etot = -49.9334367058017 +609000 ekin = 9.44922522117037 | erot = 12.0704423054806 | epot = -71.4531042366018 | etot = -49.9334367099509 +610000 ekin = 9.30054046556791 | erot = 12.5719096406634 | epot = -71.8058868203983 | etot = -49.9334367141669 +611000 ekin = 9.09998277424836 | erot = 12.9832358346057 | epot = -72.0166553266324 | etot = -49.9334367177783 +612000 ekin = 8.83381798259864 | erot = 13.2691152694793 | epot = -72.0363699714124 | etot = -49.9334367193345 +613000 ekin = 8.49783282731314 | erot = 13.414589684441 | epot = -71.8458592296283 | etot = -49.9334367178742 +614000 ekin = 8.10282385727302 | erot = 13.4329804231671 | epot = -71.4692409939147 | etot = -49.9334367134746 +615000 ekin = 7.67548430528516 | erot = 13.3639670456124 | epot = -70.9728880581183 | etot = -49.9334367072208 +616000 ekin = 7.25407898481442 | erot = 13.262840089535 | epot = -70.4503557749773 | etot = -49.9334367006279 +617000 ekin = 6.88089060447721 | erot = 13.1866181608887 | epot = -70.0009454603655 | etot = -49.9334366949995 +618000 ekin = 6.59435266196333 | erot = 13.1829361442925 | epot = -69.7107254973559 | etot = -49.9334366911 +619000 ekin = 6.42302569827092 | erot = 13.2842954579373 | epot = -69.6407578453999 | etot = -49.9334366891917 +620000 ekin = 6.38233280983342 | erot = 13.5068914944185 | epot = -69.8226609933339 | etot = -49.9334366890821 +621000 ekin = 6.47407410483647 | erot = 13.8532244874395 | epot = -70.2607352827156 | etot = -49.9334366904396 +622000 ekin = 6.68823289727533 | erot = 14.3148945806224 | epot = -70.9365641707564 | etot = -49.9334366928586 +623000 ekin = 7.00613993426487 | erot = 14.8751185926057 | epot = -71.8146952230231 | etot = -49.9334366961525 +624000 ekin = 7.40369975383096 | erot = 15.5093236026734 | epot = -72.8464600565627 | etot = -49.9334367000584 +625000 ekin = 7.85341892223183 | erot = 16.1852180464119 | epot = -73.9720736735381 | etot = -49.9334367048943 +626000 ekin = 8.3247191464959 | erot = 16.8599319289476 | epot = -75.1180877863636 | etot = -49.9334367109201 +627000 ekin = 8.78345982127621 | erot = 17.4776172005326 | epot = -76.1945137397578 | etot = -49.933436717949 +628000 ekin = 9.19295493480404 | erot = 17.9720241171089 | epot = -77.098415776807 | etot = -49.9334367248941 +629000 ekin = 9.51863748532577 | erot = 18.277577695659 | epot = -77.7296519108455 | etot = -49.9334367298608 +630000 ekin = 9.73601789211593 | erot = 18.3475811088937 | epot = -78.0170357280482 | etot = -49.9334367270385 +631000 ekin = 9.84717031281614 | erot = 18.1774007977026 | epot = -77.9580078353464 | etot = -49.9334367248276 +632000 ekin = 9.86514165733081 | erot = 17.7977961670695 | epot = -77.5963745439655 | etot = -49.9334367195651 +633000 ekin = 9.80741211217903 | erot = 17.2626321533498 | epot = -77.0034809786532 | etot = -49.9334367131244 +634000 ekin = 9.69704834103309 | erot = 16.6375206673787 | epot = -76.2680057157435 | etot = -49.9334367073317 +635000 ekin = 9.55480062391363 | erot = 15.9824182747172 | epot = -75.4706556018311 | etot = -49.9334367032003 +636000 ekin = 9.39443376917515 | erot = 15.3418801349166 | epot = -74.6697506049049 | etot = -49.9334367008132 +637000 ekin = 9.22207208580399 | erot = 14.7441119803263 | epot = -73.8996207657959 | etot = -49.9334366996656 +638000 ekin = 9.03836092904166 | erot = 14.2055872728542 | epot = -73.1773849009799 | etot = -49.9334366990841 +639000 ekin = 8.8417163270326 | erot = 13.7372137345686 | epot = -72.5123667601041 | etot = -49.9334366985029 +640000 ekin = 8.63137043882056 | erot = 13.349384650894 | epot = -71.9141917872882 | etot = -49.9334366975736 +641000 ekin = 8.40954916880241 | erot = 13.0548513789787 | epot = -71.3978372439612 | etot = -49.9334366961801 +642000 ekin = 8.18255898209297 | erot = 12.8693803232604 | epot = -70.9853759997537 | etot = -49.9334366944003 +643000 ekin = 7.96078880308601 | erot = 12.8106076124347 | epot = -70.704833107984 | etot = -49.9334366924633 +644000 ekin = 7.75858397891552 | erot = 12.8950460234403 | epot = -70.5870666930887 | etot = -49.933436690733 +645000 ekin = 7.59153605354468 | erot = 13.1346881329385 | epot = -70.6596608761689 | etot = -49.9334366896857 +646000 ekin = 7.47142193123396 | erot = 13.5357483886143 | epot = -70.9406070094471 | etot = -49.9334366895989 +647000 ekin = 7.40688255491842 | erot = 14.0938074621893 | epot = -71.4341267079668 | etot = -49.9334366908591 +648000 ekin = 7.3947726178549 | erot = 14.7853448582563 | epot = -72.1135541745222 | etot = -49.9334366984109 +649000 ekin = 7.4121514857368 | erot = 15.5579695688721 | epot = -72.9035577587517 | etot = -49.9334367041428 +650000 ekin = 7.43748369392265 | erot = 16.3522656883523 | epot = -73.7231860927432 | etot = -49.9334367104683 +651000 ekin = 7.44712966937429 | erot = 17.1032791639312 | epot = -74.483845549307 | etot = -49.9334367160015 +652000 ekin = 7.42218365699006 | erot = 17.7519733432185 | epot = -75.1075937196553 | etot = -49.9334367194467 +653000 ekin = 7.35498154078593 | erot = 18.2566315884541 | epot = -75.5450498494635 | etot = -49.9334367202235 +654000 ekin = 7.25177127174499 | erot = 18.5983433686537 | epot = -75.7835513591201 | etot = -49.9334367187214 +655000 ekin = 7.13014467423054 | erot = 18.7785589482614 | epot = -75.8421403384621 | etot = -49.9334367159702 +656000 ekin = 7.01280585613053 | erot = 18.8114986913181 | epot = -75.7577412604568 | etot = -49.9334367130081 +657000 ekin = 6.92098821820217 | erot = 18.7164621309277 | epot = -75.5708870595781 | etot = -49.9334367104482 +658000 ekin = 6.87020252995195 | erot = 18.5133762497965 | epot = -75.3170154881844 | etot = -49.9334367084359 +659000 ekin = 6.86904868072255 | erot = 18.2216228321915 | epot = -75.024108219778 | etot = -49.9334367068639 +660000 ekin = 6.92024406128872 | erot = 17.8601865758754 | epot = -74.7138673427793 | etot = -49.9334367056152 +661000 ekin = 7.02250789860384 | erot = 17.4471787300407 | epot = -74.403123333353 | etot = -49.9334367047085 +662000 ekin = 7.17216566235826 | erot = 16.997819455819 | epot = -74.1034218225085 | etot = -49.9334367043312 +663000 ekin = 7.36379572139497 | erot = 16.5210347160605 | epot = -73.8182671422448 | etot = -49.9334367047893 +664000 ekin = 7.58974310930137 | erot = 16.0157458208117 | epot = -73.5389256364462 | etot = -49.9334367063331 +665000 ekin = 7.83889852381459 | erot = 15.4688426538688 | epot = -73.2411778865903 | etot = -49.9334367089069 +666000 ekin = 8.0956981591569 | erot = 14.857404004623 | epot = -72.8865388757095 | etot = -49.9334367119296 +667000 ekin = 8.34047460991738 | erot = 14.1568873290818 | epot = -72.430798653333 | etot = -49.9334367143339 +668000 ekin = 8.55167804703958 | erot = 13.35392315052 | epot = -71.8390379125689 | etot = -49.9334367150093 +669000 ekin = 8.70925293287165 | erot = 12.4582854454463 | epot = -71.1009750917497 | etot = -49.9334367134317 +670000 ekin = 8.79758177059105 | erot = 11.507208047482 | epot = -70.2382265280529 | etot = -49.9334367099799 +671000 ekin = 8.80682970149581 | erot = 10.5590297337004 | epot = -69.2992961408452 | etot = -49.933436705649 +672000 ekin = 8.73288275169812 | erot = 9.67972128078157 | epot = -68.3460407339062 | etot = -49.9334367014265 +673000 ekin = 8.57696192208772 | erot = 8.92953158888941 | epot = -67.4399302088216 | etot = -49.9334366978444 +674000 ekin = 8.3456407146255 | erot = 8.35517289124257 | epot = -66.6342503008242 | etot = -49.9334366949561 +675000 ekin = 8.05103177964263 | erot = 7.98833216297783 | epot = -65.9728006352139 | etot = -49.9334366925934 +676000 ekin = 7.71040082008774 | erot = 7.84792602077044 | epot = -65.4917635314901 | etot = -49.933436690632 +677000 ekin = 7.34474807573115 | erot = 7.94294820983828 | epot = -65.2211329746846 | etot = -49.9334366891152 +678000 ekin = 6.97652326979307 | erot = 8.27395942576396 | epot = -65.1839193837997 | etot = -49.9334366882426 +679000 ekin = 6.62703502446414 | erot = 8.8326449184761 | epot = -65.3931166312654 | etot = -49.9334366883252 +680000 ekin = 6.31408234073432 | erot = 9.59961963397869 | epot = -65.847138664448 | etot = -49.933436689735 +681000 ekin = 6.05007024087303 | erot = 10.540924973532 | epot = -66.5244319072614 | etot = -49.9334366928563 +682000 ekin = 5.84069686108073 | erot = 11.6040232365966 | epot = -67.3781567956329 | etot = -49.9334366979556 +683000 ekin = 5.68441215091699 | erot = 12.7150399581897 | epot = -68.3328888140272 | etot = -49.9334367049205 +684000 ekin = 5.57317083684405 | erot = 13.7803400925259 | epot = -69.2869476423183 | etot = -49.9334367129484 +685000 ekin = 5.49512330338869 | erot = 14.6959075813889 | epot = -70.1244676052265 | etot = -49.9334367204489 +686000 ekin = 5.43923671974787 | erot = 15.3654260750172 | epot = -70.738099520247 | etot = -49.9334367254819 +687000 ekin = 5.40037584531758 | erot = 15.7221888729605 | epot = -71.0560014449615 | etot = -49.9334367266834 +688000 ekin = 5.38224990758678 | erot = 15.7449830268383 | epot = -71.0606696584497 | etot = -49.9334367240246 +689000 ekin = 5.39639776098925 | erot = 15.4596385607517 | epot = -70.7894730404996 | etot = -49.9334367187586 +690000 ekin = 5.45787871142683 | erot = 14.9262956798774 | epot = -70.3176111039093 | etot = -49.9334367126051 +691000 ekin = 5.58031564626177 | erot = 14.2204427976204 | epot = -69.7341951507951 | etot = -49.9334367069129 +692000 ekin = 5.77268021073002 | erot = 13.4168709009498 | epot = -69.1229878131825 | etot = -49.9334367015026 +693000 ekin = 6.03848572884837 | erot = 12.5833910058039 | epot = -68.5553134331519 | etot = -49.9334366984996 +694000 ekin = 6.37471136517893 | erot = 11.7714633112457 | epot = -68.0796113729362 | etot = -49.9334366965116 +695000 ekin = 6.77415007784378 | erot = 11.0181330990357 | epot = -67.7257198722643 | etot = -49.9334366953848 +696000 ekin = 7.22672456195984 | erot = 10.3500991256959 | epot = -67.5102603826877 | etot = -49.933436695032 +697000 ekin = 7.71965128594451 | erot = 9.78480932554604 | epot = -67.4378973069032 | etot = -49.9334366954126 +698000 ekin = 8.23736470664202 | erot = 9.33123654406466 | epot = -67.5020379471977 | etot = -49.9334366964911 +699000 ekin = 8.76153382967204 | erot = 8.99061023092158 | epot = -67.6855807587833 | etot = -49.9334366981897 +700000 ekin = 9.27152159730681 | erot = 8.75737705400505 | epot = -67.9623353516544 | etot = -49.9334367003426 +701000 ekin = 9.74214098365044 | erot = 8.61946007697759 | epot = -68.295037764125 | etot = -49.9334367034969 +702000 ekin = 10.1452112686422 | erot = 8.55928312126094 | epot = -68.6379310960345 | etot = -49.9334367061313 +703000 ekin = 10.4587930030187 | erot = 8.55974434423407 | epot = -68.9519740552635 | etot = -49.9334367080107 +704000 ekin = 10.6678411441443 | erot = 8.60820420735217 | epot = -69.2094820602022 | etot = -49.9334367087057 +705000 ekin = 10.7665498375203 | erot = 8.70023426618484 | epot = -69.4002208117645 | etot = -49.9334367080594 +706000 ekin = 10.7588048077098 | erot = 8.84126944079394 | epot = -69.5335109547929 | etot = -49.9334367062891 +707000 ekin = 10.656448369005 | erot = 9.04518277454851 | epot = -69.6350678474683 | etot = -49.9334367039148 +708000 ekin = 10.4759748101243 | erot = 9.33018435435574 | epot = -69.7395958660221 | etot = -49.933436701542 +709000 ekin = 10.2349383724224 | erot = 9.71377701826114 | epot = -69.8821520902998 | etot = -49.9334366996162 +710000 ekin = 9.94939019044299 | erot = 10.2088106033416 | epot = -70.0916374920833 | etot = -49.9334366982987 +711000 ekin = 9.63303801877551 | erot = 10.8217465783871 | epot = -70.3882212946687 | etot = -49.9334366975061 +712000 ekin = 9.29790597030378 | erot = 11.5527669205594 | epot = -70.7841095879538 | etot = -49.9334366970907 +713000 ekin = 8.95557547302581 | erot = 12.396350487225 | epot = -71.2853626572583 | etot = -49.9334366970075 +714000 ekin = 8.61797359535847 | erot = 13.3409900927992 | epot = -71.8924003855459 | etot = -49.9334366973882 +715000 ekin = 8.29712952352225 | erot = 14.3676387565191 | epot = -72.598204978531 | etot = -49.9334366984896 +716000 ekin = 8.00398725897341 | erot = 15.4475133378671 | epot = -73.3849372973991 | etot = -49.9334367005586 +717000 ekin = 7.74683519039089 | erot = 16.540452685342 | epot = -74.2207245793767 | etot = -49.9334367036438 +718000 ekin = 7.52982507895108 | erot = 17.5950557077009 | epot = -75.0583174945533 | etot = -49.9334367079013 +719000 ekin = 7.35243516417203 | erot = 18.5497013193585 | epot = -75.8355731961808 | etot = -49.9334367126502 +720000 ekin = 7.21118318115014 | erot = 19.3392479277128 | epot = -76.4838678260512 | etot = -49.9334367171883 +721000 ekin = 7.10169759019296 | erot = 19.9036057066974 | epot = -76.9387400177134 | etot = -49.9334367208231 +722000 ekin = 7.02044686316244 | erot = 20.1972584111975 | epot = -77.151141996746 | etot = -49.933436722386 +723000 ekin = 6.96887965462612 | erot = 20.1990914032774 | epot = -77.1014077792934 | etot = -49.9334367213898 +724000 ekin = 6.95516719900633 | erot = 19.9185959406872 | epot = -76.8071998576283 | etot = -49.9334367179348 +725000 ekin = 6.99328744827875 | erot = 19.3950419522114 | epot = -76.3217661132555 | etot = -49.9334367127653 +726000 ekin = 7.0998457243209 | erot = 18.6900231618682 | epot = -75.723305593142 | etot = -49.9334367069529 +727000 ekin = 7.28975977543076 | erot = 17.8763690650735 | epot = -75.099565542019 | etot = -49.9334367015148 +728000 ekin = 7.57226569415553 | erot = 17.0272912652274 | epot = -74.5329936565488 | etot = -49.9334366971659 +729000 ekin = 7.94819326092055 | erot = 16.2083660376543 | epot = -74.0899959928354 | etot = -49.9334366942605 +730000 ekin = 8.40885783971974 | erot = 15.4730324367712 | epot = -73.8153269693387 | etot = -49.9334366928478 +731000 ekin = 8.93653983554197 | erot = 14.8609748015031 | epot = -73.730951329818 | etot = -49.9334366927729 +732000 ekin = 9.50625303474118 | erot = 14.3982952548988 | epot = -73.83798498343 | etot = -49.9334366937901 +733000 ekin = 10.0882454135359 | erot = 14.0984617274916 | epot = -74.1201438366822 | etot = -49.9334366956548 +734000 ekin = 10.650584604927 | erot = 13.9633900359381 | epot = -74.5474113390306 | etot = -49.9334366981656 +735000 ekin = 11.1614098846027 | erot = 13.984540795035 | epot = -75.0793873807643 | etot = -49.9334367011267 +736000 ekin = 11.5908641045064 | erot = 14.1443786489916 | epot = -75.668679457787 | etot = -49.933436704289 +737000 ekin = 11.9130267999457 | erot = 14.4186949533298 | epot = -76.2651584605726 | etot = -49.9334367072972 +738000 ekin = 12.1081074328814 | erot = 14.7799937728996 | epot = -76.8215379155122 | etot = -49.9334367097312 +739000 ekin = 12.1647528301869 | erot = 15.2014921459762 | epot = -77.2996816873864 | etot = -49.9334367112233 +740000 ekin = 12.0818547627498 | erot = 15.6606440164826 | epot = -77.6759354908383 | etot = -49.9334367116059 +741000 ekin = 11.8690601673902 | erot = 16.1409035861541 | epot = -77.9434004645535 | etot = -49.9334367110093 +742000 ekin = 11.5454682620885 | erot = 16.6309355138724 | epot = -78.1098404858044 | etot = -49.9334367098434 +743000 ekin = 11.1366225378549 | erot = 17.1214741632573 | epot = -78.1915334097811 | etot = -49.933436708669 +744000 ekin = 10.6705301542887 | erot = 17.6010237792036 | epot = -78.2049906414934 | etot = -49.9334367080012 +745000 ekin = 10.1737520698012 | erot = 18.0520929498985 | epot = -78.1592817278441 | etot = -49.9334367081444 +746000 ekin = 9.66850131293643 | erot = 18.449485732024 | epot = -78.051423754061 | etot = -49.9334367091005 +747000 ekin = 9.17126973094193 | erot = 18.7614465752673 | epot = -77.8661530167956 | etot = -49.9334367105864 +748000 ekin = 8.69297393779132 | erot = 18.9537281304379 | epot = -77.5801387803998 | etot = -49.9334367121705 +749000 ekin = 8.2401685894299 | erot = 18.9943262074662 | epot = -77.1679315102766 | etot = -49.9334367133805 +750000 ekin = 7.81665899721376 | erot = 18.8585564741543 | epot = -76.6086521852683 | etot = -49.9334367139002 +751000 ekin = 7.42490357424127 | erot = 18.5327488586229 | epot = -75.8910891464749 | etot = -49.9334367136107 +752000 ekin = 7.0668899205975 | erot = 18.0154570967688 | epot = -75.0157837299276 | etot = -49.9334367125613 +753000 ekin = 6.74450512428241 | erot = 17.3167499793819 | epot = -73.9946918145492 | etot = -49.9334367108849 +754000 ekin = 6.45964482990575 | erot = 16.4564830608885 | epot = -72.8495645995073 | etot = -49.9334367087131 +755000 ekin = 6.21433593464322 | erot = 15.4623891983789 | epot = -71.6101618391666 | etot = -49.9334367061446 +756000 ekin = 6.01102239393746 | erot = 14.3683296042486 | epot = -70.3127887014469 | etot = -49.9334367032609 +757000 ekin = 5.85298993006189 | erot = 13.2131589079683 | epot = -68.9995855380067 | etot = -49.9334366999765 +758000 ekin = 5.74477587277021 | erot = 12.0391225470957 | epot = -67.7173351165055 | etot = -49.9334366966396 +759000 ekin = 5.6919206485601 | erot = 10.8875839736568 | epot = -66.5129413158661 | etot = -49.9334366936492 +760000 ekin = 5.70117453951192 | erot = 9.79576401873154 | epot = -65.4303752491845 | etot = -49.933436690941 +761000 ekin = 5.78056045501877 | erot = 8.79564789209313 | epot = -64.5096450357696 | etot = -49.9334366886577 +762000 ekin = 5.93878225205486 | erot = 7.91237636476892 | epot = -63.7845953037258 | etot = -49.933436686902 +763000 ekin = 6.184361727704 | erot = 7.1634643452067 | epot = -63.2812627586552 | etot = -49.9334366857445 +764000 ekin = 6.52454675158088 | erot = 6.558765602944 | epot = -63.0167490397578 | etot = -49.9334366852329 +765000 ekin = 6.96404799952946 | erot = 6.10094289765019 | epot = -62.9984275825846 | etot = -49.9334366854049 +766000 ekin = 7.50369090323985 | erot = 5.78618752615102 | epot = -63.2233151156869 | etot = -49.933436686296 +767000 ekin = 8.13911242240163 | erot = 5.60500996902239 | epot = -63.677559079358 | etot = -49.933436687934 +768000 ekin = 8.85968786579912 | erot = 5.54304366995803 | epot = -64.3361682260661 | etot = -49.9334366903089 +769000 ekin = 9.64793234051338 | erot = 5.58192554390406 | epot = -65.1632945777656 | etot = -49.9334366933482 +770000 ekin = 10.4796582496206 | erot = 5.70040197417724 | epot = -66.1134969206841 | etot = -49.9334366968863 +771000 ekin = 11.3236336971393 | erot = 5.87607544107201 | epot = -67.1331458395446 | etot = -49.9334367013334 +772000 ekin = 12.1386957384452 | erot = 6.08706480595257 | epot = -68.1591972497757 | etot = -49.933436705378 +773000 ekin = 12.8870213668035 | erot = 6.3115151369007 | epot = -69.131973212649 | etot = -49.9334367089447 +774000 ekin = 13.5351523878293 | erot = 6.53122680628966 | epot = -69.9998159057768 | etot = -49.9334367116578 +775000 ekin = 14.0571973921013 | erot = 6.73342010745862 | epot = -70.7240542128422 | etot = -49.9334367132823 +776000 ekin = 14.4375527090477 | erot = 6.91134875337371 | epot = -71.2823381762118 | etot = -49.9334367137904 +777000 ekin = 14.6717866848938 | erot = 7.06376577932791 | epot = -71.6689891775945 | etot = -49.9334367133728 +778000 ekin = 14.7653808591766 | erot = 7.19344155381815 | epot = -71.8922591253731 | etot = -49.9334367123783 +779000 ekin = 14.7306938551211 | erot = 7.30529771892011 | epot = -71.9694282852216 | etot = -49.9334367111803 +780000 ekin = 14.5832545303532 | erot = 7.40496111451423 | epot = -71.9216523548738 | etot = -49.9334367100064 +781000 ekin = 14.3388697348004 | erot = 7.49845716253915 | epot = -71.7707636061857 | etot = -49.9334367088461 +782000 ekin = 14.0126322371063 | erot = 7.5932158675189 | epot = -71.5392848121174 | etot = -49.9334367074922 +783000 ekin = 13.6198123291935 | erot = 7.69972925716781 | epot = -71.2529782920828 | etot = -49.9334367057216 +784000 ekin = 13.1775031486146 | erot = 7.83255954697248 | epot = -70.9434993990781 | etot = -49.9334367034911 +785000 ekin = 12.7055342141572 | erot = 8.00936494242475 | epot = -70.6483358576599 | etot = -49.9334367010779 +786000 ekin = 12.2248371391502 | erot = 8.24851507752028 | epot = -70.406788915635 | etot = -49.9334366989645 +787000 ekin = 11.755534291358 | erot = 8.56369046302 | epot = -70.2526614520703 | etot = -49.9334366976922 +788000 ekin = 11.3126236422326 | erot = 8.96026774252352 | epot = -70.2063280823597 | etot = -49.9334366976035 +789000 ekin = 10.9031119971908 | erot = 9.43314525721006 | epot = -70.2696939531076 | etot = -49.9334366987068 +790000 ekin = 10.5250635297227 | erot = 9.96753484561177 | epot = -70.426035076003 | etot = -49.9334367006685 +791000 ekin = 10.169133164058 | erot = 10.5422631474155 | epot = -70.6448330144385 | etot = -49.9334367029649 +792000 ekin = 9.8220583923131 | erot = 11.134119039239 | epot = -70.8896141366244 | etot = -49.9334367050724 +793000 ekin = 9.47084478060325 | erot = 11.7217151485211 | epot = -71.12599663574 | etot = -49.9334367066157 +794000 ekin = 9.10632235967327 | erot = 12.2880425702251 | epot = -71.3278016373417 | etot = -49.9334367074434 +795000 ekin = 8.72525787163131 | erot = 12.8212831281949 | epot = -71.4799777072782 | etot = -49.9334367074519 +796000 ekin = 8.33088740355773 | erot = 13.3158307220539 | epot = -71.5801548323503 | etot = -49.9334367067387 +797000 ekin = 7.93221366074849 | erot = 13.77250193296 | epot = -71.6381522991362 | etot = -49.9334367054277 +798000 ekin = 7.54257513542632 | erot = 14.1976537464586 | epot = -71.6736655855944 | etot = -49.9334367037095 +799000 ekin = 7.1778119415626 | erot = 14.6018729764978 | epot = -71.7131216199232 | etot = -49.9334367018628 +800000 ekin = 6.85418083671326 | erot = 14.9975945326855 | epot = -71.7852120695717 | etot = -49.933436700173 +801000 ekin = 6.5859278756148 | erot = 15.3953862375432 | epot = -71.9147508125563 | etot = -49.9334366993983 +802000 ekin = 6.38182484896285 | erot = 15.7994624724845 | epot = -72.1147240206018 | etot = -49.9334366991545 +803000 ekin = 6.24578962495445 | erot = 16.2061575172355 | epot = -72.3853838428301 | etot = -49.9334367006401 +804000 ekin = 6.17330996107723 | erot = 16.5988082574921 | epot = -72.7055549223796 | etot = -49.9334367038102 +805000 ekin = 6.15098228407021 | erot = 16.9456603305968 | epot = -73.030079322638 | etot = -49.933436707971 +806000 ekin = 6.15947173678508 | erot = 17.2044656438724 | epot = -73.2973740932005 | etot = -49.933436712543 +807000 ekin = 6.17750077533474 | erot = 17.328774957995 | epot = -73.4397124498699 | etot = -49.9334367165402 +808000 ekin = 6.18647751304708 | erot = 17.2774290380561 | epot = -73.3973432700816 | etot = -49.9334367189784 +809000 ekin = 6.17461069457154 | erot = 17.0246492196236 | epot = -73.1326966333926 | etot = -49.9334367191974 +810000 ekin = 6.13919982891883 | erot = 16.5673936174243 | epot = -72.6400301634387 | etot = -49.9334367170956 +811000 ekin = 6.08590405435883 | erot = 15.9262499110281 | epot = -71.9455906786333 | etot = -49.9334367132464 +812000 ekin = 6.02727840092083 | erot = 15.1427857224991 | epot = -71.1035008315788 | etot = -49.9334367081589 +813000 ekin = 5.97994559151117 | erot = 14.2732350595732 | epot = -70.1866173539912 | etot = -49.9334367029068 +814000 ekin = 5.9601940708668 | erot = 13.3776408792751 | epot = -69.2712716483263 | etot = -49.9334366981844 +815000 ekin = 5.98147951154202 | erot = 12.5120766104657 | epot = -68.4269928163856 | etot = -49.9334366943779 +816000 ekin = 6.05315781462583 | erot = 11.723826296871 | epot = -67.7104208031119 | etot = -49.9334366916151 +817000 ekin = 6.18015071653459 | erot = 11.0493436796451 | epot = -67.1629310860532 | etot = -49.9334366898736 +818000 ekin = 6.36343209333698 | erot = 10.5142840565584 | epot = -66.8111528388801 | etot = -49.9334366889847 +819000 ekin = 6.60007567204471 | erot = 10.133823284977 | epot = -66.6673356462673 | etot = -49.9334366892456 +820000 ekin = 6.88150211740216 | erot = 9.91159836418705 | epot = -66.7265371719911 | etot = -49.9334366904018 +821000 ekin = 7.19506666875818 | erot = 9.84129146082237 | epot = -66.9697948219979 | etot = -49.9334366924173 +822000 ekin = 7.52435980169328 | erot = 9.90716288824969 | epot = -67.3649593851487 | etot = -49.9334366952057 +823000 ekin = 7.84992228265532 | erot = 10.08516009644 | epot = -67.8685190769763 | etot = -49.933436697881 +824000 ekin = 8.15279302379501 | erot = 10.3470779177686 | epot = -68.4333076429303 | etot = -49.9334367013667 +825000 ekin = 8.413116660073 | erot = 10.6607446580977 | epot = -69.0072980228678 | etot = -49.9334367046971 +826000 ekin = 8.61249186799867 | erot = 10.9940344467054 | epot = -69.5399630220663 | etot = -49.9334367073623 +827000 ekin = 8.73743000137138 | erot = 11.3203117197338 | epot = -69.9911784300121 | etot = -49.9334367089069 +828000 ekin = 8.78189553863721 | erot = 11.6226054158541 | epot = -70.3379376635552 | etot = -49.9334367090639 +829000 ekin = 8.74900835539536 | erot = 11.8958537704359 | epot = -70.5782988336739 | etot = -49.9334367078426 +830000 ekin = 8.65139592834784 | erot = 12.1464179472968 | epot = -70.7312505811857 | etot = -49.933436705541 +831000 ekin = 8.50494277670857 | erot = 12.3857635079014 | epot = -70.8241429887888 | etot = -49.9334367041789 +832000 ekin = 8.32916055639414 | erot = 12.6288888014105 | epot = -70.891486059017 | etot = -49.9334367012124 +833000 ekin = 8.15183535332413 | erot = 12.893407900769 | epot = -70.9786799529628 | etot = -49.9334366988696 +834000 ekin = 7.99907278376721 | erot = 13.1899071856378 | epot = -71.1224166669729 | etot = -49.9334366975679 +835000 ekin = 7.89187835206051 | erot = 13.518886988671 | epot = -71.3442020382249 | etot = -49.9334366974933 +836000 ekin = 7.843885372326 | erot = 13.8699943192521 | epot = -71.6473163901779 | etot = -49.9334366985998 +837000 ekin = 7.86044932605824 | erot = 14.2233719534942 | epot = -72.0172579801885 | etot = -49.933436700636 +838000 ekin = 7.93910809389695 | erot = 14.5528008610036 | epot = -72.4253456580786 | etot = -49.9334367031781 +839000 ekin = 8.07122306545806 | erot = 14.8302605050907 | epot = -72.8349202762384 | etot = -49.9334367056896 +840000 ekin = 8.24446554245613 | erot = 15.0313446269342 | epot = -73.2092468770139 | etot = -49.9334367076236 +841000 ekin = 8.44565195540588 | erot = 15.1405292661537 | epot = -73.519617930121 | etot = -49.9334367085615 +842000 ekin = 8.66328937917652 | erot = 15.1548179229557 | epot = -73.7515440104965 | etot = -49.9334367083643 +843000 ekin = 8.88920706298556 | erot = 15.0843018301085 | epot = -73.9069456003348 | etot = -49.9334367072407 +844000 ekin = 9.11892160117401 | erot = 14.9490168367877 | epot = -74.0013751436466 | etot = -49.9334367056848 +845000 ekin = 9.35084016251588 | erot = 14.7729101071697 | epot = -74.0571869739696 | etot = -49.933436704284 +846000 ekin = 9.58480624628363 | erot = 14.5769727650674 | epot = -74.0952157148617 | etot = -49.9334367035107 +847000 ekin = 9.8206237614369 | erot = 14.3739562461313 | epot = -74.1280167111316 | etot = -49.9334367035633 +848000 ekin = 10.0570459044803 | erot = 14.1664338893114 | epot = -74.1569164981109 | etot = -49.9334367043192 +849000 ekin = 10.2914310228556 | erot = 13.9486330727968 | epot = -74.173500801075 | etot = -49.9334367054227 +850000 ekin = 10.5200017144501 | erot = 13.7110119884877 | epot = -74.1644504093867 | etot = -49.9334367064489 +851000 ekin = 10.7384803463952 | erot = 13.4455029514379 | epot = -74.1174200049113 | etot = -49.9334367070782 +852000 ekin = 10.9428323035626 | erot = 13.1491363434633 | epot = -74.0254053542589 | etot = -49.933436707233 +853000 ekin = 11.1299150795726 | erot = 12.8245768787165 | epot = -73.8879286653589 | etot = -49.9334367070697 +854000 ekin = 11.2979634934996 | erot = 12.4776173939312 | epot = -73.7090175942955 | etot = -49.9334367068647 +855000 ekin = 11.446963766486 | erot = 12.1131194458193 | epot = -73.4935199191607 | etot = -49.9334367068554 +856000 ekin = 11.5790087135869 | erot = 11.7315500672944 | epot = -73.2439954879912 | etot = -49.9334367071099 +857000 ekin = 11.6987080004869 | erot = 11.3281299265531 | epot = -72.9602746332953 | etot = -49.9334367062553 +858000 ekin = 11.8142530289385 | erot = 10.9010311211914 | epot = -72.6487208568911 | etot = -49.9334367067612 +859000 ekin = 11.9332104305785 | erot = 10.4445616965651 | epot = -72.3112088339654 | etot = -49.9334367068218 +860000 ekin = 12.0636090870968 | erot = 9.95521311091518 | epot = -71.9522589041542 | etot = -49.9334367061422 +861000 ekin = 12.2139179049763 | erot = 9.44036583172 | epot = -71.5877204413513 | etot = -49.933436704655 +862000 ekin = 12.391130281263 | erot = 8.9208765703492 | epot = -71.2454435542372 | etot = -49.933436702625 +863000 ekin = 12.598273363369 | erot = 8.42930400292008 | epot = -70.9610140669502 | etot = -49.9334367006611 +864000 ekin = 12.8318528049167 | erot = 8.00321132292829 | epot = -70.7685008274049 | etot = -49.9334366995598 +865000 ekin = 13.0802810160704 | erot = 7.67501011472909 | epot = -70.6887278307169 | etot = -49.9334366999175 +866000 ekin = 13.3258003937865 | erot = 7.46434239413089 | epot = -70.7235794880246 | etot = -49.9334367001073 +867000 ekin = 13.548377705783 | erot = 7.37573702207222 | epot = -70.8575514307207 | etot = -49.9334367028655 +868000 ekin = 13.7260761155972 | erot = 7.39264351064997 | epot = -71.0521563312952 | etot = -49.9334367050481 +869000 ekin = 13.8458058821776 | erot = 7.49414572990457 | epot = -71.273388318019 | etot = -49.9334367059369 +870000 ekin = 13.9046600884751 | erot = 7.66358743008096 | epot = -71.5016842267386 | etot = -49.9334367081826 +871000 ekin = 13.8960585003033 | erot = 7.88733345656331 | epot = -71.7168286646253 | etot = -49.9334367077587 +872000 ekin = 13.8246751720193 | erot = 8.15489545473567 | epot = -71.9130073339425 | etot = -49.9334367071876 +873000 ekin = 13.70113616587 | erot = 8.45583645754306 | epot = -72.0904093301495 | etot = -49.9334367067364 +874000 ekin = 13.5424081255089 | erot = 8.77750687619779 | epot = -72.2533517069094 | etot = -49.9334367052027 +875000 ekin = 13.364190489811 | erot = 9.10395551733118 | epot = -72.4015827123183 | etot = -49.933436705176 +876000 ekin = 13.1761666319066 | erot = 9.41896925806077 | epot = -72.5285725947969 | etot = -49.9334367048295 +877000 ekin = 12.9897331534367 | erot = 9.70973691408539 | epot = -72.6329067716059 | etot = -49.9334367040838 +878000 ekin = 12.8170836818953 | erot = 9.96795108601403 | epot = -72.7184714714438 | etot = -49.9334367035344 +879000 ekin = 12.6680681077531 | erot = 10.1869039997319 | epot = -72.7884088107404 | etot = -49.9334367032554 +880000 ekin = 12.5485677830274 | erot = 10.3601722386594 | epot = -72.8421767252551 | etot = -49.9334367035683 +881000 ekin = 12.4586640762231 | erot = 10.4797974742248 | epot = -72.8718982550598 | etot = -49.933436704612 +882000 ekin = 12.3916540725039 | erot = 10.5354740122097 | epot = -72.8605647909174 | etot = -49.9334367062038 +883000 ekin = 12.3349006013609 | erot = 10.5163792200971 | epot = -72.7847165294059 | etot = -49.9334367079479 +884000 ekin = 12.2717096495915 | erot = 10.4148307307057 | epot = -72.6199770892637 | etot = -49.9334367089665 +885000 ekin = 12.1859999116201 | erot = 10.2325314578994 | epot = -72.3519680787271 | etot = -49.9334367092076 +886000 ekin = 12.0660600096115 | erot = 9.98113360769406 | epot = -71.980630324473 | etot = -49.9334367071675 +887000 ekin = 11.9066640242377 | erot = 9.6901712661992 | epot = -71.5302719955779 | etot = -49.9334367051409 +888000 ekin = 11.7031668866559 | erot = 9.40001854992544 | epot = -71.0366221380879 | etot = -49.9334367015065 +889000 ekin = 11.4630530596602 | erot = 9.15343792230301 | epot = -70.5499276801541 | etot = -49.9334366981909 +890000 ekin = 11.1987209292475 | erot = 8.98605396726837 | epot = -70.1182115922942 | etot = -49.9334366957783 +891000 ekin = 10.9233111473723 | erot = 8.92029234139208 | epot = -69.7770401832348 | etot = -49.9334366944704 +892000 ekin = 10.6492398279326 | erot = 8.9636967632536 | epot = -69.5463732853673 | etot = -49.9334366941811 +893000 ekin = 10.3877929473946 | erot = 9.11033168293226 | epot = -69.4315613249835 | etot = -49.9334366946567 +894000 ekin = 10.1494275349717 | erot = 9.34401274065503 | epot = -69.4268769711849 | etot = -49.9334366955582 +895000 ekin = 9.94444446382653 | erot = 9.64226259668959 | epot = -69.5201437570929 | etot = -49.9334366965768 +896000 ekin = 9.78365577870636 | erot = 9.98061881069167 | epot = -69.6977112867597 | etot = -49.9334366973616 +897000 ekin = 9.67858194017933 | erot = 10.3366132204216 | epot = -69.9486318584305 | etot = -49.9334366978296 +898000 ekin = 9.6407556754075 | erot = 10.6919016544823 | epot = -70.2660940279635 | etot = -49.9334366980736 +899000 ekin = 9.68004571013824 | erot = 11.0326643700505 | epot = -70.6461467785237 | etot = -49.933436698335 +900000 ekin = 9.8024271898829 | erot = 11.3484734122085 | epot = -71.0843373009746 | etot = -49.9334366988832 +901000 ekin = 10.007986784063 | erot = 11.6305317086353 | epot = -71.5719551925862 | etot = -49.933436699888 +902000 ekin = 10.2899129379698 | erot = 11.8702049217355 | epot = -72.0935545610795 | etot = -49.9334367013742 +903000 ekin = 10.6348280319913 | erot = 12.0586224303205 | epot = -72.6268871654605 | etot = -49.9334367031487 +904000 ekin = 11.0243272478932 | erot = 12.1875535945646 | epot = -73.1453175474375 | etot = -49.9334367049797 +905000 ekin = 11.4372262793892 | erot = 12.2506292974529 | epot = -73.6212922834563 | etot = -49.9334367066141 +906000 ekin = 11.8518934289044 | erot = 12.2446242605752 | epot = -74.0299543973563 | etot = -49.9334367078767 +907000 ekin = 12.2481266389513 | erot = 12.1701657665229 | epot = -74.3517291141781 | etot = -49.9334367087038 +908000 ekin = 12.6082582209791 | erot = 12.0316322967078 | epot = -74.5733272268279 | etot = -49.933436709141 +909000 ekin = 12.9174455820492 | erot = 11.8363878400004 | epot = -74.6872701313401 | etot = -49.9334367092905 +910000 ekin = 13.1633580106047 | erot = 11.5937735119854 | epot = -74.6905682318431 | etot = -49.9334367092529 +911000 ekin = 13.3356415622142 | erot = 11.3143470993626 | epot = -74.5834253706471 | etot = -49.9334367090702 +912000 ekin = 13.4255965683533 | erot = 11.0097178909071 | epot = -74.3687511679624 | etot = -49.9334367087019 +913000 ekin = 13.4301864973424 | erot = 10.6932440964711 | epot = -74.0568672999605 | etot = -49.9334367061471 +914000 ekin = 13.3769940126618 | erot = 10.381150040337 | epot = -73.6915807589639 | etot = -49.9334367059651 +915000 ekin = 13.2641557141759 | erot = 10.0882130478249 | epot = -73.2858054674931 | etot = -49.9334367054924 +916000 ekin = 13.083731249746 | erot = 9.83018237256223 | epot = -72.8473503271071 | etot = -49.9334367047989 +917000 ekin = 12.8312481509851 | erot = 9.62294454968242 | epot = -72.3876294047193 | etot = -49.9334367040518 +918000 ekin = 12.5057291533616 | erot = 9.48024983838272 | epot = -71.9194156951615 | etot = -49.9334367034172 +919000 ekin = 12.1093169179554 | erot = 9.41163285917544 | epot = -71.454386480755 | etot = -49.9334367036241 +920000 ekin = 11.6422865005983 | erot = 9.4228704721618 | epot = -70.9985936755887 | etot = -49.9334367028286 +921000 ekin = 11.1169457294429 | erot = 9.514662295109 | epot = -70.5650447264617 | etot = -49.9334367019098 +922000 ekin = 10.5550472139444 | erot = 9.68352501372713 | epot = -70.1720089283649 | etot = -49.9334367006934 +923000 ekin = 9.9844185002954 | erot = 9.92400943517147 | epot = -69.841864634638 | etot = -49.9334366991712 +924000 ekin = 9.43763475523603 | erot = 10.2296922496116 | epot = -69.6007637024335 | etot = -49.933436697586 +925000 ekin = 8.94863290040244 | erot = 10.5929212895396 | epot = -69.4749908862795 | etot = -49.9334366963374 +926000 ekin = 8.54812299742005 | erot = 11.0037296099244 | epot = -69.4852893031122 | etot = -49.9334366957678 +927000 ekin = 8.25958093088927 | erot = 11.4489178473815 | epot = -69.641935474274 | etot = -49.9334366960032 +928000 ekin = 8.11336972325164 | erot = 11.9118540030811 | epot = -69.9586604228524 | etot = -49.9334366965196 +929000 ekin = 8.06162796660943 | erot = 12.3783092989675 | epot = -70.3733740128366 | etot = -49.9334367472596 +930000 ekin = 8.11332481183543 | erot = 12.8482520257223 | epot = -70.895013541658 | etot = -49.9334367041002 +931000 ekin = 8.66218356996854 | erot = 13.2899790803943 | epot = -71.8855994294646 | etot = -49.9334367791019 +932000 ekin = 9.18948394929502 | erot = 13.6579503933937 | epot = -72.7808710530944 | etot = -49.9334367104058 +933000 ekin = 9.79417016819129 | erot = 13.9483173135533 | epot = -73.6759241999521 | etot = -49.9334367182075 +934000 ekin = 10.4207852551743 | erot = 14.1310962186981 | epot = -74.4853181967703 | etot = -49.9334367228978 +935000 ekin = 10.9969920694641 | erot = 14.1631931276504 | epot = -75.093621923519 | etot = -49.9334367264045 +936000 ekin = 11.4754171702331 | erot = 14.0243625871049 | epot = -75.4332164854376 | etot = -49.9334367280997 +937000 ekin = 11.8281157943456 | erot = 13.7138200009248 | epot = -75.4753725230786 | etot = -49.9334367278082 +938000 ekin = 12.0415685892963 | erot = 13.2461818683037 | epot = -75.2211871836312 | etot = -49.9334367260311 +939000 ekin = 12.1145829475088 | erot = 12.6496470029733 | epot = -74.6976666731298 | etot = -49.9334367226477 +940000 ekin = 12.0589112708443 | erot = 11.9625634903661 | epot = -73.9549114795609 | etot = -49.9334367183504 +941000 ekin = 11.8960551689468 | erot = 11.2288423346464 | epot = -73.0583342172008 | etot = -49.9334367136076 +942000 ekin = 11.6544532360424 | erot = 10.4934965270017 | epot = -72.0813864718405 | etot = -49.9334367087965 +943000 ekin = 11.3669373501322 | erot = 9.79913167085404 | epot = -71.0995057251855 | etot = -49.9334367041992 +944000 ekin = 11.0683221478185 | erot = 9.18351181827745 | epot = -70.1852706661439 | etot = -49.933436700048 +945000 ekin = 10.7929590514068 | erot = 8.67788366901733 | epot = -69.4042794169999 | etot = -49.9334366965758 +946000 ekin = 10.5720940702729 | erot = 8.30555132209777 | epot = -68.8110820864227 | etot = -49.9334366940521 +947000 ekin = 10.4310260783002 | erot = 8.08030170258283 | epot = -68.4447644736504 | etot = -49.9334366927674 +948000 ekin = 10.3863587495399 | erot = 8.00467877120116 | epot = -68.3244742136991 | etot = -49.933436692958 +949000 ekin = 10.4439698322496 | erot = 8.06864252758099 | epot = -68.4460490545133 | etot = -49.9334366946827 +950000 ekin = 10.598452795292 | erot = 8.24950150873035 | epot = -68.7813910017548 | etot = -49.9334366977324 +951000 ekin = 10.8345056212614 | erot = 8.5138596436384 | epot = -69.2818019665296 | etot = -49.9334367016298 +952000 ekin = 11.1300987905274 | erot = 8.8216613045093 | epot = -69.8851968007775 | etot = -49.9334367057407 +953000 ekin = 11.4620681607316 | erot = 9.13289977438979 | epot = -70.5284046438654 | etot = -49.933436708744 +954000 ekin = 11.8086055714806 | erot = 9.4135197269894 | epot = -71.1555620100664 | etot = -49.9334367115964 +955000 ekin = 12.1486594941153 | erot = 9.63629965817728 | epot = -71.7183958656255 | etot = -49.9334367133329 +956000 ekin = 12.4666814283435 | erot = 9.78498285355642 | epot = -72.1851009958388 | etot = -49.9334367139389 +957000 ekin = 12.752812250665 | erot = 9.85475378778989 | epot = -72.5410027520365 | etot = -49.9334367135817 +958000 ekin = 13.0020596902843 | erot = 9.8508529027434 | epot = -72.7863493055655 | etot = -49.9334367125379 +959000 ekin = 13.2129949609978 | erot = 9.78594808492665 | epot = -72.9323797570477 | etot = -49.9334367111232 +960000 ekin = 13.386355352903 | erot = 9.67694964920652 | epot = -72.9967417117402 | etot = -49.9334367096307 +961000 ekin = 13.5237851668172 | erot = 9.54187021018372 | epot = -72.9990920853052 | etot = -49.9334367083043 +962000 ekin = 13.6268083007112 | erot = 9.39714419112168 | epot = -72.9573891991588 | etot = -49.9334367073259 +963000 ekin = 13.6960515852032 | erot = 9.25563590622512 | epot = -72.8851241982366 | etot = -49.9334367068083 +964000 ekin = 13.7307368676617 | erot = 9.12544546212204 | epot = -72.7896190365701 | etot = -49.9334367067864 +965000 ekin = 13.7285055349355 | erot = 9.00957498535981 | epot = -72.6715172275034 | etot = -49.9334367072082 +966000 ekin = 13.6856873973586 | erot = 8.90650288407777 | epot = -72.5256269893647 | etot = -49.9334367079283 +967000 ekin = 13.5981291274025 | erot = 8.81166698277597 | epot = -72.3432328188808 | etot = -49.9334367087023 +968000 ekin = 13.4626202702827 | erot = 8.71972454046795 | epot = -72.1157815199747 | etot = -49.933436709224 +969000 ekin = 13.2787926259635 | erot = 8.6272346515121 | epot = -71.8394639866604 | etot = -49.9334367091848 +970000 ekin = 13.0511641583548 | erot = 8.5351728251111 | epot = -71.5197736918128 | etot = -49.9334367083469 +971000 ekin = 12.790835500682 | erot = 8.45057810222288 | epot = -71.1748503095307 | etot = -49.9334367066258 +972000 ekin = 12.5173507601806 | erot = 8.38683939062077 | epot = -70.8376268546144 | etot = -49.933436703813 +973000 ekin = 12.2569030872258 | erot = 8.36165046190401 | epot = -70.5519902501752 | etot = -49.9334367010454 +974000 ekin = 12.0353982668027 | erot = 8.39463180026175 | epot = -70.3634667673624 | etot = -49.933436700298 +975000 ekin = 11.8648555977054 | erot = 8.50590727188915 | epot = -70.3041995676637 | etot = -49.9334366980691 +976000 ekin = 11.7661195446294 | erot = 8.70975852592755 | epot = -70.4093147672376 | etot = -49.9334366966806 +977000 ekin = 11.7571606517114 | erot = 9.01267063325535 | epot = -70.7032679815678 | etot = -49.933436696601 +978000 ekin = 11.845389677532 | erot = 9.41117900038229 | epot = -71.1900053760384 | etot = -49.9334366981241 +979000 ekin = 12.0246267634795 | erot = 9.89054975636928 | epot = -71.8486132217867 | etot = -49.9334367019379 +980000 ekin = 12.2724364415925 | erot = 10.4232069351304 | epot = -72.6290800834547 | etot = -49.9334367067319 +981000 ekin = 12.5527115600464 | erot = 10.9725890066009 | epot = -73.4587372787754 | etot = -49.9334367121281 +982000 ekin = 12.8238225598972 | erot = 11.4997645673148 | epot = -74.2570238444359 | etot = -49.9334367172239 +983000 ekin = 13.045203571924 | erot = 11.9687211335461 | epot = -74.9473614266356 | etot = -49.9334367211654 +984000 ekin = 13.1839520713158 | erot = 12.3525268370734 | epot = -75.4699156317595 | etot = -49.9334367233703 +985000 ekin = 13.2192870396381 | erot = 12.6377038113229 | epot = -75.7904275746255 | etot = -49.9334367236645 +986000 ekin = 13.1441636152014 | erot = 12.8254874258286 | epot = -75.9030877633242 | etot = -49.9334367222941 +987000 ekin = 12.9766251566426 | erot = 12.9392834379791 | epot = -75.8493453138261 | etot = -49.9334367192044 +988000 ekin = 12.7467127334457 | erot = 13.0092102946402 | epot = -75.689359745868 | etot = -49.9334367177821 +989000 ekin = 12.4647507864812 | erot = 13.0461973424281 | epot = -75.4443848452174 | etot = -49.933436716308 +990000 ekin = 12.1432494339013 | erot = 13.0601008151106 | epot = -75.1367869639831 | etot = -49.9334367149712 +991000 ekin = 11.795493288751 | erot = 13.0588078295985 | epot = -74.7877378321365 | etot = -49.933436713787 +992000 ekin = 11.4345194694535 | erot = 13.0486939332186 | epot = -74.4166501153588 | etot = -49.9334367126867 +993000 ekin = 11.0720454472705 | erot = 13.0357017586968 | epot = -74.0411839179347 | etot = -49.9334367119674 +994000 ekin = 10.7167466984444 | erot = 13.0266560979782 | epot = -73.6768395070751 | etot = -49.9334367106526 +995000 ekin = 10.3805428790882 | erot = 13.0301107637155 | epot = -73.3440903524007 | etot = -49.933436709597 +996000 ekin = 10.0742873843687 | erot = 13.0528189026738 | epot = -73.0605429959124 | etot = -49.9334367088698 +997000 ekin = 9.80713376389113 | erot = 13.0983026561973 | epot = -72.8388731285729 | etot = -49.9334367084844 +998000 ekin = 9.58681345291487 | erot = 13.1663837795911 | epot = -72.68663394091 | etot = -49.9334367084041 +999000 ekin = 9.41957302295624 | erot = 13.2537863500049 | epot = -72.6067960815235 | etot = -49.9334367085624 +1000000 ekin = 9.30950418584537 | erot = 13.3558388696135 | epot = -72.5987797643175 | etot = -49.9334367088586 + 1000000 347.01619 -80.374455 7.7756755 -63.289276 0.11518501 39304000 +Loop time of 12.9786 on 1 procs for 1000000 steps with 10 atoms + +Performance: 113.570 ns/day, 0.211 hours/ns, 77050.020 timesteps/s, 770.500 katom-step/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 10.471 | 10.471 | 10.471 | 0.0 | 80.68 +Bond | 0.50292 | 0.50292 | 0.50292 | 0.0 | 3.88 +Neigh | 0.005498 | 0.005498 | 0.005498 | 0.0 | 0.04 +Comm | 0.29263 | 0.29263 | 0.29263 | 0.0 | 2.25 +Output | 0.10128 | 0.10128 | 0.10128 | 0.0 | 0.78 +Modify | 1.2697 | 1.2697 | 1.2697 | 0.0 | 9.78 +Other | | 0.3353 | | | 2.58 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:12 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..f9e95ed27a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.3220946463646 | etot = -49.9334369948335 +Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -79.708623 6.3865285 -66.715222 -0.044062421 39304000 +1000 ekin = 6.41530681673929 | erot = 17.3249659795569 | epot = -73.6737097924629 | etot = -49.9334369961667 +2000 ekin = 6.27960997228423 | erot = 17.8454841526973 | epot = -74.05853112287 | etot = -49.9334369978885 +3000 ekin = 6.20339572000352 | erot = 18.3141946085155 | epot = -74.4510273282075 | etot = -49.9334369996885 +4000 ekin = 6.18541696870782 | erot = 18.7042662877837 | epot = -74.8231202577463 | etot = -49.9334370012548 +5000 ekin = 6.22079685461306 | erot = 18.9945001618931 | epot = -75.1487340188922 | etot = -49.9334370023861 +6000 ekin = 6.30238619195777 | erot = 19.1711640282347 | epot = -75.4069872232163 | etot = -49.9334370030238 +7000 ekin = 6.42181744516986 | erot = 19.2282392613115 | epot = -75.5834937096766 | etot = -49.9334370031952 +8000 ekin = 6.5702083768984 | erot = 19.1666965396847 | epot = -75.6703419195626 | etot = -49.9334370029795 +9000 ekin = 6.73869975295019 | erot = 18.9934225090913 | epot = -75.6655592644382 | etot = -49.9334370023967 +10000 ekin = 6.91896362918064 | erot = 18.7204828414678 | epot = -75.5728834721416 | etot = -49.9334370014931 +11000 ekin = 7.10364142561699 | erot = 18.3641504994902 | epot = -75.4012289254602 | etot = -49.933437000353 +12000 ekin = 7.28657388923069 | erot = 17.9433928027823 | epot = -75.1634036911464 | etot = -49.9334369991334 +13000 ekin = 7.46274124826284 | erot = 17.4778556704804 | epot = -74.8740339167284 | etot = -49.9334369979851 +14000 ekin = 7.62796631031656 | erot = 16.9857943782326 | epot = -74.5471976856216 | etot = -49.9334369970725 +15000 ekin = 7.77853508999258 | erot = 16.4826987969592 | epot = -74.1946708831611 | etot = -49.9334369962093 +16000 ekin = 7.91091226447451 | erot = 15.981020277991 | epot = -73.8253695379249 | etot = -49.9334369954594 +17000 ekin = 8.02167864528847 | erot = 15.4888629495766 | epot = -73.4439785905244 | etot = -49.9334369956593 +18000 ekin = 8.10771648329903 | erot = 15.008533029888 | epot = -73.0496865092429 | etot = -49.9334369960558 +19000 ekin = 8.16663757201158 | erot = 14.5368419756958 | epot = -72.6369165441965 | etot = -49.9334369964891 +20000 ekin = 8.19737361822104 | erot = 14.0694735170676 | epot = -72.2002841320789 | etot = -49.9334369967902 +21000 ekin = 8.20084032637754 | erot = 13.6028244433723 | epot = -71.7371017665571 | etot = -49.9334369968072 +22000 ekin = 8.1805815181168 | erot = 13.1355858369991 | epot = -71.2496043515424 | etot = -49.9334369964266 +23000 ekin = 8.14330066835297 | erot = 12.6698318997775 | epot = -70.7465695637177 | etot = -49.9334369955872 +24000 ekin = 8.09918346860535 | erot = 12.2114790537767 | epot = -70.2440995166721 | etot = -49.93343699429 +25000 ekin = 8.06188796651938 | erot = 11.7700779899391 | epot = -69.7654029490675 | etot = -49.933436992609 +26000 ekin = 8.04803038217834 | erot = 11.357977539424 | epot = -69.33944491229 | etot = -49.9334369906877 +27000 ekin = 8.07613224077707 | erot = 10.9889629668064 | epot = -68.998532196341 | etot = -49.9334369887575 +28000 ekin = 8.16468286004791 | erot = 10.6764628926904 | epot = -68.7745827398671 | etot = -49.9334369871288 +29000 ekin = 8.32943276357079 | erot = 10.4314466403617 | epot = -68.6943163900876 | etot = -49.9334369861551 +30000 ekin = 8.58019899558199 | erot = 10.260206659823 | epot = -68.7738426415876 | etot = -49.9334369861826 +31000 ekin = 8.91780959359444 | erot = 10.1623429442233 | epot = -69.0135895252616 | etot = -49.9334369874438 +32000 ekin = 9.33207993074349 | erot = 10.1294239012754 | epot = -69.3949408219821 | etot = -49.9334369899632 +33000 ekin = 9.80167373728768 | erot = 10.1460133617211 | epot = -69.8811240921776 | etot = -49.9334369931688 +34000 ekin = 10.2962557037706 | erot = 10.19068089918 | epot = -70.4203736002094 | etot = -49.9334369972588 +35000 ekin = 10.7808236402999 | erot = 10.2363285925372 | epot = -70.9505892339942 | etot = -49.9334370011571 +36000 ekin = 11.2209991001432 | erot = 10.257302089331 | epot = -71.4117381937028 | etot = -49.9334370042287 +37000 ekin = 11.5878770725917 | erot = 10.2339202958504 | epot = -71.7552343744939 | etot = -49.9334370060518 +38000 ekin = 11.8612836540736 | erot = 10.1555553859577 | epot = -71.950276046544 | etot = -49.9334370065127 +39000 ekin = 12.0309099424595 | erot = 10.0214706213648 | epot = -71.9858175696097 | etot = -49.9334370057854 +40000 ekin = 12.0955556066678 | erot = 9.83943808382871 | epot = -71.8684306947129 | etot = -49.9334370042163 +41000 ekin = 12.0612052446572 | erot = 9.62294084167507 | epot = -71.6175830885253 | etot = -49.933437002193 +42000 ekin = 11.9387239948139 | erot = 9.3880504986014 | epot = -71.2602114934566 | etot = -49.9334370000413 +43000 ekin = 11.7417170850614 | erot = 9.15084162780846 | epot = -70.8259957108614 | etot = -49.9334369979915 +44000 ekin = 11.4847881034978 | erot = 8.92568438359842 | epot = -70.3439094834559 | etot = -49.9334369963596 +45000 ekin = 11.1822274471284 | erot = 8.72337977254347 | epot = -69.8390442145235 | etot = -49.9334369948517 +46000 ekin = 10.8470862022816 | erot = 8.55290687697248 | epot = -69.3334300728901 | etot = -49.933436993636 +47000 ekin = 10.4905994457583 | erot = 8.42173082249849 | epot = -68.8457672609562 | etot = -49.9334369926993 +48000 ekin = 10.1219833658012 | erot = 8.33574076580837 | epot = -68.3911611236 | etot = -49.9334369919904 +49000 ekin = 9.74860996203969 | erot = 8.29978137994426 | epot = -67.9818283334184 | etot = -49.9334369914345 +50000 ekin = 9.37652878061875 | erot = 8.31814298294648 | epot = -67.6281087545144 | etot = -49.9334369909492 +51000 ekin = 9.01124628424343 | erot = 8.39494797706957 | epot = -67.3396312517654 | etot = -49.9334369904523 +52000 ekin = 8.65861585992093 | erot = 8.53436345461208 | epot = -67.1264163044142 | etot = -49.9334369898812 +53000 ekin = 8.32565221212344 | erot = 8.74055503681526 | epot = -66.9996442381329 | etot = -49.9334369891942 +54000 ekin = 8.02107164181809 | erot = 9.01735593163973 | epot = -66.9718645619411 | etot = -49.9334369884833 +55000 ekin = 7.75537320775462 | erot = 9.36712982138605 | epot = -67.0559400169796 | etot = -49.9334369878389 +56000 ekin = 7.54033857900942 | erot = 9.78947615586586 | epot = -67.2632517223114 | etot = -49.9334369874361 +57000 ekin = 7.38797148977917 | erot = 10.2796726902733 | epot = -67.6010811675149 | etot = -49.9334369874624 +58000 ekin = 7.30907596761402 | erot = 10.8272746456742 | epot = -68.0697876013507 | etot = -49.9334369880625 +59000 ekin = 7.31183154532636 | erot = 11.4154638702661 | epot = -68.6607324048665 | etot = -49.9334369892741 +60000 ekin = 7.40073708729479 | erot = 12.0215350766975 | epot = -69.3557091550139 | etot = -49.9334369910216 +61000 ekin = 7.57612697427766 | erot = 12.6184730514594 | epot = -70.1280370189406 | etot = -49.9334369932036 +62000 ekin = 7.8342108583589 | erot = 13.1768169062561 | epot = -70.9444647601208 | etot = -49.9334369955058 +63000 ekin = 8.16736345530089 | erot = 13.6689818833246 | epot = -71.7697823361867 | etot = -49.9334369975612 +64000 ekin = 8.56437270810078 | erot = 14.0716865201625 | epot = -72.5694962279854 | etot = -49.9334369997221 +65000 ekin = 9.01149485546011 | erot = 14.3654371918505 | epot = -73.3103690488105 | etot = -49.9334370014999 +66000 ekin = 9.49327902441941 | erot = 14.5383989863992 | epot = -73.9651150135817 | etot = -49.9334370027631 +67000 ekin = 9.99325449815986 | erot = 14.5878691516405 | epot = -74.5145606532531 | etot = -49.9334370034528 +68000 ekin = 10.4944771426622 | erot = 14.5206532270615 | epot = -74.948567373322 | etot = -49.9334370035983 +69000 ekin = 10.9798545698917 | erot = 14.3522752904598 | epot = -75.2655668636716 | etot = -49.9334370033201 +70000 ekin = 11.4322492583878 | erot = 14.1050236216671 | epot = -75.4707098828618 | etot = -49.9334370028069 +71000 ekin = 11.8344774050134 | erot = 13.8051158639594 | epot = -75.5730302711307 | etot = -49.9334370021578 +72000 ekin = 12.1694138303332 | erot = 13.4802146493522 | epot = -75.5830654819262 | etot = -49.9334370022408 +73000 ekin = 12.4176450109607 | erot = 13.1540122377608 | epot = -75.5050942510592 | etot = -49.9334370023378 +74000 ekin = 12.5615004066018 | erot = 12.8442480530367 | epot = -75.3391854623124 | etot = -49.933437002674 +75000 ekin = 12.5860719279478 | erot = 12.562689044198 | epot = -75.0821979751978 | etot = -49.933437003052 +76000 ekin = 12.4812201739633 | erot = 12.3157495780673 | epot = -74.7304067552178 | etot = -49.9334370031873 +77000 ekin = 12.2439814422801 | erot = 12.1061362624676 | epot = -74.2835547075523 | etot = -49.9334370028045 +78000 ekin = 11.8805929734483 | erot = 11.9347890944405 | epot = -73.7488190696183 | etot = -49.9334370017295 +79000 ekin = 11.4075131435635 | erot = 11.8023493789708 | epot = -73.1432995224905 | etot = -49.9334369999562 +80000 ekin = 10.8509854812388 | erot = 11.7096658028851 | epot = -72.4940882817783 | etot = -49.9334369976544 +81000 ekin = 10.2450327503608 | erot = 11.6573342346719 | epot = -71.8358039801533 | etot = -49.9334369951206 +82000 ekin = 9.62812700027457 | erot = 11.644682992636 | epot = -71.2062469856184 | etot = -49.9334369927079 +83000 ekin = 9.03903873930655 | erot = 11.6687532921639 | epot = -70.6412290222223 | etot = -49.9334369907519 +84000 ekin = 8.51249186343722 | erot = 11.7236867864151 | epot = -70.1696156393608 | etot = -49.9334369895085 +85000 ekin = 8.07528521987733 | erot = 11.8007513441363 | epot = -69.8094735531452 | etot = -49.9334369891315 +86000 ekin = 7.74350481028739 | erot = 11.8889057330318 | epot = -69.5658475329519 | etot = -49.9334369896328 +87000 ekin = 7.52120913163793 | erot = 11.975832499678 | epot = -69.430478622622 | etot = -49.9334369913061 +88000 ekin = 7.39850764773335 | erot = 12.0479648689083 | epot = -69.3799095098062 | etot = -49.9334369931645 +89000 ekin = 7.35699193773619 | erot = 12.0941781544029 | epot = -69.3846070872476 | etot = -49.9334369951085 +90000 ekin = 7.37367999758402 | erot = 12.1080231759507 | epot = -69.4151401703062 | etot = -49.9334369967714 +91000 ekin = 7.42410695857778 | erot = 12.0887796846338 | epot = -69.446323641096 | etot = -49.9334369978845 +92000 ekin = 7.48574151827156 | erot = 12.0420649822326 | epot = -69.4612434988335 | etot = -49.9334369983294 +93000 ekin = 7.54037118988228 | erot = 11.9791807163959 | epot = -69.4529889044482 | etot = -49.93343699817 +94000 ekin = 7.57533062469049 | erot = 11.9152823419618 | epot = -69.4240499641718 | etot = -49.9334369975195 +95000 ekin = 7.58377941253808 | erot = 11.8670735491572 | epot = -69.3842899582996 | etot = -49.9334369966043 +96000 ekin = 7.56434675210422 | erot = 11.8500107777805 | epot = -69.3477945255106 | etot = -49.9334369956259 +97000 ekin = 7.52038731169894 | erot = 11.8759317072194 | epot = -69.3297560136805 | etot = -49.9334369947621 +98000 ekin = 7.45894830728087 | erot = 11.9513447834679 | epot = -69.3437300849067 | etot = -49.9334369941579 +99000 ekin = 7.38944511010944 | erot = 12.0764734057251 | epot = -69.3993555097658 | etot = -49.9334369939312 +100000 ekin = 7.322056358276 | erot = 12.2450152227781 | epot = -69.5005085752273 | etot = -49.9334369941732 +101000 ekin = 7.2659713862008 | erot = 12.4445407770094 | epot = -69.6439491581379 | etot = -49.9334369949278 +102000 ekin = 7.22778180819611 | erot = 12.6574945089325 | epot = -69.818713313292 | etot = -49.9334369961634 +103000 ekin = 7.21040494123171 | erot = 12.8628067179968 | epot = -70.006648656982 | etot = -49.9334369977535 +104000 ekin = 7.21287832486941 | erot = 13.0381084092492 | epot = -70.1844237335836 | etot = -49.9334369994651 +105000 ekin = 7.23115719659506 | erot = 13.1624311874576 | epot = -70.3270253850466 | etot = -49.9334370009939 +106000 ekin = 7.25975107867358 | erot = 13.2191029175818 | epot = -70.4122909982778 | etot = -49.9334370020224 +107000 ekin = 7.29377758656457 | erot = 13.1984000366854 | epot = -70.4256146255391 | etot = -49.9334370022891 +108000 ekin = 7.33090314151363 | erot = 13.0994774135691 | epot = -70.3638175567312 | etot = -49.9334370016485 +109000 ekin = 7.37271454696832 | erot = 12.9312031783744 | epot = -70.2373547254377 | etot = -49.9334370000949 +110000 ekin = 7.42526209058281 | erot = 12.711738044779 | epot = -70.0704371331208 | etot = -49.9334369977591 +111000 ekin = 7.49872514941511 | erot = 12.4669230054364 | epot = -69.8990851497386 | etot = -49.933436994887 +112000 ekin = 7.6062879627992 | erot = 12.2276899311212 | epot = -69.7674148857309 | etot = -49.9334369918105 +113000 ekin = 7.76235901185229 | erot = 12.0267610902733 | epot = -69.7225570910465 | etot = -49.9334369889209 +114000 ekin = 7.98027485026616 | erot = 11.8949023522823 | epot = -69.808614189192 | etot = -49.9334369866436 +115000 ekin = 8.2704585193024 | erot = 11.8569578160181 | epot = -70.0608533199963 | etot = -49.9334369846758 +116000 ekin = 8.64333470390486 | erot = 11.9273725250457 | epot = -70.5041442140755 | etot = -49.9334369851249 +117000 ekin = 9.09183845377655 | erot = 12.1082448162811 | epot = -71.1335202571235 | etot = -49.9334369870659 +118000 ekin = 9.59711279490033 | erot = 12.3880852370701 | epot = -71.9186350224172 | etot = -49.9334369904468 +119000 ekin = 10.1316662415153 | erot = 12.74207779554 | epot = -72.8071810320444 | etot = -49.9334369949891 +120000 ekin = 10.6612602592481 | erot = 13.1344486371318 | epot = -73.7291458965934 | etot = -49.9334370002134 +121000 ekin = 11.148005722412 | erot = 13.5226300221746 | epot = -74.6040727500954 | etot = -49.9334370055088 +122000 ekin = 11.5541779480631 | erot = 13.8626563199417 | epot = -75.3502712782397 | etot = -49.9334370102349 +123000 ekin = 11.8461299089241 | erot = 14.1149357811298 | epot = -75.8945027038806 | etot = -49.9334370138267 +124000 ekin = 11.9977139994329 | erot = 14.2494171746175 | epot = -76.1805681899331 | etot = -49.9334370158828 +125000 ekin = 11.9927642881899 | erot = 14.2492577098997 | epot = -76.1754590143128 | etot = -49.9334370162232 +126000 ekin = 11.8263836634452 | erot = 14.1123955938873 | epot = -75.8722162722329 | etot = -49.9334370149003 +127000 ekin = 11.5049845403649 | erot = 13.8508742683772 | epot = -75.2892958209092 | etot = -49.9334370121672 +128000 ekin = 11.0452237618945 | erot = 13.4882380040385 | epot = -74.4668987743425 | etot = -49.9334370084095 +129000 ekin = 10.4721243932035 | erot = 13.055683661164 | epot = -73.4612450584331 | etot = -49.9334370040656 +130000 ekin = 9.81675568763856 | erot = 12.5878092612803 | epot = -72.3380019484663 | etot = -49.9334369995474 +131000 ekin = 9.11382601709968 | erot = 12.1187210112522 | epot = -71.1659840235457 | etot = -49.9334369951938 +132000 ekin = 8.39944191100492 | erot = 11.679004618051 | epot = -70.011883520309 | etot = -49.9334369912532 +133000 ekin = 7.70914257803012 | erot = 11.2937451501993 | epot = -68.9363247161207 | etot = -49.9334369878913 +134000 ekin = 7.07599885278128 | erot = 10.9811951880495 | epot = -67.9906310260697 | etot = -49.9334369852389 +135000 ekin = 6.52777388754206 | erot = 10.7509607972615 | epot = -67.2121716681485 | etot = -49.933436983345 +136000 ekin = 6.08771006340462 | erot = 10.6081410500055 | epot = -66.6292880956454 | etot = -49.9334369822353 +137000 ekin = 5.77298785581516 | erot = 10.5523726041987 | epot = -66.2587974419487 | etot = -49.9334369819349 +138000 ekin = 5.59354954718529 | erot = 10.5779497433295 | epot = -66.1049362729407 | etot = -49.9334369824259 +139000 ekin = 5.55166881072998 | erot = 10.6745917743567 | epot = -66.1596975687106 | etot = -49.9334369836239 +140000 ekin = 5.64223691297579 | erot = 10.8284932797374 | epot = -66.4041671780796 | etot = -49.9334369853664 +141000 ekin = 5.85383891387505 | erot = 11.0237191850698 | epot = -66.8109950863703 | etot = -49.9334369874254 +142000 ekin = 6.17049552359149 | erot = 11.2439004345761 | epot = -67.3478329477066 | etot = -49.933436989539 +143000 ekin = 6.57375238284809 | erot = 11.4740276162647 | epot = -67.9812169905853 | etot = -49.9334369914725 +144000 ekin = 7.04468895169033 | erot = 11.7019940751322 | epot = -68.6801200198881 | etot = -49.9334369930656 +145000 ekin = 7.56544773358706 | erot = 11.9199568354522 | epot = -69.4188415632316 | etot = -49.9334369941924 +146000 ekin = 8.12004953046454 | erot = 12.123969163162 | epot = -70.1774556887221 | etot = -49.9334369950955 +147000 ekin = 8.69445128023948 | erot = 12.3121155932534 | epot = -70.9400038693254 | etot = -49.9334369958325 +148000 ekin = 9.27603993875062 | erot = 12.4837480427576 | epot = -71.6932249780923 | etot = -49.9334369965841 +149000 ekin = 9.85285670508485 | erot = 12.6377352950194 | epot = -72.4240289976089 | etot = -49.9334369975047 +150000 ekin = 10.4128357127072 | erot = 12.7710161831508 | epot = -73.1172888945396 | etot = -49.9334369986815 +151000 ekin = 10.9432663251803 | erot = 12.8778265161423 | epot = -73.7545298414587 | etot = -49.9334370001361 +152000 ekin = 11.4305853782892 | erot = 12.9496878240658 | epot = -74.3137102041548 | etot = -49.9334370017999 +153000 ekin = 11.8605190183265 | erot = 12.9761831588428 | epot = -74.7701391807241 | etot = -49.9334370035548 +154000 ekin = 12.2185434955921 | erot = 12.9462452354448 | epot = -75.0982257362863 | etot = -49.9334370052494 +155000 ekin = 12.4906128205087 | erot = 12.8496668717348 | epot = -75.2737166989638 | etot = -49.9334370067203 +156000 ekin = 12.664106472584 | erot = 12.678591943177 | epot = -75.2761354235672 | etot = -49.9334370078063 +157000 ekin = 12.7289594615924 | erot = 12.428816011443 | epot = -75.0912124813881 | etot = -49.9334370083527 +158000 ekin = 12.6789226204106 | erot = 12.1008375004898 | epot = -74.7131971291158 | etot = -49.9334370082154 +159000 ekin = 12.5128394530718 | erot = 11.7006734245208 | epot = -74.1469498848699 | etot = -49.9334370072773 +160000 ekin = 12.2357211071557 | erot = 11.2404384839233 | epot = -73.4095965965482 | etot = -49.9334370054692 +161000 ekin = 11.8593038686449 | erot = 10.7386616356043 | epot = -72.5314025070556 | etot = -49.9334370028064 +162000 ekin = 11.4017680282977 | erot = 10.2201339236164 | epot = -71.5553389513352 | etot = -49.9334369994211 +163000 ekin = 10.88644732987 | erot = 9.71510625265559 | epot = -70.5349905780812 | etot = -49.9334369955556 +164000 ekin = 10.33963910701 | erot = 9.25770793159798 | epot = -69.5307840301534 | etot = -49.9334369915454 +165000 ekin = 9.78791680576748 | erot = 8.8835941059127 | epot = -68.6049478994392 | etot = -49.933436987759 +166000 ekin = 9.25550622083465 | erot = 8.62702487817599 | epot = -67.8159680835511 | etot = -49.9334369845404 +167000 ekin = 8.76224456450581 | erot = 8.51776140061082 | epot = -67.2134429472669 | etot = -49.9334369821503 +168000 ekin = 8.32243639262484 | erot = 8.57826893241354 | epot = -66.8341423057719 | etot = -49.9334369807335 +169000 ekin = 7.9446556639145 | erot = 8.82168625048316 | epot = -66.699778894715 | etot = -49.9334369803174 +170000 ekin = 7.63232945982093 | erot = 9.25084013989535 | epot = -66.8166065805391 | etot = -49.9334369808228 +171000 ekin = 7.38529238380379 | erot = 9.85836147101584 | epot = -67.1770908361324 | etot = -49.9334369813128 +172000 ekin = 7.20610015415057 | erot = 10.6270836243962 | epot = -67.7666207622371 | etot = -49.9334369836903 +173000 ekin = 7.08749525316268 | erot = 11.5302525574972 | epot = -68.5511847971476 | etot = -49.9334369864877 +174000 ekin = 7.01847526595191 | erot = 12.5352232664804 | epot = -69.4871355219876 | etot = -49.9334369895554 +175000 ekin = 6.98770800219735 | erot = 13.605633679255 | epot = -70.5267786742242 | etot = -49.9334369927719 +176000 ekin = 6.98383597857994 | erot = 14.7031290903724 | epot = -71.6204020649806 | etot = -49.9334369960282 +177000 ekin = 6.99559888535214 | erot = 15.7890361276414 | epot = -72.7180720122036 | etot = -49.9334369992101 +178000 ekin = 7.01192097920841 | erot = 16.8261106927733 | epot = -73.7714686741622 | etot = -49.9334370021805 +179000 ekin = 7.02209184958747 | erot = 17.7804349003838 | epot = -74.7359637547517 | etot = -49.9334370047804 +180000 ekin = 7.01611155413849 | erot = 18.6234022668462 | epot = -75.5729508278298 | etot = -49.9334370068452 +181000 ekin = 6.98519719010516 | erot = 19.3335567490869 | epot = -76.2521909474295 | etot = -49.9334370082374 +182000 ekin = 6.9223854452692 | erot = 19.8970971418332 | epot = -76.7529195977591 | etot = -49.9334370106567 +183000 ekin = 6.82227592542438 | erot = 20.2982684170465 | epot = -77.0539813535525 | etot = -49.9334370110816 +184000 ekin = 6.68055376616976 | erot = 20.5336568135067 | epot = -77.1476475904173 | etot = -49.9334370107408 +185000 ekin = 6.49623294825599 | erot = 20.6104471437544 | epot = -77.0401171017128 | etot = -49.9334370097024 +186000 ekin = 6.27250921535801 | erot = 20.5422446873305 | epot = -76.7481909107551 | etot = -49.9334370080666 +187000 ekin = 6.01720154751183 | erot = 20.3471328407261 | epot = -76.2977713941873 | etot = -49.9334370059494 +188000 ekin = 5.7428668471506 | erot = 20.0458090594948 | epot = -75.7221129101201 | etot = -49.9334370034747 +189000 ekin = 5.46641873149775 | erot = 19.6593652976528 | epot = -75.0592210301642 | etot = -49.9334370010136 +190000 ekin = 5.20811212014886 | erot = 19.2080076862166 | epot = -74.3495568046827 | etot = -49.9334369983173 +191000 ekin = 4.98983337888141 | erot = 18.7117448291905 | epot = -73.6350152038298 | etot = -49.9334369957578 +192000 ekin = 4.83291851070435 | erot = 18.1889644778759 | epot = -72.955319982097 | etot = -49.9334369935167 +193000 ekin = 4.75584764391792 | erot = 17.6560155879512 | epot = -72.3453002236052 | etot = -49.9334369917361 +194000 ekin = 4.77223428975689 | erot = 17.1270435377798 | epot = -71.8327148180384 | etot = -49.9334369905017 +195000 ekin = 4.88948018808209 | erot = 16.6140592370673 | epot = -71.4369764149727 | etot = -49.9334369898233 +196000 ekin = 5.1083005979096 | erot = 16.1271747421851 | epot = -71.1689123297459 | etot = -49.9334369896512 +197000 ekin = 5.42311350133068 | erot = 15.674884801262 | epot = -71.0314352924916 | etot = -49.933436989899 +198000 ekin = 5.82310186418107 | erot = 15.2642611342814 | epot = -71.0207999889298 | etot = -49.9334369904673 +199000 ekin = 6.29365371082805 | erot = 14.9009682645996 | epot = -71.1280589666941 | etot = -49.9334369912664 +200000 ekin = 6.81787606879851 | erot = 14.5890840258075 | epot = -71.3403970868364 | etot = -49.9334369922304 +201000 ekin = 7.37794822150743 | erot = 14.3307857988509 | epot = -71.6421710136744 | etot = -49.933436993316 +202000 ekin = 7.95618720633342 | erot = 14.1260142258902 | epot = -72.0156384267153 | etot = -49.9334369944917 +203000 ekin = 8.53580140319792 | erot = 13.9722340620959 | epot = -72.4414724610271 | etot = -49.9334369957333 +204000 ekin = 9.1013769071154 | erot = 13.8643800543676 | epot = -72.8991939584938 | etot = -49.9334369970108 +205000 ekin = 9.63916729956859 | erot = 13.7950217250069 | epot = -73.3676260228673 | etot = -49.9334369982918 +206000 ekin = 10.1372494437245 | erot = 13.7547335571626 | epot = -73.8254200004241 | etot = -49.9334369995371 +207000 ekin = 10.5855843060159 | erot = 13.732603634447 | epot = -74.2516249411828 | etot = -49.9334370007199 +208000 ekin = 10.9759973534393 | erot = 13.7167490933392 | epot = -74.6261834485772 | etot = -49.9334370017987 +209000 ekin = 11.3020857284123 | erot = 13.6950342848359 | epot = -74.9305570159944 | etot = -49.9334370027462 +210000 ekin = 11.5590623102108 | erot = 13.6557304747726 | epot = -75.1482297885199 | etot = -49.9334370035364 +211000 ekin = 11.743555457024 | erot = 13.5881804316489 | epot = -75.2651728928179 | etot = -49.933437004145 +212000 ekin = 11.8533937432503 | erot = 13.4834670393962 | epot = -75.270297787206 | etot = -49.9334370045595 +213000 ekin = 11.8874054379687 | erot = 13.3351971168144 | epot = -75.1560395594899 | etot = -49.9334370047068 +214000 ekin = 11.8452570406685 | erot = 13.1395898321956 | epot = -74.9182838775613 | etot = -49.9334370046972 +215000 ekin = 11.7273549851568 | erot = 12.8956103790904 | epot = -74.5564023687323 | etot = -49.9334370044851 +216000 ekin = 11.5348514637298 | erot = 12.605158514261 | epot = -74.0734469820868 | etot = -49.9334370040961 +217000 ekin = 11.2698546386884 | erot = 12.2726360414478 | epot = -73.4759276836672 | etot = -49.9334370035311 +218000 ekin = 10.9360036470615 | erot = 11.9044881932645 | epot = -72.7739288430555 | etot = -49.9334370027295 +219000 ekin = 10.5395729894702 | erot = 11.5091078937322 | epot = -71.9821178847381 | etot = -49.9334370015357 +220000 ekin = 10.0911390958365 | erot = 11.097411340783 | epot = -71.1219874363391 | etot = -49.9334369997196 +221000 ekin = 9.60752759203356 | erot = 10.684023153567 | epot = -70.2249877426707 | etot = -49.9334369970702 +222000 ekin = 9.11332798616405 | erot = 10.2884385364035 | epot = -69.3352035161119 | etot = -49.9334369935443 +223000 ekin = 8.64094443085355 | erot = 9.93507521512118 | epot = -68.5094566353803 | etot = -49.9334369894056 +224000 ekin = 8.22827965337653 | erot = 9.65121040808823 | epot = -67.8129270467273 | etot = -49.9334369852625 +225000 ekin = 7.91390905933529 | erot = 9.46258313917753 | epot = -67.3099291804794 | etot = -49.9334369819666 +226000 ekin = 7.73074804872638 | erot = 9.38753011757455 | epot = -67.0517151464751 | etot = -49.9334369801742 +227000 ekin = 7.70009206552171 | erot = 9.4324347945387 | epot = -67.0659638404016 | etot = -49.9334369803412 +228000 ekin = 7.82788964264835 | erot = 9.58936456547093 | epot = -67.3506911902285 | etot = -49.9334369821092 +229000 ekin = 8.10285729534043 | erot = 9.84056039016023 | epot = -67.8768546713549 | etot = -49.9334369858542 +230000 ekin = 8.50059317628882 | erot = 10.1544474914874 | epot = -68.5884776580934 | etot = -49.9334369903171 +231000 ekin = 8.98918217097634 | erot = 10.493400619592 | epot = -69.4160197853296 | etot = -49.9334369947613 +232000 ekin = 9.53377851904336 | erot = 10.8217737548996 | epot = -70.2889892725803 | etot = -49.9334369986374 +233000 ekin = 10.1004633099891 | erot = 11.1105033366884 | epot = -71.1444036483339 | etot = -49.9334370016564 +234000 ekin = 10.6586122559862 | erot = 11.3394799941965 | epot = -71.9315292539587 | etot = -49.933437003776 +235000 ekin = 11.1819014328112 | erot = 11.4977277745786 | epot = -72.6130662125045 | etot = -49.9334370051147 +236000 ekin = 11.6484473656533 | erot = 11.5820119850548 | epot = -73.1638963565605 | etot = -49.9334370058524 +237000 ekin = 12.0359802131753 | erot = 11.595355433837 | epot = -73.5647726545008 | etot = -49.9334370074885 +238000 ekin = 12.321983609933 | erot = 11.5429422765438 | epot = -73.7983628944137 | etot = -49.933437007937 +239000 ekin = 12.492974786631 | erot = 11.42978605616 | epot = -73.8561978508056 | etot = -49.9334370080146 +240000 ekin = 12.5412393847428 | erot = 11.2618516717058 | epot = -73.7365280640612 | etot = -49.9334370076126 +241000 ekin = 12.4660778052252 | erot = 11.0462123362375 | epot = -73.4457271480702 | etot = -49.9334370066076 +242000 ekin = 12.2750005609619 | erot = 10.7914527512376 | epot = -72.9998903170934 | etot = -49.9334370048939 +243000 ekin = 11.9845096947873 | erot = 10.5081603107655 | epot = -72.4261070080154 | etot = -49.9334370024626 +244000 ekin = 11.6199359047039 | erot = 10.2090471828725 | epot = -71.7624200869645 | etot = -49.933436999388 +245000 ekin = 11.2141782120092 | erot = 9.90860612972013 | epot = -71.0562213376399 | etot = -49.9334369959106 +246000 ekin = 10.8049800665009 | erot = 9.62226262065073 | epot = -70.360679679554 | etot = -49.9334369924023 +247000 ekin = 10.4306724668839 | erot = 9.36498469828511 | epot = -69.729094154468 | etot = -49.933436989299 +248000 ekin = 10.1252005658391 | erot = 9.14967551152671 | epot = -69.2083130643951 | etot = -49.9334369870293 +249000 ekin = 9.91424863501444 | erot = 8.9857076584 | epot = -68.8333932790425 | etot = -49.933436985628 +250000 ekin = 9.81343088345104 | erot = 8.87752109616643 | epot = -68.62438896557 | etot = -49.9334369859525 +251000 ekin = 9.81990124695394 | erot = 8.82321712561625 | epot = -68.5765553598928 | etot = -49.9334369873226 +252000 ekin = 9.91845576761142 | erot = 8.81663197784687 | epot = -68.6685247348587 | etot = -49.9334369894004 +253000 ekin = 10.0857195322889 | erot = 8.84890482128012 | epot = -68.8680613453592 | etot = -49.9334369917902 +254000 ekin = 10.2944154464832 | erot = 8.91011045795646 | epot = -69.1379628985768 | etot = -49.9334369941372 +255000 ekin = 10.5172797771523 | erot = 8.99090198886087 | epot = -69.441618762225 | etot = -49.9334369962119 +256000 ekin = 10.7298060333139 | erot = 9.08318965779856 | epot = -69.746432689017 | etot = -49.9334369979045 +257000 ekin = 10.9117548400304 | erot = 9.1804779576876 | epot = -70.0256697969034 | etot = -49.9334369991854 +258000 ekin = 11.0477221380911 | erot = 9.27819694071461 | epot = -70.2593560788645 | etot = -49.9334370000588 +259000 ekin = 11.1271588600402 | erot = 9.37381103868267 | epot = -70.4344068992548 | etot = -49.9334370005319 +260000 ekin = 11.144277989349 | erot = 9.4669885218844 | epot = -70.5447035117475 | etot = -49.9334370005141 +261000 ekin = 11.0980856586685 | erot = 9.56016701501199 | epot = -70.5916896739975 | etot = -49.9334370003171 +262000 ekin = 10.990792721901 | erot = 9.65474247460802 | epot = -70.5789721960267 | etot = -49.9334369995176 +263000 ekin = 10.8295378178608 | erot = 9.75638049585337 | epot = -70.519355311848 | etot = -49.9334369981338 +264000 ekin = 10.6274954670416 | erot = 9.87566396380797 | epot = -70.4365964270709 | etot = -49.9334369962213 +265000 ekin = 10.4029385010157 | erot = 10.0259787584354 | epot = -70.3623542534483 | etot = -49.9334369939972 +266000 ekin = 10.1776742656856 | erot = 10.2209385120998 | epot = -70.332049769659 | etot = -49.9334369918736 +267000 ekin = 9.97447897986485 | erot = 10.4715477508093 | epot = -70.3794637208694 | etot = -49.9334369901952 +268000 ekin = 9.8139721808994 | erot = 10.783566213846 | epot = -70.5309753841262 | etot = -49.9334369893807 +269000 ekin = 9.71175762398456 | erot = 11.1545990385851 | epot = -70.7997936521884 | etot = -49.9334369896187 +270000 ekin = 9.67524675614719 | erot = 11.5728282294524 | epot = -71.1815119767594 | etot = -49.9334369911598 +271000 ekin = 9.70205034561387 | erot = 12.0171639615819 | epot = -71.652651300944 | etot = -49.9334369937482 +272000 ekin = 9.78119590231257 | erot = 12.4591961343061 | epot = -72.1738290335907 | etot = -49.933436996972 +273000 ekin = 9.89551530293124 | erot = 12.8671360105937 | epot = -72.6960883138042 | etot = -49.9334370002793 +274000 ekin = 10.0251036095171 | erot = 13.2107359457352 | epot = -73.1692765583625 | etot = -49.9334370031102 +275000 ekin = 10.150949712569 | erot = 13.4661171078245 | epot = -73.5505038254205 | etot = -49.933437005027 +276000 ekin = 10.2579077802708 | erot = 13.6195042882971 | epot = -73.8108490743491 | etot = -49.9334370057812 +277000 ekin = 10.3365003461967 | erot = 13.6692293787561 | epot = -73.9391667302895 | etot = -49.9334370053367 +278000 ekin = 10.3834483774467 | erot = 13.6258475790782 | epot = -73.9427329603413 | etot = -49.9334370038164 +279000 ekin = 10.4011507785881 | erot = 13.5106897711472 | epot = -73.8452775512625 | etot = -49.9334370015272 +280000 ekin = 10.396439812492 | erot = 13.3527125117171 | epot = -73.6825893230092 | etot = -49.9334369988 +281000 ekin = 10.3779527890325 | erot = 13.1828376404621 | epot = -73.4942274264329 | etot = -49.9334369969383 +282000 ekin = 10.353053740353 | erot = 13.0291459793171 | epot = -73.3156367147788 | etot = -49.9334369951087 +283000 ekin = 10.327058921166 | erot = 12.9150697625826 | epot = -73.1755656779531 | etot = -49.9334369942045 +284000 ekin = 10.3012154521656 | erot = 12.8544062464705 | epot = -73.0890586931117 | etot = -49.9334369944756 +285000 ekin = 10.2715544103146 | erot = 12.8490241982321 | epot = -73.0540156044477 | etot = -49.9334369959009 +286000 ekin = 10.2290782152192 | erot = 12.8892797632625 | epot = -73.0517949765434 | etot = -49.9334369980617 +287000 ekin = 10.1619978630791 | erot = 12.9580079590626 | epot = -73.0534428222875 | etot = -49.9334370001458 +288000 ekin = 10.0601300944757 | erot = 13.0376429488874 | epot = -73.0312100445687 | etot = -49.9334370012057 +289000 ekin = 9.92022159653657 | erot = 13.1179600214074 | epot = -72.9716186185652 | etot = -49.9334370006212 +290000 ekin = 9.74965131749931 | erot = 13.20061519463 | epot = -72.8837035106212 | etot = -49.9334369984919 +291000 ekin = 9.56608911179593 | erot = 13.2978259857988 | epot = -72.7973520932165 | etot = -49.9334369956217 +292000 ekin = 9.39289303103691 | erot = 13.4260428295595 | epot = -72.7523728535736 | etot = -49.9334369929772 +293000 ekin = 9.25289876825867 | erot = 13.5983001411172 | epot = -72.7846359009137 | etot = -49.9334369915379 +294000 ekin = 9.16176985520412 | erot = 13.8176522641924 | epot = -72.9128591109257 | etot = -49.9334369915292 +295000 ekin = 9.12570783653626 | erot = 14.0757418165445 | epot = -73.1348866458741 | etot = -49.9334369927933 +296000 ekin = 9.14197328685053 | erot = 14.3545965147162 | epot = -73.4300067964825 | etot = -49.9334369949157 +297000 ekin = 9.20093046429207 | erot = 14.6305016956182 | epot = -73.7648691574437 | etot = -49.9334369975334 +298000 ekin = 9.2882446434271 | erot = 14.8768842002814 | epot = -74.0985658445776 | etot = -49.9334370008691 +299000 ekin = 9.38785334981196 | erot = 15.064388648537 | epot = -74.3856790018766 | etot = -49.9334370035276 +300000 ekin = 9.4816591189654 | erot = 15.1708080546 | epot = -74.5859041795342 | etot = -49.9334370059688 +301000 ekin = 9.5500945687059 | erot = 15.1800632839206 | epot = -74.6635948608297 | etot = -49.9334370082032 +302000 ekin = 9.57201526804842 | erot = 15.0823927221984 | epot = -74.5878450007517 | etot = -49.9334370105049 +303000 ekin = 9.52471361884508 | erot = 14.8708920500116 | epot = -74.3290426817171 | etot = -49.9334370128604 +304000 ekin = 9.38481294458484 | erot = 14.540621173802 | epot = -73.8588711334567 | etot = -49.9334370150699 +305000 ekin = 9.13228587661077 | erot = 14.09113813024 | epot = -73.156861021935 | etot = -49.9334370150842 +306000 ekin = 8.75533716880198 | erot = 13.5286285172538 | epot = -72.2174027015838 | etot = -49.933437015528 +307000 ekin = 8.24994820429156 | erot = 12.8613386576974 | epot = -71.0447238754095 | etot = -49.9334370134205 +308000 ekin = 7.6456620760276 | erot = 12.1187367066657 | epot = -69.6978357833139 | etot = -49.9334370006206 +309000 ekin = 6.2156324931236 | erot = 10.8308134934624 | epot = -66.9798826117789 | etot = -49.933436625193 +310000 ekin = 6.98208788801171 | erot = 9.38517955464416 | epot = -66.3007041395919 | etot = -49.9334366969361 +311000 ekin = 8.46519197709966 | erot = 8.64607863222292 | epot = -67.0447073767713 | etot = -49.9334367674487 +312000 ekin = 8.66431616581154 | erot = 8.18423138032288 | epot = -66.7819843262681 | etot = -49.9334367801337 +313000 ekin = 8.8165745331513 | erot = 7.84806509573162 | epot = -66.5980764070118 | etot = -49.9334367781288 +314000 ekin = 8.92571410838771 | erot = 7.64505956838544 | epot = -66.5042104526792 | etot = -49.933436775906 +315000 ekin = 9.0190820076634 | erot = 7.57680806118989 | epot = -66.5293268431105 | etot = -49.9334367742572 +316000 ekin = 9.12426361175364 | erot = 7.63699444605061 | epot = -66.6946948314354 | etot = -49.9334367736311 +317000 ekin = 9.26338621517938 | erot = 7.81017000723729 | epot = -67.0069929987678 | etot = -49.9334367763511 +318000 ekin = 9.44365313230142 | erot = 8.06449733145515 | epot = -67.4415872427672 | etot = -49.9334367790106 +319000 ekin = 9.65799853892068 | erot = 8.3578104013044 | epot = -67.9492457228365 | etot = -49.9334367826114 +320000 ekin = 9.89196359098032 | erot = 8.64893573873188 | epot = -68.4743361164189 | etot = -49.9334367867067 +321000 ekin = 10.1233187755557 | erot = 8.89745069026426 | epot = -68.9542062564548 | etot = -49.9334367906348 +322000 ekin = 10.3265544624573 | erot = 9.06891954456067 | epot = -69.3289108006598 | etot = -49.9334367936418 +323000 ekin = 10.4783638188611 | erot = 9.14041960359969 | epot = -69.5522202175209 | etot = -49.9334367950602 +324000 ekin = 10.5626654861724 | erot = 9.10522153544385 | epot = -69.6013238161297 | etot = -49.9334367945135 +325000 ekin = 10.5736671948877 | erot = 8.97511339418284 | epot = -69.4822173812519 | etot = -49.9334367921813 +326000 ekin = 10.5161587200378 | erot = 8.77895419858649 | epot = -69.2285497068407 | etot = -49.9334367882164 +327000 ekin = 10.4032259690527 | erot = 8.56034165158865 | epot = -68.8970044041305 | etot = -49.9334367834891 +328000 ekin = 10.2524292214586 | erot = 8.37036212265245 | epot = -68.5562281228879 | etot = -49.9334367787768 +329000 ekin = 10.0824546438359 | erot = 8.25940958185205 | epot = -68.2753010003991 | etot = -49.9334367747112 +330000 ekin = 9.90858228191592 | erot = 8.27090994172825 | epot = -68.1129289954795 | etot = -49.9334367718353 +331000 ekin = 9.74053523958486 | erot = 8.43704440644557 | epot = -68.1110164162991 | etot = -49.9334367702687 +332000 ekin = 9.58326759569266 | erot = 8.77502618163732 | epot = -68.2917305473855 | etot = -49.9334367700556 +333000 ekin = 9.43734454313463 | erot = 9.28570909297036 | epot = -68.6564904072819 | etot = -49.9334367711769 +334000 ekin = 9.30005714166039 | erot = 9.95274790625269 | epot = -69.1862418212775 | etot = -49.9334367733644 +335000 ekin = 9.16539195140213 | erot = 10.746354620105 | epot = -69.845183347839 | etot = -49.9334367763319 +336000 ekin = 9.02588570624131 | erot = 11.6261652905767 | epot = -70.5854877765583 | etot = -49.9334367797403 +337000 ekin = 8.87412067608417 | erot = 12.5449700956901 | epot = -71.3525275550114 | etot = -49.9334367832371 +338000 ekin = 8.70391892935299 | erot = 13.4530941766793 | epot = -72.0904498925221 | etot = -49.9334367864898 +339000 ekin = 8.51126560344622 | erot = 14.3027075314391 | epot = -72.7474099241128 | etot = -49.9334367892274 +340000 ekin = 8.29488691398008 | erot = 15.051558155018 | epot = -73.2798818602634 | etot = -49.9334367912654 +341000 ekin = 8.05646205380742 | erot = 15.6657657386911 | epot = -73.6556645850059 | etot = -49.9334367925074 +342000 ekin = 7.80050981598662 | erot = 16.1215554932929 | epot = -73.8555021022114 | etot = -49.9334367929319 +343000 ekin = 7.53404165582583 | erot = 16.4060559812146 | epot = -73.8735344296017 | etot = -49.9334367925613 +344000 ekin = 7.26609676908243 | erot = 16.5174328472204 | epot = -73.7169664077419 | etot = -49.9334367914391 +345000 ekin = 7.00725922449314 | erot = 16.4646262362403 | epot = -73.4053222503512 | etot = -49.9334367896178 +346000 ekin = 6.7691981641755 | erot = 16.2668142751678 | epot = -72.9694492265128 | etot = -49.9334367871695 +347000 ekin = 6.56418602316419 | erot = 15.9525180661099 | epot = -72.450140873486 | etot = -49.9334367842119 +348000 ekin = 6.40447863711545 | erot = 15.5581119659957 | epot = -71.8960273840486 | etot = -49.9334367809374 +349000 ekin = 6.30143449814356 | erot = 15.1255022274363 | epot = -71.3603735032007 | etot = -49.9334367776209 +350000 ekin = 6.26433457360178 | erot = 14.6988992514335 | epot = -70.8966705996403 | etot = -49.933436774605 +351000 ekin = 6.29901365146823 | erot = 14.3208623426312 | epot = -70.5533127663506 | etot = -49.9334367722512 +352000 ekin = 6.40655985354709 | erot = 14.028028720756 | epot = -70.3680253451915 | etot = -49.9334367708884 +353000 ekin = 6.58240652259936 | erot = 13.8470668709055 | epot = -70.3629101642515 | etot = -49.9334367707467 +354000 ekin = 6.81609810136072 | erot = 13.7914168213514 | epot = -70.5409516946357 | etot = -49.9334367719236 +355000 ekin = 7.09188628776078 | erot = 13.859346964886 | epot = -70.8846700269952 | etot = -49.9334367743484 +356000 ekin = 7.3901553957234 | erot = 14.0337905267924 | epot = -71.3573827002843 | etot = -49.9334367777685 +357000 ekin = 7.68951512333227 | erot = 14.2842611187776 | epot = -71.9072130238845 | etot = -49.9334367817746 +358000 ekin = 7.96924870687919 | erot = 14.570797647429 | epot = -72.4734831401669 | etot = -49.9334367858587 +359000 ekin = 8.2117143183278 | erot = 14.849390118072 | epot = -72.9945412259058 | etot = -49.933436789506 +360000 ekin = 8.4043431652244 | erot = 15.077907948255 | epot = -73.4156879057563 | etot = -49.9334367922769 +361000 ekin = 8.54093730786782 | erot = 15.2234591172763 | epot = -73.6978332181843 | etot = -49.9334367930402 +362000 ekin = 8.62176162458802 | erot = 15.2683190552232 | epot = -73.8235174732551 | etot = -49.9334367934439 +363000 ekin = 8.65376226171903 | erot = 15.2009231864135 | epot = -73.7881222408649 | etot = -49.9334367927324 +364000 ekin = 8.65006194496262 | erot = 15.0202219537443 | epot = -73.603720689793 | etot = -49.9334367910861 +365000 ekin = 8.62864344793597 | erot = 14.7344841776725 | epot = -73.296564414414 | etot = -49.9334367888055 +366000 ekin = 8.61026816481815 | erot = 14.3587117763602 | epot = -72.9024167274379 | etot = -49.9334367862596 +367000 ekin = 8.61582393192867 | erot = 13.9116488824681 | epot = -72.4609095982132 | etot = -49.9334367838165 +368000 ekin = 8.66349013752459 | erot = 13.4130591643087 | epot = -72.0099860836029 | etot = -49.9334367817696 +369000 ekin = 8.76619052285202 | erot = 12.8818627721973 | epot = -71.5814900753349 | etot = -49.9334367802855 +370000 ekin = 8.92978412489859 | erot = 12.3354537574912 | epot = -71.1986746617739 | etot = -49.9334367793842 +371000 ekin = 9.15232413559173 | erot = 11.7901096915195 | epot = -70.8758706060823 | etot = -49.9334367789711 +372000 ekin = 9.42449522043855 | erot = 11.2619930178364 | epot = -70.6199250171681 | etot = -49.9334367788932 +373000 ekin = 9.73107815947679 | erot = 10.7680247395803 | epot = -70.4325396780573 | etot = -49.9334367790002 +374000 ekin = 10.053100239951 | erot = 10.326032584761 | epot = -70.3125696038944 | etot = -49.9334367791823 +375000 ekin = 10.3702930598245 | erot = 9.95400537168464 | epot = -70.2577352108757 | etot = -49.9334367793666 +376000 ekin = 10.6635382209447 | erot = 9.66873204742958 | epot = -70.2657070478932 | etot = -49.933436779519 +377000 ekin = 10.9144304196776 | erot = 9.48336618940908 | epot = -70.3312333903166 | etot = -49.9334367812299 +378000 ekin = 11.103325549013 | erot = 9.40465442429875 | epot = -70.4414167547338 | etot = -49.933436781422 +379000 ekin = 11.2228479613045 | erot = 9.43497166219392 | epot = -70.5912564051509 | etot = -49.9334367816525 +380000 ekin = 11.271576558861 | erot = 9.5704613639691 | epot = -70.7754747049176 | etot = -49.9334367820875 +381000 ekin = 11.2520704290916 | erot = 9.8002877649533 | epot = -70.9857949768742 | etot = -49.9334367828293 +382000 ekin = 11.1693057444588 | erot = 10.107053932204 | epot = -71.2097964605176 | etot = -49.9334367838548 +383000 ekin = 11.0296540359309 | erot = 10.4684110619634 | epot = -71.4315018829236 | etot = -49.9334367850292 +384000 ekin = 10.8406006584064 | erot = 10.8594456848205 | epot = -71.6334831293883 | etot = -49.9334367861614 +385000 ekin = 10.6110745203069 | erot = 11.2550567348637 | epot = -71.7995680421827 | etot = -49.9334367870121 +386000 ekin = 10.3514833909805 | erot = 11.6320380412151 | epot = -71.9169582201417 | etot = -49.9334367879461 +387000 ekin = 10.0722200977252 | erot = 11.9687897481426 | epot = -71.9744466347363 | etot = -49.9334367888684 +388000 ekin = 9.7822794238066 | erot = 12.2453759804176 | epot = -71.9610921940012 | etot = -49.933436789777 +389000 ekin = 9.48904126171733 | erot = 12.4455699111993 | epot = -71.868047963092 | etot = -49.9334367901753 +390000 ekin = 9.19880110587709 | erot = 12.5588554599113 | epot = -71.6910933561604 | etot = -49.933436790372 +391000 ekin = 8.918242432058 | erot = 12.5805139316032 | epot = -71.4321931531578 | etot = -49.9334367894965 +392000 ekin = 8.65757726895627 | erot = 12.517139994722 | epot = -71.1081540509929 | etot = -49.9334367873146 +393000 ekin = 8.43231332350369 | erot = 12.3882397426725 | epot = -70.7539898501441 | etot = -49.9334367839679 +394000 ekin = 8.2624725114046 | erot = 12.2242334615059 | epot = -70.4201427529966 | etot = -49.9334367800861 +395000 ekin = 8.16904684404172 | erot = 12.0605939409117 | epot = -70.1630775616002 | etot = -49.9334367766468 +396000 ekin = 8.16818394388242 | erot = 11.9294338996806 | epot = -70.0310546182253 | etot = -49.9334367746623 +397000 ekin = 8.26509438251124 | erot = 11.8511087055213 | epot = -70.049639862832 | etot = -49.9334367747995 +398000 ekin = 8.45014024157578 | erot = 11.8286142934143 | epot = -70.2121913121403 | etot = -49.9334367771502 +399000 ekin = 8.6987524085143 | erot = 11.8465357358579 | epot = -70.4787249255957 | etot = -49.9334367812235 +400000 ekin = 8.97515584925231 | erot = 11.8745399217553 | epot = -70.7831325571793 | etot = -49.9334367861717 +401000 ekin = 9.23841273737429 | erot = 11.8739232099322 | epot = -71.0457727383634 | etot = -49.9334367910569 +402000 ekin = 9.44890872720744 | erot = 11.8053354457297 | epot = -71.1876809679593 | etot = -49.9334367950221 +403000 ekin = 9.57405438451724 | erot = 11.6363946720614 | epot = -71.14388585391 | etot = -49.9334367973313 +404000 ekin = 9.5928007036691 | erot = 11.3485151617404 | epot = -70.8747526628644 | etot = -49.9334367974548 +405000 ekin = 9.49859029588566 | erot = 10.9420390046433 | epot = -70.3740660957166 | etot = -49.9334367951877 +406000 ekin = 9.30027519156694 | erot = 10.4381532175666 | epot = -69.6718651999623 | etot = -49.9334367908288 +407000 ekin = 9.02027468745158 | erot = 9.87620869142913 | epot = -68.8299201640438 | etot = -49.9334367851631 +408000 ekin = 8.69009310249299 | erot = 9.30670442540648 | epot = -67.9302343071062 | etot = -49.9334367792067 +409000 ekin = 8.34449651482658 | erot = 8.78220945748962 | epot = -67.0601427461887 | etot = -49.9334367738725 +410000 ekin = 8.01620286719304 | erot = 8.3492032696416 | epot = -66.2988429065259 | etot = -49.9334367696913 +411000 ekin = 7.53291151060122 | erot = 8.0811683150543 | epot = -65.5475166515716 | etot = -49.9334368259161 +412000 ekin = 6.47552839026797 | erot = 8.45821289441942 | epot = -64.8671779819811 | etot = -49.9334366972937 +413000 ekin = 6.24399442168091 | erot = 8.99561848800252 | epot = -65.1730495934321 | etot = -49.9334366837487 +414000 ekin = 6.18550934222995 | erot = 9.11685651465492 | epot = -65.2358025415403 | etot = -49.9334366846554 +415000 ekin = 6.19706191149651 | erot = 9.37263397423959 | epot = -65.5031325721774 | etot = -49.9334366864413 +416000 ekin = 6.27056156936149 | erot = 9.74301767921106 | epot = -65.9470159374681 | etot = -49.9334366888956 +417000 ekin = 6.39375612509216 | erot = 10.2017877091305 | epot = -66.5289805260617 | etot = -49.933436691839 +418000 ekin = 6.55151386110296 | erot = 10.7180824120525 | epot = -67.2030329682677 | etot = -49.9334366951123 +419000 ekin = 6.72687533387526 | erot = 11.2579372105411 | epot = -67.9182492429841 | etot = -49.9334366985678 +420000 ekin = 6.90190857993762 | erot = 11.7859069157948 | epot = -68.6212521977431 | etot = -49.9334367020106 +421000 ekin = 7.05869608071859 | erot = 12.2671743403968 | epot = -69.2593071262608 | etot = -49.9334367051454 +422000 ekin = 7.18084994343646 | erot = 12.6704427611153 | epot = -69.7847294121264 | etot = -49.9334367075746 +423000 ekin = 7.25563872117268 | erot = 12.9714590209547 | epot = -70.1605344510344 | etot = -49.933436708907 +424000 ekin = 7.27613764930075 | erot = 13.156278523218 | epot = -70.365852881431 | etot = -49.9334367089123 +425000 ekin = 7.24240438623258 | erot = 13.2229033437548 | epot = -70.3987444377157 | etot = -49.9334367077283 +426000 ekin = 7.1610236603134 | erot = 13.1802284318378 | epot = -70.274688797818 | etot = -49.9334367056668 +427000 ekin = 7.04323569563879 | erot = 13.0453653110707 | epot = -70.0220377098745 | etot = -49.933436703165 +428000 ekin = 6.90252931709304 | erot = 12.8399447979796 | epot = -69.6759108156707 | etot = -49.9334367005981 +429000 ekin = 6.75380655237798 | erot = 12.5877583897248 | epot = -69.2750016367671 | etot = -49.9334366946643 +430000 ekin = 6.6364393161603 | erot = 12.3309009158262 | epot = -68.9007769264194 | etot = -49.9334366944329 +431000 ekin = 6.56250777539565 | erot = 12.0862249118006 | epot = -68.5821693817131 | etot = -49.9334366945168 +432000 ekin = 6.52775743984955 | erot = 11.8551418290255 | epot = -68.3163359638247 | etot = -49.9334366949496 +433000 ekin = 6.52644586081814 | erot = 11.6363446464843 | epot = -68.0962272029086 | etot = -49.9334366956061 +434000 ekin = 6.54730069025113 | erot = 11.4229959687972 | epot = -67.9037333576728 | etot = -49.9334366986245 +435000 ekin = 6.57899083359573 | erot = 11.2084874066967 | epot = -67.7209149390736 | etot = -49.9334366987812 +436000 ekin = 6.61931202197109 | erot = 10.9928671140437 | epot = -67.5456158350657 | etot = -49.933436699051 +437000 ekin = 6.66568526291443 | erot = 10.7754455556379 | epot = -67.3745675179576 | etot = -49.9334366994052 +438000 ekin = 6.71519766408806 | erot = 10.55506263558 | epot = -67.2036969994596 | etot = -49.9334366997915 +439000 ekin = 6.76486690072405 | erot = 10.3306264414359 | epot = -67.0289300422963 | etot = -49.9334367001363 +440000 ekin = 6.81204485681802 | erot = 10.1018252021595 | epot = -66.8473067593264 | etot = -49.9334367003489 +441000 ekin = 6.85494025857256 | erot = 9.86991417524009 | epot = -66.6582911341172 | etot = -49.9334367003046 +442000 ekin = 6.89316565874743 | erot = 9.63860472643772 | epot = -66.4652070851845 | etot = -49.9334366999993 +443000 ekin = 6.92830085528458 | erot = 9.41426089210094 | epot = -66.2759984467546 | etot = -49.9334366993691 +444000 ekin = 6.96427254046885 | erot = 9.20573448271319 | epot = -66.1034437216215 | etot = -49.9334366984394 +445000 ekin = 7.0073492958572 | erot = 9.02391831398476 | epot = -65.9647043071472 | etot = -49.9334366973052 +446000 ekin = 7.0656799429788 | erot = 8.88054940608633 | epot = -65.879666045204 | etot = -49.9334366961389 +447000 ekin = 7.14826938537586 | erot = 8.78650081535244 | epot = -65.8682068958953 | etot = -49.933436695167 +448000 ekin = 7.26342746668016 | erot = 8.74982299480011 | epot = -65.9466871561239 | etot = -49.9334366946436 +449000 ekin = 7.4168889378824 | erot = 8.77375650825312 | epot = -66.1240821409271 | etot = -49.9334366947916 +450000 ekin = 7.60996195055432 | erot = 8.85525305881733 | epot = -66.3986517051388 | etot = -49.9334366957672 +451000 ekin = 7.83859627200702 | erot = 8.98479300397757 | epot = -66.7568259732047 | etot = -49.9334366972201 +452000 ekin = 8.09534654891772 | erot = 9.14858392354098 | epot = -67.1773671722563 | etot = -49.9334366997976 +453000 ekin = 8.3650191223508 | erot = 9.32480175712275 | epot = -67.6232575823107 | etot = -49.9334367028371 +454000 ekin = 8.62787482253382 | erot = 9.48861390842429 | epot = -68.0499254368569 | etot = -49.9334367058988 +455000 ekin = 8.86318683153382 | erot = 9.61656796363553 | epot = -68.4131915036354 | etot = -49.933436708466 +456000 ekin = 9.0530142210923 | erot = 9.69069539967442 | epot = -68.6771463307981 | etot = -49.9334367100314 +457000 ekin = 9.18315881760057 | erot = 9.70061032940521 | epot = -68.8172058578152 | etot = -49.9334367108094 +458000 ekin = 9.24739083883971 | erot = 9.64764046613612 | epot = -68.8284680142412 | etot = -49.9334367092654 +459000 ekin = 9.25548953029249 | erot = 9.54869554439529 | epot = -68.73762178105 | etot = -49.9334367063622 +460000 ekin = 9.22729166751897 | erot = 9.43094677908273 | epot = -68.5916751492267 | etot = -49.933436702625 +461000 ekin = 9.18866313207254 | erot = 9.32746380429799 | epot = -68.4495636352095 | etot = -49.9334366988389 +462000 ekin = 9.16559319440856 | erot = 9.27112965792235 | epot = -68.3701595482315 | etot = -49.9334366959006 +463000 ekin = 9.17773873092181 | erot = 9.28803491832685 | epot = -68.3992103437024 | etot = -49.9334366944537 +464000 ekin = 9.23342197533264 | erot = 9.39218062502171 | epot = -68.5590392952248 | etot = -49.9334366948705 +465000 ekin = 9.32780582037917 | erot = 9.58246294341779 | epot = -68.8437054607598 | etot = -49.9334366969628 +466000 ekin = 9.44464021677508 | erot = 9.84368987462365 | epot = -69.2217667915182 | etot = -49.9334367001195 +467000 ekin = 9.56120377686489 | erot = 10.1507714878325 | epot = -69.645411968183 | etot = -49.9334367034856 +468000 ekin = 9.65468489578409 | erot = 10.475088662173 | epot = -70.0632102642112 | etot = -49.9334367062541 +469000 ekin = 9.70785696606057 | erot = 10.7910978191412 | epot = -70.4323914930672 | etot = -49.9334367078654 +470000 ekin = 9.71262212180743 | erot = 11.0813447197849 | epot = -70.7274035497351 | etot = -49.9334367081428 +471000 ekin = 9.67073883343365 | erot = 11.3387370682795 | epot = -70.9429126090209 | etot = -49.9334367073077 +472000 ekin = 9.59191180299258 | erot = 11.5659397722382 | epot = -71.0912882809175 | etot = -49.9334367056867 +473000 ekin = 9.49111612469352 | erot = 11.7727565997393 | epot = -71.1973094281946 | etot = -49.9334367037618 +474000 ekin = 9.38501610879041 | erot = 11.9729251611007 | epot = -71.2913779718146 | etot = -49.9334367019235 +475000 ekin = 9.28887232928698 | erot = 12.1810906679857 | epot = -71.4033996977514 | etot = -49.9334367004787 +476000 ekin = 9.2141310973565 | erot = 12.4104297277118 | epot = -71.5579975245851 | etot = -49.9334366995168 +477000 ekin = 9.16769186028445 | erot = 12.6713688994059 | epot = -71.7724974588023 | etot = -49.933436699112 +478000 ekin = 9.15149095804248 | erot = 12.9706692104284 | epot = -72.0555968677513 | etot = -49.9334366992804 +479000 ekin = 9.16265639587432 | erot = 13.3106560519735 | epot = -72.4067491478726 | etot = -49.9334367000247 +480000 ekin = 9.19406563258848 | erot = 13.6885767381103 | epot = -72.816079072012 | etot = -49.9334367013133 +481000 ekin = 9.23518145366876 | erot = 14.0963491431682 | epot = -73.2649672998759 | etot = -49.933436703039 +482000 ekin = 9.27324003575734 | erot = 14.5212080503177 | epot = -73.7278847910509 | etot = -49.9334367049758 +483000 ekin = 9.29487863763872 | erot = 14.9475327814571 | epot = -74.1758481259612 | etot = -49.9334367068654 +484000 ekin = 9.28813070972074 | erot = 15.3594466797976 | epot = -74.5810140977355 | etot = -49.9334367082172 +485000 ekin = 9.24449800629232 | erot = 15.7449638956732 | epot = -74.922898610809 | etot = -49.9334367088435 +486000 ekin = 9.16033951360244 | erot = 16.0979673631151 | epot = -75.1917435854229 | etot = -49.9334367087053 +487000 ekin = 9.03726433391164 | erot = 16.4183746409809 | epot = -75.3890756828753 | etot = -49.9334367079828 +488000 ekin = 8.88140769754063 | erot = 16.7103217583864 | epot = -75.5251661629216 | etot = -49.9334367069945 +489000 ekin = 8.70193103279663 | erot = 16.9791336192514 | epot = -75.6145013581086 | etot = -49.9334367060605 +490000 ekin = 8.50932564384251 | erot = 17.2283334636958 | epot = -75.6710958129435 | etot = -49.9334367054052 +491000 ekin = 8.31402797836484 | erot = 17.4577039708778 | epot = -75.705168654349 | etot = -49.9334367051063 +492000 ekin = 8.12558483921523 | erot = 17.6628124157096 | epot = -75.7218339600475 | etot = -49.9334367051227 +493000 ekin = 7.95231204430058 | erot = 17.835813360966 | epot = -75.72156211062 | etot = -49.9334367053535 +494000 ekin = 7.80119073598032 | erot = 17.9669524472962 | epot = -75.7015798889816 | etot = -49.9334367057051 +495000 ekin = 7.67769081997738 | erot = 18.0460778615069 | epot = -75.6572053876297 | etot = -49.9334367061454 +496000 ekin = 7.58531059410177 | erot = 18.0636363740619 | epot = -75.5823836748741 | etot = -49.9334367067103 +497000 ekin = 7.52485262515086 | erot = 18.0110549917982 | epot = -75.4693443244026 | etot = -49.9334367074536 +498000 ekin = 7.49373543821652 | erot = 17.8809293893866 | epot = -75.3081015357701 | etot = -49.933436708167 +499000 ekin = 7.48617782569716 | erot = 17.6689103471198 | epot = -75.088524881848 | etot = -49.933436709031 +500000 ekin = 7.49347216210887 | erot = 17.3741777344939 | epot = -74.801086606235 | etot = -49.9334367096322 +501000 ekin = 7.5053796995748 | erot = 17.0010883509583 | epot = -74.4399047601992 | etot = -49.9334367096662 +502000 ekin = 7.5124851361138 | erot = 16.5621897687566 | epot = -74.0081116137953 | etot = -49.9334367089248 +503000 ekin = 7.50819446610193 | erot = 16.0791838293638 | epot = -73.5208150028409 | etot = -49.9334367073752 +504000 ekin = 7.49011586231213 | erot = 15.581868306886 | epot = -73.0054208743659 | etot = -49.9334367051677 +505000 ekin = 7.46056991973154 | erot = 15.1049042921319 | epot = -72.4989109145295 | etot = -49.9334367026661 +506000 ekin = 7.42616688343037 | erot = 14.6834712564248 | epot = -72.0430748400018 | etot = -49.9334367001466 +507000 ekin = 7.39661274009595 | erot = 14.3486660366054 | epot = -71.6787154747788 | etot = -49.9334366980775 +508000 ekin = 7.38281606550075 | erot = 14.1223813055505 | epot = -71.4386340679509 | etot = -49.9334366968997 +509000 ekin = 7.39402992163552 | erot = 14.0119926346298 | epot = -71.3394592535268 | etot = -49.9334366972615 +510000 ekin = 7.4348791744325 | erot = 14.0064549706487 | epot = -71.3747708439909 | etot = -49.9334366989097 +511000 ekin = 7.50576717996981 | erot = 14.0784238743036 | epot = -71.5176277563004 | etot = -49.933436702027 +512000 ekin = 7.60119561213566 | erot = 14.1838211435082 | epot = -71.71845346191 | etot = -49.9334367062662 +513000 ekin = 7.71044568679074 | erot = 14.2667319446144 | epot = -71.9106143423507 | etot = -49.9334367109455 +514000 ekin = 7.8197874776503 | erot = 14.2680211759099 | epot = -72.0212453686592 | etot = -49.933436715099 +515000 ekin = 7.9159515092748 | erot = 14.1367309758411 | epot = -71.986119202766 | etot = -49.93343671765 +516000 ekin = 7.99023839625879 | erot = 13.8421209122757 | epot = -71.7657960262611 | etot = -49.9334367177266 +517000 ekin = 8.04205550959456 | erot = 13.3828818540722 | epot = -71.3583740786968 | etot = -49.9334367150301 +518000 ekin = 8.08036426889104 | erot = 12.7898538338779 | epot = -70.8036548128079 | etot = -49.933436710039 +519000 ekin = 8.12206393604654 | erot = 12.1205081665698 | epot = -70.1760088064841 | etot = -49.9334367038678 +520000 ekin = 8.18764894631014 | erot = 11.446875997564 | epot = -69.5679616417302 | etot = -49.9334366978561 +521000 ekin = 8.29566353774508 | erot = 10.8412363960475 | epot = -69.0703366269248 | etot = -49.9334366931322 +522000 ekin = 8.45774428963588 | erot = 10.3639645177985 | epot = -68.7551454978129 | etot = -49.9334366903786 +523000 ekin = 8.675470703323 | erot = 10.0559571764092 | epot = -68.6648645695377 | etot = -49.9334366898055 +524000 ekin = 8.93944864499587 | erot = 9.93579310864772 | epot = -68.8086784449005 | etot = -49.9334366912569 +525000 ekin = 9.23044472111655 | erot = 10.0004752134417 | epot = -69.1643566289133 | etot = -49.9334366943551 +526000 ekin = 9.52203491659237 | erot = 10.228330720636 | epot = -69.683802335846 | etot = -49.9334366986176 +527000 ekin = 9.78409599196242 | erot = 10.5829813009894 | epot = -70.300513996481 | etot = -49.9334367035292 +528000 ekin = 9.98654469598818 | erot = 11.0178490697343 | epot = -70.9378304742832 | etot = -49.9334367085607 +529000 ekin = 10.1029539602098 | erot = 11.4811633032952 | epot = -71.5175539766568 | etot = -49.9334367131518 +530000 ekin = 10.1138818471058 | erot = 11.9216268521084 | epot = -71.9689454159332 | etot = -49.933436716719 +531000 ekin = 10.009768376694 | erot = 12.2946121702168 | epot = -72.2378172656381 | etot = -49.9334367187274 +532000 ekin = 9.79306563783147 | erot = 12.5680717026784 | epot = -72.2945740593373 | etot = -49.9334367188274 +533000 ekin = 9.47905160964921 | erot = 12.7267270061902 | epot = -72.1392153328364 | etot = -49.9334367169971 +534000 ekin = 9.09480598117682 | erot = 12.7731458504392 | epot = -71.8013885452047 | etot = -49.9334367135886 +535000 ekin = 8.67621596360844 | erot = 12.7252467736192 | epot = -71.3348994464689 | etot = -49.9334367092412 +536000 ekin = 8.26347380203143 | erot = 12.611110006877 | epot = -70.8080205135961 | etot = -49.9334367046877 +537000 ekin = 7.8959905961466 | erot = 12.4628737027761 | epot = -70.2923009994975 | etot = -49.9334367005748 +538000 ekin = 7.60773288320374 | erot = 12.3114435936286 | epot = -69.852613174175 | etot = -49.9334366973427 +539000 ekin = 7.42371159255836 | erot = 12.1829376490116 | epot = -69.5400859367976 | etot = -49.9334366952277 +540000 ekin = 7.35791077730336 | erot = 12.0968490256517 | epot = -69.3881964972587 | etot = -49.9334366943036 +541000 ekin = 7.41256804389062 | erot = 12.0653576080878 | epot = -69.4113623465337 | etot = -49.9334366945552 +542000 ekin = 7.57853605047927 | erot = 12.0931906688322 | epot = -69.6051634152252 | etot = -49.9334366959138 +543000 ekin = 7.83646941918601 | erot = 12.1777647791037 | epot = -69.9476708965313 | etot = -49.9334366982416 +544000 ekin = 8.15871763046595 | erot = 12.3097728231561 | epot = -70.4019271549212 | etot = -49.9334367012991 +545000 ekin = 8.51194808028798 | erot = 12.4746658404529 | epot = -70.9200506254413 | etot = -49.9334367047004 +546000 ekin = 8.86055542994395 | erot = 12.6554193668289 | epot = -71.4494115046975 | etot = -49.9334367079246 +547000 ekin = 9.17075162004728 | erot = 12.8364725166905 | epot = -71.9406608471334 | etot = -49.9334367103957 +548000 ekin = 9.41490179015865 | erot = 13.0079503311565 | epot = -72.3562888329616 | etot = -49.9334367116464 +549000 ekin = 9.57534656747892 | erot = 13.1686979374621 | epot = -72.6774812164065 | etot = -49.9334367114655 +550000 ekin = 9.6468620904745 | erot = 13.3267810142959 | epot = -72.9070798147489 | etot = -49.9334367099785 +551000 ekin = 9.6371528675885 | erot = 13.497010971565 | epot = -73.0676005467578 | etot = -49.9334367076043 +552000 ekin = 9.56521103052548 | erot = 13.696204125115 | epot = -73.1948518605858 | etot = -49.9334367049453 +553000 ekin = 9.45778037488728 | erot = 13.9376030903989 | epot = -73.3288201679348 | etot = -49.9334367026486 +554000 ekin = 9.34444856533031 | erot = 14.2259329986005 | epot = -73.5038182652216 | etot = -49.9334367012908 +555000 ekin = 9.25213586060062 | erot = 14.5541873410933 | epot = -73.7397599029621 | etot = -49.9334367012682 +556000 ekin = 9.19999740115139 | erot = 14.902773179047 | epot = -74.0362072829086 | etot = -49.9334367027102 +557000 ekin = 9.19858106837153 | erot = 15.24186260026 | epot = -74.3738803738764 | etot = -49.9334367052449 +558000 ekin = 9.24425546361931 | erot = 15.5331606763114 | epot = -74.710852849054 | etot = -49.9334367091233 +559000 ekin = 9.31861665848668 | erot = 15.7359099531063 | epot = -74.9879633246597 | etot = -49.9334367130667 +560000 ekin = 9.39695059697467 | erot = 15.8150009570236 | epot = -75.1453882703886 | etot = -49.9334367163903 +561000 ekin = 9.45314011687707 | erot = 15.7467098709177 | epot = -75.1332867062887 | etot = -49.9334367184939 +562000 ekin = 9.4644325074614 | erot = 15.5232568985045 | epot = -74.9211261249237 | etot = -49.9334367189578 +563000 ekin = 9.41516469931819 | erot = 15.156724981701 | epot = -74.5053263981417 | etot = -49.9334367171225 +564000 ekin = 9.29889627205163 | erot = 14.6799119626611 | epot = -73.9122449488013 | etot = -49.9334367140885 +565000 ekin = 9.11880310142311 | erot = 14.1400031739786 | epot = -73.1922429851253 | etot = -49.9334367097237 +566000 ekin = 8.88664822041088 | erot = 13.5965040767949 | epot = -72.4165890017699 | etot = -49.9334367045641 +567000 ekin = 8.62095363300708 | erot = 13.1147978258941 | epot = -71.6691881581016 | etot = -49.9334366992005 +568000 ekin = 8.34502941992304 | erot = 12.7577046249506 | epot = -71.0361707402357 | etot = -49.9334366953621 +569000 ekin = 8.08308251281923 | erot = 12.5716587302871 | epot = -70.5881779351587 | etot = -49.9334366920524 +570000 ekin = 7.85931792271714 | erot = 12.5845592067235 | epot = -70.3773138202899 | etot = -49.9334366908492 +571000 ekin = 7.69515957552165 | erot = 12.7948834197191 | epot = -70.4234796877045 | etot = -49.9334366924637 +572000 ekin = 7.60396111749303 | erot = 13.1643540857624 | epot = -70.7017519004665 | etot = -49.9334366972111 +573000 ekin = 7.58730164860276 | erot = 13.6192730322753 | epot = -71.1400113849639 | etot = -49.9334367040858 +574000 ekin = 7.63520361164767 | erot = 14.0643105451696 | epot = -71.6329508681007 | etot = -49.9334367112835 +575000 ekin = 7.7308015611837 | erot = 14.4044632196782 | epot = -72.0687014976682 | etot = -49.9334367168064 +576000 ekin = 7.85689248444025 | erot = 14.5664691504238 | epot = -72.3567983546925 | etot = -49.9334367198285 +577000 ekin = 8.00091593742018 | erot = 14.5094673832396 | epot = -72.4438200407052 | etot = -49.9334367200454 +578000 ekin = 8.15665258272852 | erot = 14.2276209559902 | epot = -72.3177102567398 | etot = -49.9334367180211 +579000 ekin = 8.32306728067564 | erot = 13.7443245549445 | epot = -72.0008285502556 | etot = -49.9334367146355 +580000 ekin = 8.50340996053175 | erot = 13.1029754976368 | epot = -71.5398221683346 | etot = -49.9334367101661 +581000 ekin = 8.70208311707815 | erot = 12.3569061227601 | epot = -70.9924259463535 | etot = -49.9334367065152 +582000 ekin = 8.91777039453314 | erot = 11.5600287828855 | epot = -70.4112358806671 | etot = -49.9334367032485 +583000 ekin = 9.14731913961815 | erot = 10.7633073834542 | epot = -69.8440632236325 | etot = -49.9334367005601 +584000 ekin = 9.3857721081823 | erot = 10.0114551308676 | epot = -69.3306639376224 | etot = -49.9334366985725 +585000 ekin = 9.62647735601733 | erot = 9.34056459168138 | epot = -68.9004786450718 | etot = -49.9334366973731 +586000 ekin = 9.86132138678038 | erot = 8.77626879108137 | epot = -68.5710268748886 | etot = -49.9334366970268 +587000 ekin = 10.0810752649667 | erot = 8.3323562130503 | epot = -68.3468681755626 | etot = -49.9334366975456 +588000 ekin = 10.2759188426488 | erot = 8.01010405484645 | epot = -68.2194595963449 | etot = -49.9334366988497 +589000 ekin = 10.436242283354 | erot = 7.79886753310536 | epot = -68.1685465171737 | etot = -49.9334367007143 +590000 ekin = 10.553793739994 | erot = 7.67891225372246 | epot = -68.1661426964919 | etot = -49.9334367027754 +591000 ekin = 10.6230840083776 | erot = 7.62453842360011 | epot = -68.1810591364858 | etot = -49.9334367045081 +592000 ekin = 10.6427223550897 | erot = 7.61008622177964 | epot = -68.1862452824274 | etot = -49.9334367055581 +593000 ekin = 10.6162293457026 | erot = 7.6153063463023 | epot = -68.1649723976523 | etot = -49.9334367056474 +594000 ekin = 10.5518689631298 | erot = 7.6291186151185 | epot = -68.1144242830721 | etot = -49.9334367048238 +595000 ekin = 10.4613549146384 | erot = 7.65041575232207 | epot = -68.0452073703513 | etot = -49.9334367033908 +596000 ekin = 10.3577397595008 | erot = 7.68597457794039 | epot = -67.9771510392169 | etot = -49.9334367017757 +597000 ekin = 10.2530110984132 | erot = 7.74702054972167 | epot = -67.9334683485101 | etot = -49.9334367003752 +598000 ekin = 10.155839607293 | erot = 7.84502642240808 | epot = -67.9343027291996 | etot = -49.9334366994986 +599000 ekin = 10.071645676352 | erot = 7.98815266718876 | epot = -67.9932350425499 | etot = -49.9334366990092 +600000 ekin = 10.0026338980498 | erot = 8.18253713496056 | epot = -68.1186077320192 | etot = -49.9334366990089 +601000 ekin = 9.94654163032188 | erot = 8.4316149652901 | epot = -68.3115932943765 | etot = -49.9334366987646 +602000 ekin = 9.9021377201314 | erot = 8.7343430837155 | epot = -68.5699175034191 | etot = -49.9334366995722 +603000 ekin = 9.86461425676751 | erot = 9.08804689163901 | epot = -68.8860978487218 | etot = -49.9334367003152 +604000 ekin = 9.82582394713229 | erot = 9.49104521649029 | epot = -69.2503058645391 | etot = -49.9334367009165 +605000 ekin = 9.77966552472142 | erot = 9.94153338240772 | epot = -69.6546356085775 | etot = -49.9334367014483 +606000 ekin = 9.7222259251532 | erot = 10.436343641277 | epot = -70.0920062685874 | etot = -49.9334367021572 +607000 ekin = 9.65083110472607 | erot = 10.9682113934817 | epot = -70.5524792017342 | etot = -49.9334367035264 +608000 ekin = 9.56210695279502 | erot = 11.5218646669798 | epot = -71.0174083255813 | etot = -49.9334367058065 +609000 ekin = 9.44922522118175 | erot = 12.0704423054891 | epot = -71.4531042366253 | etot = -49.9334367099545 +610000 ekin = 9.30054046558592 | erot = 12.5719096406672 | epot = -71.8058868204232 | etot = -49.9334367141701 +611000 ekin = 9.09998277426936 | erot = 12.9832358345976 | epot = -72.0166553266489 | etot = -49.933436717782 +612000 ekin = 8.83381798261941 | erot = 13.2691152694542 | epot = -72.0363699714117 | etot = -49.9334367193381 +613000 ekin = 8.49783282733212 | erot = 13.4145896843968 | epot = -71.8458592296073 | etot = -49.9334367178784 +614000 ekin = 8.10282385729063 | erot = 13.4329804231055 | epot = -71.4692409938747 | etot = -49.9334367134786 +615000 ekin = 7.6754843053033 | erot = 13.3639670455377 | epot = -70.9728880580651 | etot = -49.9334367072241 +616000 ekin = 7.25407898483605 | erot = 13.2628400894521 | epot = -70.4503557749191 | etot = -49.9334367006309 +617000 ekin = 6.88089060450539 | erot = 13.1866181608022 | epot = -70.0009454603096 | etot = -49.9334366950021 +618000 ekin = 6.59435266200065 | erot = 13.1829361442061 | epot = -69.710725497309 | etot = -49.9334366911023 +619000 ekin = 6.42302569831928 | erot = 13.284295457854 | epot = -69.6407578453659 | etot = -49.9334366891927 +620000 ekin = 6.38233280989394 | erot = 13.5068914943409 | epot = -69.8226609933189 | etot = -49.933436689084 +621000 ekin = 6.47407410490947 | erot = 13.8532244873708 | epot = -70.2607352827226 | etot = -49.9334366904423 +622000 ekin = 6.6882328973603 | erot = 14.3148945805657 | epot = -70.9365641707862 | etot = -49.9334366928603 +623000 ekin = 7.00613993436046 | erot = 14.8751185925638 | epot = -71.8146952230787 | etot = -49.9334366961545 +624000 ekin = 7.40369975393462 | erot = 15.5093236026483 | epot = -72.8464600566424 | etot = -49.9334367000594 +625000 ekin = 7.85341892233954 | erot = 16.1852180464027 | epot = -73.9720736736374 | etot = -49.9334367048952 +626000 ekin = 8.324719146602 | erot = 16.8599319289495 | epot = -75.1180877864706 | etot = -49.9334367109191 +627000 ekin = 8.78345982137352 | erot = 17.4776172005369 | epot = -76.1945137398586 | etot = -49.9334367179482 +628000 ekin = 9.19295493488487 | erot = 17.9720241171043 | epot = -77.0984157768825 | etot = -49.9334367248933 +629000 ekin = 9.51863748538358 | erot = 18.2775776956347 | epot = -77.7296519108779 | etot = -49.9334367298596 +630000 ekin = 9.73601789214728 | erot = 18.3475811088435 | epot = -78.0170357280286 | etot = -49.9334367270378 +631000 ekin = 9.84717031282253 | erot = 18.1774007976277 | epot = -77.9580078352772 | etot = -49.933436724827 +632000 ekin = 9.86514165731601 | erot = 17.7977961669757 | epot = -77.5963745438562 | etot = -49.9334367195645 +633000 ekin = 9.80741211214886 | erot = 17.262632153246 | epot = -77.0034809785188 | etot = -49.9334367131239 +634000 ekin = 9.69704834099391 | erot = 16.6375206672738 | epot = -76.2680057155986 | etot = -49.9334367073309 +635000 ekin = 9.55480062387112 | erot = 15.9824182746176 | epot = -75.4706556016888 | etot = -49.9334367032001 +636000 ekin = 9.3944337691337 | erot = 15.3418801348258 | epot = -74.6697506047724 | etot = -49.9334367008129 +637000 ekin = 9.2220720857669 | erot = 14.7441119802455 | epot = -73.8996207656773 | etot = -49.9334366996649 +638000 ekin = 9.03836092901136 | erot = 14.2055872727831 | epot = -73.1773849008786 | etot = -49.9334366990841 +639000 ekin = 8.8417163270111 | erot = 13.7372137345065 | epot = -72.5123667600205 | etot = -49.9334366985029 +640000 ekin = 8.63137043880964 | erot = 13.34938465084 | epot = -71.9141917872224 | etot = -49.9334366975728 +641000 ekin = 8.40954916880358 | erot = 13.0548513789323 | epot = -71.3978372439143 | etot = -49.9334366961784 +642000 ekin = 8.18255898210743 | erot = 12.8693803232219 | epot = -70.9853759997273 | etot = -49.933436694398 +643000 ekin = 7.96078880311479 | erot = 12.8106076124048 | epot = -70.7048331079812 | etot = -49.9334366924617 +644000 ekin = 7.75858397895701 | erot = 12.895046023422 | epot = -70.5870666931113 | etot = -49.9334366907323 +645000 ekin = 7.59153605359928 | erot = 13.1346881329343 | epot = -70.659660876219 | etot = -49.9334366896854 +646000 ekin = 7.4714219313018 | erot = 13.5357483886256 | epot = -70.9406070095256 | etot = -49.9334366895982 +647000 ekin = 7.40688255499808 | erot = 14.093807462216 | epot = -71.434126708072 | etot = -49.9334366908579 +648000 ekin = 7.3947726179394 | erot = 14.7853448582919 | epot = -72.1135541746406 | etot = -49.9334366984093 +649000 ekin = 7.41215148581707 | erot = 15.5579695689084 | epot = -72.9035577588663 | etot = -49.9334367041409 +650000 ekin = 7.43748369398846 | erot = 16.3522656883817 | epot = -73.723186092836 | etot = -49.9334367104659 +651000 ekin = 7.44712966941582 | erot = 17.1032791639477 | epot = -74.4838455493625 | etot = -49.933436715999 +652000 ekin = 7.42218365700039 | erot = 17.7519733432208 | epot = -75.1075937196659 | etot = -49.9334367194447 +653000 ekin = 7.35498154076254 | erot = 18.256631588447 | epot = -75.5450498494313 | etot = -49.9334367202218 +654000 ekin = 7.2517712716901 | erot = 18.598343368647 | epot = -75.7835513590574 | etot = -49.9334367187203 +655000 ekin = 7.13014467414996 | erot = 18.7785589482672 | epot = -75.8421403383857 | etot = -49.9334367159685 +656000 ekin = 7.01280585603195 | erot = 18.811498691348 | epot = -75.7577412603866 | etot = -49.9334367130066 +657000 ekin = 6.92098821809362 | erot = 18.7164621309898 | epot = -75.5708870595303 | etot = -49.933436710447 +658000 ekin = 6.87020252984082 | erot = 18.5133762498954 | epot = -75.3170154881713 | etot = -49.9334367084351 +659000 ekin = 6.86904868061524 | erot = 18.221622832328 | epot = -75.024108219808 | etot = -49.9334367068648 +660000 ekin = 6.9202440611907 | erot = 17.8601865760474 | epot = -74.7138673428541 | etot = -49.933436705616 +661000 ekin = 7.02250789851937 | erot = 17.4471787302428 | epot = -74.4031233334707 | etot = -49.9334367047086 +662000 ekin = 7.1721656622903 | erot = 16.9978194560425 | epot = -74.1034218226649 | etot = -49.9334367043321 +663000 ekin = 7.36379572134484 | erot = 16.5210347162929 | epot = -73.8182671424275 | etot = -49.9334367047897 +664000 ekin = 7.58974310926842 | erot = 16.015745821036 | epot = -73.5389256366374 | etot = -49.933436706333 +665000 ekin = 7.83889852379622 | erot = 15.4688426540646 | epot = -73.2411778867683 | etot = -49.9334367089075 +666000 ekin = 8.09569815914898 | erot = 14.8574040047694 | epot = -72.8865388758488 | etot = -49.9334367119304 +667000 ekin = 8.34047460991551 | erot = 14.1568873291622 | epot = -72.4307986534121 | etot = -49.9334367143344 +668000 ekin = 8.55167804704053 | erot = 13.3539231505273 | epot = -71.8390379125769 | etot = -49.9334367150091 +669000 ekin = 8.70925293287445 | erot = 12.4582854453855 | epot = -71.1009750916909 | etot = -49.933436713431 +670000 ekin = 8.79758177059704 | erot = 11.5072080473696 | epot = -70.2382265279456 | etot = -49.933436709979 +671000 ekin = 8.806829701508 | erot = 10.5590297335602 | epot = -69.2992961407165 | etot = -49.9334367056483 +672000 ekin = 8.73288275171984 | erot = 9.67972128063836 | epot = -68.3460407337836 | etot = -49.9334367014254 +673000 ekin = 8.57696192212147 | erot = 8.92953158876448 | epot = -67.4399302087297 | etot = -49.9334366978437 +674000 ekin = 8.34564071467256 | erot = 8.35517289115185 | epot = -66.6342503007804 | etot = -49.933436694956 +675000 ekin = 8.05103177970298 | erot = 7.98833216293152 | epot = -65.9728006352283 | etot = -49.9334366925938 +676000 ekin = 7.7104008201603 | erot = 7.84792602077389 | epot = -65.4917635315679 | etot = -49.9334366906337 +677000 ekin = 7.34474807581417 | erot = 7.94294820989321 | epot = -65.2211329748236 | etot = -49.9334366891162 +678000 ekin = 6.97652326988432 | erot = 8.273959425869 | epot = -65.1839193839974 | etot = -49.9334366882441 +679000 ekin = 6.62703502456099 | erot = 8.8326449186269 | epot = -65.3931166315143 | etot = -49.9334366883265 +680000 ekin = 6.31408234083374 | erot = 9.59961963416757 | epot = -65.847138664739 | etot = -49.9334366897377 +681000 ekin = 6.05007024097138 | erot = 10.5409249737469 | epot = -66.5244319075782 | etot = -49.9334366928599 +682000 ekin = 5.84069686117359 | erot = 11.6040232368198 | epot = -67.3781567959513 | etot = -49.9334366979579 +683000 ekin = 5.68441215099936 | erot = 12.7150399583984 | epot = -68.3328888143209 | etot = -49.9334367049231 +684000 ekin = 5.57317083691089 | erot = 13.7803400926936 | epot = -69.2869476425548 | etot = -49.9334367129503 +685000 ekin = 5.49512330343633 | erot = 14.6959075814906 | epot = -70.1244676053778 | etot = -49.9334367204509 +686000 ekin = 5.43923671977557 | erot = 15.3654260750359 | epot = -70.7380995202957 | etot = -49.9334367254842 +687000 ekin = 5.4003758453289 | erot = 15.7221888728928 | epot = -71.0560014449076 | etot = -49.9334367266859 +688000 ekin = 5.38224990758936 | erot = 15.744983026696 | epot = -71.0606696583123 | etot = -49.9334367240269 +689000 ekin = 5.39639776099312 | erot = 15.4596385605578 | epot = -70.7894730403118 | etot = -49.9334367187609 +690000 ekin = 5.45787871144207 | erot = 14.9262956796592 | epot = -70.3176111037086 | etot = -49.9334367126074 +691000 ekin = 5.58031564629653 | erot = 14.2204427974029 | epot = -69.7341951506146 | etot = -49.9334367069152 +692000 ekin = 5.77268021078934 | erot = 13.4168709007514 | epot = -69.1229878130452 | etot = -49.9334367015044 +693000 ekin = 6.03848572893413 | erot = 12.5833910056357 | epot = -68.5553134330701 | etot = -49.9334366985003 +694000 ekin = 6.37471136529004 | erot = 11.7714633111127 | epot = -68.0796113729147 | etot = -49.933436696512 +695000 ekin = 6.77415007797664 | erot = 11.0181330989382 | epot = -67.7257198722996 | etot = -49.9334366953848 +696000 ekin = 7.22672456210878 | erot = 10.3500991256303 | epot = -67.5102603827706 | etot = -49.9334366950315 +697000 ekin = 7.71965128610211 | erot = 9.78480932550617 | epot = -67.4378973070206 | etot = -49.9334366954123 +698000 ekin = 8.23736470679943 | erot = 9.33123654404228 | epot = -67.5020379473337 | etot = -49.933436696492 +699000 ekin = 8.76153382981944 | erot = 8.99061023090674 | epot = -67.6855807589161 | etot = -49.9334366981899 +700000 ekin = 9.2715215974341 | erot = 8.75737705398687 | epot = -67.962335351764 | etot = -49.933436700343 +701000 ekin = 9.74214098374746 | erot = 8.61946007694512 | epot = -68.2950377641907 | etot = -49.9334367034981 +702000 ekin = 10.1452112687015 | erot = 8.55928312120505 | epot = -68.6379310960394 | etot = -49.9334367061329 +703000 ekin = 10.4587930030361 | erot = 8.55974434414932 | epot = -68.9519740551977 | etot = -49.9334367080123 +704000 ekin = 10.6678411441203 | erot = 8.60820420723839 | epot = -69.2094820600658 | etot = -49.9334367087071 +705000 ekin = 10.7665498374596 | erot = 8.70023426604803 | epot = -69.4002208115681 | etot = -49.9334367080605 +706000 ekin = 10.7588048076212 | erot = 8.84126944064561 | epot = -69.5335109545564 | etot = -49.9334367062896 +707000 ekin = 10.6564483688995 | erot = 9.04518277440377 | epot = -69.6350678472186 | etot = -49.9334367039153 +708000 ekin = 10.4759748100134 | erot = 9.33018435423022 | epot = -69.7395958657862 | etot = -49.9334367015426 +709000 ekin = 10.2349383723162 | erot = 9.71377701816848 | epot = -69.8821520901019 | etot = -49.9334366996172 +710000 ekin = 9.94939019034938 | erot = 10.2088106032918 | epot = -70.0916374919401 | etot = -49.9334366982989 +711000 ekin = 9.63303801869973 | erot = 10.8217465783858 | epot = -70.388221294592 | etot = -49.9334366975064 +712000 ekin = 9.2979059702487 | erot = 11.5527669206084 | epot = -70.7841095879486 | etot = -49.9334366970915 +713000 ekin = 8.95557547299259 | erot = 12.3963504873229 | epot = -71.2853626573237 | etot = -49.9334366970082 +714000 ekin = 8.617973595347 | erot = 13.3409900929415 | epot = -71.8924003856787 | etot = -49.9334366973902 +715000 ekin = 8.29712952353144 | erot = 14.3676387566984 | epot = -72.5982049787211 | etot = -49.9334366984912 +716000 ekin = 8.00398725900128 | erot = 15.4475133380728 | epot = -73.3849372976347 | etot = -49.9334367005607 +717000 ekin = 7.74683519043469 | erot = 16.5404526855597 | epot = -74.2207245796401 | etot = -49.9334367036457 +718000 ekin = 7.52982507900723 | erot = 17.5950557079123 | epot = -75.0583174948218 | etot = -49.9334367079023 +719000 ekin = 7.35243516423642 | erot = 18.5497013195426 | epot = -75.8355731964305 | etot = -49.9334367126514 +720000 ekin = 7.21118318121855 | erot = 19.3392479278478 | epot = -76.4838678262561 | etot = -49.9334367171898 +721000 ekin = 7.10169759026176 | erot = 19.9036057067636 | epot = -76.9387400178502 | etot = -49.9334367208248 +722000 ekin = 7.02044686322979 | erot = 20.1972584111814 | epot = -77.1511419967982 | etot = -49.933436722387 +723000 ekin = 6.96887965469435 | erot = 20.1990914031759 | epot = -77.1014077792607 | etot = -49.9334367213905 +724000 ekin = 6.95516719908128 | erot = 19.9185959405088 | epot = -76.8071998575259 | etot = -49.9334367179358 +725000 ekin = 6.99328744836862 | erot = 19.3950419519746 | epot = -76.32176611311 | etot = -49.9334367127668 +726000 ekin = 7.09984572443388 | erot = 18.6900231615959 | epot = -75.7233055929846 | etot = -49.9334367069548 +727000 ekin = 7.28975977557264 | erot = 17.8763690647887 | epot = -75.0995655418772 | etot = -49.9334367015159 +728000 ekin = 7.57226569432855 | erot = 17.027291264949 | epot = -74.5329936564447 | etot = -49.9334366971671 +729000 ekin = 7.94819326112271 | erot = 16.2083660373957 | epot = -74.0899959927799 | etot = -49.9334366942615 +730000 ekin = 8.40885783994521 | erot = 15.4730324365404 | epot = -73.8153269693346 | etot = -49.933436692849 +731000 ekin = 8.93653983578192 | erot = 14.8609748013039 | epot = -73.7309513298607 | etot = -49.9334366927749 +732000 ekin = 9.50625303498499 | erot = 14.398295254732 | epot = -73.8379849835087 | etot = -49.9334366937918 +733000 ekin = 10.0882454137722 | erot = 14.0984617273564 | epot = -74.1201438367855 | etot = -49.9334366956568 +734000 ekin = 10.6505846051446 | erot = 13.9633900358324 | epot = -74.5474113391439 | etot = -49.933436698167 +735000 ekin = 11.1614098847907 | erot = 13.9845407949562 | epot = -75.0793873808749 | etot = -49.9334367011279 +736000 ekin = 11.5908641046552 | erot = 14.1443786489366 | epot = -75.668679457882 | etot = -49.9334367042901 +737000 ekin = 11.9130268000472 | erot = 14.4186949532956 | epot = -76.2651584606395 | etot = -49.9334367072967 +738000 ekin = 12.1081074329298 | erot = 14.7799937728837 | epot = -76.8215379155438 | etot = -49.9334367097304 +739000 ekin = 12.1647528301792 | erot = 15.2014921459777 | epot = -77.299681687379 | etot = -49.933436711222 +740000 ekin = 12.0818547626869 | erot = 15.6606440165028 | epot = -77.6759354907942 | etot = -49.9334367116045 +741000 ekin = 11.8690601672769 | erot = 16.1409035861964 | epot = -77.9434004644811 | etot = -49.9334367110078 +742000 ekin = 11.5454682619335 | erot = 16.6309355139422 | epot = -78.109840485719 | etot = -49.9334367098433 +743000 ekin = 11.1366225376696 | erot = 17.1214741633598 | epot = -78.1915334096987 | etot = -49.9334367086694 +744000 ekin = 10.6705301540866 | erot = 17.6010237793427 | epot = -78.2049906414304 | etot = -49.9334367080012 +745000 ekin = 10.1737520695959 | erot = 18.052092950075 | epot = -78.1592817278147 | etot = -49.9334367081438 +746000 ekin = 9.6685013127403 | erot = 18.4494857322339 | epot = -78.0514237540745 | etot = -49.9334367091003 +747000 ekin = 9.17126973076506 | erot = 18.7614465755014 | epot = -77.8661530168527 | etot = -49.9334367105863 +748000 ekin = 8.69297393764094 | erot = 18.953728130683 | epot = -77.5801387804948 | etot = -49.9334367121709 +749000 ekin = 8.24016858931027 | erot = 18.9943262077066 | epot = -77.1679315103983 | etot = -49.9334367133814 +750000 ekin = 7.81665899712657 | erot = 18.8585564743736 | epot = -76.6086521854012 | etot = -49.9334367139011 +751000 ekin = 7.42490357418608 | erot = 18.5327488588056 | epot = -75.891089146604 | etot = -49.9334367136123 +752000 ekin = 7.06688992057231 | erot = 18.0154570969018 | epot = -75.0157837300385 | etot = -49.9334367125643 +753000 ekin = 6.744505124284 | erot = 17.3167499794558 | epot = -73.9946918146284 | etot = -49.9334367108887 +754000 ekin = 6.45964482993023 | erot = 16.456483060898 | epot = -72.8495645995444 | etot = -49.9334367087162 +755000 ekin = 6.21433593468652 | erot = 15.4623891983238 | epot = -71.6101618391579 | etot = -49.9334367061475 +756000 ekin = 6.01102239399577 | erot = 14.3683296041341 | epot = -70.3127887013935 | etot = -49.9334367032637 +757000 ekin = 5.85298993013194 | erot = 13.2131589078038 | epot = -68.999585537915 | etot = -49.9334366999792 +758000 ekin = 5.74477587284935 | erot = 12.0391225468939 | epot = -67.7173351163856 | etot = -49.9334366966423 +759000 ekin = 5.69192064864643 | erot = 10.8875839734322 | epot = -66.5129413157298 | etot = -49.9334366936513 +760000 ekin = 5.7011745396041 | erot = 9.79576401849851 | epot = -65.4303752490455 | etot = -49.9334366909429 +761000 ekin = 5.78056045511594 | erot = 8.79564789186458 | epot = -64.50964503564 | etot = -49.9334366886595 +762000 ekin = 5.93878225215652 | erot = 7.91237636455522 | epot = -63.7845953036168 | etot = -49.9334366869051 +763000 ekin = 6.18436172780979 | erot = 7.16346434501524 | epot = -63.2812627585723 | etot = -49.9334366857473 +764000 ekin = 6.52454675169063 | erot = 6.55876560277926 | epot = -63.0167490397062 | etot = -49.9334366852363 +765000 ekin = 6.96404799964301 | erot = 6.10094289751422 | epot = -62.9984275825647 | etot = -49.9334366854075 +766000 ekin = 7.50369090335682 | erot = 5.78618752604388 | epot = -63.2233151157002 | etot = -49.9334366862995 +767000 ekin = 8.13911242252144 | erot = 5.60500996894259 | epot = -63.6775590794025 | etot = -49.9334366879384 +768000 ekin = 8.85968786592072 | erot = 5.54304366990311 | epot = -64.3361682261375 | etot = -49.9334366903137 +769000 ekin = 9.64793234063518 | erot = 5.58192554387106 | epot = -65.163294577859 | etot = -49.9334366933527 +770000 ekin = 10.4796582497402 | erot = 5.70040197416269 | epot = -66.1134969207945 | etot = -49.9334366968916 +771000 ekin = 11.3236336972485 | erot = 5.87607544107288 | epot = -67.1331458396591 | etot = -49.9334367013377 +772000 ekin = 12.1386957385345 | erot = 6.08706480596381 | epot = -68.1591972498816 | etot = -49.9334367053833 +773000 ekin = 12.8870213668668 | erot = 6.31151513691576 | epot = -69.1319732127323 | etot = -49.9334367089498 +774000 ekin = 13.5351523878613 | erot = 6.53122680630184 | epot = -69.9998159058268 | etot = -49.9334367116636 +775000 ekin = 14.0571973920993 | erot = 6.73342010746164 | epot = -70.7240542128492 | etot = -49.9334367132882 +776000 ekin = 14.4375527090118 | erot = 6.91134875336251 | epot = -71.2823381761708 | etot = -49.9334367137965 +777000 ekin = 14.6717866848274 | erot = 7.06376577929917 | epot = -71.6689891775052 | etot = -49.9334367133787 +778000 ekin = 14.7653808590857 | erot = 7.19344155377075 | epot = -71.8922591252416 | etot = -49.9334367123852 +779000 ekin = 14.730693855013 | erot = 7.30529771885497 | epot = -71.9694282850543 | etot = -49.9334367111863 +780000 ekin = 14.5832545302354 | erot = 7.40496111443451 | epot = -71.9216523546833 | etot = -49.9334367100134 +781000 ekin = 14.3388697346797 | erot = 7.49845716245022 | epot = -71.7707636059834 | etot = -49.9334367088535 +782000 ekin = 14.012632236989 | erot = 7.59321586742884 | epot = -71.5392848119177 | etot = -49.9334367074999 +783000 ekin = 13.6198123290852 | erot = 7.69972925708741 | epot = -71.2529782919019 | etot = -49.9334367057293 +784000 ekin = 13.1775031485212 | erot = 7.83255954691441 | epot = -70.9434993989344 | etot = -49.9334367034988 +785000 ekin = 12.7055342140841 | erot = 8.00936494240152 | epot = -70.648335857571 | etot = -49.9334367010853 +786000 ekin = 12.2248371391007 | erot = 8.24851507754314 | epot = -70.4067889156156 | etot = -49.9334366989718 +787000 ekin = 11.7555342913329 | erot = 8.56369046309548 | epot = -70.2526614521278 | etot = -49.9334366976994 +788000 ekin = 11.3126236422298 | erot = 8.96026774265187 | epot = -70.2063280824941 | etot = -49.9334366976124 +789000 ekin = 10.9031119972051 | erot = 9.43314525738494 | epot = -70.269693953305 | etot = -49.9334366987149 +790000 ekin = 10.5250635297466 | erot = 9.9675348458216 | epot = -70.4260350762463 | etot = -49.9334367006781 +791000 ekin = 10.1691331640835 | erot = 10.5422631476455 | epot = -70.6448330147032 | etot = -49.9334367029742 +792000 ekin = 9.82205839233272 | erot = 11.1341190394736 | epot = -70.889614136888 | etot = -49.9334367050817 +793000 ekin = 9.47084478061163 | erot = 11.7217151487463 | epot = -71.1259966359825 | etot = -49.9334367066245 +794000 ekin = 9.10632235966735 | erot = 12.2880425704295 | epot = -71.3278016375495 | etot = -49.9334367074527 +795000 ekin = 8.72525787161047 | erot = 12.8212831283708 | epot = -71.4799777074429 | etot = -49.9334367074616 +796000 ekin = 8.33088740352323 | erot = 13.3158307221971 | epot = -71.5801548324682 | etot = -49.9334367067479 +797000 ekin = 7.93221366070309 | erot = 13.7725019330702 | epot = -71.6381522992101 | etot = -49.9334367054368 +798000 ekin = 7.54257513537372 | erot = 14.1976537465394 | epot = -71.6736655856302 | etot = -49.9334367037171 +799000 ekin = 7.17781194150715 | erot = 14.6018729765565 | epot = -71.7131216199341 | etot = -49.9334367018705 +800000 ekin = 6.85418083665888 | erot = 14.9975945327312 | epot = -71.7852120695712 | etot = -49.9334367001811 +801000 ekin = 6.58592787556476 | erot = 15.3953862375861 | epot = -71.9147508125572 | etot = -49.9334366994063 +802000 ekin = 6.38182484891886 | erot = 15.7994624725331 | epot = -72.1147240206144 | etot = -49.9334366991624 +803000 ekin = 6.24578962491507 | erot = 16.2061575172937 | epot = -72.3853838428568 | etot = -49.933436700648 +804000 ekin = 6.17330996103834 | erot = 16.5988082575579 | epot = -72.705554922415 | etot = -49.9334367038188 +805000 ekin = 6.15098228402561 | erot = 16.9456603306619 | epot = -73.0300793226669 | etot = -49.9334367079793 +806000 ekin = 6.15947173672835 | erot = 17.204465643924 | epot = -73.2973740932042 | etot = -49.9334367125519 +807000 ekin = 6.17750077526089 | erot = 17.3287749580178 | epot = -73.4397124498275 | etot = -49.9334367165488 +808000 ekin = 6.18647751295405 | erot = 17.2774290380355 | epot = -73.3973432699773 | etot = -49.9334367189878 +809000 ekin = 6.17461069446069 | erot = 17.0246492195491 | epot = -73.1326966332165 | etot = -49.9334367192067 +810000 ekin = 6.13919982879456 | erot = 16.5673936172911 | epot = -72.6400301631896 | etot = -49.933436717104 +811000 ekin = 6.08590405422783 | erot = 15.9262499108383 | epot = -71.9455906783194 | etot = -49.9334367132534 +812000 ekin = 6.02727840079 | erot = 15.1427857222595 | epot = -71.1035008312158 | etot = -49.9334367081663 +813000 ekin = 5.97994559138709 | erot = 14.2732350592946 | epot = -70.1866173535962 | etot = -49.9334367029146 +814000 ekin = 5.96019407075526 | erot = 13.3776408789709 | epot = -69.2712716479184 | etot = -49.9334366981922 +815000 ekin = 5.98147951144783 | erot = 12.5120766101507 | epot = -68.4269928159851 | etot = -49.9334366943865 +816000 ekin = 6.05315781455285 | erot = 11.7238262965607 | epot = -67.710420802737 | etot = -49.9334366916234 +817000 ekin = 6.18015071648599 | erot = 11.0493436793551 | epot = -67.1629310857236 | etot = -49.9334366898825 +818000 ekin = 6.3634320933152 | erot = 10.5142840563038 | epot = -66.8111528386133 | etot = -49.9334366889943 +819000 ekin = 6.60007567205162 | erot = 10.1338232847715 | epot = -66.6673356460786 | etot = -49.9334366892555 +820000 ekin = 6.88150211743858 | erot = 9.91159836404286 | epot = -66.7265371718921 | etot = -49.9334366904106 +821000 ekin = 7.19506666882379 | erot = 9.84129146074887 | epot = -66.969794821999 | etot = -49.9334366924264 +822000 ekin = 7.52435980178613 | erot = 9.90716288825253 | epot = -67.3649593852532 | etot = -49.9334366952145 +823000 ekin = 7.84992228277147 | erot = 10.0851600965204 | epot = -67.8685190771807 | etot = -49.9334366978889 +824000 ekin = 8.15279302392839 | erot = 10.3470779179228 | epot = -68.4333076432256 | etot = -49.9334367013745 +825000 ekin = 8.41311666021598 | erot = 10.6607446583175 | epot = -69.0072980232389 | etot = -49.9334367047055 +826000 ekin = 8.61249186814264 | erot = 10.9940344469789 | epot = -69.5399630224921 | etot = -49.9334367073706 +827000 ekin = 8.73743000150763 | erot = 11.3203117200469 | epot = -69.9911784304707 | etot = -49.9334367089162 +828000 ekin = 8.78189553875811 | erot = 11.6226054161918 | epot = -70.3379376640229 | etot = -49.933436709073 +829000 ekin = 8.7490083554955 | erot = 11.8958537707843 | epot = -70.5782988341314 | etot = -49.9334367078516 +830000 ekin = 8.65139592842453 | erot = 12.1464179476435 | epot = -70.7312505816181 | etot = -49.93343670555 +831000 ekin = 8.5049427767622 | erot = 12.3857635082366 | epot = -70.824142989187 | etot = -49.9334367041882 +832000 ekin = 8.32916055642671 | erot = 12.6288888017249 | epot = -70.8914860593735 | etot = -49.9334367012219 +833000 ekin = 8.15183535333848 | erot = 12.8934079010539 | epot = -70.9786799532708 | etot = -49.9334366988784 +834000 ekin = 7.99907278376575 | erot = 13.1899071858843 | epot = -71.1224166672267 | etot = -49.9334366975767 +835000 ekin = 7.8918783520446 | erot = 13.51888698887 | epot = -71.3442020384175 | etot = -49.9334366975029 +836000 ekin = 7.84388537229555 | erot = 13.8699943193951 | epot = -71.6473163903007 | etot = -49.9334366986101 +837000 ekin = 7.86044932601213 | erot = 14.2233719535747 | epot = -72.0172579802332 | etot = -49.9334367006464 +838000 ekin = 7.93910809383378 | erot = 14.5528008610184 | epot = -72.425345658041 | etot = -49.9334367031888 +839000 ekin = 8.07122306537679 | erot = 14.8302605050415 | epot = -72.8349202761183 | etot = -49.9334367057 +840000 ekin = 8.2444655423568 | erot = 15.0313446268275 | epot = -73.2092468768182 | etot = -49.9334367076339 +841000 ekin = 8.44565195528976 | erot = 15.1405292660009 | epot = -73.5196179298625 | etot = -49.9334367085719 +842000 ekin = 8.66328937904598 | erot = 15.1548179227718 | epot = -73.7515440101925 | etot = -49.9334367083748 +843000 ekin = 8.8892070628438 | erot = 15.0843018299111 | epot = -73.9069456000073 | etot = -49.9334367072525 +844000 ekin = 9.11892160102442 | erot = 14.9490168365956 | epot = -74.0013751433164 | etot = -49.9334367056964 +845000 ekin = 9.35084016236178 | erot = 14.7729101070013 | epot = -74.05718697366 | etot = -49.9334367042969 +846000 ekin = 9.58480624612782 | erot = 14.5769727649397 | epot = -74.0952157145914 | etot = -49.9334367035239 +847000 ekin = 9.82062376128124 | erot = 14.3739562460594 | epot = -74.1280167109161 | etot = -49.9334367035755 +848000 ekin = 10.0570459043257 | erot = 14.1664338893076 | epot = -74.156916497965 | etot = -49.9334367043317 +849000 ekin = 10.2914310227017 | erot = 13.9486330728702 | epot = -74.1735008010071 | etot = -49.9334367054352 +850000 ekin = 10.5200017142957 | erot = 13.7110119886428 | epot = -74.1644504093987 | etot = -49.9334367064603 +851000 ekin = 10.7384803462379 | erot = 13.4455029516737 | epot = -74.1174200050005 | etot = -49.9334367070889 +852000 ekin = 10.9428323033991 | erot = 13.1491363437732 | epot = -74.0254053544163 | etot = -49.933436707244 +853000 ekin = 11.1299150793994 | erot = 12.8245768790877 | epot = -73.8879286655677 | etot = -49.9334367070806 +854000 ekin = 11.2979634933129 | erot = 12.4776173943457 | epot = -73.7090175945331 | etot = -49.9334367068744 +855000 ekin = 11.446963766283 | erot = 12.1131194462544 | epot = -73.4935199194024 | etot = -49.933436706865 +856000 ekin = 11.5790087133663 | erot = 11.7315500677249 | epot = -73.2439954882093 | etot = -49.9334367071181 +857000 ekin = 11.6987080002491 | erot = 11.3281299269516 | epot = -72.9602746334633 | etot = -49.9334367062627 +858000 ekin = 11.8142530286861 | erot = 10.901031121527 | epot = -72.6487208569823 | etot = -49.9334367067692 +859000 ekin = 11.9332104303187 | erot = 10.4445616968173 | epot = -72.3112088339654 | etot = -49.9334367068294 +860000 ekin = 12.0636090868394 | erot = 9.95521311106996 | epot = -71.9522589040587 | etot = -49.9334367061494 +861000 ekin = 12.2139179047323 | erot = 9.44036583177209 | epot = -71.5877204411663 | etot = -49.9334367046619 +862000 ekin = 12.3911302810443 | erot = 8.92087657030383 | epot = -71.2454435539794 | etot = -49.9334367026313 +863000 ekin = 12.5982733631874 | erot = 8.42930400279383 | epot = -70.9610140666498 | etot = -49.9334367006686 +864000 ekin = 12.831852804783 | erot = 8.00321132274768 | epot = -70.768500827096 | etot = -49.9334366995654 +865000 ekin = 13.0802810159932 | erot = 7.67501011452693 | epot = -70.6887278304442 | etot = -49.933436699924 +866000 ekin = 13.3258003937717 | erot = 7.46434239394174 | epot = -70.723579487828 | etot = -49.9334367001145 +867000 ekin = 13.5483777058287 | erot = 7.37573702192118 | epot = -70.8575514306229 | etot = -49.933436702873 +868000 ekin = 13.7260761156947 | erot = 7.39264351054933 | epot = -71.0521563312998 | etot = -49.9334367050558 +869000 ekin = 13.8458058823138 | erot = 7.49414572985504 | epot = -71.2733883181141 | etot = -49.9334367059453 +870000 ekin = 13.9046600886285 | erot = 7.66358743007335 | epot = -71.5016842268922 | etot = -49.9334367081903 +871000 ekin = 13.8960585004465 | erot = 7.88733345658181 | epot = -71.7168286647946 | etot = -49.9334367077664 +872000 ekin = 13.8246751721402 | erot = 8.15489545476625 | epot = -71.9130073341014 | etot = -49.9334367071949 +873000 ekin = 13.7011361659621 | erot = 8.45583645757423 | epot = -72.09040933028 | etot = -49.9334367067436 +874000 ekin = 13.5424081255665 | erot = 8.77750687622158 | epot = -72.2533517069974 | etot = -49.9334367052094 +875000 ekin = 13.3641904898362 | erot = 9.10395551734411 | epot = -72.4015827123631 | etot = -49.9334367051827 +876000 ekin = 13.1761666319033 | erot = 9.4189692580622 | epot = -72.5285725948025 | etot = -49.9334367048371 +877000 ekin = 12.989733153409 | erot = 9.70973691407686 | epot = -72.6329067715772 | etot = -49.9334367040914 +878000 ekin = 12.8170836818463 | erot = 9.96795108599851 | epot = -72.7184714713864 | etot = -49.9334367035416 +879000 ekin = 12.6680681076849 | erot = 10.1869039997134 | epot = -72.7884088106613 | etot = -49.933436703263 +880000 ekin = 12.5485677829416 | erot = 10.360172238643 | epot = -72.8421767251618 | etot = -49.9334367035772 +881000 ekin = 12.4586640761212 | erot = 10.4797974742167 | epot = -72.871898254959 | etot = -49.9334367046212 +882000 ekin = 12.3916540723878 | erot = 10.5354740122172 | epot = -72.8605647908176 | etot = -49.9334367062126 +883000 ekin = 12.3349006012333 | erot = 10.5163792201282 | epot = -72.784716529318 | etot = -49.9334367079565 +884000 ekin = 12.2717096494548 | erot = 10.4148307307664 | epot = -72.6199770891965 | etot = -49.9334367089752 +885000 ekin = 12.1859999114775 | erot = 10.2325314579947 | epot = -72.3519680786886 | etot = -49.9334367092164 +886000 ekin = 12.0660600094667 | erot = 9.98113360782834 | epot = -71.980630324472 | etot = -49.933436707177 +887000 ekin = 11.9066640240886 | erot = 9.69017126637074 | epot = -71.5302719956084 | etot = -49.9334367051491 +888000 ekin = 11.7031668864977 | erot = 9.40001855012972 | epot = -71.0366221381431 | etot = -49.9334367015157 +889000 ekin = 11.4630530594946 | erot = 9.15343792253717 | epot = -70.5499276802314 | etot = -49.9334366981996 +890000 ekin = 11.1987209290775 | erot = 8.98605396753113 | epot = -70.1182115923965 | etot = -49.9334366957879 +891000 ekin = 10.9233111472025 | erot = 8.92029234168423 | epot = -69.7770401833661 | etot = -49.9334366944794 +892000 ekin = 10.6492398277695 | erot = 8.96369676357743 | epot = -69.5463732855374 | etot = -49.9334366941905 +893000 ekin = 10.3877929472456 | erot = 9.11033168329062 | epot = -69.431561325202 | etot = -49.9334366946658 +894000 ekin = 10.1494275348444 | erot = 9.34401274104991 | epot = -69.4268769714607 | etot = -49.9334366955664 +895000 ekin = 9.94444446372759 | erot = 9.64226259712003 | epot = -69.5201437574336 | etot = -49.933436696586 +896000 ekin = 9.78365577864041 | erot = 9.98061881115325 | epot = -69.6977112871638 | etot = -49.9334366973702 +897000 ekin = 9.67858194014779 | erot = 10.3366132209055 | epot = -69.9486318588918 | etot = -49.9334366978385 +898000 ekin = 9.64075567540845 | erot = 10.6919016549755 | epot = -70.2660940284665 | etot = -49.9334366980826 +899000 ekin = 9.68004571016644 | erot = 11.0326643705369 | epot = -70.6461467790468 | etot = -49.9334366983435 +900000 ekin = 9.80242718993076 | erot = 11.3484734126709 | epot = -71.084337301492 | etot = -49.9334366988904 +901000 ekin = 10.0079867841216 | erot = 11.6305317090574 | epot = -71.5719551930728 | etot = -49.9334366998938 +902000 ekin = 10.28991293803 | erot = 11.8702049221031 | epot = -72.0935545615133 | etot = -49.9334367013802 +903000 ekin = 10.6348280320447 | erot = 12.0586224306225 | epot = -72.6268871658226 | etot = -49.9334367031554 +904000 ekin = 11.0243272479324 | erot = 12.1875535947934 | epot = -73.145317547711 | etot = -49.9334367049852 +905000 ekin = 11.4372262794084 | erot = 12.2506292976041 | epot = -73.6212922836315 | etot = -49.933436706619 +906000 ekin = 11.8518934288994 | erot = 12.2446242606477 | epot = -74.0299543974295 | etot = -49.9334367078824 +907000 ekin = 12.2481266389201 | erot = 12.1701657665188 | epot = -74.351729114148 | etot = -49.9334367087091 +908000 ekin = 12.6082582209218 | erot = 12.0316322966321 | epot = -74.5733272267001 | etot = -49.9334367091463 +909000 ekin = 12.917445581968 | erot = 11.8363878398617 | epot = -74.6872701311254 | etot = -49.9334367092957 +910000 ekin = 13.1633580105045 | erot = 11.5937735117952 | epot = -74.6905682315581 | etot = -49.9334367092584 +911000 ekin = 13.3356415621017 | erot = 11.3143470991352 | epot = -74.5834253703139 | etot = -49.933436709077 +912000 ekin = 13.425596568237 | erot = 11.0097178906581 | epot = -74.3687511676035 | etot = -49.9334367087083 +913000 ekin = 13.4301864972375 | erot = 10.6932440962164 | epot = -74.056867299607 | etot = -49.9334367061531 +914000 ekin = 13.3769940125857 | erot = 10.3811500400916 | epot = -73.6915807586478 | etot = -49.9334367059705 +915000 ekin = 13.2641557141347 | erot = 10.0882130475995 | epot = -73.2858054672313 | etot = -49.933436705497 +916000 ekin = 13.0837312497424 | erot = 9.83018237236329 | epot = -72.8473503269087 | etot = -49.9334367048031 +917000 ekin = 12.8312481510179 | erot = 9.62294454951148 | epot = -72.3876294045856 | etot = -49.9334367040562 +918000 ekin = 12.5057291534266 | erot = 9.48024983823758 | epot = -71.9194156950861 | etot = -49.9334367034219 +919000 ekin = 12.1093169180432 | erot = 9.41163285905158 | epot = -71.4543864807244 | etot = -49.9334367036296 +920000 ekin = 11.6422865006934 | erot = 9.42287047205446 | epot = -70.9985936755824 | etot = -49.9334367028345 +921000 ekin = 11.1169457295372 | erot = 9.51466229501161 | epot = -70.5650447264646 | etot = -49.9334367019158 +922000 ekin = 10.5550472140296 | erot = 9.68352501363233 | epot = -70.1720089283617 | etot = -49.9334367006998 +923000 ekin = 9.98441850036398 | erot = 9.92400943507129 | epot = -69.8418646346123 | etot = -49.933436699177 +924000 ekin = 9.43763475528215 | erot = 10.2296922494978 | epot = -69.6007637023709 | etot = -49.933436697591 +925000 ekin = 8.94863290042417 | erot = 10.592921289405 | epot = -69.4749908861711 | etot = -49.9334366963419 +926000 ekin = 8.54812299742105 | erot = 11.003729609764 | epot = -69.4852893029582 | etot = -49.9334366957731 +927000 ekin = 8.25958093087947 | erot = 11.4489178471945 | epot = -69.6419354740825 | etot = -49.9334366960085 +928000 ekin = 8.11336972326081 | erot = 11.9118540028711 | epot = -69.9586604226551 | etot = -49.9334366965232 +929000 ekin = 8.06162796654599 | erot = 12.3783092987422 | epot = -70.3733740125528 | etot = -49.9334367472646 +930000 ekin = 8.11332481200163 | erot = 12.8482520254932 | epot = -70.8950135415971 | etot = -49.9334367041023 +931000 ekin = 8.66218357016193 | erot = 13.2899790801566 | epot = -71.8855994294219 | etot = -49.9334367791033 +932000 ekin = 9.18948394947728 | erot = 13.6579503931781 | epot = -72.7808710530632 | etot = -49.9334367104079 +933000 ekin = 9.79417016839173 | erot = 13.9483173133746 | epot = -73.6759241999747 | etot = -49.9334367182084 +934000 ekin = 10.4207852553787 | erot = 14.1310962185635 | epot = -74.4853181968414 | etot = -49.9334367228992 +935000 ekin = 10.9969920696613 | erot = 14.1631931275595 | epot = -75.0936219236271 | etot = -49.9334367264063 +936000 ekin = 11.4754171704122 | erot = 14.0243625870535 | epot = -75.4332164855681 | etot = -49.9334367281024 +937000 ekin = 11.828115794495 | erot = 13.7138200009053 | epot = -75.4753725232106 | etot = -49.9334367278102 +938000 ekin = 12.0415685894037 | erot = 13.2461818683061 | epot = -75.2211871837423 | etot = -49.9334367260325 +939000 ekin = 12.114582947563 | erot = 12.6496470029865 | epot = -74.6976666731984 | etot = -49.9334367226489 +940000 ekin = 12.0589112708375 | erot = 11.9625634903802 | epot = -73.9549114795693 | etot = -49.9334367183516 +941000 ekin = 11.8960551688751 | erot = 11.228842334653 | epot = -73.0583342171364 | etot = -49.9334367136083 +942000 ekin = 11.6544532359061 | erot = 10.4934965269952 | epot = -72.081386471699 | etot = -49.9334367087977 +943000 ekin = 11.3669373499361 | erot = 9.79913167083184 | epot = -71.0995057249687 | etot = -49.9334367042008 +944000 ekin = 11.0683221475717 | erot = 9.1835118182396 | epot = -70.1852706658605 | etot = -49.9334367000492 +945000 ekin = 10.7929590511223 | erot = 8.67788366896716 | epot = -69.4042794166669 | etot = -49.9334366965775 +946000 ekin = 10.5720940699664 | erot = 8.30555132204176 | epot = -68.8110820860617 | etot = -49.9334366940535 +947000 ekin = 10.431026077989 | erot = 8.08030170253007 | epot = -68.4447644732885 | etot = -49.9334366927694 +948000 ekin = 10.3863587492407 | erot = 8.00467877116281 | epot = -68.324474213363 | etot = -49.9334366929595 +949000 ekin = 10.443969831977 | erot = 8.06864252756914 | epot = -68.4460490542299 | etot = -49.9334366946837 +950000 ekin = 10.5984527950567 | erot = 8.24950150875679 | epot = -68.781391001546 | etot = -49.9334366977325 +951000 ekin = 10.8345056210697 | erot = 8.51385964371356 | epot = -69.2818019664129 | etot = -49.9334367016296 +952000 ekin = 11.1300987903813 | erot = 8.82166130464103 | epot = -69.885196800763 | etot = -49.9334367057407 +953000 ekin = 11.4620681606301 | erot = 9.13289977458331 | epot = -70.5284046439579 | etot = -49.9334367087445 +954000 ekin = 11.8086055714193 | erot = 9.41351972724564 | epot = -71.1555620102617 | etot = -49.9334367115968 +955000 ekin = 12.1486594940869 | erot = 9.63629965849216 | epot = -71.7183958659123 | etot = -49.9334367133333 +956000 ekin = 12.4666814283382 | erot = 9.78498285392056 | epot = -72.1851009961974 | etot = -49.9334367139387 +957000 ekin = 12.752812250671 | erot = 9.85475378818911 | epot = -72.5410027524423 | etot = -49.9334367135821 +958000 ekin = 13.0020596902883 | erot = 9.85085290315995 | epot = -72.7863493059855 | etot = -49.9334367125373 +959000 ekin = 13.2129949609854 | erot = 9.78594808534103 | epot = -72.9323797574491 | etot = -49.9334367111227 +960000 ekin = 13.38635535286 | erot = 9.67694964959962 | epot = -72.9967417120899 | etot = -49.9334367096303 +961000 ekin = 13.5237851667308 | erot = 9.54187021053885 | epot = -72.9990920855742 | etot = -49.9334367083045 +962000 ekin = 13.626808300571 | erot = 9.39714419142608 | epot = -72.9573891993236 | etot = -49.9334367073265 +963000 ekin = 13.6960515850022 | erot = 9.25563590647102 | epot = -72.8851241982819 | etot = -49.9334367068086 +964000 ekin = 13.7307368673975 | erot = 9.12544546230701 | epot = -72.7896190364922 | etot = -49.9334367067877 +965000 ekin = 13.7285055346103 | erot = 9.00957498548651 | epot = -72.6715172273075 | etot = -49.9334367072107 +966000 ekin = 13.6856873969798 | erot = 8.90650288415293 | epot = -72.5256269890622 | etot = -49.9334367079294 +967000 ekin = 13.5981291269817 | erot = 8.81166698280912 | epot = -72.3432328184944 | etot = -49.9334367087035 +968000 ekin = 13.4626202698355 | erot = 8.71972454046941 | epot = -72.1157815195311 | etot = -49.9334367092262 +969000 ekin = 13.2787926255078 | erot = 8.62723465149127 | epot = -71.8394639861855 | etot = -49.9334367091864 +970000 ekin = 13.0511641579098 | erot = 8.53517282507499 | epot = -71.5197736913331 | etot = -49.9334367083484 +971000 ekin = 12.7908355002666 | erot = 8.45057810217557 | epot = -71.174850309069 | etot = -49.9334367066268 +972000 ekin = 12.5173507598131 | erot = 8.38683939056359 | epot = -70.8376268541913 | etot = -49.9334367038146 +973000 ekin = 12.2569030869208 | erot = 8.36165046183605 | epot = -70.5519902498042 | etot = -49.9334367010474 +974000 ekin = 12.0353982665848 | erot = 8.39463180018019 | epot = -70.3634667670655 | etot = -49.9334367003005 +975000 ekin = 11.8648555975993 | erot = 8.50590727179108 | epot = -70.3041995674616 | etot = -49.9334366980712 +976000 ekin = 11.7661195446394 | erot = 8.70975852581276 | epot = -70.4093147671339 | etot = -49.9334366966818 +977000 ekin = 11.7571606518367 | erot = 9.01267063312532 | epot = -70.7032679815637 | etot = -49.9334366966017 +978000 ekin = 11.8453896777667 | erot = 9.41117900024049 | epot = -71.1900053761314 | etot = -49.9334366981242 +979000 ekin = 12.0246267638124 | erot = 9.89054975622095 | epot = -71.8486132219714 | etot = -49.9334367019381 +980000 ekin = 12.2724364420053 | erot = 10.4232069349804 | epot = -72.6290800837174 | etot = -49.9334367067317 +981000 ekin = 12.5527115605182 | erot = 10.972589006457 | epot = -73.4587372791038 | etot = -49.9334367121286 +982000 ekin = 12.8238225604048 | erot = 11.4997645671859 | epot = -74.2570238448159 | etot = -49.9334367172252 +983000 ekin = 13.0452035724442 | erot = 11.9687211334411 | epot = -74.9473614270525 | etot = -49.9334367211672 +984000 ekin = 13.1839520718259 | erot = 12.352526836999 | epot = -75.4699156321967 | etot = -49.9334367233718 +985000 ekin = 13.2192870401165 | erot = 12.6377038112812 | epot = -75.7904275750641 | etot = -49.9334367236663 +986000 ekin = 13.1441636156278 | erot = 12.825487425815 | epot = -75.9030877637388 | etot = -49.933436722296 +987000 ekin = 12.9766251570008 | erot = 12.9392834379828 | epot = -75.8493453141909 | etot = -49.9334367192073 +988000 ekin = 12.7467127337231 | erot = 13.0092102946437 | epot = -75.6893597461514 | etot = -49.9334367177846 +989000 ekin = 12.4647507866674 | erot = 13.046197342409 | epot = -75.4443848453866 | etot = -49.9334367163102 +990000 ekin = 12.1432494339901 | erot = 13.0601008150464 | epot = -75.1367869640102 | etot = -49.9334367149737 +991000 ekin = 11.7954932887414 | erot = 13.0588078294718 | epot = -74.7877378320025 | etot = -49.9334367137893 +992000 ekin = 11.4345194693503 | erot = 13.0486939330205 | epot = -74.4166501150601 | etot = -49.9334367126893 +993000 ekin = 11.0720454470821 | erot = 13.0357017584289 | epot = -74.0411839174814 | etot = -49.9334367119704 +994000 ekin = 10.7167466981842 | erot = 13.0266560976539 | epot = -73.6768395064945 | etot = -49.9334367106565 +995000 ekin = 10.3805428787761 | erot = 13.0301107633585 | epot = -73.3440903517368 | etot = -49.9334367096022 +996000 ekin = 10.0742873840263 | erot = 13.0528189023139 | epot = -73.0605429952154 | etot = -49.9334367088752 +997000 ekin = 9.80713376353975 | erot = 13.0983026558673 | epot = -72.8388731278965 | etot = -49.9334367084895 +998000 ekin = 9.58681345257386 | erot = 13.1663837793229 | epot = -72.686633940305 | etot = -49.9334367084082 +999000 ekin = 9.4195730226422 | erot = 13.2537863498268 | epot = -72.6067960810353 | etot = -49.9334367085663 +1000000 ekin = 9.30950418557169 | erot = 13.3558388695471 | epot = -72.5987797639821 | etot = -49.9334367088633 + 1000000 347.01619 -80.374455 7.7756755 -63.289276 0.11518501 39304000 +Loop time of 12.3789 on 4 procs for 1000000 steps with 10 atoms + +Performance: 119.072 ns/day, 0.202 hours/ns, 80782.753 timesteps/s, 807.828 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.1126 | 5.281 | 7.0829 | 48.1 | 42.66 +Bond | 0.14793 | 0.22282 | 0.2978 | 11.7 | 1.80 +Neigh | 0.00393 | 0.0039655 | 0.004021 | 0.1 | 0.03 +Comm | 2.762 | 4.8726 | 6.048 | 56.9 | 39.36 +Output | 0.063777 | 0.070646 | 0.088161 | 3.8 | 0.57 +Modify | 0.44561 | 0.5346 | 0.64233 | 11.9 | 4.32 +Other | | 1.393 | | | 11.26 + +Nlocal: 2.5 ave 3 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 8 max 7 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 15 max 2 min +Histogram: 1 0 0 0 1 0 0 1 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:12 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/data.duplex2 new file mode 100644 index 0000000000..78a6fdd51a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/data.duplex2 @@ -0,0 +1,91 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +16 atoms +4 atom types +13 bonds +1 bond types +16 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -5.224492277936935 -5.6003990662830665 3.072035980595378 1 1 1.0016462505133576 0 0 0 +2 2 -3.855482258589815 -8.54410812515585 6.182955020430966 1 1 1.0016462505133576 0 0 0 +3 3 -0.8418698080395857 -10.56041032511679 9.10967975032824 1 1 1.0016462505133576 0 0 0 +4 4 2.502394065492512 -10.715431837829685 12.145744722571814 1 1 1.0016462505133576 0 0 0 +5 1 5.355178690564601 -8.674171903962998 15.067785212133312 1 1 1.0016462505133576 0 0 0 +6 2 6.7305169669220595 -5.763569949980494 18.347908888941284 1 1 1.0016462505133576 0 0 0 +7 3 6.061219006086631 -3.4238594469157198 21.88758604427721 1 1 1.0016462505133576 0 0 0 +8 4 4.001186577913306 -2.576839632838177 26.12300846270287 1 1 1.0016462505133576 0 0 0 +9 1 3.454997351061381 -12.298079702286948 26.05718083554597 2 1 1.0016462505133576 0 0 0 +10 2 -0.2728181587270111 -11.028698363238112 23.169872406755868 2 1 1.0016462505133576 0 0 0 +11 3 -2.692868178466912 -7.73787195036868 20.549852065183913 2 1 1.0016462505133576 0 0 0 +12 4 -3.316857346830113 -4.145374554885233 17.08862230448963 2 1 1.0016462505133576 0 0 0 +13 1 -0.5308965342198838 -0.6095451431748122 13.28229291571604 3 1 1.0016462505133576 0 0 0 +14 2 1.5233668194980015 -0.46991432454420656 8.699204689407908 3 1 1.0016462505133576 0 0 0 +15 3 3.844548159551531 -2.026909836907328 5.074452450044903 3 1 1.0016462505133576 0 0 0 +16 4 4.325141724684425 -4.740799489595668 1.4104749932020408 3 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.00026896558742537556 0.00011298695236274073 0.001242364337461123 0.7538466533118467 -1.2587520584415195 -1.1163576881067447 +2 -0.00019946914535880285 0.0013465785184092233 -0.0009479872206420321 -0.13024003640483983 -0.5006975787807386 0.17048535791572514 +3 -0.0010377647810347322 -0.0006804774738725614 -0.000302697462953215 -0.15638545864527348 -0.2683843524758034 -0.6295604792026762 +4 -0.0011968051721949484 -0.002808404437492725 0.00016214368951061121 -0.7029471277015998 1.2169631204234201 1.42700472482703 +5 -0.0008046113463391788 -0.001142874812754601 -0.0006767129075723855 0.304218367349499 -0.4005571162913614 0.5710347488390389 +6 -0.00023475461149269044 0.000959484075931813 0.0007283860029089665 0.3921776444343422 -2.399417440979843 0.3950910265578085 +7 0.0002545632912247854 -0.00019202725318668095 -0.0007112078778547229 1.4800522749729792 1.8058703404340948 -0.5778414965351256 +8 0.0018887377488028885 -0.0002473511615838234 0.0008120520191337178 0.18841278062652408 0.3347372075847072 -0.5408605905745774 +9 0.0002452564077667799 0.00020601300929708606 6.1033299095680186e-05 0.13966147753401867 -0.0005390290197378453 0.6635632318913824 +10 0.000968244047328249 0.0005529827424647325 -0.00020224034557198784 -0.7235582069719148 -1.9412262416735993 -1.289806869224333 +11 -0.0017543321990246556 -0.000939796984860897 0.0018048542648271923 -1.5775475529872025 -2.0891633737315023 0.40142307521789933 +12 -0.0005934853675296159 0.001116191652783757 4.626275649966328e-05 -1.200961814632207 0.4371811217355096 0.43287366246768927 +13 -0.0007222905985558083 -0.0005767904238661645 0.0006648020330562531 -1.084763819731394 1.1718860080947717 0.2470159472481526 +14 0.0002573730178578412 -0.00182797610679242 -0.00033107273492769625 -0.510496177490122 0.29118940603730814 0.9195837620128926 +15 -0.0010092903785878923 0.0011654195253227475 4.0609661125969864e-05 -0.723803934131871 0.07956576746268508 -1.1413793944128399 +16 -0.0009587558806876301 -0.0004046946607553641 -0.0002343452641922075 0.07373406158203998 -1.3986322243084912 0.4617216556119086 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 9 10 +9 1 10 11 +10 1 11 12 +11 1 13 14 +12 1 14 15 +13 1 15 16 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9964752158482045 -0.053253555733239796 0.011391163807102514 -0.06380787090289707 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9369923833143513 0.11220716044648564 0.06732538499716349 0.3239168400846305 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.797964932091827 0.14473096354527873 0.18374142699366386 0.5554673737937029 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5660864821344559 0.14688275499481052 0.09873742533340191 0.8051226439917721 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.2533023785125306 0.12062313161679827 0.08583012223905846 0.9559922359911086 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.03855807343534716 0.08405913137017908 0.02236505169306371 0.9954632800204194 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.45592844330248017 0.1004550065061007 -0.052524745294758785 0.8827679181910482 +8 9.999999997766462 9.999999997766462 9.999999997766462 0.768021221540491 -0.009582139884533599 0.03658677589040892 -0.63930665074644 +9 9.999999997766462 9.999999997766462 9.999999997766462 -0.23299975754512345 0.688686395231341 0.6747873944883376 -0.12682324016841584 +10 9.999999997766462 9.999999997766462 9.999999997766462 -0.24662061871907232 0.8744456399178389 0.39370836087823996 -0.13970261209395163 +11 9.999999997766462 9.999999997766462 9.999999997766462 -0.087475900850909 0.977367602388229 0.14493549113095577 -0.12686307572668784 +12 9.999999997766462 9.999999997766462 9.999999997766462 -0.03181169300779214 0.9634374984140112 -0.2442360692534371 -0.10547485630879185 +13 9.999999997766462 9.999999997766462 9.999999997766462 -0.032786070696572266 0.7922941528811777 -0.6084214170523915 -0.03191282109962717 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.047188686288341455 0.6316396208287698 -0.7737349519945348 0.011783095844627799 +15 9.999999997766462 9.999999997766462 9.999999997766462 -0.05869980642620335 -0.34229358203414423 0.9376740835056508 0.012519965878508689 +16 9.999999997766462 9.999999997766462 9.999999997766462 -0.08582818143150042 0.0008707732197394232 0.9939540921464659 -0.0684691735853161 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/in.duplex2 new file mode 100644 index 0000000000..69025d2ae2 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/in.duplex2 @@ -0,0 +1,73 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 new file mode 100644 index 0000000000..c070e4eaca --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -125.483166681887 | etot = -92.6645914514141 +Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -129.82524 4.3420686 -109.36284 0.039706925 39304000 +1000 ekin = 16.1153280108143 | erot = 15.5197830189416 | epot = -124.555012078315 | etot = -92.9199010485588 +2000 ekin = 15.772246419827 | erot = 15.1139636185383 | epot = -123.879088875298 | etot = -92.9928788369323 +3000 ekin = 16.0773390725189 | erot = 15.209959103884 | epot = -123.489559526102 | etot = -92.2022613496986 +4000 ekin = 15.8173041766846 | erot = 14.7611030291702 | epot = -123.285245732656 | etot = -92.7068385268011 +5000 ekin = 15.4977817476135 | erot = 13.136888034624 | epot = -123.146472671991 | etot = -94.511802889753 +6000 ekin = 14.7156620894482 | erot = 14.7421516126936 | epot = -123.022223364177 | etot = -93.5644096620347 +7000 ekin = 14.9944296549912 | erot = 13.783162042227 | epot = -123.190008596649 | etot = -94.4124168994313 +8000 ekin = 15.4784069740882 | erot = 13.849436282597 | epot = -123.501589669336 | etot = -94.1737464126508 +9000 ekin = 14.8187016230064 | erot = 12.4172590954619 | epot = -123.977782239857 | etot = -96.7418215213889 +10000 ekin = 15.0274879557549 | erot = 13.1218082157407 | epot = -124.599335647018 | etot = -96.4500394755227 +11000 ekin = 14.4931845632981 | erot = 14.4826290329821 | epot = -125.349370552054 | etot = -96.3735569557737 +12000 ekin = 14.6238652440025 | erot = 15.0566784473206 | epot = -126.147676000969 | etot = -96.4671323096456 +13000 ekin = 15.137690408925 | erot = 16.3735083921761 | epot = -126.783622343916 | etot = -95.2724235428147 +14000 ekin = 15.0736340167339 | erot = 17.9580151111454 | epot = -127.212455694657 | etot = -94.1808065667773 +15000 ekin = 15.6847409974466 | erot = 16.4414105500024 | epot = -127.359697666437 | etot = -95.2335461189881 +16000 ekin = 15.101909613666 | erot = 17.5942742553051 | epot = -127.202183128007 | etot = -94.5059992590364 +17000 ekin = 15.3727376562683 | erot = 19.1091811430074 | epot = -126.813728712217 | etot = -92.3318099129414 +18000 ekin = 14.8374011694519 | erot = 19.7017705490592 | epot = -126.30449141107 | etot = -91.7653196925591 +19000 ekin = 15.1981564010543 | erot = 18.6439998775122 | epot = -125.672872041634 | etot = -91.830715763067 +20000 ekin = 16.1151841084727 | erot = 20.7585939815706 | epot = -124.972087929324 | etot = -88.0983098392806 +21000 ekin = 16.3338477714416 | erot = 20.8240546257147 | epot = -124.366832858554 | etot = -87.2089304613976 +22000 ekin = 16.1322150698349 | erot = 20.2134381799286 | epot = -123.905804890148 | etot = -87.5601516403842 +23000 ekin = 16.5115128572444 | erot = 17.6994160203144 | epot = -123.55564726802 | etot = -89.3447183904615 +24000 ekin = 16.1352983796458 | erot = 16.3149199437269 | epot = -123.442319677191 | etot = -90.9921013538185 +25000 ekin = 16.022085347148 | erot = 15.583100483768 | epot = -123.449358919593 | etot = -91.8441730886766 +26000 ekin = 16.2893661316802 | erot = 16.2928134270855 | epot = -123.576521595326 | etot = -90.9943420365607 +27000 ekin = 16.7390245507423 | erot = 15.3238654831856 | epot = -123.731718503694 | etot = -91.6688284697663 +28000 ekin = 16.2177081340479 | erot = 14.8307563153175 | epot = -123.99220492136 | etot = -92.9437404719943 +29000 ekin = 16.394983535328 | erot = 14.5241463812386 | epot = -124.513314221131 | etot = -93.5941843045643 +30000 ekin = 16.9754617608551 | erot = 15.2543913785552 | epot = -125.219970033943 | etot = -92.9901168945324 +31000 ekin = 17.5126083496296 | erot = 16.0100732675228 | epot = -126.062415056418 | etot = -92.5397334392652 +32000 ekin = 18.5712292997905 | erot = 16.206627396287 | epot = -126.997383457792 | etot = -92.2195267617144 +33000 ekin = 20.3914733420706 | erot = 17.95620789524 | epot = -127.853083619434 | etot = -89.5054023821237 +34000 ekin = 20.6113627375719 | erot = 19.9540488404715 | epot = -128.630184260389 | etot = -88.0647726823456 +35000 ekin = 20.8360942975504 | erot = 18.7186151968505 | epot = -129.138353151477 | etot = -89.583643657076 +36000 ekin = 20.6985051785528 | erot = 16.975623481333 | epot = -129.307575419352 | etot = -91.6334467594659 +37000 ekin = 20.5167811486514 | erot = 15.2755543486072 | epot = -129.197321856118 | etot = -93.4049863588594 +38000 ekin = 21.1497608417914 | erot = 14.5576638198861 | epot = -128.930481489255 | etot = -93.2230568275779 +39000 ekin = 20.6746026905741 | erot = 14.3039991212366 | epot = -128.401411971525 | etot = -93.4228101597146 +40000 ekin = 20.2458392603998 | erot = 12.3350344432048 | epot = -127.685777608123 | etot = -95.1049039045185 +41000 ekin = 19.9443359632547 | erot = 12.5780453533769 | epot = -127.034234533918 | etot = -94.5118532172866 +42000 ekin = 18.7142138659613 | erot = 15.6025018660211 | epot = -126.430389989682 | etot = -92.1136742577 +43000 ekin = 18.2011859622276 | erot = 12.9029481737254 | epot = -125.805728672502 | etot = -94.7015945365485 +44000 ekin = 17.0231621476026 | erot = 13.3229275319614 | epot = -125.306302559716 | etot = -94.9602128801516 +45000 ekin = 16.152368779228 | erot = 13.1425819599688 | epot = -125.010262919191 | etot = -95.7153121799937 +46000 ekin = 16.7021752482541 | erot = 14.1252164671804 | epot = -124.733270572736 | etot = -93.9058788573016 +47000 ekin = 15.99784829344 | erot = 13.7601120378058 | epot = -124.690287962324 | etot = -94.9323276310783 +48000 ekin = 15.5197793757419 | erot = 12.9242805215039 | epot = -124.828892248156 | etot = -96.3848323509101 +49000 ekin = 16.0883502578865 | erot = 11.6460670991824 | epot = -125.077169952033 | etot = -97.3427525949638 +50000 ekin = 16.5910827451326 | erot = 10.3658274796462 | epot = -125.343780614919 | etot = -98.3868703901406 +51000 ekin = 16.6472854601222 | erot = 10.477376420409 | epot = -125.554004771147 | etot = -98.4293428906161 +52000 ekin = 17.5155585277601 | erot = 12.2350226754088 | epot = -125.797409563523 | etot = -96.0468283603543 +53000 ekin = 17.4722415449292 | erot = 13.1927275265022 | epot = -126.040236812772 | etot = -95.3752677413405 +54000 ekin = 17.6076594913864 | erot = 13.1614957800302 | epot = -126.29136443309 | etot = -95.5222091616737 +55000 ekin = 17.8100170030173 | erot = 14.1252425722699 | epot = -126.659390094792 | etot = -94.7241305195052 +56000 ekin = 17.8387492196087 | erot = 14.0302618957366 | epot = -126.997375569247 | etot = -95.1283644539021 +57000 ekin = 18.1401351862027 | erot = 12.5711347601677 | epot = -127.202256599684 | etot = -96.4909866533135 +58000 ekin = 17.7813245596444 | erot = 12.7191555553695 | epot = -127.338590294723 | etot = -96.8381101797093 +59000 ekin = 17.3503839581068 | erot = 14.1146045471954 | epot = -127.355017342212 | etot = -95.8900288369098 +60000 ekin = 17.7216299019791 | erot = 15.1536630383833 | epot = -127.187386794376 | etot = -94.3120938540139 +61000 ekin = 17.6941198173267 | erot = 14.8383509334028 | epot = -126.818610986476 | etot = -94.2861402357464 +62000 ekin = 17.5641418897184 | erot = 13.0033976525466 | epot = -126.314451969138 | etot = -95.7469124268735 +63000 ekin = 18.0478257135008 | erot = 12.8783262794927 | epot = -125.770715790686 | etot = -94.8445637976929 +64000 ekin = 19.1312112805444 | erot = 12.3333582641774 | epot = -125.534785996931 | etot = -94.0702164522088 +65000 ekin = 19.2188096461596 | erot = 11.534140380085 | epot = -125.40389945946 | etot = -94.6509494332154 +66000 ekin = 18.5078500027816 | erot = 11.5846652158613 | epot = -125.504956118775 | etot = -95.4124409001317 +67000 ekin = 18.638156151796 | erot = 13.7030208647307 | epot = -125.838860350819 | etot = -93.4976833342926 +68000 ekin = 17.8865475786144 | erot = 12.1697153221337 | epot = -126.27822517768 | etot = -96.2219622769318 +69000 ekin = 17.5219063470627 | erot = 12.4929246770787 | epot = -126.717736182271 | etot = -96.7029051581301 +70000 ekin = 17.5814052632097 | erot = 12.0656944954174 | epot = -127.122334765233 | etot = -97.4752350066057 +71000 ekin = 17.6186651902907 | erot = 11.805625199446 | epot = -127.543345427813 | etot = -98.1190550380765 +72000 ekin = 18.0718508623175 | erot = 9.77749946391409 | epot = -127.989924738645 | etot = -100.140574412413 +73000 ekin = 19.0920485574284 | erot = 10.888821079169 | epot = -128.359908178953 | etot = -98.3790385423553 +74000 ekin = 19.2389264009398 | erot = 11.2795143076653 | epot = -128.562954573251 | etot = -98.0445138646455 +75000 ekin = 19.6112927877196 | erot = 11.317568594913 | epot = -128.661300438151 | etot = -97.7324390555186 +76000 ekin = 19.6492516668936 | erot = 11.1717966410452 | epot = -128.559946485653 | etot = -97.7388981777141 +77000 ekin = 21.1068514097441 | erot = 10.4729843548249 | epot = -128.202251226815 | etot = -96.6224154622463 +78000 ekin = 21.1227025352881 | erot = 10.5460147355503 | epot = -127.582218749235 | etot = -95.9135014783966 +79000 ekin = 21.1634476662608 | erot = 11.412795878689 | epot = -126.699422157225 | etot = -94.123178612275 +80000 ekin = 20.5411068465151 | erot = 9.28280579073373 | epot = -125.813611671359 | etot = -95.9896990341104 +81000 ekin = 20.2127188226421 | erot = 8.68741517076759 | epot = -125.052171926345 | etot = -96.1520379329351 +82000 ekin = 19.5639253627065 | erot = 8.24811185652522 | epot = -124.593340202665 | etot = -96.7813029834335 +83000 ekin = 19.5018897695322 | erot = 9.63479707897837 | epot = -124.407709264664 | etot = -95.2710224161539 +84000 ekin = 19.3027647164262 | erot = 9.42639051222035 | epot = -124.334250370385 | etot = -95.6050951417389 +85000 ekin = 19.0487713310452 | erot = 9.79542315457042 | epot = -124.252398919893 | etot = -95.4082044342771 +86000 ekin = 19.3694172993635 | erot = 11.2986506313883 | epot = -124.198542654273 | etot = -93.5304747235215 +87000 ekin = 18.6713589438551 | erot = 11.5853232812429 | epot = -124.290853730472 | etot = -94.0341715053737 +88000 ekin = 18.5500451464139 | erot = 10.655919965597 | epot = -124.63664155045 | etot = -95.4306764384394 +89000 ekin = 18.3872263818112 | erot = 9.75329564920108 | epot = -125.028859357009 | etot = -96.8883373259966 +90000 ekin = 19.0994515181362 | erot = 11.6206668977449 | epot = -125.599576758451 | etot = -94.87945834257 +91000 ekin = 18.762458694279 | erot = 13.4916962121932 | epot = -126.260965836519 | etot = -94.0068109300465 +92000 ekin = 19.2847330458389 | erot = 14.2203422707944 | epot = -127.023086031573 | etot = -93.5180107149399 +93000 ekin = 19.5504808602138 | erot = 13.2606408217758 | epot = -127.650916011537 | etot = -94.839794329547 +94000 ekin = 19.7629848910551 | erot = 12.7340289593159 | epot = -128.193890026322 | etot = -95.6968761759514 +95000 ekin = 19.5164573312404 | erot = 14.1994672700034 | epot = -128.871597081462 | etot = -95.1556724802185 +96000 ekin = 19.2181154642271 | erot = 15.1758927231988 | epot = -129.560918567207 | etot = -95.1669103797815 +97000 ekin = 19.2828087523966 | erot = 15.748540644312 | epot = -130.239899181154 | etot = -95.208549784446 +98000 ekin = 19.130898096078 | erot = 15.9200598142929 | epot = -130.857091082761 | etot = -95.8061331723896 +99000 ekin = 18.5810737782702 | erot = 17.3321684743508 | epot = -131.447004089924 | etot = -95.5337618373029 +100000 ekin = 18.0800633544481 | erot = 17.7023518077182 | epot = -132.024865631774 | etot = -96.2424504696075 +101000 ekin = 17.5896052041272 | erot = 17.1959075049022 | epot = -132.357834696272 | etot = -97.5723219872429 +102000 ekin = 17.0192077298915 | erot = 18.9771880159657 | epot = -132.313152428828 | etot = -96.3167566829707 +103000 ekin = 16.9032784353035 | erot = 18.5152697805926 | epot = -131.919415232451 | etot = -96.500867016555 +104000 ekin = 16.3450502985469 | erot = 16.4796871078877 | epot = -131.372601946296 | etot = -98.5478645398611 +105000 ekin = 16.0157880251461 | erot = 14.5137387234916 | epot = -130.690178340474 | etot = -100.160651591836 +106000 ekin = 15.2781681840949 | erot = 12.2178930878269 | epot = -130.108516100693 | etot = -102.612454828772 +107000 ekin = 14.6195965363415 | erot = 14.0419438496236 | epot = -129.597025617775 | etot = -100.93548523181 +108000 ekin = 15.1311776564956 | erot = 14.392205366199 | epot = -129.226898397379 | etot = -99.703515374684 +109000 ekin = 14.7526348132911 | erot = 13.3877709003095 | epot = -128.961214437226 | etot = -100.820808723625 +110000 ekin = 14.9215683172472 | erot = 11.1115528281189 | epot = -128.900162697442 | etot = -102.867041552076 +111000 ekin = 15.2178285635409 | erot = 11.5265219530728 | epot = -129.02264735669 | etot = -102.278296840076 +112000 ekin = 15.3540615689254 | erot = 11.0854135027605 | epot = -129.156449565022 | etot = -102.716974493336 +113000 ekin = 15.4065622254168 | erot = 9.93115052586711 | epot = -129.264775093603 | etot = -103.927062342319 +114000 ekin = 15.7255993115367 | erot = 11.1268632736623 | epot = -129.296474102219 | etot = -102.44401151702 +115000 ekin = 15.2547531671349 | erot = 11.6530061146701 | epot = -129.424954691359 | etot = -102.517195409554 +116000 ekin = 15.5019695068328 | erot = 11.8342564956936 | epot = -129.611475879022 | etot = -102.275249876496 +117000 ekin = 15.7229455518224 | erot = 12.8683161616472 | epot = -129.846111796993 | etot = -101.254850083523 +118000 ekin = 15.9368151241017 | erot = 12.3779048180477 | epot = -130.050496350427 | etot = -101.735776408277 +119000 ekin = 17.361257323721 | erot = 11.8518613557714 | epot = -130.196521073721 | etot = -100.983402394229 +120000 ekin = 17.5338424127199 | erot = 11.9133772725297 | epot = -130.267749385737 | etot = -100.820529700487 +121000 ekin = 18.1732043783987 | erot = 12.8282861983004 | epot = -130.286986417184 | etot = -99.2854958404852 +122000 ekin = 18.0099423653346 | erot = 12.4654600731294 | epot = -130.383884542817 | etot = -99.9084821043533 +123000 ekin = 17.8506031517267 | erot = 10.5503100490201 | epot = -130.596614601186 | etot = -102.195701400439 +124000 ekin = 17.6710243181817 | erot = 11.7129267154528 | epot = -130.763489485464 | etot = -101.379538451829 +125000 ekin = 17.7891709571639 | erot = 9.81386685043019 | epot = -130.931886974658 | etot = -103.328849167064 +126000 ekin = 17.8350392396833 | erot = 10.4705584397578 | epot = -131.222622366146 | etot = -102.917024686705 +127000 ekin = 18.1416438253932 | erot = 11.0182198075673 | epot = -131.446798072859 | etot = -102.286934439898 +128000 ekin = 18.8582437184471 | erot = 11.8401049533331 | epot = -131.795067249695 | etot = -101.096718577915 +129000 ekin = 18.8650300802711 | erot = 11.7918190138826 | epot = -132.119265989036 | etot = -101.462416894882 +130000 ekin = 18.4257823677809 | erot = 15.0299466324866 | epot = -132.288573044193 | etot = -98.8328440439252 +131000 ekin = 18.1437894207897 | erot = 16.5103668803409 | epot = -132.315884341679 | etot = -97.6617280405481 +132000 ekin = 17.7512583058201 | erot = 15.4247935235789 | epot = -132.043801623743 | etot = -98.8677497943437 +133000 ekin = 18.084680831884 | erot = 14.8524353891271 | epot = -131.387672978511 | etot = -98.4505567574995 +134000 ekin = 17.7192111747964 | erot = 13.5884229143348 | epot = -130.583041739003 | etot = -99.275407649872 +135000 ekin = 17.7536873750666 | erot = 14.0982927325614 | epot = -129.714512834768 | etot = -97.8625327271396 +136000 ekin = 18.2509212913219 | erot = 11.0266206273164 | epot = -128.826275668783 | etot = -99.5487337501442 +137000 ekin = 18.0888537517195 | erot = 10.6764813782231 | epot = -128.070491805314 | etot = -99.3051566753711 +138000 ekin = 17.7812261279265 | erot = 11.6465856631146 | epot = -127.390489385666 | etot = -97.9626775946245 +139000 ekin = 17.9170079781834 | erot = 10.4529474308984 | epot = -126.842446381848 | etot = -98.4724909727663 +140000 ekin = 17.7773492411915 | erot = 9.25494565223195 | epot = -126.432310441117 | etot = -99.4000155476936 +141000 ekin = 17.1244425096873 | erot = 9.65549785466578 | epot = -126.141777730543 | etot = -99.3618373661899 +142000 ekin = 16.5201701593962 | erot = 10.8998964099815 | epot = -125.940729957089 | etot = -98.5206633877113 +143000 ekin = 15.8857666561186 | erot = 10.1784670365893 | epot = -125.90698471032 | etot = -99.8427510176117 +144000 ekin = 15.7565411168065 | erot = 12.047444203328 | epot = -126.125108036528 | etot = -98.321122716393 +145000 ekin = 15.3969621946866 | erot = 13.9459354390538 | epot = -126.373024296495 | etot = -97.030126662755 +146000 ekin = 15.4725607727619 | erot = 14.2570317429904 | epot = -126.498863796023 | etot = -96.7692712802706 +147000 ekin = 15.3450693776366 | erot = 15.6232442146574 | epot = -126.412342603372 | etot = -95.4440290110776 +148000 ekin = 15.8954626715371 | erot = 15.7885966481124 | epot = -126.133296825904 | etot = -94.449237506254 +149000 ekin = 15.5447736469062 | erot = 13.3783461269004 | epot = -125.798608325168 | etot = -96.8754885513612 +150000 ekin = 15.1495805797146 | erot = 13.6429758807529 | epot = -125.407317668973 | etot = -96.6147612085054 +151000 ekin = 15.1616652247071 | erot = 14.0598975281373 | epot = -125.035002166702 | etot = -95.813439413858 +152000 ekin = 15.3091686685073 | erot = 14.4869353531681 | epot = -124.697020998762 | etot = -94.9009169770863 +153000 ekin = 14.9857966418998 | erot = 14.2639845699339 | epot = -124.429194085149 | etot = -95.179412873315 +154000 ekin = 15.2871304577002 | erot = 15.2408560259889 | epot = -124.13138567458 | etot = -93.6033991908905 +155000 ekin = 15.1935902329344 | erot = 16.5332537474993 | epot = -123.717148957551 | etot = -91.9903049771177 +156000 ekin = 14.9318980548606 | erot = 16.9585676917368 | epot = -123.312319455018 | etot = -91.4218537084203 +157000 ekin = 14.9239819478168 | erot = 16.3436933974605 | epot = -122.821468736538 | etot = -91.5537933912602 +158000 ekin = 14.6896340711936 | erot = 16.2520546181314 | epot = -121.560992897385 | etot = -90.6193042080597 +159000 ekin = 14.380371095523 | erot = 17.248314924081 | epot = -121.467420388953 | etot = -89.8387343693487 +160000 ekin = 14.5875486089083 | erot = 17.5905809234816 | epot = -122.699020677454 | etot = -90.5208911450643 +161000 ekin = 14.8276227126018 | erot = 18.3926246794873 | epot = -123.566242857825 | etot = -90.3459954657364 +162000 ekin = 15.6936272173714 | erot = 16.9816508210412 | epot = -124.054848993562 | etot = -91.3795709551497 +163000 ekin = 16.2263820836142 | erot = 17.6245213122907 | epot = -124.736300977309 | etot = -90.8853975814038 +164000 ekin = 17.0093157816188 | erot = 16.6796461814173 | epot = -125.568419886304 | etot = -91.8794579232682 +165000 ekin = 18.009720026184 | erot = 15.3539812192405 | epot = -126.49931452143 | etot = -93.1356132760057 +166000 ekin = 18.8470150492957 | erot = 15.1046721419971 | epot = -127.429741849845 | etot = -93.4780546585521 +167000 ekin = 19.5642890442739 | erot = 15.8598331039342 | epot = -128.291297852841 | etot = -92.8671757046329 +168000 ekin = 19.6862039573375 | erot = 15.8349840859769 | epot = -129.140703889381 | etot = -93.6195158460662 +169000 ekin = 20.6945323087269 | erot = 13.4325872410556 | epot = -129.822388484466 | etot = -95.6952689346837 +170000 ekin = 22.0647526260469 | erot = 12.8942633681097 | epot = -130.419864694263 | etot = -95.4608487001065 +171000 ekin = 22.943639339366 | erot = 11.1816601087484 | epot = -130.898425026419 | etot = -96.7731255783043 +172000 ekin = 23.5487360086972 | erot = 11.709116260819 | epot = -131.153087196089 | etot = -95.8952349265727 +173000 ekin = 23.3892857905513 | erot = 12.7557214142903 | epot = -131.135342861095 | etot = -94.9903356562537 +174000 ekin = 23.35018573525 | erot = 12.8363501231957 | epot = -130.945667676559 | etot = -94.7591318181137 +175000 ekin = 23.3884404339159 | erot = 10.8122258111237 | epot = -130.472641840404 | etot = -96.2719755953642 +176000 ekin = 21.5597457312898 | erot = 10.0374200559152 | epot = -129.874726714678 | etot = -98.2775609274735 +177000 ekin = 20.4815949162203 | erot = 8.99167759948274 | epot = -129.080278974767 | etot = -99.6070064590639 +178000 ekin = 19.6247383858513 | erot = 9.22106961945735 | epot = -128.257986703796 | etot = -99.4121786984872 +179000 ekin = 18.7995820087584 | erot = 10.9357566605628 | epot = -127.480693192329 | etot = -97.7453545230082 +180000 ekin = 18.5383318996741 | erot = 11.695380571584 | epot = -126.758025790561 | etot = -96.5243133193033 +181000 ekin = 17.0447803103657 | erot = 11.8007631437052 | epot = -126.226072012177 | etot = -97.380528558106 +182000 ekin = 16.2894526949276 | erot = 12.416164133038 | epot = -125.887179385862 | etot = -97.1815625578969 +183000 ekin = 16.6080309265792 | erot = 12.8149523345473 | epot = -125.615950231218 | etot = -96.1929669700911 +184000 ekin = 16.3744299525237 | erot = 12.9694537390341 | epot = -125.446432769611 | etot = -96.102549078053 +185000 ekin = 16.1680663279096 | erot = 14.4956894838547 | epot = -125.517482617703 | etot = -94.8537268059389 +186000 ekin = 16.1257587462836 | erot = 15.1875842076049 | epot = -125.659427603794 | etot = -94.3460846499053 +187000 ekin = 16.0397295413223 | erot = 14.4670724430242 | epot = -125.995193074143 | etot = -95.488391089796 +188000 ekin = 15.6899836100949 | erot = 14.7638277675767 | epot = -126.425523467655 | etot = -95.9717120899832 +189000 ekin = 15.0625500409891 | erot = 14.1154735980193 | epot = -126.846152752696 | etot = -97.6681291136872 +190000 ekin = 15.2069054588956 | erot = 14.6859243902427 | epot = -127.433541853514 | etot = -97.5407120043753 +191000 ekin = 15.6740546561506 | erot = 15.9626651851846 | epot = -127.896978550165 | etot = -96.2602587088297 +192000 ekin = 15.4318280527709 | erot = 18.1353702097593 | epot = -128.302111852112 | etot = -94.734913589582 +193000 ekin = 15.3469995573318 | erot = 17.7766470416487 | epot = -128.618975597814 | etot = -95.495328998834 +194000 ekin = 15.2104506233857 | erot = 21.0799824470635 | epot = -128.783338748985 | etot = -92.4929056785358 +195000 ekin = 14.1287522348466 | erot = 23.1619754781382 | epot = -128.29289851349 | etot = -91.0021708005055 +196000 ekin = 13.3885368132018 | erot = 23.1979147136361 | epot = -127.741537167645 | etot = -91.1550856408074 +197000 ekin = 12.4059689641546 | erot = 22.2524136408538 | epot = -127.509097138024 | etot = -92.8507145330151 +198000 ekin = 11.8921374835096 | erot = 19.781728200708 | epot = -127.037889310497 | etot = -95.3640236262798 +199000 ekin = 11.2532240659878 | erot = 18.2188688915955 | epot = -126.340308303153 | etot = -96.8682153455699 +200000 ekin = 11.0987340347435 | erot = 18.60818019739 | epot = -125.85420630367 | etot = -96.1472920715361 +201000 ekin = 11.7489357164156 | erot = 15.281688246823 | epot = -125.682140321791 | etot = -98.6515163585526 +202000 ekin = 11.7145445879392 | erot = 15.0356903466778 | epot = -125.740023875244 | etot = -98.9897889406272 +203000 ekin = 12.0903488366362 | erot = 14.3345717011572 | epot = -126.048866274682 | etot = -99.6239457368885 +204000 ekin = 12.4417683268483 | erot = 14.3229870520558 | epot = -126.529965825482 | etot = -99.7652104465778 +205000 ekin = 13.1698814591864 | erot = 14.6415169346515 | epot = -127.124165984413 | etot = -99.3127675905754 +206000 ekin = 13.8723804085583 | erot = 14.5686570177801 | epot = -127.751024041401 | etot = -99.3099866150631 +207000 ekin = 14.3112273566462 | erot = 13.070167910606 | epot = -128.541344802635 | etot = -101.159949535383 +208000 ekin = 15.16434371668 | erot = 12.0476689292267 | epot = -129.396845246345 | etot = -102.184832600439 +209000 ekin = 15.7182214267953 | erot = 11.9792376393735 | epot = -130.439256642704 | etot = -102.741797576535 +210000 ekin = 16.8116032305538 | erot = 12.8318158803216 | epot = -131.566184333306 | etot = -101.922765222431 +211000 ekin = 17.0286682860339 | erot = 11.9299987181453 | epot = -132.706776286311 | etot = -103.748109282131 +212000 ekin = 17.495092644444 | erot = 13.0542600963912 | epot = -133.734529445312 | etot = -103.185176704477 +213000 ekin = 18.1544022312138 | erot = 12.9214683681872 | epot = -134.668238718993 | etot = -103.592368119592 +214000 ekin = 18.944441841757 | erot = 11.5204669980782 | epot = -135.37166723116 | etot = -104.906758391324 +215000 ekin = 19.2678390020627 | erot = 11.3933718971404 | epot = -135.757866327845 | etot = -105.096655428642 +216000 ekin = 19.2698399527749 | erot = 11.134292164478 | epot = -135.978508576259 | etot = -105.574376459006 +217000 ekin = 19.6693699034603 | erot = 11.8996645917077 | epot = -136.066555103325 | etot = -104.497520608157 +218000 ekin = 19.6558025470516 | erot = 11.6982321377416 | epot = -136.00830488635 | etot = -104.654270201556 +219000 ekin = 19.2866150818585 | erot = 11.5958256376614 | epot = -135.986480868354 | etot = -105.104040148834 +220000 ekin = 19.0299200086328 | erot = 12.7877825940592 | epot = -136.003862431597 | etot = -104.186159828905 +221000 ekin = 18.3887352106328 | erot = 14.0162126644684 | epot = -135.884700146083 | etot = -103.479752270982 +222000 ekin = 17.8182271656908 | erot = 13.3669574260086 | epot = -135.679482053355 | etot = -104.494297461656 +223000 ekin = 17.5268503521898 | erot = 14.6122101838067 | epot = -135.382982684107 | etot = -103.243922148111 +224000 ekin = 17.0683929815185 | erot = 14.6347025849537 | epot = -135.233315947347 | etot = -103.530220380875 +225000 ekin = 17.0633907591624 | erot = 15.7710716167764 | epot = -135.38637693405 | etot = -102.551914558111 +226000 ekin = 16.7787690680764 | erot = 15.7986947056439 | epot = -135.879311388113 | etot = -103.301847614393 +227000 ekin = 16.463912634538 | erot = 15.0990454188237 | epot = -136.352660528608 | etot = -104.789702475246 +228000 ekin = 16.6277811962492 | erot = 14.1044610323435 | epot = -136.763704119537 | etot = -106.031461890944 +229000 ekin = 16.270302581487 | erot = 14.1131098254062 | epot = -136.971116618175 | etot = -106.587704211282 +230000 ekin = 16.2889568947664 | erot = 13.542272603068 | epot = -136.891243624268 | etot = -107.060014126434 +231000 ekin = 16.5868050722652 | erot = 15.2600761973021 | epot = -136.529850670182 | etot = -104.682969400615 +232000 ekin = 16.1288630231825 | erot = 13.1674679001409 | epot = -135.937232830953 | etot = -106.64090190763 +233000 ekin = 15.7857630558791 | erot = 12.5300334624789 | epot = -135.216925627261 | etot = -106.901129108903 +234000 ekin = 15.6125198960089 | erot = 11.2806230486724 | epot = -134.434273419247 | etot = -107.541130474566 +235000 ekin = 15.4569759849517 | erot = 10.8081368630456 | epot = -133.869202645129 | etot = -107.604089797131 +236000 ekin = 14.9820807386331 | erot = 11.1823386784929 | epot = -133.297958923831 | etot = -107.133539506705 +237000 ekin = 14.8216786424466 | erot = 11.2471885188066 | epot = -132.595601448487 | etot = -106.526734287234 +238000 ekin = 14.6706220188174 | erot = 10.1140644021516 | epot = -132.065646431795 | etot = -107.280960010826 +239000 ekin = 14.4348056512931 | erot = 10.1432117067704 | epot = -131.917610583546 | etot = -107.339593225483 +240000 ekin = 14.1316519601016 | erot = 11.8496406962971 | epot = -132.004580752914 | etot = -106.023288096515 +241000 ekin = 14.1719234313466 | erot = 13.8094321611479 | epot = -132.248478579103 | etot = -104.267122986608 +242000 ekin = 14.4067409199113 | erot = 15.2208382789827 | epot = -132.237557462079 | etot = -102.609978263185 +243000 ekin = 13.9001228129608 | erot = 16.4885549233189 | epot = -132.327253958718 | etot = -101.938576222438 +244000 ekin = 14.2124604518254 | erot = 16.3580145393041 | epot = -133.265138084389 | etot = -102.694663093259 +245000 ekin = 13.9391457137868 | erot = 15.7114912432817 | epot = -134.162723777585 | etot = -104.512086820517 +246000 ekin = 13.4634980405893 | erot = 14.8529525187265 | epot = -134.759599084005 | etot = -106.443148524689 +247000 ekin = 13.1394657389663 | erot = 14.9809346189963 | epot = -135.270170814713 | etot = -107.14977045675 +248000 ekin = 12.5974089965367 | erot = 14.1968470998346 | epot = -135.720205164949 | etot = -108.925949068578 +249000 ekin = 13.0079405446737 | erot = 12.6478010567203 | epot = -135.976059745644 | etot = -110.32031814425 +250000 ekin = 11.9665436270665 | erot = 12.7394906885837 | epot = -135.911451138462 | etot = -111.205416822812 +251000 ekin = 11.9761911331982 | erot = 12.8355549179859 | epot = -135.648387424505 | etot = -110.836641373321 +252000 ekin = 12.2240250409318 | erot = 12.5494470999045 | epot = -135.429112694318 | etot = -110.655640553482 +253000 ekin = 11.7586948220616 | erot = 15.2823123339394 | epot = -135.224481555101 | etot = -108.1834743991 +254000 ekin = 11.3311374059083 | erot = 16.4795694427141 | epot = -135.040669148792 | etot = -107.22996230017 +255000 ekin = 11.471231769472 | erot = 16.8299610794708 | epot = -134.929906170188 | etot = -106.628713321245 +256000 ekin = 11.2441754010408 | erot = 14.2749475233363 | epot = -134.76558967984 | etot = -109.246466755463 +257000 ekin = 11.273914355832 | erot = 14.7441264905457 | epot = -134.63597018422 | etot = -108.617929337842 +258000 ekin = 12.128649316714 | erot = 12.3006544166916 | epot = -134.51238338776 | etot = -110.083079654355 +259000 ekin = 12.4162486986459 | erot = 11.8189831631872 | epot = -134.489054265492 | etot = -110.253822403659 +260000 ekin = 12.8516754908381 | erot = 11.497953565895 | epot = -134.553471186685 | etot = -110.203842129952 +261000 ekin = 13.0343910888837 | erot = 10.7691862375377 | epot = -134.729318840158 | etot = -110.925741513736 +262000 ekin = 14.2874948463721 | erot = 10.5582220873925 | epot = -134.990907586225 | etot = -110.145190652461 +263000 ekin = 15.0019927116376 | erot = 10.4048010965419 | epot = -135.379108178799 | etot = -109.972314370619 +264000 ekin = 15.5826861643349 | erot = 10.2546388876574 | epot = -135.848998441352 | etot = -110.01167338936 +265000 ekin = 16.0874701006427 | erot = 10.3511427583311 | epot = -136.380262211566 | etot = -109.941649352592 +266000 ekin = 16.3003073067596 | erot = 11.9373544401253 | epot = -137.009363532579 | etot = -108.771701785694 +267000 ekin = 17.2219404130253 | erot = 12.1424398852432 | epot = -137.561511974844 | etot = -108.197131676575 +268000 ekin = 17.2009756929593 | erot = 14.2660931214315 | epot = -138.134066507026 | etot = -106.666997692635 +269000 ekin = 17.5332603165065 | erot = 14.7566713792615 | epot = -138.587695425486 | etot = -106.297763729718 +270000 ekin = 18.8972170404745 | erot = 14.5838354068123 | epot = -138.68266462674 | etot = -105.201612179454 +271000 ekin = 19.2798632826061 | erot = 13.2959771096333 | epot = -138.517048226924 | etot = -105.941207834685 +272000 ekin = 19.4328171307553 | erot = 13.5758888534677 | epot = -138.17513356012 | etot = -105.166427575897 +273000 ekin = 19.8597451581877 | erot = 13.9959767402809 | epot = -137.648904040346 | etot = -103.793182141877 +274000 ekin = 18.6820893610573 | erot = 13.6482586162615 | epot = -136.938179869851 | etot = -104.607831892532 +275000 ekin = 18.2660791421053 | erot = 12.2609583978932 | epot = -136.164087116334 | etot = -105.637049576335 +276000 ekin = 17.9004867505407 | erot = 14.3974247752901 | epot = -135.325508183154 | etot = -103.027596657323 +277000 ekin = 17.2269955060707 | erot = 15.3022411244147 | epot = -134.486514748267 | etot = -101.957278117782 +278000 ekin = 16.6892354000126 | erot = 14.5893321464561 | epot = -133.733094918947 | etot = -102.454527372478 +279000 ekin = 15.6192008320367 | erot = 13.9737522271236 | epot = -133.065353125456 | etot = -103.472400066296 +280000 ekin = 15.8029815632486 | erot = 14.2001632540758 | epot = -132.421240721495 | etot = -102.41809590417 +281000 ekin = 15.2607705885714 | erot = 12.7607691318965 | epot = -132.022771567729 | etot = -104.001231847261 +282000 ekin = 14.7197627172706 | erot = 12.4260243382723 | epot = -131.782153922758 | etot = -104.636366867215 +283000 ekin = 14.5696242094015 | erot = 11.213371151963 | epot = -131.556720370679 | etot = -105.773725009314 +284000 ekin = 14.2731206049614 | erot = 12.8148966990646 | epot = -131.490239296031 | etot = -104.402221992005 +285000 ekin = 14.2892073777173 | erot = 15.322726695954 | epot = -131.681469234421 | etot = -102.06953516075 +286000 ekin = 14.5295816614891 | erot = 16.9482844272975 | epot = -131.994346482577 | etot = -100.51648039379 +287000 ekin = 13.8119183806608 | erot = 16.9734747395549 | epot = -132.26255120614 | etot = -101.477158085924 +288000 ekin = 13.5104518538994 | erot = 19.15601872209 | epot = -132.571143919699 | etot = -99.9046733437092 +289000 ekin = 13.6879789079896 | erot = 18.5577865527907 | epot = -132.871664328362 | etot = -100.625898867581 +290000 ekin = 13.2976555696433 | erot = 17.1112459528925 | epot = -133.02645983522 | etot = -102.617558312684 +291000 ekin = 13.2211085618527 | erot = 16.1729195781472 | epot = -133.185234708 | etot = -103.791206568 +292000 ekin = 13.1947483461643 | erot = 16.0723910787646 | epot = -133.433270238445 | etot = -104.166130813516 +293000 ekin = 13.2996269037799 | erot = 15.5125592618921 | epot = -133.745707778566 | etot = -104.933521612894 +294000 ekin = 13.4921147160859 | erot = 18.0876895403391 | epot = -133.943082964024 | etot = -102.363278707599 +295000 ekin = 13.6001244303235 | erot = 17.1026862565064 | epot = -134.076076149791 | etot = -103.373265462961 +296000 ekin = 13.4976604407178 | erot = 16.6010516378414 | epot = -134.210092447971 | etot = -104.111380369412 +297000 ekin = 13.9415075561874 | erot = 17.7972728397637 | epot = -134.247712961306 | etot = -102.508932565355 +298000 ekin = 14.1780029375634 | erot = 17.0511963270014 | epot = -134.168924033823 | etot = -102.939724769258 +299000 ekin = 13.8361564139329 | erot = 16.0669521975166 | epot = -134.068492310082 | etot = -104.165383698632 +300000 ekin = 13.7326437681577 | erot = 16.2729547114218 | epot = -133.890944289642 | etot = -103.885345810063 +301000 ekin = 13.7141690556675 | erot = 15.5483729893138 | epot = -133.599370882051 | etot = -104.33682883707 +302000 ekin = 13.8016066958289 | erot = 15.936856523607 | epot = -133.240558832336 | etot = -103.5020956129 +303000 ekin = 14.3450581683325 | erot = 14.3991837835363 | epot = -132.841355292688 | etot = -104.097113340819 +304000 ekin = 14.0432433747207 | erot = 12.2471441381921 | epot = -132.411991934279 | etot = -106.121604421366 +305000 ekin = 13.7451663687168 | erot = 11.8055396154173 | epot = -132.136089702987 | etot = -106.585383718852 +306000 ekin = 13.8602855535103 | erot = 11.2975987457346 | epot = -132.01332305383 | etot = -106.855438754585 +307000 ekin = 14.3933488058418 | erot = 11.4125898833739 | epot = -132.076988534469 | etot = -106.271049845253 +308000 ekin = 14.5877929349634 | erot = 13.7844635852125 | epot = -132.379943681766 | etot = -104.00768716159 +309000 ekin = 14.6468860318721 | erot = 12.8855238046447 | epot = -132.790482577119 | etot = -105.258072740602 +310000 ekin = 15.392372494004 | erot = 14.5395261933749 | epot = -133.139957738231 | etot = -103.208059050852 +311000 ekin = 15.0800623659564 | erot = 16.4619620929048 | epot = -133.366197656559 | etot = -101.824173197698 +312000 ekin = 15.0612640553335 | erot = 17.7716663024468 | epot = -133.463157250145 | etot = -100.630226892364 +313000 ekin = 15.0496012548364 | erot = 16.7171000278227 | epot = -133.572818737683 | etot = -101.806117455024 +314000 ekin = 15.8034899506749 | erot = 16.0925639210479 | epot = -133.470644690524 | etot = -101.574590818801 +315000 ekin = 16.366489345922 | erot = 15.8790190903233 | epot = -133.301536278224 | etot = -101.056027841979 +316000 ekin = 16.8909929849972 | erot = 15.9984636306728 | epot = -132.972647290534 | etot = -100.083190674864 +317000 ekin = 17.785292167189 | erot = 14.9039641317449 | epot = -132.500917675508 | etot = -99.8116613765746 +318000 ekin = 17.5993880908146 | erot = 14.6914071194506 | epot = -132.115571579264 | etot = -99.8247763689988 +319000 ekin = 17.8599367754211 | erot = 14.1353188496931 | epot = -131.708173655537 | etot = -99.712918030423 +320000 ekin = 18.6581032066137 | erot = 13.4331705144337 | epot = -131.273397749098 | etot = -99.1821240280507 +321000 ekin = 19.1474562630728 | erot = 12.1110703081368 | epot = -131.035243134479 | etot = -99.7767165632692 +322000 ekin = 19.8508860282636 | erot = 13.9599076713822 | epot = -131.017079844699 | etot = -97.2062861450529 +323000 ekin = 20.3434128121834 | erot = 14.5284558532583 | epot = -131.242060167605 | etot = -96.370191502163 +324000 ekin = 21.6816363054614 | erot = 11.6094198187815 | epot = -131.687828885057 | etot = -98.3967727608138 +325000 ekin = 21.7556398119963 | erot = 10.9492045533556 | epot = -132.111190356534 | etot = -99.406345991182 +326000 ekin = 22.6473350093869 | erot = 9.57702095551454 | epot = -132.448821068116 | etot = -100.224465103215 +327000 ekin = 22.9547512120162 | erot = 11.0621417409188 | epot = -132.862102217055 | etot = -98.8452092641196 +328000 ekin = 23.5737808038549 | erot = 12.6984438571557 | epot = -133.193143240814 | etot = -96.9209185798029 +329000 ekin = 23.6352335154599 | erot = 12.2956706764736 | epot = -133.395236559297 | etot = -97.4643323673633 +330000 ekin = 23.8391520228329 | erot = 12.0370047788423 | epot = -133.345382913248 | etot = -97.4692261115726 +331000 ekin = 22.8959913619489 | erot = 11.30846430113 | epot = -133.020506291975 | etot = -98.8160506288956 +332000 ekin = 21.8204000909394 | erot = 14.2756313662232 | epot = -132.689351486946 | etot = -96.5933200297831 +333000 ekin = 21.0106478016265 | erot = 13.1455024021325 | epot = -132.253491783917 | etot = -98.0973415801577 +334000 ekin = 19.9217218385571 | erot = 14.091018178305 | epot = -131.971215207996 | etot = -97.9584751911336 +335000 ekin = 19.2873748500285 | erot = 15.3215860418359 | epot = -131.85819529049 | etot = -97.2492343986257 +336000 ekin = 18.7678345301193 | erot = 16.4869510658781 | epot = -131.844352238269 | etot = -96.589566642272 +337000 ekin = 17.6131282411972 | erot = 20.227892880872 | epot = -132.091380721362 | etot = -94.2503595992928 +338000 ekin = 16.5316565058049 | erot = 20.19667842932 | epot = -132.359487287499 | etot = -95.631152352374 +339000 ekin = 15.3093289418818 | erot = 20.0585909980764 | epot = -132.598946045035 | etot = -97.2310261050771 +340000 ekin = 15.1702759209444 | erot = 19.0125223540299 | epot = -132.757880960711 | etot = -98.5750826857363 +341000 ekin = 14.6984201961113 | erot = 19.2973194359688 | epot = -132.768022329401 | etot = -98.7722826973214 +342000 ekin = 14.419185060618 | erot = 18.4871375877433 | epot = -132.715486658902 | etot = -99.8091640105411 +343000 ekin = 14.2510678270355 | erot = 17.8837836084501 | epot = -132.715877324812 | etot = -100.581025889327 +344000 ekin = 14.3088347204905 | erot = 18.3281706547507 | epot = -132.541230881633 | etot = -99.9042255063921 +345000 ekin = 14.7729752840168 | erot = 17.9928124874577 | epot = -132.203322556083 | etot = -99.4375347846084 +346000 ekin = 14.4478987349512 | erot = 14.8603324121466 | epot = -131.791226187862 | etot = -102.482995040764 +347000 ekin = 14.9495411968808 | erot = 15.0531306904129 | epot = -131.581664356582 | etot = -101.578992469288 +348000 ekin = 14.9106344526996 | erot = 16.3222170851953 | epot = -131.315204523293 | etot = -100.082352985399 +349000 ekin = 15.5640705164731 | erot = 16.6567998125757 | epot = -131.03580673161 | etot = -98.8149364025609 +350000 ekin = 15.3525255344555 | erot = 17.1589173845544 | epot = -130.684885383684 | etot = -98.1734424646738 +351000 ekin = 15.5604423853952 | erot = 14.7449001424502 | epot = -130.577479343389 | etot = -100.272136815543 +352000 ekin = 16.0213916155565 | erot = 12.9283234241451 | epot = -130.520782488219 | etot = -101.571067448518 +353000 ekin = 16.2706611268026 | erot = 13.2135527584764 | epot = -130.531272204218 | etot = -101.047058318939 +354000 ekin = 16.7551971771748 | erot = 13.6739898513455 | epot = -130.713465602543 | etot = -100.284278574022 +355000 ekin = 16.8761517885112 | erot = 13.3482375555154 | epot = -131.00169518562 | etot = -100.777305841594 +356000 ekin = 17.6119715794083 | erot = 13.1534547245203 | epot = -131.381977701561 | etot = -100.616551397633 +357000 ekin = 17.9212807392641 | erot = 14.278695302262 | epot = -131.779026398909 | etot = -99.5790503573828 +358000 ekin = 18.7258104781707 | erot = 16.7912517283134 | epot = -132.311439028535 | etot = -96.7943768220511 +359000 ekin = 19.3732736670771 | erot = 17.2739539863543 | epot = -132.879438461778 | etot = -96.2322108083466 +360000 ekin = 19.6464373761355 | erot = 16.0634856117012 | epot = -133.434958740234 | etot = -97.7250357523969 +361000 ekin = 19.7822067135547 | erot = 18.3661629834882 | epot = -133.446226940954 | etot = -95.2978572439108 +362000 ekin = 19.2258029988226 | erot = 17.5528372322332 | epot = -132.301193434443 | etot = -95.5225532033868 +363000 ekin = 19.7930261365336 | erot = 16.9646071251481 | epot = -131.995469208061 | etot = -95.2378359463791 +364000 ekin = 20.6366833282949 | erot = 18.9139523531674 | epot = -132.891077360108 | etot = -93.3404416786456 +365000 ekin = 20.3689030819221 | erot = 17.5903344904057 | epot = -132.578147300574 | etot = -94.6189097282457 +366000 ekin = 19.6055112959891 | erot = 15.9901011051967 | epot = -131.691955629683 | etot = -96.0963432284971 +367000 ekin = 18.6692190631214 | erot = 13.8437371590621 | epot = -130.921138953502 | etot = -98.4081827313182 +368000 ekin = 18.219068783416 | erot = 14.8529187740073 | epot = -130.504389467515 | etot = -97.4324019100922 +369000 ekin = 17.7629678423308 | erot = 12.4989887874946 | epot = -130.274191179522 | etot = -100.012234549696 +370000 ekin = 17.0650223978097 | erot = 13.5821596836016 | epot = -130.335687313643 | etot = -99.6885052322315 +371000 ekin = 16.7913745722517 | erot = 14.9629741940435 | epot = -130.32282870869 | etot = -98.5684799423952 +372000 ekin = 17.2307270306248 | erot = 12.9911617978282 | epot = -130.236933986417 | etot = -100.015045157964 +373000 ekin = 17.0304402846253 | erot = 13.2707537504999 | epot = -130.100796264889 | etot = -99.7996022297637 +374000 ekin = 16.0415595056889 | erot = 15.1803442269075 | epot = -129.972987311626 | etot = -98.7510835790299 +375000 ekin = 15.8176192185438 | erot = 16.9883413755264 | epot = -129.944912466272 | etot = -97.1389518722015 +376000 ekin = 15.2903747494021 | erot = 18.8068775560055 | epot = -129.965681757382 | etot = -95.8684294519739 +377000 ekin = 14.995947034047 | erot = 19.9472899539892 | epot = -129.829932831079 | etot = -94.8866958430433 +378000 ekin = 14.2959318558334 | erot = 18.7668035961228 | epot = -129.592844878311 | etot = -96.5301094263543 +379000 ekin = 13.857355471346 | erot = 17.5724093346652 | epot = -129.233821228828 | etot = -97.8040564228168 +380000 ekin = 12.8275218506783 | erot = 20.5046758847232 | epot = -128.789730014376 | etot = -95.4575322789749 +381000 ekin = 12.735162884832 | erot = 18.5613197500517 | epot = -128.390040910682 | etot = -97.0935582757987 +382000 ekin = 12.2452890160443 | erot = 20.564638156725 | epot = -128.030645015804 | etot = -95.2207178430346 +383000 ekin = 12.1080018787289 | erot = 20.1999409855048 | epot = -127.678397123719 | etot = -95.3704542594853 +384000 ekin = 11.6435047444796 | erot = 20.0195379904968 | epot = -127.335918040772 | etot = -95.6728753057953 +385000 ekin = 11.6405112732186 | erot = 19.0845996443496 | epot = -127.124973960441 | etot = -96.3998630428725 +386000 ekin = 12.1338227535956 | erot = 15.7029155804283 | epot = -127.099493323699 | etot = -99.2627549896752 +387000 ekin = 12.4448216572665 | erot = 15.9527401483909 | epot = -127.113713274559 | etot = -98.716151468902 +388000 ekin = 12.5477526743772 | erot = 15.7264339561621 | epot = -127.302269285959 | etot = -99.0280826554199 +389000 ekin = 12.7365761628926 | erot = 14.8999554020062 | epot = -127.586298095577 | etot = -99.9497665306781 +390000 ekin = 13.2018526541373 | erot = 15.5840879369083 | epot = -127.936145623289 | etot = -99.1502050322436 +391000 ekin = 13.7630478535849 | erot = 14.4376541638023 | epot = -128.303860720027 | etot = -100.103158702639 +392000 ekin = 13.7713771450355 | erot = 13.5356578275445 | epot = -128.58812747767 | etot = -101.28109250509 +393000 ekin = 14.5177182396087 | erot = 13.0863011788344 | epot = -128.867722321476 | etot = -101.263702903033 +394000 ekin = 14.7950835380052 | erot = 11.7665006681664 | epot = -129.02765872441 | etot = -102.466074518239 +395000 ekin = 15.3250550913504 | erot = 11.5930851190037 | epot = -129.381911781199 | etot = -102.463771570845 +396000 ekin = 15.7274830034877 | erot = 12.8428669141979 | epot = -129.670501062476 | etot = -101.100151144791 +397000 ekin = 15.9336057344419 | erot = 12.5423981572936 | epot = -129.882143644775 | etot = -101.40613975304 +398000 ekin = 16.1902642375988 | erot = 13.5464129112161 | epot = -129.92961516752 | etot = -100.192938018705 +399000 ekin = 16.3325461362548 | erot = 11.8125267837203 | epot = -129.86635331385 | etot = -101.721280393875 +400000 ekin = 16.2371759156548 | erot = 10.688472264068 | epot = -129.645266211183 | etot = -102.71961803146 +401000 ekin = 15.9596433115687 | erot = 10.7690637950704 | epot = -129.351599210472 | etot = -102.622892103833 +402000 ekin = 15.8915589358765 | erot = 11.8717442427545 | epot = -128.863730745308 | etot = -101.100427566677 +403000 ekin = 16.1787980975133 | erot = 11.9524066979189 | epot = -128.349870546345 | etot = -100.218665750913 +404000 ekin = 16.2559042324474 | erot = 11.7923315153145 | epot = -127.721941645185 | etot = -99.6737058974226 +405000 ekin = 15.8297631258515 | erot = 11.5147712902976 | epot = -127.044284217556 | etot = -99.6997498014074 +406000 ekin = 15.5346343103188 | erot = 10.5094970219731 | epot = -126.338765848855 | etot = -100.294634516563 +407000 ekin = 14.7958112110859 | erot = 11.3095257330351 | epot = -125.613350484068 | etot = -99.5080135399471 +408000 ekin = 14.8624029878213 | erot = 13.2220079279186 | epot = -124.727782956332 | etot = -96.6433720405917 +409000 ekin = 13.6028613042818 | erot = 13.9313059082655 | epot = -123.943236525651 | etot = -96.4090693131036 +410000 ekin = 12.9391405676151 | erot = 13.9083866084738 | epot = -123.698449973831 | etot = -96.8509227977424 +411000 ekin = 12.9511911958114 | erot = 13.2111133981956 | epot = -123.475848630892 | etot = -97.3135440368848 +412000 ekin = 13.0102946149252 | erot = 11.6293349705262 | epot = -123.312975165786 | etot = -98.6733455803344 +413000 ekin = 13.7672328255849 | erot = 12.3436014571232 | epot = -123.339406487652 | etot = -97.2285722049436 +414000 ekin = 13.9282595375335 | erot = 11.9157312379677 | epot = -123.568171704082 | etot = -97.7241809285804 +415000 ekin = 14.2112002618673 | erot = 12.6165381733728 | epot = -124.074734542967 | etot = -97.2469961077268 +416000 ekin = 14.8471585259496 | erot = 13.9090014073649 | epot = -124.918146496334 | etot = -96.1619865630192 +417000 ekin = 15.1833698247616 | erot = 15.2600269348037 | epot = -125.972782960942 | etot = -95.5293862013764 +418000 ekin = 15.0116385331976 | erot = 16.2202339191643 | epot = -127.001358515785 | etot = -95.7694860634236 +419000 ekin = 15.946640481216 | erot = 16.556706532663 | epot = -127.930826638016 | etot = -95.427479624137 +420000 ekin = 17.0030755122275 | erot = 13.8064387238821 | epot = -128.779917699183 | etot = -97.9704034630734 +421000 ekin = 17.7076999173918 | erot = 15.6607762389099 | epot = -129.712399115792 | etot = -96.3439229594902 +422000 ekin = 19.0288893821844 | erot = 16.9547249541364 | epot = -130.705406615431 | etot = -94.7217922791104 +423000 ekin = 20.0928868467255 | erot = 15.6791978827033 | epot = -131.512201888439 | etot = -95.7401171590101 +424000 ekin = 21.2867782211336 | erot = 14.7249077763209 | epot = -132.144270226839 | etot = -96.1325842293842 +425000 ekin = 22.3046811399301 | erot = 14.0135834881444 | epot = -132.584492965832 | etot = -96.2662283377575 +426000 ekin = 22.6757260607186 | erot = 14.0425771244452 | epot = -132.927022234245 | etot = -96.2087190490815 +427000 ekin = 22.9114920469756 | erot = 13.9187692374731 | epot = -133.17306480712 | etot = -96.3428035226713 +428000 ekin = 22.8833836302245 | erot = 13.3202826174428 | epot = -133.354420414982 | etot = -97.1507541673149 +429000 ekin = 23.1759582261326 | erot = 14.8508769700698 | epot = -133.395233600723 | etot = -95.3683984045205 +430000 ekin = 22.7011135257097 | erot = 14.3323835628523 | epot = -133.281782390496 | etot = -96.2482853019342 +431000 ekin = 22.4860621542188 | erot = 13.5830545588894 | epot = -133.063122899888 | etot = -96.9940061867801 +432000 ekin = 20.9926376577681 | erot = 13.3850499162301 | epot = -132.792306053964 | etot = -98.4146184799654 +433000 ekin = 20.6601187297081 | erot = 13.1353458539732 | epot = -132.632984905955 | etot = -98.8375203222734 +434000 ekin = 19.7772364576386 | erot = 12.5789641824799 | epot = -132.401261608975 | etot = -100.045060968857 +435000 ekin = 18.9180523876104 | erot = 14.9032013087131 | epot = -132.14719170047 | etot = -98.3259380041467 +436000 ekin = 18.0157320272878 | erot = 14.3516355778797 | epot = -131.928263980224 | etot = -99.5608963750566 +437000 ekin = 16.8474929436859 | erot = 12.7767873756002 | epot = -131.753136883159 | etot = -102.128856563873 +438000 ekin = 16.4671541938377 | erot = 14.4213750411729 | epot = -131.725759984879 | etot = -100.837230749868 +439000 ekin = 15.9238388746797 | erot = 15.4702902702385 | epot = -131.833740043839 | etot = -100.43961089892 +440000 ekin = 14.9768489355124 | erot = 17.3584161477327 | epot = -132.010161743274 | etot = -99.6748966600286 +441000 ekin = 14.9478235464867 | erot = 16.2706154773913 | epot = -132.172451698074 | etot = -100.954012674196 +442000 ekin = 14.5971874348284 | erot = 16.3914765923343 | epot = -132.387105996492 | etot = -101.39844196933 +443000 ekin = 14.1938972260854 | erot = 15.7500104224714 | epot = -132.637569125185 | etot = -102.693661476628 +444000 ekin = 14.2106948400759 | erot = 15.9261435937722 | epot = -132.804152949518 | etot = -102.66731451567 +445000 ekin = 14.3504745217208 | erot = 15.4757301980022 | epot = -132.870345661761 | etot = -103.044140942038 +446000 ekin = 14.0762883104816 | erot = 16.2756502679397 | epot = -132.828104290398 | etot = -102.476165711977 +447000 ekin = 14.1069696622209 | erot = 15.3943186838422 | epot = -132.926864854306 | etot = -103.425576508243 +448000 ekin = 13.8424969286477 | erot = 14.0768776395851 | epot = -133.07889196132 | etot = -105.159517393087 +449000 ekin = 14.5602094831078 | erot = 15.6501945950326 | epot = -132.967703020155 | etot = -102.757298942015 +450000 ekin = 14.9711261701579 | erot = 15.7868636107344 | epot = -132.757738590532 | etot = -101.999748809639 +451000 ekin = 14.9520831349878 | erot = 17.6569828498342 | epot = -132.602681277381 | etot = -99.9936152925592 +452000 ekin = 14.9965092624441 | erot = 17.742997702384 | epot = -132.3213447904 | etot = -99.581837825572 +453000 ekin = 14.7863093929959 | erot = 15.3601255964711 | epot = -131.845627968433 | etot = -101.699192978966 +454000 ekin = 15.1253016175455 | erot = 13.835767544551 | epot = -131.226853217639 | etot = -102.265784055542 +455000 ekin = 14.3547689605291 | erot = 15.0536928662401 | epot = -130.646123989566 | etot = -101.237662162797 +456000 ekin = 14.7873663711511 | erot = 14.6097887125708 | epot = -130.159036791418 | etot = -100.761881707696 +457000 ekin = 14.4101192581538 | erot = 14.371400529337 | epot = -129.80422976325 | etot = -101.022709975759 +458000 ekin = 14.7794232424024 | erot = 12.961786275671 | epot = -129.445895613438 | etot = -101.704686095364 +459000 ekin = 14.905480731245 | erot = 12.7036192262007 | epot = -129.120668125581 | etot = -101.511568168135 +460000 ekin = 14.1935048188216 | erot = 11.5773117937114 | epot = -128.824190440567 | etot = -103.053373828034 +461000 ekin = 13.9073192104769 | erot = 11.8465196019207 | epot = -128.567103523397 | etot = -102.813264710999 +462000 ekin = 13.6040511794357 | erot = 10.6529412012384 | epot = -128.498343339882 | etot = -104.241350959208 +463000 ekin = 13.7949695250129 | erot = 10.4405979877883 | epot = -128.633460244471 | etot = -104.39789273167 +464000 ekin = 13.9363536682094 | erot = 11.7923025500535 | epot = -128.950025580843 | etot = -103.22136936258 +465000 ekin = 14.0315715317229 | erot = 11.4183186979088 | epot = -129.399663695114 | etot = -103.949773465483 +466000 ekin = 14.4802887283481 | erot = 10.4358066575657 | epot = -129.863426573792 | etot = -104.947331187878 +467000 ekin = 14.6854676893719 | erot = 10.6584665341399 | epot = -130.272520868508 | etot = -104.928586644996 +468000 ekin = 14.5469456942364 | erot = 10.3055980169457 | epot = -130.575032240544 | etot = -105.722488529361 +469000 ekin = 15.168157151144 | erot = 11.507015709602 | epot = -130.888148525244 | etot = -104.212975664498 +470000 ekin = 15.7011319290239 | erot = 8.977646308534 | epot = -131.052840155166 | etot = -106.374061917608 +471000 ekin = 15.8582623804226 | erot = 10.1529587779977 | epot = -131.152653971397 | etot = -105.141432812977 +472000 ekin = 16.0960791677601 | erot = 10.7379394990764 | epot = -131.176700464405 | etot = -104.342681797569 +473000 ekin = 16.2469673512857 | erot = 12.0638689637426 | epot = -131.178252406718 | etot = -102.86741609169 +474000 ekin = 16.9347610623616 | erot = 13.201470118462 | epot = -131.1257886003 | etot = -100.989557419477 +475000 ekin = 16.7328496952857 | erot = 11.3426592811571 | epot = -131.071794155634 | etot = -102.996285179191 +476000 ekin = 16.2366407965404 | erot = 11.9441332898775 | epot = -131.097072928838 | etot = -102.91629884242 +477000 ekin = 16.9351367402763 | erot = 11.440591798362 | epot = -131.185160242912 | etot = -102.809431704274 +478000 ekin = 16.6616408068105 | erot = 13.9256317118027 | epot = -131.205504523652 | etot = -100.618232005039 +479000 ekin = 16.0008851258034 | erot = 12.9062911465348 | epot = -131.145780442706 | etot = -102.238604170368 +480000 ekin = 16.153051360502 | erot = 13.240187162759 | epot = -131.013990091124 | etot = -101.620751567863 +481000 ekin = 15.6997128899876 | erot = 11.8843332525322 | epot = -130.747154689635 | etot = -103.163108547116 +482000 ekin = 15.461547294599 | erot = 13.2334925131229 | epot = -130.409797459234 | etot = -101.714757651513 +483000 ekin = 14.7289085221475 | erot = 13.8000496019692 | epot = -130.027660388389 | etot = -101.498702264272 +484000 ekin = 15.1136508570559 | erot = 14.7539335670785 | epot = -129.477550930602 | etot = -99.6099665064671 +485000 ekin = 14.9321228859757 | erot = 13.8590042781607 | epot = -128.991380995111 | etot = -100.200253830975 +486000 ekin = 14.7668438833204 | erot = 12.7423551235166 | epot = -128.316975757481 | etot = -100.807776750645 +487000 ekin = 14.1678900372468 | erot = 13.0635828461302 | epot = -127.077452878479 | etot = -99.8459799951017 +488000 ekin = 14.8255095560756 | erot = 11.2316156944368 | epot = -127.051028068959 | etot = -100.993902818447 +489000 ekin = 16.3879092432496 | erot = 11.2815960546274 | epot = -128.026161431286 | etot = -100.356656133409 +490000 ekin = 16.959663291994 | erot = 10.2078247857106 | epot = -128.333865657079 | etot = -101.166377579374 +491000 ekin = 17.0348672433699 | erot = 9.25556052315784 | epot = -128.227912452425 | etot = -101.937484685897 +492000 ekin = 17.3483211459634 | erot = 11.4154185591411 | epot = -128.342672201381 | etot = -99.5789324962765 +493000 ekin = 17.2348576252696 | erot = 12.5648739147125 | epot = -128.479394212831 | etot = -98.6796626728493 +494000 ekin = 17.3038003727757 | erot = 11.5672074462369 | epot = -128.660368070501 | etot = -99.7893602514889 +495000 ekin = 17.1258919991972 | erot = 10.7494061195242 | epot = -128.839810873842 | etot = -100.964512755121 +496000 ekin = 17.318497765135 | erot = 10.2788570970333 | epot = -129.065072827865 | etot = -101.467717965696 +497000 ekin = 16.6874850161065 | erot = 10.4744793096002 | epot = -129.221329775903 | etot = -102.059365450196 +498000 ekin = 16.3405856180467 | erot = 11.3228301656308 | epot = -129.433591069646 | etot = -101.770175285969 +499000 ekin = 16.7128261882854 | erot = 13.7857259990512 | epot = -129.662041831932 | etot = -99.1634896445952 +500000 ekin = 16.9053910911621 | erot = 13.0780218271034 | epot = -129.878668968014 | etot = -99.8952560497487 +501000 ekin = 17.0172390257773 | erot = 14.4629157974909 | epot = -130.073458906796 | etot = -98.5933040835274 +502000 ekin = 17.1282261586988 | erot = 14.9539774859395 | epot = -130.221972157653 | etot = -98.139768513015 +503000 ekin = 17.5546036332384 | erot = 14.0883470413025 | epot = -130.278172755496 | etot = -98.6352220809554 +504000 ekin = 17.7985001597182 | erot = 14.3816843432498 | epot = -130.048618111128 | etot = -97.8684336081601 +505000 ekin = 18.5307913625694 | erot = 12.7305066490212 | epot = -129.690487363962 | etot = -98.4291893523712 +506000 ekin = 18.4661491726515 | erot = 12.0237334573043 | epot = -129.398673769567 | etot = -98.908791139611 +507000 ekin = 18.8565072195484 | erot = 11.6213689291001 | epot = -129.173042833474 | etot = -98.6951666848255 +508000 ekin = 18.3032025118119 | erot = 12.724843938206 | epot = -128.981326874503 | etot = -97.9532804244849 +509000 ekin = 18.6502737002307 | erot = 14.0272268632987 | epot = -128.895304531304 | etot = -96.2178039677745 +510000 ekin = 18.0277632428527 | erot = 13.4299302877474 | epot = -128.922916440059 | etot = -97.4652229094587 +511000 ekin = 17.5260110563993 | erot = 13.8282341255303 | epot = -128.903349958923 | etot = -97.5491047769936 +512000 ekin = 17.5517145472481 | erot = 13.3745126006227 | epot = -128.752491335774 | etot = -97.8262641879036 +513000 ekin = 17.1517712141475 | erot = 14.4018924631723 | epot = -128.640382924002 | etot = -97.0867192466822 +514000 ekin = 17.1581698605642 | erot = 15.1222296324458 | epot = -128.708034248345 | etot = -96.4276347553345 +515000 ekin = 15.8051374112764 | erot = 16.1563790359802 | epot = -128.850754192543 | etot = -96.8892377452867 +516000 ekin = 16.5271623960638 | erot = 18.5505467406792 | epot = -128.839438973065 | etot = -93.7617298363215 +517000 ekin = 16.4868139127013 | erot = 17.8014401654955 | epot = -128.74253830514 | etot = -94.4542842269433 +518000 ekin = 16.1006166424232 | erot = 17.5543821079202 | epot = -128.636126775695 | etot = -94.9811280253518 +519000 ekin = 15.1704632807069 | erot = 15.8604600527579 | epot = -128.481628515987 | etot = -97.4507051825225 +520000 ekin = 14.6622666235346 | erot = 15.5338712986971 | epot = -128.255685868565 | etot = -98.0595479463329 +521000 ekin = 14.3504805791432 | erot = 15.6899297514092 | epot = -128.075540396984 | etot = -98.0351300664311 +522000 ekin = 15.0477672454033 | erot = 15.2642093540337 | epot = -127.956172830119 | etot = -97.6441962306822 +523000 ekin = 14.767767681747 | erot = 13.5814717851208 | epot = -127.539779507626 | etot = -99.1905400407585 +524000 ekin = 14.6069196455603 | erot = 14.0177887916875 | epot = -126.88932478628 | etot = -98.2646163490319 +525000 ekin = 14.081308023724 | erot = 15.3056367474803 | epot = -127.428384894989 | etot = -98.0414401237848 +526000 ekin = 14.3879654378154 | erot = 15.628104596299 | epot = -128.290587621559 | etot = -98.2745175874442 +527000 ekin = 15.0091258995447 | erot = 14.9442651630367 | epot = -128.322770264793 | etot = -98.3693792022119 +528000 ekin = 15.1924000588665 | erot = 15.1405044413986 | epot = -128.275488437959 | etot = -97.9425839376937 +529000 ekin = 14.7608909739065 | erot = 15.3127643348495 | epot = -128.247700144926 | etot = -98.1740448361703 +530000 ekin = 15.3870586818276 | erot = 17.9585974777292 | epot = -128.291764568292 | etot = -94.9461084087352 +531000 ekin = 15.8046429679375 | erot = 16.7231918317401 | epot = -128.52991188429 | etot = -96.0020770846121 +532000 ekin = 15.918762785565 | erot = 16.3467928267805 | epot = -129.051901123749 | etot = -96.7863455114031 +533000 ekin = 16.2642911492058 | erot = 16.5689918544283 | epot = -129.745297141318 | etot = -96.9120141376836 +534000 ekin = 15.7517561484693 | erot = 18.8923343381611 | epot = -130.719587510081 | etot = -96.0754970234509 +535000 ekin = 15.8908651165416 | erot = 19.6077755379398 | epot = -131.691278516183 | etot = -96.1926378617015 +536000 ekin = 15.657422720842 | erot = 19.6944676458463 | epot = -132.625422408951 | etot = -97.2735320422625 +537000 ekin = 16.0881374426079 | erot = 20.4410414617136 | epot = -133.669156764979 | etot = -97.1399778606577 +538000 ekin = 15.9042666213089 | erot = 21.6016620321202 | epot = -134.68322491116 | etot = -97.1772962577309 +539000 ekin = 15.9378287613458 | erot = 21.4872325025689 | epot = -135.446877093373 | etot = -98.0218158294586 +540000 ekin = 15.6112840095225 | erot = 21.4497699911127 | epot = -135.957890823285 | etot = -98.8968368226501 +541000 ekin = 15.9288741786483 | erot = 19.8309966465166 | epot = -136.120934942516 | etot = -100.361064117351 +542000 ekin = 16.1419860736591 | erot = 17.9479523532218 | epot = -135.988037745877 | etot = -101.898099318996 +543000 ekin = 15.1824354162597 | erot = 16.8517890600258 | epot = -135.718162913889 | etot = -103.683938437604 +544000 ekin = 15.1827135168603 | erot = 15.0048696624577 | epot = -135.530755245336 | etot = -105.343172066018 +545000 ekin = 15.2741156854232 | erot = 15.8309704071885 | epot = -135.335682223801 | etot = -104.230596131189 +546000 ekin = 15.3924194729537 | erot = 14.2326619353906 | epot = -135.146089024587 | etot = -105.521007616243 +547000 ekin = 15.5751107564637 | erot = 13.9850378083498 | epot = -134.926334665874 | etot = -105.366186101061 +548000 ekin = 15.6139233872879 | erot = 15.2105492461662 | epot = -134.785867443372 | etot = -103.961394809917 +549000 ekin = 15.9319687156595 | erot = 15.5397222622966 | epot = -134.796303225495 | etot = -103.324612247539 +550000 ekin = 16.234796236126 | erot = 15.7998070510281 | epot = -134.850172284878 | etot = -102.815568997724 +551000 ekin = 16.3550656020587 | erot = 16.6976335106374 | epot = -134.834096493945 | etot = -101.781397381248 +552000 ekin = 16.7982250295082 | erot = 16.4108095890454 | epot = -134.741291181816 | etot = -101.532256563263 +553000 ekin = 16.6471135162259 | erot = 15.2737640610373 | epot = -134.450617410391 | etot = -102.529739833128 +554000 ekin = 16.3112091588779 | erot = 15.8022473729795 | epot = -134.007855613491 | etot = -101.894399081633 +555000 ekin = 15.7348233908133 | erot = 15.5059388504751 | epot = -133.433578685387 | etot = -102.192816444099 +556000 ekin = 15.4281960559873 | erot = 16.9241016935445 | epot = -133.073663452995 | etot = -100.721365703463 +557000 ekin = 14.7744254644961 | erot = 16.8791586531569 | epot = -133.076161177793 | etot = -101.42257706014 +558000 ekin = 14.3343095894577 | erot = 17.4876123230497 | epot = -132.797942898459 | etot = -100.976020985951 +559000 ekin = 14.4150967544258 | erot = 17.0562125021645 | epot = -132.359702332896 | etot = -100.888393076306 +560000 ekin = 14.2886839234454 | erot = 15.3656565141194 | epot = -131.965932895964 | etot = -102.311592458399 +561000 ekin = 14.4055433812606 | erot = 14.49600350596 | epot = -131.509933125069 | etot = -102.608386237849 +562000 ekin = 13.8753316850914 | erot = 16.0129944792554 | epot = -131.36607800742 | etot = -101.477751843073 +563000 ekin = 14.3166497861359 | erot = 15.6497012412811 | epot = -131.389436334525 | etot = -101.423085307108 +564000 ekin = 14.9444351561269 | erot = 14.8671616481941 | epot = -131.509916958159 | etot = -101.698320153838 +565000 ekin = 14.9840128733637 | erot = 14.7409927208675 | epot = -131.690758822109 | etot = -101.965753227878 +566000 ekin = 14.6433599870639 | erot = 13.7649316156739 | epot = -131.839622590928 | etot = -103.43133098819 +567000 ekin = 14.8198853756067 | erot = 12.1213853551919 | epot = -132.041023188438 | etot = -105.099752457639 +568000 ekin = 14.5868002517378 | erot = 12.9304551056786 | epot = -132.179975682384 | etot = -104.662720324968 +569000 ekin = 14.4021331261604 | erot = 12.4240110720475 | epot = -132.286232960564 | etot = -105.460088762356 +570000 ekin = 13.7778229675881 | erot = 11.6082627883511 | epot = -132.33298375932 | etot = -106.94689800338 +571000 ekin = 13.9648715298097 | erot = 11.3524654271521 | epot = -132.363295531801 | etot = -107.045958574839 +572000 ekin = 13.8107293610983 | erot = 13.8613894066824 | epot = -132.331162117028 | etot = -104.659043349247 +573000 ekin = 13.9371184623306 | erot = 12.2414755746739 | epot = -132.193123149789 | etot = -106.014529112784 +574000 ekin = 13.4323120702288 | erot = 12.830383211662 | epot = -132.070898945157 | etot = -105.808203663267 +575000 ekin = 14.2619757827425 | erot = 12.4019752034107 | epot = -131.904315635128 | etot = -105.240364648975 +576000 ekin = 14.3013943500202 | erot = 13.1130761591535 | epot = -131.651722356672 | etot = -104.237251847498 +577000 ekin = 13.8761533925322 | erot = 11.5775193912968 | epot = -131.354888112826 | etot = -105.901215328997 +578000 ekin = 12.9607997314117 | erot = 11.474611691305 | epot = -130.997933169007 | etot = -106.56252174629 +579000 ekin = 12.6094040635563 | erot = 11.503345002677 | epot = -130.579175616204 | etot = -106.466426549971 +580000 ekin = 11.8222758511646 | erot = 11.3314724877752 | epot = -130.044918816031 | etot = -106.891170477091 +581000 ekin = 11.5623099891038 | erot = 11.5204236717994 | epot = -129.459203984987 | etot = -106.376470324083 +582000 ekin = 11.0908793705015 | erot = 10.6909997165271 | epot = -128.99217590891 | etot = -107.210296821882 +583000 ekin = 10.0357308165672 | erot = 10.9504193493993 | epot = -128.761952459723 | etot = -107.775802293756 +584000 ekin = 9.96979580895644 | erot = 9.87641882825156 | epot = -128.739676965292 | etot = -108.893462328084 +585000 ekin = 10.3714607356325 | erot = 10.9356679379603 | epot = -128.965365875863 | etot = -107.65823720227 +586000 ekin = 10.4116016162334 | erot = 10.2113529207472 | epot = -129.368180678409 | etot = -108.745226141428 +587000 ekin = 10.237089300975 | erot = 11.7541762306805 | epot = -129.776818849233 | etot = -107.785553317577 +588000 ekin = 11.1220742099154 | erot = 11.0556200106363 | epot = -130.220508468425 | etot = -108.042814247874 +589000 ekin = 11.0340592312317 | erot = 11.7512538500335 | epot = -130.620979376897 | etot = -107.835666295632 +590000 ekin = 10.9311472445812 | erot = 10.8194747946168 | epot = -130.907016299035 | etot = -109.156394259837 +591000 ekin = 10.8163024481065 | erot = 11.9185941116031 | epot = -130.678625125208 | etot = -107.943728565498 +592000 ekin = 10.2172937646583 | erot = 12.6790802107598 | epot = -130.919975024198 | etot = -108.023601048779 +593000 ekin = 10.2938420054994 | erot = 12.9983490935077 | epot = -131.559728955501 | etot = -108.267537856494 +594000 ekin = 10.461577369823 | erot = 11.856264304853 | epot = -131.741951596953 | etot = -109.424109922277 +595000 ekin = 11.056901905874 | erot = 13.1301785758932 | epot = -131.890307818448 | etot = -107.703227336681 +596000 ekin = 11.0132919720099 | erot = 13.9466596433744 | epot = -132.089150727953 | etot = -107.129199112568 +597000 ekin = 10.8378272336451 | erot = 14.3090562620938 | epot = -132.10967433948 | etot = -106.962790843741 +598000 ekin = 11.1396964341323 | erot = 15.2201613294321 | epot = -132.110967353142 | etot = -105.751109589577 +599000 ekin = 11.4366693174268 | erot = 15.9290474447925 | epot = -132.179576664893 | etot = -104.813859902674 +600000 ekin = 11.853069506235 | erot = 16.6980554217788 | epot = -132.413213746698 | etot = -103.862088818684 +601000 ekin = 11.3731393014526 | erot = 16.8988693116771 | epot = -132.603665782831 | etot = -104.331657169701 +602000 ekin = 11.6288846916753 | erot = 17.3084169077548 | epot = -132.790978516308 | etot = -103.853676916878 +603000 ekin = 11.7283808351674 | erot = 15.8876229233384 | epot = -132.845370173479 | etot = -105.229366414973 +604000 ekin = 11.44401932352 | erot = 16.4551108016216 | epot = -132.758081124222 | etot = -104.858950999081 +605000 ekin = 11.7633043618998 | erot = 15.1811098330878 | epot = -132.421221692429 | etot = -105.476807497441 +606000 ekin = 12.1214438326343 | erot = 13.102235854812 | epot = -131.857167552501 | etot = -106.633487865055 +607000 ekin = 12.2353560435281 | erot = 12.9094585695507 | epot = -131.029223534431 | etot = -105.884408921352 +608000 ekin = 13.0019096138754 | erot = 12.6971647076221 | epot = -130.064319041703 | etot = -104.365244720205 +609000 ekin = 12.8925710430578 | erot = 12.2805351934011 | epot = -129.204447610614 | etot = -104.031341374155 +610000 ekin = 13.0900707944407 | erot = 12.0421993054041 | epot = -128.472375430258 | etot = -103.340105330413 +611000 ekin = 13.1247948731074 | erot = 13.1256764839786 | epot = -127.822619969903 | etot = -101.572148612818 +612000 ekin = 13.3183191664132 | erot = 12.96389541794 | epot = -127.296224301128 | etot = -101.014009716775 +613000 ekin = 13.9769629953256 | erot = 11.2865295624435 | epot = -127.055718105206 | etot = -101.792225547436 +614000 ekin = 14.3890395543953 | erot = 9.9248812934263 | epot = -127.074730201449 | etot = -102.760809353627 +615000 ekin = 14.6567050561459 | erot = 9.95992749791948 | epot = -127.478583088677 | etot = -102.861950534611 +616000 ekin = 15.2016814148893 | erot = 9.73164395406493 | epot = -128.043934938619 | etot = -103.110609569665 +617000 ekin = 16.0807025297027 | erot = 9.98598225137266 | epot = -128.723798364128 | etot = -102.657113583052 +618000 ekin = 17.1570301245589 | erot = 10.7358136674337 | epot = -129.417791581699 | etot = -101.524947789706 +619000 ekin = 18.2645203968826 | erot = 9.8387819670336 | epot = -130.058651014826 | etot = -101.95534865091 +620000 ekin = 18.2329353345973 | erot = 10.6434570665445 | epot = -130.794480704669 | etot = -101.918088303528 +621000 ekin = 19.0631853488392 | erot = 11.0524598837306 | epot = -131.52467427776 | etot = -101.40902904519 +622000 ekin = 19.0814697452848 | erot = 9.78841080836808 | epot = -131.948328552335 | etot = -103.078447998682 +623000 ekin = 19.6689115793648 | erot = 10.1108317760386 | epot = -132.182115057445 | etot = -102.402371702042 +624000 ekin = 20.1424435622364 | erot = 9.65005263120131 | epot = -132.29920261852 | etot = -102.506706425083 +625000 ekin = 20.1789761692576 | erot = 9.23340661934284 | epot = -132.290886616266 | etot = -102.878503827665 +626000 ekin = 19.8331329644991 | erot = 9.3446297079685 | epot = -132.226747350546 | etot = -103.048984678079 +627000 ekin = 19.7699917865906 | erot = 10.2063458557855 | epot = -132.017759980705 | etot = -102.041422338329 +628000 ekin = 18.882283265158 | erot = 11.0882601804713 | epot = -131.239811992474 | etot = -101.269268546845 +629000 ekin = 17.8242062169103 | erot = 11.1109911962111 | epot = -130.767645094112 | etot = -101.832447680991 +630000 ekin = 17.3117221567737 | erot = 12.3442278894691 | epot = -130.769105668562 | etot = -101.113155622319 +631000 ekin = 16.6822887154981 | erot = 12.2752035787203 | epot = -130.265480905641 | etot = -101.307988611422 +632000 ekin = 15.9183023976893 | erot = 12.1344670714203 | epot = -129.709637897154 | etot = -101.656868428045 +633000 ekin = 15.8222932056193 | erot = 12.1446443747701 | epot = -129.264109348895 | etot = -101.297171768506 +634000 ekin = 15.5294990051235 | erot = 12.7487113053321 | epot = -128.880873430724 | etot = -100.602663120268 +635000 ekin = 14.9379626100724 | erot = 10.4365299701931 | epot = -128.516843327075 | etot = -103.14235074681 +636000 ekin = 14.2852533918016 | erot = 11.0630154584387 | epot = -128.345040012588 | etot = -102.996771162348 +637000 ekin = 14.4078244478272 | erot = 11.3085354080839 | epot = -128.340632215988 | etot = -102.624272360077 +638000 ekin = 14.7529412454464 | erot = 14.1213788652934 | epot = -128.390352919974 | etot = -99.5160328092347 +639000 ekin = 14.043316889061 | erot = 14.9971425784089 | epot = -128.430633485756 | etot = -99.3901740182862 +640000 ekin = 14.6298336226098 | erot = 15.9727938774897 | epot = -128.496604272929 | etot = -97.8939767728293 +641000 ekin = 15.3122061230573 | erot = 14.4774681815629 | epot = -128.621986682022 | etot = -98.8323123774021 +642000 ekin = 15.2890375006629 | erot = 14.9559327924486 | epot = -128.670108235029 | etot = -98.4251379419172 +643000 ekin = 15.5837329334813 | erot = 12.7894488254017 | epot = -128.794257348761 | etot = -100.421075589878 +644000 ekin = 15.6301920123022 | erot = 12.7652946748823 | epot = -128.920720014312 | etot = -100.525233327127 +645000 ekin = 16.3030902027485 | erot = 14.0541414816075 | epot = -129.049082733824 | etot = -98.6918510494677 +646000 ekin = 16.387120508912 | erot = 12.9699759961764 | epot = -129.005812913628 | etot = -99.6487164085396 +647000 ekin = 16.7825340632155 | erot = 12.4375474757415 | epot = -128.955788501865 | etot = -99.7357069629082 +648000 ekin = 17.0345267264513 | erot = 11.498688698786 | epot = -129.004379745517 | etot = -100.47116432028 +649000 ekin = 16.9014474492138 | erot = 10.7890889406651 | epot = -129.260191565824 | etot = -101.569655175945 +650000 ekin = 16.8382079727115 | erot = 11.8050330618057 | epot = -129.589908653889 | etot = -100.946667619371 +651000 ekin = 17.4628898229135 | erot = 12.660223006772 | epot = -130.068881730979 | etot = -99.945768901294 +652000 ekin = 17.4703226613751 | erot = 13.5606875051042 | epot = -130.491175025567 | etot = -99.4601648590877 +653000 ekin = 18.1727773843547 | erot = 12.9136750169098 | epot = -130.851123572071 | etot = -99.764671170807 +654000 ekin = 17.6403472545997 | erot = 13.2086323043293 | epot = -131.161919457442 | etot = -100.312939898513 +655000 ekin = 18.0364471374451 | erot = 12.730673315801 | epot = -131.279484009004 | etot = -100.512363555758 +656000 ekin = 17.5019828887948 | erot = 13.0457124380727 | epot = -131.215680922562 | etot = -100.667985595694 +657000 ekin = 16.4993263604709 | erot = 13.8475092591096 | epot = -131.083864393325 | etot = -100.737028773744 +658000 ekin = 16.2103148943266 | erot = 14.4272792701112 | epot = -130.758953393232 | etot = -100.121359228794 +659000 ekin = 15.3155231334765 | erot = 15.300672911428 | epot = -130.299493596426 | etot = -99.6832975515214 +660000 ekin = 14.7775646296185 | erot = 14.318768789963 | epot = -129.835015391247 | etot = -100.738681971665 +661000 ekin = 14.6211939768974 | erot = 14.3018056728567 | epot = -129.467486689383 | etot = -100.544487039629 +662000 ekin = 13.8033290738663 | erot = 14.0167939749792 | epot = -129.088469148259 | etot = -101.268346099414 +663000 ekin = 13.3517604154004 | erot = 12.9953072838245 | epot = -129.00407734233 | etot = -102.657009643105 +664000 ekin = 13.164869401324 | erot = 12.3003668005885 | epot = -129.280833610532 | etot = -103.81559740862 +665000 ekin = 12.7516240761356 | erot = 13.46957828534 | epot = -129.642610115282 | etot = -103.421407753806 +666000 ekin = 12.428601414422 | erot = 15.1092276692713 | epot = -130.152421315356 | etot = -102.614592231662 +667000 ekin = 12.3652219511648 | erot = 15.4128826625787 | epot = -130.799059207917 | etot = -103.020954594173 +668000 ekin = 12.8158537102181 | erot = 14.5582755806601 | epot = -131.364605360156 | etot = -103.990476069278 +669000 ekin = 12.8102296122185 | erot = 14.5120954654184 | epot = -131.945100023905 | etot = -104.622774946268 +670000 ekin = 13.3502521648354 | erot = 15.4295134171481 | epot = -132.394803265261 | etot = -103.615037683278 +671000 ekin = 13.8108076753136 | erot = 16.0688444279687 | epot = -132.838606751597 | etot = -102.958954648315 +672000 ekin = 14.5838232105893 | erot = 15.3125733086222 | epot = -133.30925125661 | etot = -103.412854737399 +673000 ekin = 15.1742132287406 | erot = 16.4381989218504 | epot = -133.906648069242 | etot = -102.294235918651 +674000 ekin = 16.1859219219369 | erot = 15.8377995716349 | epot = -134.49689701807 | etot = -102.473175524498 +675000 ekin = 17.3446680932935 | erot = 13.3475717655493 | epot = -134.852992481676 | etot = -104.160752622833 +676000 ekin = 17.4346563797699 | erot = 12.0386615114386 | epot = -134.994900006578 | etot = -105.521582115369 +677000 ekin = 17.7972067821998 | erot = 11.5890865288702 | epot = -134.955733437646 | etot = -105.569440126576 +678000 ekin = 18.4780404610739 | erot = 10.6707684108267 | epot = -134.706550145781 | etot = -105.55774127388 +679000 ekin = 19.4115608214934 | erot = 11.2357386443761 | epot = -134.337308860919 | etot = -103.69000939505 +680000 ekin = 19.2638935241275 | erot = 10.1305651627585 | epot = -133.928210028253 | etot = -104.533751341367 +681000 ekin = 19.6700539624928 | erot = 10.3454431083984 | epot = -133.521042310882 | etot = -103.505545239991 +682000 ekin = 19.3359998209106 | erot = 9.52465902330683 | epot = -132.975182489739 | etot = -104.114523645522 +683000 ekin = 19.4041793989297 | erot = 10.2693839085273 | epot = -132.357095197692 | etot = -102.683531890235 +684000 ekin = 19.026166211252 | erot = 9.93456762161751 | epot = -131.560535171842 | etot = -102.599801338972 +685000 ekin = 18.6259956808663 | erot = 9.04733455903983 | epot = -130.661849534635 | etot = -102.988519294729 +686000 ekin = 18.3252193809328 | erot = 8.74164773568646 | epot = -129.722434721725 | etot = -102.655567605106 +687000 ekin = 18.2985913889226 | erot = 6.9010094761216 | epot = -128.761264951561 | etot = -103.561664086517 +688000 ekin = 17.1315904753568 | erot = 8.37223490765269 | epot = -127.790766521658 | etot = -102.286941138649 +689000 ekin = 16.0662619762064 | erot = 8.69935614114344 | epot = -126.797769670867 | etot = -102.032151553517 +690000 ekin = 15.5579892808636 | erot = 8.12582832183317 | epot = -125.826625319233 | etot = -102.142807716536 +691000 ekin = 15.1272914825974 | erot = 9.02318757728052 | epot = -125.001806902334 | etot = -100.851327842456 +692000 ekin = 14.6723236215967 | erot = 10.703400172422 | epot = -124.169319486656 | etot = -98.7935956926376 +693000 ekin = 13.8886966370099 | erot = 11.671116130368 | epot = -123.541189168181 | etot = -97.9813764008029 +694000 ekin = 13.1382011026418 | erot = 13.5283479389415 | epot = -123.194036250492 | etot = -96.5274872089086 +695000 ekin = 12.0964926850945 | erot = 13.1995540694749 | epot = -122.915258292391 | etot = -97.6192115378217 +696000 ekin = 11.3281129967711 | erot = 14.9673424290163 | epot = -122.804736868637 | etot = -96.5092814428495 +697000 ekin = 11.0523142434049 | erot = 15.1316462810217 | epot = -122.885904665358 | etot = -96.7019441409312 +698000 ekin = 10.4013795972853 | erot = 16.2296085385526 | epot = -122.998327173131 | etot = -96.3673390372936 +699000 ekin = 10.4403816572152 | erot = 17.0183625907827 | epot = -123.009031610283 | etot = -95.550287362285 +700000 ekin = 9.79780839313734 | erot = 13.9825013046653 | epot = -123.10177535537 | etot = -99.3214656575673 +701000 ekin = 10.0228331203457 | erot = 14.5402014480765 | epot = -123.331702326704 | etot = -98.7686677582819 +702000 ekin = 10.1583370722205 | erot = 14.0156743582463 | epot = -123.641637799928 | etot = -99.467626369461 +703000 ekin = 10.7504295035149 | erot = 13.7545908103613 | epot = -124.16407794377 | etot = -99.6590576298937 +704000 ekin = 11.0555457093456 | erot = 13.5050758987755 | epot = -124.646963748962 | etot = -100.086342140841 +705000 ekin = 11.2294460878403 | erot = 13.0729572110628 | epot = -125.183340489607 | etot = -100.880937190704 +706000 ekin = 11.1960604441277 | erot = 13.6558393018561 | epot = -125.346823029996 | etot = -100.494923284012 +707000 ekin = 11.5224708970186 | erot = 14.2142328387688 | epot = -125.594023659238 | etot = -99.8573199234503 +708000 ekin = 12.4522885138737 | erot = 14.0068393183376 | epot = -126.522280655039 | etot = -100.063152822827 +709000 ekin = 13.1367332092944 | erot = 15.5082067332368 | epot = -127.446760898718 | etot = -98.8018209561866 +710000 ekin = 12.8636357026688 | erot = 16.6255199392494 | epot = -127.91771154272 | etot = -98.4285559008017 +711000 ekin = 12.7984924165004 | erot = 15.2391346521185 | epot = -128.148144543905 | etot = -100.110517475286 +712000 ekin = 13.2202326011118 | erot = 13.6182521364317 | epot = -128.236609333929 | etot = -101.398124596385 +713000 ekin = 13.3090397213361 | erot = 13.981639493869 | epot = -128.200674077415 | etot = -100.90999486221 +714000 ekin = 13.8985073914253 | erot = 13.0863826773607 | epot = -128.10019620519 | etot = -101.115306136404 +715000 ekin = 13.885996905945 | erot = 12.9948094828465 | epot = -127.930101523036 | etot = -101.049295134245 +716000 ekin = 14.106857389279 | erot = 14.0369623093788 | epot = -127.800480905385 | etot = -99.656661206727 +717000 ekin = 14.4540296672478 | erot = 13.4757152487838 | epot = -127.824643226067 | etot = -99.8948983100352 +718000 ekin = 14.1953181204468 | erot = 15.6667330495239 | epot = -128.022904943184 | etot = -98.160853773213 +719000 ekin = 14.4864245735426 | erot = 15.7386323499058 | epot = -128.178727752281 | etot = -97.9536708288325 +720000 ekin = 13.9269939971496 | erot = 15.226043410616 | epot = -128.430679285323 | etot = -99.2776418775573 +721000 ekin = 13.6327433698081 | erot = 15.7080046828304 | epot = -128.900974847994 | etot = -99.5602267953555 +722000 ekin = 13.4788212014213 | erot = 16.9760910626494 | epot = -129.353908351043 | etot = -98.8989960869721 +723000 ekin = 13.3028761637196 | erot = 18.2775912497898 | epot = -129.700083283666 | etot = -98.1196158701566 +724000 ekin = 12.6691752727764 | erot = 16.5973718983537 | epot = -129.830238522371 | etot = -100.563691351241 +725000 ekin = 12.3070413253506 | erot = 15.8887922487905 | epot = -129.840396026009 | etot = -101.644562451868 +726000 ekin = 12.2707495639318 | erot = 15.0780506801526 | epot = -129.667036656087 | etot = -102.318236412003 +727000 ekin = 11.5925214307991 | erot = 15.4249879348656 | epot = -129.370935347703 | etot = -102.353425982038 +728000 ekin = 10.7216103683335 | erot = 15.4824090451025 | epot = -128.927805844505 | etot = -102.723786431069 +729000 ekin = 11.2601188060696 | erot = 14.6107591810147 | epot = -128.387799931657 | etot = -102.516921944572 +730000 ekin = 11.7350431387574 | erot = 14.3631564348304 | epot = -128.11528516637 | etot = -102.017085592782 +731000 ekin = 12.1649383518147 | erot = 12.5709808362469 | epot = -128.259955131528 | etot = -103.524035943466 +732000 ekin = 12.8330950236671 | erot = 13.1957218916743 | epot = -128.591480868645 | etot = -102.562663953304 +733000 ekin = 14.0579021361009 | erot = 12.4721190808736 | epot = -129.01668896584 | etot = -102.486667748865 +734000 ekin = 15.1110844917245 | erot = 14.1564583690187 | epot = -129.658961966441 | etot = -100.391419105698 +735000 ekin = 16.0197435513465 | erot = 15.7506353743269 | epot = -130.095893938393 | etot = -98.3255150127193 +736000 ekin = 16.6945847921112 | erot = 14.0449347923322 | epot = -130.436816706858 | etot = -99.6972971224144 +737000 ekin = 17.3343138190244 | erot = 14.3742554067661 | epot = -130.740810773402 | etot = -99.0322415476119 +738000 ekin = 18.8981484545265 | erot = 12.9357766278087 | epot = -131.007399503818 | etot = -99.1734744214827 +739000 ekin = 19.2988391210311 | erot = 12.1612391227699 | epot = -131.273954699358 | etot = -99.8138764555575 +740000 ekin = 20.2335502456846 | erot = 13.8707762253188 | epot = -131.518858021729 | etot = -97.4145315507254 +741000 ekin = 20.5999936430606 | erot = 13.56045545266 | epot = -131.597958334198 | etot = -97.437509238477 +742000 ekin = 20.2070060967488 | erot = 13.4720713375906 | epot = -131.574160466543 | etot = -97.8950830322039 +743000 ekin = 19.3231984278316 | erot = 13.0245409747774 | epot = -131.570025323295 | etot = -99.2222859206864 +744000 ekin = 19.0692503390929 | erot = 13.3141559483165 | epot = -131.341759093758 | etot = -98.9583528063482 +745000 ekin = 18.7189292498279 | erot = 12.7860415040493 | epot = -130.958428498735 | etot = -99.4534577448577 +746000 ekin = 18.6864477092219 | erot = 13.3388758164248 | epot = -130.47236608065 | etot = -98.4470425550029 +747000 ekin = 18.3173313250173 | erot = 13.5192048925161 | epot = -129.93934086301 | etot = -98.102804645477 +748000 ekin = 17.2338254873791 | erot = 14.3282887100115 | epot = -129.639135690737 | etot = -98.0770214933465 +749000 ekin = 17.217794260759 | erot = 12.2095279173813 | epot = -129.677956076542 | etot = -100.250633898402 +750000 ekin = 17.322354821532 | erot = 12.9101450561862 | epot = -130.009913913551 | etot = -99.7774140358331 +751000 ekin = 17.3874781254986 | erot = 13.6449565123365 | epot = -130.565759755778 | etot = -99.5333251179431 +752000 ekin = 17.7210871961908 | erot = 13.2189598604734 | epot = -131.250107148602 | etot = -100.310060091938 +753000 ekin = 18.6045637166674 | erot = 12.3786799107882 | epot = -132.230628292626 | etot = -101.24738466517 +754000 ekin = 18.5359048037749 | erot = 13.4243859321944 | epot = -133.339419375854 | etot = -101.379128639884 +755000 ekin = 18.9630806091571 | erot = 12.5884391627457 | epot = -134.353323108397 | etot = -102.801803336494 +756000 ekin = 19.1389525652221 | erot = 13.6257967260262 | epot = -135.183874892501 | etot = -102.419125601253 +757000 ekin = 19.2074021502121 | erot = 14.6033526373093 | epot = -135.874252378344 | etot = -102.063497590823 +758000 ekin = 19.1121796439063 | erot = 14.9565159725825 | epot = -136.206305523299 | etot = -102.13760990681 +759000 ekin = 19.1423318788173 | erot = 18.5890624901826 | epot = -136.048218209446 | etot = -98.3168238404462 +760000 ekin = 19.5311507779804 | erot = 16.9319255613276 | epot = -135.196917226891 | etot = -98.7338408875827 +761000 ekin = 18.6147988920608 | erot = 15.6150997729969 | epot = -133.761721489726 | etot = -99.5318228246688 +762000 ekin = 17.8898312713857 | erot = 14.3919784323134 | epot = -132.063295505182 | etot = -99.7814858014828 +763000 ekin = 16.6014084140999 | erot = 13.8632351276383 | epot = -130.323724537176 | etot = -99.8590809954376 +764000 ekin = 15.6584053040862 | erot = 12.9328227142933 | epot = -128.610819336276 | etot = -100.019591317897 +765000 ekin = 14.9788909650146 | erot = 12.5622335735393 | epot = -127.241908830151 | etot = -99.7007842915971 +766000 ekin = 14.5477167314164 | erot = 13.7746272613197 | epot = -126.118360786895 | etot = -97.7960167941586 +767000 ekin = 13.785151386018 | erot = 13.0054724982038 | epot = -124.957942870215 | etot = -98.1673189859932 +768000 ekin = 12.7299307163282 | erot = 14.3330120672192 | epot = -124.073635373819 | etot = -97.0106925902719 +769000 ekin = 12.5663714093458 | erot = 15.7541397725442 | epot = -124.280056400595 | etot = -95.9595452187048 +770000 ekin = 12.6586268245375 | erot = 15.8205064764627 | epot = -124.797338115948 | etot = -96.3182048149479 +771000 ekin = 12.7420905608413 | erot = 15.5161183558408 | epot = -125.41812612012 | etot = -97.1599172034378 +772000 ekin = 13.3752757505982 | erot = 16.3556575181108 | epot = -126.376667550792 | etot = -96.6457342820827 +773000 ekin = 13.9072386557489 | erot = 15.8251712655802 | epot = -127.434400026241 | etot = -97.7019901049119 +774000 ekin = 14.8039326477388 | erot = 16.8286892916392 | epot = -128.483851139656 | etot = -96.8512292002783 +775000 ekin = 15.178405990197 | erot = 17.1855437769234 | epot = -129.533536322552 | etot = -97.1695865554315 +776000 ekin = 16.0355953059781 | erot = 16.2149945035646 | epot = -130.461588087407 | etot = -98.2109982778643 +777000 ekin = 16.5740725735003 | erot = 16.2769620755091 | epot = -131.129471274419 | etot = -98.2784366254093 +778000 ekin = 16.5914878474125 | erot = 16.8822871437972 | epot = -131.582835524617 | etot = -98.1090605334069 +779000 ekin = 16.9585306199765 | erot = 18.1118600069992 | epot = -131.783488421451 | etot = -96.7130977944757 +780000 ekin = 17.1625761703625 | erot = 19.3597953749589 | epot = -131.441337383659 | etot = -94.9189658383374 +781000 ekin = 16.607008799517 | erot = 19.1734052522574 | epot = -130.498972879629 | etot = -94.7185588278549 +782000 ekin = 16.0188029390379 | erot = 18.8814179977964 | epot = -128.92093625018 | etot = -94.0207153133457 +783000 ekin = 16.6590593762785 | erot = 17.6330426248957 | epot = -126.777693594422 | etot = -92.4855915932477 +784000 ekin = 17.1256221009035 | erot = 15.9712513941176 | epot = -125.249818046922 | etot = -92.1529445519011 +785000 ekin = 16.7644697237449 | erot = 14.683021546627 | epot = -124.503071625115 | etot = -93.0555803547427 +786000 ekin = 15.9272514347156 | erot = 13.6983194283386 | epot = -123.974122665387 | etot = -94.3485518023324 +787000 ekin = 15.2518811278669 | erot = 14.4286972189706 | epot = -123.380053055365 | etot = -93.6994747085278 +788000 ekin = 14.7800201067714 | erot = 14.8966905407477 | epot = -123.042883666771 | etot = -93.3661730192519 +789000 ekin = 13.9587924065153 | erot = 15.2858717369538 | epot = -123.076065921558 | etot = -93.8314017780887 +790000 ekin = 13.4997511848366 | erot = 14.9015971901407 | epot = -123.274424885105 | etot = -94.8730765101274 +791000 ekin = 13.1836021896654 | erot = 13.7340704634319 | epot = -123.613115013462 | etot = -96.6954423603651 +792000 ekin = 12.5551146629631 | erot = 14.2671534546052 | epot = -124.072772255755 | etot = -97.2505041381865 +793000 ekin = 12.4465743500408 | erot = 13.941846232668 | epot = -124.610645974427 | etot = -98.222225391718 +794000 ekin = 12.3516116802548 | erot = 13.0393126935391 | epot = -125.229879982672 | etot = -99.8389556088777 +795000 ekin = 12.1834181847055 | erot = 11.5146899143675 | epot = -125.915233228096 | etot = -102.217125129023 +796000 ekin = 12.2469931551647 | erot = 12.1050169300559 | epot = -126.709012662144 | etot = -102.357002576923 +797000 ekin = 12.0691786690398 | erot = 12.2260306613053 | epot = -127.472934929817 | etot = -103.177725599472 +798000 ekin = 12.546533710265 | erot = 11.4457889364443 | epot = -128.179008612303 | etot = -104.186685965594 +799000 ekin = 12.8791491099679 | erot = 10.060246353311 | epot = -128.639424952832 | etot = -105.700029489553 +800000 ekin = 13.2109066844622 | erot = 10.7000400173374 | epot = -128.819221531374 | etot = -104.908274829574 +801000 ekin = 13.2793064836633 | erot = 10.3859354697956 | epot = -129.046956014284 | etot = -105.381714060825 +802000 ekin = 14.5291962548604 | erot = 11.0806161640772 | epot = -129.189781403971 | etot = -103.579968985034 +803000 ekin = 14.9582823531098 | erot = 9.46888824567808 | epot = -129.484049661632 | etot = -105.056879062844 +804000 ekin = 15.1985526581724 | erot = 10.6605068656839 | epot = -130.062154301077 | etot = -104.203094777221 +805000 ekin = 16.7115156945225 | erot = 13.346383471139 | epot = -131.001035992376 | etot = -100.943136826715 +806000 ekin = 17.935509195607 | erot = 15.3128910018764 | epot = -132.157347563542 | etot = -98.9089473660586 +807000 ekin = 18.3821058880095 | erot = 16.14694932317 | epot = -133.465954330989 | etot = -98.9368991198099 +808000 ekin = 18.4586740171017 | erot = 17.4186582435822 | epot = -134.756056842451 | etot = -98.8787245817669 +809000 ekin = 18.7143084542808 | erot = 16.4886282039559 | epot = -135.894878253586 | etot = -100.691941595349 +810000 ekin = 19.0717768833682 | erot = 18.2428020006286 | epot = -136.687610350024 | etot = -99.3730314660267 +811000 ekin = 19.3496015982741 | erot = 16.4166081200059 | epot = -137.087270702521 | etot = -101.321060984241 +812000 ekin = 18.8132921241844 | erot = 15.9355446496578 | epot = -137.109850002122 | etot = -102.361013228279 +813000 ekin = 17.5780403458912 | erot = 16.589165974413 | epot = -136.832999774061 | etot = -102.665793453757 +814000 ekin = 16.9449349535852 | erot = 17.5355957376612 | epot = -136.448934903829 | etot = -101.968404212583 +815000 ekin = 16.4703461010998 | erot = 19.1081842556833 | epot = -136.023652788487 | etot = -100.445122431704 +816000 ekin = 15.4664613390496 | erot = 17.6089822900762 | epot = -135.500704387562 | etot = -102.425260758436 +817000 ekin = 14.8681799821529 | erot = 15.3789825951142 | epot = -135.067114620736 | etot = -104.819952043469 +818000 ekin = 14.05269006138 | erot = 15.7402575489113 | epot = -134.625228894631 | etot = -104.83228128434 +819000 ekin = 13.183800831223 | erot = 13.2388271719912 | epot = -134.209702435244 | etot = -107.78707443203 +820000 ekin = 12.7761038226944 | erot = 13.3080976281738 | epot = -133.968394808085 | etot = -107.884193357216 +821000 ekin = 12.0253186296979 | erot = 13.6405698743307 | epot = -133.760065335415 | etot = -108.094176831387 +822000 ekin = 11.6630918105698 | erot = 12.6998301503219 | epot = -133.53195707022 | etot = -109.169035109328 +823000 ekin = 11.1167413317975 | erot = 14.6011325366125 | epot = -133.461022910971 | etot = -107.743149042562 +824000 ekin = 10.4746391502229 | erot = 12.4758719121113 | epot = -133.511978718426 | etot = -110.561467656092 +825000 ekin = 10.2356976729896 | erot = 12.2904218215826 | epot = -133.700356379562 | etot = -111.17423688499 +826000 ekin = 9.83096239396682 | erot = 11.3745267667888 | epot = -134.123382625473 | etot = -112.917893464718 +827000 ekin = 9.64229733033127 | erot = 12.6419283491478 | epot = -134.603992066152 | etot = -112.319766386673 +828000 ekin = 8.97025933237731 | erot = 11.6048742407818 | epot = -135.011510030303 | etot = -114.436376457144 +829000 ekin = 9.10808626487462 | erot = 13.3671751049059 | epot = -135.176544462071 | etot = -112.701283092291 +830000 ekin = 9.38415183018099 | erot = 13.9027284879972 | epot = -135.380837696259 | etot = -112.093957378081 +831000 ekin = 9.89782748978174 | erot = 14.6473467563042 | epot = -135.550784581084 | etot = -111.005610334998 +832000 ekin = 9.61617429521492 | erot = 14.1142221016976 | epot = -135.565476488835 | etot = -111.835080091923 +833000 ekin = 9.37805099397741 | erot = 14.5448882534449 | epot = -135.557208351876 | etot = -111.634269104454 +834000 ekin = 9.60363615354897 | erot = 13.5658256076977 | epot = -135.503370790537 | etot = -112.33390902929 +835000 ekin = 10.1994042034093 | erot = 13.4310767815474 | epot = -135.486182184481 | etot = -111.855701199524 +836000 ekin = 9.90258198197248 | erot = 14.0997630061159 | epot = -135.415036673347 | etot = -111.412691685258 +837000 ekin = 9.23061363929233 | erot = 13.1013581784861 | epot = -135.377162328567 | etot = -113.045190510789 +838000 ekin = 9.22678257596562 | erot = 11.7950777786698 | epot = -135.309708937396 | etot = -114.287848582761 +839000 ekin = 9.31364044689879 | erot = 9.19117521815819 | epot = -135.224645715934 | etot = -116.719830050877 +840000 ekin = 9.95651666063242 | erot = 10.2562033846855 | epot = -135.050789715828 | etot = -114.83806967051 +841000 ekin = 10.1329136337983 | erot = 11.1215377358375 | epot = -134.844846156174 | etot = -113.590394786538 +842000 ekin = 9.81306935601066 | erot = 11.8450714037862 | epot = -134.621170352062 | etot = -112.963029592265 +843000 ekin = 9.6014172601031 | erot = 11.5647290918967 | epot = -134.324999225728 | etot = -113.158852873729 +844000 ekin = 9.87980157515639 | erot = 12.3554353870616 | epot = -134.065834194652 | etot = -111.830597232434 +845000 ekin = 9.93780379927978 | erot = 12.0090921548411 | epot = -133.814970563149 | etot = -111.868074609028 +846000 ekin = 10.4775554235282 | erot = 12.1654574191588 | epot = -133.472543158636 | etot = -110.829530315949 +847000 ekin = 10.0026611797418 | erot = 11.6213808792176 | epot = -133.066600825389 | etot = -111.44255876643 +848000 ekin = 10.5520984068296 | erot = 11.6099997320351 | epot = -132.780981683409 | etot = -110.618883544544 +849000 ekin = 10.7448279920532 | erot = 11.4890837546211 | epot = -132.676110820266 | etot = -110.442199073591 +850000 ekin = 10.8113038660881 | erot = 10.9488089735479 | epot = -132.895254583106 | etot = -111.13514174347 +851000 ekin = 11.2511239289073 | erot = 11.8929283018388 | epot = -133.389075417486 | etot = -110.24502318674 +852000 ekin = 11.044204555781 | erot = 12.4402386301468 | epot = -134.143640073191 | etot = -110.659196887264 +853000 ekin = 11.7246156001573 | erot = 14.7235683156687 | epot = -135.052215505121 | etot = -108.604031589295 +854000 ekin = 11.8684738498269 | erot = 16.8582257926897 | epot = -136.115564410014 | etot = -107.388864767497 +855000 ekin = 12.0538531934163 | erot = 16.4968100795581 | epot = -137.007305545871 | etot = -108.456642272897 +856000 ekin = 11.8401943131307 | erot = 17.2853860946902 | epot = -137.587232095186 | etot = -108.461651687365 +857000 ekin = 11.599621890787 | erot = 16.4784196407965 | epot = -137.876240736872 | etot = -109.798199205288 +858000 ekin = 10.5710249607862 | erot = 17.774578899555 | epot = -137.72393299091 | etot = -109.378329130569 +859000 ekin = 10.4697302561029 | erot = 17.597107441915 | epot = -137.270423002965 | etot = -109.203585304947 +860000 ekin = 10.1406561107331 | erot = 15.3180480162168 | epot = -136.644343040593 | etot = -111.185638913643 +861000 ekin = 9.65715456935708 | erot = 15.5614532259773 | epot = -135.848542830414 | etot = -110.62993503508 +862000 ekin = 9.85528367938723 | erot = 15.4449729727622 | epot = -134.939823071984 | etot = -109.639566419835 +863000 ekin = 9.69076776402144 | erot = 13.8617702176826 | epot = -134.057449790282 | etot = -110.504911808578 +864000 ekin = 9.83691178944935 | erot = 14.4145092716249 | epot = -133.22233410367 | etot = -108.970913042596 +865000 ekin = 9.70884152940973 | erot = 14.4808352209294 | epot = -132.563697713287 | etot = -108.374020962948 +866000 ekin = 9.11283566820104 | erot = 14.5204631481052 | epot = -131.937901154687 | etot = -108.304602338381 +867000 ekin = 9.2135658001457 | erot = 15.2722616926324 | epot = -131.396165375322 | etot = -106.910337882544 +868000 ekin = 9.07317508153068 | erot = 15.2281990898813 | epot = -131.118523212643 | etot = -106.817149041231 +869000 ekin = 9.56719467261706 | erot = 12.8413524494189 | epot = -131.01323487078 | etot = -108.604687748744 +870000 ekin = 9.72249968111539 | erot = 13.7134538695638 | epot = -131.218120667046 | etot = -107.782167116366 +871000 ekin = 9.85996645893833 | erot = 13.6635792026521 | epot = -131.558103225477 | etot = -108.034557563886 +872000 ekin = 10.4752428180374 | erot = 11.8752328723624 | epot = -131.888428620607 | etot = -109.537952930207 +873000 ekin = 10.8938008841087 | erot = 12.8115939555363 | epot = -132.291734739806 | etot = -108.58633990016 +874000 ekin = 10.8667098405276 | erot = 12.7998561629061 | epot = -132.641951772155 | etot = -108.975385768721 +875000 ekin = 11.5409462432229 | erot = 12.4790882752089 | epot = -132.897239389184 | etot = -108.877204870753 +876000 ekin = 12.2883954932043 | erot = 10.1693017030717 | epot = -133.13826440665 | etot = -110.680567210374 +877000 ekin = 11.9868365460025 | erot = 11.1973354913962 | epot = -133.277164876379 | etot = -110.092992838981 +878000 ekin = 11.7960623014163 | erot = 11.5665973071625 | epot = -133.204556406453 | etot = -109.841896797874 +879000 ekin = 11.3794101440003 | erot = 12.3887904161458 | epot = -133.070672059809 | etot = -109.302471499663 +880000 ekin = 10.7473007273139 | erot = 12.155950661048 | epot = -132.937567335563 | etot = -110.034315947201 +881000 ekin = 11.0382243859572 | erot = 11.3700738104817 | epot = -132.69132443217 | etot = -110.283026235731 +882000 ekin = 11.0268715692644 | erot = 11.2476396846495 | epot = -132.362248590805 | etot = -110.087737336891 +883000 ekin = 11.0960831022765 | erot = 12.1675015631156 | epot = -132.006051221569 | etot = -108.742466556177 +884000 ekin = 10.4356706372254 | erot = 14.3790792419536 | epot = -131.703683205292 | etot = -106.888933326113 +885000 ekin = 10.1809074114291 | erot = 12.6512885344041 | epot = -131.510977940224 | etot = -108.678781994391 +886000 ekin = 9.88536804636765 | erot = 14.3207405049851 | epot = -131.378147411038 | etot = -107.172038859686 +887000 ekin = 9.62079843372949 | erot = 15.0371337320698 | epot = -131.400485267651 | etot = -106.742553101851 +888000 ekin = 9.73389413938928 | erot = 15.1710263384175 | epot = -131.650272106319 | etot = -106.745351628512 +889000 ekin = 9.34497189726216 | erot = 17.4864380141716 | epot = -132.135997200666 | etot = -105.304587289232 +890000 ekin = 9.50892312765913 | erot = 17.8223441845159 | epot = -132.732936870751 | etot = -105.401669558576 +891000 ekin = 9.34170617038541 | erot = 20.6177451138689 | epot = -133.434405161174 | etot = -103.47495387692 +892000 ekin = 9.22652718687059 | erot = 22.2205451959243 | epot = -134.045766158437 | etot = -102.598693775642 +893000 ekin = 9.51353526251288 | erot = 21.3492467917455 | epot = -134.582423327744 | etot = -103.719641273486 +894000 ekin = 9.68540627216124 | erot = 20.7203124322274 | epot = -134.963692741512 | etot = -104.557974037123 +895000 ekin = 9.95671082160135 | erot = 20.8661564008034 | epot = -135.108391715319 | etot = -104.285524492914 +896000 ekin = 9.25648303222798 | erot = 18.4512526441791 | epot = -135.123937491507 | etot = -107.4162018151 +897000 ekin = 9.53459318473638 | erot = 19.0120970545174 | epot = -134.990076473698 | etot = -106.443386234444 +898000 ekin = 9.77485480011757 | erot = 21.0086049051177 | epot = -134.565691552272 | etot = -103.782231847037 +899000 ekin = 10.4975912485659 | erot = 21.3211384106303 | epot = -134.121541482168 | etot = -102.302811822972 +900000 ekin = 10.7040034570073 | erot = 20.7049887334994 | epot = -133.718651895895 | etot = -102.309659705389 +901000 ekin = 11.3149377516008 | erot = 18.3638364663083 | epot = -133.36706652203 | etot = -103.688292304121 +902000 ekin = 11.0832893000046 | erot = 21.0463442003965 | epot = -133.101677545994 | etot = -100.972044045593 +903000 ekin = 10.8652645352773 | erot = 17.5135253954939 | epot = -132.746316141513 | etot = -104.367526210742 +904000 ekin = 10.9199231545732 | erot = 16.5086841323364 | epot = -132.400898639401 | etot = -104.972291352492 +905000 ekin = 11.8265529183729 | erot = 14.2338803732188 | epot = -132.222926764547 | etot = -106.162493472955 +906000 ekin = 12.1112443730427 | erot = 13.9046851351739 | epot = -132.108887856991 | etot = -106.092958348775 +907000 ekin = 12.7249921890105 | erot = 14.8976247467494 | epot = -131.902848545294 | etot = -104.280231609534 +908000 ekin = 13.6491269150615 | erot = 13.1132074135062 | epot = -131.679328194016 | etot = -104.916993865448 +909000 ekin = 13.4654192893617 | erot = 12.4026216006941 | epot = -131.510323746492 | etot = -105.642282856436 +910000 ekin = 13.3669089746771 | erot = 12.2515043108096 | epot = -131.279564850064 | etot = -105.661151564577 +911000 ekin = 13.1803758942232 | erot = 12.3776233805492 | epot = -130.939217067511 | etot = -105.381217792738 +912000 ekin = 13.4936182562076 | erot = 13.0646784895681 | epot = -130.523318371126 | etot = -103.965021625351 +913000 ekin = 13.4654133940855 | erot = 12.7992887229988 | epot = -130.057711790665 | etot = -103.793009673581 +914000 ekin = 13.2424883715306 | erot = 12.5762407989739 | epot = -129.735396069255 | etot = -103.916666898751 +915000 ekin = 13.7568260961906 | erot = 11.979358786625 | epot = -129.408246543188 | etot = -103.672061660372 +916000 ekin = 13.8329970070235 | erot = 13.4868801631182 | epot = -129.017837864616 | etot = -101.697960694474 +917000 ekin = 13.6739342498415 | erot = 14.0172019245937 | epot = -128.74257584105 | etot = -101.051439666615 +918000 ekin = 13.245471595107 | erot = 15.951967354764 | epot = -128.617123842226 | etot = -99.4196848923551 +919000 ekin = 12.9797138485786 | erot = 14.9345708711274 | epot = -128.733889181863 | etot = -100.819604462157 +920000 ekin = 12.2436001260489 | erot = 13.6267663169795 | epot = -128.905668726167 | etot = -103.035302283138 +921000 ekin = 11.6805154863491 | erot = 14.6040007578678 | epot = -129.025116647105 | etot = -102.740600402888 +922000 ekin = 11.2509613017982 | erot = 13.1615261905601 | epot = -129.013398954601 | etot = -104.600911462243 +923000 ekin = 11.0530387912639 | erot = 14.8051452828429 | epot = -128.882878859975 | etot = -103.024694785868 +924000 ekin = 10.864428957365 | erot = 14.5487695471967 | epot = -128.635895835237 | etot = -103.222697330675 +925000 ekin = 10.4368013074651 | erot = 15.9506322379272 | epot = -128.538691204592 | etot = -102.1512576592 +926000 ekin = 10.8708234501058 | erot = 14.499435338498 | epot = -128.530880030449 | etot = -103.160621241845 +927000 ekin = 10.1756205898105 | erot = 14.9151755779541 | epot = -128.657945645067 | etot = -103.567149477302 +928000 ekin = 9.79032376464694 | erot = 15.1711554438299 | epot = -128.994657707943 | etot = -104.033178499466 +929000 ekin = 10.0135841647818 | erot = 13.5327974045767 | epot = -129.564299260408 | etot = -106.01791769105 +930000 ekin = 10.7232337588077 | erot = 14.4150772232789 | epot = -130.372253794754 | etot = -105.233942812668 +931000 ekin = 10.957250201845 | erot = 15.0298851642653 | epot = -131.309548641823 | etot = -105.322413275712 +932000 ekin = 11.3959980921443 | erot = 14.9867277427775 | epot = -132.358040832085 | etot = -105.975314997164 +933000 ekin = 12.4008984499258 | erot = 15.1859215644479 | epot = -133.399347144136 | etot = -105.812527129763 +934000 ekin = 12.8178650688633 | erot = 14.1063647076232 | epot = -134.260016847604 | etot = -107.335787071118 +935000 ekin = 13.4125148241317 | erot = 15.5991487655469 | epot = -135.013664838076 | etot = -106.002001248398 +936000 ekin = 13.5923426534851 | erot = 17.2538639887924 | epot = -135.505358908873 | etot = -104.659152266595 +937000 ekin = 13.4400246720306 | erot = 16.0596443449443 | epot = -135.603355890124 | etot = -106.103686873149 +938000 ekin = 13.6103529372685 | erot = 15.1920952210033 | epot = -135.267026708504 | etot = -106.464578550232 +939000 ekin = 13.2221334283198 | erot = 14.3711020679947 | epot = -134.526020035158 | etot = -106.932784538844 +940000 ekin = 13.0406740143487 | erot = 13.3893112135224 | epot = -133.398922419693 | etot = -106.968937191822 +941000 ekin = 11.7807611095563 | erot = 12.6169081908774 | epot = -132.064733106846 | etot = -107.667063806413 +942000 ekin = 10.8560631703933 | erot = 12.1028950338682 | epot = -130.673314662297 | etot = -107.714356458035 +943000 ekin = 10.5643065816831 | erot = 11.8423377277436 | epot = -129.594814920542 | etot = -107.188170611116 +944000 ekin = 10.370989663475 | erot = 12.0833746672059 | epot = -128.740658913622 | etot = -106.286294582941 +945000 ekin = 10.2962804558076 | erot = 13.1799266129607 | epot = -128.223752772124 | etot = -104.747545703355 +946000 ekin = 11.3534838321474 | erot = 12.7383974360111 | epot = -128.032202727824 | etot = -103.940321459666 +947000 ekin = 12.071576442379 | erot = 13.711541060477 | epot = -128.004967672372 | etot = -102.221850169516 +948000 ekin = 12.1245321275793 | erot = 12.6107396971468 | epot = -128.117296095249 | etot = -103.382024270523 +949000 ekin = 12.90805889959 | erot = 11.8866900148027 | epot = -128.337539014419 | etot = -103.542790100027 +950000 ekin = 13.3527995691362 | erot = 12.6583339419699 | epot = -128.832022322223 | etot = -102.820888811117 +951000 ekin = 14.0353166034226 | erot = 12.4887352237453 | epot = -129.414227058798 | etot = -102.89017523163 +952000 ekin = 14.4539614182342 | erot = 15.5615058449647 | epot = -129.957345323999 | etot = -99.9418780608004 +953000 ekin = 15.3508256645353 | erot = 15.6454407354306 | epot = -130.579053532496 | etot = -99.5827871325296 +954000 ekin = 15.9073052013717 | erot = 14.8907336374863 | epot = -130.944475184772 | etot = -100.146436345914 +955000 ekin = 17.0707787056887 | erot = 16.1503176017207 | epot = -131.120438402122 | etot = -97.8993420947125 +956000 ekin = 18.4222164929532 | erot = 15.6543247459001 | epot = -131.085064350135 | etot = -97.0085231112819 +957000 ekin = 18.2181636890142 | erot = 16.8789809387867 | epot = -130.704563934414 | etot = -95.6074193066135 +958000 ekin = 18.7457849087942 | erot = 15.2649074372207 | epot = -129.893126844032 | etot = -95.882434498017 +959000 ekin = 18.8948326127131 | erot = 14.8187025948101 | epot = -128.827607813188 | etot = -95.1140726056646 +960000 ekin = 17.9232164812531 | erot = 14.5006592659995 | epot = -127.512494075793 | etot = -95.0886183285401 +961000 ekin = 17.5283007778538 | erot = 13.6318013254001 | epot = -125.965759972438 | etot = -94.8056578691841 +962000 ekin = 17.1087856720778 | erot = 13.5209597244085 | epot = -124.308831476352 | etot = -93.6790860798655 +963000 ekin = 16.2294672761422 | erot = 12.0982940138005 | epot = -122.756343433097 | etot = -94.4285821431539 +964000 ekin = 15.217906775052 | erot = 11.3466076337834 | epot = -121.35364013365 | etot = -94.7891257248148 +965000 ekin = 14.4571904869347 | erot = 11.1958015829203 | epot = -120.159287462331 | etot = -94.5062953924763 +966000 ekin = 13.713691048934 | erot = 12.2763392569664 | epot = -119.373509436091 | etot = -93.383479130191 +967000 ekin = 13.0525275313628 | erot = 13.3325378981858 | epot = -118.754627961849 | etot = -92.3695625323 +968000 ekin = 12.6258253330282 | erot = 13.6667960669937 | epot = -118.263761246798 | etot = -91.9711398467763 +969000 ekin = 12.093963793091 | erot = 12.6851784652315 | epot = -118.10172157237 | etot = -93.322579314047 +970000 ekin = 12.2814352863516 | erot = 13.1741722808913 | epot = -118.084891935487 | etot = -92.6292843682446 +971000 ekin = 12.336963793396 | erot = 14.287178261779 | epot = -118.240142548498 | etot = -91.6160004933226 +972000 ekin = 12.7123353326953 | erot = 15.0155999303371 | epot = -118.41298000455 | etot = -90.6850447415176 +973000 ekin = 13.0472009182221 | erot = 16.2295024444777 | epot = -118.471843214116 | etot = -89.1951398514163 +974000 ekin = 12.388354969002 | erot = 17.4722487948746 | epot = -118.364598615294 | etot = -88.5039948514174 +975000 ekin = 11.9685102758026 | erot = 15.3885917283584 | epot = -118.090409410582 | etot = -90.7333074064213 +976000 ekin = 11.3088073476216 | erot = 15.2854132762829 | epot = -117.800271375519 | etot = -91.2060507516144 +977000 ekin = 10.8710842145684 | erot = 15.2909542063552 | epot = -117.349796621949 | etot = -91.1877582010249 +978000 ekin = 10.817860138762 | erot = 13.2276696679694 | epot = -117.117297916081 | etot = -93.0717681093499 +979000 ekin = 11.0709902353881 | erot = 12.5293846344496 | epot = -117.175595959156 | etot = -93.5752210893179 +980000 ekin = 11.2965161569289 | erot = 11.1601040800375 | epot = -117.277906119498 | etot = -94.8212858825316 +981000 ekin = 11.6690570838973 | erot = 10.7736458692936 | epot = -117.768958129291 | etot = -95.3262551760997 +982000 ekin = 12.1575161392224 | erot = 11.9678903157896 | epot = -118.550912187072 | etot = -94.4255057320603 +983000 ekin = 12.4067474872099 | erot = 12.7193186844112 | epot = -119.304867426008 | etot = -94.1788012543873 +984000 ekin = 13.5940880425583 | erot = 13.7165337446016 | epot = -120.273805342163 | etot = -92.9631835550026 +985000 ekin = 13.8874336321484 | erot = 14.1076224004122 | epot = -121.273851753427 | etot = -93.2787957208661 +986000 ekin = 14.1136768141539 | erot = 14.3150637930082 | epot = -122.271363839249 | etot = -93.8426232320867 +987000 ekin = 14.5776610706687 | erot = 15.5141413343671 | epot = -123.255640154049 | etot = -93.1638377490135 +988000 ekin = 14.821884995834 | erot = 15.312967168187 | epot = -124.232918811331 | etot = -94.0980666473104 +989000 ekin = 15.646855689107 | erot = 16.5736195699528 | epot = -125.090514341493 | etot = -92.8700390824336 +990000 ekin = 16.1676158963034 | erot = 18.2046608708844 | epot = -125.736029858856 | etot = -91.3637530916681 +991000 ekin = 16.9467094059315 | erot = 20.3489064269837 | epot = -126.034194682764 | etot = -88.7385788498484 +992000 ekin = 17.1946688955272 | erot = 20.6446832139068 | epot = -126.023723568376 | etot = -88.1843714589421 +993000 ekin = 17.0492861030736 | erot = 20.2357766473302 | epot = -125.775974072184 | etot = -88.4909113217802 +994000 ekin = 17.2852712785184 | erot = 21.9253125145711 | epot = -125.462594884831 | etot = -86.2520110917411 +995000 ekin = 16.9781200706309 | erot = 23.024520231669 | epot = -125.08695964599 | etot = -85.0843193436903 +996000 ekin = 17.1233597247117 | erot = 20.1219478311412 | epot = -124.661238194914 | etot = -87.415930639061 +997000 ekin = 16.9435496098567 | erot = 19.2980117125048 | epot = -124.068366062786 | etot = -87.826804740424 +998000 ekin = 17.0875482949223 | erot = 19.7008126514126 | epot = -123.301709192639 | etot = -86.5133482463046 +999000 ekin = 17.3864595030106 | erot = 19.031153747846 | epot = -122.410040365131 | etot = -85.9924271142742 +1000000 ekin = 17.4266501863313 | erot = 15.93443523795 | epot = -121.571786609929 | etot = -88.2107011856477 + 1000000 389.752 -124.64554 3.0737557 -104.14514 0.13705163 39304000 +Loop time of 26.5237 on 1 procs for 1000000 steps with 16 atoms + +Performance: 55.572 ns/day, 0.432 hours/ns, 37702.162 timesteps/s, 603.235 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 21.515 | 21.515 | 21.515 | 0.0 | 81.12 +Bond | 0.75114 | 0.75114 | 0.75114 | 0.0 | 2.83 +Neigh | 0.007053 | 0.007053 | 0.007053 | 0.0 | 0.03 +Comm | 0.28128 | 0.28128 | 0.28128 | 0.0 | 1.06 +Output | 0.13963 | 0.13963 | 0.13963 | 0.0 | 0.53 +Modify | 3.4968 | 3.4968 | 3.4968 | 0.0 | 13.18 +Other | | 0.3331 | | | 1.26 + +Nlocal: 16 ave 16 max 16 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 107 ave 107 max 107 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:26 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 new file mode 100644 index 0000000000..cd89d65300 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -125.483166681887 | etot = -92.6645914514142 +Per MPI rank memory allocation (min/avg/max) = 7.569 | 7.598 | 7.682 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -129.82524 4.3420686 -109.36284 0.039706925 39304000 +1000 ekin = 16.2120472606819 | erot = 18.1599496095378 | epot = -124.47446317797 | etot = -90.1024663077499 +2000 ekin = 16.569523519944 | erot = 14.9387890105384 | epot = -123.413037171619 | etot = -91.9047246411363 +3000 ekin = 16.4908981186509 | erot = 13.6022192081955 | epot = -122.618623142256 | etot = -92.5255058154098 +4000 ekin = 16.1079626485056 | erot = 13.5539684119038 | epot = -122.040001090416 | etot = -92.3780700300069 +5000 ekin = 15.7490458706807 | erot = 13.7529778402768 | epot = -121.760686807838 | etot = -92.2586630968809 +6000 ekin = 15.8428165570837 | erot = 14.2502773311176 | epot = -121.767450145962 | etot = -91.6743562577603 +7000 ekin = 15.9930293388895 | erot = 13.8930009158471 | epot = -122.067912874246 | etot = -92.1818826195096 +8000 ekin = 15.4451133848386 | erot = 12.249209392774 | epot = -122.594420596747 | etot = -94.9000978191339 +9000 ekin = 15.8183735214535 | erot = 12.6133069460231 | epot = -123.340212226912 | etot = -94.9085317594357 +10000 ekin = 16.535439472141 | erot = 15.2936296416421 | epot = -124.081517045064 | etot = -92.2524479312809 +11000 ekin = 15.9395821485727 | erot = 17.2008757458576 | epot = -124.746525377503 | etot = -91.6060674830729 +12000 ekin = 16.0567583424423 | erot = 15.8997870466905 | epot = -125.443598760626 | etot = -93.4870533714936 +13000 ekin = 16.5926769852673 | erot = 15.6504724986658 | epot = -126.226565885733 | etot = -93.9834164017998 +14000 ekin = 16.9649776823382 | erot = 14.5154924112931 | epot = -126.96779874908 | etot = -95.4873286554489 +15000 ekin = 17.2219022906044 | erot = 14.4222207314166 | epot = -127.675598676166 | etot = -96.0314756541453 +16000 ekin = 17.9281730599184 | erot = 15.6859352211796 | epot = -128.337601046979 | etot = -94.7234927658809 +17000 ekin = 18.4043998368515 | erot = 15.0909736720528 | epot = -128.832635802353 | etot = -95.3372622934491 +18000 ekin = 17.7394231189163 | erot = 15.1306161764218 | epot = -129.023891968365 | etot = -96.1538526730274 +19000 ekin = 17.1958950052057 | erot = 15.1680082581212 | epot = -128.898186954897 | etot = -96.5342836915701 +20000 ekin = 15.8516332333669 | erot = 16.7058914738762 | epot = -128.507784811667 | etot = -95.950260104424 +21000 ekin = 15.3509821386759 | erot = 16.3911313534803 | epot = -127.947905478546 | etot = -96.2057919863899 +22000 ekin = 15.1100010513728 | erot = 16.3348681764445 | epot = -127.221649361758 | etot = -95.776780133941 +23000 ekin = 14.3101532123339 | erot = 14.38065004198 | epot = -126.406723576818 | etot = -97.7159203225042 +24000 ekin = 14.0207984762248 | erot = 12.5239038407953 | epot = -125.590087936679 | etot = -99.0453856196591 +25000 ekin = 13.3656192606566 | erot = 13.0304610110196 | epot = -124.906913530424 | etot = -98.5108332587476 +26000 ekin = 12.8395028721761 | erot = 14.6487786191907 | epot = -124.40414059954 | etot = -96.9158591081734 +27000 ekin = 11.5343405898753 | erot = 13.9892144028629 | epot = -124.200412248635 | etot = -98.6768572558971 +28000 ekin = 10.5463186496732 | erot = 14.3895195737251 | epot = -124.136381678731 | etot = -99.2005434553325 +29000 ekin = 10.4413332151611 | erot = 13.1777197784759 | epot = -124.323320612244 | etot = -100.704267618607 +30000 ekin = 10.0863233068856 | erot = 14.5118674812463 | epot = -124.667168249704 | etot = -100.068977461572 +31000 ekin = 10.2842652760412 | erot = 13.8593404324917 | epot = -125.254827370216 | etot = -101.111221661683 +32000 ekin = 11.0369237762493 | erot = 14.1309061312588 | epot = -126.01859175301 | etot = -100.850761845502 +33000 ekin = 11.5007214031922 | erot = 15.2138037514642 | epot = -126.914330568133 | etot = -100.199805413476 +34000 ekin = 11.1182029321626 | erot = 16.1228716001976 | epot = -128.05001788579 | etot = -100.808943353429 +35000 ekin = 10.8779964621956 | erot = 17.1808476098023 | epot = -129.33602603389 | etot = -101.277181961892 +36000 ekin = 11.082269976749 | erot = 16.6476821828852 | epot = -130.561343979461 | etot = -102.831391819827 +37000 ekin = 11.4960912442145 | erot = 17.4508107490648 | epot = -131.749068125386 | etot = -102.802166132107 +38000 ekin = 11.540532301831 | erot = 17.3078054067146 | epot = -132.764750072109 | etot = -103.916412363563 +39000 ekin = 11.985585634338 | erot = 17.5545572023683 | epot = -133.413693734028 | etot = -103.873550897322 +40000 ekin = 11.7470487263253 | erot = 17.4817657014378 | epot = -133.649887617672 | etot = -104.421073189909 +41000 ekin = 12.2634865503825 | erot = 15.9871744208477 | epot = -133.426518105126 | etot = -105.175857133896 +42000 ekin = 12.4634607835446 | erot = 16.072423199732 | epot = -132.888182004717 | etot = -104.35229802144 +43000 ekin = 12.0280103186908 | erot = 17.0183381277729 | epot = -132.109289199579 | etot = -103.062940753116 +44000 ekin = 11.4533011936261 | erot = 16.3340923459992 | epot = -131.295267862326 | etot = -103.5078743227 +45000 ekin = 10.7999971045082 | erot = 13.9453977962157 | epot = -130.566579774554 | etot = -105.82118487383 +46000 ekin = 10.1573148188648 | erot = 14.2465323252113 | epot = -129.933743276335 | etot = -105.529896132259 +47000 ekin = 9.90460787337496 | erot = 14.4980301987449 | epot = -129.32572061471 | etot = -104.92308254259 +48000 ekin = 9.57482091658498 | erot = 13.9987597050574 | epot = -128.711079823658 | etot = -105.137499202016 +49000 ekin = 9.09869677847911 | erot = 11.9262331183526 | epot = -128.201132750429 | etot = -107.176202853598 +50000 ekin = 8.59869176900111 | erot = 12.7238230334899 | epot = -127.833681811867 | etot = -106.511167009376 +51000 ekin = 8.5560087809789 | erot = 13.2937103598389 | epot = -127.458455063941 | etot = -105.608735923124 +52000 ekin = 8.45898358416097 | erot = 13.9183872238093 | epot = -127.22295075507 | etot = -104.8455799471 +53000 ekin = 8.95038819360825 | erot = 15.2829158001115 | epot = -127.176760860616 | etot = -102.943456866896 +54000 ekin = 9.12636274601647 | erot = 16.0621861658105 | epot = -127.241822388736 | etot = -102.053273476909 +55000 ekin = 9.37067262891952 | erot = 13.5370426745154 | epot = -127.353337400326 | etot = -104.445622096891 +56000 ekin = 8.92864226769998 | erot = 13.8952867853169 | epot = -127.52558177761 | etot = -104.701652724593 +57000 ekin = 8.96111715728989 | erot = 13.0396084653198 | epot = -127.808773485405 | etot = -105.808047862795 +58000 ekin = 9.35290907712123 | erot = 12.207612454997 | epot = -128.122352298152 | etot = -106.561830766034 +59000 ekin = 9.80451483320095 | erot = 12.4719934378628 | epot = -128.460109139872 | etot = -106.183600868808 +60000 ekin = 9.63961327714338 | erot = 13.6847336250955 | epot = -128.801154119214 | etot = -105.476807216975 +61000 ekin = 9.88934744800937 | erot = 12.5700101459246 | epot = -129.112108659886 | etot = -106.652751065952 +62000 ekin = 10.2728522782004 | erot = 13.7351395476234 | epot = -129.420335839955 | etot = -105.412344014131 +63000 ekin = 10.065327094074 | erot = 14.5055694779404 | epot = -129.670935318905 | etot = -105.10003874689 +64000 ekin = 10.6077832590941 | erot = 14.5413589291215 | epot = -129.867436868682 | etot = -104.718294680467 +65000 ekin = 10.2070111202922 | erot = 12.2544685960014 | epot = -129.975030414929 | etot = -107.513550698635 +66000 ekin = 10.2705974523514 | erot = 11.2800758761698 | epot = -129.99766952337 | etot = -108.446996194848 +67000 ekin = 10.7977441576603 | erot = 11.7528672948382 | epot = -130.114021659652 | etot = -107.563410207154 +68000 ekin = 11.4530491820265 | erot = 12.1985287417039 | epot = -130.293536175385 | etot = -106.641958251655 +69000 ekin = 11.6726943706713 | erot = 11.9642905500376 | epot = -130.544044272992 | etot = -106.907059352283 +70000 ekin = 12.2017006547911 | erot = 11.903305051201 | epot = -130.797559448952 | etot = -106.69255374296 +71000 ekin = 12.5064639577622 | erot = 11.9877984919706 | epot = -131.038782646501 | etot = -106.544520196768 +72000 ekin = 12.9485830535661 | erot = 13.0020474543087 | epot = -131.254935899906 | etot = -105.304305392031 +73000 ekin = 12.8299582560721 | erot = 14.6117237971354 | epot = -131.393018046916 | etot = -103.951335993709 +74000 ekin = 12.8939000526903 | erot = 12.863379794407 | epot = -131.352988231491 | etot = -105.595708384394 +75000 ekin = 12.7834866734293 | erot = 11.8117510534404 | epot = -131.260283186287 | etot = -106.665045459417 +76000 ekin = 13.3960728764203 | erot = 11.3061825907132 | epot = -131.133000018296 | etot = -106.430744551163 +77000 ekin = 13.3506974256507 | erot = 10.6864897054065 | epot = -130.952178599563 | etot = -106.914991468506 +78000 ekin = 13.422616631272 | erot = 10.809288310476 | epot = -130.758449837676 | etot = -106.526544895928 +79000 ekin = 13.5522973868191 | erot = 10.2030460888822 | epot = -130.503000220167 | etot = -106.747656744465 +80000 ekin = 14.272930353697 | erot = 8.09068479901647 | epot = -130.335854340126 | etot = -107.972239187413 +81000 ekin = 14.7483373328775 | erot = 9.22788595009487 | epot = -130.292625422183 | etot = -106.316402139211 +82000 ekin = 14.7432002071379 | erot = 9.40559435823131 | epot = -130.460105684669 | etot = -106.3113111193 +83000 ekin = 14.8287148416254 | erot = 10.1996443017361 | epot = -130.683921749615 | etot = -105.655562606254 +84000 ekin = 14.5951355381267 | erot = 12.0076426338427 | epot = -130.967249728639 | etot = -104.364471556669 +85000 ekin = 14.2835684903196 | erot = 13.8561283096132 | epot = -131.272994170087 | etot = -103.133297370154 +86000 ekin = 14.8326007867755 | erot = 11.7433108614628 | epot = -131.598596847379 | etot = -105.022685199141 +87000 ekin = 15.377532027873 | erot = 13.4564864072052 | epot = -131.970461301035 | etot = -103.136442865957 +88000 ekin = 16.0704430530011 | erot = 12.7408979774288 | epot = -132.317209652762 | etot = -103.505868622332 +89000 ekin = 16.2384695416373 | erot = 12.6191474341066 | epot = -132.709278600647 | etot = -103.851661624903 +90000 ekin = 16.5589625740267 | erot = 13.7646041545352 | epot = -133.142837994896 | etot = -102.819271266334 +91000 ekin = 16.5798313044953 | erot = 12.2950789135552 | epot = -133.519810794057 | etot = -104.644900576007 +92000 ekin = 16.8149166982992 | erot = 13.5657763083527 | epot = -133.822370527519 | etot = -103.441677520867 +93000 ekin = 16.3468786274472 | erot = 16.2860240192009 | epot = -134.011144678878 | etot = -101.37824203223 +94000 ekin = 16.129418375386 | erot = 16.8197062829578 | epot = -133.975094228095 | etot = -101.025969569751 +95000 ekin = 15.5011453839587 | erot = 17.153924576623 | epot = -133.751136697246 | etot = -101.096066736664 +96000 ekin = 15.652864748389 | erot = 18.7447477546217 | epot = -133.316856446679 | etot = -98.9192439436683 +97000 ekin = 15.1104279096655 | erot = 16.6300340283484 | epot = -132.646862391269 | etot = -100.906400453255 +98000 ekin = 15.7145979364048 | erot = 16.4999837372548 | epot = -132.047118805611 | etot = -99.8325371319517 +99000 ekin = 15.8228787425697 | erot = 16.6038361390489 | epot = -131.431821451522 | etot = -99.0051065699033 +100000 ekin = 15.5866410695988 | erot = 13.1190119540921 | epot = -130.864326580534 | etot = -102.158673556844 +101000 ekin = 15.1760812578527 | erot = 14.1257247435813 | epot = -130.407298723861 | etot = -101.105492722427 +102000 ekin = 14.9747704074343 | erot = 15.55879466272 | epot = -130.093565418176 | etot = -99.5600003480214 +103000 ekin = 14.7283962421382 | erot = 14.7231563764552 | epot = -129.93130638542 | etot = -100.479753766827 +104000 ekin = 14.6842119984616 | erot = 14.8440501791524 | epot = -129.892111822322 | etot = -100.363849644708 +105000 ekin = 14.2242158829698 | erot = 15.6391466981361 | epot = -129.905346426968 | etot = -100.041983845863 +106000 ekin = 13.8024473592344 | erot = 16.4859046142194 | epot = -129.912957387822 | etot = -99.6246054143686 +107000 ekin = 14.0489890701029 | erot = 15.8530920706999 | epot = -129.796538854505 | etot = -99.8944577137018 +108000 ekin = 13.7038910056907 | erot = 15.9635579237138 | epot = -129.555843708098 | etot = -99.8883947786939 +109000 ekin = 13.8779017778047 | erot = 17.5117500859534 | epot = -129.19188012202 | etot = -97.8022282582618 +110000 ekin = 13.5575931419463 | erot = 16.9475088674233 | epot = -128.691334815466 | etot = -98.1862328060965 +111000 ekin = 12.9775620699513 | erot = 14.939714004598 | epot = -127.964290623475 | etot = -100.047014548925 +112000 ekin = 13.0251229242144 | erot = 15.2072508797571 | epot = -126.97429168144 | etot = -98.7419178774685 +113000 ekin = 12.9511649405078 | erot = 13.989248422947 | epot = -125.858806371225 | etot = -98.9183930077706 +114000 ekin = 12.6655947173484 | erot = 14.1639814323438 | epot = -124.757194166389 | etot = -97.9276180166963 +115000 ekin = 12.2870506907596 | erot = 15.4380115846647 | epot = -123.762265142761 | etot = -96.0372028673364 +116000 ekin = 11.9569980647881 | erot = 15.7199780890902 | epot = -122.984476564825 | etot = -95.3075004109468 +117000 ekin = 11.9419697244606 | erot = 15.31088294377 | epot = -122.390478165697 | etot = -95.1376254974661 +118000 ekin = 12.0271503107112 | erot = 14.7200107326366 | epot = -121.920888323926 | etot = -95.1737272805785 +119000 ekin = 11.8399838787179 | erot = 13.5169297141694 | epot = -121.79296629031 | etot = -96.4360526974225 +120000 ekin = 11.5952370535119 | erot = 13.9311166225038 | epot = -121.87490833569 | etot = -96.3485546596742 +121000 ekin = 12.6873846089302 | erot = 14.1262982709265 | epot = -122.214797270773 | etot = -95.4011143909168 +122000 ekin = 12.5508137987138 | erot = 14.8322404188171 | epot = -122.66356039555 | etot = -95.2805061780189 +123000 ekin = 12.9717558281494 | erot = 16.9441051423025 | epot = -123.218059619813 | etot = -93.3021986493609 +124000 ekin = 13.0941543238075 | erot = 16.7664444883521 | epot = -123.78136790574 | etot = -93.9207690935806 +125000 ekin = 13.3545923651314 | erot = 16.9681165575983 | epot = -124.226447493135 | etot = -93.9037385704057 +126000 ekin = 13.707558189241 | erot = 18.6525076646813 | epot = -124.389431605693 | etot = -92.0293657517703 +127000 ekin = 13.9848596504427 | erot = 17.6900678829788 | epot = -124.293801107362 | etot = -92.6188735739405 +128000 ekin = 14.1880153054711 | erot = 14.2986913212233 | epot = -123.895716239617 | etot = -95.4090096129227 +129000 ekin = 14.234396145267 | erot = 12.7929057082143 | epot = -123.45812641228 | etot = -96.4308245587985 +130000 ekin = 13.5490297830189 | erot = 12.3291422436536 | epot = -123.296381301787 | etot = -97.4182092751146 +131000 ekin = 13.625205801969 | erot = 11.5702974231324 | epot = -123.031383858288 | etot = -97.8358806331869 +132000 ekin = 13.5140871505802 | erot = 10.247163811581 | epot = -122.67647424975 | etot = -98.9152232875892 +133000 ekin = 13.6598880155314 | erot = 9.71281275821937 | epot = -122.46511358521 | etot = -99.0924128114592 +134000 ekin = 13.4307752775482 | erot = 10.0356307711687 | epot = -122.323515330483 | etot = -98.8571092817659 +135000 ekin = 12.7746194032244 | erot = 11.0989148526186 | epot = -122.247485302774 | etot = -98.373951046931 +136000 ekin = 12.6978264396143 | erot = 12.1866872670237 | epot = -122.334952758206 | etot = -97.4504390515682 +137000 ekin = 12.3859103295768 | erot = 10.9182734103843 | epot = -122.6462867818 | etot = -99.3421030418394 +138000 ekin = 12.8189864970097 | erot = 11.9822682899718 | epot = -123.216509840159 | etot = -98.4152550531773 +139000 ekin = 13.1473296340096 | erot = 11.606982629379 | epot = -123.964698056414 | etot = -99.2103857930249 +140000 ekin = 13.9352115952455 | erot = 11.6972955590282 | epot = -124.787751042248 | etot = -99.1552438879742 +141000 ekin = 13.3811194780965 | erot = 13.5865824418213 | epot = -125.585833002472 | etot = -98.618131082554 +142000 ekin = 13.0747467175761 | erot = 13.8713107006678 | epot = -126.319406883241 | etot = -99.3733494649974 +143000 ekin = 12.8272953552334 | erot = 14.2382018654909 | epot = -127.071116756404 | etot = -100.00561953568 +144000 ekin = 12.5334679344975 | erot = 14.327823680682 | epot = -127.797657962991 | etot = -100.936366347812 +145000 ekin = 12.2943940063578 | erot = 13.8915509298887 | epot = -128.529313665204 | etot = -102.343368728958 +146000 ekin = 12.8333200360282 | erot = 13.3977934786392 | epot = -129.049828840935 | etot = -102.818715326267 +147000 ekin = 12.7010559531677 | erot = 13.4121259867142 | epot = -129.520646652199 | etot = -103.407464712317 +148000 ekin = 12.7721670089962 | erot = 13.8565791398843 | epot = -130.116749890466 | etot = -103.488003741585 +149000 ekin = 12.6995854093145 | erot = 13.774115319827 | epot = -130.816929745791 | etot = -104.343229016649 +150000 ekin = 12.5910049048873 | erot = 13.5362581130226 | epot = -131.60533209365 | etot = -105.47806907574 +151000 ekin = 12.4308195325608 | erot = 15.131223262504 | epot = -132.258037592352 | etot = -104.695994797287 +152000 ekin = 12.2263570227432 | erot = 16.3567044291132 | epot = -132.779679077057 | etot = -104.1966176252 +153000 ekin = 11.9878029660899 | erot = 15.6767862263482 | epot = -133.177710574428 | etot = -105.51312138199 +154000 ekin = 12.0409493226744 | erot = 14.2476719151489 | epot = -133.549420303725 | etot = -107.260799065902 +155000 ekin = 12.2489628138608 | erot = 14.3648722436256 | epot = -133.789784491732 | etot = -107.175949434245 +156000 ekin = 12.5366959056766 | erot = 13.8065055190009 | epot = -133.518931221763 | etot = -107.175729797085 +157000 ekin = 13.1233683194156 | erot = 13.4715553874451 | epot = -133.321749867141 | etot = -106.72682616028 +158000 ekin = 12.9231372084689 | erot = 12.0286474507292 | epot = -133.418506326403 | etot = -108.466721667204 +159000 ekin = 13.1550032801976 | erot = 12.140848226174 | epot = -133.505005222597 | etot = -108.209153716226 +160000 ekin = 13.6223635027655 | erot = 12.3202375233747 | epot = -133.503234907302 | etot = -107.560633881162 +161000 ekin = 14.0356746314275 | erot = 12.6036824472307 | epot = -133.453141865727 | etot = -106.813784787069 +162000 ekin = 14.5709613441253 | erot = 12.2296759165728 | epot = -133.469813940545 | etot = -106.669176679847 +163000 ekin = 14.2143277130153 | erot = 13.0014485572518 | epot = -133.573164156585 | etot = -106.357387886318 +164000 ekin = 14.0907957992508 | erot = 13.35520362876 | epot = -133.726631699 | etot = -106.280632270989 +165000 ekin = 14.2128485759295 | erot = 13.5077316121454 | epot = -133.999841482384 | etot = -106.279261294309 +166000 ekin = 14.5186142370211 | erot = 16.3543877375713 | epot = -134.25901295015 | etot = -103.386010975557 +167000 ekin = 13.6918258854853 | erot = 16.8454036000666 | epot = -134.419746517248 | etot = -103.882517031696 +168000 ekin = 14.3098776648963 | erot = 14.1755870556485 | epot = -134.43516075271 | etot = -105.949696032165 +169000 ekin = 13.5304488054452 | erot = 14.8109727207072 | epot = -134.270272523649 | etot = -105.928850997496 +170000 ekin = 13.1993881452602 | erot = 16.2742248259377 | epot = -134.136295378236 | etot = -104.662682407038 +171000 ekin = 13.1662666846495 | erot = 17.3853590919123 | epot = -133.896393655866 | etot = -103.344767879304 +172000 ekin = 13.2344724361955 | erot = 16.2957455512213 | epot = -133.530908487908 | etot = -104.000690500491 +173000 ekin = 12.8404298355402 | erot = 15.4795620322766 | epot = -133.036810695805 | etot = -104.716818827988 +174000 ekin = 12.2170050683911 | erot = 17.0999748910801 | epot = -132.490479377943 | etot = -103.173499418472 +175000 ekin = 11.9828009648797 | erot = 17.133145149998 | epot = -132.167689069114 | etot = -103.051742954236 +176000 ekin = 11.26703485225 | erot = 15.851549107765 | epot = -131.994028988287 | etot = -104.875445028272 +177000 ekin = 10.9532619474729 | erot = 17.642067846262 | epot = -132.042511671925 | etot = -103.44718187819 +178000 ekin = 10.6509076271232 | erot = 19.4227764316798 | epot = -132.427928003959 | etot = -102.354243945156 +179000 ekin = 10.7208239698367 | erot = 18.6233655322233 | epot = -133.155790832988 | etot = -103.811601330928 +180000 ekin = 10.3612059999385 | erot = 20.354599815928 | epot = -134.071492664219 | etot = -103.355686848353 +181000 ekin = 10.9272878765522 | erot = 19.3855669963696 | epot = -134.948573396863 | etot = -104.635718523941 +182000 ekin = 11.0949981109546 | erot = 17.7029229528617 | epot = -135.761049961753 | etot = -106.963128897937 +183000 ekin = 11.9475302429042 | erot = 18.6786204586031 | epot = -136.458952174173 | etot = -105.832801472665 +184000 ekin = 11.9692123796945 | erot = 19.3376307966672 | epot = -137.111375615616 | etot = -105.804532439255 +185000 ekin = 12.0887739463894 | erot = 20.9744943691819 | epot = -137.712001992347 | etot = -104.648733676775 +186000 ekin = 13.202054762524 | erot = 21.7329212691712 | epot = -138.252569528231 | etot = -103.317593496536 +187000 ekin = 14.5309082020313 | erot = 23.0892571841143 | epot = -138.562960481472 | etot = -100.942795095327 +188000 ekin = 14.8209433490932 | erot = 23.75343305623 | epot = -138.799089973348 | etot = -100.224713568024 +189000 ekin = 14.8516226045177 | erot = 22.6496900698373 | epot = -138.813459124407 | etot = -101.312146450052 +190000 ekin = 14.8882648654863 | erot = 20.946385270515 | epot = -138.595991071599 | etot = -102.761340935598 +191000 ekin = 14.4852960600141 | erot = 24.3377616270744 | epot = -137.710510436494 | etot = -98.8874527494057 +192000 ekin = 13.9439508660166 | erot = 23.8205912161901 | epot = -137.15563857902 | etot = -99.3910964968136 +193000 ekin = 13.0416663184277 | erot = 22.3479664160949 | epot = -136.749821307025 | etot = -101.360188572502 +194000 ekin = 12.136786835284 | erot = 20.8747662588234 | epot = -136.044702401027 | etot = -103.03314930692 +195000 ekin = 11.7735893875982 | erot = 19.4986101359151 | epot = -135.123514021607 | etot = -103.851314498094 +196000 ekin = 11.8808319913166 | erot = 17.1680950089713 | epot = -134.106716307269 | etot = -105.057789306981 +197000 ekin = 11.7566768590109 | erot = 14.2024644636955 | epot = -133.123489522261 | etot = -107.164348199554 +198000 ekin = 12.1381550502849 | erot = 13.1478608909175 | epot = -132.078377039903 | etot = -106.792361098701 +199000 ekin = 11.9597697644039 | erot = 13.1448027989405 | epot = -131.146235462498 | etot = -106.041662899154 +200000 ekin = 11.8205052250281 | erot = 14.3431211060147 | epot = -130.284658028576 | etot = -104.121031697533 +201000 ekin = 11.8812457901842 | erot = 14.4190696276244 | epot = -129.633912600305 | etot = -103.333597182497 +202000 ekin = 11.1908338617358 | erot = 14.3880198236556 | epot = -129.01607097923 | etot = -103.437217293839 +203000 ekin = 10.6609899095304 | erot = 14.1109959691538 | epot = -128.442280854454 | etot = -103.67029497577 +204000 ekin = 10.0808080300169 | erot = 14.6140545850541 | epot = -128.095060341458 | etot = -103.400197726387 +205000 ekin = 9.85497388226942 | erot = 15.5585210838952 | epot = -127.927122466239 | etot = -102.513627500074 +206000 ekin = 9.44812789479607 | erot = 16.560521312865 | epot = -127.828616126451 | etot = -101.81996691879 +207000 ekin = 9.2705277605019 | erot = 17.5495451600282 | epot = -127.7733931411 | etot = -100.95332022057 +208000 ekin = 9.05667723692406 | erot = 19.1888521647023 | epot = -127.622114295288 | etot = -99.376584893662 +209000 ekin = 9.32667962585868 | erot = 16.4248042387723 | epot = -127.283274007125 | etot = -101.531790142494 +210000 ekin = 9.34011427208157 | erot = 15.3881595231412 | epot = -126.735487311966 | etot = -102.007213516743 +211000 ekin = 9.51343965667034 | erot = 17.6651633952544 | epot = -126.065186083942 | etot = -98.8865830320172 +212000 ekin = 9.26268095198313 | erot = 15.4307754928622 | epot = -125.390904828464 | etot = -100.697448383618 +213000 ekin = 9.90035137711205 | erot = 16.237888309174 | epot = -124.67685918373 | etot = -98.5386194974435 +214000 ekin = 10.0267139039829 | erot = 15.3739472519941 | epot = -124.070465973723 | etot = -98.6698048177462 +215000 ekin = 10.2479120626749 | erot = 15.168771739759 | epot = -123.5900918068 | etot = -98.1734080043657 +216000 ekin = 10.7089047788332 | erot = 14.6064571242228 | epot = -123.264768153567 | etot = -97.9494062505112 +217000 ekin = 11.2868202815268 | erot = 15.3661782864349 | epot = -123.199040854786 | etot = -96.5460422868244 +218000 ekin = 11.3714971690666 | erot = 16.1553589822711 | epot = -123.363179203944 | etot = -95.8363230526061 +219000 ekin = 11.9010741217101 | erot = 15.4153558945661 | epot = -123.502901563405 | etot = -96.1864715471288 +220000 ekin = 12.3176284529673 | erot = 14.9201703957035 | epot = -123.787250097922 | etot = -96.5494512492515 +221000 ekin = 12.1714171931196 | erot = 14.2434404855463 | epot = -124.232136815822 | etot = -97.8172791371565 +222000 ekin = 12.2749120571917 | erot = 15.2768872539485 | epot = -124.823468086325 | etot = -97.2716687751848 +223000 ekin = 11.7897020552869 | erot = 14.2418293066223 | epot = -125.340319541526 | etot = -99.3087881796173 +224000 ekin = 12.5904708265255 | erot = 14.930049355487 | epot = -125.88307315034 | etot = -98.3625529683271 +225000 ekin = 13.2866427416859 | erot = 14.2177414042972 | epot = -126.451944677199 | etot = -98.947560531216 +226000 ekin = 14.0195514204802 | erot = 12.5131492601281 | epot = -126.861509712119 | etot = -100.328809031511 +227000 ekin = 14.5771739053929 | erot = 13.1226878209367 | epot = -127.216548125261 | etot = -99.5166863989319 +228000 ekin = 15.5098492893988 | erot = 13.724631675258 | epot = -127.526961289958 | etot = -98.2924803253013 +229000 ekin = 15.0379991852038 | erot = 15.0421277675249 | epot = -127.746349010415 | etot = -97.6662220576859 +230000 ekin = 14.9655772073185 | erot = 13.2122719576887 | epot = -127.912255072452 | etot = -99.7344059074447 +231000 ekin = 15.149504681299 | erot = 13.2192000733412 | epot = -127.956385488518 | etot = -99.5876807338778 +232000 ekin = 14.9381216821886 | erot = 14.4783826177061 | epot = -127.959401619599 | etot = -98.5428973197041 +233000 ekin = 14.5541213133396 | erot = 13.4137098644268 | epot = -127.978350373815 | etot = -100.010519196048 +234000 ekin = 14.4321853050326 | erot = 13.7604771949198 | epot = -127.932053105819 | etot = -99.7393906058661 +235000 ekin = 14.075998853953 | erot = 13.0397612447523 | epot = -127.801713655073 | etot = -100.685953556368 +236000 ekin = 14.1218487448576 | erot = 11.738392005745 | epot = -127.657366478895 | etot = -101.797125728292 +237000 ekin = 15.0850886197599 | erot = 10.8875373781651 | epot = -127.711659913863 | etot = -101.739033915938 +238000 ekin = 15.1222712066963 | erot = 12.0017200983468 | epot = -127.784954181148 | etot = -100.660962876105 +239000 ekin = 15.513104649803 | erot = 12.9664032026763 | epot = -128.030344605472 | etot = -99.5508367529925 +240000 ekin = 15.6599113206585 | erot = 14.5571933869969 | epot = -128.497592836165 | etot = -98.2804881285095 +241000 ekin = 15.8824211506483 | erot = 15.651281118972 | epot = -129.031608518898 | etot = -97.4979062492773 +242000 ekin = 15.6531568614874 | erot = 17.9847188762554 | epot = -129.475118370063 | etot = -95.8372426323203 +243000 ekin = 16.4286752104464 | erot = 19.5815869009233 | epot = -129.76230861541 | etot = -93.7520465040398 +244000 ekin = 16.3394547967301 | erot = 18.1079320641236 | epot = -129.952517130133 | etot = -95.5051302692797 +245000 ekin = 16.8516652636708 | erot = 21.5084428396106 | epot = -130.042993898219 | etot = -91.682885794938 +246000 ekin = 16.2142794013674 | erot = 20.8328300526537 | epot = -129.969581269428 | etot = -92.9224718154072 +247000 ekin = 15.5351355380904 | erot = 20.3306492075571 | epot = -129.776080373296 | etot = -93.9102956276486 +248000 ekin = 15.5326999292253 | erot = 17.6264238370196 | epot = -129.380780641676 | etot = -96.2216568754307 +249000 ekin = 15.6005286569212 | erot = 14.6372790883696 | epot = -128.991620094036 | etot = -98.7538123487453 +250000 ekin = 15.3019907608705 | erot = 11.5707409659116 | epot = -128.572625786308 | etot = -101.699894059526 +251000 ekin = 14.8424008700845 | erot = 11.5409169047425 | epot = -128.171854875477 | etot = -101.78853710065 +252000 ekin = 14.0881811540469 | erot = 11.935280004933 | epot = -127.786643136826 | etot = -101.763181977847 +253000 ekin = 13.8077466967518 | erot = 11.3150182310599 | epot = -127.466234955236 | etot = -102.343470027424 +254000 ekin = 13.4909914927484 | erot = 11.5319845638397 | epot = -127.362543592254 | etot = -102.339567535666 +255000 ekin = 13.4805976507166 | erot = 11.0955784275857 | epot = -127.397885679708 | etot = -102.821709601406 +256000 ekin = 12.9589283730017 | erot = 12.2379211313913 | epot = -127.489056816356 | etot = -102.292207311963 +257000 ekin = 13.0137415076953 | erot = 11.311393697849 | epot = -127.55538811969 | etot = -103.230252914146 +258000 ekin = 13.5211917161104 | erot = 12.0930034020847 | epot = -127.692253608274 | etot = -102.078058490079 +259000 ekin = 12.6081394987907 | erot = 11.1354151842502 | epot = -127.694681242159 | etot = -103.951126559119 +260000 ekin = 12.0306126643581 | erot = 12.068165825136 | epot = -127.788007862018 | etot = -103.689229372524 +261000 ekin = 11.6712630028346 | erot = 13.0367693142806 | epot = -127.986436961488 | etot = -103.278404644373 +262000 ekin = 11.2413910262091 | erot = 15.7538484940495 | epot = -128.233173068364 | etot = -101.237933548105 +263000 ekin = 11.0950814602042 | erot = 14.7646358718688 | epot = -128.60471709289 | etot = -102.744999760817 +264000 ekin = 10.6119365875484 | erot = 14.4112072406074 | epot = -129.085734723212 | etot = -104.062590895057 +265000 ekin = 10.579570043137 | erot = 16.6560278073956 | epot = -129.542969866575 | etot = -102.307372016042 +266000 ekin = 10.5226588316929 | erot = 18.1113177730103 | epot = -129.974040564248 | etot = -101.340063959545 +267000 ekin = 10.4287003526946 | erot = 16.6877176268463 | epot = -130.344448562148 | etot = -103.228030582607 +268000 ekin = 10.5877901133481 | erot = 15.1656319049267 | epot = -130.637228764668 | etot = -104.883806746393 +269000 ekin = 10.9852811387162 | erot = 16.0320363782053 | epot = -130.794054516044 | etot = -103.776736999123 +270000 ekin = 10.5687078071281 | erot = 16.3743105362243 | epot = -130.736687898519 | etot = -103.793669555167 +271000 ekin = 9.99158423586208 | erot = 15.5228198989367 | epot = -130.512100405461 | etot = -104.997696270662 +272000 ekin = 9.60764690373856 | erot = 14.5365399404247 | epot = -130.052200944354 | etot = -105.908014100191 +273000 ekin = 9.88762102060522 | erot = 13.0362776194251 | epot = -129.564225107536 | etot = -106.640326467505 +274000 ekin = 9.61772274500435 | erot = 13.6398685548783 | epot = -128.999438249703 | etot = -105.74184694982 +275000 ekin = 8.94677992468543 | erot = 12.9556954902446 | epot = -128.332527547958 | etot = -106.430052133028 +276000 ekin = 8.3584335311715 | erot = 13.2017156118579 | epot = -127.585007462439 | etot = -106.02485831941 +277000 ekin = 7.94992551817686 | erot = 12.6842109215291 | epot = -126.918026716016 | etot = -106.28389027631 +278000 ekin = 7.76653215340282 | erot = 12.8531406595677 | epot = -126.484978021444 | etot = -105.865305208474 +279000 ekin = 7.78343352835109 | erot = 14.2332649072589 | epot = -126.253341481669 | etot = -104.236643046059 +280000 ekin = 7.35330887841251 | erot = 14.4673264755642 | epot = -126.163511871335 | etot = -104.342876517359 +281000 ekin = 7.85275326933405 | erot = 14.4133642805592 | epot = -126.259915794876 | etot = -103.993798244983 +282000 ekin = 7.59386790871773 | erot = 16.7968997525039 | epot = -126.548690416207 | etot = -102.157922754985 +283000 ekin = 7.35527594979652 | erot = 16.8857993661909 | epot = -127.193261985613 | etot = -102.952186669625 +284000 ekin = 7.23651097691633 | erot = 17.1029976769801 | epot = -127.931231477133 | etot = -103.591722823237 +285000 ekin = 7.0753360049638 | erot = 17.4467129189669 | epot = -128.607262305958 | etot = -104.085213382028 +286000 ekin = 7.32033319851606 | erot = 17.1633115529782 | epot = -129.218718145393 | etot = -104.735073393899 +287000 ekin = 7.72392787692494 | erot = 16.4914860614417 | epot = -129.660366098165 | etot = -105.444952159798 +288000 ekin = 7.8846803036883 | erot = 14.5346886015918 | epot = -129.959287943351 | etot = -107.539919038071 +289000 ekin = 8.15449180858513 | erot = 13.6497039151859 | epot = -130.191654559662 | etot = -108.387458835891 +290000 ekin = 8.57025733949944 | erot = 11.7337972051479 | epot = -130.427723013256 | etot = -110.123668468609 +291000 ekin = 8.84501371392035 | erot = 11.4464085433319 | epot = -130.776530031292 | etot = -110.48510777404 +292000 ekin = 8.92636761817405 | erot = 11.5339265052695 | epot = -131.116859081799 | etot = -110.656564958356 +293000 ekin = 9.4188092936266 | erot = 10.6139923438188 | epot = -131.543780424308 | etot = -111.510978786863 +294000 ekin = 10.0249117072521 | erot = 11.1467770825211 | epot = -131.989966720275 | etot = -110.818277930502 +295000 ekin = 11.083703631995 | erot = 11.4510452094844 | epot = -132.47789071003 | etot = -109.94314186855 +296000 ekin = 11.6146048856785 | erot = 12.6868535987442 | epot = -132.914414362187 | etot = -108.612955877764 +297000 ekin = 11.8951229320331 | erot = 15.2697825399351 | epot = -133.445892377813 | etot = -106.280986905844 +298000 ekin = 12.4531615126796 | erot = 14.3674160150298 | epot = -133.890492541549 | etot = -107.069915013839 +299000 ekin = 13.196907114984 | erot = 14.7373108470961 | epot = -134.149282525159 | etot = -106.215064563079 +300000 ekin = 13.552623655237 | erot = 13.6896560161013 | epot = -134.199981280003 | etot = -106.957701608665 +301000 ekin = 14.1630542484217 | erot = 10.9749158485264 | epot = -134.19176613126 | etot = -109.053796034312 +302000 ekin = 14.5195459532838 | erot = 12.7065564931488 | epot = -134.217142307031 | etot = -106.991039860598 +303000 ekin = 14.8150523928287 | erot = 10.7628758137702 | epot = -134.250982614669 | etot = -108.67305440807 +304000 ekin = 15.2660168979802 | erot = 10.1752335071963 | epot = -134.244526718419 | etot = -108.803276313243 +305000 ekin = 15.3860602604058 | erot = 9.45759816681305 | epot = -134.133567089515 | etot = -109.289908662296 +306000 ekin = 15.7237397758356 | erot = 9.50282910127752 | epot = -133.94876479662 | etot = -108.722195919507 +307000 ekin = 15.8174557813954 | erot = 11.0016238644609 | epot = -133.697557997488 | etot = -106.878478351632 +308000 ekin = 15.7527451080622 | erot = 12.1931354321227 | epot = -133.444465811955 | etot = -105.49858527177 +309000 ekin = 15.5388064000501 | erot = 12.0318704352104 | epot = -133.232790168995 | etot = -105.662113333734 +310000 ekin = 15.7333675389695 | erot = 14.1342950777931 | epot = -133.029366911719 | etot = -103.161704294957 +311000 ekin = 15.6009535545179 | erot = 13.6526892945678 | epot = -132.838604928597 | etot = -103.584962079511 +312000 ekin = 16.4800347752494 | erot = 13.2349274624762 | epot = -132.817445618549 | etot = -103.102483380823 +313000 ekin = 17.4513785144268 | erot = 14.0129598068591 | epot = -132.753954889153 | etot = -101.289616567867 +314000 ekin = 17.5025641492033 | erot = 11.1600773517397 | epot = -132.721561414482 | etot = -104.058919913539 +315000 ekin = 17.6215931043552 | erot = 11.6530322479369 | epot = -132.83607154178 | etot = -103.561446189488 +316000 ekin = 18.3077509852464 | erot = 11.24428551734 | epot = -132.825110613688 | etot = -103.273074111101 +317000 ekin = 18.6646687475733 | erot = 11.3949578332599 | epot = -132.726178400251 | etot = -102.666551819418 +318000 ekin = 19.0449374377506 | erot = 10.6811792225528 | epot = -132.596843958719 | etot = -102.870727298416 +319000 ekin = 19.4739615661041 | erot = 10.1061598868736 | epot = -132.560298222539 | etot = -102.980176769561 +320000 ekin = 20.0845500729367 | erot = 9.07620734375012 | epot = -132.537630592136 | etot = -103.376873175449 +321000 ekin = 20.3735677110338 | erot = 9.58107527158863 | epot = -132.71350033056 | etot = -102.758857347937 +322000 ekin = 20.6065517684778 | erot = 10.44869872965 | epot = -133.101486382927 | etot = -102.0462358848 +323000 ekin = 20.0755652693402 | erot = 10.5792774360325 | epot = -133.548872422721 | etot = -102.894029717349 +324000 ekin = 19.5470787180692 | erot = 12.2962131053578 | epot = -134.037163912753 | etot = -102.193872089326 +325000 ekin = 19.3574089759549 | erot = 13.9344512333194 | epot = -134.514099492223 | etot = -101.222239282949 +326000 ekin = 18.9578651565007 | erot = 14.0599792857494 | epot = -134.832879117041 | etot = -101.815034674791 +327000 ekin = 18.522430937646 | erot = 15.3237238200694 | epot = -135.011431120887 | etot = -101.165276363172 +328000 ekin = 18.0035567184584 | erot = 14.5279082328483 | epot = -134.974755880337 | etot = -102.44329092903 +329000 ekin = 18.0984071439777 | erot = 15.2396238227656 | epot = -134.609246027312 | etot = -101.271215060568 +330000 ekin = 17.7721143388229 | erot = 13.525941768538 | epot = -134.02382664847 | etot = -102.725770541109 +331000 ekin = 16.9269057974283 | erot = 14.114199498117 | epot = -133.337136919405 | etot = -102.29603162386 +332000 ekin = 16.2137199937952 | erot = 13.5614363871077 | epot = -132.597645626193 | etot = -102.822489245291 +333000 ekin = 15.9975416411886 | erot = 14.1394884933731 | epot = -132.115505382769 | etot = -101.978475248208 +334000 ekin = 15.7346050674188 | erot = 14.4036291079367 | epot = -131.728484776204 | etot = -101.590250600849 +335000 ekin = 14.8435293968564 | erot = 14.34943376694 | epot = -131.346268113982 | etot = -102.153304950185 +336000 ekin = 13.819255551257 | erot = 14.8950079117048 | epot = -131.007488904444 | etot = -102.293225441482 +337000 ekin = 14.256466480469 | erot = 14.0159412985296 | epot = -130.688449631731 | etot = -102.416041852733 +338000 ekin = 14.2560987451645 | erot = 12.7376885355493 | epot = -130.454049417339 | etot = -103.460262136625 +339000 ekin = 14.3621400404064 | erot = 14.439342349414 | epot = -130.394260932836 | etot = -101.592778543015 +340000 ekin = 14.6559878293539 | erot = 14.5595854991738 | epot = -130.334888999638 | etot = -101.11931567111 +341000 ekin = 14.7435791817685 | erot = 15.9322314960963 | epot = -130.388598855483 | etot = -99.7127881776182 +342000 ekin = 15.1053540532649 | erot = 15.5267560594305 | epot = -130.534881968785 | etot = -99.9027718560899 +343000 ekin = 14.8346227466266 | erot = 15.1410476661794 | epot = -130.670876299797 | etot = -100.695205886991 +344000 ekin = 15.3397947857358 | erot = 14.6689121103972 | epot = -130.597244811671 | etot = -100.588537915538 +345000 ekin = 15.5825050885072 | erot = 11.849389855145 | epot = -130.482878783265 | etot = -103.050983839613 +346000 ekin = 15.557081118346 | erot = 12.1818765032741 | epot = -130.483868170778 | etot = -102.744910549158 +347000 ekin = 15.7870950105621 | erot = 12.7946686661666 | epot = -130.422215262255 | etot = -101.840451585527 +348000 ekin = 15.5352792323484 | erot = 13.3447055882308 | epot = -130.353231427955 | etot = -101.473246607375 +349000 ekin = 15.7477186936883 | erot = 14.4233688591029 | epot = -130.329494194302 | etot = -100.158406641511 +350000 ekin = 15.6170178096528 | erot = 14.8151960388694 | epot = -130.17949072562 | etot = -99.747276877098 +351000 ekin = 15.0398392687342 | erot = 15.5254714523236 | epot = -130.080810023417 | etot = -99.5154993023593 +352000 ekin = 14.6968059907976 | erot = 14.4538420025754 | epot = -129.97104832481 | etot = -100.820400331437 +353000 ekin = 14.1112287219651 | erot = 15.2115201534876 | epot = -129.83422590312 | etot = -100.511477027668 +354000 ekin = 13.8771677291463 | erot = 13.4124042697973 | epot = -129.753540110039 | etot = -102.463968111095 +355000 ekin = 13.7170691451417 | erot = 14.3544061195803 | epot = -129.751545876385 | etot = -101.680070611663 +356000 ekin = 13.4694668767048 | erot = 16.133528389581 | epot = -129.824882831913 | etot = -100.221887565627 +357000 ekin = 13.2929931449396 | erot = 16.4038366946648 | epot = -129.876709339247 | etot = -100.179879499643 +358000 ekin = 13.1750980708733 | erot = 17.3241105026107 | epot = -129.989834282264 | etot = -99.4906257087797 +359000 ekin = 13.380329272499 | erot = 19.6824191986732 | epot = -129.988552013529 | etot = -96.9258035423572 +360000 ekin = 13.4193225479689 | erot = 19.2098458345074 | epot = -129.914085935484 | etot = -97.2849175530075 +361000 ekin = 13.1014802992557 | erot = 19.5139031846452 | epot = -129.642748133153 | etot = -97.0273646492518 +362000 ekin = 13.3388646183525 | erot = 17.446873022162 | epot = -129.271499027633 | etot = -98.4857613871179 +363000 ekin = 14.7993334309696 | erot = 17.4970048461568 | epot = -128.636528824995 | etot = -96.3401905478691 +364000 ekin = 15.2510007602818 | erot = 16.7004926087045 | epot = -127.884102298463 | etot = -95.9326089294769 +365000 ekin = 16.0551556298892 | erot = 13.1331682140255 | epot = -127.106944773085 | etot = -97.9186209291702 +366000 ekin = 16.6135251477317 | erot = 10.7882784823258 | epot = -126.481864876555 | etot = -99.0800612464979 +367000 ekin = 17.2397770838844 | erot = 9.07697469116899 | epot = -125.869491600361 | etot = -99.5527398253073 +368000 ekin = 18.2647562627396 | erot = 8.83837372160177 | epot = -125.609398383494 | etot = -98.5062683991522 +369000 ekin = 19.6983956101792 | erot = 9.59177541868033 | epot = -125.74626802455 | etot = -96.4560969956904 +370000 ekin = 19.5709154020794 | erot = 8.91092874647536 | epot = -126.152873219342 | etot = -97.6710290707868 +371000 ekin = 18.8989004192531 | erot = 8.77992407799205 | epot = -126.728037482638 | etot = -99.0492129853924 +372000 ekin = 19.2813162804943 | erot = 10.0479492696922 | epot = -127.425754042496 | etot = -98.096488492309 +373000 ekin = 19.0086401168253 | erot = 10.1075091531877 | epot = -128.182979400039 | etot = -99.0668301300256 +374000 ekin = 19.4563014103425 | erot = 11.7647123799523 | epot = -128.910763698769 | etot = -97.6897499084737 +375000 ekin = 19.6239136950702 | erot = 13.1082491418006 | epot = -129.652938836285 | etot = -96.9207759994137 +376000 ekin = 19.0831811879331 | erot = 13.5410920095561 | epot = -130.604369980802 | etot = -97.9800967833132 +377000 ekin = 18.9430611051657 | erot = 15.4046155861757 | epot = -131.433252086557 | etot = -97.0855753952154 +378000 ekin = 18.4535587013679 | erot = 17.0768375430874 | epot = -132.074544242454 | etot = -96.5441479979988 +379000 ekin = 18.8502578619275 | erot = 17.0886051901337 | epot = -132.576199310533 | etot = -96.6373362584714 +380000 ekin = 19.475671525711 | erot = 17.425300301321 | epot = -132.839195209695 | etot = -95.9382233826627 +381000 ekin = 19.4174760667093 | erot = 16.919974731311 | epot = -132.976364420012 | etot = -96.638913621992 +382000 ekin = 19.1025374334182 | erot = 17.1130645388703 | epot = -132.829331451385 | etot = -96.6137294790962 +383000 ekin = 18.9362566793884 | erot = 17.3266414908685 | epot = -132.614748834884 | etot = -96.3518506646272 +384000 ekin = 18.7506243498791 | erot = 16.6762466864349 | epot = -132.283835208144 | etot = -96.8569641718296 +385000 ekin = 18.0674119365431 | erot = 15.5457529470262 | epot = -131.967883677018 | etot = -98.3547187934491 +386000 ekin = 17.7765715680376 | erot = 15.4653584270643 | epot = -131.931173947405 | etot = -98.689243952303 +387000 ekin = 17.5922997105643 | erot = 15.4866263147305 | epot = -131.962114117862 | etot = -98.8831880925669 +388000 ekin = 17.1354877146972 | erot = 14.6908885713179 | epot = -132.154913188456 | etot = -100.32853690244 +389000 ekin = 17.2978672800278 | erot = 14.3323941781807 | epot = -132.579373908437 | etot = -100.949112450229 +390000 ekin = 16.6548471381054 | erot = 14.4389161904763 | epot = -133.117852071241 | etot = -102.02408874266 +391000 ekin = 16.4991198143141 | erot = 15.6371247388717 | epot = -133.74702014809 | etot = -101.610775594904 +392000 ekin = 16.4281265667573 | erot = 15.2805744092357 | epot = -134.285663015389 | etot = -102.576962039396 +393000 ekin = 16.5088678003344 | erot = 14.6374026351446 | epot = -134.823632354354 | etot = -103.677361918875 +394000 ekin = 16.8667186647237 | erot = 14.4902912223106 | epot = -135.212337585278 | etot = -103.855327698243 +395000 ekin = 17.2109177950877 | erot = 13.0237509296312 | epot = -135.433194422107 | etot = -105.198525697388 +396000 ekin = 17.5831681572179 | erot = 13.0674839764192 | epot = -135.5411310502 | etot = -104.890478916563 +397000 ekin = 18.3467734506846 | erot = 12.3568347780265 | epot = -135.692051757534 | etot = -104.988443528823 +398000 ekin = 18.6260075083868 | erot = 11.5676720862242 | epot = -135.8484417868 | etot = -105.654762192189 +399000 ekin = 18.4927959871705 | erot = 9.61204888160112 | epot = -136.029564032426 | etot = -107.924719163654 +400000 ekin = 18.6435149197571 | erot = 9.559059652791 | epot = -136.063512666361 | etot = -107.860938093813 +401000 ekin = 18.495036639322 | erot = 8.81910426702044 | epot = -135.969397453423 | etot = -108.655256547081 +402000 ekin = 18.0973102085887 | erot = 9.21770434744583 | epot = -135.826258341845 | etot = -108.51124378581 +403000 ekin = 18.0427323472422 | erot = 10.5190252323493 | epot = -135.753331828009 | etot = -107.191574248417 +404000 ekin = 17.5776474210726 | erot = 9.98443155942648 | epot = -135.626108875126 | etot = -108.064029894627 +405000 ekin = 17.708707354373 | erot = 9.34584279346648 | epot = -135.363640656308 | etot = -108.309090508469 +406000 ekin = 17.2396707705326 | erot = 8.90477999440435 | epot = -135.2384727154 | etot = -109.094021950463 +407000 ekin = 17.7583314057474 | erot = 10.2665550367714 | epot = -135.16419443924 | etot = -107.139307996721 +408000 ekin = 16.6497478599537 | erot = 10.611196757942 | epot = -135.101475998093 | etot = -107.840531380197 +409000 ekin = 16.942845841028 | erot = 10.4168945438759 | epot = -135.194509236814 | etot = -107.83476885191 +410000 ekin = 16.4881349577911 | erot = 12.0730971512869 | epot = -135.351255421276 | etot = -106.790023312198 +411000 ekin = 16.1554736030566 | erot = 14.3298422267912 | epot = -135.479919148327 | etot = -104.994603318479 +412000 ekin = 16.5857499566834 | erot = 13.4737312711743 | epot = -135.584889444117 | etot = -105.525408216259 +413000 ekin = 16.9229179279286 | erot = 13.6039157859352 | epot = -135.514436450931 | etot = -104.987602737067 +414000 ekin = 16.5314068368499 | erot = 15.4040344847393 | epot = -135.352428551428 | etot = -103.416987229839 +415000 ekin = 16.1459888084541 | erot = 15.1961034970421 | epot = -135.089001803045 | etot = -103.746909497549 +416000 ekin = 16.0594536949154 | erot = 15.1002331509048 | epot = -134.764864008918 | etot = -103.605177163097 +417000 ekin = 15.6980662646932 | erot = 15.0388392647989 | epot = -134.315494988363 | etot = -103.578589458871 +418000 ekin = 14.8009500438545 | erot = 14.6697393541096 | epot = -133.903967690311 | etot = -104.433278292347 +419000 ekin = 14.6357923304129 | erot = 13.2510064578586 | epot = -133.488837449519 | etot = -105.602038661248 +420000 ekin = 13.7797138062255 | erot = 13.6736426456043 | epot = -133.082126294055 | etot = -105.628769842225 +421000 ekin = 12.919024364293 | erot = 14.4142500849553 | epot = -132.771092930571 | etot = -105.437818481323 +422000 ekin = 12.4606284745775 | erot = 13.6365236121425 | epot = -132.493275384809 | etot = -106.396123298089 +423000 ekin = 12.2948098735175 | erot = 15.893052207907 | epot = -132.380013343043 | etot = -104.192151261619 +424000 ekin = 11.745927681356 | erot = 17.5335098604016 | epot = -132.424796646041 | etot = -103.145359104284 +425000 ekin = 12.0006262659262 | erot = 15.539973283722 | epot = -132.540653755033 | etot = -105.000054205384 +426000 ekin = 11.8843491709195 | erot = 16.7940075159323 | epot = -132.662628106265 | etot = -103.984271419413 +427000 ekin = 11.3591082759808 | erot = 17.0425126325344 | epot = -132.894706769785 | etot = -104.49308586127 +428000 ekin = 10.74405872772 | erot = 18.3249469758695 | epot = -133.166202813839 | etot = -104.097197110249 +429000 ekin = 10.7706487509066 | erot = 17.6551088604746 | epot = -133.358870523568 | etot = -104.933112912187 +430000 ekin = 10.6474001981849 | erot = 18.596041889709 | epot = -133.511953764021 | etot = -104.268511676127 +431000 ekin = 11.1157718416981 | erot = 20.5642690531762 | epot = -133.457724392349 | etot = -101.777683497475 +432000 ekin = 10.9588563257813 | erot = 18.6638268050758 | epot = -133.288845550957 | etot = -103.6661624201 +433000 ekin = 11.6770191364917 | erot = 16.4659565290407 | epot = -133.019945473853 | etot = -104.87696980832 +434000 ekin = 12.1024379349047 | erot = 16.0016819384212 | epot = -132.762722000371 | etot = -104.658602127045 +435000 ekin = 12.349281362769 | erot = 13.3785279839521 | epot = -132.604369715003 | etot = -106.876560368282 +436000 ekin = 13.1471833683191 | erot = 13.9173006161182 | epot = -132.562594724265 | etot = -105.498110739827 +437000 ekin = 13.6350491625079 | erot = 13.1122068961503 | epot = -132.517452891629 | etot = -105.770196832971 +438000 ekin = 13.6930952898924 | erot = 14.2359944827941 | epot = -132.455362578639 | etot = -104.526272805953 +439000 ekin = 13.8605718764543 | erot = 13.5844935351474 | epot = -132.383154183074 | etot = -104.938088771472 +440000 ekin = 13.6442811020083 | erot = 14.4808963859129 | epot = -132.383844089461 | etot = -104.25866660154 +441000 ekin = 13.5515648121245 | erot = 13.0785991097761 | epot = -132.396376591798 | etot = -105.766212669898 +442000 ekin = 14.1256921745767 | erot = 12.4782565032754 | epot = -132.547264323122 | etot = -105.94331564527 +443000 ekin = 14.5691691188627 | erot = 13.8774098742386 | epot = -132.720623905077 | etot = -104.274044911975 +444000 ekin = 14.7351369676478 | erot = 14.3470950238126 | epot = -132.866409443678 | etot = -103.784177452217 +445000 ekin = 14.9644282174562 | erot = 15.6053547547498 | epot = -132.805608746253 | etot = -102.235825774047 +446000 ekin = 15.0045450016756 | erot = 13.6477020624871 | epot = -132.65253892759 | etot = -104.000291863427 +447000 ekin = 14.3245041504183 | erot = 13.6106925210228 | epot = -132.439878435946 | etot = -104.504681764505 +448000 ekin = 14.233916528542 | erot = 12.3909865857314 | epot = -132.243474706559 | etot = -105.618571592286 +449000 ekin = 14.1398313922663 | erot = 12.2685893909668 | epot = -132.06378980736 | etot = -105.655369024127 +450000 ekin = 13.4904273032194 | erot = 12.3330756316191 | epot = -131.830755010798 | etot = -106.00725207596 +451000 ekin = 13.300341297742 | erot = 11.1345212763943 | epot = -131.438716026705 | etot = -107.003853452569 +452000 ekin = 13.1916656544132 | erot = 12.0107960818815 | epot = -131.06562936513 | etot = -105.863167628836 +453000 ekin = 13.6470034210578 | erot = 11.3478854304713 | epot = -130.666197429497 | etot = -105.671308577968 +454000 ekin = 13.7514576509104 | erot = 11.0422941308611 | epot = -130.279471820623 | etot = -105.485720038851 +455000 ekin = 13.6427936386073 | erot = 10.6725549566639 | epot = -130.084596778391 | etot = -105.769248183119 +456000 ekin = 13.0332807830664 | erot = 11.1448945005553 | epot = -130.006108312447 | etot = -105.827933028825 +457000 ekin = 12.6888308068745 | erot = 11.996417916709 | epot = -129.866026242229 | etot = -105.180777518646 +458000 ekin = 12.2236956230155 | erot = 11.9723258535854 | epot = -129.822007447389 | etot = -105.625985970788 +459000 ekin = 12.4187372424446 | erot = 12.2448106818498 | epot = -130.011349416051 | etot = -105.347801491757 +460000 ekin = 12.3181219588596 | erot = 13.6300348406456 | epot = -130.301233711192 | etot = -104.353076911686 +461000 ekin = 13.0224185496646 | erot = 12.4015946976694 | epot = -130.754682803086 | etot = -105.330669555752 +462000 ekin = 13.8272851866575 | erot = 13.7167043927439 | epot = -131.088410073843 | etot = -103.544420494441 +463000 ekin = 14.233581499904 | erot = 12.5329824172969 | epot = -131.331794671857 | etot = -104.565230754656 +464000 ekin = 14.1261800982275 | erot = 13.9303608372166 | epot = -131.548600987817 | etot = -103.492060052373 +465000 ekin = 14.1255464940624 | erot = 13.3900400807099 | epot = -131.630321080862 | etot = -104.114734506089 +466000 ekin = 13.8228140080026 | erot = 12.5884468885677 | epot = -131.60685460129 | etot = -105.195593704719 +467000 ekin = 13.9322919754765 | erot = 13.4312985643275 | epot = -131.680549012765 | etot = -104.316958472961 +468000 ekin = 14.3853651937711 | erot = 12.6461801454634 | epot = -131.625011265765 | etot = -104.59346592653 +469000 ekin = 14.5533304292821 | erot = 16.0723443902969 | epot = -131.418212758337 | etot = -100.792537938758 +470000 ekin = 15.0840954556285 | erot = 16.222522877142 | epot = -131.148990199381 | etot = -99.8423718666102 +471000 ekin = 14.4219777322226 | erot = 15.8873237998424 | epot = -130.678043003916 | etot = -100.368741471851 +472000 ekin = 14.435030670305 | erot = 15.671788565829 | epot = -130.139079955408 | etot = -100.032260719274 +473000 ekin = 13.906204124583 | erot = 15.638897325228 | epot = -129.77698458443 | etot = -100.231883134619 +474000 ekin = 13.6024483079048 | erot = 14.9117660516568 | epot = -129.455404640313 | etot = -100.941190280752 +475000 ekin = 12.824122130844 | erot = 15.5367178310513 | epot = -129.246309588152 | etot = -100.885469626257 +476000 ekin = 12.9055013167445 | erot = 14.6727742202391 | epot = -129.302333908223 | etot = -101.72405837124 +477000 ekin = 12.7196731835606 | erot = 14.3993459723445 | epot = -129.64652145757 | etot = -102.527502301665 +478000 ekin = 13.3386835875674 | erot = 14.5179440867012 | epot = -130.153117698304 | etot = -102.296490024035 +479000 ekin = 13.8396392901302 | erot = 13.6621367485581 | epot = -130.781114095862 | etot = -103.279338057174 +480000 ekin = 14.2724362045435 | erot = 15.784109317918 | epot = -131.413694225648 | etot = -101.357148703186 +481000 ekin = 14.0102282052329 | erot = 16.0578586490324 | epot = -131.929137624341 | etot = -101.861050770076 +482000 ekin = 14.0956208717202 | erot = 15.8675233063324 | epot = -132.167277100212 | etot = -102.204132922159 +483000 ekin = 13.8372321085018 | erot = 14.5340925107821 | epot = -132.001986789449 | etot = -103.630662170165 +484000 ekin = 13.4224547855769 | erot = 11.9661360017051 | epot = -131.683314721398 | etot = -106.294723934116 +485000 ekin = 13.1373330656359 | erot = 11.3254954130182 | epot = -131.289318850469 | etot = -106.826490371815 +486000 ekin = 13.905837100344 | erot = 12.1980994310324 | epot = -130.930010356581 | etot = -104.826073825204 +487000 ekin = 13.2698534777382 | erot = 11.8745698433001 | epot = -130.5624327701 | etot = -105.418009449061 +488000 ekin = 12.9434697199259 | erot = 12.0293958304853 | epot = -130.209265396125 | etot = -105.236399845714 +489000 ekin = 12.5721899198871 | erot = 8.47459617531023 | epot = -129.953831166846 | etot = -108.907045071649 +490000 ekin = 12.3390702542933 | erot = 7.86378661329589 | epot = -129.753215573881 | etot = -109.550358706292 +491000 ekin = 11.9624599841506 | erot = 8.41735013444669 | epot = -129.506172001993 | etot = -109.126361883396 +492000 ekin = 11.7077910623616 | erot = 9.63580876658954 | epot = -129.43578091039 | etot = -108.092181081439 +493000 ekin = 11.1244386116376 | erot = 11.4939505930869 | epot = -129.383239390152 | etot = -106.764850185427 +494000 ekin = 11.0781415353741 | erot = 13.0857204067954 | epot = -129.404483774133 | etot = -105.240621831963 +495000 ekin = 11.4990453516689 | erot = 14.0188122780217 | epot = -129.557836878698 | etot = -104.039979249008 +496000 ekin = 11.5056539707761 | erot = 12.8857921899793 | epot = -129.825905288658 | etot = -105.434459127903 +497000 ekin = 11.33134224258 | erot = 13.2836312713858 | epot = -130.109579120835 | etot = -105.494605606869 +498000 ekin = 11.4981547815264 | erot = 15.3140349034712 | epot = -130.559763793736 | etot = -103.747574108738 +499000 ekin = 11.1599160547319 | erot = 14.6965934583534 | epot = -131.023052476114 | etot = -105.166542963029 +500000 ekin = 10.7780642831738 | erot = 15.7901919369947 | epot = -131.533138574135 | etot = -104.964882353967 +501000 ekin = 10.720403632948 | erot = 14.8758201582326 | epot = -132.030158305869 | etot = -106.433934514688 +502000 ekin = 10.9110010846821 | erot = 16.0790893187808 | epot = -132.428098038251 | etot = -105.438007634788 +503000 ekin = 10.9881321156139 | erot = 18.4086921037074 | epot = -132.690429019574 | etot = -103.293604800253 +504000 ekin = 11.2747688970756 | erot = 18.3069766546834 | epot = -132.868714178775 | etot = -103.286968627016 +505000 ekin = 11.0647415890157 | erot = 16.9097240173448 | epot = -132.895739990367 | etot = -104.921274384007 +506000 ekin = 11.7075716116498 | erot = 15.491840602935 | epot = -132.740532250649 | etot = -105.541120036064 +507000 ekin = 11.3011932151634 | erot = 15.9113427794058 | epot = -132.415188396473 | etot = -105.202652401904 +508000 ekin = 11.6967952061443 | erot = 14.7240977646156 | epot = -131.952406046646 | etot = -105.531513075886 +509000 ekin = 11.6315150466958 | erot = 13.5300219702026 | epot = -131.434217700445 | etot = -106.272680683546 +510000 ekin = 12.2520798346389 | erot = 11.1506231276725 | epot = -130.950401471758 | etot = -107.547698509446 +511000 ekin = 12.5036986807164 | erot = 11.0966142079411 | epot = -130.612066388725 | etot = -107.011753500067 +512000 ekin = 12.3982520931714 | erot = 11.1407951595418 | epot = -130.506298860028 | etot = -106.967251607315 +513000 ekin = 11.8503807436704 | erot = 10.6395006743577 | epot = -130.62994085624 | etot = -108.140059438211 +514000 ekin = 11.6931801130336 | erot = 10.0284485074895 | epot = -131.026141821515 | etot = -109.304513200992 +515000 ekin = 11.7542279720105 | erot = 9.99471209356388 | epot = -131.61924379854 | etot = -109.870303732966 +516000 ekin = 11.4577827917683 | erot = 9.46971305059919 | epot = -132.261609421054 | etot = -111.334113578686 +517000 ekin = 11.2718685099608 | erot = 8.19398630894372 | epot = -132.791968639562 | etot = -113.326113820658 +518000 ekin = 11.3016092575651 | erot = 10.2172039155432 | epot = -133.256960381085 | etot = -111.738147207976 +519000 ekin = 11.3134437464979 | erot = 9.77961157844874 | epot = -133.703814863063 | etot = -112.610759538116 +520000 ekin = 11.9401995794921 | erot = 9.94217963136258 | epot = -134.138670478908 | etot = -112.256291268053 +521000 ekin = 11.6110284291038 | erot = 10.4252254290505 | epot = -134.523960362929 | etot = -112.487706504775 +522000 ekin = 11.7583420057528 | erot = 10.5600256573471 | epot = -134.902954163118 | etot = -112.584586500018 +523000 ekin = 12.2195814890805 | erot = 10.484479844249 | epot = -135.099883008383 | etot = -112.395821675053 +524000 ekin = 12.536206091596 | erot = 10.2464120884985 | epot = -135.197150509169 | etot = -112.414532329075 +525000 ekin = 12.7695180124394 | erot = 12.830924120624 | epot = -135.181443853743 | etot = -109.581001720679 +526000 ekin = 13.4914714182443 | erot = 13.3323995889542 | epot = -134.989013161967 | etot = -108.165142154768 +527000 ekin = 13.6339858533173 | erot = 14.1143226731303 | epot = -134.603919851952 | etot = -106.855611325504 +528000 ekin = 13.9871131035254 | erot = 13.4790195739988 | epot = -134.158105371852 | etot = -106.691972694328 +529000 ekin = 13.6676266211537 | erot = 13.2846277161303 | epot = -133.587001654026 | etot = -106.634747316742 +530000 ekin = 13.8931133897467 | erot = 11.6197807566239 | epot = -132.893711115648 | etot = -107.380816969277 +531000 ekin = 13.1581397494984 | erot = 10.5027113889053 | epot = -132.366500286018 | etot = -108.705649147614 +532000 ekin = 13.0159641084816 | erot = 9.74741653324235 | epot = -132.024821707355 | etot = -109.261441065631 +533000 ekin = 12.7093786848764 | erot = 11.1416896656569 | epot = -131.697717778404 | etot = -107.84664942787 +534000 ekin = 13.1731011809403 | erot = 11.234780019293 | epot = -131.512303718956 | etot = -107.104422518723 +535000 ekin = 12.2968228666283 | erot = 11.4846073479047 | epot = -131.474751059282 | etot = -107.693320844749 +536000 ekin = 11.5423021442201 | erot = 13.2447755418492 | epot = -131.50032350842 | etot = -106.713245822351 +537000 ekin = 11.2051679081485 | erot = 13.3250331992255 | epot = -131.521899174971 | etot = -106.991698067597 +538000 ekin = 10.5294344085608 | erot = 14.7761967332319 | epot = -131.383857857022 | etot = -106.078226715229 +539000 ekin = 10.185806871544 | erot = 15.4028825102826 | epot = -131.074787080495 | etot = -105.486097698668 +540000 ekin = 9.43449944911005 | erot = 16.5592825971122 | epot = -130.579041867527 | etot = -104.585259821305 +541000 ekin = 8.78189284925949 | erot = 16.499053893454 | epot = -129.848069059872 | etot = -104.567122317159 +542000 ekin = 8.57200654572226 | erot = 13.9898084335997 | epot = -128.994341371238 | etot = -106.432526391916 +543000 ekin = 8.48555433974962 | erot = 11.975315234089 | epot = -127.987968360581 | etot = -107.527098786742 +544000 ekin = 7.96647321950487 | erot = 11.2184967506479 | epot = -127.002534367986 | etot = -107.817564397833 +545000 ekin = 7.66004105211321 | erot = 10.7080025987845 | epot = -126.130595958291 | etot = -107.762552307393 +546000 ekin = 7.06613495262288 | erot = 9.6002881909899 | epot = -125.557639605507 | etot = -108.891216461894 +547000 ekin = 7.36411379188746 | erot = 8.5798098555711 | epot = -125.534102025062 | etot = -109.590178377603 +548000 ekin = 7.67836324990163 | erot = 10.4827717354784 | epot = -125.855244036483 | etot = -107.694109051103 +549000 ekin = 7.53512550399845 | erot = 11.187359733996 | epot = -126.364806908004 | etot = -107.64232167001 +550000 ekin = 7.86533308362698 | erot = 12.3828037628687 | epot = -127.001709461581 | etot = -106.753572615086 +551000 ekin = 8.2919003989052 | erot = 14.6756554271348 | epot = -127.700019966059 | etot = -104.732464140019 +552000 ekin = 9.12142958179215 | erot = 15.3500028547346 | epot = -128.331143583993 | etot = -103.859711147467 +553000 ekin = 9.28716397081024 | erot = 14.7937796025153 | epot = -128.943798064185 | etot = -104.862854490859 +554000 ekin = 9.60827102742978 | erot = 14.5542827554277 | epot = -129.315782051341 | etot = -105.153228268484 +555000 ekin = 9.75156872107715 | erot = 13.7256451762815 | epot = -129.402138106003 | etot = -105.924924208644 +556000 ekin = 10.591262420886 | erot = 14.1011153234612 | epot = -129.339658998616 | etot = -104.647281254269 +557000 ekin = 11.0661812655726 | erot = 14.5765059160724 | epot = -129.157158809594 | etot = -103.514471627949 +558000 ekin = 11.9848375025011 | erot = 15.6316594136391 | epot = -128.917135875743 | etot = -101.300638959602 +559000 ekin = 12.4984336945226 | erot = 15.4984434935456 | epot = -128.511580820598 | etot = -100.51470363253 +560000 ekin = 12.7125630744296 | erot = 14.2557121467619 | epot = -128.104959570362 | etot = -101.136684349171 +561000 ekin = 13.0021457709909 | erot = 14.2140861936463 | epot = -127.967258289089 | etot = -100.751026324452 +562000 ekin = 12.9111077378043 | erot = 14.5809064217209 | epot = -127.853767783697 | etot = -100.361753624171 +563000 ekin = 12.8539990412072 | erot = 14.3589235788587 | epot = -127.869234305675 | etot = -100.656311685609 +564000 ekin = 13.6377557966074 | erot = 12.5940313423354 | epot = -128.066659471603 | etot = -101.834872332661 +565000 ekin = 13.7859200073662 | erot = 13.1002138307723 | epot = -128.411125869716 | etot = -101.524992031578 +566000 ekin = 14.3793917966067 | erot = 14.7163468779501 | epot = -128.789096622906 | etot = -99.6933579483494 +567000 ekin = 14.5329135783505 | erot = 15.8458849175852 | epot = -129.174356602354 | etot = -98.7955581064185 +568000 ekin = 15.0126672916507 | erot = 16.3995947000213 | epot = -129.488105101221 | etot = -98.0758431095491 +569000 ekin = 15.4823990471097 | erot = 15.1400173282169 | epot = -129.721190178973 | etot = -99.0987738036465 +570000 ekin = 15.2652432676604 | erot = 14.0400444480291 | epot = -129.663603273428 | etot = -100.358315557738 +571000 ekin = 15.1960180928438 | erot = 15.2333113599558 | epot = -129.285234325386 | etot = -98.8559048725867 +572000 ekin = 14.2244862323778 | erot = 15.3588426722882 | epot = -128.691549749642 | etot = -99.1082208449758 +573000 ekin = 14.3247255314221 | erot = 15.2838217371065 | epot = -127.915895939713 | etot = -98.3073486711846 +574000 ekin = 13.8328485668081 | erot = 16.0911195322339 | epot = -127.259258688926 | etot = -97.3352905898843 +575000 ekin = 12.2894285073784 | erot = 14.0030483890098 | epot = -126.752490227254 | etot = -100.460013330866 +576000 ekin = 12.675092902127 | erot = 13.875494112131 | epot = -126.443913021454 | etot = -99.8933260071956 +577000 ekin = 12.8302006347986 | erot = 13.5566542600766 | epot = -126.229749925447 | etot = -99.8428950305716 +578000 ekin = 12.3973073325353 | erot = 13.367501392846 | epot = -125.944425149808 | etot = -100.179616424427 +579000 ekin = 12.4969856893803 | erot = 13.2211553313989 | epot = -125.639620042896 | etot = -99.9214790221165 +580000 ekin = 12.2171822571891 | erot = 13.6186421452794 | epot = -125.360378762533 | etot = -99.524554360064 +581000 ekin = 12.2252107821838 | erot = 13.688527688114 | epot = -125.066396673108 | etot = -99.15265820281 +582000 ekin = 12.5438750562638 | erot = 14.1768715313422 | epot = -124.698785826033 | etot = -97.9780392384274 +583000 ekin = 12.5380750747106 | erot = 14.5001920749132 | epot = -124.392003106806 | etot = -97.3537359571822 +584000 ekin = 12.3406221559926 | erot = 15.3339504928243 | epot = -124.287586528117 | etot = -96.6130138792997 +585000 ekin = 12.3990757906099 | erot = 15.8020458644105 | epot = -124.119365581542 | etot = -95.9182439265215 +586000 ekin = 12.1190359199953 | erot = 14.1845434930415 | epot = -124.012210724038 | etot = -97.7086313110016 +587000 ekin = 12.3583734147512 | erot = 12.6837508331823 | epot = -124.019651244371 | etot = -98.9775269964375 +588000 ekin = 12.1093370015091 | erot = 12.224929613342 | epot = -124.009485650513 | etot = -99.6752190356617 +589000 ekin = 12.7058628422607 | erot = 12.6755414025477 | epot = -124.146501688458 | etot = -98.7650974436494 +590000 ekin = 13.5724385310838 | erot = 11.6851077070925 | epot = -124.469602180811 | etot = -99.2120559426343 +591000 ekin = 13.9648833175222 | erot = 11.7829550620435 | epot = -124.977098177567 | etot = -99.229259798001 +592000 ekin = 14.4468708943991 | erot = 10.4693339695267 | epot = -125.37966268423 | etot = -100.463457820304 +593000 ekin = 14.2853778011465 | erot = 10.6838640494361 | epot = -125.899049747802 | etot = -100.929807897219 +594000 ekin = 14.2484623315 | erot = 11.3956366286547 | epot = -126.563145974947 | etot = -100.919047014793 +595000 ekin = 14.5432468578032 | erot = 11.5096332395875 | epot = -127.31254003686 | etot = -101.259659939469 +596000 ekin = 15.7004738515543 | erot = 13.9287180268694 | epot = -128.285375863105 | etot = -98.6561839846811 +597000 ekin = 15.9594818135511 | erot = 16.6195679021881 | epot = -129.261139197126 | etot = -96.682089481387 +598000 ekin = 15.688947247649 | erot = 17.7915161364841 | epot = -130.157771281092 | etot = -96.6773078969585 +599000 ekin = 15.3794249114834 | erot = 15.7367004273062 | epot = -130.695250974136 | etot = -99.5791256353462 +600000 ekin = 14.9121548743718 | erot = 17.8944679163932 | epot = -130.884266476227 | etot = -98.0776436854616 +601000 ekin = 14.5733848977638 | erot = 16.7424040931935 | epot = -130.766918234694 | etot = -99.451129243737 +602000 ekin = 14.0065213221307 | erot = 16.001016861689 | epot = -130.525185821509 | etot = -100.517647637689 +603000 ekin = 13.1967928818603 | erot = 16.4154887990088 | epot = -130.236290569545 | etot = -100.624008888676 +604000 ekin = 12.3311914650794 | erot = 15.6969694775336 | epot = -129.841852174415 | etot = -101.813691231802 +605000 ekin = 12.0612301148609 | erot = 19.0702073568416 | epot = -129.265530748919 | etot = -98.1340932772164 +606000 ekin = 11.588475893498 | erot = 18.6236027196818 | epot = -128.561179687128 | etot = -98.349101073948 +607000 ekin = 11.7321101978434 | erot = 16.9146116711412 | epot = -127.723815602833 | etot = -99.0770937338486 +608000 ekin = 11.3658517138785 | erot = 17.8261844157427 | epot = -126.863647516403 | etot = -97.6716113867816 +609000 ekin = 10.6556809697065 | erot = 20.6644350673316 | epot = -125.950421629035 | etot = -94.6303055919974 +610000 ekin = 10.7853361626725 | erot = 21.6050204002385 | epot = -125.00400963072 | etot = -92.6136530678089 +611000 ekin = 11.1706200435126 | erot = 21.0454340328635 | epot = -124.143633036291 | etot = -91.9275789599151 +612000 ekin = 11.7961607726653 | erot = 19.8808360682819 | epot = -123.303763137073 | etot = -91.6267662961261 +613000 ekin = 12.2790441909626 | erot = 18.1523884321779 | epot = -122.55853939467 | etot = -92.1271067715296 +614000 ekin = 12.3418202948158 | erot = 16.0522193746511 | epot = -122.154911138626 | etot = -93.7608714691587 +615000 ekin = 13.0138767109882 | erot = 15.7976520852059 | epot = -122.104539054864 | etot = -93.2930102586696 +616000 ekin = 13.1684757155919 | erot = 14.2607383451312 | epot = -122.282441526308 | etot = -94.8532274655853 +617000 ekin = 13.6404132275008 | erot = 11.794659359218 | epot = -122.517742746132 | etot = -97.0826701594137 +618000 ekin = 13.6659084124786 | erot = 11.759331412587 | epot = -123.061651867184 | etot = -97.6364120421179 +619000 ekin = 14.6065145093282 | erot = 14.7511017433686 | epot = -123.748631170987 | etot = -94.3910149182907 +620000 ekin = 15.50054373939 | erot = 16.0987287820653 | epot = -124.593446193433 | etot = -92.9941736719774 +621000 ekin = 16.3423395899253 | erot = 16.5059806267673 | epot = -125.362014843738 | etot = -92.513694627045 +622000 ekin = 16.5005311105408 | erot = 17.6619817448939 | epot = -126.010027927038 | etot = -91.8475150716028 +623000 ekin = 16.9173697080473 | erot = 16.9196411258518 | epot = -126.526201775063 | etot = -92.6891909411641 +624000 ekin = 16.8630691072179 | erot = 16.4004847277849 | epot = -126.768008337096 | etot = -93.5044545020931 +625000 ekin = 17.4512664612524 | erot = 16.0587940917397 | epot = -126.935422339869 | etot = -93.4253617868772 +626000 ekin = 17.2936665728482 | erot = 15.3128836830613 | epot = -127.037669686934 | etot = -94.4311194310244 +627000 ekin = 17.4654693594244 | erot = 14.8142528789145 | epot = -127.145731848601 | etot = -94.8660096102618 +628000 ekin = 17.5818742341078 | erot = 15.9486246522772 | epot = -127.148364769085 | etot = -93.6178658826997 +629000 ekin = 18.0834611662905 | erot = 14.6756355733634 | epot = -126.952323014996 | etot = -94.1932262753423 +630000 ekin = 17.8840995792684 | erot = 13.401205848584 | epot = -126.678532269084 | etot = -95.3932268412314 +631000 ekin = 18.1935296729536 | erot = 12.4502314489952 | epot = -126.440360181863 | etot = -95.7965990599137 +632000 ekin = 18.9221681447056 | erot = 11.8661552902894 | epot = -126.441308644557 | etot = -95.6529852095616 +633000 ekin = 19.2113067946158 | erot = 13.1594397129498 | epot = -126.706742517594 | etot = -94.3359960100281 +634000 ekin = 20.3301717379256 | erot = 12.4235710364728 | epot = -127.043793535812 | etot = -94.2900507614131 +635000 ekin = 20.7759513247257 | erot = 12.3714841432956 | epot = -127.372941120786 | etot = -94.2255056527646 +636000 ekin = 20.7687696611453 | erot = 12.8074006314596 | epot = -127.520085768786 | etot = -93.9439154761807 +637000 ekin = 21.1093142137652 | erot = 12.4841738790966 | epot = -127.569514049459 | etot = -93.9760259565968 +638000 ekin = 21.1020473669491 | erot = 12.702087177402 | epot = -127.554195141098 | etot = -93.7500605967471 +639000 ekin = 21.0577266467998 | erot = 12.7003005444012 | epot = -127.63753643133 | etot = -93.8795092401288 +640000 ekin = 21.3937406740469 | erot = 12.4472064696826 | epot = -127.682435047445 | etot = -93.8414879037152 +641000 ekin = 21.4216186865483 | erot = 12.3631944402938 | epot = -127.552900136034 | etot = -93.7680870091921 +642000 ekin = 20.4367389932093 | erot = 14.1541808544319 | epot = -127.30152366589 | etot = -92.7106038182489 +643000 ekin = 20.2979377082655 | erot = 15.0024944362832 | epot = -126.889326829062 | etot = -91.5888946845129 +644000 ekin = 20.2058489999334 | erot = 15.491031004524 | epot = -126.334551618194 | etot = -90.6376716137364 +645000 ekin = 18.9169718743869 | erot = 15.6969515425462 | epot = -125.546440489333 | etot = -90.9325170723995 +646000 ekin = 17.4657002730335 | erot = 15.7137371606576 | epot = -124.573135958619 | etot = -91.3936985249283 +647000 ekin = 16.2686752311563 | erot = 16.1291056474252 | epot = -123.636469263527 | etot = -91.2386883849459 +648000 ekin = 14.6234867914952 | erot = 15.1988644086656 | epot = -122.221359701124 | etot = -92.3990085009632 +649000 ekin = 13.9765767464104 | erot = 14.3359749226089 | epot = -122.017908102962 | etot = -93.7053564339431 +650000 ekin = 13.3083593767564 | erot = 13.3294571145747 | epot = -121.878888386605 | etot = -95.2410718952743 +651000 ekin = 13.2481271072517 | erot = 13.6096229918074 | epot = -121.877302511337 | etot = -95.0195524122776 +652000 ekin = 13.358235640095 | erot = 12.2956271119863 | epot = -122.107622041216 | etot = -96.4537592891344 +653000 ekin = 13.2134408727768 | erot = 12.144377852402 | epot = -122.525474643612 | etot = -97.1676559184336 +654000 ekin = 13.6401865133442 | erot = 12.1024105437077 | epot = -123.091177034103 | etot = -97.3485799770511 +655000 ekin = 14.1382388158376 | erot = 11.3185588850676 | epot = -123.754996028194 | etot = -98.2981983272888 +656000 ekin = 15.3589393726188 | erot = 11.7208375803217 | epot = -124.424910472245 | etot = -97.3451335193042 +657000 ekin = 15.985407864231 | erot = 11.40551206666 | epot = -125.026173045199 | etot = -97.6352531143076 +658000 ekin = 15.9208719205986 | erot = 10.5063118388263 | epot = -125.492025652596 | etot = -99.0648418931712 +659000 ekin = 15.4034330423769 | erot = 7.98268499567967 | epot = -125.846077304125 | etot = -102.459959266068 +660000 ekin = 15.8957184486827 | erot = 7.3209534339452 | epot = -126.090355322523 | etot = -102.873683439896 +661000 ekin = 16.0994929831095 | erot = 6.89812040768852 | epot = -126.301291213824 | etot = -103.303677823026 +662000 ekin = 16.037777694708 | erot = 7.39356761966682 | epot = -126.596997952833 | etot = -103.165652638458 +663000 ekin = 16.2514079166258 | erot = 8.77356221161054 | epot = -126.93775348304 | etot = -101.912783354803 +664000 ekin = 16.6901738665476 | erot = 11.4459754779044 | epot = -127.179645052808 | etot = -99.0434957083556 +665000 ekin = 16.5168554988859 | erot = 12.4360899934879 | epot = -127.289193251941 | etot = -98.3362477595674 +666000 ekin = 16.4595059120294 | erot = 12.353053219114 | epot = -127.360757310456 | etot = -98.5481981793122 +667000 ekin = 16.4576302978905 | erot = 10.6184216922781 | epot = -127.296116321961 | etot = -100.220064331792 +668000 ekin = 16.2951279848706 | erot = 11.6399446274125 | epot = -127.06763280924 | etot = -99.1325601969572 +669000 ekin = 15.6309971924969 | erot = 10.9248518784648 | epot = -126.782455817663 | etot = -100.226606746701 +670000 ekin = 14.69938651138 | erot = 10.2971128796956 | epot = -126.574920158785 | etot = -101.57842076771 +671000 ekin = 14.2333953046718 | erot = 10.2958943118339 | epot = -126.494167399866 | etot = -101.96487778336 +672000 ekin = 14.0074824420819 | erot = 12.0298112037107 | epot = -126.517420140033 | etot = -100.48012649424 +673000 ekin = 13.8132378029881 | erot = 13.3257004951971 | epot = -126.699790731221 | etot = -99.5608524330355 +674000 ekin = 14.3310730802634 | erot = 14.2903823669966 | epot = -126.887224692459 | etot = -98.2657692451993 +675000 ekin = 14.094285780631 | erot = 14.2041424258065 | epot = -127.072500358167 | etot = -98.7740721517297 +676000 ekin = 13.8809716162165 | erot = 14.7571704853675 | epot = -127.244568591992 | etot = -98.6064264904077 +677000 ekin = 13.4750319734461 | erot = 15.8989890896798 | epot = -127.406610822491 | etot = -98.0325897593653 +678000 ekin = 13.204536716915 | erot = 17.060711912575 | epot = -127.537901226718 | etot = -97.2726525972281 +679000 ekin = 13.5094667548578 | erot = 15.8485162061999 | epot = -127.492441090116 | etot = -98.1344581290587 +680000 ekin = 13.7317758530289 | erot = 16.6403654355717 | epot = -127.328352212677 | etot = -96.9562109240759 +681000 ekin = 13.7420697940313 | erot = 16.3253050798175 | epot = -127.033355132541 | etot = -96.9659802586922 +682000 ekin = 13.8865876794374 | erot = 14.1705397429866 | epot = -126.713856182991 | etot = -98.6567287605673 +683000 ekin = 14.1539214405653 | erot = 14.3580474340757 | epot = -126.316182701513 | etot = -97.8042138268716 +684000 ekin = 14.9114202003918 | erot = 13.098285055507 | epot = -125.836001617955 | etot = -97.8262963620566 +685000 ekin = 15.6544076621281 | erot = 11.76351824854 | epot = -125.419422292015 | etot = -98.0014963813465 +686000 ekin = 16.1073557341363 | erot = 9.79708868574903 | epot = -125.048475203594 | etot = -99.1440307837083 +687000 ekin = 16.5128176144743 | erot = 9.40698642310967 | epot = -124.806005792176 | etot = -98.8862017545918 +688000 ekin = 15.9944086012455 | erot = 7.89646425166629 | epot = -124.924212239256 | etot = -101.033339386344 +689000 ekin = 16.2230834947296 | erot = 8.55340876385102 | epot = -125.169534908068 | etot = -100.393042649488 +690000 ekin = 16.7878666602026 | erot = 10.2864631449479 | epot = -125.473510294471 | etot = -98.3991804893207 +691000 ekin = 17.8806968640178 | erot = 10.4556964351401 | epot = -125.769184514249 | etot = -97.4327912150911 +692000 ekin = 18.0381729758976 | erot = 11.8035409722969 | epot = -126.182960500285 | etot = -96.3412465520901 +693000 ekin = 18.1893971688534 | erot = 10.8893717674973 | epot = -126.682628911312 | etot = -97.6038599749618 +694000 ekin = 18.0024663245898 | erot = 9.63008190809017 | epot = -127.134149566016 | etot = -99.5016013333359 +695000 ekin = 17.9106177585088 | erot = 9.38908818759556 | epot = -127.458855842113 | etot = -100.159149896008 +696000 ekin = 18.8015538407413 | erot = 11.3106121967171 | epot = -127.951593054122 | etot = -97.8394270166638 +697000 ekin = 19.6151462844322 | erot = 11.749803807872 | epot = -128.248456377438 | etot = -96.883506285134 +698000 ekin = 19.9817732592184 | erot = 11.9234805546314 | epot = -128.37723140647 | etot = -96.4719775926202 +699000 ekin = 20.492332894368 | erot = 10.3463897474668 | epot = -128.344722500898 | etot = -97.5059998590627 +700000 ekin = 20.3061292470497 | erot = 10.4871647814256 | epot = -128.166934219072 | etot = -97.3736401905967 +701000 ekin = 20.435163166204 | erot = 11.9667131012207 | epot = -127.987082299128 | etot = -95.5852060317033 +702000 ekin = 19.6138488562644 | erot = 11.5598664205714 | epot = -127.589391748164 | etot = -96.4156764713278 +703000 ekin = 18.9781269955423 | erot = 11.1471421540445 | epot = -126.963232468615 | etot = -96.8379633190278 +704000 ekin = 18.1895189194246 | erot = 11.7320537727523 | epot = -126.181700585601 | etot = -96.2601278934237 +705000 ekin = 17.3387627788471 | erot = 10.3965571086159 | epot = -125.378399726584 | etot = -97.6430798391206 +706000 ekin = 16.8701199797021 | erot = 9.80258033004247 | epot = -124.55810673811 | etot = -97.8854064283659 +707000 ekin = 16.0344125792805 | erot = 11.7975795061599 | epot = -123.690865123956 | etot = -95.8588730385155 +708000 ekin = 15.1770953189152 | erot = 13.3872681988452 | epot = -122.798269998057 | etot = -94.2339064802965 +709000 ekin = 14.8566591653084 | erot = 14.7625175527179 | epot = -122.05398638328 | etot = -92.4348096652534 +710000 ekin = 14.2446306961825 | erot = 13.499675207948 | epot = -121.547927750292 | etot = -93.8036218461613 +711000 ekin = 13.8799285650757 | erot = 13.7967609326213 | epot = -121.127667714037 | etot = -93.4509782163402 +712000 ekin = 13.6766438887429 | erot = 14.2325414606922 | epot = -120.791432236364 | etot = -92.8822468869287 +713000 ekin = 12.6318627072834 | erot = 15.1001018154683 | epot = -120.505163197108 | etot = -92.7731986743563 +714000 ekin = 12.2169341685705 | erot = 15.7110047543937 | epot = -120.164867442063 | etot = -92.2369285190987 +715000 ekin = 12.0354978004268 | erot = 14.9480388272421 | epot = -119.896822435967 | etot = -92.9132858082978 +716000 ekin = 12.1247018323357 | erot = 15.009272360407 | epot = -119.754186634337 | etot = -92.6202124415946 +717000 ekin = 12.4339332759081 | erot = 14.689545190185 | epot = -119.773695307702 | etot = -92.6502168416085 +718000 ekin = 12.5421685656907 | erot = 15.4913269347027 | epot = -119.995216958968 | etot = -91.9617214585742 +719000 ekin = 12.8745846399692 | erot = 15.8452687118538 | epot = -120.323092184334 | etot = -91.603238832511 +720000 ekin = 13.1266740751758 | erot = 16.314705230934 | epot = -120.747951420241 | etot = -91.3065721141314 +721000 ekin = 13.684105405114 | erot = 17.0704798955969 | epot = -121.389101633572 | etot = -90.6345163328612 +722000 ekin = 14.1310987124484 | erot = 17.0813242672828 | epot = -122.028449574819 | etot = -90.816026595088 +723000 ekin = 14.1807761691476 | erot = 17.6983672283012 | epot = -122.518415688138 | etot = -90.6392722906893 +724000 ekin = 13.9119763497037 | erot = 16.3061756159374 | epot = -122.913742356855 | etot = -92.6955903912141 +725000 ekin = 15.1341788655366 | erot = 16.6282425691433 | epot = -123.267617609515 | etot = -91.5051961748353 +726000 ekin = 15.7434651230328 | erot = 15.6799305516657 | epot = -123.519615991063 | etot = -92.0962203163648 +727000 ekin = 16.5696277513306 | erot = 15.7761828983799 | epot = -123.813517978553 | etot = -91.4677073288423 +728000 ekin = 17.138358866264 | erot = 15.5397944494481 | epot = -124.189446555112 | etot = -91.5112932394 +729000 ekin = 17.8475719432623 | erot = 16.1340960775738 | epot = -124.63939303385 | etot = -90.6577250130135 +730000 ekin = 17.9540212549384 | erot = 16.601310674205 | epot = -125.140051021056 | etot = -90.5847190919131 +731000 ekin = 17.8190386197637 | erot = 17.4167233026914 | epot = -125.555205239652 | etot = -90.319443317197 +732000 ekin = 17.2392386833352 | erot = 15.3434972818983 | epot = -125.913671040018 | etot = -93.3309350747848 +733000 ekin = 17.3863226785689 | erot = 17.3727666834628 | epot = -126.113198330789 | etot = -91.3541089687574 +734000 ekin = 16.9660772739466 | erot = 19.7067074835036 | epot = -126.119820702024 | etot = -89.4470359445737 +735000 ekin = 17.2099696362347 | erot = 19.0860025980318 | epot = -125.998538986046 | etot = -89.7025667517794 +736000 ekin = 16.9363715030583 | erot = 20.5976147990406 | epot = -125.618325716769 | etot = -88.0843394146702 +737000 ekin = 16.2608237238847 | erot = 19.8522799516617 | epot = -125.100604184481 | etot = -88.9875005089344 +738000 ekin = 15.395982158947 | erot = 19.9411959356938 | epot = -124.604460889069 | etot = -89.2672827944282 +739000 ekin = 14.705870676325 | erot = 20.6458397755629 | epot = -124.153094104811 | etot = -88.8013836529227 +740000 ekin = 14.2784412741685 | erot = 20.2601951811175 | epot = -123.677002537444 | etot = -89.1383660821579 +741000 ekin = 13.4955390829594 | erot = 19.3311277036108 | epot = -123.387705919687 | etot = -90.5610391331166 +742000 ekin = 12.8179361413291 | erot = 19.5336860011407 | epot = -123.151449993436 | etot = -90.7998278509665 +743000 ekin = 13.0337014652775 | erot = 17.9841020922867 | epot = -123.012673897736 | etot = -91.9948703401715 +744000 ekin = 12.9813980961597 | erot = 17.726056879389 | epot = -122.916848685485 | etot = -92.2093937099368 +745000 ekin = 13.5311464037343 | erot = 18.1177531188692 | epot = -122.901549018525 | etot = -91.2526494959215 +746000 ekin = 13.5919703939618 | erot = 19.0832740150976 | epot = -123.101419465854 | etot = -90.4261750567945 +747000 ekin = 14.1077674474257 | erot = 17.8226275034512 | epot = -123.58081022616 | etot = -91.650415275283 +748000 ekin = 14.6621453024792 | erot = 17.8312525621379 | epot = -124.112503040582 | etot = -91.6191051759652 +749000 ekin = 15.4518977431962 | erot = 15.7096412244856 | epot = -124.687395203896 | etot = -93.5258562362144 +750000 ekin = 16.1563893654211 | erot = 13.965149665533 | epot = -125.277204558046 | etot = -95.1556655270914 +751000 ekin = 16.2747342933903 | erot = 12.6977317580505 | epot = -125.831806887125 | etot = -96.8593408356843 +752000 ekin = 17.7056563013116 | erot = 13.3824566508439 | epot = -126.411836163195 | etot = -95.3237232110397 +753000 ekin = 17.9854792842255 | erot = 14.8922469505158 | epot = -126.873651180785 | etot = -93.9959249460439 +754000 ekin = 18.5318903204323 | erot = 15.9226115000986 | epot = -127.346494571583 | etot = -92.8919927510522 +755000 ekin = 18.5931261934923 | erot = 13.6718413880936 | epot = -127.742440326195 | etot = -95.4774727446087 +756000 ekin = 18.8286764442108 | erot = 13.0137069564827 | epot = -128.191128040948 | etot = -96.3487446402544 +757000 ekin = 19.4913070071007 | erot = 14.5250853074874 | epot = -128.69789103348 | etot = -94.6814987188918 +758000 ekin = 19.6942603476018 | erot = 14.5104088574756 | epot = -128.979041245958 | etot = -94.7743720408807 +759000 ekin = 18.9325456706996 | erot = 15.1874719906816 | epot = -129.125230915994 | etot = -95.0052132546124 +760000 ekin = 18.9065789818531 | erot = 14.2503021689044 | epot = -129.446059212486 | etot = -96.2891780617282 +761000 ekin = 18.357314022554 | erot = 14.1498937701025 | epot = -129.843841819257 | etot = -97.3366340266 +762000 ekin = 17.9187526439542 | erot = 15.5059590298861 | epot = -130.296359700542 | etot = -96.871648026702 +763000 ekin = 18.7690798800428 | erot = 16.014839272894 | epot = -130.770463803987 | etot = -95.9865446510507 +764000 ekin = 18.8778219119189 | erot = 16.8467266459808 | epot = -131.242851353872 | etot = -95.5183027959724 +765000 ekin = 19.2932441905361 | erot = 18.6166335931794 | epot = -131.514072102331 | etot = -93.6041943186153 +766000 ekin = 19.3126668142697 | erot = 19.7805756720901 | epot = -131.43720495817 | etot = -92.3439624718106 +767000 ekin = 18.8380931693496 | erot = 21.0359980279622 | epot = -131.01637172035 | etot = -91.1422805230381 +768000 ekin = 19.1261539279865 | erot = 20.0058132628391 | epot = -130.383371663231 | etot = -91.2514044724058 +769000 ekin = 18.6658010875798 | erot = 19.8194697215686 | epot = -129.737136131356 | etot = -91.2518653222079 +770000 ekin = 18.6690643877456 | erot = 18.6699378990226 | epot = -129.178488323658 | etot = -91.8394860368895 +771000 ekin = 18.410622704207 | erot = 19.2525778618946 | epot = -128.676630708693 | etot = -91.0134301425919 +772000 ekin = 17.9707250637436 | erot = 17.4114938226956 | epot = -128.261442222035 | etot = -92.8792233355954 +773000 ekin = 17.668312511817 | erot = 17.2569733842433 | epot = -127.87672080999 | etot = -92.9514349139299 +774000 ekin = 17.5550764279839 | erot = 17.4864657435421 | epot = -127.411445006413 | etot = -92.3699028348866 +775000 ekin = 16.8879188430506 | erot = 17.4941622737562 | epot = -127.021017099921 | etot = -92.6389359831145 +776000 ekin = 16.149138831663 | erot = 17.7923322373362 | epot = -126.516975486605 | etot = -92.5755044176057 +777000 ekin = 15.1959987806213 | erot = 16.1719415713515 | epot = -125.8152015468 | etot = -94.4472611948275 +778000 ekin = 14.786810923737 | erot = 12.6586337347389 | epot = -125.146947022063 | etot = -97.7015023635874 +779000 ekin = 14.2187642913764 | erot = 13.6699008100759 | epot = -124.725151042076 | etot = -96.8364859406241 +780000 ekin = 14.1033477025239 | erot = 13.5818589500756 | epot = -124.366246202707 | etot = -96.6810395501076 +781000 ekin = 14.0036276712943 | erot = 13.429175819281 | epot = -124.2212179265 | etot = -96.7884144359251 +782000 ekin = 13.6399725569131 | erot = 12.8638840023592 | epot = -124.177097664268 | etot = -97.6732411049952 +783000 ekin = 13.0983004720875 | erot = 13.566823921084 | epot = -124.330009413018 | etot = -97.6648850198466 +784000 ekin = 12.4232195977069 | erot = 11.7074204511651 | epot = -124.477486844109 | etot = -100.346846795237 +785000 ekin = 12.6954370989424 | erot = 13.3412967612961 | epot = -124.489174891303 | etot = -98.4524410310646 +786000 ekin = 12.2307499602112 | erot = 13.8135463793774 | epot = -124.607122728393 | etot = -98.5628263888048 +787000 ekin = 12.9182869507333 | erot = 13.7218969143707 | epot = -124.82074195056 | etot = -98.1805580854555 +788000 ekin = 13.4238850106927 | erot = 14.1597856773729 | epot = -124.981729531598 | etot = -97.3980588435328 +789000 ekin = 13.2661219147002 | erot = 14.5207070846773 | epot = -125.006998351316 | etot = -97.2201693519387 +790000 ekin = 12.8103412181899 | erot = 17.5755134448426 | epot = -124.942134130136 | etot = -94.5562794671033 +791000 ekin = 12.4503556199692 | erot = 15.5554751941819 | epot = -124.907713394743 | etot = -96.9018825805917 +792000 ekin = 12.6341647652668 | erot = 15.3773249490151 | epot = -125.076595546113 | etot = -97.0651058318309 +793000 ekin = 11.9211100918306 | erot = 16.594091911106 | epot = -125.36944866716 | etot = -96.8542466642231 +794000 ekin = 11.8716704242785 | erot = 14.9353222436754 | epot = -125.573829477738 | etot = -98.7668368097843 +795000 ekin = 12.1403447469577 | erot = 16.5574574396309 | epot = -125.644718200753 | etot = -96.9469160141647 +796000 ekin = 12.0508168262995 | erot = 17.0511498916366 | epot = -125.700608016834 | etot = -96.5986412988983 +797000 ekin = 12.1520050891335 | erot = 16.128920079796 | epot = -125.674769253062 | etot = -97.3938440841321 +798000 ekin = 12.3308917777312 | erot = 15.4742322486099 | epot = -125.711203292271 | etot = -97.9060792659298 +799000 ekin = 12.5178294841378 | erot = 16.3497571956463 | epot = -125.794626964222 | etot = -96.9270402844375 +800000 ekin = 12.6713482903998 | erot = 13.202533976495 | epot = -125.904877500219 | etot = -100.030995233325 +801000 ekin = 12.6154758346025 | erot = 11.5014919425152 | epot = -126.041796456651 | etot = -101.924828679534 +802000 ekin = 12.6238778653705 | erot = 10.2109491974381 | epot = -126.141542234256 | etot = -103.306715171448 +803000 ekin = 12.3228292352108 | erot = 10.6792462756005 | epot = -126.208089431358 | etot = -103.206013920547 +804000 ekin = 12.5796728130751 | erot = 11.4079850056355 | epot = -126.326223101459 | etot = -102.338565282748 +805000 ekin = 12.8287970064896 | erot = 10.5858632741758 | epot = -126.474664523595 | etot = -103.06000424293 +806000 ekin = 13.5426071599717 | erot = 10.3031635227289 | epot = -126.568461827122 | etot = -102.722691144422 +807000 ekin = 13.6641628242498 | erot = 11.894558785332 | epot = -126.710354739398 | etot = -101.151633129816 +808000 ekin = 13.7737479148123 | erot = 12.8123896822599 | epot = -126.952137635789 | etot = -100.366000038717 +809000 ekin = 13.8236121531522 | erot = 13.940446337396 | epot = -127.144137739466 | etot = -99.3800792489183 +810000 ekin = 13.8892027423549 | erot = 13.3573940141124 | epot = -127.193427372693 | etot = -99.9468306162262 +811000 ekin = 13.9170128477122 | erot = 13.7476753490713 | epot = -127.161895550113 | etot = -99.4972073533294 +812000 ekin = 13.1409444391207 | erot = 14.0746090292756 | epot = -127.107311796194 | etot = -99.8917583277978 +813000 ekin = 12.861860574227 | erot = 15.0729933760634 | epot = -127.043075399173 | etot = -99.1082214488824 +814000 ekin = 12.6027576815133 | erot = 15.0392034414281 | epot = -126.907309882891 | etot = -99.26534875995 +815000 ekin = 11.932259654768 | erot = 14.3636897347259 | epot = -126.761432515165 | etot = -100.465483125671 +816000 ekin = 11.35075067959 | erot = 15.5560736114922 | epot = -126.427811274938 | etot = -99.5209869838557 +817000 ekin = 11.2250532397345 | erot = 16.5114599555 | epot = -125.931392843433 | etot = -98.1948796481981 +818000 ekin = 11.0166156367548 | erot = 14.9446469024182 | epot = -125.272330201453 | etot = -99.3110676622805 +819000 ekin = 10.4891738590362 | erot = 16.8855170161758 | epot = -124.371608618457 | etot = -96.9969177432447 +820000 ekin = 10.0266779480879 | erot = 15.7489287908868 | epot = -123.364387874826 | etot = -97.5887811358512 +821000 ekin = 9.90657065780812 | erot = 13.782557974274 | epot = -122.301487334186 | etot = -98.6123587021042 +822000 ekin = 9.87134803404449 | erot = 11.9174872098548 | epot = -121.320354205487 | etot = -99.5315189615877 +823000 ekin = 9.68561032590535 | erot = 9.88574499255545 | epot = -120.422926439408 | etot = -100.851571120948 +824000 ekin = 9.73229013784877 | erot = 10.4633128468899 | epot = -119.699012418505 | etot = -99.5034094337664 +825000 ekin = 9.77876624873007 | erot = 9.68820614527644 | epot = -119.182494546292 | etot = -99.7155221522856 +826000 ekin = 10.1812729286607 | erot = 10.0849550346518 | epot = -118.955325380313 | etot = -98.6890974170011 +827000 ekin = 10.3909867160541 | erot = 11.6016996678967 | epot = -118.985615028296 | etot = -96.9929286443447 +828000 ekin = 10.1585262669409 | erot = 11.3769970039739 | epot = -119.165438228199 | etot = -97.6299149572841 +829000 ekin = 10.5758781643912 | erot = 11.1331031160895 | epot = -119.552009195897 | etot = -97.8430279154163 +830000 ekin = 11.6245431427055 | erot = 11.2796233624081 | epot = -120.103068304228 | etot = -97.1989017991147 +831000 ekin = 12.1645312798119 | erot = 13.0609005527371 | epot = -120.676246029456 | etot = -95.4508141969068 +832000 ekin = 12.0364232066511 | erot = 11.8977492689015 | epot = -121.145022809283 | etot = -97.2108503337307 +833000 ekin = 12.0625993978253 | erot = 12.4878031430518 | epot = -121.624112083074 | etot = -97.0737095421967 +834000 ekin = 11.738654867677 | erot = 12.0283352663614 | epot = -122.076869833623 | etot = -98.309879699585 +835000 ekin = 12.1533002116761 | erot = 10.7471234721626 | epot = -122.470028838848 | etot = -99.5696051550088 +836000 ekin = 12.5678679536299 | erot = 12.5608164431231 | epot = -122.752318094076 | etot = -97.6236336973225 +837000 ekin = 12.677979505358 | erot = 11.9274345095503 | epot = -122.960119628142 | etot = -98.3547056132339 +838000 ekin = 12.5547346979377 | erot = 11.81726541959 | epot = -122.834139956595 | etot = -98.462139839067 +839000 ekin = 12.9964099328755 | erot = 11.5179860497468 | epot = -122.876448848946 | etot = -98.362052866324 +840000 ekin = 13.7833088925338 | erot = 12.8913873957153 | epot = -123.217054126157 | etot = -96.5423578379081 +841000 ekin = 14.4884957751375 | erot = 14.4360444698798 | epot = -123.550011332138 | etot = -94.6254710871206 +842000 ekin = 15.4273410820542 | erot = 15.6028234764419 | epot = -124.140325672202 | etot = -93.1101611137059 +843000 ekin = 15.8829421770905 | erot = 14.8221341991371 | epot = -124.697151795124 | etot = -93.9920754188959 +844000 ekin = 15.6851680737013 | erot = 14.8897161686113 | epot = -125.333544173285 | etot = -94.7586599309723 +845000 ekin = 16.2227462471367 | erot = 14.5146274475107 | epot = -126.136061332131 | etot = -95.3986876374833 +846000 ekin = 16.2721050163556 | erot = 15.9598001647269 | epot = -127.042147653036 | etot = -94.8102424719537 +847000 ekin = 16.4156424253392 | erot = 16.6073118228683 | epot = -127.9555275463 | etot = -94.9325732980929 +848000 ekin = 17.0271849056848 | erot = 16.3052790687785 | epot = -128.925218355557 | etot = -95.5927543810935 +849000 ekin = 17.3479512231277 | erot = 17.7687067215052 | epot = -129.684137598081 | etot = -94.5674796534479 +850000 ekin = 17.0482888853807 | erot = 17.8155859438296 | epot = -130.224252247721 | etot = -95.3603774185109 +851000 ekin = 16.3414840194608 | erot = 18.368119909927 | epot = -130.448061327052 | etot = -95.7384573976638 +852000 ekin = 16.5087616209338 | erot = 17.8733626297512 | epot = -130.233002313213 | etot = -95.8508780625277 +853000 ekin = 16.0022675586976 | erot = 17.3313707856007 | epot = -129.605040671187 | etot = -96.2714023268884 +854000 ekin = 15.8481523640709 | erot = 17.3731469998314 | epot = -128.600740012967 | etot = -95.3794406490646 +855000 ekin = 15.387436296962 | erot = 15.9466424529339 | epot = -127.551417944733 | etot = -96.2173391948372 +856000 ekin = 15.3216011830485 | erot = 14.8576497992235 | epot = -126.542970444436 | etot = -96.3637194621644 +857000 ekin = 15.6611430156851 | erot = 14.2086867473805 | epot = -125.725807505588 | etot = -95.8559777425227 +858000 ekin = 16.3932774116906 | erot = 11.4783454458777 | epot = -125.124867641716 | etot = -97.2532447841477 +859000 ekin = 17.0067307957749 | erot = 9.41761591928337 | epot = -124.765767596223 | etot = -98.3414208811647 +860000 ekin = 17.6921921365598 | erot = 9.88679833635887 | epot = -124.629136018772 | etot = -97.050145545853 +861000 ekin = 18.1187426592769 | erot = 8.73673205883354 | epot = -124.79647020726 | etot = -97.9409954891494 +862000 ekin = 18.8404901657434 | erot = 8.93480913907133 | epot = -125.176719114941 | etot = -97.4014198101266 +863000 ekin = 19.3084808486405 | erot = 8.23780529858733 | epot = -125.665135114142 | etot = -98.1188489669144 +864000 ekin = 20.2764093504144 | erot = 7.93678261423435 | epot = -126.215520017963 | etot = -98.0023280533142 +865000 ekin = 20.4196574350482 | erot = 8.09429532393971 | epot = -126.83410889964 | etot = -98.3201561406524 +866000 ekin = 21.4829378213328 | erot = 7.80836492430302 | epot = -127.512429536164 | etot = -98.2211267905285 +867000 ekin = 21.4887610044054 | erot = 8.80868260679231 | epot = -128.170234943922 | etot = -97.8727913327241 +868000 ekin = 21.7142871399884 | erot = 9.47461659896558 | epot = -128.801589043361 | etot = -97.6126853044068 +869000 ekin = 22.1133192463801 | erot = 10.4861647920119 | epot = -129.339773073194 | etot = -96.7402890348025 +870000 ekin = 21.3481380448441 | erot = 10.9849989949219 | epot = -129.621309896878 | etot = -97.2881728571119 +871000 ekin = 21.9561325516446 | erot = 11.9062217793487 | epot = -129.651390924563 | etot = -95.7890365935695 +872000 ekin = 21.3076494139952 | erot = 13.2463283410523 | epot = -129.542988798125 | etot = -94.9890110430773 +873000 ekin = 21.4299739935353 | erot = 13.6544223896015 | epot = -129.320239107091 | etot = -94.2358427239545 +874000 ekin = 21.0794413188304 | erot = 14.573887219774 | epot = -128.942695133615 | etot = -93.2893665950108 +875000 ekin = 21.0103891922048 | erot = 12.0404980528645 | epot = -128.579828525644 | etot = -95.5289412805743 +876000 ekin = 21.7076508313671 | erot = 11.3031178905217 | epot = -128.188785450586 | etot = -95.178016728697 +877000 ekin = 22.2505358324156 | erot = 10.8996344937665 | epot = -127.77554615513 | etot = -94.6253758289478 +878000 ekin = 22.572764818179 | erot = 11.6318058014138 | epot = -127.562038418745 | etot = -93.3574677991519 +879000 ekin = 22.1079311271033 | erot = 10.4864160952736 | epot = -127.460772833857 | etot = -94.86642561148 +880000 ekin = 21.2718493500246 | erot = 9.70252202565287 | epot = -127.364823607957 | etot = -96.3904522322797 +881000 ekin = 21.0257078575782 | erot = 10.5239361374153 | epot = -127.318073987713 | etot = -95.7684299927199 +882000 ekin = 20.2392286223341 | erot = 10.2655585469409 | epot = -127.115951248162 | etot = -96.6111640788866 +883000 ekin = 19.5926634763368 | erot = 11.4253835216275 | epot = -126.759123154987 | etot = -95.7410761570228 +884000 ekin = 18.6625603965092 | erot = 13.4817805374235 | epot = -126.32853647352 | etot = -94.1841955395878 +885000 ekin = 18.3180772659693 | erot = 12.8339022236605 | epot = -125.76497943843 | etot = -94.6129999488002 +886000 ekin = 18.0055736451768 | erot = 12.7961277363815 | epot = -124.967201184612 | etot = -94.1654998030538 +887000 ekin = 17.2515521488208 | erot = 11.921264571434 | epot = -124.125696183328 | etot = -94.9528794630729 +888000 ekin = 16.669360516195 | erot = 10.2996806839265 | epot = -123.53691035064 | etot = -96.567869150518 +889000 ekin = 15.4931021055659 | erot = 9.82818731105444 | epot = -123.080632734892 | etot = -97.7593433182714 +890000 ekin = 14.9536491761315 | erot = 9.74388242695765 | epot = -122.961194614762 | etot = -98.2636630116728 +891000 ekin = 14.5563310250354 | erot = 9.84917133588156 | epot = -123.201631837732 | etot = -98.7961294768147 +892000 ekin = 13.9709003525822 | erot = 12.5475105338346 | epot = -123.552779811404 | etot = -97.0343689249869 +893000 ekin = 14.1046207703492 | erot = 12.373439335803 | epot = -124.022071734763 | etot = -97.5440116286107 +894000 ekin = 13.981746696699 | erot = 15.8133541008515 | epot = -124.398343032409 | etot = -94.603242234858 +895000 ekin = 14.1143634852376 | erot = 15.1396548037889 | epot = -124.822802398661 | etot = -95.5687841096345 +896000 ekin = 14.0610738017734 | erot = 17.0439053339517 | epot = -125.282135957 | etot = -94.1771568212749 +897000 ekin = 14.554483196482 | erot = 17.6238194381056 | epot = -125.827981585264 | etot = -93.6496789506765 +898000 ekin = 13.8598489512228 | erot = 18.4610583729181 | epot = -126.168315488213 | etot = -93.8474081640722 +899000 ekin = 14.3611073493965 | erot = 19.1793416697318 | epot = -126.303608654933 | etot = -92.7631596358049 +900000 ekin = 14.3464542297122 | erot = 16.2685406955579 | epot = -126.225999898658 | etot = -95.6110049733875 +901000 ekin = 13.7776566976285 | erot = 16.5370114462425 | epot = -125.99255384699 | etot = -95.6778857031195 +902000 ekin = 13.5149469908651 | erot = 15.4305114008538 | epot = -125.750366521606 | etot = -96.8049081298871 +903000 ekin = 13.5498164824643 | erot = 17.5583700285456 | epot = -125.602965520456 | etot = -94.4947790094465 +904000 ekin = 14.1246403611212 | erot = 16.0173961512998 | epot = -125.453101757115 | etot = -95.3110652446938 +905000 ekin = 14.7155252784859 | erot = 17.1334668002383 | epot = -125.318768904924 | etot = -93.4697768261996 +906000 ekin = 13.6449023583548 | erot = 17.2893304116319 | epot = -125.134598551714 | etot = -94.2003657817277 +907000 ekin = 13.258248010078 | erot = 16.5831560416574 | epot = -124.910757681878 | etot = -95.0693536301426 +908000 ekin = 13.0302975650094 | erot = 18.748025713544 | epot = -124.697496883562 | etot = -92.9191736050091 +909000 ekin = 13.1334637854215 | erot = 19.844384931098 | epot = -124.348428326159 | etot = -91.3705796096396 +910000 ekin = 13.5289931510912 | erot = 18.5450660023685 | epot = -123.892710718617 | etot = -91.8186515651572 +911000 ekin = 14.2919545718934 | erot = 17.1538732996284 | epot = -123.389698231818 | etot = -91.9438703602961 +912000 ekin = 13.7316439249099 | erot = 16.1052160616744 | epot = -122.918030498883 | etot = -93.0811705122983 +913000 ekin = 13.9397771675513 | erot = 16.2424107966852 | epot = -122.557278020844 | etot = -92.3750900566078 +914000 ekin = 13.7487442078575 | erot = 13.1532318785282 | epot = -122.329080940675 | etot = -95.4271048542896 +915000 ekin = 13.7308329605517 | erot = 13.5814252587633 | epot = -122.054538980737 | etot = -94.7422807614216 +916000 ekin = 14.5378379517964 | erot = 13.8074853537405 | epot = -121.874760027857 | etot = -93.5294367223197 +917000 ekin = 13.8431749616253 | erot = 13.2096929957287 | epot = -121.812134503636 | etot = -94.7592665462817 +918000 ekin = 13.7991607789687 | erot = 13.9584156708955 | epot = -121.777032791736 | etot = -94.019456341872 +919000 ekin = 13.9743107003906 | erot = 11.376480734218 | epot = -121.787941690802 | etot = -96.4371502561935 +920000 ekin = 14.1537578645617 | erot = 11.8912414462999 | epot = -121.736720902431 | etot = -95.6917215915691 +921000 ekin = 14.5103068743731 | erot = 11.7030743823452 | epot = -121.859562953019 | etot = -95.6461816963007 +922000 ekin = 15.5087906706467 | erot = 11.7650182755899 | epot = -122.052783976836 | etot = -94.7789750305991 +923000 ekin = 15.824540725833 | erot = 11.7429828112815 | epot = -122.321689800206 | etot = -94.7541662630917 +924000 ekin = 16.2118457578851 | erot = 11.4735610997044 | epot = -122.573723642788 | etot = -94.8883167851983 +925000 ekin = 15.7157898733479 | erot = 13.0287931438615 | epot = -122.870813777107 | etot = -94.1262307598975 +926000 ekin = 15.8232662824047 | erot = 12.4206741941128 | epot = -123.323478856275 | etot = -95.0795383797571 +927000 ekin = 16.0403094126387 | erot = 12.0428568481805 | epot = -123.785857340744 | etot = -95.7026910799247 +928000 ekin = 16.7772842109268 | erot = 12.7546635307638 | epot = -124.204094957598 | etot = -94.6721472159076 +929000 ekin = 17.5790100261127 | erot = 16.160558685576 | epot = -124.581498626405 | etot = -90.841929914716 +930000 ekin = 17.5365546397933 | erot = 17.0813652056986 | epot = -124.910877261319 | etot = -90.2929574158269 +931000 ekin = 17.7834886521176 | erot = 17.9815360577043 | epot = -125.205802574187 | etot = -89.440777864365 +932000 ekin = 18.2619260856899 | erot = 16.5368653969913 | epot = -125.376038848337 | etot = -90.5772473656554 +933000 ekin = 18.3152840467822 | erot = 18.5416609167158 | epot = -125.463928469439 | etot = -88.6069835059413 +934000 ekin = 19.2078803403977 | erot = 18.5161844650513 | epot = -125.375129068137 | etot = -87.6510642626877 +935000 ekin = 19.7485108682908 | erot = 19.6156730686703 | epot = -125.07023795911 | etot = -85.7060540221492 +936000 ekin = 20.2957967539069 | erot = 18.9931658332333 | epot = -124.798109430752 | etot = -85.5091468436115 +937000 ekin = 20.7700066695891 | erot = 18.0459227699491 | epot = -124.634102785077 | etot = -85.818173345539 +938000 ekin = 21.2166591879643 | erot = 17.7286136027558 | epot = -124.572231718776 | etot = -85.6269589280562 +939000 ekin = 21.7577967376043 | erot = 18.1536110439922 | epot = -124.632022917129 | etot = -84.7206151355328 +940000 ekin = 21.7563993533876 | erot = 19.1622147401127 | epot = -124.621188398547 | etot = -83.7025743050472 +941000 ekin = 21.6708288051912 | erot = 18.2286801716876 | epot = -124.515208751161 | etot = -84.6156997742824 +942000 ekin = 21.1815139820123 | erot = 16.1097626291255 | epot = -124.287348781255 | etot = -86.9960721701172 +943000 ekin = 20.9151315922865 | erot = 18.7083258209792 | epot = -123.78364783818 | etot = -84.1601904249144 +944000 ekin = 20.6364407090718 | erot = 17.7607975845773 | epot = -122.956797838135 | etot = -84.5595595444854 +945000 ekin = 19.8394382021514 | erot = 15.0995691431346 | epot = -121.94391695222 | etot = -87.0049096069344 +946000 ekin = 18.9174495656799 | erot = 15.948991403541 | epot = -120.81797770207 | etot = -85.9515367328493 +947000 ekin = 17.6519722549426 | erot = 14.4049592033415 | epot = -119.602144541684 | etot = -87.5452130833999 +948000 ekin = 17.150326150994 | erot = 16.4018416217422 | epot = -118.261354993643 | etot = -84.7091872209069 +949000 ekin = 16.4090819032454 | erot = 17.1968654437185 | epot = -116.861399674524 | etot = -83.2554523275598 +950000 ekin = 14.742587969487 | erot = 15.9352061528884 | epot = -115.448063912315 | etot = -84.7702697899391 +951000 ekin = 14.1970965023353 | erot = 12.2798421644794 | epot = -114.107086041751 | etot = -87.6301473749363 +952000 ekin = 14.0927060198374 | erot = 10.3216694625251 | epot = -113.119450769367 | etot = -88.7050752870047 +953000 ekin = 13.5046310501095 | erot = 12.450157023742 | epot = -112.425552892524 | etot = -86.4707648186723 +954000 ekin = 13.468948560794 | erot = 12.6343432244467 | epot = -111.837509178703 | etot = -85.7342173934626 +955000 ekin = 13.6777733496109 | erot = 11.8417648028018 | epot = -111.558902764832 | etot = -86.039364612419 +956000 ekin = 13.574711867833 | erot = 12.6049973337106 | epot = -111.545211737773 | etot = -85.3655025362291 +957000 ekin = 13.6330464633142 | erot = 14.3761738336318 | epot = -112.128030169176 | etot = -84.11880987223 +958000 ekin = 14.0084363389877 | erot = 16.5447727486963 | epot = -113.007910033041 | etot = -82.454700945357 +959000 ekin = 14.2087351825818 | erot = 15.7773301271983 | epot = -114.064087160015 | etot = -84.0780218502353 +960000 ekin = 13.9105457429093 | erot = 17.3230189425809 | epot = -115.173509709766 | etot = -83.9399450242753 +961000 ekin = 13.7232782313952 | erot = 17.1366163828836 | epot = -116.301874390945 | etot = -85.4419797766661 +962000 ekin = 14.1300908335642 | erot = 19.1834424878264 | epot = -117.354152528141 | etot = -84.0406192067499 +963000 ekin = 13.9798760128625 | erot = 18.4550075209063 | epot = -118.206972151129 | etot = -85.7720886173601 +964000 ekin = 13.9181246391495 | erot = 17.8334045791798 | epot = -118.760687299267 | etot = -87.0091580809377 +965000 ekin = 14.4725466154951 | erot = 15.9348125576432 | epot = -119.115139083965 | etot = -88.7077799108268 +966000 ekin = 13.7793869014681 | erot = 16.1858043661218 | epot = -119.263924963707 | etot = -89.2987336961167 +967000 ekin = 13.924823594908 | erot = 15.9375000198072 | epot = -119.240534699135 | etot = -89.3782110844195 +968000 ekin = 13.9419705201903 | erot = 16.1454454067516 | epot = -119.083807794167 | etot = -88.9963918672251 +969000 ekin = 14.3690849278853 | erot = 13.205655023488 | epot = -118.930833582305 | etot = -91.356093630932 +970000 ekin = 14.9185995812819 | erot = 13.2062810807965 | epot = -118.928888853978 | etot = -90.8040081918998 +971000 ekin = 14.184367299462 | erot = 12.0305076598074 | epot = -118.991474962564 | etot = -92.7766000032944 +972000 ekin = 14.188208017276 | erot = 12.0476238940137 | epot = -119.23878461909 | etot = -93.0029527078003 +973000 ekin = 14.5141228505811 | erot = 11.1791903215728 | epot = -119.482959937313 | etot = -93.7896467651595 +974000 ekin = 14.6227825752321 | erot = 10.5615370552088 | epot = -119.797738977139 | etot = -94.6134193466976 +975000 ekin = 14.1818069716479 | erot = 10.6157258452495 | epot = -120.137564506978 | etot = -95.3400316900808 +976000 ekin = 14.266272919117 | erot = 12.5445761157866 | epot = -120.532894837912 | etot = -93.7220458030081 +977000 ekin = 14.1873145651582 | erot = 12.1072472960052 | epot = -120.990453356646 | etot = -94.6958914954822 +978000 ekin = 14.0872157230769 | erot = 13.3166550454898 | epot = -121.488261215249 | etot = -94.0843904466821 +979000 ekin = 14.8429992045431 | erot = 13.7865336818933 | epot = -122.339012921602 | etot = -93.7094800351656 +980000 ekin = 15.2825257184271 | erot = 16.9450933327408 | epot = -123.110230269883 | etot = -90.8826112187148 +981000 ekin = 15.6734301840752 | erot = 16.4399015675571 | epot = -123.956056131479 | etot = -91.8427243798469 +982000 ekin = 15.5561774848902 | erot = 16.6936322487795 | epot = -124.765342820977 | etot = -92.5155330873075 +983000 ekin = 15.5987477396929 | erot = 17.1400159359463 | epot = -125.427460387889 | etot = -92.6886967122494 +984000 ekin = 15.8487635761921 | erot = 17.664888995833 | epot = -125.938030694567 | etot = -92.4243781225422 +985000 ekin = 15.4193899857815 | erot = 19.1714631850008 | epot = -126.275311226509 | etot = -91.6844580557266 +986000 ekin = 15.2507329969684 | erot = 19.661925701056 | epot = -126.459631597701 | etot = -91.5469728996769 +987000 ekin = 15.5016876432465 | erot = 17.6752121438465 | epot = -126.592354148809 | etot = -93.4154543617161 +988000 ekin = 15.1098611004096 | erot = 20.9945187038817 | epot = -126.845591893857 | etot = -90.7412120895656 +989000 ekin = 14.8059038805742 | erot = 24.7484294327106 | epot = -127.090979520225 | etot = -87.5366462069407 +990000 ekin = 15.0487910362319 | erot = 23.0457590429322 | epot = -127.311632746623 | etot = -89.2170826674585 +991000 ekin = 15.3736252894067 | erot = 20.8199208091616 | epot = -127.515655978073 | etot = -91.3221098795049 +992000 ekin = 15.5207083652132 | erot = 19.0611376445553 | epot = -127.784686918491 | etot = -93.2028409087226 +993000 ekin = 15.6031034657673 | erot = 17.8662930030541 | epot = -128.200332799037 | etot = -94.7309363302157 +994000 ekin = 15.6498253251245 | erot = 17.1558885499971 | epot = -128.560961013637 | etot = -95.7552471385152 +995000 ekin = 16.3849621321118 | erot = 16.7571566439574 | epot = -128.927696519966 | etot = -95.7855777438969 +996000 ekin = 15.8638702907294 | erot = 17.4129512678654 | epot = -129.370199240218 | etot = -96.0933776816235 +997000 ekin = 16.7002057380581 | erot = 15.6537424037949 | epot = -129.686247689077 | etot = -97.332299547224 +998000 ekin = 16.6111423570136 | erot = 13.0091456196802 | epot = -129.752845827544 | etot = -100.13255785085 +999000 ekin = 16.492584210326 | erot = 13.0108008173606 | epot = -129.709400513234 | etot = -100.206015485547 +1000000 ekin = 17.097105825142 | erot = 12.6179942372262 | epot = -129.692482442335 | etot = -99.977382379967 + 1000000 382.38165 -132.06191 2.3694293 -112.59538 0.043662828 39304000 +Loop time of 18.875 on 4 procs for 1000000 steps with 16 atoms + +Performance: 78.092 ns/day, 0.307 hours/ns, 52980.236 timesteps/s, 847.684 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 6.6389 | 9.0272 | 11.733 | 63.0 | 47.83 +Bond | 0.25991 | 0.31216 | 0.34826 | 6.1 | 1.65 +Neigh | 0.005375 | 0.0054547 | 0.005558 | 0.1 | 0.03 +Comm | 3.8623 | 6.7331 | 8.8907 | 72.9 | 35.67 +Output | 0.066898 | 0.071666 | 0.082232 | 2.3 | 0.38 +Modify | 1.173 | 1.3132 | 1.4562 | 9.6 | 6.96 +Other | | 1.412 | | | 7.48 + +Nlocal: 4 ave 5 max 3 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 12 ave 13 max 11 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 26.75 ave 48 max 13 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:18 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/data.duplex3 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/data.duplex3 new file mode 100644 index 0000000000..a5ade0d892 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/data.duplex3 @@ -0,0 +1,68 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 100.0278 +2 100.0278 +3 100.0278 +4 100.0278 + +Atoms # hybrid + +1 1 -0.9600635673395586 -6.697372578532395 11.214288461530149 1 1 0.016231479325760585 0 0 0 +2 2 -1.371418484333729 -8.644426415489871 15.09830243650489 1 1 0.016231479325760585 0 0 0 +3 3 -0.6216529396853785 -10.27130427566052 18.871948109873205 1 1 0.016231479325760585 0 0 0 +4 4 1.779062937600471 -10.807909849707325 23.24831121047697 1 1 0.016231479325760585 0 0 0 +5 1 4.239477379859167 -10.116984578731293 26.59145222824391 1 1 0.016231479325760585 0 0 0 +6 4 -1.9327071764636017 -1.6150385295751968 26.477847842079502 2 1 0.016231479325760585 0 0 0 +7 1 -0.2983880618807194 -0.9579116659377174 23.010952595199885 2 1 0.016231479325760585 0 0 0 +8 2 2.1503419307040095 -0.31467499729662424 19.779605638337472 2 1 0.016231479325760585 0 0 0 +9 3 5.687077844288683 -1.6585607691903788 17.32600745817322 2 1 0.016231479325760585 0 0 0 +10 4 7.960942109870774 -4.424349635235229 15.853866095654556 2 1 0.016231479325760585 0 0 0 + +Velocities + +1 0.003670260004547261 -0.001065537256202598 0.00019820771627082902 2.190783710921869 -2.4582417153465035 1.7715963770507672 +2 0.002291113608335764 0.0007728773438117204 0.002296672286413572 -0.40551125639613556 -0.12256940476096484 0.7114827747471555 +3 -0.0004997750377219465 -0.0006770677373491773 -0.0006775964298166731 2.179995735254803 3.7414175740175044 -1.7280709663891953 +4 -0.00015182185791796758 -4.553427726427798e-05 0.001445301171404135 -0.9443175316300753 1.9770932892489974 -0.3048781148297085 +5 0.00010888231798112065 -0.0017696699496284707 0.002217080679988605 -0.08456353584305179 0.035965271955914695 -0.7051030632137099 +6 0.0002936592731756661 -0.0011965505946877099 0.0004708407813130548 -0.7164699339101465 -1.1698888787077064 2.094408810880699 +7 -2.1364103955982793e-05 5.577692626680783e-05 -0.0005335687118188998 1.5034116933686936 -2.4596844236201743 0.7286296966602159 +8 -0.002835367576168593 -0.00028136761767332186 -0.0006160127733736687 -0.26771671594599533 -2.360332797207871 -1.6798429613010255 +9 0.00037413027551487407 0.001890740851504142 0.0005563994572100851 -1.512871512517161 -1.4691678195901636 -2.245351079807635 +10 -0.0024375187569690418 -0.000550577454043892 0.000971907386756427 0.4399243786321997 1.6207637079017971 1.0900899238856114 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 26.93628110931426 26.93628110931426 26.93628110931426 0.9824438652148015 -0.023183015026523597 -0.18238525095550406 0.031657854475291056 +2 26.93628110931426 26.93628110931426 26.93628110931426 0.9303156820429525 0.02962373336578937 -0.07607439157272995 0.3575581814380256 +3 26.93628110931426 26.93628110931426 26.93628110931426 0.7912072782182723 -0.043679545103099016 -0.05996218100443608 0.6070318583758278 +4 26.93628110931426 26.93628110931426 26.93628110931426 0.6531869542452552 -0.03659000162837596 0.004181596561545229 0.7563005281201641 +5 26.93628110931426 26.93628110931426 26.93628110931426 0.3249781771672557 0.06207197535108856 0.03689277251937633 0.9429608568635791 +6 26.93628110931426 26.93628110931426 26.93628110931426 0.08029535222204207 0.8726095530830543 -0.46831094470633033 -0.11309325067392484 +7 26.93628110931426 26.93628110931426 26.93628110931426 -0.1303991484205687 0.7764383491760718 -0.6081660772848121 0.10135864274905797 +8 26.93628110931426 26.93628110931426 26.93628110931426 -0.14971034142173664 0.5769499085020084 -0.7973230447846137 0.09482393688465168 +9 26.93628110931426 26.93628110931426 26.93628110931426 0.21130729744233523 -0.37917864508185584 0.8946270178621702 -0.10590221939385809 +10 26.93628110931426 26.93628110931426 26.93628110931426 0.34278400171414436 0.15185237372800306 0.9252984668160771 0.05712032974191834 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/in.duplex3 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/in.duplex3 new file mode 100644 index 0000000000..d60a76e9d9 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/in.duplex3 @@ -0,0 +1,73 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 3 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex3 + +set atom * mass 100.0278 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 new file mode 100644 index 0000000000..d78834f085 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 7.03429942525144 | erot = 12.9873344362494 | epot = -68.5183064451292 | etot = -48.4966725836283 +Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 262.20685 -73.084271 4.565965 -61.484007 -0.0051810598 39304000 +1000 ekin = 6.47818551117441 | erot = 13.3026700489858 | epot = -68.2775281400722 | etot = -48.496672579912 +2000 ekin = 6.03525112997236 | erot = 13.6564943363021 | epot = -68.1884180433538 | etot = -48.4966725770794 +3000 ekin = 5.75105017872919 | erot = 14.0429985067123 | epot = -68.2907212623787 | etot = -48.4966725769372 +4000 ekin = 5.63745048823595 | erot = 14.4525304497378 | epot = -68.5866535170602 | etot = -48.4966725790865 +5000 ekin = 5.67539108471591 | erot = 14.8714892268938 | epot = -69.0435528945028 | etot = -48.4966725828931 +6000 ekin = 5.82255924081694 | erot = 15.2845343223522 | epot = -69.6037661502115 | etot = -48.4966725870424 +7000 ekin = 6.0294913144517 | erot = 15.6780321266846 | epot = -70.2041960313097 | etot = -48.4966725901734 +8000 ekin = 6.25690013504882 | erot = 16.0432406183866 | epot = -70.7968133448984 | etot = -48.496672591463 +9000 ekin = 6.48760823849338 | erot = 16.3777166841148 | epot = -71.3619975139183 | etot = -48.4966725913101 +10000 ekin = 6.722546110018 | erot = 16.6826306715322 | epot = -71.9018493718517 | etot = -48.4966725903016 +11000 ekin = 6.97475226170428 | erot = 16.9603738277431 | epot = -72.431798678795 | etot = -48.4966725893476 +12000 ekin = 7.2596071399058 | erot = 17.2117069445191 | epot = -72.9679866735642 | etot = -48.4966725891392 +13000 ekin = 7.58616001551487 | erot = 17.4338437184062 | epot = -73.5166763239129 | etot = -48.4966725899918 +14000 ekin = 7.95221337497285 | erot = 17.6199690400549 | epot = -74.0688550069353 | etot = -48.4966725919075 +15000 ekin = 8.34290179280008 | erot = 17.7599308757288 | epot = -74.5995052633033 | etot = -48.4966725947744 +16000 ekin = 8.73088347798008 | erot = 17.8412839163863 | epot = -75.0688399931314 | etot = -48.496672598765 +17000 ekin = 9.06872001929353 | erot = 17.8482053032194 | epot = -75.4135979249308 | etot = -48.4966726024179 +18000 ekin = 9.30863890671763 | erot = 17.7686584779302 | epot = -75.5739699900197 | etot = -48.4966726053719 +19000 ekin = 9.41124785647434 | erot = 17.5960512017221 | epot = -75.5039716652992 | etot = -48.4966726071028 +20000 ekin = 9.34910582886757 | erot = 17.3292516593873 | epot = -75.1750300954672 | etot = -48.4966726072124 +21000 ekin = 9.1126689689092 | erot = 16.9731252869532 | epot = -74.5824668613651 | etot = -48.4966726055027 +22000 ekin = 8.71397032422754 | erot = 16.5385032889634 | epot = -73.7491462151204 | etot = -48.4966726019295 +23000 ekin = 8.18690962778233 | erot = 16.0421750929966 | epot = -72.7257573178974 | etot = -48.4966725971185 +24000 ekin = 7.58361736117495 | erot = 15.5032978232031 | epot = -71.5835877759397 | etot = -48.4966725915617 +25000 ekin = 6.96740991674868 | erot = 14.9419969554433 | epot = -70.4060794581741 | etot = -48.4966725859822 +26000 ekin = 6.40397973480484 | erot = 14.3775943404745 | epot = -69.2782466563097 | etot = -48.4966725810304 +27000 ekin = 5.95300264518411 | erot = 13.826953398888 | epot = -68.2766286212089 | etot = -48.4966725771368 +28000 ekin = 5.66210674319994 | erot = 13.3035488276538 | epot = -67.4623281453084 | etot = -48.4966725744547 +29000 ekin = 5.56416292853208 | erot = 12.8173046943285 | epot = -66.8781401957627 | etot = -48.4966725729021 +30000 ekin = 5.67757091398612 | erot = 12.375025427117 | epot = -66.5492689133843 | etot = -48.4966725722812 +31000 ekin = 6.00823180422793 | erot = 11.98136344288 | epot = -66.4862678195145 | etot = -48.4966725724066 +32000 ekin = 6.551664689978 | erot = 11.6395080908376 | epot = -66.6878453540144 | etot = -48.4966725731988 +33000 ekin = 7.29417473532408 | erot = 11.3509752571399 | epot = -67.1418225671842 | etot = -48.4966725747202 +34000 ekin = 8.21244588218592 | erot = 11.116114313427 | epot = -67.8252327728428 | etot = -48.4966725772299 +35000 ekin = 9.27066798181924 | erot = 10.9338272642602 | epot = -68.7011678273399 | etot = -48.4966725812605 +36000 ekin = 10.4137127998433 | erot = 10.8011032352063 | epot = -69.711488622778 | etot = -48.4966725877284 +37000 ekin = 11.5574113355608 | erot = 10.711877433406 | epot = -70.7659613658541 | etot = -48.4966725968872 +38000 ekin = 12.5862131120548 | erot = 10.6570487006396 | epot = -71.7399344196431 | etot = -48.4966726069487 +39000 ekin = 13.3756277697444 | erot = 10.6266661696597 | epot = -72.4989665531961 | etot = -48.496672613792 +40000 ekin = 13.8400144974722 | erot = 10.6149441040862 | epot = -72.9516312154842 | etot = -48.4966726139258 +41000 ekin = 13.9716515751521 | erot = 10.625130322802 | epot = -73.0934545058132 | etot = -48.4966726078591 +42000 ekin = 13.8349966624037 | erot = 10.6693591526026 | epot = -73.0010284144752 | etot = -48.4966725994689 +43000 ekin = 13.486317974579 | erot = 10.7627501491634 | epot = -72.745740917227 | etot = -48.4966727934846 +44000 ekin = 12.8657064139243 | erot = 11.0065042177551 | epot = -72.368883325112 | etot = -48.4966726934325 +45000 ekin = 12.451348070837 | erot = 11.2623687140011 | epot = -72.2103894466182 | etot = -48.4966726617801 +46000 ekin = 11.8973058918006 | erot = 11.5369637549568 | epot = -71.9309423094146 | etot = -48.4966726626572 +47000 ekin = 11.3048691716601 | erot = 11.853410520277 | epot = -71.6549523562342 | etot = -48.4966726642971 +48000 ekin = 10.6681247163118 | erot = 12.1927455857899 | epot = -71.3575429678098 | etot = -48.4966726657081 +49000 ekin = 9.98781452095524 | erot = 12.5337626830794 | epot = -71.0182498702023 | etot = -48.4966726661677 +50000 ekin = 9.27805060546793 | erot = 12.8568502175187 | epot = -70.6315734882952 | etot = -48.4966726653086 +51000 ekin = 8.56816305051923 | erot = 13.1473275670362 | epot = -70.2121632807453 | etot = -48.4966726631899 +52000 ekin = 7.89968625326358 | erot = 13.3972664509232 | epot = -69.7936253644654 | etot = -48.4966726602786 +53000 ekin = 7.31936805861643 | erot = 13.605288301124 | epot = -69.4213290170353 | etot = -48.4966726572949 +54000 ekin = 6.8702643504343 | erot = 13.7746656104191 | epot = -69.1416026158059 | etot = -48.4966726549525 +55000 ekin = 6.58358833130182 | erot = 13.9106626376477 | epot = -68.990923622707 | etot = -48.4966726537575 +56000 ekin = 6.47340776924329 | erot = 14.0180895137411 | epot = -68.9881699369073 | etot = -48.4966726539229 +57000 ekin = 6.5349018939818 | erot = 14.0996443244833 | epot = -69.131218873869 | etot = -48.4966726554039 +58000 ekin = 6.74582948881764 | erot = 14.1551416501596 | epot = -69.397643796883 | etot = -48.4966726579057 +59000 ekin = 7.07026744299398 | erot = 14.1814435236753 | epot = -69.7483836278281 | etot = -48.4966726611589 +60000 ekin = 7.46321119956018 | erot = 14.1729605115927 | epot = -70.1328443758887 | etot = -48.4966726647358 +61000 ekin = 7.8761562094755 | erot = 14.1225980724394 | epot = -70.4954269501747 | etot = -48.4966726682598 +62000 ekin = 8.26246819545866 | erot = 14.0231891838097 | epot = -70.7823300503885 | etot = -48.4966726711202 +63000 ekin = 8.58419585421847 | erot = 13.8690469944667 | epot = -70.9499155215194 | etot = -48.4966726728343 +64000 ekin = 8.81822702695853 | erot = 13.6575496044134 | epot = -70.972449304494 | etot = -48.4966726731221 +65000 ekin = 8.95905321199945 | erot = 13.3902699399848 | epot = -70.8459958240493 | etot = -48.496672672065 +66000 ekin = 9.01708021240078 | erot = 13.0731504494322 | epot = -70.5869033319396 | etot = -48.4966726701066 +67000 ekin = 9.01264024181375 | erot = 12.7157756705984 | epot = -70.2250885803053 | etot = -48.4966726678931 +68000 ekin = 8.96786592552511 | erot = 12.3300108275766 | epot = -69.7945494191634 | etot = -48.4966726660616 +69000 ekin = 8.89809230228762 | erot = 11.9282539830629 | epot = -69.3230189502566 | etot = -48.4966726649061 +70000 ekin = 8.80855518919698 | erot = 11.5224663142642 | epot = -68.8276941678877 | etot = -48.4966726644265 +71000 ekin = 8.69498380037367 | erot = 11.1237231983038 | epot = -68.3153796630099 | etot = -48.4966726643324 +72000 ekin = 8.54784464636703 | erot = 10.7423794346698 | epot = -67.7868967452232 | etot = -48.4966726641863 +73000 ekin = 8.35855300081051 | erot = 10.388582011598 | epot = -67.2438076759785 | etot = -48.4966726635701 +74000 ekin = 8.12576446604041 | erot = 10.0727225309051 | epot = -66.6951596591063 | etot = -48.4966726621608 +75000 ekin = 7.85890437579233 | erot = 9.80548509842777 | epot = -66.1610621343402 | etot = -48.4966726601201 +76000 ekin = 7.57852165402683 | erot = 9.5972708153679 | epot = -65.6724651268119 | etot = -48.4966726574171 +77000 ekin = 7.31582042129772 | erot = 9.45739858079197 | epot = -65.2698916571118 | etot = -48.4966726550221 +78000 ekin = 7.10323229834043 | erot = 9.39173074336844 | epot = -64.9916356947882 | etot = -48.4966726530793 +79000 ekin = 6.96937218054504 | erot = 9.40218099613596 | epot = -64.8682258285428 | etot = -48.4966726518618 +80000 ekin = 6.93674566763505 | erot = 9.48623430706704 | epot = -64.9196526261995 | etot = -48.4966726514974 +81000 ekin = 7.01925680666815 | erot = 9.63726327568291 | epot = -65.1531927343358 | etot = -48.4966726519847 +82000 ekin = 7.22081712459834 | erot = 9.84564997752222 | epot = -65.5631397554121 | etot = -48.4966726532915 +83000 ekin = 7.5341776538645 | erot = 10.1003599019659 | epot = -66.1312102111975 | etot = -48.496672655367 +84000 ekin = 7.94029058934595 | erot = 10.3905229584642 | epot = -66.8274862058439 | etot = -48.4966726580337 +85000 ekin = 8.4098850752269 | erot = 10.7066512628595 | epot = -67.6132089989669 | etot = -48.4966726608805 +86000 ekin = 8.90877838665036 | erot = 11.0413122902596 | epot = -68.4467633402411 | etot = -48.4966726633312 +87000 ekin = 9.40446727185101 | erot = 11.3892123423167 | epot = -69.2903522795809 | etot = -48.4966726654132 +88000 ekin = 9.86641386533863 | erot = 11.7464698262623 | epot = -70.1095563579289 | etot = -48.4966726663279 +89000 ekin = 10.2794449749748 | erot = 12.1093351833934 | epot = -70.8854528250669 | etot = -48.4966726666988 +90000 ekin = 10.6448818632992 | erot = 12.4712192860779 | epot = -71.6127738155188 | etot = -48.4966726661417 +91000 ekin = 10.9592378236983 | erot = 12.8213713070342 | epot = -72.2772817984388 | etot = -48.4966726677064 +92000 ekin = 11.1805024607915 | erot = 13.1782323505896 | epot = -72.8554074847656 | etot = -48.4966726733845 +93000 ekin = 11.3486717558838 | erot = 13.4886662723594 | epot = -73.3340106985081 | etot = -48.4966726702649 +94000 ekin = 11.4194570018415 | erot = 13.7677249757349 | epot = -73.6838546479552 | etot = -48.4966726703788 +95000 ekin = 11.3899765892382 | erot = 14.0119097397866 | epot = -73.8985589999747 | etot = -48.49667267095 +96000 ekin = 11.2605951113208 | erot = 14.2148286413586 | epot = -73.9720964225416 | etot = -48.4966726698623 +97000 ekin = 11.0445904714271 | erot = 14.3764700204598 | epot = -73.9177331597956 | etot = -48.4966726679087 +98000 ekin = 10.7660933774808 | erot = 14.4993108341525 | epot = -73.7620768770611 | etot = -48.4966726654278 +99000 ekin = 10.4555155361515 | erot = 14.5876138558185 | epot = -73.5398020548142 | etot = -48.4966726628441 +100000 ekin = 10.0974774598918 | erot = 14.6249949423901 | epot = -73.2191455720024 | etot = -48.4966731697205 +101000 ekin = 10.0415631096213 | erot = 14.0961872066523 | epot = -72.6344231724585 | etot = -48.4966728561849 +102000 ekin = 10.2892855713186 | erot = 14.0121875104988 | epot = -72.7981457142986 | etot = -48.4966726324812 +103000 ekin = 10.030926337015 | erot = 14.0335683972799 | epot = -72.561167366022 | etot = -48.4966726317272 +104000 ekin = 9.79194699005139 | erot = 14.0507619049252 | epot = -72.3393815271562 | etot = -48.4966726321796 +105000 ekin = 9.56928640949095 | erot = 14.0644676494028 | epot = -72.130426691714 | etot = -48.4966726328202 +106000 ekin = 9.35843270941669 | erot = 14.0738948863193 | epot = -71.9290002289426 | etot = -48.4966726332066 +107000 ekin = 9.15960205394236 | erot = 14.0781570096045 | epot = -71.7344316966944 | etot = -48.4966726331476 +108000 ekin = 8.98058598862026 | erot = 14.075757349537 | epot = -71.5530159707953 | etot = -48.496672632638 +109000 ekin = 8.83500010163816 | erot = 14.0641942059681 | epot = -71.3958669399391 | etot = -48.4966726323328 +110000 ekin = 8.73407156167097 | erot = 14.0396159238031 | epot = -71.2703601184356 | etot = -48.4966726329615 +111000 ekin = 8.6754498316719 | erot = 13.9967358275324 | epot = -71.1688582943783 | etot = -48.496672635174 +112000 ekin = 8.6350044076196 | erot = 13.9293053313389 | epot = -71.0609823775568 | etot = -48.4966726385983 +113000 ekin = 8.57042592578248 | erot = 13.8317248404405 | epot = -70.8988234080958 | etot = -48.4966726418728 +114000 ekin = 8.43989096913481 | erot = 13.7008372464516 | epot = -70.6374008585732 | etot = -48.4966726429868 +115000 ekin = 8.22527688481048 | erot = 13.537458994135 | epot = -70.2594085170045 | etot = -48.4966726380591 +116000 ekin = 7.96055882645525 | erot = 13.3455331436993 | epot = -69.8027646054354 | etot = -48.4966726352808 +117000 ekin = 7.68480617458248 | erot = 13.1328848481101 | epot = -69.314363654913 | etot = -48.4966726322204 +118000 ekin = 7.42978537709923 | erot = 12.9094282247776 | epot = -68.8358862320079 | etot = -48.496672630131 +119000 ekin = 7.21373639393119 | erot = 12.6851208042351 | epot = -68.3955298273807 | etot = -48.4966726292144 +120000 ekin = 7.03803293636593 | erot = 12.469779726339 | epot = -68.0044852916931 | etot = -48.4966726289882 +121000 ekin = 6.89367092643985 | erot = 12.2728949512537 | epot = -67.6632385066874 | etot = -48.4966726289939 +122000 ekin = 6.76879687257078 | erot = 12.1027214693521 | epot = -67.3681909710504 | etot = -48.4966726291276 +123000 ekin = 6.65210407178445 | erot = 11.9648592015088 | epot = -67.1136359029293 | etot = -48.4966726296361 +124000 ekin = 6.53115267708981 | erot = 11.861686116444 | epot = -66.88951142379 | etot = -48.4966726302562 +125000 ekin = 6.39605544212651 | erot = 11.7907254418528 | epot = -66.6834535155169 | etot = -48.4966726315376 +126000 ekin = 6.23766494395307 | erot = 11.7440508510346 | epot = -66.4783884275694 | etot = -48.4966726325818 +127000 ekin = 6.04911470795291 | erot = 11.7111635255669 | epot = -66.2569508666253 | etot = -48.4966726331055 +128000 ekin = 5.83208869215223 | erot = 11.682213880144 | epot = -66.0109752050976 | etot = -48.4966726328014 +129000 ekin = 5.59955533756738 | erot = 11.6485505375866 | epot = -65.7447785065467 | etot = -48.4966726313926 +130000 ekin = 5.37616547346366 | erot = 11.6055192857373 | epot = -65.4783573884606 | etot = -48.4966726292596 +131000 ekin = 5.1962134726015 | erot = 11.5523382042838 | epot = -65.2452243036186 | etot = -48.4966726267333 +132000 ekin = 5.09512855427511 | erot = 11.4915853273363 | epot = -65.0833865066907 | etot = -48.4966726250793 +133000 ekin = 5.09593793196019 | erot = 11.4254654000418 | epot = -65.0180759559348 | etot = -48.4966726239328 +134000 ekin = 5.21315400668809 | erot = 11.3572216289376 | epot = -65.0670482589947 | etot = -48.4966726233689 +135000 ekin = 5.45274887458156 | erot = 11.2905481951996 | epot = -65.239969693084 | etot = -48.4966726233029 +136000 ekin = 5.81359277201749 | erot = 11.229115941649 | epot = -65.5393813373501 | etot = -48.4966726236836 +137000 ekin = 6.28595091475952 | erot = 11.1752215008219 | epot = -65.9578450445961 | etot = -48.4966726290146 +138000 ekin = 6.83489595318488 | erot = 11.1238804126678 | epot = -66.4554489962829 | etot = -48.4966726304302 +139000 ekin = 7.43298982213682 | erot = 11.0759557714597 | epot = -67.0056182256026 | etot = -48.4966726320061 +140000 ekin = 8.05423567523142 | erot = 11.033891553925 | epot = -67.584799863096 | etot = -48.4966726339395 +141000 ekin = 8.66814450976506 | erot = 10.9995435661283 | epot = -68.1643607123595 | etot = -48.4966726364661 +142000 ekin = 9.23299211625349 | erot = 10.9739956101689 | epot = -68.7036603674071 | etot = -48.4966726409846 +143000 ekin = 9.69542810759742 | erot = 10.9568256540431 | epot = -69.1489264066345 | etot = -48.4966726449939 +144000 ekin = 10.0035712730501 | erot = 10.9455251640266 | epot = -69.4457690858237 | etot = -48.4966726487469 +145000 ekin = 10.114017316757 | erot = 10.9367967497652 | epot = -69.5474867174202 | etot = -48.4966726508979 +146000 ekin = 10.0102551934734 | erot = 10.9282120719412 | epot = -69.435139915191 | etot = -48.4966726497764 +147000 ekin = 9.72372844852308 | erot = 10.9204908015183 | epot = -69.1408918943015 | etot = -48.4966726442601 +148000 ekin = 9.3455309212133 | erot = 10.9194622742229 | epot = -68.7616658304618 | etot = -48.4966726350256 +149000 ekin = 9.0130830772134 | erot = 10.9361646162998 | epot = -68.4459203187336 | etot = -48.4966726252203 +150000 ekin = 8.86556491619637 | erot = 10.9838242849002 | epot = -68.3460618203824 | etot = -48.4966726192858 +151000 ekin = 8.98562593113009 | erot = 11.0721207188521 | epot = -68.5544192701787 | etot = -48.4966726201965 +152000 ekin = 9.36317382414577 | erot = 11.2013283048028 | epot = -69.061174756333 | etot = -48.4966726273844 +153000 ekin = 9.90592399926646 | erot = 11.3597169983867 | epot = -69.7623136349275 | etot = -48.4966726372743 +154000 ekin = 10.4876718007886 | erot = 11.5259908274841 | epot = -70.5103352740092 | etot = -48.4966726457364 +155000 ekin = 11.0014546611195 | erot = 11.6755859722277 | epot = -71.1737132837611 | etot = -48.4966726504139 +156000 ekin = 11.3882148349974 | erot = 11.7874454844493 | epot = -71.6723329709537 | etot = -48.4966726515071 +157000 ekin = 11.632971912162 | erot = 11.8481298115866 | epot = -71.9777743743943 | etot = -48.4966726506457 +158000 ekin = 11.7436997816217 | erot = 11.8526024825738 | epot = -72.0929749132284 | etot = -48.496672649033 +159000 ekin = 11.7357219121848 | erot = 11.8034015633386 | epot = -72.035796122215 | etot = -48.4966726466915 +160000 ekin = 11.6305552644559 | erot = 11.7096700273716 | epot = -71.8368979351557 | etot = -48.4966726433281 +161000 ekin = 11.4596686193178 | erot = 11.5857134121766 | epot = -71.5420546707721 | etot = -48.4966726392777 +162000 ekin = 11.2620233891978 | erot = 11.4483738449268 | epot = -71.2070698695269 | etot = -48.4966726354023 +163000 ekin = 11.0755659765699 | erot = 11.3138001976396 | epot = -70.8860388066505 | etot = -48.496672632441 +164000 ekin = 10.9292960811501 | erot = 11.1949564931542 | epot = -70.620925204979 | etot = -48.4966726306746 +165000 ekin = 10.8401906864915 | erot = 11.1006151382438 | epot = -70.4374784546624 | etot = -48.496672629927 +166000 ekin = 10.8146651781023 | erot = 11.0356758462704 | epot = -70.3470136542483 | etot = -48.4966726298757 +167000 ekin = 10.8520567567896 | erot = 11.0022539306514 | epot = -70.3509833175949 | etot = -48.4966726301539 +168000 ekin = 10.9484894336301 | erot = 11.0010183041606 | epot = -70.4461803682589 | etot = -48.4966726304681 +169000 ekin = 11.0998937027407 | erot = 11.0324366339784 | epot = -70.6290029673685 | etot = -48.4966726306495 +170000 ekin = 11.3034839733024 | erot = 11.0977053912593 | epot = -70.8978619952543 | etot = -48.4966726306926 +171000 ekin = 11.5572307267891 | erot = 11.199221278162 | epot = -71.2531246357259 | etot = -48.4966726307748 +172000 ekin = 11.8571464638407 | erot = 11.340530780689 | epot = -71.6943498757674 | etot = -48.4966726312378 +173000 ekin = 12.1927097200966 | erot = 11.5257889190944 | epot = -72.2151712717164 | etot = -48.4966726325253 +174000 ekin = 12.5417902291425 | erot = 11.7588401693295 | epot = -72.7973030335587 | etot = -48.4966726350868 +175000 ekin = 12.8647095032767 | erot = 12.0421936377313 | epot = -73.4035757801763 | etot = -48.4966726391684 +176000 ekin = 13.1024197132893 | erot = 12.3759769580603 | epot = -73.9750693159943 | etot = -48.4966726446447 +177000 ekin = 13.1907180968525 | erot = 12.7566551418159 | epot = -74.4440458869511 | etot = -48.4966726482828 +178000 ekin = 13.0526492219561 | erot = 13.1773711164493 | epot = -74.7266929933906 | etot = -48.4966726549851 +179000 ekin = 12.2089794588716 | erot = 13.583016419723 | epot = -74.2886682061547 | etot = -48.4966723275601 +180000 ekin = 11.9004068675208 | erot = 14.0870661177303 | epot = -74.4841455891948 | etot = -48.4966726039436 +181000 ekin = 10.8654768903664 | erot = 14.5861339869463 | epot = -73.9482834733408 | etot = -48.4966725960281 +182000 ekin = 9.66028270694921 | erot = 15.1104289206582 | epot = -73.2673842110038 | etot = -48.4966725833964 +183000 ekin = 8.48066280387482 | erot = 15.6673690821394 | epot = -72.6447044561298 | etot = -48.4966725701156 +184000 ekin = 7.52630413851928 | erot = 16.2665624203505 | epot = -72.2895391199352 | etot = -48.4966725610654 +185000 ekin = 6.93646433276227 | erot = 16.9124293952408 | epot = -72.3455662872068 | etot = -48.4966725592037 +186000 ekin = 6.75402182356317 | erot = 17.5959531882614 | epot = -72.8466475761013 | etot = -48.4966725642767 +187000 ekin = 6.93176584306308 | erot = 18.290107645954 | epot = -73.7185460628717 | etot = -48.4966725738546 +188000 ekin = 7.36496175936991 | erot = 18.9517169220484 | epot = -74.8133512665755 | etot = -48.4966725851571 +189000 ekin = 7.92587452892086 | erot = 19.5289159490214 | epot = -75.9514630739345 | etot = -48.4966725959922 +190000 ekin = 8.48887345555886 | erot = 19.971100820825 | epot = -76.9566468811641 | etot = -48.4966726047802 +191000 ekin = 8.94279744307508 | erot = 20.2387056809859 | epot = -77.678175735695 | etot = -48.496672611634 +192000 ekin = 9.20220030815946 | erot = 20.3101038067646 | epot = -78.0089767286117 | etot = -48.4966726136877 +193000 ekin = 9.22639739330183 | erot = 20.1841068563642 | epot = -77.907176861092 | etot = -48.496672611426 +194000 ekin = 9.02106352746175 | erot = 19.8798400124544 | epot = -77.3975761450867 | etot = -48.4966726051705 +195000 ekin = 8.63698690389635 | erot = 19.4322506720449 | epot = -76.565910172217 | etot = -48.4966725962758 +196000 ekin = 8.15745599944534 | erot = 18.8847381250325 | epot = -75.5388667111714 | etot = -48.4966725866936 +197000 ekin = 7.67775841891672 | erot = 18.2815207246745 | epot = -74.4559517216667 | etot = -48.4966725780755 +198000 ekin = 7.28589102711731 | erot = 17.6623826120266 | epot = -73.4449462104542 | etot = -48.4966725713103 +199000 ekin = 7.05017610428669 | erot = 17.060606391977 | epot = -72.607455062976 | etot = -48.4966725667124 +200000 ekin = 7.01285264528989 | erot = 16.50301808819 | epot = -72.0125432979108 | etot = -48.4966725644308 +201000 ekin = 7.1862830294852 | erot = 16.010606626529 | epot = -71.6935622206077 | etot = -48.4966725645936 +202000 ekin = 7.55028085659987 | erot = 15.5985035867515 | epot = -71.6454570106413 | etot = -48.4966725672899 +203000 ekin = 8.05261783918064 | erot = 15.2753610695163 | epot = -71.8246514808017 | etot = -48.4966725721048 +204000 ekin = 8.61587119719646 | erot = 15.04304819392 | epot = -72.1555919692024 | etot = -48.4966725780859 +205000 ekin = 9.15150139881729 | erot = 14.8972623538558 | epot = -72.545436336524 | etot = -48.4966725838508 +206000 ekin = 9.57853091802914 | erot = 14.8296218061968 | epot = -72.9048253122554 | etot = -48.4966725880294 +207000 ekin = 9.84110469117199 | erot = 14.8306579376119 | epot = -73.1684352185354 | etot = -48.4966725897515 +208000 ekin = 9.9191538007016 | erot = 14.8924578832503 | epot = -73.3082842728933 | etot = -48.4966725889413 +209000 ekin = 9.82907930165368 | erot = 15.0096951815675 | epot = -73.3354470695323 | etot = -48.4966725863112 +210000 ekin = 9.61485280029705 | erot = 15.178517413709 | epot = -73.2900427971239 | etot = -48.4966725831179 +211000 ekin = 9.33255453637479 | erot = 15.3937274488313 | epot = -73.222954565974 | etot = -48.4966725807679 +212000 ekin = 9.03298062727102 | erot = 15.645385712317 | epot = -73.1750389199413 | etot = -48.4966725803533 +213000 ekin = 8.74801774645632 | erot = 15.916232815536 | epot = -73.1609231441958 | etot = -48.4966725822035 +214000 ekin = 8.48645509186825 | erot = 16.1810372606232 | epot = -73.1641649379145 | etot = -48.4966725854231 +215000 ekin = 8.24361394372392 | erot = 16.4085443498303 | epot = -73.1488308822363 | etot = -48.4966725886821 +216000 ekin = 8.0164414064009 | erot = 16.5671904860397 | epot = -73.0803044821115 | etot = -48.4966725896709 +217000 ekin = 7.82443857147143 | erot = 16.6321169295473 | epot = -72.9532280885849 | etot = -48.4966725875662 +218000 ekin = 7.71607328584953 | erot = 16.5899557796703 | epot = -72.8027016494475 | etot = -48.4966725839277 +219000 ekin = 7.75310717264638 | erot = 16.4350572743174 | epot = -72.6848370278596 | etot = -48.4966725808959 +220000 ekin = 7.98143888037595 | erot = 16.167510735033 | epot = -72.6456221958558 | etot = -48.4966725804469 +221000 ekin = 8.40773648375012 | erot = 15.7897008204118 | epot = -72.6941098869373 | etot = -48.4966725827754 +222000 ekin = 8.99748090378323 | erot = 15.3051579237983 | epot = -72.7993114139574 | etot = -48.4966725863759 +223000 ekin = 9.69291742679225 | erot = 14.7208372414108 | epot = -72.910427257502 | etot = -48.4966725892989 +224000 ekin = 10.4359945859726 | erot = 14.0505863380248 | epot = -72.9832535144505 | etot = -48.496672590453 +225000 ekin = 11.1813440324244 | erot = 13.3180094413839 | epot = -72.9960260640915 | etot = -48.4966725902832 +226000 ekin = 11.889917409358 | erot = 12.555574190437 | epot = -72.9421641905558 | etot = -48.4966725907608 +227000 ekin = 12.5083401208471 | erot = 11.7991557925131 | epot = -72.8041685069158 | etot = -48.4966725935555 +228000 ekin = 12.9540489023972 | erot = 11.0813711809765 | epot = -72.5320926818126 | etot = -48.4966725984389 +229000 ekin = 13.1250482768413 | erot = 10.4265507754551 | epot = -72.0482716553122 | etot = -48.4966726030158 +230000 ekin = 12.935477678669 | erot = 9.84937329189879 | epot = -71.2815235748152 | etot = -48.4966726042475 +231000 ekin = 12.3571979238594 | erot = 9.3566448711741 | epot = -70.2105153953899 | etot = -48.4966726003564 +232000 ekin = 11.441378635523 | erot = 8.95013763085561 | epot = -68.8881888585093 | etot = -48.4966725921307 +233000 ekin = 10.3068608367529 | erot = 8.62874527757124 | epot = -67.4322786963278 | etot = -48.4966725820037 +234000 ekin = 9.10484994366737 | erot = 8.38947611811844 | epot = -65.9909986342478 | etot = -48.496672572462 +235000 ekin = 7.97762335600241 | erot = 8.22796057435479 | epot = -64.7022564960573 | etot = -48.4966725657001 +236000 ekin = 7.03041833666843 | erot = 8.14060898683137 | epot = -63.66769988491 | etot = -48.4966725614102 +237000 ekin = 6.33232778593017 | erot = 8.12400287135145 | epot = -62.9530032163578 | etot = -48.4966725590762 +238000 ekin = 5.92140822284888 | erot = 8.17513077744563 | epot = -62.5932115585206 | etot = -48.4966725582261 +239000 ekin = 5.81123122340323 | erot = 8.29054157425425 | epot = -62.5984453565713 | etot = -48.4966725589138 +240000 ekin = 5.99217826068819 | erot = 8.46489799365566 | epot = -62.9537488157021 | etot = -48.4966725613583 +241000 ekin = 6.43109156575043 | erot = 8.68961368249179 | epot = -63.6173778141177 | etot = -48.4966725658754 +242000 ekin = 7.06756407118994 | erot = 8.9515361448277 | epot = -64.5157727888076 | etot = -48.4966725727899 +243000 ekin = 7.81639319360646 | erot = 9.23207829014518 | epot = -65.5451440641847 | etot = -48.496672580433 +244000 ekin = 8.58044212001563 | erot = 9.5094870156515 | epot = -66.5866017229557 | etot = -48.4966725872886 +245000 ekin = 9.26871916861178 | erot = 9.75990826682403 | epot = -67.5253000301717 | etot = -48.4966725947359 +246000 ekin = 9.78946573665902 | erot = 9.96525866120483 | epot = -68.251396997994 | etot = -48.4966726001302 +247000 ekin = 10.0743388396378 | erot = 10.1147521472207 | epot = -68.6857635892491 | etot = -48.4966726023906 +248000 ekin = 10.0941079494506 | erot = 10.2065328814933 | epot = -68.7973134319809 | etot = -48.496672601037 +249000 ekin = 9.86393967730228 | erot = 10.2475258665297 | epot = -68.608138141035 | etot = -48.496672597203 +250000 ekin = 9.43636984425759 | erot = 10.2506637078715 | epot = -68.1837061428391 | etot = -48.49667259071 +251000 ekin = 8.89229868578272 | erot = 10.2323346091275 | epot = -67.6213058787841 | etot = -48.4966725838739 +252000 ekin = 8.31943898663813 | erot = 10.2075884962971 | epot = -67.0237000610837 | etot = -48.4966725781484 +253000 ekin = 7.79276077495956 | erot = 10.1873587545199 | epot = -66.4767921038581 | etot = -48.4966725743786 +254000 ekin = 7.36152147187708 | erot = 10.1778229232022 | epot = -66.0360169681713 | etot = -48.496672573092 +255000 ekin = 7.04416809514289 | erot = 10.1812481941798 | epot = -65.7220888627795 | etot = -48.4966725734568 +256000 ekin = 6.8353001740143 | erot = 10.1962922388007 | epot = -65.5282649876993 | etot = -48.4966725748843 +257000 ekin = 6.71442148101725 | erot = 10.2200504443727 | epot = -65.4311445018633 | etot = -48.4966725764734 +258000 ekin = 6.65781764565476 | erot = 10.2492124175302 | epot = -65.4037026408489 | etot = -48.496672577664 +259000 ekin = 6.64642051203178 | erot = 10.2806008774778 | epot = -65.4236939679503 | etot = -48.4966725784407 +260000 ekin = 6.66675395817186 | erot = 10.3110375472865 | epot = -65.4744640845822 | etot = -48.4966725791239 +261000 ekin = 6.70841492604912 | erot = 10.3378721255422 | epot = -65.5429596307914 | etot = -48.4966725792001 +262000 ekin = 6.76275619466047 | erot = 10.3595239082574 | epot = -65.618952682714 | etot = -48.4966725797962 +263000 ekin = 6.82191301035398 | erot = 10.3716898912776 | epot = -65.6902754814592 | etot = -48.4966725798277 +264000 ekin = 6.88504914961089 | erot = 10.3708999773049 | epot = -65.7526217059438 | etot = -48.496672579028 +265000 ekin = 6.96089828668844 | erot = 10.3558192629953 | epot = -65.8133901272447 | etot = -48.496672577561 +266000 ekin = 7.06529185642724 | erot = 10.3276065183166 | epot = -65.8895709506602 | etot = -48.4966725759163 +267000 ekin = 7.21505088332344 | erot = 10.2893497391586 | epot = -66.0010731971154 | etot = -48.4966725746334 +268000 ekin = 7.42137725343366 | erot = 10.2450818723121 | epot = -66.1631316998404 | etot = -48.4966725740947 +269000 ekin = 7.6852432971255 | erot = 10.1988935008324 | epot = -66.3808093723997 | etot = -48.4966725744418 +270000 ekin = 7.99580948965905 | erot = 10.1544492652978 | epot = -66.6469313305391 | etot = -48.4966725755823 +271000 ekin = 8.33190485117851 | erot = 10.1151435011289 | epot = -66.9437209293489 | etot = -48.4966725770415 +272000 ekin = 8.66610587589786 | erot = 10.0856409418454 | epot = -67.2484193965687 | etot = -48.4966725788253 +273000 ekin = 8.97042145758361 | erot = 10.0690324252282 | epot = -67.5361264630363 | etot = -48.4966725802245 +274000 ekin = 9.2228768329096 | erot = 10.0690361391114 | epot = -67.7885855527785 | etot = -48.4966725807575 +275000 ekin = 9.41389302940073 | erot = 10.0906946031038 | epot = -68.0012602127282 | etot = -48.4966725802236 +276000 ekin = 9.54942761491813 | erot = 10.1400083113496 | epot = -68.1861085050624 | etot = -48.4966725787947 +277000 ekin = 9.6491359452143 | erot = 10.2229042121058 | epot = -68.3687127343567 | etot = -48.4966725770367 +278000 ekin = 9.73935192456233 | erot = 10.343570015445 | epot = -68.5795945157503 | etot = -48.496672575743 +279000 ekin = 9.84298152731736 | erot = 10.502614040488 | epot = -68.8422681434167 | etot = -48.4966725756113 +280000 ekin = 9.97046187704858 | erot = 10.6957212898423 | epot = -69.1628557437709 | etot = -48.4966725768801 +281000 ekin = 10.1137684706805 | erot = 10.9135096018603 | epot = -69.5239506554908 | etot = -48.49667258295 +282000 ekin = 10.2288689015713 | erot = 11.1422719920843 | epot = -69.8678134801848 | etot = -48.4966725865291 +283000 ekin = 10.2769463822287 | erot = 11.3646568092218 | epot = -70.1382757810685 | etot = -48.496672589618 +284000 ekin = 10.2298350175643 | erot = 11.5634949517897 | epot = -70.2900025609874 | etot = -48.4966725916333 +285000 ekin = 10.0723248849486 | erot = 11.7243250964812 | epot = -70.2933225738249 | etot = -48.4966725923951 +286000 ekin = 9.80394054073949 | erot = 11.8369977519994 | epot = -70.1376108847945 | etot = -48.4966725920556 +287000 ekin = 9.43655233184761 | erot = 11.8964493797707 | epot = -69.8296743025415 | etot = -48.4966725909232 +288000 ekin = 8.99013271756312 | erot = 11.9027405791562 | epot = -69.3895458860358 | etot = -48.4966725893165 +289000 ekin = 8.48857673812088 | erot = 11.8605226371614 | epot = -68.845771962788 | etot = -48.4966725875058 +290000 ekin = 7.9565131170632 | erot = 11.778072078097 | epot = -68.2312577808365 | etot = -48.4966725856763 +291000 ekin = 7.41785902589102 | erot = 11.6660397038366 | epot = -67.5805713135338 | etot = -48.4966725838062 +292000 ekin = 6.89736764547562 | erot = 11.5361414718234 | epot = -66.9301816988922 | etot = -48.4966725815931 +293000 ekin = 6.42572947191785 | erot = 11.400070184943 | epot = -66.3224722354505 | etot = -48.4966725785896 +294000 ekin = 6.04578762671093 | erot = 11.2687731411147 | epot = -65.8112333424662 | etot = -48.4966725746405 +295000 ekin = 5.81372000922306 | erot = 11.1519540391615 | epot = -65.4623466187836 | etot = -48.4966725703991 +296000 ekin = 5.78868895654533 | erot = 11.0574288852216 | epot = -65.3427904091805 | etot = -48.4966725674136 +297000 ekin = 6.01086247217827 | erot = 10.9900621222287 | epot = -65.4975971618208 | etot = -48.4966725674139 +298000 ekin = 6.47793511117819 | erot = 10.9505151838666 | epot = -65.9251228662535 | etot = -48.4966725712087 +299000 ekin = 7.13485226400034 | erot = 10.9343849129914 | epot = -66.5659097550918 | etot = -48.4966725781001 +300000 ekin = 7.88433986354594 | erot = 10.9323127585853 | epot = -67.3133252083742 | etot = -48.496672586243 +301000 ekin = 8.61282845352297 | erot = 10.9313732714636 | epot = -68.0408743185398 | etot = -48.4966725935533 +302000 ekin = 9.21908440274039 | erot = 10.9175582659858 | epot = -68.633315267177 | etot = -48.4966725984508 +303000 ekin = 9.63516616611897 | erot = 10.8787665670557 | epot = -69.0106053333789 | etot = -48.4966726002042 +304000 ekin = 9.83543476974171 | erot = 10.8074962358205 | epot = -69.1396036043407 | etot = -48.4966725987784 +305000 ekin = 9.83532020704072 | erot = 10.7023193346282 | epot = -69.0343121365665 | etot = -48.4966725948976 +306000 ekin = 9.68145093558513 | erot = 10.5677982812262 | epot = -68.7459218064566 | etot = -48.4966725896453 +307000 ekin = 9.43697927068104 | erot = 10.4129945423149 | epot = -68.3466463972406 | etot = -48.4966725842446 +308000 ekin = 9.16617244364725 | erot = 10.2491623578655 | epot = -67.9120073811779 | etot = -48.4966725796651 +309000 ekin = 8.92159986058929 | erot = 10.0874162913126 | epot = -67.5056887285674 | etot = -48.4966725766655 +310000 ekin = 8.73563094099929 | erot = 9.9371510361822 | epot = -67.169454552446 | etot = -48.4966725752645 +311000 ekin = 8.61913259828634 | erot = 9.80527711015154 | epot = -66.9210822838146 | etot = -48.4966725753767 +312000 ekin = 8.56355763426529 | erot = 9.69617071432065 | epot = -66.7564009251108 | etot = -48.4966725765249 +313000 ekin = 8.54744454664532 | erot = 9.61223302160909 | epot = -66.6563501463599 | etot = -48.4966725781055 +314000 ekin = 8.54471031353907 | erot = 9.55468856186606 | epot = -66.5960714549334 | etot = -48.4966725795283 +315000 ekin = 8.53582675036285 | erot = 9.52360081787041 | epot = -66.5561001482904 | etot = -48.4966725800572 +316000 ekin = 8.50947902793441 | erot = 9.51910773892181 | epot = -66.5252593469131 | etot = -48.4966725800569 +317000 ekin = 8.46528361595108 | erot = 9.54310287693593 | epot = -66.5050590717006 | etot = -48.4966725788136 +318000 ekin = 8.42148334748388 | erot = 9.59812356341528 | epot = -66.516279487461 | etot = -48.4966725765619 +319000 ekin = 8.41172051674332 | erot = 9.68666529074796 | epot = -66.5950583814326 | etot = -48.4966725739414 +320000 ekin = 8.47631024940413 | erot = 9.81010411287936 | epot = -66.7830869341493 | etot = -48.4966725718658 +321000 ekin = 8.64981485679785 | erot = 9.96750014912045 | epot = -67.1139875771456 | etot = -48.4966725712273 +322000 ekin = 8.94886501909668 | erot = 10.1545796242721 | epot = -67.6001172159167 | etot = -48.4966725725479 +323000 ekin = 9.36436094198863 | erot = 10.3629464345255 | epot = -68.2239799526584 | etot = -48.4966725761443 +324000 ekin = 9.85762299126876 | erot = 10.5807030497635 | epot = -68.9349986231461 | etot = -48.4966725821139 +325000 ekin = 10.3675336373896 | erot = 10.7915336066481 | epot = -69.6557398310563 | etot = -48.4966725870186 +326000 ekin = 10.8169039905069 | erot = 10.9780749030532 | epot = -70.2916514883353 | etot = -48.4966725947751 +327000 ekin = 11.1080827252351 | erot = 11.1278633890661 | epot = -70.7326187147602 | etot = -48.4966726004589 +328000 ekin = 11.1668072003252 | erot = 11.235581979109 | epot = -70.8990617815916 | etot = -48.4966726021574 +329000 ekin = 10.967403256679 | erot = 11.3047655940184 | epot = -70.768841449617 | etot = -48.4966725989195 +330000 ekin = 10.5471219088133 | erot = 11.3459152750385 | epot = -70.3897097754691 | etot = -48.4966725916173 +331000 ekin = 9.99817977290763 | erot = 11.3709343468917 | epot = -69.8657867027959 | etot = -48.4966725829966 +332000 ekin = 9.43640210782927 | erot = 11.3868472546632 | epot = -69.319921938518 | etot = -48.4966725760255 +333000 ekin = 8.9627531487633 | erot = 11.3930028323085 | epot = -68.8524285534325 | etot = -48.4966725723606 +334000 ekin = 8.63845657354969 | erot = 11.3827647269613 | epot = -68.5178938722226 | etot = -48.4966725717116 +335000 ekin = 8.47696736450443 | erot = 11.3460820193678 | epot = -68.3197219598737 | etot = -48.4966725760015 +336000 ekin = 8.45129453005634 | erot = 11.2716956099987 | epot = -68.2196627183468 | etot = -48.4966725782917 +337000 ekin = 8.52855094860833 | erot = 11.1567863476686 | epot = -68.1820098764218 | etot = -48.4966725801449 +338000 ekin = 8.67667036350951 | erot = 11.0029242666098 | epot = -68.1762672115551 | etot = -48.4966725814358 +339000 ekin = 8.86840718542881 | erot = 10.8141117179184 | epot = -68.1791914857273 | etot = -48.4966725823801 +340000 ekin = 9.08074049345715 | erot = 10.5949858590616 | epot = -68.1723989357497 | etot = -48.4966725832309 +341000 ekin = 9.29280025524277 | erot = 10.3497144840129 | epot = -68.1391873233524 | etot = -48.4966725840967 +342000 ekin = 9.48478364392253 | erot = 10.0817821314002 | epot = -68.0632383602021 | etot = -48.4966725848794 +343000 ekin = 9.63889599726108 | erot = 9.7944839703947 | epot = -67.930052552996 | etot = -48.4966725853402 +344000 ekin = 9.7417975009077 | erot = 9.49171920193303 | epot = -67.7301892880911 | etot = -48.4966725852504 +345000 ekin = 9.78689625544432 | erot = 9.17855510441859 | epot = -67.4621239444743 | etot = -48.4966725846114 +346000 ekin = 9.77487619979532 | erot = 8.86098115604089 | epot = -67.1325299394068 | etot = -48.4966725835706 +347000 ekin = 9.71190434740935 | erot = 8.54542801630241 | epot = -66.7540049461477 | etot = -48.4966725824359 +348000 ekin = 9.60626623887659 | erot = 8.23797752716905 | epot = -66.340916347539 | etot = -48.4966725814934 +349000 ekin = 9.46512205487934 | erot = 7.94382241630924 | epot = -65.9056170520946 | etot = -48.496672580906 +350000 ekin = 9.29263921345274 | erot = 7.66718775573895 | epot = -65.4564995498442 | etot = -48.4966725806525 +351000 ekin = 9.09030704038404 | erot = 7.41172558158068 | epot = -64.9987052024842 | etot = -48.4966725805195 +352000 ekin = 8.85964507189034 | erot = 7.18116708502939 | epot = -64.5374847370686 | etot = -48.4966725801489 +353000 ekin = 8.60706719309285 | erot = 6.97993996553063 | epot = -64.083679737657 | etot = -48.4966725790335 +354000 ekin = 8.35365998674884 | erot = 6.81451510372734 | epot = -63.664847665859 | etot = -48.4966725753828 +355000 ekin = 8.13817060763887 | erot = 6.69316622833436 | epot = -63.3280094087146 | etot = -48.4966725727414 +356000 ekin = 8.00303344814134 | erot = 6.62071403038222 | epot = -63.120420047619 | etot = -48.4966725690954 +357000 ekin = 8.00329594799677 | erot = 6.60119920913289 | epot = -63.101167722592 | etot = -48.4966725654624 +358000 ekin = 8.19390069539973 | erot = 6.6365500519995 | epot = -63.3271233108175 | etot = -48.4966725634183 +359000 ekin = 8.60851483666456 | erot = 6.72479591296309 | epot = -63.8299833140449 | etot = -48.4966725644172 +360000 ekin = 9.24022555642119 | erot = 6.85875874182178 | epot = -64.5956568672064 | etot = -48.4966725689635 +361000 ekin = 10.0343517665272 | erot = 7.02601171013287 | epot = -65.5570360531664 | etot = -48.4966725765063 +362000 ekin = 10.8949623485035 | erot = 7.21007448017166 | epot = -66.6017094133605 | etot = -48.4966725846853 +363000 ekin = 11.7154060071658 | erot = 7.39407842266489 | epot = -67.606157020532 | etot = -48.4966725907012 +364000 ekin = 12.40572233359 | erot = 7.56453665264199 | epot = -68.4669315836044 | etot = -48.4966725973724 +365000 ekin = 12.8900700952231 | erot = 7.71262358053191 | epot = -69.0993662750143 | etot = -48.4966725992593 +366000 ekin = 13.1382701917079 | erot = 7.83636021672802 | epot = -69.4713030061121 | etot = -48.4966725976761 +367000 ekin = 13.1662433494648 | erot = 7.94108342053015 | epot = -69.6039993641331 | etot = -48.4966725941382 +368000 ekin = 13.021625732222 | erot = 8.03746300620857 | epot = -69.5557613271402 | etot = -48.4966725887097 +369000 ekin = 12.7699639205452 | erot = 8.13884083906406 | epot = -69.405477343072 | etot = -48.4966725834627 +370000 ekin = 12.4763633941236 | erot = 8.25852807052614 | epot = -69.2315640445023 | etot = -48.4966725798526 +371000 ekin = 12.1883522141967 | erot = 8.40712894602482 | epot = -69.0921537380662 | etot = -48.4966725778446 +372000 ekin = 11.9337668267027 | erot = 8.59209712214833 | epot = -69.0225365257837 | etot = -48.4966725769327 +373000 ekin = 11.7268114357708 | erot = 8.81820188226925 | epot = -69.0416858944192 | etot = -48.4966725763792 +374000 ekin = 11.5751062922416 | erot = 9.08799140196931 | epot = -69.1597702703733 | etot = -48.4966725761623 +375000 ekin = 11.4816771194464 | erot = 9.40179119698654 | epot = -69.3801408929934 | etot = -48.4966725765605 +376000 ekin = 11.441524446261 | erot = 9.75725267435531 | epot = -69.6954496985913 | etot = -48.4966725779749 +377000 ekin = 11.4364317356708 | erot = 10.1487019288236 | epot = -70.0818062452136 | etot = -48.4966725807192 +378000 ekin = 11.4326847178226 | erot = 10.5666289070243 | epot = -70.4959862088629 | etot = -48.496672584016 +379000 ekin = 11.3879261245005 | erot = 10.9960382478638 | epot = -70.8806369609932 | etot = -48.4966725886289 +380000 ekin = 11.2500883026257 | erot = 11.4211944009614 | epot = -71.1679552963687 | etot = -48.4966725927816 +381000 ekin = 10.972692122943 | erot = 11.826929103362 | epot = -71.2962938220293 | etot = -48.4966725957243 +382000 ekin = 10.52816021539 | erot = 12.1993149200452 | epot = -71.2241477321915 | etot = -48.4966725967563 +383000 ekin = 9.91669157180962 | erot = 12.5275908716532 | epot = -70.9409550387057 | etot = -48.4966725952429 +384000 ekin = 9.1730149286383 | erot = 12.8043890136506 | epot = -70.47407653408 | etot = -48.4966725917911 +385000 ekin = 8.36601181966598 | erot = 13.0251847436255 | epot = -69.8878691486834 | etot = -48.4966725853919 +386000 ekin = 7.59336935509946 | erot = 13.1937587055527 | epot = -69.2838006385302 | etot = -48.496672577878 +387000 ekin = 6.96355937778721 | erot = 13.3174316291766 | epot = -68.7776635784506 | etot = -48.4966725714869 +388000 ekin = 6.56667711261966 | erot = 13.4028350179168 | epot = -68.4661846989115 | etot = -48.4966725683751 +389000 ekin = 6.4452691147135 | erot = 13.4523416306507 | epot = -68.3942833609254 | etot = -48.4966726155612 +390000 ekin = 6.40022004920912 | erot = 13.5413190040259 | epot = -68.4382116193753 | etot = -48.4966725661403 +391000 ekin = 6.74670657784131 | erot = 13.6308036790081 | epot = -68.8741828739401 | etot = -48.4966726170907 +392000 ekin = 7.2705391073813 | erot = 13.5318497226518 | epot = -69.2990614444314 | etot = -48.4966726143983 +393000 ekin = 7.84211066748368 | erot = 13.3471669898704 | epot = -69.685950275308 | etot = -48.4966726179539 +394000 ekin = 8.41137168862949 | erot = 13.0851416289779 | epot = -69.9931859369659 | etot = -48.4966726193585 +395000 ekin = 8.94777378647123 | erot = 12.7509585841161 | epot = -70.1954049894802 | etot = -48.4966726188928 +396000 ekin = 9.44412388892699 | erot = 12.3562529221245 | epot = -70.2970494281421 | etot = -48.4966726170906 +397000 ekin = 9.91050995592809 | erot = 11.9175382863765 | epot = -70.3247208568255 | etot = -48.4966726145209 +398000 ekin = 10.3672265667405 | erot = 11.4545225019134 | epot = -70.3184216802706 | etot = -48.4966726116167 +399000 ekin = 10.8377881060969 | erot = 10.9888166293374 | epot = -70.3232773445268 | etot = -48.4966726090925 +400000 ekin = 11.3412083655784 | erot = 10.5421455765191 | epot = -70.3800265494431 | etot = -48.4966726073456 +401000 ekin = 11.8856989725166 | erot = 10.1353050509382 | epot = -70.5176766301186 | etot = -48.4966726066638 +402000 ekin = 12.4648693384578 | erot = 9.78704273787232 | epot = -70.7485846834432 | etot = -48.4966726071131 +403000 ekin = 13.0574032172325 | erot = 9.5128760737579 | epot = -71.0669518996327 | etot = -48.4966726086423 +404000 ekin = 13.62915634253 | erot = 9.32384163730287 | epot = -71.4496705902163 | etot = -48.4966726103835 +405000 ekin = 14.1398204789976 | erot = 9.22499609598332 | epot = -71.8614891889854 | etot = -48.4966726140045 +406000 ekin = 14.5379075449307 | erot = 9.214739936244 | epot = -72.2493200997808 | etot = -48.4966726186061 +407000 ekin = 14.7678000074139 | erot = 9.28285845908595 | epot = -72.5473310902443 | etot = -48.4966726237445 +408000 ekin = 14.7748392328133 | erot = 9.41288741277312 | epot = -72.6843992736487 | etot = -48.4966726280623 +409000 ekin = 14.5211191200334 | erot = 9.58494933065888 | epot = -72.6027410803731 | etot = -48.4966726296808 +410000 ekin = 14.0080722078323 | erot = 9.780506516484 | epot = -72.2852513516104 | etot = -48.4966726272942 +411000 ekin = 13.2885633490821 | erot = 9.98745844074488 | epot = -71.7726944110176 | etot = -48.4966726211907 +412000 ekin = 12.4602105802628 | erot = 10.2020245096471 | epot = -71.1589077031306 | etot = -48.4966726132206 +413000 ekin = 11.6411968847745 | erot = 10.4265056500176 | epot = -70.5643751405642 | etot = -48.4966726057721 +414000 ekin = 10.9403488034793 | erot = 10.6647067440041 | epot = -70.1017281481897 | etot = -48.4966726007063 +415000 ekin = 10.4337835958954 | erot = 10.9176175688985 | epot = -69.8480737636843 | etot = -48.4966725988903 +416000 ekin = 10.1537726116244 | erot = 11.1808649833009 | epot = -69.8313101952265 | etot = -48.4966726003011 +417000 ekin = 10.0887098231028 | erot = 11.4440532452132 | epot = -70.0294356728343 | etot = -48.4966726045183 +418000 ekin = 10.1900748296408 | erot = 11.6914864860004 | epot = -70.3782339258458 | etot = -48.4966726102046 +419000 ekin = 10.3882021396926 | erot = 11.9042621356366 | epot = -70.7891368916753 | etot = -48.4966726163462 +420000 ekin = 10.6068294649483 | erot = 12.0629207258313 | epot = -71.1664228124895 | etot = -48.4966726217099 +421000 ekin = 10.7783620216856 | erot = 12.1507790873647 | epot = -71.4258137343316 | etot = -48.4966726252813 +422000 ekin = 10.8559244969741 | erot = 12.157227583968 | epot = -71.5098247075273 | etot = -48.4966726265852 +423000 ekin = 10.8187145658756 | erot = 12.0798940410381 | epot = -71.3952812326911 | etot = -48.4966726257774 +424000 ekin = 10.6702271597672 | erot = 11.9248162769271 | epot = -71.0917160600862 | etot = -48.4966726233918 +425000 ekin = 10.432682376079 | erot = 11.7046834731879 | epot = -70.634038469227 | etot = -48.49667261996 +426000 ekin = 10.1418512279923 | erot = 11.4360680199872 | epot = -70.0745918638435 | etot = -48.4966726158641 +427000 ekin = 9.84290131620358 | erot = 11.1364780215289 | epot = -69.4760519492654 | etot = -48.4966726115329 +428000 ekin = 9.58662756132271 | erot = 10.8219607622248 | epot = -68.9052609309321 | etot = -48.4966726073846 +429000 ekin = 9.42385367701729 | erot = 10.5054247282245 | epot = -68.425951009597 | etot = -48.4966726043552 +430000 ekin = 9.39326971066484 | erot = 10.1945970633525 | epot = -68.0845393772879 | etot = -48.4966726032706 +431000 ekin = 9.51026104609048 | erot = 9.89118956778029 | epot = -67.8981232184479 | etot = -48.4966726045772 +432000 ekin = 9.76020464993469 | erot = 9.59158522244582 | epot = -67.8484624803373 | etot = -48.4966726079568 +433000 ekin = 10.1011132166032 | erot = 9.28935747992221 | epot = -67.8871433087259 | etot = -48.4966726122005 +434000 ekin = 10.4772946453592 | erot = 8.97915707057065 | epot = -67.953124331572 | etot = -48.4966726156421 +435000 ekin = 10.8390965471279 | erot = 8.66047090163762 | epot = -67.9962400658339 | etot = -48.4966726170684 +436000 ekin = 11.1581846565891 | erot = 8.3392707492989 | epot = -67.9941280217496 | etot = -48.4966726158617 +437000 ekin = 11.4322684558167 | erot = 8.02673002727517 | epot = -67.9556710974744 | etot = -48.4966726143825 +438000 ekin = 11.667172080674 | erot = 7.73476573347702 | epot = -67.8986104279902 | etot = -48.4966726138391 +439000 ekin = 11.8579368223507 | erot = 7.47155579534428 | epot = -67.8261652326396 | etot = -48.4966726149446 +440000 ekin = 11.9818235336974 | erot = 7.23965689696261 | epot = -67.7181530477202 | etot = -48.4966726170602 +441000 ekin = 12.0063643091956 | erot = 7.03716778990077 | epot = -67.5402047178279 | etot = -48.4966726187316 +442000 ekin = 11.9008309355903 | erot = 6.85995053951222 | epot = -67.2574540950028 | etot = -48.4966726199003 +443000 ekin = 11.6372457710069 | erot = 6.70222774768632 | epot = -66.8361461367792 | etot = -48.496672618086 +444000 ekin = 11.2404935703067 | erot = 6.56274006493714 | epot = -66.2999062491787 | etot = -48.4966726139348 +445000 ekin = 10.7717210496791 | erot = 6.44292159848536 | epot = -65.7113152554569 | etot = -48.4966726072924 +446000 ekin = 10.3146345399971 | erot = 6.34495994126715 | epot = -65.1562670843461 | etot = -48.4966726030818 +447000 ekin = 9.93895886679998 | erot = 6.27103072197052 | epot = -64.7066621875731 | etot = -48.4966725988026 +448000 ekin = 9.70550645608578 | erot = 6.22337425450189 | epot = -64.4255533068205 | etot = -48.4966725962328 +449000 ekin = 9.65303357368844 | erot = 6.20344657438156 | epot = -64.3531527440187 | etot = -48.4966725959487 +450000 ekin = 9.78741215229977 | erot = 6.2110055622371 | epot = -64.4950903141346 | etot = -48.4966725995977 +451000 ekin = 10.0726697695314 | erot = 6.24121610507662 | epot = -64.8105584783937 | etot = -48.4966726037857 +452000 ekin = 10.4498627201613 | erot = 6.28789558017872 | epot = -65.2344309085489 | etot = -48.4966726082089 +453000 ekin = 10.8573529820916 | erot = 6.34427199361566 | epot = -65.6982975880137 | etot = -48.4966726123064 +454000 ekin = 11.2383729595004 | erot = 6.40217211179823 | epot = -66.1372176874595 | etot = -48.4966726161609 +455000 ekin = 11.5411597564324 | erot = 6.45158842061081 | epot = -66.4894207971864 | etot = -48.4966726201432 +456000 ekin = 11.7145965069649 | erot = 6.4809593201101 | epot = -66.6922284512886 | etot = -48.4966726242136 +457000 ekin = 11.7080889257685 | erot = 6.4790494806095 | epot = -66.6838110338662 | etot = -48.4966726274882 +458000 ekin = 11.4817974385095 | erot = 6.43838338687774 | epot = -66.4168534538014 | etot = -48.4966726284142 +459000 ekin = 11.0260461729846 | erot = 6.35890594746662 | epot = -65.8816247459421 | etot = -48.4966726254909 +460000 ekin = 10.3811213891568 | erot = 6.25005112058627 | epot = -65.1278451279094 | etot = -48.4966726181663 +461000 ekin = 9.645004007251 | erot = 6.13001722353708 | epot = -64.2716938384256 | etot = -48.4966726076375 +462000 ekin = 8.96155334211992 | erot = 6.02325653342169 | epot = -63.4814824659819 | etot = -48.4966725904403 +463000 ekin = 8.49356022965856 | erot = 5.96064229272574 | epot = -62.9508751084221 | etot = -48.4966725860378 +464000 ekin = 8.31098322700801 | erot = 5.95399558727495 | epot = -62.7616514011101 | etot = -48.4966725868272 +465000 ekin = 8.41527289817271 | erot = 6.00555163247446 | epot = -62.9174971228056 | etot = -48.4966725921584 +466000 ekin = 8.74071951180857 | erot = 6.10745202461889 | epot = -63.3448441360501 | etot = -48.4966725996226 +467000 ekin = 8.8864065486669 | erot = 6.32601497544667 | epot = -63.7090940528194 | etot = -48.4966725287058 +468000 ekin = 9.07505160348781 | erot = 6.75512448014557 | epot = -64.3268486409024 | etot = -48.496672557269 +469000 ekin = 9.43618930734023 | erot = 6.98018590412308 | epot = -64.9130477258384 | etot = -48.4966725143751 +470000 ekin = 9.53891928920126 | erot = 7.05614003958624 | epot = -65.091731842129 | etot = -48.4966725133415 +471000 ekin = 9.47129866753448 | erot = 7.09012582281433 | epot = -65.0580969997056 | etot = -48.4966725093568 +472000 ekin = 9.2921903929762 | erot = 7.08038845065489 | epot = -64.8692513475735 | etot = -48.4966725039424 +473000 ekin = 9.07859106352921 | erot = 7.03223766268143 | epot = -64.6075012244862 | etot = -48.4966724982756 +474000 ekin = 8.90859119080075 | erot = 6.95657374548138 | epot = -64.3618374293708 | etot = -48.4966724930887 +475000 ekin = 8.85085237799473 | erot = 6.86788557833288 | epot = -64.2154104452115 | etot = -48.4966724888839 +476000 ekin = 8.95844704218284 | erot = 6.78173938273948 | epot = -64.2368589109303 | etot = -48.496672486008 +477000 ekin = 9.2644564286688 | erot = 6.71235576621399 | epot = -64.4734846831893 | etot = -48.4966724883065 +478000 ekin = 9.75673758778777 | erot = 6.67310243752362 | epot = -64.9265125144516 | etot = -48.4966724891402 +479000 ekin = 10.4083719413681 | erot = 6.67104131555415 | epot = -65.5760857487059 | etot = -48.4966724917836 +480000 ekin = 11.178638769262 | erot = 6.70609770630459 | epot = -66.3814089720533 | etot = -48.4966724964866 +481000 ekin = 11.955017983466 | erot = 6.7757371292224 | epot = -67.22742764226 | etot = -48.4966725295717 +482000 ekin = 12.1969877155843 | erot = 6.9718210159753 | epot = -67.665481132394 | etot = -48.4966724008345 +483000 ekin = 12.8315687002499 | erot = 7.27453378452712 | epot = -68.6027750199974 | etot = -48.4966725352203 +484000 ekin = 13.1379089548664 | erot = 7.35121017886252 | epot = -68.9857915492807 | etot = -48.4966724155518 +485000 ekin = 13.1455744815507 | erot = 7.3913203100864 | epot = -69.033567208332 | etot = -48.4966724166949 +486000 ekin = 12.8847677060002 | erot = 7.41820327753848 | epot = -68.7996433974538 | etot = -48.4966724139151 +487000 ekin = 12.3995023295787 | erot = 7.43730294201701 | epot = -68.3334776794578 | etot = -48.4966724078621 +488000 ekin = 11.7801246298361 | erot = 7.45872842910054 | epot = -67.7355254588077 | etot = -48.496672399871 +489000 ekin = 11.1454971167096 | erot = 7.49387389625014 | epot = -67.1360434047318 | etot = -48.4966723917721 +490000 ekin = 10.6174118656957 | erot = 7.55177149144182 | epot = -66.6658557429297 | etot = -48.4966723857921 +491000 ekin = 10.2893788237472 | erot = 7.63548116164754 | epot = -66.421532369588 | etot = -48.4966723841933 +492000 ekin = 10.1956274376079 | erot = 7.73922358370761 | epot = -66.4315234096592 | etot = -48.4966723883437 +493000 ekin = 10.2924671649501 | erot = 7.84793186663804 | epot = -66.6370714291378 | etot = -48.4966723975496 +494000 ekin = 10.4668249564047 | erot = 7.94111684625574 | epot = -66.9046142110857 | etot = -48.4966724084252 +495000 ekin = 10.5791383441902 | erot = 8.00124026343994 | epot = -67.0770510235029 | etot = -48.4966724158728 +496000 ekin = 10.5277635544026 | erot = 8.02342438970481 | epot = -67.0478603599964 | etot = -48.496672415889 +497000 ekin = 10.3008638581338 | erot = 8.02081822152689 | epot = -66.8183544878886 | etot = -48.496672408228 +498000 ekin = 9.98303008285126 | erot = 8.02168645223716 | epot = -66.5013889316258 | etot = -48.4966723965374 +499000 ekin = 9.71342589188279 | erot = 8.05962720415388 | epot = -66.2697254819054 | etot = -48.4966723858687 +500000 ekin = 9.62351689111993 | erot = 8.16244515238151 | epot = -66.2826344234889 | etot = -48.4966723799875 +501000 ekin = 9.78787333396133 | erot = 8.34447303671244 | epot = -66.6290187508761 | etot = -48.4966723802023 +502000 ekin = 10.2050108702547 | erot = 8.6037048525824 | epot = -67.3053881086344 | etot = -48.4966723857973 +503000 ekin = 10.8051989674815 | erot = 8.92246829122841 | epot = -68.2243396539195 | etot = -48.4966723952096 +504000 ekin = 11.4710453970551 | erot = 9.26984220622738 | epot = -69.2375600102568 | etot = -48.4966724069743 +505000 ekin = 12.0583532743051 | erot = 9.60506055563649 | epot = -70.1600862495841 | etot = -48.4966724196425 +506000 ekin = 12.4169616299833 | erot = 9.88273601247277 | epot = -70.796370073167 | etot = -48.4966724307109 +507000 ekin = 12.4225762032897 | erot = 10.0614429671731 | epot = -70.9806916066885 | etot = -48.4966724362257 +508000 ekin = 12.0224546478147 | erot = 10.1150484290289 | epot = -70.634175509719 | etot = -48.4966724328754 +509000 ekin = 11.2713256108322 | erot = 10.0417150355121 | epot = -69.8097130672669 | etot = -48.4966724209226 +510000 ekin = 10.3259224264659 | erot = 9.86440101433983 | epot = -68.6869958452246 | etot = -48.4966724044189 +511000 ekin = 9.39566767794845 | erot = 9.62224126640847 | epot = -67.5145813329448 | etot = -48.4966723885879 +512000 ekin = 8.67739606863532 | erot = 9.3582345202646 | epot = -66.5323029667131 | etot = -48.4966723778132 +513000 ekin = 8.30173505002016 | erot = 9.10874451686367 | epot = -65.907151940734 | etot = -48.4966723738502 +514000 ekin = 8.31133758542276 | erot = 8.90213046048018 | epot = -65.7101404213344 | etot = -48.4966723754314 +515000 ekin = 8.65105183703162 | erot = 8.75142823022383 | epot = -65.8991524514168 | etot = -48.4966723841614 +516000 ekin = 9.19545504802738 | erot = 8.6502059078921 | epot = -66.3423333511625 | etot = -48.496672395243 +517000 ekin = 9.7894801348344 | erot = 8.58459334665713 | epot = -66.8707458886812 | etot = -48.4966724071896 +518000 ekin = 10.2719405203476 | erot = 8.53610767676887 | epot = -67.3047206152534 | etot = -48.496672418137 +519000 ekin = 10.503561904012 | erot = 8.48509741611018 | epot = -67.4853317484724 | etot = -48.4966724283503 +520000 ekin = 10.3837804905294 | erot = 8.41855293461474 | epot = -67.2990058538689 | etot = -48.4966724287248 +521000 ekin = 9.91971480318631 | erot = 8.33012920358482 | epot = -66.7465164260311 | etot = -48.4966724192599 +522000 ekin = 9.25580910208737 | erot = 8.22471517243627 | epot = -65.9771966778249 | etot = -48.4966724033013 +523000 ekin = 8.61677254374638 | erot = 8.11873116214327 | epot = -65.2321760933171 | etot = -48.4966723874275 +524000 ekin = 8.22312599625895 | erot = 8.03533827060582 | epot = -64.7551366426722 | etot = -48.4966723758074 +525000 ekin = 8.23096919100507 | erot = 7.99952905911197 | epot = -64.7271706204061 | etot = -48.4966723702891 +526000 ekin = 8.70541343274283 | erot = 8.03327780735268 | epot = -65.2353636116848 | etot = -48.4966723715893 +527000 ekin = 9.61054447390767 | erot = 8.14859195675917 | epot = -66.2558088113888 | etot = -48.496672380722 +528000 ekin = 10.8064190210713 | erot = 8.34203048709499 | epot = -67.6451219043045 | etot = -48.4966723961382 +529000 ekin = 12.074894702288 | erot = 8.593011410005 | epot = -69.164578526047 | etot = -48.496672413754 +530000 ekin = 13.177289905511 | erot = 8.86731230206088 | epot = -70.5412746358855 | etot = -48.4966724283136 +531000 ekin = 13.9222479331122 | erot = 9.12596646770331 | epot = -71.5448868368323 | etot = -48.4966724360168 +532000 ekin = 14.2109040111186 | erot = 9.33621159855988 | epot = -72.0437880461509 | etot = -48.4966724364724 +533000 ekin = 14.03934960496 | erot = 9.47948522973857 | epot = -72.0155072660371 | etot = -48.4966724313386 +534000 ekin = 13.4765937111696 | erot = 9.55437050364981 | epot = -71.5276366365961 | etot = -48.4966724217767 +535000 ekin = 12.6476855099239 | erot = 9.57521298729339 | epot = -70.719570906088 | etot = -48.4966724088707 +536000 ekin = 11.7187499511252 | erot = 9.56662150347728 | epot = -69.782043849765 | etot = -48.4966723951626 +537000 ekin = 10.8667161280631 | erot = 9.55558575452886 | epot = -68.9189742663218 | etot = -48.4966723837298 +538000 ekin = 10.2407642555984 | erot = 9.56460479407725 | epot = -68.3020414264008 | etot = -48.4966723767251 +539000 ekin = 9.93256310304282 | erot = 9.60813474980997 | epot = -68.0373702277795 | etot = -48.4966723749267 +540000 ekin = 9.96635059453905 | erot = 9.69366995175983 | epot = -68.1566929214946 | etot = -48.4966723751957 +541000 ekin = 10.3033434565407 | erot = 9.8245277345196 | epot = -68.6245435736411 | etot = -48.4966723825808 +542000 ekin = 10.8374546470991 | erot = 9.99210203730023 | epot = -69.3262290764191 | etot = -48.4966723920197 +543000 ekin = 11.4320363085197 | erot = 10.1839460986223 | epot = -70.112654808752 | etot = -48.49667240161 +544000 ekin = 11.9481549487224 | erot = 10.3868550357396 | epot = -70.8316823940766 | etot = -48.4966724096146 +545000 ekin = 12.2696023021453 | erot = 10.5892508891687 | epot = -71.355525606049 | etot = -48.496672414735 +546000 ekin = 12.3217483706317 | erot = 10.7831241362942 | epot = -71.6015449232215 | etot = -48.4966724162956 +547000 ekin = 12.081509089866 | erot = 10.9652333442778 | epot = -71.5434148484535 | etot = -48.4966724143097 +548000 ekin = 11.5772594483449 | erot = 11.1370572249196 | epot = -71.2109890828336 | etot = -48.4966724095691 +549000 ekin = 10.8796146423279 | erot = 11.302741530119 | epot = -70.6790285756037 | etot = -48.4966724031568 +550000 ekin = 10.0861650600912 | erot = 11.4673420616849 | epot = -70.0501795180752 | etot = -48.4966723962991 +551000 ekin = 9.30420856259773 | erot = 11.634606251307 | epot = -69.4354872039898 | etot = -48.496672390085 +552000 ekin = 8.63456852526814 | erot = 11.8051739021451 | epot = -68.9364148128166 | etot = -48.4966723854034 +553000 ekin = 8.15765857157046 | erot = 11.9755314527545 | epot = -68.6298624072797 | etot = -48.4966723829548 +554000 ekin = 7.92204387539979 | erot = 12.1379035109624 | epot = -68.5566197695225 | etot = -48.4966723831603 +555000 ekin = 7.93668594973216 | erot = 12.2813102396174 | epot = -68.7146685753788 | etot = -48.4966723860292 +556000 ekin = 8.16908147835047 | erot = 12.3937793343126 | epot = -69.059533203634 | etot = -48.4966723909709 +557000 ekin = 8.55144497224257 | erot = 12.4654791728174 | epot = -69.5135965419306 | etot = -48.4966723968706 +558000 ekin = 8.99506879129248 | erot = 12.4919043884456 | epot = -69.9836455820569 | etot = -48.4966724023188 +559000 ekin = 9.40988612193456 | erot = 12.4759637500203 | epot = -70.3825222780999 | etot = -48.4966724061451 +560000 ekin = 9.72239125486885 | erot = 12.4279361390898 | epot = -70.6469998019808 | etot = -48.4966724080221 +561000 ekin = 9.88412985930847 | erot = 12.3629252843479 | epot = -70.7437275520998 | etot = -48.4966724084435 +562000 ekin = 9.87014392585068 | erot = 12.2969140239501 | epot = -70.6637303577301 | etot = -48.4966724079293 +563000 ekin = 9.67269052976824 | erot = 12.2435461742289 | epot = -70.4129091123746 | etot = -48.4966724083774 +564000 ekin = 9.29561869654335 | erot = 12.2123745870678 | epot = -70.0046656891709 | etot = -48.4966724055598 +565000 ekin = 8.77967610188736 | erot = 12.2075615848959 | epot = -69.4839100879458 | etot = -48.4966724011626 +566000 ekin = 8.19459477305683 | erot = 12.2284388471579 | epot = -68.9197060161937 | etot = -48.4966723959789 +567000 ekin = 7.62573923576375 | erot = 12.2693533996009 | epot = -68.3917650267332 | etot = -48.4966723913686 +568000 ekin = 7.1540405418275 | erot = 12.3199400383551 | epot = -67.9706529686644 | etot = -48.4966723884818 +569000 ekin = 6.83717313923576 | erot = 12.3666389683348 | epot = -67.7004844953262 | etot = -48.4966723877556 +570000 ekin = 6.69956781471509 | erot = 12.395512588354 | epot = -67.5917527919448 | etot = -48.4966723888758 +571000 ekin = 6.73320809607387 | erot = 12.3955019362998 | epot = -67.6253824234367 | etot = -48.496672391063 +572000 ekin = 6.90669043395716 | erot = 12.3609011894105 | epot = -67.7642640154729 | etot = -48.4966723921052 +573000 ekin = 7.18429647827011 | erot = 12.2951299554893 | epot = -67.976098828917 | etot = -48.4966723951576 +574000 ekin = 7.52006639760762 | erot = 12.2050646486002 | epot = -68.2218034429552 | etot = -48.4966723967474 +575000 ekin = 7.87441000635079 | erot = 12.0985403158716 | epot = -68.4696227188286 | etot = -48.4966723966062 +576000 ekin = 8.23152231491051 | erot = 11.986305371123 | epot = -68.714500081168 | etot = -48.4966723951345 +577000 ekin = 8.59621090785601 | erot = 11.8802945474195 | epot = -68.9731778483469 | etot = -48.4966723930714 +578000 ekin = 8.98550446113749 | erot = 11.7917589254008 | epot = -69.2739357776107 | etot = -48.4966723910724 +579000 ekin = 9.42040764628024 | erot = 11.7296557360612 | epot = -69.6467357718763 | etot = -48.4966723895348 +580000 ekin = 9.92026928431491 | erot = 11.6994636247578 | epot = -70.1164052980429 | etot = -48.4966723889702 +581000 ekin = 10.4812356258575 | erot = 11.703677625259 | epot = -70.6815856415275 | etot = -48.496672390411 +582000 ekin = 11.0803741505447 | erot = 11.7381628956607 | epot = -71.3152094398488 | etot = -48.4966723936434 +583000 ekin = 11.6832905431688 | erot = 11.789805158158 | epot = -71.9697681008392 | etot = -48.4966723995124 +584000 ekin = 12.2265963016612 | erot = 11.8360805991666 | epot = -72.5593493091893 | etot = -48.4966724083615 +585000 ekin = 12.6146924453256 | erot = 11.8453302035176 | epot = -72.9566950678144 | etot = -48.4966724189713 +586000 ekin = 12.7381776542714 | erot = 11.7813880280281 | epot = -73.0162381105139 | etot = -48.4966724282144 +587000 ekin = 12.5064805858531 | erot = 11.6131474320443 | epot = -72.6163004503738 | etot = -48.4966724324764 +588000 ekin = 11.8864734315354 | erot = 11.3251009525692 | epot = -71.7082468122181 | etot = -48.4966724281136 +589000 ekin = 10.9473869135865 | erot = 10.9235098587313 | epot = -70.3675691878643 | etot = -48.4966724155465 +590000 ekin = 9.8603569687158 | erot = 10.4344934450019 | epot = -68.7915228117525 | etot = -48.4966723980348 +591000 ekin = 8.85631509729197 | erot = 9.89621562656566 | epot = -67.2492031047675 | etot = -48.4966723809099 +592000 ekin = 8.15513077390852 | erot = 9.34935781093818 | epot = -66.0011609547222 | etot = -48.4966723698755 +593000 ekin = 7.8886066686561 | erot = 8.82965609782248 | epot = -65.2149351345734 | etot = -48.4966723680948 +594000 ekin = 8.05760926838463 | erot = 8.36349649524626 | epot = -64.9177781380018 | etot = -48.4966723743709 +595000 ekin = 8.55177999820547 | erot = 7.96715997630488 | epot = -65.0156123582395 | etot = -48.4966723837292 +596000 ekin = 9.20240795646935 | erot = 7.64971555626626 | epot = -65.3487959079192 | etot = -48.4966723951836 +597000 ekin = 9.82563991120174 | erot = 7.41365255179059 | epot = -65.7359648663368 | etot = -48.4966724033444 +598000 ekin = 10.2831958981737 | erot = 7.25474571557566 | epot = -66.0346140228186 | etot = -48.4966724090693 +599000 ekin = 10.482354848241 | erot = 7.16384844604204 | epot = -66.1428757065455 | etot = -48.4966724122625 +600000 ekin = 10.3776559577961 | erot = 7.12899314640775 | epot = -66.003321516627 | etot = -48.4966724124232 +601000 ekin = 9.97447570398641 | erot = 7.13881295944498 | epot = -65.609961072411 | etot = -48.4966724089796 +602000 ekin = 9.33239148590697 | erot = 7.18604650079972 | epot = -65.0151103886242 | etot = -48.4966724019175 +603000 ekin = 8.56059728310519 | erot = 7.26939823178089 | epot = -64.3266679073028 | etot = -48.4966723924168 +604000 ekin = 7.79844425920136 | erot = 7.39226229323277 | epot = -63.687378935498 | etot = -48.4966723830639 +605000 ekin = 7.18334355706252 | erot = 7.5587573348131 | epot = -63.2387732679006 | etot = -48.4966723760249 +606000 ekin = 6.82339792277614 | erot = 7.77079572205225 | epot = -63.0908660164404 | etot = -48.496672371612 +607000 ekin = 6.78106761293196 | erot = 8.02640715105649 | epot = -63.304147135455 | etot = -48.4966723714665 +608000 ekin = 7.06650520941636 | erot = 8.31925929522833 | epot = -63.8824368788021 | etot = -48.4966723741574 +609000 ekin = 7.64869014778026 | erot = 8.6406373788116 | epot = -64.7859999055606 | etot = -48.4966723789688 +610000 ekin = 8.45880674199481 | erot = 8.97898134765573 | epot = -65.9344604773792 | etot = -48.4966723877287 +611000 ekin = 9.40012632079646 | erot = 9.32028280858585 | epot = -67.2170815245449 | etot = -48.4966723951626 +612000 ekin = 10.372486444167 | erot = 9.65110388606836 | epot = -68.520262733295 | etot = -48.4966724030596 +613000 ekin = 11.2738822446324 | erot = 9.95564408209938 | epot = -69.7261987373353 | etot = -48.4966724106034 +614000 ekin = 12.0134738011361 | erot = 10.2166935700791 | epot = -70.7268397869989 | etot = -48.4966724157837 +615000 ekin = 12.5325228236193 | erot = 10.4217069667446 | epot = -71.4509022073077 | etot = -48.4966724169438 +616000 ekin = 12.825829471173 | erot = 10.5664745452712 | epot = -71.8889764296329 | etot = -48.4966724131887 +617000 ekin = 12.9484167494881 | erot = 10.6576196900895 | epot = -72.1027088453135 | etot = -48.4966724057359 +618000 ekin = 12.9984754660186 | erot = 10.7112673341617 | epot = -72.2064151974673 | etot = -48.4966723972869 +619000 ekin = 13.0833633892504 | erot = 10.7483523556568 | epot = -72.3283881359066 | etot = -48.4966723909994 +620000 ekin = 13.2805224347085 | erot = 10.7880868966295 | epot = -72.5652817201818 | etot = -48.4966723888438 +621000 ekin = 13.6153158271335 | erot = 10.8424788949131 | epot = -72.954467112884 | etot = -48.4966723908374 +622000 ekin = 14.0617052046194 | erot = 10.9128304449266 | epot = -73.4712080456802 | etot = -48.4966723961342 +623000 ekin = 14.5562524524307 | erot = 10.9888554748175 | epot = -74.0417803306096 | etot = -48.4966724033615 +624000 ekin = 15.0184966480745 | erot = 11.0501520933759 | epot = -74.5653211520102 | etot = -48.4966724105598 +625000 ekin = 15.374006744184 | erot = 11.0719318061442 | epot = -74.9426109654702 | etot = -48.496672415142 +626000 ekin = 15.5799785500752 | erot = 11.0340258807614 | epot = -75.1106768463473 | etot = -48.4966724155108 +627000 ekin = 15.638740686841 | erot = 10.9274345484131 | epot = -75.0628476476207 | etot = -48.4966724123666 +628000 ekin = 15.5850466430001 | erot = 10.7544368612038 | epot = -74.8361559130623 | etot = -48.4966724088584 +629000 ekin = 15.4527585940654 | erot = 10.522207406829 | epot = -74.4716384083982 | etot = -48.4966724075037 +630000 ekin = 15.2487640712961 | erot = 10.2369904052399 | epot = -73.9824268848523 | etot = -48.4966724083164 +631000 ekin = 14.954630859851 | erot = 9.9035059260959 | epot = -73.3548091954574 | etot = -48.4966724095105 +632000 ekin = 14.5471297167831 | erot = 9.52778248753166 | epot = -72.5715846136179 | etot = -48.4966724093032 +633000 ekin = 14.0259983537531 | erot = 9.11935081543026 | epot = -71.6420215736341 | etot = -48.4966724044507 +634000 ekin = 13.434893448857 | erot = 8.69195919080616 | epot = -70.6235250390008 | etot = -48.4966723993376 +635000 ekin = 12.8248958276813 | erot = 8.26734491141948 | epot = -69.5889131330689 | etot = -48.4966723939681 +636000 ekin = 12.2634798859135 | erot = 7.86620866042701 | epot = -68.6263609335985 | etot = -48.496672387258 +637000 ekin = 11.8378305092479 | erot = 7.50870022727772 | epot = -67.8432031169467 | etot = -48.496672380421 +638000 ekin = 11.6379266195945 | erot = 7.21309192660197 | epot = -67.3476909220984 | etot = -48.496672375902 +639000 ekin = 11.7309756692676 | erot = 6.9935850958859 | epot = -67.2212331387219 | etot = -48.4966723735684 +640000 ekin = 12.1483860993111 | erot = 6.85513197124742 | epot = -67.5001904465738 | etot = -48.4966723760153 +641000 ekin = 12.8580389630882 | erot = 6.79197676462279 | epot = -68.1466881105606 | etot = -48.4966723828496 +642000 ekin = 13.767624186513 | erot = 6.78663459553832 | epot = -69.0509311760037 | etot = -48.4966723939524 +643000 ekin = 14.7311148046468 | erot = 6.81269225388644 | epot = -70.0404794653527 | etot = -48.4966724068195 +644000 ekin = 15.5770857379193 | erot = 6.83998967566507 | epot = -70.9137478318837 | etot = -48.4966724182993 +645000 ekin = 16.1508405484789 | erot = 6.84150218311769 | epot = -71.4890151570364 | etot = -48.4966724254398 +646000 ekin = 16.3517339376772 | erot = 6.79972807946899 | epot = -71.6481344439803 | etot = -48.4966724268342 +647000 ekin = 16.1521813974457 | erot = 6.71011075270204 | epot = -71.3589645730051 | etot = -48.4966724228573 +648000 ekin = 15.5941452914098 | erot = 6.58036041645482 | epot = -70.6711781230536 | etot = -48.496672415189 +649000 ekin = 14.7689091850159 | erot = 6.42695236567124 | epot = -69.6925339566958 | etot = -48.4966724060086 +650000 ekin = 13.7897851521548 | erot = 6.27009414201309 | epot = -68.5565516914091 | etot = -48.4966723972413 +651000 ekin = 12.7827854663786 | erot = 6.12965793177462 | epot = -67.409115783844 | etot = -48.4966723856907 +652000 ekin = 11.8480628892552 | erot = 6.02011822002166 | epot = -66.3648534921166 | etot = -48.4966723828397 +653000 ekin = 11.0202985972919 | erot = 5.94865375220468 | epot = -65.465624731493 | etot = -48.4966723819965 +654000 ekin = 10.3091031180503 | erot = 5.91728137261365 | epot = -64.7230568731607 | etot = -48.4966723824968 +655000 ekin = 9.70839056864199 | erot = 5.92392072345228 | epot = -64.1289836756226 | etot = -48.4966723835284 +656000 ekin = 9.20726106546127 | erot = 5.96375787147846 | epot = -63.6676913212765 | etot = -48.4966723843368 +657000 ekin = 8.80019228929313 | erot = 6.03073521932157 | epot = -63.3275998929669 | etot = -48.4966723843521 +658000 ekin = 8.49429330435421 | erot = 6.11901386846824 | epot = -63.1099795561543 | etot = -48.4966723833319 +659000 ekin = 8.31163970837388 | erot = 6.22415392584487 | epot = -63.0324660157173 | etot = -48.4966723814985 +660000 ekin = 8.2857168726607 | erot = 6.34359481939331 | epot = -63.1259840714867 | etot = -48.4966723794327 +661000 ekin = 8.45063623879217 | erot = 6.47625697344822 | epot = -63.4235655907463 | etot = -48.4966723785059 +662000 ekin = 8.82527447336867 | erot = 6.62126989852133 | epot = -63.9432167515224 | etot = -48.4966723796324 +663000 ekin = 9.37687400888537 | erot = 6.77176565493101 | epot = -64.6453120552966 | etot = -48.4966723914803 +664000 ekin = 10.0161883293663 | erot = 6.9167347170585 | epot = -65.4295954441715 | etot = -48.4966723977466 +665000 ekin = 10.6568075639073 | erot = 7.05202630068255 | epot = -66.2055062687951 | etot = -48.4966724042053 +666000 ekin = 11.2095129989439 | erot = 7.17560031612115 | epot = -66.8817857236717 | etot = -48.4966724086066 +667000 ekin = 11.6073208200519 | erot = 7.28956566879928 | epot = -67.3935588983753 | etot = -48.4966724095241 +668000 ekin = 11.8262434819787 | erot = 7.40047545934628 | epot = -67.7233913482482 | etot = -48.4966724069232 +669000 ekin = 11.8877773973786 | erot = 7.51673035650595 | epot = -67.9011801561976 | etot = -48.4966724023131 +670000 ekin = 11.8402449207958 | erot = 7.64485197463754 | epot = -67.9817692948627 | etot = -48.4966723994295 +671000 ekin = 11.7215972610062 | erot = 7.78648852076395 | epot = -68.0047581793401 | etot = -48.49667239757 +672000 ekin = 11.5567362169503 | erot = 7.94128453336362 | epot = -67.9946931468371 | etot = -48.4966723965231 +673000 ekin = 11.3570416456716 | erot = 8.10916533388291 | epot = -67.9628793756527 | etot = -48.4966723960982 +674000 ekin = 11.1259919204572 | erot = 8.29215560394995 | epot = -67.9148199188207 | etot = -48.4966723944136 +675000 ekin = 10.8743945882945 | erot = 8.49470509397004 | epot = -67.8657720761146 | etot = -48.49667239385 +676000 ekin = 10.6087709731309 | erot = 8.72185603056474 | epot = -67.8272993965002 | etot = -48.4966723928045 +677000 ekin = 10.3411925528822 | erot = 8.97814779631624 | epot = -67.8160127410913 | etot = -48.4966723918928 +678000 ekin = 10.0860835583249 | erot = 9.26516881807783 | epot = -67.8479247680228 | etot = -48.4966723916201 +679000 ekin = 9.85460690263328 | erot = 9.57959119584002 | epot = -67.9308704906876 | etot = -48.4966723922143 +680000 ekin = 9.65193484596328 | erot = 9.91222749431411 | epot = -68.0608347338678 | etot = -48.4966723935904 +681000 ekin = 9.4777867402786 | erot = 10.2481668374404 | epot = -68.2226259731627 | etot = -48.4966723954437 +682000 ekin = 9.32915693377952 | erot = 10.5680491155029 | epot = -68.3938784466551 | etot = -48.4966723973727 +683000 ekin = 9.20359209967432 | erot = 10.8502901107227 | epot = -68.5505546094478 | etot = -48.4966723990507 +684000 ekin = 9.10057910407447 | erot = 11.0738485406611 | epot = -68.6711000473925 | etot = -48.4966724026569 +685000 ekin = 9.00949165129753 | erot = 11.2173796936166 | epot = -68.7235437496512 | etot = -48.4966724047371 +686000 ekin = 8.91345829616017 | erot = 11.2659265088162 | epot = -68.6760572116703 | etot = -48.4966724066939 +687000 ekin = 8.79289020081684 | erot = 11.2146418431984 | epot = -68.5042044522316 | etot = -48.4966724082164 +688000 ekin = 8.62699585205897 | erot = 11.0687535113927 | epot = -68.1924217719271 | etot = -48.4966724084754 +689000 ekin = 8.40629613751591 | erot = 10.8436392124157 | epot = -67.7466077562959 | etot = -48.4966724063643 +690000 ekin = 8.14912332610223 | erot = 10.5636669230698 | epot = -67.2094626503497 | etot = -48.4966724011776 +691000 ekin = 7.91246650766668 | erot = 10.2598630021587 | epot = -66.6690019031974 | etot = -48.496672393372 +692000 ekin = 7.7864973239644 | erot = 9.96636747428024 | epot = -66.2495371831641 | etot = -48.4966723849195 +693000 ekin = 7.86849983021928 | erot = 9.7157177975428 | epot = -66.0808900065901 | etot = -48.496672378828 +694000 ekin = 8.22337408804674 | erot = 9.53345750718098 | epot = -66.2535039731099 | etot = -48.4966723778822 +695000 ekin = 8.84810602165013 | erot = 9.43320257958283 | epot = -66.7779809844792 | etot = -48.4966723832463 +696000 ekin = 9.65887172621348 | erot = 9.41372191398151 | epot = -67.5692660339737 | etot = -48.4966723937787 +697000 ekin = 10.5087480397169 | erot = 9.45932512238858 | epot = -68.4647455686608 | etot = -48.4966724065554 +698000 ekin = 11.2285190596257 | erot = 9.54380480099791 | epot = -69.2689962786402 | etot = -48.4966724180166 +699000 ekin = 11.6741833073371 | erot = 9.63725123869461 | epot = -69.8081069711249 | etot = -48.4966724250932 +700000 ekin = 11.7654350678547 | erot = 9.71395728282058 | epot = -69.976064776722 | etot = -48.4966724260467 +701000 ekin = 11.5047049791839 | erot = 9.75894077513181 | epot = -69.7603181752444 | etot = -48.4966724209286 +702000 ekin = 10.9724403691924 | erot = 9.77075075389209 | epot = -69.2398635346446 | etot = -48.4966724115602 +703000 ekin = 10.3024076281298 | erot = 9.75981202354562 | epot = -68.5588920524018 | etot = -48.4966724007264 +704000 ekin = 9.64337665059165 | erot = 9.74344885685364 | epot = -67.8834978991357 | etot = -48.4966723916904 +705000 ekin = 9.11795255237604 | erot = 9.73742730827394 | epot = -67.3520522458547 | etot = -48.4966723852047 +706000 ekin = 8.8126363961415 | erot = 9.75421899371362 | epot = -67.0635277715381 | etot = -48.4966723816829 +707000 ekin = 8.77338019637888 | erot = 9.80175401579289 | epot = -67.0718065928509 | etot = -48.4966723806791 +708000 ekin = 9.01138622873006 | erot = 9.88360177688334 | epot = -67.3916603870485 | etot = -48.4966723814351 +709000 ekin = 9.507479880512 | erot = 9.99905419025802 | epot = -68.0032064567145 | etot = -48.4966723859444 +710000 ekin = 10.2098084036322 | erot = 10.1416258359394 | epot = -68.8481066302707 | etot = -48.4966723906991 +711000 ekin = 11.0523389502551 | erot = 10.2998854259334 | epot = -69.8488967730332 | etot = -48.4966723968448 +712000 ekin = 11.9521069749276 | erot = 10.4562138307596 | epot = -70.9049932107033 | etot = -48.4966724050161 +713000 ekin = 12.815046543433 | erot = 10.5882970355821 | epot = -71.9000159916048 | etot = -48.4966724125897 +714000 ekin = 13.5573027727324 | erot = 10.6741841242495 | epot = -72.728159315078 | etot = -48.4966724180961 +715000 ekin = 14.1179857011503 | erot = 10.6957124390567 | epot = -73.3103705611375 | etot = -48.4966724209306 +716000 ekin = 14.4699787528586 | erot = 10.6432681552738 | epot = -73.6099193281367 | etot = -48.4966724200043 +717000 ekin = 14.6304817623995 | erot = 10.5193699656725 | epot = -73.6465241440422 | etot = -48.4966724159702 +718000 ekin = 14.6433398088089 | erot = 10.3369378985737 | epot = -73.4769501198252 | etot = -48.4966724124426 +719000 ekin = 14.5613025266252 | erot = 10.1163044955734 | epot = -73.1742794291502 | etot = -48.4966724069517 +720000 ekin = 14.4440802768632 | erot = 9.88263320897859 | epot = -72.8233858888948 | etot = -48.496672403053 +721000 ekin = 14.3266924859882 | erot = 9.66028301159175 | epot = -72.4836478992629 | etot = -48.496672401683 +722000 ekin = 14.2082139496557 | erot = 9.46998100592359 | epot = -72.1748673584334 | etot = -48.496672402854 +723000 ekin = 14.0535356857718 | erot = 9.32739231104943 | epot = -71.8776004024297 | etot = -48.4966724056085 +724000 ekin = 13.8083025949352 | erot = 9.2428855238673 | epot = -71.5478605272106 | etot = -48.4966724084081 +725000 ekin = 13.4217406282447 | erot = 9.22217939716601 | epot = -71.1405924351186 | etot = -48.4966724097079 +726000 ekin = 12.8688682438372 | erot = 9.26761054150398 | epot = -70.6331511938425 | etot = -48.4966724085013 +727000 ekin = 12.1644185053382 | erot = 9.37972324051462 | epot = -70.0408141504884 | etot = -48.4966724046356 +728000 ekin = 11.363942609201 | erot = 9.55857934592133 | epot = -69.4191943540498 | etot = -48.4966723989274 +729000 ekin = 10.5512882155693 | erot = 9.80396099287644 | epot = -68.8519216014331 | etot = -48.4966723929874 +730000 ekin = 9.81740771774417 | erot = 10.1147074884202 | epot = -68.4287875945261 | etot = -48.4966723883617 +731000 ekin = 9.23253818728237 | erot = 10.4853428847489 | epot = -68.2145534593311 | etot = -48.4966723872998 +732000 ekin = 8.82544563448641 | erot = 10.9030046167842 | epot = -68.2251226409579 | etot = -48.4966723896873 +733000 ekin = 8.58076650753532 | erot = 11.3480140239965 | epot = -68.4254529263367 | etot = -48.4966723948048 +734000 ekin = 8.44819070663181 | erot = 11.7953928345719 | epot = -68.7402559422253 | etot = -48.4966724010216 +735000 ekin = 8.36308582601686 | erot = 12.2184265333689 | epot = -69.0781847656954 | etot = -48.4966724063097 +736000 ekin = 8.27166179429879 | erot = 12.5931737859848 | epot = -69.3615079892498 | etot = -48.4966724089662 +737000 ekin = 8.15174465756938 | erot = 12.9021375874299 | epot = -69.5505546533663 | etot = -48.4966724083671 +738000 ekin = 8.02032384037336 | erot = 13.1353976436493 | epot = -69.6523938893608 | etot = -48.4966724053382 +739000 ekin = 7.92361863165684 | erot = 13.2888871707161 | epot = -69.7091782040701 | etot = -48.4966724016972 +740000 ekin = 7.9148308910797 | erot = 13.3615962967597 | epot = -69.7730995868771 | etot = -48.4966723990377 +741000 ekin = 8.0330259007673 | erot = 13.3544079573288 | epot = -69.8841062559017 | etot = -48.4966723978055 +742000 ekin = 8.29475492773836 | erot = 13.2712680544976 | epot = -70.062695379681 | etot = -48.4966723974451 +743000 ekin = 8.69783680679613 | erot = 13.1210830215102 | epot = -70.3155922259027 | etot = -48.4966723975964 +744000 ekin = 9.22494090055528 | erot = 12.9171251058713 | epot = -70.6387384052188 | etot = -48.4966723987922 +745000 ekin = 9.83908652683635 | erot = 12.6729415303268 | epot = -71.0087004591722 | etot = -48.4966724020091 +746000 ekin = 10.4767671898614 | erot = 12.3966932528209 | epot = -71.370132850581 | etot = -48.4966724078987 +747000 ekin = 11.0446377698964 | erot = 12.0869928942754 | epot = -71.6283030800949 | etot = -48.4966724159231 +748000 ekin = 11.4295453907525 | erot = 11.7327222579966 | epot = -71.6589400729807 | etot = -48.4966724242316 +749000 ekin = 11.5234364161557 | erot = 11.317448589884 | epot = -71.3375574360207 | etot = -48.496672429981 +750000 ekin = 11.25907985386 | erot = 10.8275036110752 | epot = -70.5832558906309 | etot = -48.4966724256958 +751000 ekin = 10.6566760362235 | erot = 10.2652340949476 | epot = -69.418582551546 | etot = -48.4966724203749 +752000 ekin = 9.81046694514328 | erot = 9.64438866532819 | epot = -67.9515280183084 | etot = -48.4966724078369 +753000 ekin = 8.89134561969272 | erot = 8.99214235499747 | epot = -66.3801603663773 | etot = -48.4966723916871 +754000 ekin = 8.11027945100571 | erot = 8.34642943211771 | epot = -64.9533812595025 | etot = -48.496672376379 +755000 ekin = 7.64805178064424 | erot = 7.74709579287851 | epot = -63.8918199452063 | etot = -48.4966723716836 +756000 ekin = 7.56652741923863 | erot = 7.21880217837636 | epot = -63.2820019731369 | etot = -48.4966723755219 +757000 ekin = 7.80213473501438 | erot = 6.76780334657733 | epot = -63.0666104661334 | etot = -48.4966723845417 +758000 ekin = 8.22136828691586 | erot = 6.38824654020546 | epot = -63.1062872204421 | etot = -48.4966723933208 +759000 ekin = 8.68715060867478 | erot = 6.07044846899398 | epot = -63.254271477475 | etot = -48.4966723998062 +760000 ekin = 9.09933114499266 | erot = 5.80281618237588 | epot = -63.3988197305041 | etot = -48.4966724031356 +761000 ekin = 9.39129570577371 | erot = 5.57472170090487 | epot = -63.4626898092446 | etot = -48.496672402566 +762000 ekin = 9.56563723679221 | erot = 5.38011940085551 | epot = -63.4424290366401 | etot = -48.4966723989924 +763000 ekin = 9.67336099063757 | erot = 5.21718626711669 | epot = -63.3872196518505 | etot = -48.4966723940963 +764000 ekin = 9.78632769692617 | erot = 5.08599588210491 | epot = -63.3689959686529 | etot = -48.4966723896218 +765000 ekin = 9.96960969360812 | erot = 4.9856369884801 | epot = -63.4519190695977 | etot = -48.4966723875095 +766000 ekin = 10.2254800688571 | erot = 4.91845355420055 | epot = -63.6406060068488 | etot = -48.4966723837912 +767000 ekin = 10.5921756589939 | erot = 4.88036713450099 | epot = -63.9692151910276 | etot = -48.4966723975327 +768000 ekin = 11.0286182841544 | erot = 4.84228216956277 | epot = -64.3675728418936 | etot = -48.4966723881764 +769000 ekin = 11.5060819039612 | erot = 4.81203544038845 | epot = -64.8147897343244 | etot = -48.4966723899747 +770000 ekin = 11.9954127335742 | erot = 4.78570420778446 | epot = -65.2777893328501 | etot = -48.4966723914915 +771000 ekin = 12.4710057578583 | erot = 4.76119431130479 | epot = -65.7288724617997 | etot = -48.4966723926366 +772000 ekin = 12.9091287693786 | erot = 4.73689896129648 | epot = -66.1427001248731 | etot = -48.4966723941981 +773000 ekin = 13.2804102672833 | erot = 4.71070995661432 | epot = -66.4877926203597 | etot = -48.4966723964621 +774000 ekin = 13.5460331301913 | erot = 4.67959233332746 | epot = -66.7222978601731 | etot = -48.4966723966543 +775000 ekin = 13.6741516120588 | erot = 4.63765248583542 | epot = -66.8084764977843 | etot = -48.4966723998901 +776000 ekin = 13.6286904224698 | erot = 4.5810340629117 | epot = -66.7063968767974 | etot = -48.4966723914159 +777000 ekin = 13.4182048010108 | erot = 4.51743020935942 | epot = -66.4323074040537 | etot = -48.4966723936834 +778000 ekin = 13.0220035128905 | erot = 4.44948541464092 | epot = -65.9681613216866 | etot = -48.4966723941552 +779000 ekin = 12.4217380617913 | erot = 4.38036222314103 | epot = -65.2987726779784 | etot = -48.496672393046 +780000 ekin = 11.613771531245 | erot = 4.31519453319774 | epot = -64.42563845626 | etot = -48.4966723918173 +781000 ekin = 10.6252323243695 | erot = 4.25886110642314 | epot = -63.380765816722 | etot = -48.4966723859294 +782000 ekin = 9.53385909805364 | erot = 4.22248165795862 | epot = -62.2530131351912 | etot = -48.496672379179 +783000 ekin = 8.43150181423015 | erot = 4.21812348326728 | epot = -61.1462976699004 | etot = -48.496672372403 +784000 ekin = 7.41120665752538 | erot = 4.25753755490016 | epot = -60.1654165788728 | etot = -48.4966723664473 +785000 ekin = 6.55493198849118 | erot = 4.35109016914503 | epot = -59.4026945196836 | etot = -48.4966723620474 +786000 ekin = 5.92286857594027 | erot = 4.50684669643736 | epot = -58.9263876320663 | etot = -48.4966723596887 +787000 ekin = 5.54648098925342 | erot = 4.72991351643046 | epot = -58.7730668651868 | etot = -48.496672359503 +788000 ekin = 5.42684004343809 | erot = 5.02210237708223 | epot = -58.9456147817288 | etot = -48.4966723612085 +789000 ekin = 5.53848888149235 | erot = 5.38186888554717 | epot = -59.417030131357 | etot = -48.4966723643175 +790000 ekin = 5.83681660441396 | erot = 5.80448189900387 | epot = -60.1379708716484 | etot = -48.4966723682306 +791000 ekin = 6.26691431691792 | erot = 6.28226218218035 | epot = -61.0458488715164 | etot = -48.4966723724181 +792000 ekin = 6.77233331545528 | erot = 6.80466729718548 | epot = -62.0736729890538 | etot = -48.4966723764131 +793000 ekin = 7.30112337082801 | erot = 7.3585303753528 | epot = -63.1563261262803 | etot = -48.4966723800995 +794000 ekin = 7.80874279001246 | erot = 7.92855734516373 | epot = -64.2339725184781 | etot = -48.4966723833019 +795000 ekin = 8.16614984086779 | erot = 8.55276407751546 | epot = -65.2155862977053 | etot = -48.496672379322 +796000 ekin = 8.42449679171013 | erot = 9.232341806983 | epot = -66.1535110093845 | etot = -48.4966724106913 +797000 ekin = 8.67431436581401 | erot = 9.7435699527024 | epot = -66.914556725524 | etot = -48.4966724070076 +798000 ekin = 8.8280771563386 | erot = 10.1953217654039 | epot = -67.5200713293495 | etot = -48.4966724076071 +799000 ekin = 8.89463201678151 | erot = 10.5732151310376 | epot = -67.9645195546597 | etot = -48.4966724068406 +800000 ekin = 8.89722969174871 | erot = 10.8667677316358 | epot = -68.2606698285332 | etot = -48.4966724051487 +801000 ekin = 8.87138017727319 | erot = 11.0709907384912 | epot = -68.4390433180044 | etot = -48.49667240224 +802000 ekin = 8.86275607661702 | erot = 11.1875475895059 | epot = -68.5469760649163 | etot = -48.4966723987933 +803000 ekin = 8.91761167485276 | erot = 11.2243264573357 | epot = -68.638610528175 | etot = -48.4966723959866 +804000 ekin = 9.06730079062971 | erot = 11.1932613875641 | epot = -68.7572345732232 | etot = -48.4966723950294 +805000 ekin = 9.31347449976795 | erot = 11.1073163211595 | epot = -68.9174632174952 | etot = -48.4966723965677 +806000 ekin = 9.6271984768999 | erot = 10.9794864721776 | epot = -69.1033573480843 | etot = -48.4966723990068 +807000 ekin = 9.96288601676957 | erot = 10.8230663456226 | epot = -69.2826247658667 | etot = -48.4966724034745 +808000 ekin = 10.2497439836388 | erot = 10.6432283958412 | epot = -69.3896447869791 | etot = -48.4966724074991 +809000 ekin = 10.4243193604973 | erot = 10.4427750451282 | epot = -69.3637668155705 | etot = -48.4966724099449 +810000 ekin = 10.4450308652907 | erot = 10.2230440398756 | epot = -69.1647473164965 | etot = -48.4966724113302 +811000 ekin = 10.272181346896 | erot = 9.97917260820666 | epot = -68.7480263644415 | etot = -48.4966724093388 +812000 ekin = 9.92407619970024 | erot = 9.71416142517266 | epot = -68.134910029841 | etot = -48.4966724049681 +813000 ekin = 9.46374629333194 | erot = 9.43470533288456 | epot = -67.3951240249078 | etot = -48.4966723986913 +814000 ekin = 8.98180729318873 | erot = 9.14902607621865 | epot = -66.6275057608654 | etot = -48.496672391458 +815000 ekin = 8.58163269954382 | erot = 8.8668326192338 | epot = -65.945137703243 | etot = -48.4966723844654 +816000 ekin = 8.36010805240945 | erot = 8.59902958878876 | epot = -65.4558100202893 | etot = -48.4966723790911 +817000 ekin = 8.38734404812207 | erot = 8.35708532043452 | epot = -65.241101745284 | etot = -48.4966723767274 +818000 ekin = 8.68842134779578 | erot = 8.15175683970339 | epot = -65.3368505651542 | etot = -48.496672377655 +819000 ekin = 9.23925212157569 | erot = 7.99221894961925 | epot = -65.7281434524437 | etot = -48.4966723812488 +820000 ekin = 9.85505920608647 | erot = 7.98557734926293 | epot = -66.3373089284081 | etot = -48.4966723730587 +821000 ekin = 10.5581187890191 | erot = 8.08897892780845 | epot = -67.1437700941966 | etot = -48.4966723773691 +822000 ekin = 11.4203555733393 | erot = 8.09820922217477 | epot = -68.0152371766456 | etot = -48.4966723811315 +823000 ekin = 12.2449657838916 | erot = 8.16990204501286 | epot = -68.9115402126078 | etot = -48.4966723837034 +824000 ekin = 12.988754106619 | erot = 8.303289001345 | epot = -69.7887154933773 | etot = -48.4966723854133 +825000 ekin = 13.6250378987267 | erot = 8.49403789382871 | epot = -70.6157481796525 | etot = -48.4966723870971 +826000 ekin = 14.1275801405811 | erot = 8.73182161873989 | epot = -71.3560741518016 | etot = -48.4966723924806 +827000 ekin = 14.4569396382577 | erot = 8.99861686934358 | epot = -71.9522289037119 | etot = -48.4966723961106 +828000 ekin = 14.5801783873678 | erot = 9.27256145493081 | epot = -72.3494122421992 | etot = -48.4966723999006 +829000 ekin = 14.4667887745675 | erot = 9.52899253620437 | epot = -72.4924537134123 | etot = -48.4966724026404 +830000 ekin = 14.1008667936321 | erot = 9.74540563538452 | epot = -72.3429448319433 | etot = -48.4966724029267 +831000 ekin = 13.4937466240961 | erot = 9.90643642504771 | epot = -71.8968554494301 | etot = -48.4966724002863 +832000 ekin = 12.690621379057 | erot = 10.007761953574 | epot = -71.1950557274001 | etot = -48.4966723947691 +833000 ekin = 11.76618490315 | erot = 10.0572478692757 | epot = -70.3201051601282 | etot = -48.4966723877025 +834000 ekin = 10.8109948235413 | erot = 10.0713545045104 | epot = -69.3790217084244 | etot = -48.4966723803727 +835000 ekin = 9.91642597742027 | erot = 10.0705783753312 | epot = -68.4836767280336 | etot = -48.4966723752821 +836000 ekin = 9.14363254517297 | erot = 9.95662954963987 | epot = -67.5969343907267 | etot = -48.4966722959138 +837000 ekin = 8.79163957803918 | erot = 9.91123278077568 | epot = -67.1995446571216 | etot = -48.4966722983067 +838000 ekin = 8.42094145774585 | erot = 9.94835266816688 | epot = -66.8659664253332 | etot = -48.4966722994205 +839000 ekin = 8.20536768127504 | erot = 10.0122432400981 | epot = -66.7142832237513 | etot = -48.4966723023782 +840000 ekin = 8.1093230210224 | erot = 10.100917536094 | epot = -66.7069128624304 | etot = -48.496672305314 +841000 ekin = 8.09432718565605 | erot = 10.2103111783835 | epot = -66.8013106720822 | etot = -48.4966723080426 +842000 ekin = 8.12447284717686 | erot = 10.3366191336996 | epot = -66.9577642910505 | etot = -48.496672310174 +843000 ekin = 8.17242564608534 | erot = 10.4770425710791 | epot = -67.1461405286521 | etot = -48.4966723114877 +844000 ekin = 8.22381294530403 | erot = 10.6297921504136 | epot = -67.3502774076129 | etot = -48.4966723118952 +845000 ekin = 8.27955126793295 | erot = 10.7936569659547 | epot = -67.5698805454519 | etot = -48.4966723115643 +846000 ekin = 8.35455924885402 | erot = 10.967203669213 | epot = -67.8184352290032 | etot = -48.4966723109362 +847000 ekin = 8.47238635239291 | erot = 11.1476305353207 | epot = -68.1166891982393 | etot = -48.4966723105256 +848000 ekin = 8.6581027291424 | erot = 11.3297217896588 | epot = -68.4844968293196 | etot = -48.4966723105184 +849000 ekin = 8.93290208129911 | erot = 11.5057838941209 | epot = -68.9353582864968 | etot = -48.4966723110767 +850000 ekin = 9.30778062392313 | erot = 11.6667367373522 | epot = -69.4711896738413 | etot = -48.4966723125659 +851000 ekin = 9.77385593013607 | erot = 11.8036289171217 | epot = -70.0741571630207 | etot = -48.496672315763 +852000 ekin = 10.2902091190448 | erot = 11.9080163478871 | epot = -70.6948977882805 | etot = -48.4966723213486 +853000 ekin = 10.7774710930233 | erot = 11.9704639293159 | epot = -71.2446073513379 | etot = -48.4966723289987 +854000 ekin = 11.1286098539193 | erot = 11.9790690591239 | epot = -71.6043512495388 | etot = -48.4966723364956 +855000 ekin = 11.2404537272091 | erot = 11.9198426908992 | epot = -71.6569687595576 | etot = -48.4966723414493 +856000 ekin = 11.053327395177 | erot = 11.7779965349299 | epot = -71.3279962710617 | etot = -48.4966723409548 +857000 ekin = 10.584956831702 | erot = 11.5448386364277 | epot = -70.6264678022533 | etot = -48.4966723341237 +858000 ekin = 9.93782549834665 | erot = 11.2226264185437 | epot = -69.6571242394592 | etot = -48.4966723225689 +859000 ekin = 9.27338883945023 | erot = 10.8254282744321 | epot = -68.5954894237091 | etot = -48.4966723098268 +860000 ekin = 8.76267013904095 | erot = 10.3757646971924 | epot = -67.6351071358762 | etot = -48.4966722996429 +861000 ekin = 8.53556496599741 | erot = 9.8992897906932 | epot = -66.9315270509676 | etot = -48.496672294277 +862000 ekin = 8.65070986754626 | erot = 9.42036720175988 | epot = -66.5677493631881 | etot = -48.4966722938819 +863000 ekin = 9.09319445512942 | erot = 8.96001366253682 | epot = -66.5498804148173 | etot = -48.496672297151 +864000 ekin = 9.79331571881421 | erot = 8.53570874460926 | epot = -66.8256967657445 | etot = -48.496672302321 +865000 ekin = 10.6528659431403 | erot = 8.1619337510599 | epot = -67.3114720020424 | etot = -48.4966723078422 +866000 ekin = 11.5706394639051 | erot = 7.85082867751083 | epot = -67.9181404525917 | etot = -48.4966723111758 +867000 ekin = 12.4665855078817 | erot = 7.61306294106123 | epot = -68.5763207633311 | etot = -48.4966723143882 +868000 ekin = 13.2806731160753 | erot = 7.45693596614787 | epot = -69.2342813981118 | etot = -48.4966723158886 +869000 ekin = 13.9812766374186 | erot = 7.38865717396414 | epot = -69.8666061275298 | etot = -48.4966723161471 +870000 ekin = 14.5601728090876 | erot = 7.41145610382319 | epot = -70.4683012292786 | etot = -48.4966723163678 +871000 ekin = 15.0180932071648 | erot = 7.52387391723463 | epot = -71.0386394424244 | etot = -48.496672318025 +872000 ekin = 15.3437544358528 | erot = 7.71754298669858 | epot = -71.5579697448569 | etot = -48.4966723223055 +873000 ekin = 15.4947478869856 | erot = 7.97535948776352 | epot = -71.9667797033426 | etot = -48.4966723285935 +874000 ekin = 15.4072022286222 | erot = 8.27349566903578 | epot = -72.177370232574 | etot = -48.496672334916 +875000 ekin = 15.0202820872088 | erot = 8.58584611982729 | epot = -72.1028005455168 | etot = -48.4966723384808 +876000 ekin = 14.3103753089542 | erot = 8.89001531540942 | epot = -71.6970629614375 | etot = -48.4966723370739 +877000 ekin = 13.3177867571877 | erot = 9.17198109522917 | epot = -70.9864401828287 | etot = -48.4966723304118 +878000 ekin = 12.1489812402072 | erot = 9.42690023133329 | epot = -70.0725537922242 | etot = -48.4966723206837 +879000 ekin = 10.9478679202175 | erot = 9.6557081483768 | epot = -69.1002483801628 | etot = -48.4966723115685 +880000 ekin = 9.84816823723111 | erot = 9.86012585903946 | epot = -68.2049664022824 | etot = -48.4966723060118 +881000 ekin = 8.93418865262183 | erot = 10.0399671445483 | epot = -67.4708281016096 | etot = -48.4966723044394 +882000 ekin = 8.23233878869692 | erot = 10.1944686101309 | epot = -66.9234797039627 | etot = -48.4966723051349 +883000 ekin = 7.7307937415218 | erot = 10.3254556486739 | epot = -66.552921695855 | etot = -48.4966723056593 +884000 ekin = 7.40639355198747 | erot = 10.43895819343 | epot = -66.3420240525079 | etot = -48.4966723070904 +885000 ekin = 7.23012884114594 | erot = 10.5425263248664 | epot = -66.2693274743337 | etot = -48.4966723083214 +886000 ekin = 7.17188160929178 | erot = 10.6423872890754 | epot = -66.3109412080251 | etot = -48.4966723096579 +887000 ekin = 7.20359993877251 | erot = 10.7423767430536 | epot = -66.4426489927797 | etot = -48.4966723109536 +888000 ekin = 7.3008338997157 | erot = 10.8444815138835 | epot = -66.6419877254683 | etot = -48.4966723118691 +889000 ekin = 7.4458466277536 | erot = 10.9502816347756 | epot = -66.8928005748479 | etot = -48.4966723123187 +890000 ekin = 7.62600693804896 | erot = 11.0610746454838 | epot = -67.1837538972842 | etot = -48.4966723137514 +891000 ekin = 7.81873873873223 | erot = 11.1753311187699 | epot = -67.4907421746786 | etot = -48.4966723171765 +892000 ekin = 7.97874968997684 | erot = 11.2859136966781 | epot = -67.7613357091199 | etot = -48.4966723224649 +893000 ekin = 8.03989394874733 | erot = 11.379421430407 | epot = -67.9159877073352 | etot = -48.4966723281809 +894000 ekin = 7.93829359299784 | erot = 11.4397930633308 | epot = -67.8747589881601 | etot = -48.4966723318315 +895000 ekin = 7.64207854906749 | erot = 11.454909658119 | epot = -67.593660529966 | etot = -48.4966723227794 +896000 ekin = 7.25994289813527 | erot = 11.4314794339685 | epot = -67.188094652132 | etot = -48.4966723200283 +897000 ekin = 6.87440345867047 | erot = 11.3807194376691 | epot = -66.7517952114221 | etot = -48.4966723150826 +898000 ekin = 6.54072238253912 | erot = 11.3170504975174 | epot = -66.3544451900592 | etot = -48.4966723100027 +899000 ekin = 6.3149797276302 | erot = 11.2562721805318 | epot = -66.0679242147949 | etot = -48.4966723066329 +900000 ekin = 6.23427080305277 | erot = 11.2089558223275 | epot = -65.9398989312314 | etot = -48.4966723058512 +901000 ekin = 6.30716786580342 | erot = 11.1769913016915 | epot = -65.9808314749347 | etot = -48.4966723074397 +902000 ekin = 6.5160386395389 | erot = 11.1540746008897 | epot = -66.1667855508329 | etot = -48.4966723104043 +903000 ekin = 6.82764115096407 | erot = 11.1292357637691 | epot = -66.4535492282758 | etot = -48.4966723135426 +904000 ekin = 7.20594581556678 | erot = 11.0915307949996 | epot = -66.7941489265111 | etot = -48.4966723159447 +905000 ekin = 7.62139055368882 | erot = 11.0338529955967 | epot = -67.1519158666662 | etot = -48.4966723173806 +906000 ekin = 8.05314401540784 | erot = 10.9545483974327 | epot = -67.5043647309824 | etot = -48.4966723181419 +907000 ekin = 8.48596871213919 | erot = 10.8568809788585 | epot = -67.8395220096489 | etot = -48.4966723186511 +908000 ekin = 8.90584093620398 | erot = 10.747531720664 | epot = -68.1500449760293 | etot = -48.4966723191613 +909000 ekin = 9.29811876751837 | erot = 10.635383593286 | epot = -68.4301746802664 | etot = -48.496672319462 +910000 ekin = 9.64930058056707 | erot = 10.5309201128789 | epot = -68.6768930130078 | etot = -48.4966723195618 +911000 ekin = 9.94798521054174 | erot = 10.4454281278766 | epot = -68.8900856579936 | etot = -48.4966723195752 +912000 ekin = 10.1842847330219 | erot = 10.3896169180644 | epot = -69.0705739710101 | etot = -48.4966723199237 +913000 ekin = 10.3464242506172 | erot = 10.3715034503495 | epot = -69.2146000220349 | etot = -48.4966723210683 +914000 ekin = 10.4159486730007 | erot = 10.3940912362075 | epot = -69.3067122326474 | etot = -48.4966723234391 +915000 ekin = 10.3649219647615 | erot = 10.4538252082086 | epot = -69.3154194996121 | etot = -48.4966723266421 +916000 ekin = 10.161263057762 | erot = 10.5413791276288 | epot = -69.1993145148424 | etot = -48.4966723294517 +917000 ekin = 9.79071146029323 | erot = 10.6444144950114 | epot = -68.9317982858749 | etot = -48.4966723305703 +918000 ekin = 9.26089494942026 | erot = 10.7518360026573 | epot = -68.5094032805132 | etot = -48.4966723284356 +919000 ekin = 8.61736183467543 | erot = 10.8585966350572 | epot = -67.972630791696 | etot = -48.4966723219635 +920000 ekin = 7.96059242024647 | erot = 10.9667865216799 | epot = -67.4240512549228 | etot = -48.4966723129964 +921000 ekin = 7.4206286576543 | erot = 11.0831224393334 | epot = -67.0004234019305 | etot = -48.4966723049428 +922000 ekin = 7.11192603559909 | erot = 11.2138650623263 | epot = -66.8224633994494 | etot = -48.4966723015239 +923000 ekin = 7.08988023753988 | erot = 11.3600862497943 | epot = -66.9466387899774 | etot = -48.4966723026433 +924000 ekin = 7.33691450582434 | erot = 11.5138164853999 | epot = -67.3474033032 | etot = -48.4966723119758 +925000 ekin = 7.75066983511487 | erot = 11.6552585828514 | epot = -67.9026007399031 | etot = -48.4966723219369 +926000 ekin = 8.19653350658662 | erot = 11.7619530785651 | epot = -68.4551589164327 | etot = -48.496672331281 +927000 ekin = 8.5473832953966 | erot = 11.8134968308328 | epot = -68.8575524640472 | etot = -48.4966723378179 +928000 ekin = 8.71145227501004 | erot = 11.7955386634222 | epot = -69.0036632788644 | etot = -48.4966723404322 +929000 ekin = 8.64121811854591 | erot = 11.702544255502 | epot = -68.8404347137197 | etot = -48.4966723396718 +930000 ekin = 8.33447879193368 | erot = 11.5389737739268 | epot = -68.3701249009275 | etot = -48.496672335067 +931000 ekin = 7.84128687140244 | erot = 11.3199153617486 | epot = -67.6578745610736 | etot = -48.4966723279226 +932000 ekin = 7.2443670142799 | erot = 11.0677318793148 | epot = -66.808771213404 | etot = -48.4966723198093 +933000 ekin = 6.63984712932122 | erot = 10.8074687760213 | epot = -65.9439882176745 | etot = -48.496672312332 +934000 ekin = 6.11754592395223 | erot = 10.5621552886432 | epot = -65.1763735193377 | etot = -48.4966723067423 +935000 ekin = 5.74541764855203 | erot = 10.3493855126172 | epot = -64.5914754646948 | etot = -48.4966723035256 +936000 ekin = 5.56181701631155 | erot = 10.1798783920285 | epot = -64.2383677111586 | etot = -48.4966723028186 +937000 ekin = 5.57387639539475 | erot = 10.0571518051793 | epot = -64.1277005048255 | etot = -48.4966723042514 +938000 ekin = 5.7614045533047 | erot = 9.97823911841354 | epot = -64.2363159790546 | etot = -48.4966723073363 +939000 ekin = 6.08318987670676 | erot = 9.93455888295511 | epot = -64.5144210714548 | etot = -48.4966723117929 +940000 ekin = 6.48293884643638 | erot = 9.91175572449271 | epot = -64.8913668882283 | etot = -48.4966723172993 +941000 ekin = 6.89458666429997 | erot = 9.89006577405458 | epot = -65.2813247618071 | etot = -48.4966723234525 +942000 ekin = 7.24869443000576 | erot = 9.84545862012391 | epot = -65.5908253796515 | etot = -48.4966723295218 +943000 ekin = 7.48274007835893 | erot = 9.75224430360331 | epot = -65.7316567161226 | etot = -48.4966723341603 +944000 ekin = 7.55661078091013 | erot = 9.58809869991494 | epot = -65.641381816555 | etot = -48.4966723357299 +945000 ekin = 7.47011756072567 | erot = 9.34043579095589 | epot = -65.3072256847293 | etot = -48.4966723330477 +946000 ekin = 7.27386532071824 | erot = 9.01155536839416 | epot = -64.782093015413 | etot = -48.4966723263006 +947000 ekin = 7.06319369667098 | erot = 8.61969480927007 | epot = -64.1795608235161 | etot = -48.496672317575 +948000 ekin = 6.95249218732834 | erot = 8.19479075043074 | epot = -63.6439552471302 | etot = -48.4966723093711 +949000 ekin = 7.04165184443043 | erot = 7.77196767262919 | epot = -63.3102918214628 | etot = -48.4966723044031 +950000 ekin = 7.3839323473098 | erot = 7.38215863325284 | epot = -63.2627632841868 | etot = -48.4966723036241 +951000 ekin = 7.97686792741366 | erot = 7.04490011727208 | epot = -63.5184403509843 | etot = -48.4966723062986 +952000 ekin = 8.77198923720124 | erot = 6.76886819733595 | epot = -64.0375297458692 | etot = -48.496672311332 +953000 ekin = 9.68951090442199 | erot = 6.55318208634643 | epot = -64.7393653092249 | etot = -48.4966723184564 +954000 ekin = 10.6255451805906 | erot = 6.39139134564297 | epot = -65.5136088525567 | etot = -48.4966723263231 +955000 ekin = 11.4591959855917 | erot = 6.27379827880045 | epot = -66.229666598801 | etot = -48.4966723344089 +956000 ekin = 12.0705908794987 | erot = 6.18965544964755 | epot = -66.7569186705249 | etot = -48.4966723413786 +957000 ekin = 12.3578057603392 | erot = 6.13109120794758 | epot = -66.9855693135646 | etot = -48.4966723452778 +958000 ekin = 12.2639561674295 | erot = 6.09526075790591 | epot = -66.8558892696232 | etot = -48.4966723442878 +959000 ekin = 11.802893283239 | erot = 6.08530913129913 | epot = -66.3848747518536 | etot = -48.4966723373154 +960000 ekin = 11.0657748732924 | erot = 6.10961272567079 | epot = -65.6720599258864 | etot = -48.4966723269232 +961000 ekin = 10.1976851859566 | erot = 6.17940625999531 | epot = -64.8737637613061 | etot = -48.4966723153542 +962000 ekin = 9.36006055931576 | erot = 6.30576434365556 | epot = -64.1624972092091 | etot = -48.4966723062378 +963000 ekin = 8.68052625297112 | erot = 6.49616547099239 | epot = -63.6733640261434 | etot = -48.4966723021798 +964000 ekin = 8.21670813000526 | erot = 6.75219993704958 | epot = -63.465580370563 | etot = -48.4966723035081 +965000 ekin = 7.95112951706077 | erot = 7.06933978142984 | epot = -63.5171416068344 | etot = -48.4966723083438 +966000 ekin = 7.81882046103783 | erot = 7.43840285073269 | epot = -63.7538956254769 | etot = -48.4966723137064 +967000 ekin = 7.74912903354425 | erot = 7.84702228254975 | epot = -64.092823634688 | etot = -48.496672318594 +968000 ekin = 7.67539244952259 | erot = 8.28177833118711 | epot = -64.4538431025099 | etot = -48.4966723218002 +969000 ekin = 7.5599027296028 | erot = 8.72822682089149 | epot = -64.7848018740692 | etot = -48.496672323575 +970000 ekin = 7.38809514858103 | erot = 9.17062532943753 | epot = -65.0553928031058 | etot = -48.4966723250872 +971000 ekin = 7.15239239132996 | erot = 9.59185821972787 | epot = -65.2409229374848 | etot = -48.4966723264269 +972000 ekin = 6.85180496131552 | erot = 9.97461998800994 | epot = -65.323097276516 | etot = -48.4966723271905 +973000 ekin = 6.49404713432455 | erot = 10.3038859967015 | epot = -65.2946054577948 | etot = -48.4966723267688 +974000 ekin = 6.10144997624876 | erot = 10.5696876868507 | epot = -65.1678099874725 | etot = -48.496672324373 +975000 ekin = 5.7182786322542 | erot = 10.7680923498195 | epot = -64.9830433026848 | etot = -48.4966723206111 +976000 ekin = 5.40201312577677 | erot = 10.9003005405809 | epot = -64.7989859829902 | etot = -48.4966723166326 +977000 ekin = 5.20833588400939 | erot = 10.970821414979 | epot = -64.6758296130979 | etot = -48.4966723141095 +978000 ekin = 5.16924582148977 | erot = 10.9846732107755 | epot = -64.6505913465279 | etot = -48.4966723142626 +979000 ekin = 5.27779878029639 | erot = 10.9455170820599 | epot = -64.7199881790626 | etot = -48.4966723167063 +980000 ekin = 5.49322046279538 | erot = 10.8569988040239 | epot = -64.8468915865683 | etot = -48.496672319749 +981000 ekin = 5.76179864599626 | erot = 10.7265177182828 | epot = -64.9849886855903 | etot = -48.4966723213112 +982000 ekin = 6.04348590851364 | erot = 10.5685834926815 | epot = -65.1087417214787 | etot = -48.4966723202835 +983000 ekin = 6.32848466352866 | erot = 10.4050435744172 | epot = -65.2302005549221 | etot = -48.4966723169763 +984000 ekin = 6.63689937855259 | erot = 10.2617391985674 | epot = -65.3953108898229 | etot = -48.4966723127029 +985000 ekin = 7.00519512985904 | erot = 10.1634367406265 | epot = -65.6653041794901 | etot = -48.4966723090046 +986000 ekin = 7.46792965452936 | erot = 10.1293593693436 | epot = -66.0939613309812 | etot = -48.4966723071083 +987000 ekin = 8.04175238535552 | erot = 10.1705679686079 | epot = -66.7089926616745 | etot = -48.4966723077111 +988000 ekin = 8.71523237362382 | erot = 10.2892285282743 | epot = -67.5011332128746 | etot = -48.4966723109765 +989000 ekin = 9.44555554158073 | erot = 10.4792258286134 | epot = -68.4214536898669 | etot = -48.4966723196728 +990000 ekin = 10.1473148545584 | erot = 10.7224786969413 | epot = -69.3664658790832 | etot = -48.4966723275835 +991000 ekin = 10.7156853116756 | erot = 10.9958515472639 | epot = -70.2082091944914 | etot = -48.4966723355518 +992000 ekin = 11.0552138396445 | erot = 11.2781950369919 | epot = -70.8300812183321 | etot = -48.4966723416956 +993000 ekin = 11.0952058505263 | erot = 11.552085152753 | epot = -71.1439633474709 | etot = -48.4966723441916 +994000 ekin = 10.8115610941828 | erot = 11.8083197784902 | epot = -71.116553214722 | etot = -48.496672342049 +995000 ekin = 10.2380910479075 | erot = 12.0483835950987 | epot = -70.783146978687 | etot = -48.4966723356808 +996000 ekin = 9.46083678142998 | erot = 12.2834739173447 | epot = -70.2409830255863 | etot = -48.4966723268117 +997000 ekin = 8.59669860761854 | erot = 12.5302960394062 | epot = -69.6236669647526 | etot = -48.4966723177279 +998000 ekin = 7.76544234454825 | erot = 12.8061283044619 | epot = -69.068242959264 | etot = -48.4966723102538 +999000 ekin = 7.06575293322294 | erot = 13.1250004085097 | epot = -68.6874256472216 | etot = -48.496672305489 +1000000 ekin = 6.56133020088365 | erot = 13.4950386916226 | epot = -68.5530411962168 | etot = -48.4966723037105 + 1000000 244.5767 -69.23317 0.68012891 -61.991711 -0.012778323 39304000 +Loop time of 11.1904 on 1 procs for 1000000 steps with 10 atoms + +Performance: 131.719 ns/day, 0.182 hours/ns, 89362.622 timesteps/s, 893.626 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.9766 | 8.9766 | 8.9766 | 0.0 | 80.22 +Bond | 0.44821 | 0.44821 | 0.44821 | 0.0 | 4.01 +Neigh | 0.004031 | 0.004031 | 0.004031 | 0.0 | 0.04 +Comm | 0.24442 | 0.24442 | 0.24442 | 0.0 | 2.18 +Output | 0.11136 | 0.11136 | 0.11136 | 0.0 | 1.00 +Modify | 1.1158 | 1.1158 | 1.1158 | 0.0 | 9.97 +Other | | 0.29 | | | 2.59 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:11 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 new file mode 100644 index 0000000000..a2ae24af6b --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 7.03429942525144 | erot = 12.9873344362494 | epot = -68.5183064451292 | etot = -48.4966725836283 +Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 262.20685 -73.084271 4.565965 -61.484007 -0.0051810598 39304000 +1000 ekin = 6.47818551117441 | erot = 13.3026700489858 | epot = -68.2775281400721 | etot = -48.496672579912 +2000 ekin = 6.03525112997234 | erot = 13.6564943363021 | epot = -68.188418043353 | etot = -48.4966725770786 +3000 ekin = 5.75105017872917 | erot = 14.0429985067123 | epot = -68.2907212623775 | etot = -48.496672576936 +4000 ekin = 5.63745048823597 | erot = 14.4525304497378 | epot = -68.5866535170593 | etot = -48.4966725790856 +5000 ekin = 5.67539108471601 | erot = 14.8714892268938 | epot = -69.0435528945018 | etot = -48.4966725828919 +6000 ekin = 5.8225592408171 | erot = 15.2845343223522 | epot = -69.6037661502108 | etot = -48.4966725870414 +7000 ekin = 6.02949131445188 | erot = 15.6780321266847 | epot = -70.2041960313094 | etot = -48.4966725901728 +8000 ekin = 6.25690013504894 | erot = 16.0432406183867 | epot = -70.796813344898 | etot = -48.4966725914624 +9000 ekin = 6.48760823849336 | erot = 16.3777166841148 | epot = -71.3619975139176 | etot = -48.4966725913094 +10000 ekin = 6.72254611001785 | erot = 16.6826306715322 | epot = -71.9018493718511 | etot = -48.496672590301 +11000 ekin = 6.97475226170405 | erot = 16.9603738277431 | epot = -72.4317986787938 | etot = -48.4966725893467 +12000 ekin = 7.25960713990553 | erot = 17.2117069445192 | epot = -72.9679866735632 | etot = -48.4966725891385 +13000 ekin = 7.5861600155147 | erot = 17.4338437184064 | epot = -73.516676323912 | etot = -48.4966725899909 +14000 ekin = 7.95221337497286 | erot = 17.6199690400551 | epot = -74.0688550069349 | etot = -48.4966725919069 +15000 ekin = 8.34290179280029 | erot = 17.759930875729 | epot = -74.5995052633029 | etot = -48.4966725947736 +16000 ekin = 8.7308834779805 | erot = 17.8412839163866 | epot = -75.0688399931312 | etot = -48.4966725987642 +17000 ekin = 9.06872001929412 | erot = 17.8482053032197 | epot = -75.4135979249309 | etot = -48.4966726024171 +18000 ekin = 9.30863890671833 | erot = 17.7686584779306 | epot = -75.5739699900196 | etot = -48.4966726053707 +19000 ekin = 9.4112478564752 | erot = 17.5960512017225 | epot = -75.5039716652994 | etot = -48.4966726071017 +20000 ekin = 9.34910582886853 | erot = 17.3292516593877 | epot = -75.1750300954674 | etot = -48.4966726072111 +21000 ekin = 9.11266896891016 | erot = 16.9731252869536 | epot = -74.5824668613651 | etot = -48.4966726055014 +22000 ekin = 8.71397032422844 | erot = 16.5385032889637 | epot = -73.7491462151202 | etot = -48.496672601928 +23000 ekin = 8.18690962778313 | erot = 16.0421750929968 | epot = -72.725757317897 | etot = -48.496672597117 +24000 ekin = 7.58361736117564 | erot = 15.5032978232032 | epot = -71.5835877759392 | etot = -48.4966725915604 +25000 ekin = 6.9674099167493 | erot = 14.9419969554433 | epot = -70.4060794581733 | etot = -48.4966725859807 +26000 ekin = 6.40397973480545 | erot = 14.3775943404744 | epot = -69.2782466563088 | etot = -48.4966725810289 +27000 ekin = 5.95300264518483 | erot = 13.8269533988879 | epot = -68.2766286212081 | etot = -48.4966725771354 +28000 ekin = 5.66210674320084 | erot = 13.3035488276536 | epot = -67.462328145308 | etot = -48.4966725744535 +29000 ekin = 5.56416292853322 | erot = 12.8173046943283 | epot = -66.8781401957625 | etot = -48.496672572901 +30000 ekin = 5.67757091398745 | erot = 12.3750254271168 | epot = -66.5492689133851 | etot = -48.4966725722808 +31000 ekin = 6.0082318042294 | erot = 11.9813634428798 | epot = -66.4862678195157 | etot = -48.4966725724065 +32000 ekin = 6.55166468997952 | erot = 11.6395080908375 | epot = -66.6878453540153 | etot = -48.4966725731983 +33000 ekin = 7.29417473532557 | erot = 11.3509752571398 | epot = -67.1418225671851 | etot = -48.4966725747197 +34000 ekin = 8.21244588218725 | erot = 11.1161143134268 | epot = -67.8252327728433 | etot = -48.4966725772293 +35000 ekin = 9.27066798182032 | erot = 10.93382726426 | epot = -68.70116782734 | etot = -48.4966725812597 +36000 ekin = 10.4137127998441 | erot = 10.8011032352061 | epot = -69.711488622778 | etot = -48.4966725877277 +37000 ekin = 11.5574113355614 | erot = 10.7118774334058 | epot = -70.7659613658537 | etot = -48.4966725968865 +38000 ekin = 12.5862131120552 | erot = 10.6570487006394 | epot = -71.7399344196423 | etot = -48.4966726069477 +39000 ekin = 13.3756277697448 | erot = 10.6266661696594 | epot = -72.4989665531952 | etot = -48.496672613791 +40000 ekin = 13.8400144974726 | erot = 10.6149441040859 | epot = -72.9516312154831 | etot = -48.4966726139245 +41000 ekin = 13.9716515751527 | erot = 10.6251303228018 | epot = -73.0934545058123 | etot = -48.4966726078579 +42000 ekin = 13.8349966624045 | erot = 10.6693591526023 | epot = -73.0010284144746 | etot = -48.4966725994678 +43000 ekin = 13.4863179745805 | erot = 10.7627501491632 | epot = -72.7457409172272 | etot = -48.4966727934835 +44000 ekin = 12.8657064139247 | erot = 11.0065042177546 | epot = -72.3688833251111 | etot = -48.4966726934318 +45000 ekin = 12.4513480708381 | erot = 11.2623687140009 | epot = -72.2103894466183 | etot = -48.4966726617792 +46000 ekin = 11.8973058918019 | erot = 11.5369637549566 | epot = -71.9309423094144 | etot = -48.4966726626559 +47000 ekin = 11.3048691716615 | erot = 11.8534105202767 | epot = -71.6549523562343 | etot = -48.4966726642961 +48000 ekin = 10.6681247163132 | erot = 12.1927455857895 | epot = -71.3575429678095 | etot = -48.4966726657067 +49000 ekin = 9.98781452095656 | erot = 12.5337626830789 | epot = -71.0182498702018 | etot = -48.4966726661663 +50000 ekin = 9.27805060546915 | erot = 12.8568502175182 | epot = -70.6315734882951 | etot = -48.4966726653077 +51000 ekin = 8.56816305052028 | erot = 13.1473275670357 | epot = -70.212163280745 | etot = -48.496672663189 +52000 ekin = 7.89968625326438 | erot = 13.3972664509227 | epot = -69.793625364465 | etot = -48.4966726602779 +53000 ekin = 7.31936805861704 | erot = 13.6052883011235 | epot = -69.4213290170347 | etot = -48.4966726572941 +54000 ekin = 6.87026435043475 | erot = 13.7746656104186 | epot = -69.1416026158051 | etot = -48.4966726549518 +55000 ekin = 6.58358833130218 | erot = 13.9106626376473 | epot = -68.9909236227061 | etot = -48.4966726537567 +56000 ekin = 6.47340776924363 | erot = 14.0180895137408 | epot = -68.9881699369064 | etot = -48.496672653922 +57000 ekin = 6.5349018939822 | erot = 14.0996443244831 | epot = -69.1312188738681 | etot = -48.4966726554028 +58000 ekin = 6.74582948881821 | erot = 14.1551416501596 | epot = -69.3976437968824 | etot = -48.4966726579046 +59000 ekin = 7.07026744299479 | erot = 14.1814435236754 | epot = -69.7483836278278 | etot = -48.4966726611576 +60000 ekin = 7.46321119956124 | erot = 14.1729605115931 | epot = -70.1328443758889 | etot = -48.4966726647345 +61000 ekin = 7.87615620947672 | erot = 14.1225980724399 | epot = -70.4954269501755 | etot = -48.4966726682588 +62000 ekin = 8.26246819545997 | erot = 14.0231891838103 | epot = -70.7823300503894 | etot = -48.4966726711191 +63000 ekin = 8.58419585421983 | erot = 13.8690469944675 | epot = -70.9499155215206 | etot = -48.4966726728333 +64000 ekin = 8.81822702695991 | erot = 13.6575496044141 | epot = -70.9724493044953 | etot = -48.4966726731213 +65000 ekin = 8.95905321200092 | erot = 13.3902699399855 | epot = -70.8459958240507 | etot = -48.4966726720642 +66000 ekin = 9.01708021240235 | erot = 13.073150449433 | epot = -70.5869033319405 | etot = -48.4966726701052 +67000 ekin = 9.01264024181533 | erot = 12.7157756705991 | epot = -70.2250885803061 | etot = -48.4966726678916 +68000 ekin = 8.96786592552677 | erot = 12.3300108275772 | epot = -69.7945494191638 | etot = -48.4966726660598 +69000 ekin = 8.89809230228937 | erot = 11.9282539830634 | epot = -69.3230189502575 | etot = -48.4966726649048 +70000 ekin = 8.80855518919879 | erot = 11.5224663142646 | epot = -68.8276941678881 | etot = -48.4966726644248 +71000 ekin = 8.69498380037548 | erot = 11.1237231983041 | epot = -68.3153796630104 | etot = -48.4966726643308 +72000 ekin = 8.54784464636869 | erot = 10.74237943467 | epot = -67.7868967452231 | etot = -48.4966726641844 +73000 ekin = 8.35855300081186 | erot = 10.3885820115981 | epot = -67.2438076759784 | etot = -48.4966726635684 +74000 ekin = 8.12576446604128 | erot = 10.0727225309052 | epot = -66.6951596591059 | etot = -48.4966726621593 +75000 ekin = 7.85890437579262 | erot = 9.80548509842791 | epot = -66.1610621343386 | etot = -48.4966726601181 +76000 ekin = 7.57852165402649 | erot = 9.597270815368 | epot = -65.6724651268096 | etot = -48.4966726574151 +77000 ekin = 7.31582042129685 | erot = 9.45739858079208 | epot = -65.2698916571085 | etot = -48.4966726550196 +78000 ekin = 7.10323229833916 | erot = 9.3917307433686 | epot = -64.9916356947845 | etot = -48.4966726530768 +79000 ekin = 6.9693721805436 | erot = 9.40218099613615 | epot = -64.8682258285396 | etot = -48.4966726518598 +80000 ekin = 6.93674566763362 | erot = 9.48623430706729 | epot = -64.9196526261965 | etot = -48.4966726514956 +81000 ekin = 7.01925680666671 | erot = 9.63726327568322 | epot = -65.1531927343328 | etot = -48.4966726519829 +82000 ekin = 7.22081712459685 | erot = 9.84564997752258 | epot = -65.5631397554092 | etot = -48.4966726532898 +83000 ekin = 7.53417765386279 | erot = 10.1003599019663 | epot = -66.1312102111943 | etot = -48.4966726553652 +84000 ekin = 7.940290589344 | erot = 10.3905229584646 | epot = -66.8274862058405 | etot = -48.4966726580318 +85000 ekin = 8.40988507522461 | erot = 10.7066512628598 | epot = -67.6132089989631 | etot = -48.4966726608787 +86000 ekin = 8.90877838664784 | erot = 11.0413122902599 | epot = -68.4467633402374 | etot = -48.4966726633297 +87000 ekin = 9.40446727184843 | erot = 11.389212342317 | epot = -69.2903522795771 | etot = -48.4966726654117 +88000 ekin = 9.8664138653362 | erot = 11.7464698262625 | epot = -70.109556357925 | etot = -48.4966726663263 +89000 ekin = 10.2794449749729 | erot = 12.1093351833934 | epot = -70.8854528250632 | etot = -48.496672666697 +90000 ekin = 10.644881863298 | erot = 12.4712192860778 | epot = -71.6127738155153 | etot = -48.4966726661396 +91000 ekin = 10.959237823698 | erot = 12.8213713070339 | epot = -72.2772817984363 | etot = -48.4966726677043 +92000 ekin = 11.1805024607923 | erot = 13.1782323505892 | epot = -72.8554074847635 | etot = -48.4966726733821 +93000 ekin = 11.3486717558855 | erot = 13.488666272359 | epot = -73.3340106985069 | etot = -48.4966726702624 +94000 ekin = 11.4194570018441 | erot = 13.7677249757344 | epot = -73.6838546479548 | etot = -48.4966726703763 +95000 ekin = 11.3899765892415 | erot = 14.0119097397859 | epot = -73.8985589999749 | etot = -48.4966726709475 +96000 ekin = 11.2605951113246 | erot = 14.2148286413578 | epot = -73.972096422542 | etot = -48.4966726698596 +97000 ekin = 11.0445904714311 | erot = 14.3764700204589 | epot = -73.9177331597961 | etot = -48.496672667906 +98000 ekin = 10.7660933774849 | erot = 14.4993108341515 | epot = -73.7620768770615 | etot = -48.4966726654252 +99000 ekin = 10.4555155361554 | erot = 14.5876138558175 | epot = -73.5398020548143 | etot = -48.4966726628415 +100000 ekin = 10.0974774598987 | erot = 14.6249949423906 | epot = -73.2191455720071 | etot = -48.4966731697177 +101000 ekin = 10.0415631096137 | erot = 14.0961872066541 | epot = -72.6344231724507 | etot = -48.4966728561828 +102000 ekin = 10.2892855713202 | erot = 14.012187510498 | epot = -72.7981457142972 | etot = -48.4966726324791 +103000 ekin = 10.030926337016 | erot = 14.0335683972792 | epot = -72.5611673660203 | etot = -48.4966726317251 +104000 ekin = 9.79194699005209 | erot = 14.0507619049247 | epot = -72.3393815271541 | etot = -48.4966726321773 +105000 ekin = 9.56928640949136 | erot = 14.0644676494027 | epot = -72.1304266917122 | etot = -48.4966726328182 +106000 ekin = 9.35843270941694 | erot = 14.0738948863194 | epot = -71.9290002289413 | etot = -48.4966726332049 +107000 ekin = 9.15960205394257 | erot = 14.0781570096048 | epot = -71.7344316966933 | etot = -48.496672633146 +108000 ekin = 8.98058598862051 | erot = 14.0757573495376 | epot = -71.5530159707945 | etot = -48.4966726326364 +109000 ekin = 8.83500010163843 | erot = 14.0641942059689 | epot = -71.3958669399389 | etot = -48.4966726323315 +110000 ekin = 8.73407156167122 | erot = 14.0396159238041 | epot = -71.2703601184354 | etot = -48.49667263296 +111000 ekin = 8.67544983167207 | erot = 13.9967358275336 | epot = -71.1688582943783 | etot = -48.4966726351726 +112000 ekin = 8.6350044076198 | erot = 13.9293053313403 | epot = -71.0609823775569 | etot = -48.4966726385968 +113000 ekin = 8.5704259257829 | erot = 13.8317248404421 | epot = -70.898823408096 | etot = -48.496672641871 +114000 ekin = 8.43989096913563 | erot = 13.7008372464532 | epot = -70.6374008585741 | etot = -48.4966726429852 +115000 ekin = 8.22527688481172 | erot = 13.5374589941368 | epot = -70.259408517006 | etot = -48.4966726380575 +116000 ekin = 7.96055882645664 | erot = 13.3455331437012 | epot = -69.8027646054373 | etot = -48.4966726352795 +117000 ekin = 7.68480617458401 | erot = 13.1328848481121 | epot = -69.3143636549154 | etot = -48.4966726322193 +118000 ekin = 7.42978537710071 | erot = 12.9094282247797 | epot = -68.8358862320104 | etot = -48.4966726301299 +119000 ekin = 7.2137363939324 | erot = 12.6851208042373 | epot = -68.3955298273834 | etot = -48.4966726292136 +120000 ekin = 7.03803293636671 | erot = 12.4697797263412 | epot = -68.0044852916952 | etot = -48.4966726289873 +121000 ekin = 6.8936709264401 | erot = 12.272894951256 | epot = -67.6632385066892 | etot = -48.4966726289932 +122000 ekin = 6.76879687257042 | erot = 12.1027214693544 | epot = -67.3681909710515 | etot = -48.4966726291267 +123000 ekin = 6.6521040717835 | erot = 11.9648592015111 | epot = -67.1136359029295 | etot = -48.4966726296349 +124000 ekin = 6.53115267708844 | erot = 11.8616861164462 | epot = -66.8895114237899 | etot = -48.4966726302553 +125000 ekin = 6.39605544212482 | erot = 11.7907254418549 | epot = -66.6834535155165 | etot = -48.4966726315368 +126000 ekin = 6.23766494395132 | erot = 11.7440508510366 | epot = -66.4783884275686 | etot = -48.4966726325807 +127000 ekin = 6.04911470795132 | erot = 11.711163525569 | epot = -66.2569508666246 | etot = -48.4966726331043 +128000 ekin = 5.83208869215098 | erot = 11.682213880146 | epot = -66.0109752050972 | etot = -48.4966726328002 +129000 ekin = 5.59955533756658 | erot = 11.6485505375886 | epot = -65.7447785065467 | etot = -48.4966726313915 +130000 ekin = 5.37616547346342 | erot = 11.6055192857393 | epot = -65.4783573884614 | etot = -48.4966726292587 +131000 ekin = 5.19621347260189 | erot = 11.5523382042858 | epot = -65.2452243036203 | etot = -48.4966726267326 +132000 ekin = 5.09512855427621 | erot = 11.4915853273382 | epot = -65.0833865066928 | etot = -48.4966726250784 +133000 ekin = 5.09593793196195 | erot = 11.4254654000436 | epot = -65.0180759559376 | etot = -48.4966726239321 +134000 ekin = 5.21315400669044 | erot = 11.3572216289393 | epot = -65.0670482589978 | etot = -48.4966726233681 +135000 ekin = 5.45274887458444 | erot = 11.2905481952009 | epot = -65.2399696930873 | etot = -48.4966726233019 +136000 ekin = 5.81359277202082 | erot = 11.2291159416501 | epot = -65.5393813373533 | etot = -48.4966726236824 +137000 ekin = 6.28595091476304 | erot = 11.1752215008227 | epot = -65.9578450445987 | etot = -48.496672629013 +138000 ekin = 6.83489595318816 | erot = 11.123880412668 | epot = -66.4554489962854 | etot = -48.4966726304292 +139000 ekin = 7.43298982213957 | erot = 11.0759557714594 | epot = -67.0056182256037 | etot = -48.4966726320047 +140000 ekin = 8.05423567523354 | erot = 11.0338915539243 | epot = -67.584799863096 | etot = -48.4966726339382 +141000 ekin = 8.66814450976643 | erot = 10.9995435661271 | epot = -68.1643607123582 | etot = -48.4966726364646 +142000 ekin = 9.23299211625417 | erot = 10.9739956101673 | epot = -68.7036603674048 | etot = -48.4966726409833 +143000 ekin = 9.69542810759758 | erot = 10.9568256540412 | epot = -69.148926406631 | etot = -48.4966726449922 +144000 ekin = 10.0035712730501 | erot = 10.9455251640244 | epot = -69.4457690858196 | etot = -48.4966726487451 +145000 ekin = 10.1140173167571 | erot = 10.9367967497628 | epot = -69.5474867174164 | etot = -48.4966726508964 +146000 ekin = 10.010255193474 | erot = 10.9282120719387 | epot = -69.4351399151878 | etot = -48.4966726497751 +147000 ekin = 9.72372844852437 | erot = 10.9204908015157 | epot = -69.1408918942985 | etot = -48.4966726442584 +148000 ekin = 9.34553092121529 | erot = 10.9194622742203 | epot = -68.7616658304598 | etot = -48.4966726350242 +149000 ekin = 9.01308307721587 | erot = 10.9361646162974 | epot = -68.4459203187324 | etot = -48.4966726252192 +150000 ekin = 8.865564916199 | erot = 10.9838242848979 | epot = -68.3460618203819 | etot = -48.496672619285 +151000 ekin = 8.98562593113232 | erot = 11.0721207188499 | epot = -68.5544192701777 | etot = -48.4966726201955 +152000 ekin = 9.36317382414728 | erot = 11.2013283048009 | epot = -69.0611747563319 | etot = -48.4966726273838 +153000 ekin = 9.90592399926709 | erot = 11.3597169983851 | epot = -69.762313634926 | etot = -48.4966726372738 +154000 ekin = 10.4876718007884 | erot = 11.5259908274829 | epot = -70.5103352740072 | etot = -48.4966726457359 +155000 ekin = 11.0014546611185 | erot = 11.6755859722271 | epot = -71.1737132837587 | etot = -48.4966726504131 +156000 ekin = 11.3882148349958 | erot = 11.7874454844493 | epot = -71.6723329709515 | etot = -48.4966726515063 +157000 ekin = 11.6329719121599 | erot = 11.8481298115872 | epot = -71.9777743743921 | etot = -48.496672650645 +158000 ekin = 11.743699781619 | erot = 11.852602482575 | epot = -72.0929749132267 | etot = -48.4966726490327 +159000 ekin = 11.7357219121817 | erot = 11.8034015633403 | epot = -72.035796122213 | etot = -48.4966726466911 +160000 ekin = 11.6305552644523 | erot = 11.7096700273735 | epot = -71.8368979351533 | etot = -48.4966726433274 +161000 ekin = 11.4596686193139 | erot = 11.5857134121787 | epot = -71.5420546707695 | etot = -48.496672639277 +162000 ekin = 11.2620233891936 | erot = 11.448373844929 | epot = -71.2070698695242 | etot = -48.4966726354016 +163000 ekin = 11.0755659765656 | erot = 11.3138001976418 | epot = -70.8860388066474 | etot = -48.49667263244 +164000 ekin = 10.9292960811459 | erot = 11.1949564931563 | epot = -70.6209252049759 | etot = -48.4966726306737 +165000 ekin = 10.8401906864875 | erot = 11.1006151382457 | epot = -70.4374784546595 | etot = -48.4966726299263 +166000 ekin = 10.8146651780986 | erot = 11.035675846272 | epot = -70.3470136542456 | etot = -48.496672629875 +167000 ekin = 10.8520567567864 | erot = 11.0022539306528 | epot = -70.3509833175924 | etot = -48.4966726301532 +168000 ekin = 10.9484894336274 | erot = 11.0010183041617 | epot = -70.4461803682569 | etot = -48.4966726304677 +169000 ekin = 11.0998937027386 | erot = 11.0324366339792 | epot = -70.6290029673671 | etot = -48.4966726306493 +170000 ekin = 11.303483973301 | erot = 11.0977053912599 | epot = -70.8978619952531 | etot = -48.4966726306922 +171000 ekin = 11.5572307267885 | erot = 11.1992212781623 | epot = -71.2531246357255 | etot = -48.4966726307747 +172000 ekin = 11.8571464638408 | erot = 11.340530780689 | epot = -71.6943498757676 | etot = -48.4966726312377 +173000 ekin = 12.1927097200976 | erot = 11.5257889190942 | epot = -72.2151712717163 | etot = -48.4966726325245 +174000 ekin = 12.5417902291443 | erot = 11.758840169329 | epot = -72.7973030335596 | etot = -48.4966726350863 +175000 ekin = 12.8647095032793 | erot = 12.0421936377307 | epot = -73.4035757801782 | etot = -48.4966726391682 +176000 ekin = 13.1024197132925 | erot = 12.3759769580596 | epot = -73.9750693159967 | etot = -48.4966726446446 +177000 ekin = 13.190718096856 | erot = 12.7566551418151 | epot = -74.4440458869535 | etot = -48.4966726482824 +178000 ekin = 13.05264922196 | erot = 13.1773711164485 | epot = -74.7266929933934 | etot = -48.4966726549849 +179000 ekin = 12.2089794588745 | erot = 13.5830164197223 | epot = -74.2886682061569 | etot = -48.4966723275601 +180000 ekin = 11.9004068675239 | erot = 14.0870661177297 | epot = -74.4841455891972 | etot = -48.4966726039435 +181000 ekin = 10.8654768903692 | erot = 14.5861339869459 | epot = -73.9482834733432 | etot = -48.4966725960281 +182000 ekin = 9.66028270695138 | erot = 15.1104289206579 | epot = -73.2673842110059 | etot = -48.4966725833966 +183000 ekin = 8.48066280387605 | erot = 15.6673690821393 | epot = -72.6447044561308 | etot = -48.4966725701155 +184000 ekin = 7.52630413851929 | erot = 16.2665624203507 | epot = -72.2895391199349 | etot = -48.4966725610649 +185000 ekin = 6.93646433276123 | erot = 16.9124293952412 | epot = -72.3455662872057 | etot = -48.4966725592033 +186000 ekin = 6.75402182356136 | erot = 17.5959531882619 | epot = -72.8466475760996 | etot = -48.4966725642764 +187000 ekin = 6.93176584306106 | erot = 18.2901076459546 | epot = -73.7185460628698 | etot = -48.4966725738541 +188000 ekin = 7.36496175936816 | erot = 18.9517169220489 | epot = -74.8133512665733 | etot = -48.4966725851563 +189000 ekin = 7.92587452891987 | erot = 19.5289159490217 | epot = -75.9514630739328 | etot = -48.4966725959912 +190000 ekin = 8.48887345555899 | erot = 19.9711008208249 | epot = -76.9566468811629 | etot = -48.4966726047791 +191000 ekin = 8.94279744307637 | erot = 20.2387056809853 | epot = -77.6781757356946 | etot = -48.4966726116329 +192000 ekin = 9.20220030816187 | erot = 20.3101038067633 | epot = -78.0089767286117 | etot = -48.4966726136866 +193000 ekin = 9.22639739330518 | erot = 20.1841068563623 | epot = -77.9071768610927 | etot = -48.4966726114252 +194000 ekin = 9.02106352746558 | erot = 19.879840012452 | epot = -77.3975761450875 | etot = -48.4966726051699 +195000 ekin = 8.63698690390024 | erot = 19.4322506720419 | epot = -76.5659101722172 | etot = -48.4966725962751 +196000 ekin = 8.15745599944877 | erot = 18.8847381250292 | epot = -75.5388667111713 | etot = -48.4966725866933 +197000 ekin = 7.6777584189192 | erot = 18.2815207246711 | epot = -74.4559517216657 | etot = -48.4966725780754 +198000 ekin = 7.28589102711843 | erot = 17.6623826120232 | epot = -73.4449462104515 | etot = -48.4966725713098 +199000 ekin = 7.05017610428617 | erot = 17.0606063919737 | epot = -72.6074550629725 | etot = -48.4966725667126 +200000 ekin = 7.01285264528771 | erot = 16.5030180881871 | epot = -72.0125432979054 | etot = -48.4966725644306 +201000 ekin = 7.18628302948149 | erot = 16.0106066265263 | epot = -71.6935622206016 | etot = -48.4966725645938 +202000 ekin = 7.55028085659507 | erot = 15.5985035867492 | epot = -71.6454570106341 | etot = -48.4966725672899 +203000 ekin = 8.05261783917546 | erot = 15.2753610695144 | epot = -71.8246514807947 | etot = -48.4966725721048 +204000 ekin = 8.61587119719168 | erot = 15.0430481939185 | epot = -72.1555919691966 | etot = -48.4966725780864 +205000 ekin = 9.15150139881355 | erot = 14.8972623538548 | epot = -72.5454363365197 | etot = -48.4966725838514 +206000 ekin = 9.57853091802685 | erot = 14.8296218061963 | epot = -72.904825312253 | etot = -48.4966725880299 +207000 ekin = 9.84110469117133 | erot = 14.8306579376118 | epot = -73.1684352185348 | etot = -48.4966725897516 +208000 ekin = 9.91915380070236 | erot = 14.8924578832506 | epot = -73.3082842728947 | etot = -48.4966725889417 +209000 ekin = 9.82907930165538 | erot = 15.009695181568 | epot = -73.335447069535 | etot = -48.4966725863117 +210000 ekin = 9.61485280029918 | erot = 15.1785174137095 | epot = -73.2900427971273 | etot = -48.4966725831186 +211000 ekin = 9.33255453637681 | erot = 15.3937274488317 | epot = -73.2229545659769 | etot = -48.4966725807684 +212000 ekin = 9.03298062727245 | erot = 15.645385712317 | epot = -73.1750389199433 | etot = -48.4966725803539 +213000 ekin = 8.74801774645706 | erot = 15.9162328155355 | epot = -73.160923144197 | etot = -48.4966725822045 +214000 ekin = 8.48645509186844 | erot = 16.181037260622 | epot = -73.1641649379154 | etot = -48.4966725854249 +215000 ekin = 8.24361394372388 | erot = 16.4085443498284 | epot = -73.1488308822362 | etot = -48.4966725886839 +216000 ekin = 8.01644140640109 | erot = 16.567190486037 | epot = -73.080304482111 | etot = -48.4966725896729 +217000 ekin = 7.82443857147227 | erot = 16.6321169295439 | epot = -72.9532280885845 | etot = -48.4966725875684 +218000 ekin = 7.71607328585115 | erot = 16.5899557796661 | epot = -72.8027016494467 | etot = -48.4966725839295 +219000 ekin = 7.75310717264871 | erot = 16.4350572743126 | epot = -72.6848370278581 | etot = -48.4966725808969 +220000 ekin = 7.98143888037879 | erot = 16.1675107350278 | epot = -72.6456221958543 | etot = -48.4966725804477 +221000 ekin = 8.40773648375345 | erot = 15.7897008204062 | epot = -72.6941098869361 | etot = -48.4966725827765 +222000 ekin = 8.99748090378716 | erot = 15.3051579237926 | epot = -72.7993114139564 | etot = -48.4966725863767 +223000 ekin = 9.69291742679692 | erot = 14.7208372414052 | epot = -72.9104272575021 | etot = -48.4966725893 +224000 ekin = 10.4359945859782 | erot = 14.0505863380194 | epot = -72.9832535144518 | etot = -48.4966725904542 +225000 ekin = 11.1813440324308 | erot = 13.3180094413787 | epot = -72.996026064094 | etot = -48.4966725902845 +226000 ekin = 11.8899174093651 | erot = 12.5555741904319 | epot = -72.9421641905593 | etot = -48.4966725907622 +227000 ekin = 12.5083401208548 | erot = 11.7991557925081 | epot = -72.8041685069196 | etot = -48.4966725935567 +228000 ekin = 12.9540489024056 | erot = 11.0813711809714 | epot = -72.5320926818165 | etot = -48.4966725984396 +229000 ekin = 13.1250482768505 | erot = 10.4265507754497 | epot = -72.0482716553169 | etot = -48.4966726030167 +230000 ekin = 12.9354776786789 | erot = 9.84937329189316 | epot = -71.2815235748201 | etot = -48.496672604248 +231000 ekin = 12.3571979238697 | erot = 9.35664487116824 | epot = -70.2105153953948 | etot = -48.4966726003569 +232000 ekin = 11.441378635533 | erot = 8.95013763084956 | epot = -68.8881888585135 | etot = -48.4966725921309 +233000 ekin = 10.306860836762 | erot = 8.62874527756515 | epot = -67.4322786963308 | etot = -48.4966725820036 +234000 ekin = 9.10484994367511 | erot = 8.38947611811251 | epot = -65.9909986342493 | etot = -48.4966725724617 +235000 ekin = 7.97762335600863 | erot = 8.2279605743492 | epot = -64.7022564960577 | etot = -48.4966725656998 +236000 ekin = 7.0304183366733 | erot = 8.14060898682625 | epot = -63.6676998849092 | etot = -48.4966725614097 +237000 ekin = 6.3323277859341 | erot = 8.12400287134693 | epot = -62.9530032163567 | etot = -48.4966725590757 +238000 ekin = 5.92140822285225 | erot = 8.17513077744184 | epot = -62.5932115585199 | etot = -48.4966725582258 +239000 ekin = 5.81123122340632 | erot = 8.29054157425132 | epot = -62.5984453565715 | etot = -48.4966725589139 +240000 ekin = 5.99217826069117 | erot = 8.4648979936537 | epot = -62.9537488157034 | etot = -48.4966725613585 +241000 ekin = 6.43109156575349 | erot = 8.68961368249095 | epot = -63.6173778141204 | etot = -48.4966725658759 +242000 ekin = 7.06756407119338 | erot = 8.95153614482818 | epot = -64.5157727888128 | etot = -48.4966725727912 +243000 ekin = 7.81639319361071 | erot = 9.23207829014713 | epot = -65.5451440641925 | etot = -48.4966725804347 +244000 ekin = 8.58044212002104 | erot = 9.50948701565513 | epot = -66.5866017229663 | etot = -48.4966725872901 +245000 ekin = 9.26871916861867 | erot = 9.75990826682941 | epot = -67.5253000301858 | etot = -48.4966725947377 +246000 ekin = 9.78946573666749 | erot = 9.96525866121197 | epot = -68.2513969980116 | etot = -48.4966726001321 +247000 ekin = 10.0743388396476 | erot = 10.1147521472294 | epot = -68.6857635892695 | etot = -48.4966726023925 +248000 ekin = 10.0941079494609 | erot = 10.2065328815033 | epot = -68.7973134320029 | etot = -48.4966726010388 +249000 ekin = 9.86393967731197 | erot = 10.2475258665404 | epot = -68.6081381410575 | etot = -48.4966725972051 +250000 ekin = 9.43636984426512 | erot = 10.2506637078824 | epot = -68.1837061428591 | etot = -48.4966725907116 +251000 ekin = 8.89229868578636 | erot = 10.232334609138 | epot = -67.6213058787997 | etot = -48.4966725838753 +252000 ekin = 8.31943898663656 | erot = 10.2075884963066 | epot = -67.0237000610926 | etot = -48.4966725781494 +253000 ekin = 7.79276077495193 | erot = 10.1873587545281 | epot = -66.4767921038599 | etot = -48.4966725743798 +254000 ekin = 7.36152147186344 | erot = 10.1778229232089 | epot = -66.0360169681652 | etot = -48.4966725730929 +255000 ekin = 7.04416809512428 | erot = 10.181248194185 | epot = -65.7220888627672 | etot = -48.4966725734579 +256000 ekin = 6.83530017399278 | erot = 10.1962922388045 | epot = -65.5282649876823 | etot = -48.496672574885 +257000 ekin = 6.71442148099541 | erot = 10.2200504443756 | epot = -65.4311445018447 | etot = -48.4966725764737 +258000 ekin = 6.65781764563524 | erot = 10.2492124175324 | epot = -65.4037026408317 | etot = -48.4966725776641 +259000 ekin = 6.64642051201687 | erot = 10.2806008774797 | epot = -65.4236939679375 | etot = -48.4966725784409 +260000 ekin = 6.66675395816299 | erot = 10.3110375472883 | epot = -65.4744640845755 | etot = -48.4966725791242 +261000 ekin = 6.70841492604686 | erot = 10.337872125544 | epot = -65.5429596307914 | etot = -48.4966725792006 +262000 ekin = 6.7627561946648 | erot = 10.3595239082592 | epot = -65.618952682721 | etot = -48.496672579797 +263000 ekin = 6.82191301036426 | erot = 10.3716898912795 | epot = -65.690275481472 | etot = -48.4966725798283 +264000 ekin = 6.88504914962626 | erot = 10.3708999773069 | epot = -65.7526217059619 | etot = -48.4966725790287 +265000 ekin = 6.960898286708 | erot = 10.3558192629975 | epot = -65.8133901272671 | etot = -48.4966725775615 +266000 ekin = 7.06529185645044 | erot = 10.3276065183191 | epot = -65.8895709506868 | etot = -48.4966725759173 +267000 ekin = 7.21505088334997 | erot = 10.2893497391616 | epot = -66.0010731971453 | etot = -48.4966725746338 +268000 ekin = 7.42137725346334 | erot = 10.2450818723159 | epot = -66.1631316998746 | etot = -48.4966725740954 +269000 ekin = 7.68524329715843 | erot = 10.1988935008372 | epot = -66.3808093724379 | etot = -48.4966725744423 +270000 ekin = 7.99580948969528 | erot = 10.154449265304 | epot = -66.6469313305823 | etot = -48.496672575583 +271000 ekin = 8.3319048512179 | erot = 10.1151435011367 | epot = -66.9437209293965 | etot = -48.4966725770419 +272000 ekin = 8.66610587594003 | erot = 10.0856409418549 | epot = -67.2484193966209 | etot = -48.4966725788259 +273000 ekin = 8.97042145762764 | erot = 10.0690324252393 | epot = -67.536126463092 | etot = -48.4966725802251 +274000 ekin = 9.22287683295388 | erot = 10.0690361391239 | epot = -67.788585552836 | etot = -48.4966725807582 +275000 ekin = 9.41389302944299 | erot = 10.0906946031174 | epot = -68.0012602127847 | etot = -48.4966725802242 +276000 ekin = 9.54942761495552 | erot = 10.1400083113636 | epot = -68.1861085051145 | etot = -48.4966725787954 +277000 ekin = 9.64913594524363 | erot = 10.2229042121193 | epot = -68.3687127344001 | etot = -48.4966725770371 +278000 ekin = 9.73935192458056 | erot = 10.3435700154574 | epot = -68.5795945157817 | etot = -48.4966725757437 +279000 ekin = 9.84298152732214 | erot = 10.5026140404983 | epot = -68.8422681434335 | etot = -48.496672575613 +280000 ekin = 9.97046187703876 | erot = 10.6957212898499 | epot = -69.1628557437704 | etot = -48.4966725768818 +281000 ekin = 10.1137684706567 | erot = 10.9135096018649 | epot = -69.5239506554729 | etot = -48.4966725829514 +282000 ekin = 10.2288689015359 | erot = 11.142271992086 | epot = -69.8678134801518 | etot = -48.4966725865298 +283000 ekin = 10.2769463821851 | erot = 11.3646568092211 | epot = -70.1382757810248 | etot = -48.4966725896187 +284000 ekin = 10.2298350175167 | erot = 11.5634949517874 | epot = -70.290002560938 | etot = -48.496672591634 +285000 ekin = 10.0723248849016 | erot = 11.7243250964783 | epot = -70.2933225737757 | etot = -48.4966725923958 +286000 ekin = 9.80394054069748 | erot = 11.8369977519972 | epot = -70.137610884751 | etot = -48.4966725920563 +287000 ekin = 9.43655233181395 | erot = 11.8964493797703 | epot = -69.8296743025074 | etot = -48.4966725909231 +288000 ekin = 8.99013271753932 | erot = 11.9027405791585 | epot = -69.3895458860148 | etot = -48.4966725893169 +289000 ekin = 8.48857673810637 | erot = 11.860522637167 | epot = -68.8457719627796 | etot = -48.4966725875062 +290000 ekin = 7.95651311705559 | erot = 11.7780720781063 | epot = -68.2312577808377 | etot = -48.4966725856758 +291000 ekin = 7.41785902588673 | erot = 11.6660397038494 | epot = -67.5805713135416 | etot = -48.4966725838055 +292000 ekin = 6.89736764547106 | erot = 11.5361414718397 | epot = -66.9301816989046 | etot = -48.4966725815939 +293000 ekin = 6.42572947191051 | erot = 11.4000701849624 | epot = -66.322472235463 | etot = -48.4966725785901 +294000 ekin = 6.04578762670029 | erot = 11.268773141137 | epot = -65.811233342478 | etot = -48.4966725746408 +295000 ekin = 5.81372000921063 | erot = 11.1519540391863 | epot = -65.4623466187971 | etot = -48.4966725704001 +296000 ekin = 5.78868895653423 | erot = 11.0574288852487 | epot = -65.3427904091971 | etot = -48.4966725674142 +297000 ekin = 6.01086247217247 | erot = 10.9900621222574 | epot = -65.4975971618444 | etot = -48.4966725674145 +298000 ekin = 6.47793511118133 | erot = 10.9505151838958 | epot = -65.9251228662866 | etot = -48.4966725712095 +299000 ekin = 7.13485226401429 | erot = 10.9343849130194 | epot = -66.5659097551344 | etot = -48.4966725781007 +300000 ekin = 7.88433986357019 | erot = 10.9323127586099 | epot = -67.3133252084237 | etot = -48.4966725862436 +301000 ekin = 8.61282845355444 | erot = 10.9313732714822 | epot = -68.0408743185901 | etot = -48.4966725935534 +302000 ekin = 9.219084402774 | erot = 10.9175582659957 | epot = -68.6333152672212 | etot = -48.4966725984515 +303000 ekin = 9.63516616614934 | erot = 10.8787665670547 | epot = -69.0106053334088 | etot = -48.4966726002047 +304000 ekin = 9.83543476976498 | erot = 10.8074962358075 | epot = -69.1396036043513 | etot = -48.4966725987789 +305000 ekin = 9.83532020705529 | erot = 10.7023193346032 | epot = -69.034312136557 | etot = -48.4966725948985 +306000 ekin = 9.6814509355921 | erot = 10.5677982811905 | epot = -68.7459218064291 | etot = -48.4966725896465 +307000 ekin = 9.43697927068364 | erot = 10.412994542271 | epot = -68.3466463972002 | etot = -48.4966725842456 +308000 ekin = 9.1661724436502 | erot = 10.249162357816 | epot = -67.9120073811322 | etot = -48.496672579666 +309000 ekin = 8.92159986059768 | erot = 10.0874162912603 | epot = -67.5056887285244 | etot = -48.4966725766665 +310000 ekin = 8.73563094101779 | erot = 9.93715103612976 | epot = -67.169454552413 | etot = -48.4966725752654 +311000 ekin = 8.61913259831869 | erot = 9.80527711010105 | epot = -66.9210822837978 | etot = -48.496672575378 +312000 ekin = 8.56355763431388 | erot = 9.69617071427367 | epot = -66.7564009251145 | etot = -48.496672576527 +313000 ekin = 8.54744454671114 | erot = 9.61223302156675 | epot = -66.656350146386 | etot = -48.4966725781081 +314000 ekin = 8.54471031362155 | erot = 9.55468856182909 | epot = -66.5960714549809 | etot = -48.4966725795302 +315000 ekin = 8.53582675046024 | erot = 9.52360081783917 | epot = -66.5561001483586 | etot = -48.4966725800592 +316000 ekin = 8.50947902804238 | erot = 9.51910773889645 | epot = -66.5252593469976 | etot = -48.4966725800588 +317000 ekin = 8.46528361606335 | erot = 9.54310287691632 | epot = -66.5050590717948 | etot = -48.4966725788152 +318000 ekin = 8.42148334759255 | erot = 9.59812356340114 | epot = -66.516279487557 | etot = -48.4966725765634 +319000 ekin = 8.41172051683949 | erot = 9.68666529073887 | epot = -66.5950583815213 | etot = -48.4966725739429 +320000 ekin = 8.47631024947879 | erot = 9.81010411287476 | epot = -66.783086934221 | etot = -48.4966725718674 +321000 ekin = 8.64981485684306 | erot = 9.9675001491197 | epot = -67.1139875771924 | etot = -48.4966725712296 +322000 ekin = 8.94886501910658 | erot = 10.1545796242746 | epot = -67.600117215931 | etot = -48.4966725725498 +323000 ekin = 9.36436094196047 | erot = 10.3629464345309 | epot = -68.2239799526371 | etot = -48.4966725761457 +324000 ekin = 9.85762299120414 | erot = 10.5807030497715 | epot = -68.9349986230914 | etot = -48.4966725821158 +325000 ekin = 10.3675336373 | erot = 10.7915336066581 | epot = -69.6557398309782 | etot = -48.4966725870201 +326000 ekin = 10.8169039904013 | erot = 10.978074903065 | epot = -70.2916514882432 | etot = -48.4966725947768 +327000 ekin = 11.1080827251222 | erot = 11.1278633890798 | epot = -70.7326187146627 | etot = -48.4966726004607 +328000 ekin = 11.1668072002134 | erot = 11.235581979125 | epot = -70.8990617814974 | etot = -48.496672602159 +329000 ekin = 10.967403256575 | erot = 11.3047655940369 | epot = -70.768841449533 | etot = -48.4966725989211 +330000 ekin = 10.5471219087206 | erot = 11.3459152750598 | epot = -70.3897097753988 | etot = -48.4966725916185 +331000 ekin = 9.99817977282685 | erot = 11.3709343469158 | epot = -69.8657867027404 | etot = -48.4966725829977 +332000 ekin = 9.43640210775953 | erot = 11.3868472546905 | epot = -69.319921938477 | etot = -48.496672576027 +333000 ekin = 8.96275314870339 | erot = 11.3930028323391 | epot = -68.8524285534048 | etot = -48.4966725723623 +334000 ekin = 8.63845657349899 | erot = 11.382764726995 | epot = -68.5178938722069 | etot = -48.4966725717129 +335000 ekin = 8.47696736446511 | erot = 11.3460820194054 | epot = -68.319721959873 | etot = -48.4966725760025 +336000 ekin = 8.45129453002892 | erot = 11.2716956100397 | epot = -68.2196627183618 | etot = -48.4966725782932 +337000 ekin = 8.52855094859156 | erot = 11.1567863477114 | epot = -68.1820098764486 | etot = -48.4966725801456 +338000 ekin = 8.67667036350068 | erot = 11.0029242666523 | epot = -68.1762672115904 | etot = -48.4966725814374 +339000 ekin = 8.86840718542409 | erot = 10.8141117179581 | epot = -68.1791914857634 | etot = -48.4966725823812 +340000 ekin = 9.08074049345216 | erot = 10.5949858590956 | epot = -68.17239893578 | etot = -48.4966725832323 +341000 ekin = 9.29280025523327 | erot = 10.3497144840385 | epot = -68.1391873233698 | etot = -48.4966725840981 +342000 ekin = 9.48478364390527 | erot = 10.0817821314149 | epot = -68.0632383602007 | etot = -48.4966725848805 +343000 ekin = 9.6388959972346 | erot = 9.79448397039704 | epot = -67.9300525529737 | etot = -48.4966725853421 +344000 ekin = 9.74179750087265 | erot = 9.49171920192241 | epot = -67.7301892880477 | etot = -48.4966725852527 +345000 ekin = 9.78689625540344 | erot = 9.17855510439542 | epot = -67.462123944412 | etot = -48.4966725846132 +346000 ekin = 9.77487619975293 | erot = 8.86098115600662 | epot = -67.132529939332 | etot = -48.4966725835724 +347000 ekin = 9.71190434737071 | erot = 8.54542801625908 | epot = -66.7540049460671 | etot = -48.4966725824373 +348000 ekin = 9.60626623884699 | erot = 8.23797752711893 | epot = -66.3409163474607 | etot = -48.4966725814948 +349000 ekin = 9.46512205486322 | erot = 7.94382241625456 | epot = -65.9056170520253 | etot = -48.4966725809075 +350000 ekin = 9.29263921345323 | erot = 7.66718775568181 | epot = -65.4564995497893 | etot = -48.4966725806542 +351000 ekin = 9.0903070404026 | erot = 7.41172558152282 | epot = -64.998705202447 | etot = -48.4966725805216 +352000 ekin = 8.85964507192677 | erot = 7.18116708497219 | epot = -64.5374847370494 | etot = -48.4966725801504 +353000 ekin = 8.60706719314483 | erot = 6.97993996547515 | epot = -64.0836797376537 | etot = -48.4966725790337 +354000 ekin = 8.35365998681131 | erot = 6.81451510367391 | epot = -63.6648476658683 | etot = -48.4966725753831 +355000 ekin = 8.13817060770625 | erot = 6.6931662282831 | epot = -63.3280094087312 | etot = -48.4966725727419 +356000 ekin = 8.00303344820868 | erot = 6.62071403033337 | epot = -63.1204200476389 | etot = -48.4966725690968 +357000 ekin = 8.00329594806041 | erot = 6.60119920908672 | epot = -63.1011677226111 | etot = -48.496672565464 +358000 ekin = 8.19390069545826 | erot = 6.63655005195628 | epot = -63.3271233108348 | etot = -48.4966725634203 +359000 ekin = 8.60851483671878 | erot = 6.72479591292301 | epot = -63.8299833140608 | etot = -48.496672564419 +360000 ekin = 9.24022555647312 | erot = 6.85875874178493 | epot = -64.5956568672227 | etot = -48.4966725689646 +361000 ekin = 10.0343517665785 | erot = 7.02601171009903 | epot = -65.5570360531846 | etot = -48.4966725765071 +362000 ekin = 10.8949623485542 | erot = 7.21007448014018 | epot = -66.6017094133803 | etot = -48.496672584686 +363000 ekin = 11.7154060072145 | erot = 7.39407842263496 | epot = -67.6061570205514 | etot = -48.496672590702 +364000 ekin = 12.4057223336305 | erot = 7.56453665261263 | epot = -68.4669315836164 | etot = -48.4966725973732 +365000 ekin = 12.8900700952475 | erot = 7.71262358050216 | epot = -69.0993662750096 | etot = -48.4966725992599 +366000 ekin = 13.1382701917133 | erot = 7.83636021669752 | epot = -69.4713030060874 | etot = -48.4966725976766 +367000 ekin = 13.1662433494503 | erot = 7.94108342049927 | epot = -69.6039993640878 | etot = -48.4966725941383 +368000 ekin = 13.0216257321896 | erot = 8.03746300617804 | epot = -69.5557613270778 | etot = -48.4966725887102 +369000 ekin = 12.769963920499 | erot = 8.13884083903498 | epot = -69.405477342997 | etot = -48.496672583463 +370000 ekin = 12.4763633940696 | erot = 8.2585280704997 | epot = -69.2315640444229 | etot = -48.4966725798536 +371000 ekin = 12.1883522141413 | erot = 8.40712894600212 | epot = -69.0921537379891 | etot = -48.4966725778457 +372000 ekin = 11.9337668266525 | erot = 8.59209712213029 | epot = -69.0225365257159 | etot = -48.4966725769331 +373000 ekin = 11.7268114357317 | erot = 8.81820188225653 | epot = -69.0416858943681 | etot = -48.4966725763799 +374000 ekin = 11.5751062922188 | erot = 9.08799140196232 | epot = -69.1597702703438 | etot = -48.4966725761626 +375000 ekin = 11.4816771194436 | erot = 9.40179119698527 | epot = -69.38014089299 | etot = -48.4966725765611 +376000 ekin = 11.4415244462805 | erot = 9.75725267435965 | epot = -69.6954496986156 | etot = -48.4966725779755 +377000 ekin = 11.4364317357126 | erot = 10.1487019288331 | epot = -70.0818062452646 | etot = -48.496672580719 +378000 ekin = 11.4326847178842 | erot = 10.5666289070383 | epot = -70.495986208938 | etot = -48.4966725840156 +379000 ekin = 11.3879261245754 | erot = 10.9960382478821 | epot = -70.8806369610855 | etot = -48.496672588628 +380000 ekin = 11.2500883027076 | erot = 11.4211944009824 | epot = -71.1679552964707 | etot = -48.4966725927807 +381000 ekin = 10.9726921230238 | erot = 11.8269291033838 | epot = -71.2962938221308 | etot = -48.4966725957232 +382000 ekin = 10.5281602154609 | erot = 12.1993149200657 | epot = -71.2241477322819 | etot = -48.4966725967553 +383000 ekin = 9.91669157186262 | erot = 12.5275908716705 | epot = -70.9409550387754 | etot = -48.4966725952423 +384000 ekin = 9.17301492866742 | erot = 12.8043890136623 | epot = -70.4740765341201 | etot = -48.4966725917904 +385000 ekin = 8.36601181966867 | erot = 13.0251847436305 | epot = -69.88786914869 | etot = -48.4966725853908 +386000 ekin = 7.59336935507729 | erot = 13.1937587055513 | epot = -69.2838006385062 | etot = -48.4966725778776 +387000 ekin = 6.96355937774547 | erot = 13.3174316291699 | epot = -68.7776635784017 | etot = -48.4966725714863 +388000 ekin = 6.56667711256593 | erot = 13.4028350179065 | epot = -68.4661846988466 | etot = -48.4966725683742 +389000 ekin = 6.44526911466385 | erot = 13.452341630637 | epot = -68.3942833608618 | etot = -48.4966726155609 +390000 ekin = 6.40022004919714 | erot = 13.5413190039884 | epot = -68.4382116193256 | etot = -48.49667256614 +391000 ekin = 6.74670657780069 | erot = 13.6308036789756 | epot = -68.8741828738666 | etot = -48.4966726170903 +392000 ekin = 7.27053910735973 | erot = 13.5318497226336 | epot = -69.299061444391 | etot = -48.4966726143977 +393000 ekin = 7.84211066747953 | erot = 13.3471669898581 | epot = -69.6859502752907 | etot = -48.496672617953 +394000 ekin = 8.41137168864405 | erot = 13.0851416289724 | epot = -69.9931859369742 | etot = -48.4966726193577 +395000 ekin = 8.94777378650342 | erot = 12.7509585841179 | epot = -70.1954049895143 | etot = -48.4966726188929 +396000 ekin = 9.44412388897363 | erot = 12.3562529221338 | epot = -70.2970494281978 | etot = -48.4966726170903 +397000 ekin = 9.91050995598383 | erot = 11.9175382863925 | epot = -70.3247208568974 | etot = -48.4966726145211 +398000 ekin = 10.3672265667985 | erot = 11.4545225019349 | epot = -70.3184216803495 | etot = -48.4966726116161 +399000 ekin = 10.8377881061497 | erot = 10.9888166293627 | epot = -70.3232773446045 | etot = -48.4966726090921 +400000 ekin = 11.3412083656195 | erot = 10.5421455765466 | epot = -70.3800265495115 | etot = -48.4966726073453 +401000 ekin = 11.8856989725412 | erot = 10.1353050509662 | epot = -70.5176766301703 | etot = -48.4966726066628 +402000 ekin = 12.4648693384634 | erot = 9.78704273789977 | epot = -70.7485846834754 | etot = -48.4966726071122 +403000 ekin = 13.0574032172191 | erot = 9.51287607378396 | epot = -71.0669518996446 | etot = -48.4966726086415 +404000 ekin = 13.6291563424996 | erot = 9.32384163732728 | epot = -71.4496705902089 | etot = -48.496672610382 +405000 ekin = 14.1398204789533 | erot = 9.2249960960061 | epot = -71.8614891889621 | etot = -48.4966726140027 +406000 ekin = 14.5379075448756 | erot = 9.21473993626553 | epot = -72.2493200997454 | etot = -48.4966726186042 +407000 ekin = 14.7678000073509 | erot = 9.28285845910674 | epot = -72.5473310902002 | etot = -48.4966726237426 +408000 ekin = 14.7748392327449 | erot = 9.4128874127938 | epot = -72.6843992735992 | etot = -48.4966726280605 +409000 ekin = 14.5211191199619 | erot = 9.58494933068023 | epot = -72.6027410803212 | etot = -48.496672629679 +410000 ekin = 14.0080722077603 | erot = 9.78050651650688 | epot = -72.2852513515596 | etot = -48.4966726272924 +411000 ekin = 13.2885633490125 | erot = 9.98745844077018 | epot = -71.7726944109714 | etot = -48.4966726211887 +412000 ekin = 12.4602105801987 | erot = 10.2020245096757 | epot = -71.1589077030933 | etot = -48.4966726132189 +413000 ekin = 11.6411968847183 | erot = 10.4265056500499 | epot = -70.564375140538 | etot = -48.4966726057697 +414000 ekin = 10.9403488034326 | erot = 10.6647067440403 | epot = -70.101728148176 | etot = -48.4966726007031 +415000 ekin = 10.4337835958588 | erot = 10.9176175689382 | epot = -69.8480737636831 | etot = -48.4966725988861 +416000 ekin = 10.1537726115972 | erot = 11.1808649833432 | epot = -69.8313101952366 | etot = -48.4966726002962 +417000 ekin = 10.0887098230839 | erot = 11.4440532452565 | epot = -70.0294356728534 | etot = -48.496672604513 +418000 ekin = 10.1900748296287 | erot = 11.691486486043 | epot = -70.3782339258708 | etot = -48.4966726101992 +419000 ekin = 10.3882021396858 | erot = 11.9042621356762 | epot = -70.7891368917029 | etot = -48.4966726163409 +420000 ekin = 10.6068294649459 | erot = 12.0629207258658 | epot = -71.1664228125149 | etot = -48.4966726217032 +421000 ekin = 10.7783620216873 | erot = 12.1507790873922 | epot = -71.4258137343539 | etot = -48.4966726252744 +422000 ekin = 10.8559244969804 | erot = 12.1572275839872 | epot = -71.5098247075458 | etot = -48.4966726265783 +423000 ekin = 10.8187145658879 | erot = 12.0798940410483 | epot = -71.3952812327063 | etot = -48.4966726257701 +424000 ekin = 10.6702271597875 | erot = 11.9248162769282 | epot = -71.0917160601002 | etot = -48.4966726233845 +425000 ekin = 10.4326823761091 | erot = 11.7046834731806 | epot = -70.6340384692427 | etot = -48.4966726199529 +426000 ekin = 10.1418512280332 | erot = 11.4360680199724 | epot = -70.074591863862 | etot = -48.4966726158564 +427000 ekin = 9.84290131625509 | erot = 11.1364780215079 | epot = -69.4760519492879 | etot = -48.4966726115249 +428000 ekin = 9.58662756138332 | erot = 10.821960762199 | epot = -68.9052609309581 | etot = -48.4966726073758 +429000 ekin = 9.42385367708414 | erot = 10.5054247281949 | epot = -68.4259510096258 | etot = -48.4966726043467 +430000 ekin = 9.3932697107341 | erot = 10.1945970633201 | epot = -68.0845393773157 | etot = -48.4966726032615 +431000 ekin = 9.51026104615778 | erot = 9.89118956774573 | epot = -67.8981232184714 | etot = -48.4966726045679 +432000 ekin = 9.76020464999556 | erot = 9.59158522240952 | epot = -67.8484624803521 | etot = -48.496672607947 +433000 ekin = 10.1011132166541 | erot = 9.28935747988458 | epot = -67.8871433087297 | etot = -48.4966726121911 +434000 ekin = 10.477294645398 | erot = 8.97915707053188 | epot = -67.9531243315628 | etot = -48.4966726156329 +435000 ekin = 10.8390965471541 | erot = 8.66047090159804 | epot = -67.9962400658108 | etot = -48.4966726170586 +436000 ekin = 11.1581846566038 | erot = 8.33927074925892 | epot = -67.9941280217146 | etot = -48.4966726158519 +437000 ekin = 11.4322684558217 | erot = 8.02673002723535 | epot = -67.9556710974297 | etot = -48.4966726143726 +438000 ekin = 11.6671720806722 | erot = 7.73476573343809 | epot = -67.8986104279399 | etot = -48.4966726138296 +439000 ekin = 11.8579368223453 | erot = 7.47155579530697 | epot = -67.8261652325874 | etot = -48.4966726149351 +440000 ekin = 11.9818235336916 | erot = 7.23965689692778 | epot = -67.7181530476712 | etot = -48.4966726170518 +441000 ekin = 12.006364309192 | erot = 7.03716778986921 | epot = -67.5402047177844 | etot = -48.4966726187232 +442000 ekin = 11.9008309355917 | erot = 6.85995053948465 | epot = -67.2574540949691 | etot = -48.4966726198928 +443000 ekin = 11.6372457710143 | erot = 6.7022277476632 | epot = -66.8361461367557 | etot = -48.4966726180783 +444000 ekin = 11.2404935703188 | erot = 6.5627400649185 | epot = -66.2999062491644 | etot = -48.496672613927 +445000 ekin = 10.7717210496939 | erot = 6.44292159847087 | epot = -65.7113152554496 | etot = -48.4966726072849 +446000 ekin = 10.3146345400096 | erot = 6.34495994125589 | epot = -65.1562670843396 | etot = -48.4966726030741 +447000 ekin = 9.93895886680335 | erot = 6.2710307219614 | epot = -64.70666218756 | etot = -48.4966725987952 +448000 ekin = 9.70550645607552 | erot = 6.22337425449395 | epot = -64.4255533067951 | etot = -48.4966725962256 +449000 ekin = 9.65303357366369 | erot = 6.20344657437415 | epot = -64.3531527439794 | etot = -48.4966725959415 +450000 ekin = 9.78741215226451 | erot = 6.21100556223012 | epot = -64.4950903140854 | etot = -48.4966725995908 +451000 ekin = 10.0726697694945 | erot = 6.24121610507066 | epot = -64.8105584783442 | etot = -48.4966726037791 +452000 ekin = 10.4498627201324 | erot = 6.28789558017445 | epot = -65.2344309085094 | etot = -48.4966726082025 +453000 ekin = 10.8573529820792 | erot = 6.3442719936139 | epot = -65.6982975879929 | etot = -48.4966726122998 +454000 ekin = 11.2383729595096 | erot = 6.40217211179981 | epot = -66.1372176874634 | etot = -48.496672616154 +455000 ekin = 11.5411597564631 | erot = 6.45158842061622 | epot = -66.4894207972152 | etot = -48.496672620136 +456000 ekin = 11.7145965070118 | erot = 6.48095932011937 | epot = -66.6922284513372 | etot = -48.496672624206 +457000 ekin = 11.7080889258223 | erot = 6.4790494806222 | epot = -66.6838110339246 | etot = -48.4966726274801 +458000 ekin = 11.4817974385589 | erot = 6.43838338689293 | epot = -66.4168534538574 | etot = -48.4966726284056 +459000 ekin = 11.0260461730192 | erot = 6.35890594748302 | epot = -65.8816247459846 | etot = -48.4966726254824 +460000 ekin = 10.3811213891701 | erot = 6.25005112060255 | epot = -65.1278451279305 | etot = -48.4966726181579 +461000 ekin = 9.64500400724202 | erot = 6.13001722355201 | epot = -64.2716938384229 | etot = -48.4966726076289 +462000 ekin = 8.96155334209401 | erot = 6.0232565334345 | epot = -63.4814824659604 | etot = -48.4966725904319 +463000 ekin = 8.49356022962542 | erot = 5.96064229273601 | epot = -62.950875108391 | etot = -48.4966725860295 +464000 ekin = 8.31098322697756 | erot = 5.95399558728201 | epot = -62.7616514010784 | etot = -48.4966725868188 +465000 ekin = 8.41527289815257 | erot = 6.00555163247755 | epot = -62.9174971227792 | etot = -48.496672592149 +466000 ekin = 8.74071951180125 | erot = 6.107452024617 | epot = -63.3448441360316 | etot = -48.4966725996134 +467000 ekin = 8.88640654813702 | erot = 6.32601497563827 | epot = -63.7090940524723 | etot = -48.496672528697 +468000 ekin = 9.0750516035454 | erot = 6.75512448038786 | epot = -64.326848641194 | etot = -48.4966725572607 +469000 ekin = 9.43618930725295 | erot = 6.98018590406613 | epot = -64.9130477256858 | etot = -48.4966725143667 +470000 ekin = 9.5389192890748 | erot = 7.05614003952522 | epot = -65.0917318419334 | etot = -48.4966725133334 +471000 ekin = 9.47129866737627 | erot = 7.09012582275068 | epot = -65.0580969994753 | etot = -48.4966725093484 +472000 ekin = 9.29219039280112 | erot = 7.08038845059064 | epot = -64.8692513473263 | etot = -48.4966725039346 +473000 ekin = 9.07859106335565 | erot = 7.03223766261859 | epot = -64.6075012242425 | etot = -48.4966724982683 +474000 ekin = 8.90859119064582 | erot = 6.95657374542113 | epot = -64.361837429149 | etot = -48.4966724930821 +475000 ekin = 8.85085237787058 | erot = 6.86788557827541 | epot = -64.2154104450232 | etot = -48.4966724888772 +476000 ekin = 8.95844704209607 | erot = 6.78173938268418 | epot = -64.2368589107825 | etot = -48.4966724860022 +477000 ekin = 9.26445642862314 | erot = 6.71235576615976 | epot = -64.4734846830834 | etot = -48.4966724883005 +478000 ekin = 9.75673758778867 | erot = 6.67310243746892 | epot = -64.9265125143914 | etot = -48.4966724891338 +479000 ekin = 10.4083719414133 | erot = 6.67104131549829 | epot = -65.5760857486891 | etot = -48.4966724917775 +480000 ekin = 11.1786387693468 | erot = 6.70609770624713 | epot = -66.3814089720745 | etot = -48.4966724964806 +481000 ekin = 11.9550179833301 | erot = 6.77573712918461 | epot = -67.2274276420803 | etot = -48.4966725295657 +482000 ekin = 12.1969877154023 | erot = 6.97182101607883 | epot = -67.6654811323096 | etot = -48.4966724008285 +483000 ekin = 12.8315687003902 | erot = 7.27453378457519 | epot = -68.6027750201801 | etot = -48.4966725352147 +484000 ekin = 13.1379089548489 | erot = 7.35121017880495 | epot = -68.9857915491995 | etot = -48.4966724155457 +485000 ekin = 13.1455744815352 | erot = 7.39132031002879 | epot = -69.0335672082532 | etot = -48.4966724166892 +486000 ekin = 12.8847677059838 | erot = 7.41820327748147 | epot = -68.7996433973739 | etot = -48.4966724139086 +487000 ekin = 12.3995023295598 | erot = 7.43730294196129 | epot = -68.3334776793774 | etot = -48.4966724078564 +488000 ekin = 11.7801246298141 | erot = 7.45872842904693 | epot = -67.7355254587262 | etot = -48.4966723998652 +489000 ekin = 11.1454971166853 | erot = 7.49387389619964 | epot = -67.136043404651 | etot = -48.4966723917661 +490000 ekin = 10.6174118656706 | erot = 7.55177149139563 | epot = -66.6658557428531 | etot = -48.4966723857869 +491000 ekin = 10.2893788237227 | erot = 7.63548116160718 | epot = -66.4215323695175 | etot = -48.4966723841876 +492000 ekin = 10.1956274375869 | erot = 7.73922358367483 | epot = -66.4315234095995 | etot = -48.4966723883378 +493000 ekin = 10.2924671649369 | erot = 7.84793186661483 | epot = -66.6370714290956 | etot = -48.4966723975439 +494000 ekin = 10.4668249564063 | erot = 7.94111684624392 | epot = -66.9046142110693 | etot = -48.4966724084191 +495000 ekin = 10.5791383442144 | erot = 8.00124026344057 | epot = -67.0770510235223 | etot = -48.4966724158674 +496000 ekin = 10.5277635544545 | erot = 8.0234243897172 | epot = -67.0478603600559 | etot = -48.4966724158843 +497000 ekin = 10.3008638582113 | erot = 8.02081822154823 | epot = -66.8183544879829 | etot = -48.4966724082233 +498000 ekin = 9.9830300829441 | erot = 8.02168645226284 | epot = -66.501388931739 | etot = -48.496672396532 +499000 ekin = 9.71342589197285 | erot = 8.05962720417813 | epot = -66.2697254820144 | etot = -48.4966723858634 +500000 ekin = 9.6235168911854 | erot = 8.16244515239849 | epot = -66.2826344235657 | etot = -48.4966723799818 +501000 ekin = 9.78787333398157 | erot = 8.3444730367172 | epot = -66.629018750896 | etot = -48.4966723801973 +502000 ekin = 10.2050108702155 | erot = 8.60370485257146 | epot = -67.3053881085791 | etot = -48.4966723857921 +503000 ekin = 10.8051989673788 | erot = 8.92246829120059 | epot = -68.2243396537846 | etot = -48.4966723952051 +504000 ekin = 11.4710453968967 | erot = 9.26984220618396 | epot = -69.2375600100513 | etot = -48.4966724069707 +505000 ekin = 12.0583532741101 | erot = 9.60506055558158 | epot = -70.160086249331 | etot = -48.4966724196392 +506000 ekin = 12.4169616297787 | erot = 9.88273601241314 | epot = -70.7963700728992 | etot = -48.4966724307074 +507000 ekin = 12.4225762031031 | erot = 10.0614429671167 | epot = -70.9806916064419 | etot = -48.496672436222 +508000 ekin = 12.0224546476675 | erot = 10.1150484289833 | epot = -70.6341755095221 | etot = -48.4966724328713 +509000 ekin = 11.2713256107343 | erot = 10.0417150354825 | epot = -69.8097130671352 | etot = -48.4966724209184 +510000 ekin = 10.3259224264145 | erot = 9.86440101432832 | epot = -68.6869958451572 | etot = -48.4966724044144 +511000 ekin = 9.39566767793053 | erot = 9.62224126641417 | epot = -67.5145813329279 | etot = -48.4966723885832 +512000 ekin = 8.67739606863164 | erot = 9.35823452028457 | epot = -66.5323029667235 | etot = -48.4966723778073 +513000 ekin = 8.30173505000993 | erot = 9.10874451689391 | epot = -65.9071519407483 | etot = -48.4966723738445 +514000 ekin = 8.31133758538756 | erot = 8.90213046051507 | epot = -65.710140421329 | etot = -48.4966723754264 +515000 ekin = 8.65105183696316 | erot = 8.7514282302608 | epot = -65.8991524513801 | etot = -48.4966723841561 +516000 ekin = 9.19545504792417 | erot = 8.65020590792967 | epot = -66.3423333510927 | etot = -48.4966723952388 +517000 ekin = 9.78948013470045 | erot = 8.58459334669478 | epot = -66.8707458885787 | etot = -48.4966724071835 +518000 ekin = 10.2719405201907 | erot = 8.53610767680698 | epot = -67.3047206151279 | etot = -48.4966724181302 +519000 ekin = 10.5035619038422 | erot = 8.48509741614985 | epot = -67.4853317483345 | etot = -48.4966724283424 +520000 ekin = 10.3837804903591 | erot = 8.41855293465755 | epot = -67.2990058537329 | etot = -48.4966724287163 +521000 ekin = 9.91971480302427 | erot = 8.33012920363259 | epot = -66.7465164259076 | etot = -48.4966724192507 +522000 ekin = 9.25580910193788 | erot = 8.22471517249033 | epot = -65.9771966777207 | etot = -48.4966724032925 +523000 ekin = 8.61677254360916 | erot = 8.11873116220433 | epot = -65.2321760932319 | etot = -48.4966723874184 +524000 ekin = 8.22312599613015 | erot = 8.03533827067386 | epot = -64.7551366426032 | etot = -48.4966723757992 +525000 ekin = 8.2309691908796 | erot = 7.99952905918643 | epot = -64.7271706203461 | etot = -48.49667237028 +526000 ekin = 8.70541343261598 | erot = 8.03327780743259 | epot = -65.2353636116279 | etot = -48.4966723715793 +527000 ekin = 9.61054447377517 | erot = 8.14859195684391 | epot = -66.2558088113309 | etot = -48.4966723807118 +528000 ekin = 10.8064190209308 | erot = 8.34203048718433 | epot = -67.6451219042434 | etot = -48.4966723961283 +529000 ekin = 12.0748947021392 | erot = 8.59301141009918 | epot = -69.1645785259815 | etot = -48.4966724137432 +530000 ekin = 13.1772899053561 | erot = 8.86731230216095 | epot = -70.5412746358192 | etot = -48.4966724283022 +531000 ekin = 13.9222479329561 | erot = 9.12596646781095 | epot = -71.5448868367725 | etot = -48.4966724360055 +532000 ekin = 14.2109040109712 | erot = 9.33621159867702 | epot = -72.0437880461094 | etot = -48.4966724364612 +533000 ekin = 14.0393496048364 | erot = 9.47948522986669 | epot = -72.0155072660307 | etot = -48.4966724313276 +534000 ekin = 13.4765937110865 | erot = 9.55437050378899 | epot = -71.5276366366405 | etot = -48.496672421765 +535000 ekin = 12.6476855098919 | erot = 9.57521298744177 | epot = -70.719570906192 | etot = -48.4966724088584 +536000 ekin = 11.7187499511448 | erot = 9.56662150363136 | epot = -69.7820438499262 | etot = -48.4966723951501 +537000 ekin = 10.8667161281277 | erot = 9.55558575468458 | epot = -68.9189742665298 | etot = -48.4966723837175 +538000 ekin = 10.2407642556974 | erot = 9.56460479423064 | epot = -68.302041426641 | etot = -48.496672376713 +539000 ekin = 9.93256310316437 | erot = 9.60813474995735 | epot = -68.0373702280363 | etot = -48.4966723749146 +540000 ekin = 9.9663505946704 | erot = 9.69366995189707 | epot = -68.1566929217508 | etot = -48.4966723751834 +541000 ekin = 10.3033434566754 | erot = 9.82452773464469 | epot = -68.6245435738886 | etot = -48.4966723825685 +542000 ekin = 10.8374546472347 | erot = 9.99210203741248 | epot = -69.3262290766553 | etot = -48.4966723920081 +543000 ekin = 11.4320363086548 | erot = 10.1839460987212 | epot = -70.1126548089748 | etot = -48.4966724015988 +544000 ekin = 11.9481549488554 | erot = 10.3868550358245 | epot = -70.8316823942835 | etot = -48.4966724096036 +545000 ekin = 12.2696023022718 | erot = 10.5892508892387 | epot = -71.3555256062342 | etot = -48.4966724147236 +546000 ekin = 12.321748370744 | erot = 10.7831241363479 | epot = -71.601544923376 | etot = -48.4966724162841 +547000 ekin = 12.0815090899527 | erot = 10.9652333443141 | epot = -71.5434148485646 | etot = -48.4966724142979 +548000 ekin = 11.5772594483929 | erot = 11.1370572249374 | epot = -71.2109890828874 | etot = -48.4966724095571 +549000 ekin = 10.8796146423249 | erot = 11.3027415301181 | epot = -70.6790285755882 | etot = -48.4966724031452 +550000 ekin = 10.0861650600294 | erot = 11.4673420616665 | epot = -70.0501795179829 | etot = -48.496672396287 +551000 ekin = 9.30420856247628 | erot = 11.6346062512735 | epot = -69.435487203823 | etot = -48.4966723900733 +552000 ekin = 8.63456852509588 | erot = 11.8051739021005 | epot = -68.9364148125888 | etot = -48.4966723853924 +553000 ekin = 8.15765857136581 | erot = 11.9755314527045 | epot = -68.6298624070135 | etot = -48.4966723829432 +554000 ekin = 7.92204387518784 | erot = 12.1379035109131 | epot = -68.5566197692493 | etot = -48.4966723831483 +555000 ekin = 7.93668594953939 | erot = 12.2813102395747 | epot = -68.7146685751332 | etot = -48.4966723860191 +556000 ekin = 8.16908147819853 | erot = 12.393779334281 | epot = -69.0595332034403 | etot = -48.4966723909608 +557000 ekin = 8.55144497214368 | erot = 12.465479172799 | epot = -69.5135965418038 | etot = -48.4966723968611 +558000 ekin = 8.99506879124846 | erot = 12.4919043884403 | epot = -69.9836455819986 | etot = -48.4966724023098 +559000 ekin = 9.40988612193979 | erot = 12.4759637500258 | epot = -70.3825222781016 | etot = -48.496672406136 +560000 ekin = 9.72239125491496 | erot = 12.4279361391034 | epot = -70.6469998020326 | etot = -48.4966724080143 +561000 ekin = 9.88412985938752 | erot = 12.3629252843669 | epot = -70.7437275521904 | etot = -48.4966724084359 +562000 ekin = 9.87014392595536 | erot = 12.2969140239725 | epot = -70.6637303578499 | etot = -48.496672407922 +563000 ekin = 9.67269052989872 | erot = 12.2435461742526 | epot = -70.4129091125218 | etot = -48.4966724083705 +564000 ekin = 9.29561869669046 | erot = 12.2123745870917 | epot = -70.0046656893348 | etot = -48.4966724055526 +565000 ekin = 8.77967610202421 | erot = 12.2075615849193 | epot = -69.4839100880982 | etot = -48.4966724011548 +566000 ekin = 8.19459477314837 | erot = 12.2284388471803 | epot = -68.9197060163001 | etot = -48.4966723959714 +567000 ekin = 7.62573923577576 | erot = 12.2693533996224 | epot = -68.391765026759 | etot = -48.4966723913608 +568000 ekin = 7.15404054173824 | erot = 12.3199400383766 | epot = -67.9706529685886 | etot = -48.4966723884738 +569000 ekin = 6.83717313904365 | erot = 12.3666389683575 | epot = -67.7004844951495 | etot = -48.4966723877484 +570000 ekin = 6.69956781443878 | erot = 12.3955125883792 | epot = -67.5917527916869 | etot = -48.4966723888689 +571000 ekin = 6.73320809574575 | erot = 12.3955019363285 | epot = -67.6253824231304 | etot = -48.4966723910561 +572000 ekin = 6.90669043361352 | erot = 12.360901189443 | epot = -67.7642640151546 | etot = -48.496672392098 +573000 ekin = 7.18429647793752 | erot = 12.295129955523 | epot = -67.9760988286113 | etot = -48.4966723951508 +574000 ekin = 7.52006639731463 | erot = 12.2050646486354 | epot = -68.2218034426913 | etot = -48.4966723967412 +575000 ekin = 7.87441000611595 | erot = 12.0985403159086 | epot = -68.4696227186239 | etot = -48.4966723965993 +576000 ekin = 8.23152231474211 | erot = 11.9863053711619 | epot = -68.7145000810317 | etot = -48.4966723951277 +577000 ekin = 8.59621090775485 | erot = 11.88029454746 | epot = -68.9731778482791 | etot = -48.4966723930643 +578000 ekin = 8.98550446109966 | erot = 11.7917589254419 | epot = -69.273935777607 | etot = -48.4966723910654 +579000 ekin = 9.42040764629998 | erot = 11.7296557361017 | epot = -69.6467357719303 | etot = -48.4966723895287 +580000 ekin = 9.92026928438504 | erot = 11.6994636247959 | epot = -70.1164052981462 | etot = -48.4966723889653 +581000 ekin = 10.481235625959 | erot = 11.7036776252937 | epot = -70.6815856416595 | etot = -48.4966723904068 +582000 ekin = 11.0803741506679 | erot = 11.7381628956894 | epot = -71.315209439996 | etot = -48.4966723936387 +583000 ekin = 11.6832905433026 | erot = 11.7898051581773 | epot = -71.969768100988 | etot = -48.496672399508 +584000 ekin = 12.2265963017921 | erot = 11.8360805991725 | epot = -72.5593493093226 | etot = -48.4966724083579 +585000 ekin = 12.6146924454376 | erot = 11.8453302035058 | epot = -72.956695067911 | etot = -48.4966724189676 +586000 ekin = 12.7381776543518 | erot = 11.7813880279948 | epot = -73.016238110557 | etot = -48.4966724282105 +587000 ekin = 12.5064805858927 | erot = 11.6131474319877 | epot = -72.6163004503534 | etot = -48.4966724324729 +588000 ekin = 11.8864734315384 | erot = 11.3251009524907 | epot = -71.708246812138 | etot = -48.4966724281089 +589000 ekin = 10.9473869135698 | erot = 10.9235098586354 | epot = -70.3675691877464 | etot = -48.4966724155412 +590000 ekin = 9.86035696870277 | erot = 10.4344934448947 | epot = -68.7915228116269 | etot = -48.4966723980295 +591000 ekin = 8.856315097301 | erot = 9.8962156264538 | epot = -67.24920310466 | etot = -48.4966723809053 +592000 ekin = 8.15513077394364 | erot = 9.34935781082713 | epot = -66.0011609546423 | etot = -48.4966723698715 +593000 ekin = 7.88860666870599 | erot = 8.82965609771594 | epot = -65.2149351345128 | etot = -48.4966723680909 +594000 ekin = 8.05760926843084 | erot = 8.36349649514688 | epot = -64.917778137945 | etot = -48.4966723743673 +595000 ekin = 8.55177999823075 | erot = 7.96715997621382 | epot = -65.0156123581699 | etot = -48.4966723837253 +596000 ekin = 9.20240795646494 | erot = 7.64971555618372 | epot = -65.3487959078275 | etot = -48.4966723951788 +597000 ekin = 9.82563991116664 | erot = 7.41365255171618 | epot = -65.7359648662224 | etot = -48.4966724033396 +598000 ekin = 10.2831958981112 | erot = 7.25474571550897 | epot = -66.0346140226854 | etot = -48.4966724090653 +599000 ekin = 10.4823548481571 | erot = 7.16384844598274 | epot = -66.1428757063982 | etot = -48.4966724122583 +600000 ekin = 10.377655957699 | erot = 7.12899314635559 | epot = -66.0033215164734 | etot = -48.4966724124188 +601000 ekin = 9.97447570388701 | erot = 7.1388129593999 | epot = -65.6099610722624 | etot = -48.4966724089755 +602000 ekin = 9.33239148581919 | erot = 7.18604650076208 | epot = -65.0151103884962 | etot = -48.4966724019149 +603000 ekin = 8.56059728304323 | erot = 7.26939823175125 | epot = -64.3266679072083 | etot = -48.4966723924139 +604000 ekin = 7.7984442591758 | erot = 7.39226229321183 | epot = -63.6873789354487 | etot = -48.4966723830611 +605000 ekin = 7.18334355707592 | erot = 7.55875733480148 | epot = -63.2387732678989 | etot = -48.4966723760215 +606000 ekin = 6.82339792281676 | erot = 7.77079572204939 | epot = -63.0908660164771 | etot = -48.4966723716109 +607000 ekin = 6.78106761298459 | erot = 8.02640715106275 | epot = -63.3041471355128 | etot = -48.4966723714655 +608000 ekin = 7.06650520946426 | erot = 8.31925929524446 | epot = -63.8824368788658 | etot = -48.4966723741571 +609000 ekin = 7.64869014780975 | erot = 8.64063737883881 | epot = -64.7859999056167 | etot = -48.4966723789681 +610000 ekin = 8.45880674200776 | erot = 8.97898134769688 | epot = -65.9344604774328 | etot = -48.4966723877281 +611000 ekin = 9.4001263207956 | erot = 9.32028280864193 | epot = -67.2170815245993 | etot = -48.4966723951617 +612000 ekin = 10.3724864441584 | erot = 9.65110388613771 | epot = -68.5202627333548 | etot = -48.4966724030588 +613000 ekin = 11.273882244626 | erot = 9.9556440821821 | epot = -69.72619873741 | etot = -48.4966724106019 +614000 ekin = 12.0134738011408 | erot = 10.2166935701722 | epot = -70.7268397870958 | etot = -48.4966724157829 +615000 ekin = 12.5325228236381 | erot = 10.4217069668423 | epot = -71.450902207423 | etot = -48.4966724169425 +616000 ekin = 12.8258294711986 | erot = 10.566474545366 | epot = -71.8889764297518 | etot = -48.4966724131872 +617000 ekin = 12.9484167495066 | erot = 10.6576196901733 | epot = -72.1027088454161 | etot = -48.4966724057361 +618000 ekin = 12.998475466013 | erot = 10.7112673342273 | epot = -72.2064151975271 | etot = -48.4966723972868 +619000 ekin = 13.0833633892071 | erot = 10.7483523556986 | epot = -72.3283881359039 | etot = -48.4966723909983 +620000 ekin = 13.2805224346224 | erot = 10.7880868966453 | epot = -72.5652817201107 | etot = -48.496672388843 +621000 ekin = 13.6153158270094 | erot = 10.8424788949038 | epot = -72.9544671127491 | etot = -48.4966723908359 +622000 ekin = 14.0617052044724 | erot = 10.9128304448974 | epot = -73.4712080455024 | etot = -48.4966723961327 +623000 ekin = 14.5562524522845 | erot = 10.9888554747774 | epot = -74.0417803304225 | etot = -48.4966724033606 +624000 ekin = 15.0184966479576 | erot = 11.0501520933367 | epot = -74.5653211518535 | etot = -48.4966724105592 +625000 ekin = 15.3740067441191 | erot = 11.0719318061176 | epot = -74.9426109653785 | etot = -48.4966724151418 +626000 ekin = 15.5799785500671 | erot = 11.0340258807545 | epot = -75.1106768463317 | etot = -48.4966724155101 +627000 ekin = 15.6387406868734 | erot = 10.9274345484273 | epot = -75.0628476476668 | etot = -48.4966724123662 +628000 ekin = 15.5850466430457 | erot = 10.7544368612362 | epot = -74.8361559131403 | etot = -48.4966724088584 +629000 ekin = 15.4527585941032 | erot = 10.5222074068767 | epot = -74.4716384084828 | etot = -48.4966724075029 +630000 ekin = 15.248764071319 | erot = 10.236990405301 | epot = -73.9824268849356 | etot = -48.4966724083155 +631000 ekin = 14.95463085986 | erot = 9.90350592616926 | epot = -73.3548091955386 | etot = -48.4966724095093 +632000 ekin = 14.54712971678 | erot = 9.5277824876148 | epot = -72.571584613696 | etot = -48.4966724093012 +633000 ekin = 14.0259983537383 | erot = 9.11935081551797 | epot = -71.6420215737048 | etot = -48.4966724044485 +634000 ekin = 13.434893448823 | erot = 8.69195919089113 | epot = -70.6235250390489 | etot = -48.4966723993348 +635000 ekin = 12.824895827622 | erot = 8.26734491149425 | epot = -69.588913133081 | etot = -48.4966723939648 +636000 ekin = 12.2634798858286 | erot = 7.86620866048542 | epot = -68.6263609335687 | etot = -48.4966723872547 +637000 ekin = 11.837830509145 | erot = 7.50870022731589 | epot = -67.8432031168793 | etot = -48.4966723804184 +638000 ekin = 11.6379266194863 | erot = 7.21309192661843 | epot = -67.3476909220041 | etot = -48.4966723758993 +639000 ekin = 11.7309756691688 | erot = 6.99358509588195 | epot = -67.2212331386168 | etot = -48.496672373566 +640000 ekin = 12.1483860992341 | erot = 6.85513197122735 | epot = -67.5001904464754 | etot = -48.4966723760139 +641000 ekin = 12.8580389630413 | erot = 6.79197676459362 | epot = -68.1466881104838 | etot = -48.4966723828488 +642000 ekin = 13.7676241865003 | erot = 6.78663459550888 | epot = -69.0509311759616 | etot = -48.4966723939524 +643000 ekin = 14.7311148046696 | erot = 6.81269225386592 | epot = -70.0404794653553 | etot = -48.4966724068198 +644000 ekin = 15.5770857379772 | erot = 6.83998967566151 | epot = -70.9137478319373 | etot = -48.4966724182986 +645000 ekin = 16.1508405485681 | erot = 6.84150218313639 | epot = -71.4890151571444 | etot = -48.4966724254399 +646000 ekin = 16.3517339377883 | erot = 6.79972807951154 | epot = -71.648134444135 | etot = -48.4966724268351 +647000 ekin = 16.1521813975647 | erot = 6.71011075276661 | epot = -71.3589645731898 | etot = -48.4966724228584 +648000 ekin = 15.5941452915208 | erot = 6.58036041653718 | epot = -70.6711781232478 | etot = -48.4966724151898 +649000 ekin = 14.7689091851051 | erot = 6.42695236576629 | epot = -69.6925339568818 | etot = -48.4966724060104 +650000 ekin = 13.7897851522141 | erot = 6.27009414211622 | epot = -68.5565516915737 | etot = -48.4966723972434 +651000 ekin = 12.7827854664051 | erot = 6.12965793188258 | epot = -67.4091157839821 | etot = -48.4966723856945 +652000 ekin = 11.8480628892581 | erot = 6.02011822013316 | epot = -66.3648534922347 | etot = -48.4966723828435 +653000 ekin = 11.0202985972855 | erot = 5.94865375231979 | epot = -65.4656247316048 | etot = -48.4966723819995 +654000 ekin = 10.3091031180511 | erot = 5.91728137273322 | epot = -64.7230568732843 | etot = -48.4966723825 +655000 ekin = 9.70839056866602 | erot = 5.92392072357778 | epot = -64.1289836757749 | etot = -48.4966723835311 +656000 ekin = 9.20726106552158 | erot = 5.96375787161147 | epot = -63.6676913214733 | etot = -48.4966723843402 +657000 ekin = 8.80019228939797 | erot = 6.03073521946339 | epot = -63.3275998932172 | etot = -48.4966723843559 +658000 ekin = 8.49429330450483 | erot = 6.1190138686194 | epot = -63.1099795564599 | etot = -48.4966723833357 +659000 ekin = 8.31163970856305 | erot = 6.22415392600457 | epot = -63.0324660160693 | etot = -48.4966723815017 +660000 ekin = 8.28571687286792 | erot = 6.3435948195595 | epot = -63.1259840718644 | etot = -48.496672379437 +661000 ekin = 8.45063623899349 | erot = 6.47625697361695 | epot = -63.4235655911201 | etot = -48.4966723785096 +662000 ekin = 8.82527447353651 | erot = 6.62126989868729 | epot = -63.94321675186 | etot = -48.4966723796362 +663000 ekin = 9.37687400900737 | erot = 6.77176565509087 | epot = -64.6453120555835 | etot = -48.4966723914853 +664000 ekin = 10.0161883294264 | erot = 6.91673471720662 | epot = -65.4295954443851 | etot = -48.496672397752 +665000 ekin = 10.6568075638947 | erot = 7.05202630081342 | epot = -66.2055062689187 | etot = -48.4966724042105 +666000 ekin = 11.2095129988519 | erot = 7.17560031622941 | epot = -66.8817857236931 | etot = -48.4966724086119 +667000 ekin = 11.6073208198796 | erot = 7.28956566888112 | epot = -67.3935588982907 | etot = -48.4966724095301 +668000 ekin = 11.8262434817302 | erot = 7.40047545940011 | epot = -67.7233913480593 | etot = -48.496672406929 +669000 ekin = 11.8877773970608 | erot = 7.51673035653278 | epot = -67.9011801559119 | etot = -48.4966724023183 +670000 ekin = 11.8402449204143 | erot = 7.64485197464031 | epot = -67.9817692944891 | etot = -48.4966723994345 +671000 ekin = 11.7215972605913 | erot = 7.78648852074884 | epot = -68.0047581789147 | etot = -48.4966723975746 +672000 ekin = 11.5567362165189 | erot = 7.94128453333614 | epot = -67.9946931463828 | etot = -48.4966723965278 +673000 ekin = 11.3570416452435 | erot = 8.10916533384796 | epot = -67.962879375194 | etot = -48.4966723961026 +674000 ekin = 11.1259919200534 | erot = 8.29215560391109 | epot = -67.9148199183824 | etot = -48.4966723944179 +675000 ekin = 10.8743945879396 | erot = 8.49470509392965 | epot = -67.8657720757233 | etot = -48.496672393854 +676000 ekin = 10.6087709728526 | erot = 8.72185603052384 | epot = -67.8272993961854 | etot = -48.4966723928089 +677000 ekin = 10.3411925527036 | erot = 8.97814779627434 | epot = -67.8160127408758 | etot = -48.4966723918979 +678000 ekin = 10.086083558261 | erot = 9.2651688180331 | epot = -67.8479247679199 | etot = -48.4966723916259 +679000 ekin = 9.85460690268808 | erot = 9.57959119578934 | epot = -67.9308704906975 | etot = -48.4966723922201 +680000 ekin = 9.65193484612734 | erot = 9.91222749425356 | epot = -68.0608347339777 | etot = -48.4966723935968 +681000 ekin = 9.47778674052705 | erot = 10.2481668373654 | epot = -68.2226259733431 | etot = -48.4966723954506 +682000 ekin = 9.32915693407332 | erot = 10.5680491154085 | epot = -68.3938784468612 | etot = -48.4966723973794 +683000 ekin = 9.20359209996506 | erot = 10.8502901106042 | epot = -68.5505546096265 | etot = -48.4966723990572 +684000 ekin = 9.10057910431442 | erot = 11.0738485405146 | epot = -68.6711000474925 | etot = -48.4966724026635 +685000 ekin = 9.00949165145505 | erot = 11.2173796934396 | epot = -68.7235437496383 | etot = -48.4966724047436 +686000 ekin = 8.91345829622965 | erot = 11.2659265086073 | epot = -68.6760572115373 | etot = -48.4966724067003 +687000 ekin = 8.79289020082353 | erot = 11.214641842958 | epot = -68.504204452004 | etot = -48.4966724082225 +688000 ekin = 8.6269958520518 | erot = 11.068753511123 | epot = -68.1924217716564 | etot = -48.4966724084816 +689000 ekin = 8.40629613755178 | erot = 10.8436392121208 | epot = -67.7466077560442 | etot = -48.4966724063716 +690000 ekin = 8.14912332622908 | erot = 10.5636669227552 | epot = -67.2094626501689 | etot = -48.4966724011846 +691000 ekin = 7.9124665079121 | erot = 10.2598630018305 | epot = -66.6690019031216 | etot = -48.496672393379 +692000 ekin = 7.78649732433392 | erot = 9.9663674739445 | epot = -66.2495371832041 | etot = -48.4966723849257 +693000 ekin = 7.86849983070142 | erot = 9.71571779720549 | epot = -66.0808900067404 | etot = -48.4966723788335 +694000 ekin = 8.22337408862048 | erot = 9.53345750684774 | epot = -66.2535039733568 | etot = -48.4966723778886 +695000 ekin = 8.84810602229034 | erot = 9.43320257925922 | epot = -66.7779809848027 | etot = -48.4966723832531 +696000 ekin = 9.65887172689219 | erot = 9.41372191367251 | epot = -67.5692660343492 | etot = -48.4966723937845 +697000 ekin = 10.5087480404009 | erot = 9.45932512209752 | epot = -68.4647455690601 | etot = -48.4966724065617 +698000 ekin = 11.2285190602726 | erot = 9.5438048007253 | epot = -69.2689962790206 | etot = -48.4966724180227 +699000 ekin = 11.6741833078953 | erot = 9.63725123843725 | epot = -69.808106971432 | etot = -48.4966724250994 +700000 ekin = 11.7654350682691 | erot = 9.71395728257181 | epot = -69.9760647768934 | etot = -48.4966724260525 +701000 ekin = 11.5047049794079 | erot = 9.75894077488325 | epot = -69.7603181752266 | etot = -48.4966724209354 +702000 ekin = 10.9724403692017 | erot = 9.77075075363618 | epot = -69.2398635344041 | etot = -48.4966724115662 +703000 ekin = 10.3024076279287 | erot = 9.75981202327702 | epot = -68.558892051938 | etot = -48.4966724007323 +704000 ekin = 9.64337665021832 | erot = 9.74344885657128 | epot = -67.883497898486 | etot = -48.4966723916964 +705000 ekin = 9.1179525518903 | erot = 9.73742730798015 | epot = -67.3520522450809 | etot = -48.4966723852105 +706000 ekin = 8.8126363956072 | erot = 9.75421899341161 | epot = -67.063527770709 | etot = -48.4966723816902 +707000 ekin = 8.77338019585092 | erot = 9.80175401548544 | epot = -67.0718065920222 | etot = -48.4966723806858 +708000 ekin = 9.01138622824448 | erot = 9.88360177657119 | epot = -67.3916603862582 | etot = -48.4966723814425 +709000 ekin = 9.50747988008547 | erot = 9.99905418993988 | epot = -68.0032064559779 | etot = -48.4966723859526 +710000 ekin = 10.2098084032625 | erot = 10.1416258356114 | epot = -68.8481066295808 | etot = -48.4966723907069 +711000 ekin = 11.0523389499236 | erot = 10.2998854255891 | epot = -69.8488967723657 | etot = -48.4966723968529 +712000 ekin = 11.9521069746156 | erot = 10.4562138303948 | epot = -70.9049932100343 | etot = -48.4966724050239 +713000 ekin = 12.8150465431179 | erot = 10.5882970351902 | epot = -71.9000159909055 | etot = -48.4966724125975 +714000 ekin = 13.5573027723637 | erot = 10.6741841238219 | epot = -72.72815931429 | etot = -48.4966724181044 +715000 ekin = 14.1179857007345 | erot = 10.6957124385956 | epot = -73.3103705602691 | etot = -48.496672420939 +716000 ekin = 14.4699787524279 | erot = 10.6432681547871 | epot = -73.6099193272276 | etot = -48.4966724200126 +717000 ekin = 14.6304817620082 | erot = 10.5193699651724 | epot = -73.6465241431589 | etot = -48.4966724159783 +718000 ekin = 14.6433398085898 | erot = 10.3369378980817 | epot = -73.4769501191217 | etot = -48.4966724124502 +719000 ekin = 14.5613025266538 | erot = 10.116304495103 | epot = -73.1742794287171 | etot = -48.4966724069602 +720000 ekin = 14.4440802771762 | erot = 9.88263320853942 | epot = -72.8233858887771 | etot = -48.4966724030615 +721000 ekin = 14.32669248658 | erot = 9.66028301118916 | epot = -72.4836478994602 | etot = -48.496672401691 +722000 ekin = 14.208213950476 | erot = 9.46998100555901 | epot = -72.1748673588971 | etot = -48.4966724028621 +723000 ekin = 14.0535356867324 | erot = 9.32739231072085 | epot = -71.8776004030704 | etot = -48.4966724056172 +724000 ekin = 13.8083025959258 | erot = 9.24288552357026 | epot = -71.547860527913 | etot = -48.496672408417 +725000 ekin = 13.4217406291513 | erot = 9.2221793968949 | epot = -71.1405924357641 | etot = -48.4966724097179 +726000 ekin = 12.8688682445621 | erot = 9.26761054125373 | epot = -70.633151194327 | etot = -48.4966724085112 +727000 ekin = 12.164418505818 | erot = 9.3797232402829 | epot = -70.0408141507457 | etot = -48.4966724046448 +728000 ekin = 11.3639426094184 | erot = 9.55857934570968 | epot = -69.4191943540654 | etot = -48.4966723989373 +729000 ekin = 10.5512882155533 | erot = 9.80396099269058 | epot = -68.8519216012415 | etot = -48.4966723929976 +730000 ekin = 9.81740771755529 | erot = 10.1147074882675 | epot = -68.4287875941947 | etot = -48.496672388372 +731000 ekin = 9.23253818700049 | erot = 10.4853428846381 | epot = -68.2145534589486 | etot = -48.4966723873101 +732000 ekin = 8.8254456341921 | erot = 10.9030046167224 | epot = -68.2251226406126 | etot = -48.4966723896981 +733000 ekin = 8.58076650729897 | erot = 11.3480140239877 | epot = -68.4254529261021 | etot = -48.4966723948154 +734000 ekin = 8.44819070650859 | erot = 11.7953928346149 | epot = -68.7402559421549 | etot = -48.4966724010314 +735000 ekin = 8.36308582604301 | erot = 12.2184265334565 | epot = -69.0781847658203 | etot = -48.4966724063208 +736000 ekin = 8.27166179448656 | erot = 12.5931737861028 | epot = -69.3615079895678 | etot = -48.4966724089784 +737000 ekin = 8.15174465790076 | erot = 12.9021375875578 | epot = -69.550554653838 | etot = -48.4966724083795 +738000 ekin = 8.02032384079713 | erot = 13.1353976437632 | epot = -69.6523938899103 | etot = -48.49667240535 +739000 ekin = 7.92361863209752 | erot = 13.288887170794 | epot = -69.7091782046011 | etot = -48.4966724017096 +740000 ekin = 7.91483089146068 | erot = 13.361596296788 | epot = -69.7730995872988 | etot = -48.4966723990502 +741000 ekin = 8.03302590103882 | erot = 13.3544079573073 | epot = -69.8841062561639 | etot = -48.4966723978177 +742000 ekin = 8.29475492789436 | erot = 13.2712680544399 | epot = -70.062695379792 | etot = -48.4966723974577 +743000 ekin = 8.69783680686827 | erot = 13.1210830214386 | epot = -70.3155922259141 | etot = -48.4966723976072 +744000 ekin = 9.22494090059484 | erot = 12.9171251058096 | epot = -70.638738405208 | etot = -48.4966723988036 +745000 ekin = 9.8390865268868 | erot = 12.6729415302935 | epot = -71.008700459201 | etot = -48.4966724020207 +746000 ekin = 10.476767189942 | erot = 12.3966932528263 | epot = -71.3701328506785 | etot = -48.4966724079101 +747000 ekin = 11.0446377699999 | erot = 12.0869928943206 | epot = -71.6283030802541 | etot = -48.4966724159336 +748000 ekin = 11.4295453908524 | erot = 11.7327222580755 | epot = -71.6589400731708 | etot = -48.4966724242429 +749000 ekin = 11.5234364162178 | erot = 11.3174485899859 | epot = -71.3375574361957 | etot = -48.4966724299919 +750000 ekin = 11.259079853854 | erot = 10.8275036111879 | epot = -70.5832558907475 | etot = -48.4966724257056 +751000 ekin = 10.6566760361374 | erot = 10.2652340950593 | epot = -69.418582551581 | etot = -48.4966724203843 +752000 ekin = 9.81046694498496 | erot = 9.64438866543102 | epot = -67.9515280182634 | etot = -48.4966724078474 +753000 ekin = 8.8913456194876 | erot = 8.9921423550876 | epot = -66.3801603662739 | etot = -48.4966723916987 +754000 ekin = 8.11027945078717 | erot = 8.34642943219491 | epot = -64.9533812593719 | etot = -48.4966723763898 +755000 ekin = 7.64805178044942 | erot = 7.74709579294779 | epot = -63.8918199450905 | etot = -48.4966723716933 +756000 ekin = 7.56652741907262 | erot = 7.21880217843953 | epot = -63.2820019730441 | etot = -48.496672375532 +757000 ekin = 7.8021347348581 | erot = 6.76780334663582 | epot = -63.0666104660453 | etot = -48.4966723845514 +758000 ekin = 8.22136828673647 | erot = 6.38824654025972 | epot = -63.1062872203262 | etot = -48.49667239333 +759000 ekin = 8.6871506084408 | erot = 6.07044846904346 | epot = -63.2542714773 | etot = -48.4966723998157 +760000 ekin = 9.09933114469116 | erot = 5.80281618242289 | epot = -63.3988197302598 | etot = -48.4966724031458 +761000 ekin = 9.39129570541632 | erot = 5.57472170095315 | epot = -63.4626898089459 | etot = -48.4966724025765 +762000 ekin = 9.56563723640989 | erot = 5.38011940090967 | epot = -63.4424290363216 | etot = -48.496672399002 +763000 ekin = 9.67336099026896 | erot = 5.21718626718154 | epot = -63.3872196515552 | etot = -48.4966723941047 +764000 ekin = 9.78632769660059 | erot = 5.0859958821846 | epot = -63.3689959684166 | etot = -48.4966723896314 +765000 ekin = 9.96960969337793 | erot = 4.98563698857814 | epot = -63.4519190694749 | etot = -48.4966723875188 +766000 ekin = 10.225480068829 | erot = 4.91845355429151 | epot = -63.6406060069211 | etot = -48.4966723838005 +767000 ekin = 10.5921756590156 | erot = 4.88036713465681 | epot = -63.9692151912139 | etot = -48.4966723975415 +768000 ekin = 11.0286182842439 | erot = 4.84228216973156 | epot = -64.3675728421619 | etot = -48.4966723881864 +769000 ekin = 11.5060819040386 | erot = 4.81203544055977 | epot = -64.8147897345836 | etot = -48.4966723899852 +770000 ekin = 11.9954127335722 | erot = 4.78570420795079 | epot = -65.2777893330256 | etot = -48.4966723915025 +771000 ekin = 12.4710057577347 | erot = 4.76119431146144 | epot = -65.7288724618441 | etot = -48.496672392648 +772000 ekin = 12.9091287691281 | erot = 4.73689896144192 | epot = -66.1427001247808 | etot = -48.4966723942108 +773000 ekin = 13.2804102669379 | erot = 4.71070995674932 | epot = -66.4877926201609 | etot = -48.4966723964737 +774000 ekin = 13.5460331298012 | erot = 4.67959233345448 | epot = -66.722297859922 | etot = -48.4966723966663 +775000 ekin = 13.6741516116327 | erot = 4.63765248596424 | epot = -66.8084764974988 | etot = -48.4966723999019 +776000 ekin = 13.628690422074 | erot = 4.58103406304242 | epot = -66.7063968765447 | etot = -48.4966723914283 +777000 ekin = 13.4182048007198 | erot = 4.51743020949247 | epot = -66.4323074039082 | etot = -48.4966723936959 +778000 ekin = 13.0220035127683 | erot = 4.4494854147762 | epot = -65.9681613217113 | etot = -48.4966723941668 +779000 ekin = 12.4217380619164 | erot = 4.38036222327252 | epot = -65.2987726782465 | etot = -48.4966723930575 +780000 ekin = 11.6137715316259 | erot = 4.31519453332131 | epot = -64.4256384567752 | etot = -48.496672391828 +781000 ekin = 10.6252323249768 | erot = 4.25886110653795 | epot = -63.3807658174541 | etot = -48.4966723859394 +782000 ekin = 9.53385909883344 | erot = 4.2224816580653 | epot = -62.2530131360879 | etot = -48.4966723791891 +783000 ekin = 8.43150181510525 | erot = 4.21812348336708 | epot = -61.1462976708854 | etot = -48.4966723724131 +784000 ekin = 7.41120665840492 | erot = 4.2575375549945 | epot = -60.1654165798559 | etot = -48.4966723664564 +785000 ekin = 6.55493198928447 | erot = 4.35109016923504 | epot = -59.4026945205759 | etot = -48.4966723620564 +786000 ekin = 5.92286857657126 | erot = 4.50684669652378 | epot = -58.9263876327923 | etot = -48.4966723596973 +787000 ekin = 5.54648098967233 | erot = 4.7299135165133 | epot = -58.7730668656963 | etot = -48.4966723595107 +788000 ekin = 5.4268400436267 | erot = 5.02210237716071 | epot = -58.9456147820038 | etot = -48.4966723612164 +789000 ekin = 5.53848888146267 | erot = 5.38186888561947 | epot = -59.417030131408 | etot = -48.4966723643259 +790000 ekin = 5.83681660420195 | erot = 5.80448189906697 | epot = -60.1379708715072 | etot = -48.4966723682383 +791000 ekin = 6.26691431657487 | erot = 6.28226218223002 | epot = -61.0458488712309 | etot = -48.496672372426 +792000 ekin = 6.77233331503648 | erot = 6.80466729721686 | epot = -62.0736729886752 | etot = -48.4966723764219 +793000 ekin = 7.30112337038902 | erot = 7.35853037535933 | epot = -63.1563261258569 | etot = -48.4966723801085 +794000 ekin = 7.80874278960135 | erot = 7.92855734513757 | epot = -64.23397251805 | etot = -48.4966723833111 +795000 ekin = 8.166149843305 | erot = 8.55276407547022 | epot = -65.2155862981077 | etot = -48.4966723793324 +796000 ekin = 8.42449679165107 | erot = 9.23234180670203 | epot = -66.1535110090537 | etot = -48.4966724107006 +797000 ekin = 8.67431436577461 | erot = 9.74356995272924 | epot = -66.9145567255226 | etot = -48.4966724070187 +798000 ekin = 8.82807715634734 | erot = 10.1953217653807 | epot = -67.5200713293466 | etot = -48.4966724076186 +799000 ekin = 8.89463201681582 | erot = 10.5732151309609 | epot = -67.9645195546288 | etot = -48.496672406852 +800000 ekin = 8.89722969177869 | erot = 10.8667677315072 | epot = -68.2606698284465 | etot = -48.4966724051606 +801000 ekin = 8.87138017726285 | erot = 11.0709907383165 | epot = -68.4390433178315 | etot = -48.4966724022522 +802000 ekin = 8.86275607652829 | erot = 11.1875475892946 | epot = -68.5469760646282 | etot = -48.4966723988054 +803000 ekin = 8.9176116746532 | erot = 11.2243264570991 | epot = -68.6386105277505 | etot = -48.4966723959982 +804000 ekin = 9.06730079030281 | erot = 11.193261387315 | epot = -68.7572345726583 | etot = -48.4966723950405 +805000 ekin = 9.31347449932248 | erot = 11.1073163209106 | epot = -68.9174632168106 | etot = -48.4966723965776 +806000 ekin = 9.62719847633812 | erot = 10.9794864719304 | epot = -69.1033573472845 | etot = -48.496672399016 +807000 ekin = 9.96288601612691 | erot = 10.8230663453846 | epot = -69.2826247649949 | etot = -48.4966724034834 +808000 ekin = 10.2497439829731 | erot = 10.6432283956226 | epot = -69.3896447861036 | etot = -48.4966724075079 +809000 ekin = 10.4243193598606 | erot = 10.4427750449352 | epot = -69.3637668147487 | etot = -48.4966724099529 +810000 ekin = 10.4450308647548 | erot = 10.2230440397179 | epot = -69.1647473158114 | etot = -48.4966724113388 +811000 ekin = 10.2721813465492 | erot = 9.97917260809284 | epot = -68.7480263639892 | etot = -48.4966724093471 +812000 ekin = 9.92407619954989 | erot = 9.71416142509092 | epot = -68.1349100296174 | etot = -48.4966724049766 +813000 ekin = 9.46374629336789 | erot = 9.43470533281904 | epot = -67.395124024886 | etot = -48.496672398699 +814000 ekin = 8.98180729338922 | erot = 9.1490260761511 | epot = -66.6275057610053 | etot = -48.4966723914649 +815000 ekin = 8.58163269988549 | erot = 8.8668326191454 | epot = -65.9451377035029 | etot = -48.496672384472 +816000 ekin = 8.36010805287333 | erot = 8.59902958866148 | epot = -65.455810020633 | etot = -48.4966723790982 +817000 ekin = 8.3873440486996 | erot = 8.35708532025249 | epot = -65.2411017456872 | etot = -48.4966723767351 +818000 ekin = 8.68842134848364 | erot = 8.1517568394535 | epot = -65.3368505655993 | etot = -48.4966723776622 +819000 ekin = 9.23925212236388 | erot = 7.99221894929125 | epot = -65.7281434529098 | etot = -48.4966723812547 +820000 ekin = 9.8550592159835 | erot = 7.98557734062691 | epot = -66.3373089296726 | etot = -48.4966723730622 +821000 ekin = 10.558118791073 | erot = 8.08897892641499 | epot = -67.1437700948609 | etot = -48.4966723773729 +822000 ekin = 11.4203555752861 | erot = 8.0982092207411 | epot = -68.0152371771624 | etot = -48.4966723811352 +823000 ekin = 12.244965785656 | erot = 8.16990204354267 | epot = -68.9115402129071 | etot = -48.4966723837084 +824000 ekin = 12.988754108158 | erot = 8.30328899984907 | epot = -69.7887154934266 | etot = -48.4966723854196 +825000 ekin = 13.6250379000391 | erot = 8.49403789232663 | epot = -70.6157481794701 | etot = -48.4966723871044 +826000 ekin = 14.1275801417042 | erot = 8.7318216172602 | epot = -71.3560741514511 | etot = -48.4966723924867 +827000 ekin = 14.4569396392558 | erot = 8.99861686792267 | epot = -71.9522289032949 | etot = -48.4966723961164 +828000 ekin = 14.5801783883225 | erot = 9.2725614536099 | epot = -72.3494122418378 | etot = -48.4966723999054 +829000 ekin = 14.4667887755571 | erot = 9.52899253502381 | epot = -72.4924537132267 | etot = -48.4966724026458 +830000 ekin = 14.1008667947 | erot = 9.74540563437327 | epot = -72.3429448320052 | etot = -48.4966724029319 +831000 ekin = 13.493746625261 | erot = 9.90643642422692 | epot = -71.8968554497801 | etot = -48.4966724002922 +832000 ekin = 12.690621380299 | erot = 10.007761952949 | epot = -71.1950557280236 | etot = -48.4966723947756 +833000 ekin = 11.7661849043984 | erot = 10.0572478688343 | epot = -70.3201051609416 | etot = -48.4966723877089 +834000 ekin = 10.8109948247215 | erot = 10.071354504227 | epot = -69.3790217093276 | etot = -48.496672380379 +835000 ekin = 9.91642597846666 | erot = 10.0705783751749 | epot = -68.483676728931 | etot = -48.4966723752894 +836000 ekin = 9.14363254435414 | erot = 9.95662955052463 | epot = -67.5969343908025 | etot = -48.4966722959237 +837000 ekin = 8.79163957835885 | erot = 9.91123278088581 | epot = -67.1995446575618 | etot = -48.4966722983171 +838000 ekin = 8.42094145797661 | erot = 9.94835266834992 | epot = -66.8659664257576 | etot = -48.4966722994311 +839000 ekin = 8.20536768150395 | erot = 10.012243240367 | epot = -66.7142832242599 | etot = -48.496672302389 +840000 ekin = 8.10932302136739 | erot = 10.1009175364921 | epot = -66.7069128631837 | etot = -48.4966723053242 +841000 ekin = 8.09432718628577 | erot = 10.2103111789734 | epot = -66.8013106733128 | etot = -48.4966723080537 +842000 ekin = 8.12447284830409 | erot = 10.3366191345573 | epot = -66.957764293046 | etot = -48.4966723101846 +843000 ekin = 8.17242564793842 | erot = 10.4770425722838 | epot = -67.1461405317211 | etot = -48.4966723114989 +844000 ekin = 8.22381294807546 | erot = 10.629792152031 | epot = -67.3502774120134 | etot = -48.4966723119069 +845000 ekin = 8.27955127170831 | erot = 10.7936569680123 | epot = -67.5698805512956 | etot = -48.4966723115751 +846000 ekin = 8.35455925353356 | erot = 10.9672036716716 | epot = -67.8184352361507 | etot = -48.4966723109456 +847000 ekin = 8.47238635762968 | erot = 11.1476305380471 | epot = -68.1166892062117 | etot = -48.4966723105349 +848000 ekin = 8.65810273433286 | erot = 11.3297217924147 | epot = -68.4844968372748 | etot = -48.4966723105273 +849000 ekin = 8.9329020856651 | erot = 11.5057838965836 | epot = -68.9353582933334 | etot = -48.4966723110847 +850000 ekin = 9.30778062670253 | erot = 11.6667367391758 | epot = -69.4711896784517 | etot = -48.4966723125733 +851000 ekin = 9.77385593082056 | erot = 11.8036289180235 | epot = -70.074157164614 | etot = -48.4966723157699 +852000 ekin = 10.2902091175593 | erot = 11.9080163477226 | epot = -70.6948977866374 | etot = -48.4966723213555 +853000 ekin = 10.7774710897525 | erot = 11.9704639281082 | epot = -71.2446073468658 | etot = -48.4966723290051 +854000 ekin = 11.1286098495727 | erot = 11.9790690570371 | epot = -71.604351243113 | etot = -48.4966723365032 +855000 ekin = 11.2404537225969 | erot = 11.9198426881727 | epot = -71.6569687522265 | etot = -48.4966723414569 +856000 ekin = 11.0533273910054 | erot = 11.7779965318103 | epot = -71.3279962637786 | etot = -48.4966723409628 +857000 ekin = 10.5849568284532 | erot = 11.5448386331215 | epot = -70.626467795706 | etot = -48.4966723341314 +858000 ekin = 9.93782549625797 | erot = 11.2226264151964 | epot = -69.6571242340316 | etot = -48.4966723225772 +859000 ekin = 9.27338883856784 | erot = 10.8254282711299 | epot = -68.5954894195332 | etot = -48.4966723098354 +860000 ekin = 8.76267013930508 | erot = 10.3757646939758 | epot = -67.6351071329322 | etot = -48.4966722996514 +861000 ekin = 8.53556496732127 | erot = 9.89928978757217 | epot = -66.9315270491791 | etot = -48.4966722942857 +862000 ekin = 8.65070986986339 | erot = 9.42036719872688 | epot = -66.5677493624818 | etot = -48.4966722938915 +863000 ekin = 9.09319445840874 | erot = 8.96001365957565 | epot = -66.5498804151446 | etot = -48.4966722971602 +864000 ekin = 9.79331572305551 | erot = 8.53570874170276 | epot = -66.8256967670887 | etot = -48.4966723023304 +865000 ekin = 10.6528659483603 | erot = 8.1619337481963 | epot = -67.3114720044079 | etot = -48.4966723078513 +866000 ekin = 11.570639470114 | erot = 7.85082867468824 | epot = -67.9181404559871 | etot = -48.4966723111849 +867000 ekin = 12.4665855150464 | erot = 7.61306293828822 | epot = -68.5763207677325 | etot = -48.4966723143979 +868000 ekin = 13.2806731240691 | erot = 7.45693596344013 | epot = -69.2342814034079 | etot = -48.4966723158987 +869000 ekin = 13.9812766459746 | erot = 7.38865717133806 | epot = -69.8666061334702 | etot = -48.4966723161576 +870000 ekin = 14.5601728177746 | erot = 7.41145610128879 | epot = -70.4683012354412 | etot = -48.4966723163778 +871000 ekin = 15.0180932154381 | erot = 7.52387391479662 | epot = -71.0386394482707 | etot = -48.496672318036 +872000 ekin = 15.3437544430603 | erot = 7.71754298435372 | epot = -71.5579697497311 | etot = -48.496672322317 +873000 ekin = 15.4947478924952 | erot = 7.97535948551146 | epot = -71.9667797066116 | etot = -48.496672328605 +874000 ekin = 15.407202231947 | erot = 8.27349566688775 | epot = -72.1773702337631 | etot = -48.4966723349283 +875000 ekin = 15.0202820880963 | erot = 8.58584611780907 | epot = -72.1028005443991 | etot = -48.4966723384937 +876000 ekin = 14.3103753074346 | erot = 8.89001531355927 | epot = -71.6970629580795 | etot = -48.4966723370855 +877000 ekin = 13.3177867535852 | erot = 9.17198109359335 | epot = -70.9864401776007 | etot = -48.4966723304222 +878000 ekin = 12.1489812351109 | erot = 9.42690022996156 | epot = -70.0725537857661 | etot = -48.4966723206936 +879000 ekin = 10.9478679143888 | erot = 9.65570814731649 | epot = -69.1002483732838 | etot = -48.4966723115786 +880000 ekin = 9.84816823143918 | erot = 9.86012585832544 | epot = -68.2049663957869 | etot = -48.4966723060222 +881000 ekin = 8.93418864746356 | erot = 10.0399671441925 | epot = -67.4708280961072 | etot = -48.4966723044512 +882000 ekin = 8.23233878449478 | erot = 10.1944686101195 | epot = -66.9234796997606 | etot = -48.4966723051463 +883000 ekin = 7.73079373835382 | erot = 10.3254556489762 | epot = -66.5529216930004 | etot = -48.4966723056704 +884000 ekin = 7.40639354985591 | erot = 10.4389581940177 | epot = -66.3420240509761 | etot = -48.4966723071025 +885000 ekin = 7.23012883993839 | erot = 10.5425263257092 | epot = -66.2693274739808 | etot = -48.4966723083332 +886000 ekin = 7.17188160896479 | erot = 10.6423872901515 | epot = -66.3109412087852 | etot = -48.4966723096689 +887000 ekin = 7.20359993936233 | erot = 10.7423767443422 | epot = -66.442648994669 | etot = -48.4966723109645 +888000 ekin = 7.30083390128708 | erot = 10.8444815153507 | epot = -66.6419877285173 | etot = -48.4966723118796 +889000 ekin = 7.44584663032084 | erot = 10.9502816363572 | epot = -66.8928005790067 | etot = -48.4966723123287 +890000 ekin = 7.62600694147961 | erot = 11.0610746470698 | epot = -67.1837539023109 | etot = -48.4966723137615 +891000 ekin = 7.81873874270141 | erot = 11.1753311202036 | epot = -67.4907421800912 | etot = -48.4966723171861 +892000 ekin = 7.97874969401364 | erot = 11.2859136977755 | epot = -67.7613357142635 | etot = -48.4966723224743 +893000 ekin = 8.03989395229215 | erot = 11.3794214309858 | epot = -67.9159877114687 | etot = -48.4966723281907 +894000 ekin = 7.93829359555365 | erot = 11.4397930632517 | epot = -67.8747589906465 | etot = -48.4966723318411 +895000 ekin = 7.64207855034557 | erot = 11.4549096573215 | epot = -67.5936605304564 | etot = -48.4966723227894 +896000 ekin = 7.25994289827124 | erot = 11.4314794324918 | epot = -67.1880946508022 | etot = -48.4966723200391 +897000 ekin = 6.87440345797014 | erot = 11.3807194356204 | epot = -66.7517952086825 | etot = -48.496672315092 +898000 ekin = 6.54072238139674 | erot = 11.3170504950422 | epot = -66.354445186451 | etot = -48.496672310012 +899000 ekin = 6.31497972642606 | erot = 11.2562721777788 | epot = -66.0679242108463 | etot = -48.4966723066414 +900000 ekin = 6.23427080209186 | erot = 11.2089558194278 | epot = -65.9398989273792 | etot = -48.4966723058596 +901000 ekin = 6.30716786529804 | erot = 11.1769912987548 | epot = -65.9808314715013 | etot = -48.4966723074485 +902000 ekin = 6.51603863961298 | erot = 11.1540745980084 | epot = -66.166785548034 | etot = -48.4966723104126 +903000 ekin = 6.82764115165212 | erot = 11.1292357610214 | epot = -66.4535492262252 | etot = -48.4966723135516 +904000 ekin = 7.2059458167967 | erot = 11.0915307924457 | epot = -66.7941489251963 | etot = -48.4966723159539 +905000 ekin = 7.62139055525756 | erot = 11.0338529932702 | epot = -67.1519158659189 | etot = -48.4966723173912 +906000 ekin = 8.0531440169716 | erot = 10.9545483953339 | epot = -67.5043647304589 | etot = -48.4966723181534 +907000 ekin = 8.48596871323775 | erot = 10.8568809769567 | epot = -67.839522008857 | etot = -48.4966723186626 +908000 ekin = 8.90584093631453 | erot = 10.7475317189068 | epot = -68.1500449743946 | etot = -48.4966723191733 +909000 ekin = 9.2981187661667 | erot = 10.6353835916215 | epot = -68.4301746772618 | etot = -48.4966723194736 +910000 ekin = 9.64930057745103 | erot = 10.5309201112748 | epot = -68.6768930082989 | etot = -48.4966723195732 +911000 ekin = 9.94798520561604 | erot = 10.445428126332 | epot = -68.8900856515363 | etot = -48.4966723195882 +912000 ekin = 10.1842847265749 | erot = 10.3896169166176 | epot = -69.0705739631292 | etot = -48.4966723199367 +913000 ekin = 10.3464242432486 | erot = 10.371503449062 | epot = -69.2146000133927 | etot = -48.4966723210821 +914000 ekin = 10.4159486656299 | erot = 10.3940912351748 | epot = -69.3067122242574 | etot = -48.4966723234527 +915000 ekin = 10.3649219584732 | erot = 10.4538252075313 | epot = -69.3154194926583 | etot = -48.4966723266538 +916000 ekin = 10.1612630535764 | erot = 10.5413791273757 | epot = -69.1993145104154 | etot = -48.4966723294633 +917000 ekin = 9.79071145878735 | erot = 10.6444144951849 | epot = -68.9317982845541 | etot = -48.4966723305818 +918000 ekin = 9.26089495094651 | erot = 10.7518360031647 | epot = -68.509403282558 | etot = -48.4966723284468 +919000 ekin = 8.61736183915388 | erot = 10.8585966357191 | epot = -67.9726307968488 | etot = -48.4966723219758 +920000 ekin = 7.96059242727767 | erot = 10.9667865222643 | epot = -67.4240512625502 | etot = -48.4966723130081 +921000 ekin = 7.42062866669523 | erot = 11.0831224396019 | epot = -67.0004234112517 | etot = -48.4966723049545 +922000 ekin = 7.11192604620465 | erot = 11.213865062059 | epot = -66.8224634097993 | etot = -48.4966723015356 +923000 ekin = 7.08988024943638 | erot = 11.3600862488331 | epot = -66.9466388009244 | etot = -48.496672302655 +924000 ekin = 7.33691451843237 | erot = 11.5138164836438 | epot = -67.3474033140639 | etot = -48.4966723119878 +925000 ekin = 7.75066984786481 | erot = 11.6552585802304 | epot = -67.9026007500439 | etot = -48.4966723219487 +926000 ekin = 8.19653351914579 | erot = 11.7619530750869 | epot = -68.455158925525 | etot = -48.4966723312923 +927000 ekin = 8.54738330763445 | erot = 11.8134968265722 | epot = -68.8575524720345 | etot = -48.4966723378279 +928000 ekin = 8.71145228710507 | erot = 11.7955386585214 | epot = -69.0036632860693 | etot = -48.4966723404428 +929000 ekin = 8.64121812944182 | erot = 11.702544250028 | epot = -68.8404347191515 | etot = -48.4966723396816 +930000 ekin = 8.33447880146975 | erot = 11.5389737680376 | epot = -68.3701249045833 | etot = -48.4966723350759 +931000 ekin = 7.84128687972334 | erot = 11.3199153556612 | epot = -67.6578745633159 | etot = -48.4966723279314 +932000 ekin = 7.24436702165883 | erot = 11.0677318732717 | epot = -66.808771214749 | etot = -48.4966723198185 +933000 ekin = 6.63984713610501 | erot = 10.8074687702607 | epot = -65.9439882187064 | etot = -48.4966723123406 +934000 ekin = 6.11754593051298 | erot = 10.5621552833725 | epot = -65.1763735206371 | etot = -48.4966723067517 +935000 ekin = 5.74541765521402 | erot = 10.3493855079979 | epot = -64.5914754667476 | etot = -48.4966723035357 +936000 ekin = 5.56181702344705 | erot = 10.1798783881607 | epot = -64.2383677144363 | etot = -48.4966723028286 +937000 ekin = 5.57387640327936 | erot = 10.0571518020917 | epot = -64.1277005096326 | etot = -48.4966723042616 +938000 ekin = 5.76140456209132 | erot = 9.97823911606649 | epot = -64.2363159855043 | etot = -48.4966723073465 +939000 ekin = 6.08318988638494 | erot = 9.93455888124384 | epot = -64.5144210794316 | etot = -48.4966723118029 +940000 ekin = 6.48293885679984 | erot = 9.91175572325734 | epot = -64.8913668973667 | etot = -48.4966723173095 +941000 ekin = 6.89458667494459 | erot = 9.89006577308746 | epot = -65.2813247714941 | etot = -48.4966723234621 +942000 ekin = 7.2486944403872 | erot = 9.84545861919656 | epot = -65.5908253891153 | etot = -48.4966723295315 +943000 ekin = 7.48274008792501 | erot = 9.75224430251525 | epot = -65.73165672461 | etot = -48.4966723341697 +944000 ekin = 7.55661078927992 | erot = 9.58809869855624 | epot = -65.6413818235762 | etot = -48.49667233574 +945000 ekin = 7.47011756783039 | erot = 9.34043578936074 | epot = -65.3072256902498 | etot = -48.4966723330586 +946000 ekin = 7.27386532679615 | erot = 9.01155536675472 | epot = -64.7820930198635 | etot = -48.4966723263126 +947000 ekin = 7.06319370201748 | erot = 8.61969480788043 | epot = -64.179560827485 | etot = -48.4966723175871 +948000 ekin = 6.95249219209068 | erot = 8.19479074961839 | epot = -63.6439552510929 | etot = -48.4966723093838 +949000 ekin = 7.04165184843665 | erot = 7.77196767267864 | epot = -63.3102918255315 | etot = -48.4966723044162 +950000 ekin = 7.38393235005282 | erot = 7.38215863435772 | epot = -63.2627632880478 | etot = -48.4966723036373 +951000 ekin = 7.97686792819456 | erot = 7.04490011949532 | epot = -63.5184403540008 | etot = -48.4966723063109 +952000 ekin = 8.77198923537714 | erot = 6.76886820062407 | epot = -64.0375297473456 | etot = -48.4966723113444 +953000 ekin = 9.68951089962173 | erot = 6.55318209056052 | epot = -64.7393653086516 | etot = -48.4966723184694 +954000 ekin = 10.625545173257 | erot = 6.39139135053334 | epot = -65.5136088501269 | etot = -48.4966723263366 +955000 ekin = 11.459195976534 | erot = 6.27379828419293 | epot = -66.2296665951486 | etot = -48.4966723344217 +956000 ekin = 12.0705908699296 | erot = 6.18965545539867 | epot = -66.7569186667193 | etot = -48.496672341391 +957000 ekin = 12.3578057515742 | erot = 6.13109121395203 | epot = -66.9855693108173 | etot = -48.4966723452911 +958000 ekin = 12.2639561605225 | erot = 6.09526076408633 | epot = -66.8558892689087 | etot = -48.4966723442999 +959000 ekin = 11.8028932787518 | erot = 6.08530913759149 | epot = -66.3848747536715 | etot = -48.4966723373283 +960000 ekin = 11.0657748712033 | erot = 6.10961273201249 | epot = -65.6720599301514 | etot = -48.4966723269356 +961000 ekin = 10.1976851857911 | erot = 6.17940626632498 | epot = -64.8737637674829 | etot = -48.4966723153668 +962000 ekin = 9.36006056033443 | erot = 6.3057643499174 | epot = -64.1624972165041 | etot = -48.4966723062522 +963000 ekin = 8.68052625435703 | erot = 6.49616547714195 | epot = -63.6733640336944 | etot = -48.4966723021954 +964000 ekin = 8.21670813103556 | erot = 6.75219994305738 | epot = -63.4655803776174 | etot = -48.4966723035245 +965000 ekin = 7.95112951723659 | erot = 7.06933978727814 | epot = -63.5171416128752 | etot = -48.4966723083604 +966000 ekin = 7.81882046045959 | erot = 7.43840285638279 | epot = -63.7538956305659 | etot = -48.4966723137236 +967000 ekin = 7.74912903238494 | erot = 7.84702228791584 | epot = -64.0928236389113 | etot = -48.4966723186105 +968000 ekin = 7.67539244782124 | erot = 8.28177833614435 | epot = -64.4538431057827 | etot = -48.4966723218171 +969000 ekin = 7.55990272706149 | erot = 8.72822682525186 | epot = -64.7848018759069 | etot = -48.4966723235936 +970000 ekin = 7.38809514504139 | erot = 9.1706253329465 | epot = -65.0553928030932 | etot = -48.4966723251053 +971000 ekin = 7.15239238646895 | erot = 9.59185822210274 | epot = -65.2409229350178 | etot = -48.4966723264461 +972000 ekin = 6.85180495473256 | erot = 9.97461998900114 | epot = -65.323097270943 | etot = -48.4966723272093 +973000 ekin = 6.49404712572963 | erot = 10.3038859961783 | epot = -65.2946054486949 | etot = -48.4966723267869 +974000 ekin = 6.10144996584987 | erot = 10.5696876848613 | epot = -65.1678099751018 | etot = -48.4966723243906 +975000 ekin = 5.71827862095584 | erot = 10.768092346607 | epot = -64.9830432881918 | etot = -48.4966723206289 +976000 ekin = 5.40201311505247 | erot = 10.9003005365461 | epot = -64.7989859682497 | etot = -48.4966723166511 +977000 ekin = 5.20833587548647 | erot = 10.9708214105959 | epot = -64.6758296002104 | etot = -48.496672314128 +978000 ekin = 5.16924581638857 | erot = 10.9846732064771 | epot = -64.6505913371465 | etot = -48.4966723142808 +979000 ekin = 5.27779877902274 | erot = 10.9455170781611 | epot = -64.7199881739085 | etot = -48.4966723167247 +980000 ekin = 5.49322046495708 | erot = 10.8569988007143 | epot = -64.8468915854391 | etot = -48.4966723197677 +981000 ekin = 5.76179865074904 | erot = 10.726517715687 | epot = -64.9849886877658 | etot = -48.4966723213298 +982000 ekin = 6.0434859150675 | erot = 10.5685834909351 | epot = -65.1087417263039 | etot = -48.4966723203013 +983000 ekin = 6.32848467150841 | erot = 10.4050435737129 | epot = -65.2302005622159 | etot = -48.4966723169946 +984000 ekin = 6.63689938808603 | erot = 10.2617391991563 | epot = -65.3953108999642 | etot = -48.4966723127219 +985000 ekin = 7.00519514142896 | erot = 10.1634367427884 | epot = -65.6653041932412 | etot = -48.4966723090238 +986000 ekin = 7.46792966870151 | erot = 10.1293593733502 | epot = -66.0939613491783 | etot = -48.4966723071267 +987000 ekin = 8.0417524024767 | erot = 10.170567974692 | epot = -66.7089926848975 | etot = -48.4966723077288 +988000 ekin = 8.71523239355653 | erot = 10.2892285366076 | epot = -67.5011332411574 | etot = -48.4966723109932 +989000 ekin = 9.44555556323164 | erot = 10.4792258391849 | epot = -68.4214537221049 | etot = -48.4966723196884 +990000 ekin = 10.147314872708 | erot = 10.722478708467 | epot = -69.3664659087734 | etot = -48.4966723275984 +991000 ekin = 10.7156853232285 | erot = 10.9958515592977 | epot = -70.2082092180937 | etot = -48.4966723355675 +992000 ekin = 11.0552138419303 | erot = 11.2781950491444 | epot = -70.8300812327856 | etot = -48.496672341711 +993000 ekin = 11.0952058420832 | erot = 11.5520851648231 | epot = -71.1439633511133 | etot = -48.496672344207 +994000 ekin = 10.8115610752779 | erot = 11.8083197905567 | epot = -71.1165532078995 | etot = -48.4966723420649 +995000 ekin = 10.2380910205381 | erot = 12.0483836075147 | epot = -70.7831469637494 | etot = -48.4966723356967 +996000 ekin = 9.46083674880266 | erot = 12.2834739306309 | epot = -70.2409830062614 | etot = -48.4966723268278 +997000 ekin = 8.59669857335092 | erot = 12.5302960540965 | epot = -69.6236669451915 | etot = -48.496672317744 +998000 ekin = 7.76544231192214 | erot = 12.806128320963 | epot = -69.0682429431554 | etot = -48.4966723102702 +999000 ekin = 7.06575290471557 | erot = 13.1250004270275 | epot = -68.6874256372488 | etot = -48.4966723055057 +1000000 ekin = 6.56133017801672 | erot = 13.4950387121477 | epot = -68.5530411938935 | etot = -48.4966723037291 + 1000000 244.5767 -69.23317 0.68012891 -61.991711 -0.012778323 39304000 +Loop time of 11.4095 on 4 procs for 1000000 steps with 10 atoms + +Performance: 129.189 ns/day, 0.186 hours/ns, 87646.083 timesteps/s, 876.461 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.9984 | 4.6915 | 6.6489 | 59.9 | 41.12 +Bond | 0.15743 | 0.20489 | 0.24566 | 8.9 | 1.80 +Neigh | 0.003395 | 0.0034335 | 0.003477 | 0.1 | 0.03 +Comm | 2.5981 | 4.8289 | 6.5413 | 64.5 | 42.32 +Output | 0.054733 | 0.058039 | 0.065343 | 1.8 | 0.51 +Modify | 0.4272 | 0.49029 | 0.54447 | 6.4 | 4.30 +Other | | 1.132 | | | 9.93 + +Nlocal: 2.5 ave 3 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 8 max 7 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 16 max 2 min +Histogram: 1 0 1 0 0 0 0 0 1 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 3.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:11 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/data.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/data.duplex1 new file mode 100644 index 0000000000..a368cef424 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/data.duplex1 @@ -0,0 +1,68 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +10 atoms +4 atom types +8 bonds +1 bond types +10 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -2.8740969069282687 -3.723118600434732 5.494693518792015 1 1 1.0016462505133576 0 0 0 +2 2 -2.7379071878387986 -6.079929519421481 10.066032484018534 1 1 1.0016462505133576 0 0 0 +3 3 -1.110437385073819 -7.791537941948432 13.848676172779387 1 1 1.0016462505133576 0 0 0 +4 4 1.4306089998272526 -8.354886654263622 17.79828313773629 1 1 1.0016462505133576 0 0 0 +5 1 3.9498326729322186 -6.646891787969407 20.657842369456382 1 1 1.0016462505133576 0 0 0 +6 4 -3.801540967989063 0.7719150486872158 21.01300417274477 2 1 1.0016462505133576 0 0 0 +7 1 -0.287657468030243 1.787063409177335 17.702181979507532 2 1 1.0016462505133576 0 0 0 +8 2 2.8086617684512323 1.5040732709582532 14.656350509768911 2 1 1.0016462505133576 0 0 0 +9 3 5.165059071666839 0.3988634556159852 10.50699529001116 2 1 1.0016462505133576 0 0 0 +10 4 6.817789789050184 -3.1038996716078557 8.419212766646357 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.0015993537866009029 -0.000680681865016988 -0.00014678467473993874 1.3034875452014287 -0.6725260292370423 1.5263182328899618 +2 0.0008422431968202534 -0.0002471920411024751 0.0007894382186365997 -0.32615096872390803 -0.0034351199136194157 -0.9136220137417161 +3 -0.0011446153381118452 0.00041850425643063176 -0.00045926941555484915 1.7184317758530245 2.6050996986101502 -0.47065934236730145 +4 -0.0011077496385743138 0.0002472924939324634 -0.00034633314311123244 -0.5778245520276679 1.752085001878762 -0.24048635097513535 +5 0.0004072478403200556 -0.0012804934445473403 0.0008610591638760516 0.23142339993018143 0.3972766524238825 1.363641236078021 +6 0.00017968178785700138 -0.00024308968845109275 0.00014280408309295725 0.1704955558294103 -1.3525913126172677 1.5501424653239764 +7 -4.108556803115003e-05 0.00023724044475488887 -0.00013843701960263193 0.7809156374181498 -2.1218743676572576 0.2975087875146955 +8 -0.00035835254321313353 0.0008579277312926632 0.0019500603503724006 -0.711656157643413 -2.0351916264105014 -0.7613827970610736 +9 -0.0008730894357027041 -0.00039026927657647716 0.0002796967510539106 -1.193834703375802 1.023301140813147 -1.8342354268493246 +10 0.0009421885758929626 -0.0005326396944231774 0.0006296458639527654 -0.24420734152643714 1.5633648178267814 0.6376075187926279 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 6 7 +6 1 7 8 +7 1 8 9 +8 1 9 10 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9890278201757743 0.01779228232037064 -0.14337734159225404 0.030827642240801516 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.939687458852748 0.04174166924055095 -0.023337773785056866 0.338674565089608 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.8210113150655425 0.03012140921736572 0.017666019956944813 0.5698429897612057 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.6623662858285051 -0.028186343967346823 0.022942552517501488 0.7482981175276918 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.3601488726765216 0.0513614985821682 0.0724224158335286 0.9286602067807472 +6 9.999999997766462 9.999999997766462 9.999999997766462 0.11941234710084649 0.9244660117493703 -0.35317942248051865 -0.07979711784524246 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.17949125421205164 0.7412884899431119 -0.6379094464220707 0.1065166771202199 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.10483691088405202 0.5508895999584645 -0.8250090480220789 0.06992811634525403 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.07777239911646 -0.3724087549185288 0.9103052384821374 -0.1631181963720798 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.16279109707978262 0.027148630125149613 0.9849325709665359 -0.0516705065113425 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 new file mode 100644 index 0000000000..7acde1b080 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 @@ -0,0 +1,74 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * oxdna2.real +special_bonds fene + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv oxdna2.real +pair_coeff * * oxdna2/stk seqav 300.0 8.06199211612242 0.005309213 oxdna2.real +pair_coeff * * oxdna2/hbond seqav oxdna2.real +pair_coeff 1 4 oxdna2/hbond seqav oxdna2.real +pair_coeff 2 3 oxdna2/hbond seqav oxdna2.real +pair_coeff * * oxdna2/xstk oxdna2.real +pair_coeff * * oxdna2/coaxstk oxdna2.real +pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2.real + + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 new file mode 100644 index 0000000000..9408282187 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.1 @@ -0,0 +1,1118 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna2.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 2 = max # of 1-2 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (dh) file oxdna2.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.64003240988628 (src/comm.cpp:739) +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.9029330618618 | etot = -50.5142754103307 +Per MPI rank memory allocation (min/avg/max) = 7.467 | 7.467 | 7.467 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.289462 6.3865285 -67.29606 -0.044626926 39304000 +1000 ekin = 6.41540831684953 | erot = 17.3249788985168 | epot = -74.2546626270295 | etot = -50.5142754116631 +2000 ekin = 6.27991122577832 | erot = 17.8454504610745 | epot = -74.6396371002362 | etot = -50.5142754133834 +3000 ekin = 6.20398291945338 | erot = 18.314076603922 | epot = -75.0323349385582 | etot = -50.5142754151829 +4000 ekin = 6.1863619976757 | erot = 18.7040547099771 | epot = -75.4046921244017 | etot = -50.5142754167489 +5000 ekin = 6.2221573215847 | erot = 18.9942188143058 | epot = -75.7306515537703 | etot = -50.5142754178798 +6000 ekin = 6.30420734178878 | erot = 19.1708709879921 | epot = -75.9893537482964 | etot = -50.5142754185155 +7000 ekin = 6.42413491039012 | erot = 19.2280244216481 | epot = -76.1664347507277 | etot = -50.5142754186894 +8000 ekin = 6.57305019042843 | erot = 19.1666743693588 | epot = -76.2539999782607 | etot = -50.5142754184734 +9000 ekin = 6.74208660925334 | erot = 18.9937209190127 | epot = -76.2500829461571 | etot = -50.514275417891 +10000 ekin = 6.92290866428275 | erot = 18.721233888504 | epot = -76.1584179697748 | etot = -50.514275416988 +11000 ekin = 7.10814925172427 | erot = 18.3654806858384 | epot = -75.9879053534121 | etot = -50.5142754158494 +12000 ekin = 7.29164020767442 | erot = 17.9454168333363 | epot = -75.7513324556478 | etot = -50.514275414637 +13000 ekin = 7.46835372796839 | erot = 17.4806722087774 | epot = -75.4633013502363 | etot = -50.5142754134906 +14000 ekin = 7.63410684865959 | erot = 16.9894852695683 | epot = -75.1378675308068 | etot = -50.514275412579 +15000 ekin = 7.78518315372064 | erot = 16.4873283506092 | epot = -74.786786916147 | etot = -50.5142754118172 +16000 ekin = 7.91804895618152 | erot = 15.9866370289751 | epot = -74.4189613960958 | etot = -50.5142754109392 +17000 ekin = 8.02929115914049 | erot = 15.4954883395917 | epot = -74.039054909871 | etot = -50.5142754111388 +18000 ekin = 8.11580274929381 | erot = 15.0161795148028 | epot = -73.6462576756318 | etot = -50.5142754115352 +19000 ekin = 8.17521064582063 | erot = 14.545500722027 | epot = -73.2349867798162 | etot = -50.5142754119685 +20000 ekin = 8.2064655331787 | erot = 14.0791106720699 | epot = -72.7998516175188 | etot = -50.5142754122702 +21000 ekin = 8.21050499747768 | erot = 13.6133776866134 | epot = -72.3381580963795 | etot = -50.5142754122884 +22000 ekin = 8.19089628973037 | erot = 13.1469621627645 | epot = -71.8521338644035 | etot = -50.5142754119086 +23000 ekin = 8.154366254026 | erot = 12.6819076192474 | epot = -71.3505492843428 | etot = -50.5142754110693 +24000 ekin = 8.11112226003199 | erot = 12.2241028664328 | epot = -70.8495005362371 | etot = -50.5142754097723 +25000 ekin = 8.07483898562208 | erot = 11.783077489027 | epot = -70.3721918827438 | etot = -50.5142754080948 +26000 ekin = 8.06214574493345 | erot = 11.3711691532402 | epot = -69.9475903043468 | etot = -50.5142754061732 +27000 ekin = 8.09157304392363 | erot = 11.0021655564046 | epot = -69.6080140045702 | etot = -50.5142754042419 +28000 ekin = 8.18160915522528 | erot = 10.6895124998217 | epot = -69.3853970576593 | etot = -50.5142754026123 +29000 ekin = 8.34799192749685 | erot = 10.4442109367339 | epot = -69.3064782658694 | etot = -50.5142754016386 +30000 ekin = 8.6005090155205 | erot = 10.2725968652589 | epot = -69.387381282446 | etot = -50.5142754016666 +31000 ekin = 8.93993736466304 | erot = 10.1743202831904 | epot = -69.628533050782 | etot = -50.5142754029286 +32000 ekin = 9.35601638498844 | erot = 10.140997954843 | epot = -70.0112897452844 | etot = -50.514275405453 +33000 ekin = 9.82730889560453 | erot = 10.157308804684 | epot = -70.4988931092325 | etot = -50.5142754089439 +34000 ekin = 10.3233617248882 | erot = 10.2017701889081 | epot = -71.0394073268383 | etot = -50.5142754130419 +35000 ekin = 10.8090561190438 | erot = 10.247264926477 | epot = -71.5705964624689 | etot = -50.5142754169481 +36000 ekin = 11.249914122839 | erot = 10.2681203532653 | epot = -72.0323098961298 | etot = -50.5142754200254 +37000 ekin = 11.6169651147169 | erot = 10.2446303624725 | epot = -72.3758708990397 | etot = -50.5142754218503 +38000 ekin = 11.8900149081475 | erot = 10.1661461993862 | epot = -72.570436529843 | etot = -50.5142754223094 +39000 ekin = 12.0587831385577 | erot = 10.0319213337583 | epot = -72.6049798938919 | etot = -50.5142754215758 +40000 ekin = 12.122142396546 | erot = 9.84972970547098 | epot = -72.486147522015 | etot = -50.514275419998 +41000 ekin = 12.0861841074656 | erot = 9.63306258024731 | epot = -72.2335221056766 | etot = -50.5142754179636 +42000 ekin = 11.9619003024208 | erot = 9.39799829870687 | epot = -71.87417401693 | etot = -50.5142754158023 +43000 ekin = 11.763028556965 | erot = 9.16060997815283 | epot = -71.437913948862 | etot = -50.5142754137441 +44000 ekin = 11.5042972043492 | erot = 8.9352528014311 | epot = -70.9538254179092 | etot = -50.5142754121289 +45000 ekin = 11.2001042846034 | erot = 8.73270158680084 | epot = -70.4470812820298 | etot = -50.5142754106255 +46000 ekin = 10.8635866168487 | erot = 8.56191440586786 | epot = -69.9397764321241 | etot = -50.5142754094075 +47000 ekin = 10.5060426541438 | erot = 8.43032536515553 | epot = -69.4506434277691 | etot = -50.5142754084698 +48000 ekin = 10.1367333285103 | erot = 8.3437951227817 | epot = -68.9948038590509 | etot = -50.514275407759 +49000 ekin = 9.76306209921957 | erot = 8.30714647396251 | epot = -68.5844839803859 | etot = -50.5142754072038 +50000 ekin = 9.39110096123118 | erot = 8.32465746225203 | epot = -68.2300338302009 | etot = -50.5142754067177 +51000 ekin = 9.02637094808728 | erot = 8.40044977381002 | epot = -67.9410961281177 | etot = -50.5142754062204 +52000 ekin = 8.6747296083158 | erot = 8.53870234353609 | epot = -67.7277073575007 | etot = -50.5142754056488 +53000 ekin = 8.34318047181607 | erot = 8.74362113488868 | epot = -67.6010770116707 | etot = -50.5142754049659 +54000 ekin = 8.04040850085707 | erot = 9.01907630543251 | epot = -67.573760210546 | etot = -50.5142754042564 +55000 ekin = 7.77685567444779 | erot = 9.36744157045986 | epot = -67.6585726485232 | etot = -50.5142754036156 +56000 ekin = 7.56421834771052 | erot = 9.78833936441828 | epot = -67.8668331153473 | etot = -50.5142754032185 +57000 ekin = 7.41438670675999 | erot = 10.2770459211366 | epot = -68.2057080311509 | etot = -50.5142754032544 +58000 ekin = 7.33802624874224 | erot = 10.8230821587553 | epot = -68.6753838113651 | etot = -50.5142754038675 +59000 ekin = 7.34316098271584 | erot = 11.4095663142002 | epot = -69.2670027020093 | etot = -50.5142754050933 +60000 ekin = 7.43413000753824 | erot = 12.0137183042261 | epot = -69.9621237186161 | etot = -50.5142754068517 +61000 ekin = 7.61111888193116 | erot = 12.6084567926324 | epot = -70.7338510836113 | etot = -50.5142754090478 +62000 ekin = 7.870212751877 | erot = 13.1643184159412 | epot = -71.548806579169 | etot = -50.5142754113508 +63000 ekin = 8.20369524488213 | erot = 13.6538505067939 | epot = -72.3718211650923 | etot = -50.5142754134162 +64000 ekin = 8.60031282923883 | erot = 14.0539021280606 | epot = -73.1684903728585 | etot = -50.5142754155591 +65000 ekin = 9.04632694082969 | erot = 14.3452399471043 | epot = -73.9058423052425 | etot = -50.5142754173085 +66000 ekin = 9.52633841545716 | erot = 14.5163977172634 | epot = -74.5570115512596 | etot = -50.5142754185391 +67000 ekin = 10.023966290935 | erot = 14.5650853618126 | epot = -75.1033270719431 | etot = -50.5142754191956 +68000 ekin = 10.5223769651099 | erot = 14.4984989976631 | epot = -75.5351513820878 | etot = -50.5142754193148 +69000 ekin = 11.0045882552174 | erot = 14.3324567229674 | epot = -75.8513203972072 | etot = -50.5142754190223 +70000 ekin = 11.4535533147711 | erot = 14.0893789066284 | epot = -76.057207639911 | etot = -50.5142754185115 +71000 ekin = 11.8521538801903 | erot = 13.79542130906 | epot = -76.1618506069767 | etot = -50.5142754177265 +72000 ekin = 12.1833321321141 | erot = 13.477970603226 | epot = -76.1755781528749 | etot = -50.5142754175347 +73000 ekin = 12.4276815038091 | erot = 13.1602120049099 | epot = -76.1021689263872 | etot = -50.5142754176682 +74000 ekin = 12.5675503165872 | erot = 12.8593249179889 | epot = -75.9411506526185 | etot = -50.5142754180425 +75000 ekin = 12.5880722472041 | erot = 12.5864734132401 | epot = -75.6888210788976 | etot = -50.5142754184534 +76000 ekin = 12.4791879307482 | erot = 12.3474886698871 | epot = -75.3409520192492 | etot = -50.5142754186139 +77000 ekin = 12.2380594263611 | erot = 12.1445664156593 | epot = -74.8969012602668 | etot = -50.5142754182465 +78000 ekin = 11.8710909455366 | erot = 11.9782430722448 | epot = -74.3636094349577 | etot = -50.5142754171763 +79000 ekin = 11.3949317822823 | erot = 11.848879253422 | epot = -73.7580864511041 | etot = -50.5142754153999 +80000 ekin = 10.8360121848366 | erot = 11.7571641077354 | epot = -73.1074517056631 | etot = -50.5142754130911 +81000 ekin = 10.2285029505784 | erot = 11.7036410573988 | epot = -72.4464194185281 | etot = -50.5142754105509 +82000 ekin = 9.61095186500036 | erot = 11.6876732074591 | epot = -71.812900480592 | etot = -50.5142754081325 +83000 ekin = 9.02210953811139 | erot = 11.7064078446989 | epot = -71.2427927889811 | etot = -50.5142754061708 +84000 ekin = 8.49658156956786 | erot = 11.7541576431629 | epot = -70.7650146176588 | etot = -50.514275404928 +85000 ekin = 8.06096889575731 | erot = 11.8223883028496 | epot = -70.3976326031555 | etot = -50.5142754045486 +86000 ekin = 7.73111762512489 | erot = 11.9003213122164 | epot = -70.145714342385 | etot = -50.5142754050437 +87000 ekin = 7.51095945896616 | erot = 11.9760199352984 | epot = -70.0012548008789 | etot = -50.5142754066143 +88000 ekin = 7.39125161739367 | erot = 12.0367692288908 | epot = -69.9422962547361 | etot = -50.5142754084516 +89000 ekin = 7.35291960067763 | erot = 12.0715131146599 | epot = -69.9387081257095 | etot = -50.5142754103719 +90000 ekin = 7.37292152740792 | erot = 12.0742094418178 | epot = -69.9614063812379 | etot = -50.5142754120122 +91000 ekin = 7.42677225769639 | erot = 12.0445134023064 | epot = -69.9855610731053 | etot = -50.5142754131025 +92000 ekin = 7.49195579980711 | erot = 11.9883651963225 | epot = -69.9945964096581 | etot = -50.5142754135285 +93000 ekin = 7.55030810819686 | erot = 11.9173535388133 | epot = -69.9819370603461 | etot = -50.5142754133359 +94000 ekin = 7.58924049100661 | erot = 11.8468330690203 | epot = -69.9503489726995 | etot = -50.5142754126726 +95000 ekin = 7.6020025204481 | erot = 11.7936183338065 | epot = -69.9098962660033 | etot = -50.5142754117487 +96000 ekin = 7.58730388646345 | erot = 11.7732310350296 | epot = -69.8748103322612 | etot = -50.5142754107681 +97000 ekin = 7.54854000456008 | erot = 11.7975124404598 | epot = -69.8603278549292 | etot = -50.5142754099092 +98000 ekin = 7.49272694028245 | erot = 11.8729196687565 | epot = -69.8799220183582 | etot = -50.5142754093192 +99000 ekin = 7.4291494757019 | erot = 11.9995813313698 | epot = -69.9430062161875 | etot = -50.5142754091158 +100000 ekin = 7.36773967938524 | erot = 12.1710710801622 | epot = -70.0530861689363 | etot = -50.5142754093889 +101000 ekin = 7.31732397084039 | erot = 12.3748173436258 | epot = -70.2064167246486 | etot = -50.5142754101824 +102000 ekin = 7.28403638324999 | erot = 12.5931097957223 | epot = -70.3914215904351 | etot = -50.5142754114629 +103000 ekin = 7.27028672218544 | erot = 12.8047065613041 | epot = -70.5892686965879 | etot = -50.5142754130984 +104000 ekin = 7.27461582345194 | erot = 12.9870305824843 | epot = -70.7759218207906 | etot = -50.5142754148544 +105000 ekin = 7.29256428498991 | erot = 13.1188507799813 | epot = -70.9256904813943 | etot = -50.5142754164232 +106000 ekin = 7.31837884124417 | erot = 13.1831707086961 | epot = -71.0158249674225 | etot = -50.5142754174823 +107000 ekin = 7.34712371511234 | erot = 13.1698989274595 | epot = -71.031298060336 | etot = -50.5142754177642 +108000 ekin = 7.37665826766637 | erot = 13.0778272245795 | epot = -70.9687609093631 | etot = -50.5142754171173 +109000 ekin = 7.4090189086913 | erot = 12.9155349189484 | epot = -70.8388292431721 | etot = -50.5142754155324 +110000 ekin = 7.45094132862665 | erot = 12.7010355373242 | epot = -70.6662522790923 | etot = -50.5142754131415 +111000 ekin = 7.51347081219244 | erot = 12.46020149619 | epot = -70.4879477185786 | etot = -50.5142754101962 +112000 ekin = 7.61074849763088 | erot = 12.2241598717144 | epot = -70.3491837763853 | etot = -50.5142754070401 +113000 ekin = 7.75811427376647 | erot = 12.0259242572139 | epot = -70.2983139350605 | etot = -50.5142754040801 +114000 ekin = 7.96968357180601 | erot = 11.8965473949302 | epot = -70.3805063684906 | etot = -50.5142754017543 +115000 ekin = 8.25649742679397 | erot = 11.8610413387427 | epot = -70.6318141648406 | etot = -50.514275399304 +116000 ekin = 8.62901108799767 | erot = 11.9338020389737 | epot = -71.0770885267353 | etot = -50.5142753997639 +117000 ekin = 9.07979306129225 | erot = 12.11683106496 | epot = -71.7108995279875 | etot = -50.5142754017353 +118000 ekin = 9.58966909201972 | erot = 12.3984864178258 | epot = -72.5024309149985 | etot = -50.5142754051531 +119000 ekin = 10.1306989356929 | erot = 12.7538188996439 | epot = -73.3987932450652 | etot = -50.5142754097284 +120000 ekin = 10.6681502559762 | erot = 13.1469968867685 | epot = -74.3294225577253 | etot = -50.5142754149806 +121000 ekin = 11.1636445520073 | erot = 13.5354730446192 | epot = -75.2133930169272 | etot = -50.5142754203007 +122000 ekin = 11.57897975496 | erot = 13.8753321908141 | epot = -75.9685873708298 | etot = -50.5142754250557 +123000 ekin = 11.8800282928193 | erot = 14.1269962436853 | epot = -76.5212999651875 | etot = -50.514275428683 +124000 ekin = 12.0401500514962 | erot = 14.2603474738997 | epot = -76.8147729561754 | etot = -50.5142754307795 +125000 ekin = 12.0426917567921 | erot = 14.2584040043223 | epot = -76.815371192273 | etot = -50.5142754311586 +126000 ekin = 11.8823151169337 | erot = 14.1189492121683 | epot = -76.515539758965 | etot = -50.5142754298629 +127000 ekin = 11.5650853952491 | erot = 13.8539357927793 | epot = -75.9332966151679 | etot = -50.5142754271395 +128000 ekin = 11.1074426377048 | erot = 13.4869506143901 | epot = -75.1086686754654 | etot = -50.5142754233705 +129000 ekin = 10.5343384717472 | erot = 13.0494015453623 | epot = -74.0980154361035 | etot = -50.514275418994 +130000 ekin = 9.87690872398879 | erot = 12.576259576003 | epot = -72.9674437144207 | etot = -50.514275414429 +131000 ekin = 9.17004712474199 | erot = 12.1021279223485 | epot = -71.786450457109 | etot = -50.5142754100185 +132000 ekin = 8.45013853634169 | erot = 11.6581576779292 | epot = -70.6225716202876 | etot = -50.5142754060167 +133000 ekin = 7.75306702335596 | erot = 11.2700074959997 | epot = -69.5373499219504 | etot = -50.5142754025948 +134000 ekin = 7.11230829826017 | erot = 10.9564870021547 | epot = -68.5830707008175 | etot = -50.5142754004026 +135000 ekin = 6.55612439193967 | erot = 10.7277682649122 | epot = -67.7981680553166 | etot = -50.5142753984647 +136000 ekin = 6.10819187150001 | erot = 10.5892176988517 | epot = -67.2116849676778 | etot = -50.5142753973261 +137000 ekin = 5.78608197421734 | erot = 10.540520502847 | epot = -66.8408778740815 | etot = -50.5142753970172 +138000 ekin = 5.60007006615131 | erot = 10.5757913350062 | epot = -66.6901367986762 | etot = -50.5142753975188 +139000 ekin = 5.55268795111527 | erot = 10.6843332994592 | epot = -66.7512966493219 | etot = -50.5142753987475 +140000 ekin = 5.63899580381771 | erot = 10.8516980543445 | epot = -67.0049692587037 | etot = -50.5142754005415 +141000 ekin = 5.84764919447451 | erot = 11.0611136462019 | epot = -67.4230382433434 | etot = -50.514275402667 +142000 ekin = 6.16264005598639 | erot = 11.2952393652934 | epot = -67.972154826137 | etot = -50.5142754048573 +143000 ekin = 6.5653968006486 | erot = 11.5380449116321 | epot = -68.617717119148 | etot = -50.5142754068674 +144000 ekin = 7.03681705533494 | erot = 11.7764583665014 | epot = -69.3275508303656 | etot = -50.5142754085292 +145000 ekin = 7.55883117515757 | erot = 12.0018872087109 | epot = -70.0749937935651 | etot = -50.5142754096967 +146000 ekin = 8.11525467293274 | erot = 12.2097777634812 | epot = -70.8393078470392 | etot = -50.5142754106253 +147000 ekin = 8.69187535303672 | erot = 12.39798317829 | epot = -71.60413394269 | etot = -50.5142754113633 +148000 ekin = 9.27596343937889 | erot = 12.5659623821103 | epot = -72.3562012335808 | etot = -50.5142754120916 +149000 ekin = 9.85549786713737 | erot = 12.7129927814354 | epot = -73.0827660615428 | etot = -50.51427541297 +150000 ekin = 10.4183967686482 | erot = 12.836669784577 | epot = -73.7693419673228 | etot = -50.5142754140976 +151000 ekin = 10.9519669544066 | erot = 12.9320291475734 | epot = -74.3982715174713 | etot = -50.5142754154914 +152000 ekin = 11.442682517049 | erot = 12.9914579844176 | epot = -74.9484159185612 | etot = -50.5142754170946 +153000 ekin = 11.876317648688 | erot = 13.0054164817462 | epot = -75.3960095492277 | etot = -50.5142754187935 +154000 ekin = 12.2384007603464 | erot = 12.9636415213689 | epot = -75.7163177021566 | etot = -50.5142754204413 +155000 ekin = 12.5149348410738 | erot = 12.8565997645015 | epot = -75.8858100274538 | etot = -50.5142754218785 +156000 ekin = 12.6933342582489 | erot = 12.6769330808822 | epot = -75.884542762078 | etot = -50.5142754229468 +157000 ekin = 12.7635394773931 | erot = 12.420726561961 | epot = -75.6985414628473 | etot = -50.5142754234931 +158000 ekin = 12.7192609300237 | erot = 12.0885427176422 | epot = -75.3220790710396 | etot = -50.5142754233736 +159000 ekin = 12.5592455089106 | erot = 11.6862409532775 | epot = -74.7597618846574 | etot = -50.5142754224692 +160000 ekin = 12.2883544579957 | erot = 11.2255943810308 | epot = -74.0282242597327 | etot = -50.5142754207062 +161000 ekin = 11.918138868909 | erot = 10.724624857561 | epot = -73.1570391445678 | etot = -50.5142754180978 +162000 ekin = 11.4665846354855 | erot = 10.2074983581299 | epot = -72.1883584083807 | etot = -50.5142754147653 +163000 ekin = 10.9568419276705 | erot = 9.70380592719131 | epot = -71.174923265813 | etot = -50.5142754109511 +164000 ekin = 10.4150382817266 | erot = 9.24702033764171 | epot = -70.1763340263567 | etot = -50.5142754069884 +165000 ekin = 9.86757905055595 | erot = 8.87218491764885 | epot = -69.2540393714494 | etot = -50.5142754032446 +166000 ekin = 9.33851143761076 | erot = 8.61303477785208 | epot = -68.4658216155234 | etot = -50.5142754000605 +167000 ekin = 8.84748730504149 | erot = 8.49893907243685 | epot = -67.860701775172 | etot = -50.5142753976936 +168000 ekin = 8.40864571542297 | erot = 8.55215074312129 | epot = -67.4750718548273 | etot = -50.514275396283 +169000 ekin = 8.03045700864833 | erot = 8.78581375895565 | epot = -67.3305461634521 | etot = -50.5142753958481 +170000 ekin = 7.71636101684879 | erot = 9.20299038162967 | epot = -67.4336267947965 | etot = -50.514275396318 +171000 ekin = 7.46715080109661 | erot = 9.79683187833261 | epot = -67.7782580760367 | etot = -50.5142753966075 +172000 ekin = 7.28585658179809 | erot = 10.55063278227 | epot = -68.3507647629919 | etot = -50.5142753989238 +173000 ekin = 7.16416011926193 | erot = 11.4382460333909 | epot = -69.1166815542996 | etot = -50.5142754016467 +174000 ekin = 7.09132968419341 | erot = 12.4279054681617 | epot = -70.0335105569871 | etot = -50.514275404632 +175000 ekin = 7.05634491974643 | erot = 13.4842000875635 | epot = -71.0548204150769 | etot = -50.514275407767 +176000 ekin = 7.0481562278597 | erot = 14.5697180479998 | epot = -72.1321496868112 | etot = -50.5142754109517 +177000 ekin = 7.05589089928317 | erot = 15.6465151520291 | epot = -73.2166814653897 | etot = -50.5142754140774 +178000 ekin = 7.06870996384056 | erot = 16.6778391096173 | epot = -74.2608244904867 | etot = -50.5142754170288 +179000 ekin = 7.07565875636382 | erot = 17.6303035880058 | epot = -75.2202377640007 | etot = -50.5142754196311 +180000 ekin = 7.0664071847183 | erot = 18.4755802360983 | epot = -76.0562628425558 | etot = -50.5142754217392 +181000 ekin = 7.03211004009772 | erot = 19.1916515774742 | epot = -76.7380370407757 | etot = -50.5142754232038 +182000 ekin = 6.96555336525017 | erot = 19.7646727182893 | epot = -77.244501509119 | etot = -50.5142754255795 +183000 ekin = 6.86135102663297 | erot = 20.1806311279203 | epot = -77.5562575806605 | etot = -50.5142754261072 +184000 ekin = 6.71513119692767 | erot = 20.4321176363582 | epot = -77.6615242591401 | etot = -50.5142754258542 +185000 ekin = 6.52573507255851 | erot = 20.5251927864042 | epot = -77.5652032838349 | etot = -50.5142754248723 +186000 ekin = 6.29640349453673 | erot = 20.4725850987712 | epot = -77.2832640165617 | etot = -50.5142754232538 +187000 ekin = 6.03524835634356 | erot = 20.2918463237092 | epot = -76.8413701011661 | etot = -50.5142754211133 +188000 ekin = 5.75534624813166 | erot = 20.003513474993 | epot = -76.2731351417078 | etot = -50.5142754185832 +189000 ekin = 5.47428677235272 | erot = 19.6288299760678 | epot = -75.6173921644527 | etot = -50.5142754160321 +190000 ekin = 5.21304528645313 | erot = 19.1884702895166 | epot = -74.9157909892296 | etot = -50.5142754132598 +191000 ekin = 4.99413978963151 | erot = 18.702982729212 | epot = -74.2113979294843 | etot = -50.5142754106408 +192000 ekin = 4.83931815322758 | erot = 18.1912747809759 | epot = -73.5448683425759 | etot = -50.5142754083724 +193000 ekin = 4.76714699157891 | erot = 17.6700691054191 | epot = -72.9514915036064 | etot = -50.5142754066084 +194000 ekin = 4.79094358958821 | erot = 17.1536396953286 | epot = -72.458858690352 | etot = -50.5142754054352 +195000 ekin = 4.91743571189862 | erot = 16.6538363084265 | epot = -72.0855474251817 | etot = -50.5142754048565 +196000 ekin = 5.14635650996878 | erot = 16.1803427452313 | epot = -71.8409746600075 | etot = -50.5142754048074 +197000 ekin = 5.47095769373928 | erot = 15.7410432599948 | epot = -71.7262763589174 | etot = -50.5142754051834 +198000 ekin = 5.87922858421923 | erot = 15.3423400565289 | epot = -71.7358440466121 | etot = -50.514275405864 +199000 ekin = 6.35549663143462 | erot = 14.9892917891109 | epot = -71.8590638272921 | etot = -50.5142754067466 +200000 ekin = 6.88207586328326 | erot = 14.6855189973288 | epot = -72.0818702683696 | etot = -50.5142754077575 +201000 ekin = 7.44070643689874 | erot = 14.4329169816363 | epot = -72.3878988273873 | etot = -50.5142754088523 +202000 ekin = 8.01364908712218 | erot = 14.2312922772059 | epot = -72.7592167743344 | etot = -50.5142754100063 +203000 ekin = 8.58441531263097 | erot = 14.0780678440262 | epot = -73.17675856786 | etot = -50.5142754112029 +204000 ekin = 9.13819316346958 | erot = 13.9681780326739 | epot = -73.6206466085646 | etot = -50.5142754124211 +205000 ekin = 9.66205791777009 | erot = 13.8942152360353 | epot = -74.0705485674259 | etot = -50.5142754136206 +206000 ekin = 10.1450467911539 | erot = 13.8468542669205 | epot = -74.5061764728695 | etot = -50.5142754147951 +207000 ekin = 10.578144322819 | erot = 13.8152589579907 | epot = -74.9076786967 | etot = -50.5142754158903 +208000 ekin = 10.9541942360309 | erot = 13.7878179109834 | epot = -75.2562875638894 | etot = -50.5142754168752 +209000 ekin = 11.267746303547 | erot = 13.7528525924427 | epot = -75.5348743137162 | etot = -50.5142754177265 +210000 ekin = 11.5148381182812 | erot = 13.6992490106689 | epot = -75.7283625473776 | etot = -50.5142754184275 +211000 ekin = 11.6927279463081 | erot = 13.6170543238074 | epot = -75.8240576890816 | etot = -50.514275418966 +212000 ekin = 11.7996107409516 | erot = 13.498093858938 | epot = -75.8119800191621 | etot = -50.5142754192725 +213000 ekin = 11.8343576841801 | erot = 13.3367031669193 | epot = -75.6853362705959 | etot = -50.5142754194966 +214000 ekin = 11.7963237462734 | erot = 13.1291697339434 | epot = -75.4397688997496 | etot = -50.5142754195328 +215000 ekin = 11.6852668694872 | erot = 12.8744302846878 | epot = -75.0739725735764 | etot = -50.5142754194014 +216000 ekin = 11.5014303659807 | erot = 12.5741401329479 | epot = -74.5898459180401 | etot = -50.5142754191115 +217000 ekin = 11.2458820823716 | erot = 12.2323072888257 | epot = -73.9924647898439 | etot = -50.5142754186465 +218000 ekin = 10.9212463786247 | erot = 11.8549524898053 | epot = -73.2904742863556 | etot = -50.5142754179256 +219000 ekin = 10.5329607071043 | erot = 11.4501226259863 | epot = -72.49735874987 | etot = -50.5142754167794 +220000 ekin = 10.0910611337993 | erot = 11.0285507859451 | epot = -71.6338873347152 | etot = -50.5142754149708 +221000 ekin = 9.61219796243707 | erot = 10.6049025440469 | epot = -70.7313759187676 | etot = -50.5142754122836 +222000 ekin = 9.12115937360899 | erot = 10.1989791085947 | epot = -69.8344138908813 | etot = -50.5142754086776 +223000 ekin = 8.65086680646765 | erot = 9.83578310548162 | epot = -69.0009253163756 | etot = -50.5142754044263 +224000 ekin = 8.23994052342008 | erot = 9.54342912562565 | epot = -68.2976450492017 | etot = -50.5142754001559 +225000 ekin = 7.92770828800231 | erot = 9.34870111081527 | epot = -67.790684795513 | etot = -50.5142753966955 +226000 ekin = 7.74769423456926 | erot = 9.27124602945026 | epot = -67.5332156588649 | etot = -50.5142753948454 +227000 ekin = 7.72151333456996 | erot = 9.31824720259745 | epot = -67.5540359321277 | etot = -50.5142753949603 +228000 ekin = 7.85509348312393 | erot = 9.48230636778553 | epot = -67.8516752474347 | etot = -50.5142753965252 +229000 ekin = 8.13704792668027 | erot = 9.74526659084784 | epot = -68.3965899178475 | etot = -50.5142754003194 +230000 ekin = 8.54211975827155 | erot = 10.0762112157464 | epot = -69.1326063789161 | etot = -50.5142754048981 +231000 ekin = 9.03730612207738 | erot = 10.4369573689889 | epot = -69.9885389005795 | etot = -50.5142754095132 +232000 ekin = 9.58655681927075 | erot = 10.7906593081316 | epot = -70.8914915409884 | etot = -50.514275413586 +233000 ekin = 10.1548693407441 | erot = 11.1065562702284 | epot = -71.7757010277629 | etot = -50.5142754167904 +234000 ekin = 10.7108776684931 | erot = 11.3626339427587 | epot = -72.5877870303017 | etot = -50.51427541905 +235000 ekin = 11.2279915296297 | erot = 11.5461467437169 | epot = -73.2884136938096 | etot = -50.514275420463 +236000 ekin = 11.6845296184674 | erot = 11.6525082369784 | epot = -73.8513132774554 | etot = -50.5142754220096 +237000 ekin = 12.0579257921081 | erot = 11.6840457725791 | epot = -74.2562469873985 | etot = -50.5142754227113 +238000 ekin = 12.3279512217302 | erot = 11.6453539329305 | epot = -74.4875805777159 | etot = -50.5142754230552 +239000 ekin = 12.4822356739968 | erot = 11.5417603171812 | epot = -74.5382714141961 | etot = -50.5142754230181 +240000 ekin = 12.5140319304711 | erot = 11.379840095166 | epot = -74.4081474481419 | etot = -50.5142754225049 +241000 ekin = 12.4234383523727 | erot = 11.1674085806407 | epot = -74.1051223544161 | etot = -50.5142754214027 +242000 ekin = 12.2186033883435 | erot = 10.9138071750489 | epot = -73.6466859829951 | etot = -50.5142754196027 +243000 ekin = 11.9165339535856 | erot = 10.6303079140426 | epot = -73.0611172847464 | etot = -50.5142754171182 +244000 ekin = 11.5429037221891 | erot = 10.3301144758701 | epot = -72.3872936120661 | etot = -50.5142754140069 +245000 ekin = 11.1308004491748 | erot = 10.0279651152891 | epot = -71.6730409749943 | etot = -50.5142754105304 +246000 ekin = 10.7178963481097 | erot = 9.73923384809242 | epot = -70.9714056032644 | etot = -50.5142754070622 +247000 ekin = 10.3421796192254 | erot = 9.47853790668963 | epot = -70.3349929299427 | etot = -50.5142754040277 +248000 ekin = 10.0370371760664 | erot = 9.25823648340019 | epot = -69.8095490613036 | etot = -50.5142754018371 +249000 ekin = 9.8280907904655 | erot = 9.08725211026133 | epot = -69.4296183010337 | etot = -50.5142754003068 +250000 ekin = 9.73018117904164 | erot = 8.96958696148835 | epot = -69.2140435411897 | etot = -50.5142754006597 +251000 ekin = 9.73984053867213 | erot = 8.90312708509179 | epot = -69.1572430257806 | etot = -50.5142754020167 +252000 ekin = 9.84186771029289 | erot = 8.88191102821452 | epot = -69.2380541425514 | etot = -50.514275404044 +253000 ekin = 10.0131035686005 | erot = 8.89763848171348 | epot = -69.4250174566707 | etot = -50.5142754063567 +254000 ekin = 10.2265753155491 | erot = 8.94123900968228 | epot = -69.6820897338549 | etot = -50.5142754086236 +255000 ekin = 10.45524859614 | erot = 9.00423312865248 | epot = -69.9737571353842 | etot = -50.5142754105918 +256000 ekin = 10.6747348456415 | erot = 9.07982990112818 | epot = -70.268840158984 | etot = -50.5142754122143 +257000 ekin = 10.8646942922457 | erot = 9.16274367319601 | epot = -70.541713378885 | etot = -50.5142754134433 +258000 ekin = 11.0093996909144 | erot = 9.24945580314721 | epot = -70.7731309083517 | etot = -50.51427541429 +259000 ekin = 11.0977947702397 | erot = 9.33830301516964 | epot = -70.9503732001625 | etot = -50.5142754147531 +260000 ekin = 11.1234502408058 | erot = 9.42959720861292 | epot = -71.0673228642374 | etot = -50.5142754148187 +261000 ekin = 11.084655311668 | erot = 9.52592259400693 | epot = -71.124853320123 | etot = -50.5142754144481 +262000 ekin = 10.9846383161362 | erot = 9.63253179681783 | epot = -71.1314455270271 | etot = -50.5142754140731 +263000 ekin = 10.8299323585372 | erot = 9.7533788602196 | epot = -71.0975866314648 | etot = -50.5142754127079 +264000 ekin = 10.6322589075993 | erot = 9.8966156177294 | epot = -71.0431499363677 | etot = -50.514275411039 +265000 ekin = 10.4088137866296 | erot = 10.0729935919374 | epot = -70.9960827876166 | etot = -50.5142754090497 +266000 ekin = 10.1805628465598 | erot = 10.2939584250803 | epot = -70.9887966787016 | etot = -50.5142754070615 +267000 ekin = 9.96994974150426 | erot = 10.568881698132 | epot = -71.0531068450869 | etot = -50.5142754054507 +268000 ekin = 9.79794557249715 | erot = 10.9022495131646 | epot = -71.2144704902422 | etot = -50.5142754045805 +269000 ekin = 9.68133719081143 | erot = 11.2909602515369 | epot = -71.4865728471577 | etot = -50.5142754048094 +270000 ekin = 9.62864440995344 | erot = 11.7231927403038 | epot = -71.866112556462 | etot = -50.5142754062048 +271000 ekin = 9.63922421060092 | erot = 12.1783004915324 | epot = -72.3318001107773 | etot = -50.5142754086439 +272000 ekin = 9.70377142417774 | erot = 12.6284925682459 | epot = -72.8465394041826 | etot = -50.514275411759 +273000 ekin = 9.80635112697928 | erot = 13.042480366541 | epot = -73.3631069085454 | etot = -50.5142754150251 +274000 ekin = 9.92762957286286 | erot = 13.390209777472 | epot = -73.8321147682227 | etot = -50.5142754178878 +275000 ekin = 10.0484619807291 | erot = 13.6476466829871 | epot = -74.2103840836088 | etot = -50.5142754198926 +276000 ekin = 10.1529836986356 | erot = 13.8005799704974 | epot = -74.4678390899037 | etot = -50.5142754207707 +277000 ekin = 10.2306208739496 | erot = 13.8468297581948 | epot = -74.5917260525737 | etot = -50.5142754204294 +278000 ekin = 10.2768285154718 | erot = 13.7964170571848 | epot = -74.5875209917331 | etot = -50.5142754190766 +279000 ekin = 10.292688733801 | erot = 13.6696245090782 | epot = -74.4765886598123 | etot = -50.5142754169331 +280000 ekin = 10.2837511614466 | erot = 13.4944463812719 | epot = -74.2924729570573 | etot = -50.5142754143388 +281000 ekin = 10.2584490696369 | erot = 13.3029884943441 | epot = -74.0757129756548 | etot = -50.5142754116738 +282000 ekin = 10.2256707145249 | erot = 13.1261764968031 | epot = -73.8661226217354 | etot = -50.5142754104074 +283000 ekin = 10.1905670824301 | erot = 12.9864505984506 | epot = -73.6912930902137 | etot = -50.5142754093331 +284000 ekin = 10.1551014927861 | erot = 12.8990344596004 | epot = -73.5684113617362 | etot = -50.5142754093497 +285000 ekin = 10.1166174221483 | erot = 12.8680165955304 | epot = -73.4989094281415 | etot = -50.5142754104629 +286000 ekin = 10.0677495873413 | erot = 12.8863469806728 | epot = -73.4683719803678 | etot = -50.5142754123536 +287000 ekin = 9.99824250893388 | erot = 12.9388664872157 | epot = -73.4513844104809 | etot = -50.5142754143313 +288000 ekin = 9.89878072361537 | erot = 13.0083713387393 | epot = -73.4214274778763 | etot = -50.5142754155217 +289000 ekin = 9.76588531823529 | erot = 13.0828123958633 | epot = -73.3629731293734 | etot = -50.5142754152748 +290000 ekin = 9.60570842713735 | erot = 13.1602378251772 | epot = -73.2802216658703 | etot = -50.5142754135558 +291000 ekin = 9.43434667886824 | erot = 13.2486965863646 | epot = -73.1973186762419 | etot = -50.5142754110091 +292000 ekin = 9.27394835180399 | erot = 13.3611401460295 | epot = -73.149363906408 | etot = -50.5142754085745 +293000 ekin = 9.14636730713574 | erot = 13.5082961118596 | epot = -73.1689388261818 | etot = -50.5142754071864 +294000 ekin = 9.06768252918411 | erot = 13.6923254511146 | epot = -73.2742833874151 | etot = -50.5142754071164 +295000 ekin = 9.04532028964211 | erot = 13.9047980939001 | epot = -73.4643937919225 | etot = -50.5142754083803 +296000 ekin = 9.0768551421693 | erot = 14.1273095688262 | epot = -73.7184401215824 | etot = -50.5142754105869 +297000 ekin = 9.15243484563929 | erot = 14.3349675764939 | epot = -74.0016778353864 | etot = -50.5142754132531 +298000 ekin = 9.25735642260995 | erot = 14.500914426713 | epot = -74.2725462652362 | etot = -50.5142754159133 +299000 ekin = 9.37408501219885 | erot = 14.6008610261537 | epot = -74.489221456686 | etot = -50.5142754183334 +300000 ekin = 9.48403035595343 | erot = 14.6171008231079 | epot = -74.615406599053 | etot = -50.5142754199917 +301000 ekin = 9.56941047832991 | erot = 14.5422411099636 | epot = -74.6259270092322 | etot = -50.5142754209387 +302000 ekin = 9.61327914963389 | erot = 14.3787237130325 | epot = -74.5062782840224 | etot = -50.5142754213561 +303000 ekin = 9.60019007969739 | erot = 14.1333232517923 | epot = -74.2477887542843 | etot = -50.5142754227947 +304000 ekin = 9.51663443757167 | erot = 13.8077649609075 | epot = -73.838674821887 | etot = -50.5142754234078 +305000 ekin = 9.35052324456253 | erot = 13.4126572581698 | epot = -73.2774559258063 | etot = -50.5142754230739 +306000 ekin = 9.09238614806705 | erot = 12.9580617085539 | epot = -72.5647232811224 | etot = -50.5142754245015 +307000 ekin = 8.73005981827426 | erot = 12.4440345689956 | epot = -71.6883698129583 | etot = -50.5142754256884 +308000 ekin = 8.2566413338506 | erot = 11.8703174730668 | epot = -70.6412342327939 | etot = -50.5142754258766 +309000 ekin = 7.68019887869211 | erot = 11.2440321634468 | epot = -69.4385064478104 | etot = -50.5142754056715 +310000 ekin = 6.10737245369119 | erot = 10.0022284148685 | epot = -66.623875833735 | etot = -50.5142749651753 +311000 ekin = 6.5051663128486 | erot = 8.43886202714501 | epot = -65.4583031837961 | etot = -50.5142748438025 +312000 ekin = 8.70116484242897 | erot = 7.89328716556537 | epot = -67.1087266850311 | etot = -50.5142746770368 +313000 ekin = 8.86124124005507 | erot = 7.60650277386477 | epot = -66.9820187090015 | etot = -50.5142746950817 +314000 ekin = 8.9837585532943 | erot = 7.42590866136506 | epot = -66.9239419073517 | etot = -50.5142746926924 +315000 ekin = 9.08224545795615 | erot = 7.35030056649057 | epot = -66.9468207149345 | etot = -50.5142746904878 +316000 ekin = 9.18875804711078 | erot = 7.37458538818198 | epot = -67.0776181243832 | etot = -50.5142746890904 +317000 ekin = 9.33052371805415 | erot = 7.48774538837777 | epot = -67.3325437958112 | etot = -50.5142746893793 +318000 ekin = 9.51917570867462 | erot = 7.66478668187673 | epot = -67.6982370815964 | etot = -50.514274691045 +319000 ekin = 9.75242332649075 | erot = 7.87397921140501 | epot = -68.1406772315358 | etot = -50.51427469364 +320000 ekin = 10.0191832997552 | erot = 8.08576089652675 | epot = -68.6192188931126 | etot = -50.5142746968307 +321000 ekin = 10.2991596304388 | erot = 8.27181002887634 | epot = -69.0852443594277 | etot = -50.5142747001126 +322000 ekin = 10.5668594668861 | erot = 8.408368577092 | epot = -69.489502746865 | etot = -50.5142747028869 +323000 ekin = 10.796786721459 | erot = 8.47975301095049 | epot = -69.7908144356649 | etot = -50.5142747032554 +324000 ekin = 10.9735635054971 | erot = 8.48122286685502 | epot = -69.9690610761869 | etot = -50.5142747038348 +325000 ekin = 11.0878819432255 | erot = 8.419517756764 | epot = -70.0216744028044 | etot = -50.5142747028149 +326000 ekin = 11.1347107227786 | erot = 8.31335610181585 | epot = -69.9623415249752 | etot = -50.5142747003808 +327000 ekin = 11.1183799650528 | erot = 8.19353318203581 | epot = -69.826187844116 | etot = -50.5142746970274 +328000 ekin = 11.0497327326459 | erot = 8.09852253417839 | epot = -69.6625299601774 | etot = -50.5142746933531 +329000 ekin = 10.9426003402474 | erot = 8.06872590414686 | epot = -69.5256009343292 | etot = -50.5142746899349 +330000 ekin = 10.810605763641 | erot = 8.14099901902899 | epot = -69.4658794698995 | etot = -50.5142746872296 +331000 ekin = 10.6649041616609 | erot = 8.34394296354449 | epot = -69.5231218107328 | etot = -50.5142746855274 +332000 ekin = 10.5130013374362 | erot = 8.69446319291525 | epot = -69.7217392153205 | etot = -50.514274684969 +333000 ekin = 10.3584993437548 | erot = 9.19578452270849 | epot = -70.0685585520209 | etot = -50.5142746855576 +334000 ekin = 10.2015206738985 | erot = 9.83691053813426 | epot = -70.5527058992161 | etot = -50.5142746871833 +335000 ekin = 10.0395335916263 | erot = 10.5934602800294 | epot = -71.147268561303 | etot = -50.5142746896473 +336000 ekin = 9.86837013788818 | erot = 11.4297871185481 | epot = -71.8124319491111 | etot = -50.5142746926749 +337000 ekin = 9.68329052893795 | erot = 12.3021498009575 | epot = -72.4997150262758 | etot = -50.5142746963803 +338000 ekin = 9.47975699830538 | erot = 13.1586156684124 | epot = -73.1526473662277 | etot = -50.51427469951 +339000 ekin = 9.25386163519372 | erot = 13.9501138811508 | epot = -73.7182502184446 | etot = -50.5142747021 +340000 ekin = 9.00411247048268 | erot = 14.6361003739348 | epot = -74.1544875483472 | etot = -50.5142747039298 +341000 ekin = 8.73210815870434 | erot = 15.1850150670287 | epot = -74.4313979306224 | etot = -50.5142747048893 +342000 ekin = 8.44257602319506 | erot = 15.5760933936523 | epot = -74.5329441218175 | etot = -50.5142747049702 +343000 ekin = 8.14306068342756 | erot = 15.7999489751153 | epot = -74.4572843627835 | etot = -50.5142747042406 +344000 ekin = 7.84335230650732 | erot = 15.8582017889364 | epot = -74.2158287982538 | etot = -50.5142747028101 +345000 ekin = 7.5547615812519 | erot = 15.7625218310119 | epot = -73.8315581130675 | etot = -50.5142747008037 +346000 ekin = 7.28933152868289 | erot = 15.533392267927 | epot = -73.3369984949627 | etot = -50.5142746983528 +347000 ekin = 7.05903031454608 | erot = 15.1987186623156 | epot = -72.7720236724633 | etot = -50.5142746956016 +348000 ekin = 6.87492348116728 | erot = 14.7922321909677 | epot = -72.1814303648504 | etot = -50.5142746927155 +349000 ekin = 6.74631360359056 | erot = 14.3515585684899 | epot = -71.6121468619725 | etot = -50.514274689892 +350000 ekin = 6.67986669458013 | erot = 13.915872783233 | epot = -71.1100141651616 | etot = -50.5142746873485 +351000 ekin = 6.67881215223173 | erot = 13.5231979607082 | epot = -70.716284798246 | etot = -50.514274685306 +352000 ekin = 6.7423300232361 | erot = 13.2075061614837 | epot = -70.4641108686885 | etot = -50.5142746839688 +353000 ekin = 6.86523168134182 | erot = 12.9958314200866 | epot = -70.3753377849371 | etot = -50.5142746835087 +354000 ekin = 7.03799439993387 | erot = 12.9056193290539 | epot = -70.4578884130311 | etot = -50.5142746840433 +355000 ekin = 7.24717151817794 | erot = 12.9425723794776 | epot = -70.7040185832753 | etot = -50.5142746856198 +356000 ekin = 7.47618779746083 | erot = 13.0993511153042 | epot = -71.0898136009401 | etot = -50.514274688175 +357000 ekin = 7.70655379467168 | erot = 13.3555627807384 | epot = -71.57639126692 | etot = -50.5142746915099 +358000 ekin = 7.91949851740391 | erot = 13.6794128875227 | epot = -72.1131861002092 | etot = -50.5142746952826 +359000 ekin = 8.09792001679416 | erot = 14.031112267177 | epot = -72.6433069830211 | etot = -50.51427469905 +360000 ekin = 8.22841418972718 | erot = 14.3676693799643 | epot = -73.1103582720313 | etot = -50.5142747023399 +361000 ekin = 8.30307067049243 | erot = 14.6487380645349 | epot = -73.466083439054 | etot = -50.5142747040266 +362000 ekin = 8.32057496602366 | erot = 14.8452541250526 | epot = -73.6801037963561 | etot = -50.5142747052799 +363000 ekin = 8.2859663742638 | erot = 14.9355049198 | epot = -73.7357459994538 | etot = -50.5142747053901 +364000 ekin = 8.21051030664383 | erot = 14.9080133757005 | epot = -73.6327983867829 | etot = -50.5142747044385 +365000 ekin = 8.11062074728132 | erot = 14.762328602042 | epot = -73.3872240519731 | etot = -50.5142747026498 +366000 ekin = 8.00603056267545 | erot = 14.5073568469437 | epot = -73.0276621099691 | etot = -50.5142747003499 +367000 ekin = 7.91744023303304 | erot = 14.1587217212047 | epot = -72.5904366521402 | etot = -50.5142746979025 +368000 ekin = 7.86392049103739 | erot = 13.7358279103936 | epot = -72.1140230970701 | etot = -50.5142746956391 +369000 ekin = 7.86042077698536 | erot = 13.2593035824046 | epot = -71.6339990531952 | etot = -50.5142746938053 +370000 ekin = 7.91575681907929 | erot = 12.7493098978033 | epot = -71.1793414094053 | etot = -50.5142746925228 +371000 ekin = 8.03141765157836 | erot = 12.2248825990312 | epot = -70.7705749423984 | etot = -50.5142746917889 +372000 ekin = 8.20143448680258 | erot = 11.7041154007118 | epot = -70.4198245790145 | etot = -50.5142746915002 +373000 ekin = 8.41338088913735 | erot = 11.2047322599996 | epot = -70.1323878406344 | etot = -50.5142746914974 +374000 ekin = 8.65035651213676 | erot = 10.7445296546632 | epot = -69.9091608584076 | etot = -50.5142746916076 +375000 ekin = 8.89361463866963 | erot = 10.3413213234497 | epot = -69.7492106538015 | etot = -50.5142746916822 +376000 ekin = 9.12537144360732 | erot = 10.0122766242425 | epot = -69.6519227594738 | etot = -50.5142746916241 +377000 ekin = 9.33127044536848 | erot = 9.77273697836932 | epot = -69.6182821151585 | etot = -50.5142746914207 +378000 ekin = 9.50196666765835 | erot = 9.6346566547718 | epot = -69.6508980135944 | etot = -50.5142746911643 +379000 ekin = 9.6334164787518 | erot = 9.60484799639418 | epot = -69.7525391669912 | etot = -50.5142746918452 +380000 ekin = 9.72259425988569 | erot = 9.68264926837071 | epot = -69.9195182203355 | etot = -50.5142746920791 +381000 ekin = 9.76882857108948 | erot = 9.85976932386059 | epot = -70.1428725876802 | etot = -50.5142746927302 +382000 ekin = 9.77534265379327 | erot = 10.121676495812 | epot = -70.4112938433523 | etot = -50.514274693747 +383000 ekin = 9.7455308288081 | erot = 10.4488490599567 | epot = -70.7086545836583 | etot = -50.5142746948936 +384000 ekin = 9.68350130857021 | erot = 10.8197410298628 | epot = -71.0175170342861 | etot = -50.5142746958531 +385000 ekin = 9.59541111931104 | erot = 11.2139279084523 | epot = -71.3236137241633 | etot = -50.5142746963999 +386000 ekin = 9.4905123889625 | erot = 11.6142495069926 | epot = -71.6190365924758 | etot = -50.5142746965207 +387000 ekin = 9.38093820530937 | erot = 12.0071365317809 | epot = -71.9023494335283 | etot = -50.5142746964381 +388000 ekin = 9.27994371661227 | erot = 12.3811396839216 | epot = -72.1753580970413 | etot = -50.5142746965074 +389000 ekin = 9.19914674277392 | erot = 12.7246960950178 | epot = -72.4381175345578 | etot = -50.5142746967661 +390000 ekin = 9.14582012535946 | erot = 13.0260688102897 | epot = -72.6861636335684 | etot = -50.5142746979193 +391000 ekin = 9.12133255591663 | erot = 13.2696465843357 | epot = -72.905253839726 | etot = -50.5142746994737 +392000 ekin = 9.12142280937007 | erot = 13.4389248950419 | epot = -73.0746224054154 | etot = -50.5142747010035 +393000 ekin = 9.13817196413012 | erot = 13.521222955008 | epot = -73.1736696211413 | etot = -50.5142747020031 +394000 ekin = 9.16298117432702 | erot = 13.5118244942667 | epot = -73.1890803706433 | etot = -50.5142747020496 +395000 ekin = 9.18964919962726 | erot = 13.4168358877511 | epot = -73.1207597883378 | etot = -50.5142747009594 +396000 ekin = 9.21646132594054 | erot = 13.2536172301688 | epot = -72.9843532549716 | etot = -50.5142746988622 +397000 ekin = 9.24655582003266 | erot = 13.048360781694 | epot = -72.809191297931 | etot = -50.5142746962043 +398000 ekin = 9.28632448603043 | erot = 12.8312285607695 | epot = -72.6318277404429 | etot = -50.514274693643 +399000 ekin = 9.34221312079044 | erot = 12.6300924932621 | epot = -72.4865803059366 | etot = -50.514274691884 +400000 ekin = 9.41686913721225 | erot = 12.4642777025557 | epot = -72.3954215312665 | etot = -50.5142746914986 +401000 ekin = 9.50589901456697 | erot = 12.339766793681 | epot = -72.359940500998 | etot = -50.51427469275 +402000 ekin = 9.59639944966704 | erot = 12.2470917660162 | epot = -72.3577659111742 | etot = -50.514274695491 +403000 ekin = 9.6679598339413 | erot = 12.1626989619724 | epot = -72.3449334950612 | etot = -50.5142746991475 +404000 ekin = 9.6960891301624 | erot = 12.0539804141974 | epot = -72.2643442471814 | etot = -50.5142747028216 +405000 ekin = 9.65743908961946 | erot = 11.8874299823523 | epot = -72.0591437774177 | etot = -50.5142747054459 +406000 ekin = 9.53561319895846 | erot = 11.6383102531971 | epot = -71.6881981582777 | etot = -50.5142747061221 +407000 ekin = 9.32577307304513 | erot = 11.299022005819 | epot = -71.1390697833186 | etot = -50.5142747044545 +408000 ekin = 9.03640922279408 | erot = 10.8830678024713 | epot = -70.4337517259893 | etot = -50.5142747007238 +409000 ekin = 8.68979508354392 | erot = 10.4228266788975 | epot = -69.6268964554528 | etot = -50.5142746930114 +410000 ekin = 7.95602703558056 | erot = 9.99427140585679 | epot = -68.4645730785575 | etot = -50.5142746371202 +411000 ekin = 6.74655524926026 | erot = 10.0270618219302 | epot = -67.2878915398223 | etot = -50.5142744686318 +412000 ekin = 6.77788460766266 | erot = 10.2313763539033 | epot = -67.5235357279859 | etot = -50.51427476642 +413000 ekin = 6.61781746175654 | erot = 9.98416802498682 | epot = -67.1162600910535 | etot = -50.5142746043101 +414000 ekin = 6.49546599326267 | erot = 9.85785035086806 | epot = -66.8675909468791 | etot = -50.5142746027483 +415000 ekin = 6.41727287248189 | erot = 9.86294960525599 | epot = -66.7944970800185 | etot = -50.5142746022807 +416000 ekin = 6.38652270867731 | erot = 10.0017061049828 | epot = -66.9025034163748 | etot = -50.5142746027147 +417000 ekin = 6.40203155332194 | erot = 10.2671783491659 | epot = -67.1834845063777 | etot = -50.5142746038899 +418000 ekin = 6.45904359291291 | erot = 10.6446827914134 | epot = -67.6180009900212 | etot = -50.5142746056949 +419000 ekin = 6.54999227103668 | erot = 11.1128009050092 | epot = -68.177067784059 | etot = -50.5142746080131 +420000 ekin = 6.66500093977822 | erot = 11.6444776666505 | epot = -68.8237532173566 | etot = -50.5142746109279 +421000 ekin = 6.79216043872236 | erot = 12.2064235895613 | epot = -69.5128586425699 | etot = -50.5142746142862 +422000 ekin = 6.91773851390791 | erot = 12.7612933296126 | epot = -70.1933064611733 | etot = -50.5142746176528 +423000 ekin = 7.02685612353035 | erot = 13.2705085058884 | epot = -70.811639250539 | etot = -50.5142746211202 +424000 ekin = 7.10547271092031 | erot = 13.6958822981223 | epot = -71.3156296329499 | etot = -50.5142746239073 +425000 ekin = 7.14257278346378 | erot = 14.00632169569 | epot = -71.6631691046639 | etot = -50.5142746255101 +426000 ekin = 7.13247824794695 | erot = 14.182567951423 | epot = -71.8293208250291 | etot = -50.5142746256592 +427000 ekin = 7.07609741319096 | erot = 14.2196705903081 | epot = -71.8100426279414 | etot = -50.5142746244424 +428000 ekin = 6.98044576832851 | erot = 14.1262798064217 | epot = -71.6210001969978 | etot = -50.5142746222476 +429000 ekin = 6.85670921306898 | erot = 13.9212692789198 | epot = -71.2922531115578 | etot = -50.514274619569 +430000 ekin = 6.7178161305865 | erot = 13.6292889155649 | epot = -70.8613796631804 | etot = -50.5142746170289 +431000 ekin = 6.58365833328562 | erot = 13.2819652495106 | epot = -70.3798981921713 | etot = -50.5142746093751 +432000 ekin = 6.48411075968897 | erot = 12.9190083014608 | epot = -69.9173936698687 | etot = -50.5142746087189 +433000 ekin = 6.41960617893399 | erot = 12.5531167173917 | epot = -69.4869975047748 | etot = -50.5142746084491 +434000 ekin = 6.38738760765608 | erot = 12.1915446818583 | epot = -69.0932068978254 | etot = -50.514274608311 +435000 ekin = 6.38446518067517 | erot = 11.8388548771081 | epot = -68.737594666638 | etot = -50.5142746088547 +436000 ekin = 6.40158771780273 | erot = 11.4934615671543 | epot = -68.4093238934739 | etot = -50.5142746085169 +437000 ekin = 6.43433296981838 | erot = 11.1572008355194 | epot = -68.105808413647 | etot = -50.5142746083092 +438000 ekin = 6.4825204181187 | erot = 10.8339757935709 | epot = -67.830770819852 | etot = -50.5142746081624 +439000 ekin = 6.545777051164 | erot = 10.5262474658465 | epot = -67.586299125274 | etot = -50.5142746082635 +440000 ekin = 6.62343968576481 | erot = 10.2344360683719 | epot = -67.372150362599 | etot = -50.5142746084622 +441000 ekin = 6.71455901736392 | erot = 9.95770655654166 | epot = -67.186540182668 | etot = -50.5142746087624 +442000 ekin = 6.81814800219619 | erot = 9.69459000556991 | epot = -67.0270126167191 | etot = -50.514274608953 +443000 ekin = 6.93320757980693 | erot = 9.44436660476046 | epot = -66.8918487936045 | etot = -50.5142746090371 +444000 ekin = 7.05887283238864 | erot = 9.20812456867572 | epot = -66.7812720099858 | etot = -50.5142746089214 +445000 ekin = 7.19471792125923 | erot = 8.98907069040902 | epot = -66.6980632207423 | etot = -50.514274609074 +446000 ekin = 7.33895516700839 | erot = 8.79147036186794 | epot = -66.6447001377069 | etot = -50.5142746088306 +447000 ekin = 7.49037827520819 | erot = 8.62086071349769 | epot = -66.6255135972071 | etot = -50.5142746085012 +448000 ekin = 7.64865155422971 | erot = 8.48362573467408 | epot = -66.6465518970615 | etot = -50.5142746081577 +449000 ekin = 7.81370578733081 | erot = 8.38592298858039 | epot = -66.7139033838013 | etot = -50.5142746078901 +450000 ekin = 7.98535597597777 | erot = 8.33253518713107 | epot = -66.8321657709217 | etot = -50.5142746078128 +451000 ekin = 8.16298003842074 | erot = 8.32609814440779 | epot = -67.0033527906226 | etot = -50.514274607794 +452000 ekin = 8.3466507570952 | erot = 8.36815837884311 | epot = -67.2290837442261 | etot = -50.5142746082878 +453000 ekin = 8.53368486477846 | erot = 8.45559889748828 | epot = -67.5035583714211 | etot = -50.5142746091544 +454000 ekin = 8.71876659841696 | erot = 8.58149267466793 | epot = -67.8145338834317 | etot = -50.5142746103468 +455000 ekin = 8.8945819788911 | erot = 8.73616891420663 | epot = -68.1450255048469 | etot = -50.5142746117492 +456000 ekin = 9.05263676519526 | erot = 8.9082562334363 | epot = -68.4751676118086 | etot = -50.514274613177 +457000 ekin = 9.1843646819714 | erot = 9.08589966847123 | epot = -68.7845389652288 | etot = -50.5142746147862 +458000 ekin = 9.27987084845008 | erot = 9.25693683995471 | epot = -69.0510823039163 | etot = -50.5142746155115 +459000 ekin = 9.33585675941296 | erot = 9.41397844083731 | epot = -69.2641098158777 | etot = -50.5142746156275 +460000 ekin = 9.35537570855532 | erot = 9.55424544255629 | epot = -69.4238957661776 | etot = -50.514274615066 +461000 ekin = 9.34708447365392 | erot = 9.67952250490561 | epot = -69.5408815924535 | etot = -50.5142746138939 +462000 ekin = 9.3243802842721 | erot = 9.79582203167512 | epot = -69.6344769282729 | etot = -50.5142746123257 +463000 ekin = 9.30338947377823 | erot = 9.91209761435392 | epot = -69.7297616988258 | etot = -50.5142746106937 +464000 ekin = 9.30012223231539 | erot = 10.0380089094863 | epot = -69.8524057511955 | etot = -50.5142746093938 +465000 ekin = 9.32729383498999 | erot = 10.1814090069829 | epot = -70.0229774507359 | etot = -50.514274608763 +466000 ekin = 9.39154918928888 | erot = 10.3458332464665 | epot = -70.2516570448612 | etot = -50.5142746091058 +467000 ekin = 9.49255088766474 | erot = 10.5268619331796 | epot = -70.533687431223 | etot = -50.5142746103787 +468000 ekin = 9.62305221134184 | erot = 10.7128982306239 | epot = -70.8502250543221 | etot = -50.5142746123563 +469000 ekin = 9.77069488361617 | erot = 10.8867837312521 | epot = -71.1717532295517 | etot = -50.5142746146834 +470000 ekin = 9.92089819251635 | erot = 11.0285784794466 | epot = -71.4637512887688 | etot = -50.5142746168058 +471000 ekin = 10.0595176397096 | erot = 11.1206306062868 | epot = -71.6944228643084 | etot = -50.514274618312 +472000 ekin = 10.1754768606445 | erot = 11.1514441165733 | epot = -71.8411955961169 | etot = -50.5142746188991 +473000 ekin = 10.2623030554399 | erot = 11.1187283838251 | epot = -71.8953060577099 | etot = -50.5142746184449 +474000 ekin = 10.3185312147407 | erot = 11.0305455880016 | epot = -71.863351419831 | etot = -50.5142746170887 +475000 ekin = 10.3471799199443 | erot = 10.9051616574109 | epot = -71.7666161922582 | etot = -50.514274614903 +476000 ekin = 10.3546402104888 | erot = 10.7694904205526 | epot = -71.6384052432813 | etot = -50.5142746122399 +477000 ekin = 10.3491629826105 | erot = 10.6559910559185 | epot = -71.5194286481725 | etot = -50.5142746096436 +478000 ekin = 10.337921781539 | erot = 10.5983211038012 | epot = -71.4505174924961 | etot = -50.5142746071558 +479000 ekin = 10.3280283747164 | erot = 10.627726215543 | epot = -71.4700291953174 | etot = -50.5142746050581 +480000 ekin = 10.3254996650161 | erot = 10.770220178018 | epot = -71.6099944467235 | etot = -50.5142746036895 +481000 ekin = 10.333689005961 | erot = 11.0433446243465 | epot = -71.8913082335923 | etot = -50.5142746032848 +482000 ekin = 10.3524366677706 | erot = 11.4540590314586 | epot = -72.3207703030936 | etot = -50.5142746038644 +483000 ekin = 10.3781084074551 | erot = 11.9979341330605 | epot = -72.8903171458628 | etot = -50.5142746053472 +484000 ekin = 10.4042611097702 | erot = 12.6596244417224 | epot = -73.5781601591086 | etot = -50.5142746076159 +485000 ekin = 10.422130263175 | erot = 13.4142029090766 | epot = -74.3506077826652 | etot = -50.5142746104136 +486000 ekin = 10.4218511022112 | erot = 14.2297763892117 | epot = -75.1659021048436 | etot = -50.5142746134207 +487000 ekin = 10.3939548024778 | erot = 15.0707615261254 | epot = -75.9789909449355 | etot = -50.5142746163324 +488000 ekin = 10.3307490466575 | erot = 15.9010699584849 | epot = -76.7460936240768 | etot = -50.5142746189344 +489000 ekin = 10.2272110328707 | erot = 16.6865229089778 | epot = -77.4280085629796 | etot = -50.5142746211311 +490000 ekin = 10.0812183872014 | erot = 17.3962474873302 | epot = -77.9917404974456 | etot = -50.514274622914 +491000 ekin = 9.89313188199908 | erot = 18.0033313049306 | epot = -78.4107378111931 | etot = -50.5142746242634 +492000 ekin = 9.6654854685475 | erot = 18.4853389017442 | epot = -78.6650989960942 | etot = -50.5142746258026 +493000 ekin = 9.40191070800085 | erot = 18.822957378625 | epot = -78.7391427127391 | etot = -50.5142746261132 +494000 ekin = 9.10904774190992 | erot = 19.0062114320334 | epot = -78.6295337996172 | etot = -50.5142746256739 +495000 ekin = 8.79635273331544 | erot = 19.0345219994561 | epot = -78.3451493571934 | etot = -50.5142746244219 +496000 ekin = 8.47610073021421 | erot = 18.916710534202 | epot = -77.9070858868466 | etot = -50.5142746224304 +497000 ekin = 8.16317181355253 | erot = 18.6700073960972 | epot = -77.3474538295807 | etot = -50.5142746199309 +498000 ekin = 7.87402966204092 | erot = 18.3175884261542 | epot = -76.7058927054729 | etot = -50.5142746172778 +499000 ekin = 7.62493759928334 | erot = 17.8851866271532 | epot = -76.0243988412929 | etot = -50.5142746148563 +500000 ekin = 7.42972946260284 | erot = 17.3977376248947 | epot = -75.3417417004674 | etot = -50.5142746129698 +501000 ekin = 7.29767286843092 | erot = 16.8770499285215 | epot = -74.6889974087191 | etot = -50.5142746117667 +502000 ekin = 7.23199528874835 | erot = 16.3411235838521 | epot = -74.0873934838041 | etot = -50.5142746112037 +503000 ekin = 7.2294568198931 | erot = 15.8051011256293 | epot = -73.5488325566161 | etot = -50.5142746110937 +504000 ekin = 7.28103351461533 | erot = 15.2831943565344 | epot = -73.0785024823396 | etot = -50.5142746111899 +505000 ekin = 7.3734766995099 | erot = 14.7905903684857 | epot = -72.6783416792747 | etot = -50.514274611279 +506000 ekin = 7.49135174829073 | erot = 14.3444485240747 | epot = -72.3500748836015 | etot = -50.514274611236 +507000 ekin = 7.61914293605917 | erot = 13.9635506159553 | epot = -72.0969681630553 | etot = -50.5142746110408 +508000 ekin = 7.74307878353069 | erot = 13.6666853268497 | epot = -71.9240387211432 | etot = -50.5142746107627 +509000 ekin = 7.85243073756074 | erot = 13.4701783615022 | epot = -71.8368837096031 | etot = -50.5142746105402 +510000 ekin = 7.94014182641364 | erot = 13.3851098946224 | epot = -71.8395263315817 | etot = -50.5142746105457 +511000 ekin = 8.00274035613055 | erot = 13.4146098330526 | epot = -71.9316248001711 | etot = -50.5142746109879 +512000 ekin = 8.0395947820545 | erot = 13.5514344935062 | epot = -72.1053038876341 | etot = -50.5142746120734 +513000 ekin = 8.05166756792368 | erot = 13.7761589059528 | epot = -72.3421010878503 | etot = -50.5142746139738 +514000 ekin = 8.04007438030379 | erot = 14.0563762260206 | epot = -72.6107252230582 | etot = -50.5142746167337 +515000 ekin = 8.00493220653697 | erot = 14.3476352397647 | epot = -72.866842066471 | etot = -50.5142746201693 +516000 ekin = 7.94508318888167 | erot = 14.5970448959229 | epot = -73.0564027085865 | etot = -50.5142746237819 +517000 ekin = 7.85912630284244 | erot = 14.7501438289481 | epot = -73.1235447585787 | etot = -50.5142746267882 +518000 ekin = 7.74765591027019 | erot = 14.7604748140602 | epot = -73.0224053526558 | etot = -50.5142746283254 +519000 ekin = 7.61585879290972 | erot = 14.5996265098557 | epot = -72.729759930547 | etot = -50.5142746277817 +520000 ekin = 7.47514959111049 | erot = 14.2643892942165 | epot = -72.2538135103992 | etot = -50.5142746250722 +521000 ekin = 7.3427858954286 | erot = 13.7782408541099 | epot = -71.6353013702292 | etot = -50.5142746206907 +522000 ekin = 7.23932626199338 | erot = 13.186596886737 | epot = -70.9401977642411 | etot = -50.5142746155107 +523000 ekin = 7.18476026651542 | erot = 12.5477212482269 | epot = -70.2467561252271 | etot = -50.5142746104847 +524000 ekin = 7.19456043548838 | erot = 11.9223659335438 | epot = -69.6312009754278 | etot = -50.5142746063956 +525000 ekin = 7.27670076772728 | erot = 11.364776816296 | epot = -69.1557521877544 | etot = -50.5142746037311 +526000 ekin = 7.43017656900148 | erot = 10.916445551457 | epot = -68.8608967231426 | etot = -50.5142746026841 +527000 ekin = 7.64507873199521 | erot = 10.6028306905323 | epot = -68.7621840257271 | etot = -50.5142746031996 +528000 ekin = 7.903968747246 | erot = 10.4326201984723 | epot = -68.8508635507675 | etot = -50.5142746050492 +529000 ekin = 8.18416633903625 | erot = 10.3989120257774 | epot = -69.0973529727054 | etot = -50.5142746078918 +530000 ekin = 8.46054142245487 | erot = 10.4817412712473 | epot = -69.4565573050309 | etot = -50.5142746113288 +531000 ekin = 8.70843705756317 | erot = 10.6515092337968 | epot = -69.8742209062976 | etot = -50.5142746149376 +532000 ekin = 8.90640402473529 | erot = 10.8729770964241 | epot = -70.2936557394646 | etot = -50.5142746183052 +533000 ekin = 9.03848560924205 | erot = 11.1095342988599 | epot = -70.6622945291611 | etot = -50.5142746210592 +534000 ekin = 9.09585660970345 | erot = 11.3274354311236 | epot = -70.9375666637225 | etot = -50.5142746228954 +535000 ekin = 9.07769161963111 | erot = 11.4996353903635 | epot = -71.091601633605 | etot = -50.5142746236104 +536000 ekin = 8.99119538622515 | erot = 11.6087805008686 | epot = -71.1142505102317 | etot = -50.5142746231379 +537000 ekin = 8.85079437598598 | erot = 11.6489142180449 | epot = -71.0139832155935 | etot = -50.5142746215626 +538000 ekin = 8.6765582659833 | erot = 11.6255793580357 | epot = -70.8164122431392 | etot = -50.5142746191202 +539000 ekin = 8.49200375591959 | erot = 11.5542615595909 | epot = -70.5605399316766 | etot = -50.514274616166 +540000 ekin = 8.32364695431123 | erot = 11.4574951670801 | epot = -70.2954167347574 | etot = -50.514274613366 +541000 ekin = 8.19487884818575 | erot = 11.359608827198 | epot = -70.0687622862709 | etot = -50.5142746108871 +542000 ekin = 8.12161273118671 | erot = 11.2840420583372 | epot = -69.9199293984392 | etot = -50.5142746089153 +543000 ekin = 8.11471609564917 | erot = 11.251419263744 | epot = -69.8804099670391 | etot = -50.514274607646 +544000 ekin = 8.17908931153307 | erot = 11.2773707849212 | epot = -69.97073470362 | etot = -50.5142746071658 +545000 ekin = 8.3134477050842 | erot = 11.3713535568191 | epot = -70.19907586937 | etot = -50.5142746074667 +546000 ekin = 8.51069467197093 | erot = 11.5363143613317 | epot = -70.561283641793 | etot = -50.5142746084904 +547000 ekin = 8.75865223741738 | erot = 11.7688547419081 | epot = -71.0417815894908 | etot = -50.5142746101653 +548000 ekin = 9.04082699803126 | erot = 12.0581718441651 | epot = -71.6132734556856 | etot = -50.5142746134893 +549000 ekin = 9.33624649606488 | erot = 12.3823696051936 | epot = -72.2328907177767 | etot = -50.5142746165182 +550000 ekin = 9.62129146822335 | erot = 12.7185500786483 | epot = -72.8541161665286 | etot = -50.514274619657 +551000 ekin = 9.87268266799226 | erot = 13.0427912748185 | epot = -73.4297485653088 | etot = -50.514274622498 +552000 ekin = 10.0704190088569 | erot = 13.3329151351563 | epot = -73.91760876859 | etot = -50.5142746245769 +553000 ekin = 10.2009056939709 | erot = 13.5725638576876 | epot = -74.2877441770597 | etot = -50.5142746254013 +554000 ekin = 10.2593644362673 | erot = 13.753510468764 | epot = -74.5271495300454 | etot = -50.5142746250141 +555000 ekin = 10.2514586319024 | erot = 13.8763528095943 | epot = -74.642086064908 | etot = -50.5142746234113 +556000 ekin = 10.1921106932902 | erot = 13.9500978834556 | epot = -74.6564831978708 | etot = -50.514274621125 +557000 ekin = 10.1015652267051 | erot = 13.9882161029565 | epot = -74.6040559485496 | etot = -50.514274618888 +558000 ekin = 9.99991303231137 | erot = 14.0034286779287 | epot = -74.5176163276028 | etot = -50.5142746173627 +559000 ekin = 9.90202983163985 | erot = 14.0033678523314 | epot = -74.4196722999234 | etot = -50.5142746159522 +560000 ekin = 9.81686282987549 | erot = 13.9898208823654 | epot = -74.3209583290848 | etot = -50.5142746168439 +561000 ekin = 9.74012209780934 | erot = 13.9575380153517 | epot = -74.2119347312478 | etot = -50.5142746180867 +562000 ekin = 9.6620224906263 | erot = 13.8995402247318 | epot = -74.0758373340922 | etot = -50.5142746187341 +563000 ekin = 9.57125126716748 | erot = 13.8130745957307 | epot = -73.8986004819466 | etot = -50.5142746190484 +564000 ekin = 9.45733143833862 | erot = 13.704654695706 | epot = -73.6762607520715 | etot = -50.5142746180269 +565000 ekin = 9.31598070794829 | erot = 13.5911188334432 | epot = -73.4213741578346 | etot = -50.514274616443 +566000 ekin = 9.14991861298779 | erot = 13.4939773072412 | epot = -73.1581705345168 | etot = -50.5142746142878 +567000 ekin = 8.96796855714657 | erot = 13.4373000591331 | epot = -72.9195432283005 | etot = -50.5142746120208 +568000 ekin = 8.7829594372782 | erot = 13.4429949208319 | epot = -72.7402289682284 | etot = -50.5142746101183 +569000 ekin = 8.60911084020179 | erot = 13.5261109884158 | epot = -72.6494964375928 | etot = -50.5142746089752 +570000 ekin = 8.45962137973749 | erot = 13.6911409172854 | epot = -72.6650369058558 | etot = -50.5142746088329 +571000 ekin = 8.34502164172794 | erot = 13.9298996508287 | epot = -72.7891959022988 | etot = -50.5142746097421 +572000 ekin = 8.27150053292934 | erot = 14.2179224508898 | epot = -73.0036975966798 | etot = -50.5142746128607 +573000 ekin = 8.24027906059603 | erot = 14.5163717589467 | epot = -73.2709254351682 | etot = -50.5142746156254 +574000 ekin = 8.25076229272267 | erot = 14.7826990353693 | epot = -73.5477359470996 | etot = -50.5142746190076 +575000 ekin = 8.30023045843066 | erot = 14.9695304974766 | epot = -73.7840355777894 | etot = -50.5142746218821 +576000 ekin = 8.38430166795791 | erot = 15.0355677896539 | epot = -73.9341440816768 | etot = -50.514274624065 +577000 ekin = 8.49786330869482 | erot = 14.9506840672696 | epot = -73.9628220011005 | etot = -50.5142746251361 +578000 ekin = 8.63531193622502 | erot = 14.7010752682888 | epot = -73.850661829671 | etot = -50.5142746251572 +579000 ekin = 8.79067648365993 | erot = 14.2898408975128 | epot = -73.5947920052659 | etot = -50.5142746240931 +580000 ekin = 8.95769742193975 | erot = 13.7363251615306 | epot = -73.2082972056757 | etot = -50.5142746222054 +581000 ekin = 9.12997887069792 | erot = 13.0726035152856 | epot = -72.7168570058288 | etot = -50.5142746198453 +582000 ekin = 9.3013160865459 | erot = 12.33811704705 | epot = -72.1537077509286 | etot = -50.5142746173326 +583000 ekin = 9.46624938717203 | erot = 11.5746138602661 | epot = -71.5551378622606 | etot = -50.5142746148224 +584000 ekin = 9.6207249334283 | erot = 10.8222363956333 | epot = -70.9572359416095 | etot = -50.5142746125479 +585000 ekin = 9.76261487023706 | erot = 10.1164678304031 | epot = -70.3933573111274 | etot = -50.5142746104873 +586000 ekin = 9.89186342302125 | erot = 9.48751958029935 | epot = -69.89365761202 | etot = -50.5142746086994 +587000 ekin = 10.0101586280326 | erot = 8.95961455310412 | epot = -69.4840477884181 | etot = -50.5142746072813 +588000 ekin = 10.1201887301652 | erot = 8.55015736409595 | epot = -69.1846207006327 | etot = -50.5142746063715 +589000 ekin = 10.2246599089045 | erot = 8.26863816357674 | epot = -69.0075726786026 | etot = -50.5142746061214 +590000 ekin = 10.3253143811037 | erot = 8.11543769025587 | epot = -68.9550266780011 | etot = -50.5142746066416 +591000 ekin = 10.4222032216619 | erot = 8.08099811673395 | epot = -69.0174759463446 | etot = -50.5142746079488 +592000 ekin = 10.5134337128834 | erot = 8.14599360018953 | epot = -69.1737019229835 | etot = -50.5142746099106 +593000 ekin = 10.5955057544336 | erot = 8.283064817274 | epot = -69.3928451839437 | etot = -50.5142746122361 +594000 ekin = 10.664166235472 | erot = 8.46027689182427 | epot = -69.6387177418309 | etot = -50.5142746145346 +595000 ekin = 10.7154927999701 | erot = 8.64578434326036 | epot = -69.8755517596524 | etot = -50.5142746164219 +596000 ekin = 10.7467872731101 | erot = 8.81255786150283 | epot = -70.0736197522543 | etot = -50.5142746176414 +597000 ekin = 10.7569302190058 | erot = 8.9418786129938 | epot = -70.2130834501162 | etot = -50.5142746181166 +598000 ekin = 10.7466010847388 | erot = 9.02533979252436 | epot = -70.286215495059 | etot = -50.5142746177959 +599000 ekin = 10.7182887695188 | erot = 9.06507906880464 | epot = -70.2976424556078 | etot = -50.5142746172843 +600000 ekin = 10.672048518945 | erot = 9.06844804973257 | epot = -70.254771185201 | etot = -50.5142746165234 +601000 ekin = 10.6072956941507 | erot = 9.04742526342102 | epot = -70.1689955732011 | etot = -50.5142746156294 +602000 ekin = 10.523317820292 | erot = 9.0169128140318 | epot = -70.0545052489643 | etot = -50.5142746146405 +603000 ekin = 10.4199668052728 | erot = 8.99335643429404 | epot = -69.9275978531109 | etot = -50.5142746135441 +604000 ekin = 10.2985732111555 | erot = 8.99387297244101 | epot = -69.806720795907 | etot = -50.5142746123105 +605000 ekin = 10.1627605691658 | erot = 9.03562879916736 | epot = -69.7126639792936 | etot = -50.5142746109604 +606000 ekin = 10.0187545713334 | erot = 9.13500980542037 | epot = -69.668038986373 | etot = -50.5142746096193 +607000 ekin = 9.87474119403181 | erot = 9.30612986571654 | epot = -69.6951456683299 | etot = -50.5142746085815 +608000 ekin = 9.73894032961195 | erot = 9.55815745315492 | epot = -69.8113723910935 | etot = -50.5142746083266 +609000 ekin = 9.61645131103783 | erot = 9.89160474272124 | epot = -70.0223306631113 | etot = -50.5142746093523 +610000 ekin = 9.5056171781604 | erot = 10.2946039754988 | epot = -70.3144957656481 | etot = -50.5142746119889 +611000 ekin = 9.3954819788822 | erot = 10.7408569963305 | epot = -70.6506135912649 | etot = -50.5142746160522 +612000 ekin = 9.2662925120945 | erot = 11.1926279418144 | epot = -70.973195074468 | etot = -50.5142746205591 +613000 ekin = 9.09415007005058 | erot = 11.6098990355031 | epot = -71.2183237296811 | etot = -50.5142746241274 +614000 ekin = 8.85874044725143 | erot = 11.9622145365451 | epot = -71.3352296093756 | etot = -50.5142746255791 +615000 ekin = 8.55082001881919 | erot = 12.2382561373069 | epot = -71.3033507806173 | etot = -50.5142746244912 +616000 ekin = 8.17588836096349 | erot = 12.4480456866457 | epot = -71.1382086690828 | etot = -50.5142746214735 +617000 ekin = 7.75281434572139 | erot = 12.6167254402989 | epot = -70.8838144036714 | etot = -50.5142746176511 +618000 ekin = 7.30914473380256 | erot = 12.7738647630886 | epot = -70.5972841109796 | etot = -50.5142746140884 +619000 ekin = 6.87603930021606 | erot = 12.9445772325016 | epot = -70.3348911438064 | etot = -50.5142746110888 +620000 ekin = 6.48430188504723 | erot = 13.1463744536982 | epot = -70.1449509480468 | etot = -50.5142746093014 +621000 ekin = 6.15889859795081 | erot = 13.3879128346399 | epot = -70.0610860402008 | etot = -50.5142746076101 +622000 ekin = 5.92489751013321 | erot = 13.6734353594434 | epot = -70.1126074758514 | etot = -50.5142746062747 +623000 ekin = 5.80503635923075 | erot = 14.0046748008182 | epot = -70.3239857654232 | etot = -50.5142746053743 +624000 ekin = 5.81685163240501 | erot = 14.3809730724778 | epot = -70.712099310103 | etot = -50.5142746052201 +625000 ekin = 5.96964537892167 | erot = 14.7975194183874 | epot = -71.2814394036006 | etot = -50.5142746062916 +626000 ekin = 6.26099435194084 | erot = 15.2418617554273 | epot = -72.017130716455 | etot = -50.5142746090868 +627000 ekin = 6.6738932401753 | erot = 15.6898147640126 | epot = -72.8779826180815 | etot = -50.5142746138936 +628000 ekin = 7.17593798620921 | erot = 16.1028362030364 | epot = -73.793048809699 | etot = -50.5142746204534 +629000 ekin = 7.72199923900593 | erot = 16.4299438960732 | epot = -74.6662177627498 | etot = -50.5142746276707 +630000 ekin = 8.26123500942268 | erot = 16.6169483753765 | epot = -75.3924580185318 | etot = -50.5142746337326 +631000 ekin = 8.74754840907595 | erot = 16.6224867206 | epot = -75.8843097661928 | etot = -50.5142746365168 +632000 ekin = 9.15004592009959 | erot = 16.4358276586597 | epot = -76.1001482138241 | etot = -50.5142746350648 +633000 ekin = 9.45937080859952 | erot = 16.0853639088732 | epot = -76.0590093468675 | etot = -50.5142746293948 +634000 ekin = 9.68568488530509 | erot = 15.6315739487035 | epot = -75.8315334570811 | etot = -50.5142746230725 +635000 ekin = 9.84580171437236 | erot = 15.1444204261377 | epot = -75.504496757806 | etot = -50.5142746172959 +636000 ekin = 9.95723404956398 | erot = 14.6860802419334 | epot = -75.1575889048537 | etot = -50.5142746133564 +637000 ekin = 10.0323215960548 | erot = 14.2991433337742 | epot = -74.8457395413136 | etot = -50.5142746114847 +638000 ekin = 10.0765624311321 | erot = 14.0046093482991 | epot = -74.595446390619 | etot = -50.5142746111878 +639000 ekin = 10.0902754260215 | erot = 13.8068600166918 | epot = -74.4114100544242 | etot = -50.514274611711 +640000 ekin = 10.0716366459604 | erot = 13.7011883664072 | epot = -74.2870996247318 | etot = -50.5142746123642 +641000 ekin = 10.0195798551368 | erot = 13.6807153270413 | epot = -74.2145697948544 | etot = -50.5142746126763 +642000 ekin = 9.93575791765933 | erot = 13.7411722988918 | epot = -74.1912048289925 | etot = -50.5142746124414 +643000 ekin = 9.82526205664625 | erot = 13.8830736873739 | epot = -74.2226103557399 | etot = -50.5142746117197 +644000 ekin = 9.69609523854418 | erot = 14.1112875028131 | epot = -74.3216573521581 | etot = -50.5142746108008 +645000 ekin = 9.55761878270953 | erot = 14.4322553940584 | epot = -74.5041487878322 | etot = -50.5142746110643 +646000 ekin = 9.41485510299198 | erot = 14.8475477984815 | epot = -74.776677513142 | etot = -50.5142746116685 +647000 ekin = 9.26709768131387 | erot = 15.3482149652823 | epot = -75.1295872603472 | etot = -50.514274613751 +648000 ekin = 9.1097297858088 | erot = 15.9109204654465 | epot = -75.5349248688731 | etot = -50.5142746176179 +649000 ekin = 8.93158145499244 | erot = 16.4937182185173 | epot = -75.939574296553 | etot = -50.5142746230433 +650000 ekin = 8.71657057992121 | erot = 17.0382000588362 | epot = -76.2690452677801 | etot = -50.5142746290227 +651000 ekin = 8.44844851103753 | erot = 17.4793597702855 | epot = -76.4420829151918 | etot = -50.5142746338688 +652000 ekin = 8.11815479200405 | erot = 17.7619704869967 | epot = -76.3943999148395 | etot = -50.5142746358387 +653000 ekin = 7.73114435531169 | erot = 17.8572650854087 | epot = -76.1026840747697 | etot = -50.5142746340493 +654000 ekin = 7.31085494737133 | erot = 17.7714907196874 | epot = -75.5966202960523 | etot = -50.5142746289936 +655000 ekin = 6.89588215319139 | erot = 17.5418067096241 | epot = -74.951963485066 | etot = -50.5142746222505 +656000 ekin = 6.53171010738367 | erot = 17.2224717011365 | epot = -74.2684564241879 | etot = -50.5142746156678 +657000 ekin = 6.26041816783474 | erot = 16.8689320359789 | epot = -73.643624814452 | etot = -50.5142746106384 +658000 ekin = 6.11203041448849 | erot = 16.5262126841505 | epot = -73.1525177064585 | etot = -50.5142746078195 +659000 ekin = 6.0997254061234 | erot = 16.2236488550371 | epot = -72.8376488683904 | etot = -50.5142746072299 +660000 ekin = 6.21938199685465 | erot = 15.9744887375827 | epot = -72.7081453429338 | etot = -50.5142746084964 +661000 ekin = 6.45261911222383 | erot = 15.777787739745 | epot = -72.7446814630937 | etot = -50.5142746111249 +662000 ekin = 6.77168825556789 | erot = 15.6204850253058 | epot = -72.9064478955754 | etot = -50.5142746147016 +663000 ekin = 7.14435819261658 | erot = 15.4785935640266 | epot = -73.1372263756304 | etot = -50.5142746189873 +664000 ekin = 7.5374031718003 | erot = 15.3176852477657 | epot = -73.3693630433878 | etot = -50.5142746238218 +665000 ekin = 7.91836523033286 | erot = 15.0942309146759 | epot = -73.5268707738858 | etot = -50.5142746288771 +666000 ekin = 8.25643498251185 | erot = 14.7603215859669 | epot = -73.5310312018877 | etot = -50.5142746334089 +667000 ekin = 8.5238576488208 | erot = 14.273632013881 | epot = -73.3117642989558 | etot = -50.514274636254 +668000 ekin = 8.69866667320836 | erot = 13.6113201082106 | epot = -72.8242614177151 | etot = -50.5142746362962 +669000 ekin = 8.76804368923968 | erot = 12.782287305141 | epot = -72.0646056274992 | etot = -50.5142746331185 +670000 ekin = 8.7304670676031 | erot = 11.8307777758175 | epot = -71.0755194707617 | etot = -50.5142746273411 +671000 ekin = 8.59524186893238 | erot = 10.8283334362961 | epot = -69.9378499255365 | etot = -50.514274620308 +672000 ekin = 8.37965784967847 | erot = 9.85799241693729 | epot = -68.7519248800222 | etot = -50.5142746134064 +673000 ekin = 8.10529771610488 | erot = 8.99841190538804 | epot = -67.6179842290275 | etot = -50.5142746075346 +674000 ekin = 7.79494136355158 | erot = 8.31372525731535 | epot = -66.6229412238762 | etot = -50.5142746030093 +675000 ekin = 7.47060107992272 | erot = 7.85026883553715 | epot = -65.8351445152227 | etot = -50.5142745997628 +676000 ekin = 7.15246577752653 | erot = 7.6378972626801 | epot = -65.304637637805 | etot = -50.5142745975984 +677000 ekin = 6.85830618372447 | erot = 7.6928216818834 | epot = -65.065402461981 | etot = -50.5142745963731 +678000 ekin = 6.60298755763437 | erot = 8.01973470911737 | epot = -65.1369968628411 | etot = -50.5142745960894 +679000 ekin = 6.39787215418156 | erot = 8.61208125098986 | epot = -65.5242280021012 | etot = -50.5142745969297 +680000 ekin = 6.2499813420978 | erot = 9.45011609591134 | epot = -66.214372037256 | etot = -50.5142745992468 +681000 ekin = 6.16088982575084 | erot = 10.4969757469227 | epot = -67.1721401761583 | etot = -50.5142746034848 +682000 ekin = 6.12554393407759 | erot = 11.6937893201324 | epot = -68.3336078641875 | etot = -50.5142746099775 +683000 ekin = 6.13157359397284 | erot = 12.9561475536238 | epot = -69.6019957662153 | etot = -50.5142746186187 +684000 ekin = 6.16005916025885 | erot = 14.1756931639 | epot = -70.8500269526455 | etot = -50.5142746284866 +685000 ekin = 6.18869173788201 | erot = 15.2307522948657 | epot = -71.9337186705026 | etot = -50.5142746377548 +686000 ekin = 6.19732878110429 | erot = 16.0068645008467 | epot = -72.7184679261387 | etot = -50.5142746441877 +687000 ekin = 6.17424105601678 | erot = 16.4218469242601 | epot = -73.1103626264033 | etot = -50.5142746461265 +688000 ekin = 6.12017794216041 | erot = 16.444871775218 | epot = -73.0793243606935 | etot = -50.5142746433152 +689000 ekin = 6.04820168734838 | erot = 16.1005193405002 | epot = -72.6629956647693 | etot = -50.5142746369207 +690000 ekin = 5.97970220535046 | erot = 15.4569806258436 | epot = -71.9509574599986 | etot = -50.5142746288046 +691000 ekin = 5.93893719621033 | erot = 14.6057101670997 | epot = -71.058921983986 | etot = -50.514274620676 +692000 ekin = 5.94838842830579 | erot = 13.6417068401798 | epot = -70.1043698821423 | etot = -50.5142746136566 +693000 ekin = 6.02589021174524 | erot = 12.6498891239226 | epot = -69.1900539439234 | etot = -50.5142746082556 +694000 ekin = 6.18463455175186 | erot = 11.7000608799442 | epot = -68.3989700350167 | etot = -50.5142746033207 +695000 ekin = 6.43478432354664 | erot = 10.8472395602264 | epot = -67.7962984855985 | etot = -50.5142746018255 +696000 ekin = 6.77322428392954 | erot = 10.1195064532947 | epot = -67.4070053386816 | etot = -50.5142746014574 +697000 ekin = 7.19141853633608 | erot = 9.53118158814445 | epot = -67.236874726452 | etot = -50.5142746019714 +698000 ekin = 7.67702076753969 | erot = 9.08693839130884 | epot = -67.2782337620451 | etot = -50.5142746031966 +699000 ekin = 8.21429897539183 | erot = 8.78382057636208 | epot = -67.5123941568188 | etot = -50.5142746050649 +700000 ekin = 8.78422716548436 | erot = 8.61224580901898 | epot = -67.91074758211 | etot = -50.5142746076067 +701000 ekin = 9.364239317381 | erot = 8.5560585648262 | epot = -68.4345724931076 | etot = -50.5142746109004 +702000 ekin = 9.92792016716481 | erot = 8.59213538141387 | epot = -69.0343301635188 | etot = -50.5142746149401 +703000 ekin = 10.4452984142738 | erot = 8.69064064747502 | epot = -69.650213681218 | etot = -50.5142746194692 +704000 ekin = 10.8846377327691 | erot = 8.8174132416495 | epot = -70.2163255982631 | etot = -50.5142746238445 +705000 ekin = 11.2162913879776 | erot = 8.93948813627131 | epot = -70.6700541513609 | etot = -50.514274627112 +706000 ekin = 11.4181455722709 | erot = 9.03309347108019 | epot = -70.9655136716858 | etot = -50.5142746283347 +707000 ekin = 11.4809106570109 | erot = 9.09134201924973 | epot = -71.0865273032839 | etot = -50.5142746270233 +708000 ekin = 11.4068982891744 | erot = 9.12200528528136 | epot = -71.0431782001565 | etot = -50.5142746257007 +709000 ekin = 11.2072632913348 | erot = 9.14465465272043 | epot = -70.8661925652315 | etot = -50.5142746211762 +710000 ekin = 10.9083907026857 | erot = 9.19859957945205 | epot = -70.6212648982224 | etot = -50.5142746160846 +711000 ekin = 10.5423746431666 | erot = 9.32614430677755 | epot = -70.3827935613466 | etot = -50.5142746114025 +712000 ekin = 10.1417786131412 | erot = 9.56360239370289 | epot = -70.2196556145968 | etot = -50.5142746077528 +713000 ekin = 9.7360871371676 | erot = 9.93566991054729 | epot = -70.1860316530795 | etot = -50.5142746053646 +714000 ekin = 9.35027943777808 | erot = 10.4538184610759 | epot = -70.3183725027399 | etot = -50.5142746038859 +715000 ekin = 9.00463394824683 | erot = 11.1175080875396 | epot = -70.6364166398399 | etot = -50.5142746040535 +716000 ekin = 8.7124773917152 | erot = 11.9117220716562 | epot = -71.1384740684731 | etot = -50.5142746051017 +717000 ekin = 8.48287816422953 | erot = 12.8114967087969 | epot = -71.8086494800184 | etot = -50.514274606992 +718000 ekin = 8.32091760997486 | erot = 13.7831462397291 | epot = -72.61833845952 | etot = -50.514274609816 +719000 ekin = 8.2270361337422 | erot = 14.7838475725432 | epot = -73.5251583200275 | etot = -50.5142746137421 +720000 ekin = 8.19603263794301 | erot = 15.7606669338436 | epot = -74.4709741906435 | etot = -50.5142746188569 +721000 ekin = 8.21637629745645 | erot = 16.6505227360459 | epot = -75.3811736584475 | etot = -50.5142746249451 +722000 ekin = 8.27076325254595 | erot = 17.3831969889515 | epot = -76.1682348730789 | etot = -50.5142746315814 +723000 ekin = 8.33599195236651 | erot = 17.8873102966889 | epot = -76.7375768863323 | etot = -50.5142746372768 +724000 ekin = 8.38930978725994 | erot = 18.1039114578793 | epot = -77.007495885679 | etot = -50.5142746405398 +725000 ekin = 8.41651864003474 | erot = 18.0027385421696 | epot = -76.9335318225019 | etot = -50.5142746402975 +726000 ekin = 8.41540022325134 | erot = 17.5920134842233 | epot = -76.5216883438459 | etot = -50.5142746363713 +727000 ekin = 8.39679923838451 | erot = 16.9199297230155 | epot = -75.8310035909557 | etot = -50.5142746295557 +728000 ekin = 8.38189420018229 | erot = 16.0663700673842 | epot = -74.9625388888158 | etot = -50.5142746212493 +729000 ekin = 8.39699694302083 | erot = 15.1283483168248 | epot = -74.0396198727756 | etot = -50.51427461293 +730000 ekin = 8.46782543823145 | erot = 14.2043901534046 | epot = -73.1864901974078 | etot = -50.5142746057717 +731000 ekin = 8.61470307561547 | erot = 13.3819120233496 | epot = -72.5108896994624 | etot = -50.5142746004973 +732000 ekin = 8.84928637435931 | erot = 12.7292880230955 | epot = -72.09284899488 | etot = -50.5142745974252 +733000 ekin = 9.1728076670292 | erot = 12.2923211340616 | epot = -71.9794033976681 | etot = -50.5142745965773 +734000 ekin = 9.57560598363367 | erot = 12.0938942191471 | epot = -72.1837748005718 | etot = -50.514274597791 +735000 ekin = 10.0377642396005 | erot = 12.1355113635736 | epot = -72.6875502039631 | etot = -50.5142746007889 +736000 ekin = 10.5307595726466 | erot = 12.3998369838651 | epot = -73.4448711617082 | etot = -50.5142746051965 +737000 ekin = 11.0200914156936 | erot = 12.8538466733553 | epot = -74.3882126996049 | etot = -50.514274610556 +738000 ekin = 11.4687808904929 | erot = 13.4525508838002 | epot = -75.4356063906199 | etot = -50.5142746163267 +739000 ekin = 11.8414287125988 | erot = 14.1433222477412 | epot = -76.4990255822736 | etot = -50.5142746219335 +740000 ekin = 12.1082656211693 | erot = 14.8707107510575 | epot = -77.493250999058 | etot = -50.5142746268312 +741000 ekin = 12.248503233438 | erot = 15.5814643741729 | epot = -78.3442422381644 | etot = -50.5142746305534 +742000 ekin = 12.252426547258 | erot = 16.2294231022188 | epot = -78.9961242822361 | etot = -50.5142746327593 +743000 ekin = 12.1219949949074 | erot = 16.7799163002887 | epot = -79.4161859284567 | etot = -50.5142746332606 +744000 ekin = 11.8700125682075 | erot = 17.2130632823907 | epot = -79.5973504826804 | etot = -50.5142746320822 +745000 ekin = 11.5180572442418 | erot = 17.5250437155279 | epot = -79.5573755892847 | etot = -50.5142746295151 +746000 ekin = 11.0934236280953 | erot = 17.7264433609958 | epot = -79.3341416152003 | etot = -50.5142746261092 +747000 ekin = 10.6254840289969 | erot = 17.8375345490415 | epot = -78.9772932006039 | etot = -50.5142746225655 +748000 ekin = 10.1420744189699 | erot = 17.8814972667785 | epot = -78.5378463053119 | etot = -50.5142746195635 +749000 ekin = 9.66656115774399 | erot = 17.8773814864278 | epot = -78.0582172617743 | etot = -50.5142746176025 +750000 ekin = 9.21603867052602 | erot = 17.8346042171076 | epot = -77.5649175045334 | etot = -50.5142746168998 +751000 ekin = 8.80076552490662 | erot = 17.7502211247384 | epot = -77.0652612670996 | etot = -50.5142746174546 +752000 ekin = 8.42467668904194 | erot = 17.6090413605271 | epot = -76.5479926685053 | etot = -50.5142746189363 +753000 ekin = 8.08670902920299 | erot = 17.3870500518294 | epot = -75.988033701875 | etot = -50.5142746208427 +754000 ekin = 7.78266313548547 | erot = 17.0571798776075 | epot = -75.354117635661 | etot = -50.514274622568 +755000 ekin = 7.50732713163603 | erot = 16.5962021838331 | epot = -74.6178039390137 | etot = -50.5142746235446 +756000 ekin = 7.25656799091011 | erot = 15.9912186969566 | epot = -73.7620613111994 | etot = -50.5142746233326 +757000 ekin = 7.02889011913336 | erot = 15.2437835165739 | epot = -72.7869482577245 | etot = -50.5142746220172 +758000 ekin = 6.82603226742604 | erot = 14.3694235713074 | epot = -71.7097304583781 | etot = -50.5142746196447 +759000 ekin = 6.65556621293785 | erot = 13.4007974874175 | epot = -70.5706383156337 | etot = -50.5142746152784 +760000 ekin = 6.5284061890787 | erot = 12.380862280426 | epot = -69.4235430816228 | etot = -50.5142746121181 +761000 ekin = 6.45348689195663 | erot = 11.3465222562654 | epot = -68.3142837573835 | etot = -50.5142746091615 +762000 ekin = 6.44051607906623 | erot = 10.3317215154602 | epot = -67.2865122011207 | etot = -50.5142746065942 +763000 ekin = 6.49918252432267 | erot = 9.36548217892287 | epot = -66.3789393077251 | etot = -50.5142746044795 +764000 ekin = 6.63833890050988 | erot = 8.47149284054376 | epot = -65.6241063438625 | etot = -50.5142746028089 +765000 ekin = 6.86513419525142 | erot = 7.66877834284249 | epot = -65.0481871396424 | etot = -50.5142746015485 +766000 ekin = 7.1837807709722 | erot = 6.97265281329603 | epot = -64.67070818509 | etot = -50.5142746008218 +767000 ekin = 7.59444235330852 | erot = 6.39557143765804 | epot = -64.5042883914035 | etot = -50.5142746004369 +768000 ekin = 8.09268145324012 | erot = 5.94781682496754 | epot = -64.5547728788043 | etot = -50.5142746005966 +769000 ekin = 8.66808446390167 | erot = 5.63681148450843 | epot = -64.8191705498657 | etot = -50.5142746014556 +770000 ekin = 9.30348521554662 | erot = 5.46582731738535 | epot = -65.283587136076 | etot = -50.5142746031441 +771000 ekin = 9.97431898094657 | erot = 5.43270401328012 | epot = -65.9212975999266 | etot = -50.5142746056999 +772000 ekin = 10.6499862226328 | erot = 5.52827048594237 | epot = -66.6925313175519 | etot = -50.5142746089767 +773000 ekin = 11.2957807948582 | erot = 5.73712650854713 | epot = -67.5471819160367 | etot = -50.5142746126314 +774000 ekin = 11.8763197237593 | erot = 6.03945270148545 | epot = -68.4300470414037 | etot = -50.5142746161589 +775000 ekin = 12.3598322336888 | erot = 6.41425449692265 | epot = -69.2883613496556 | etot = -50.5142746190442 +776000 ekin = 12.7222841193419 | erot = 6.84284553247385 | epot = -70.0794042727422 | etot = -50.5142746209264 +777000 ekin = 12.9503286191155 | erot = 7.31125230206811 | epot = -70.7758555429038 | etot = -50.5142746217202 +778000 ekin = 13.0423382708153 | erot = 7.81051825668182 | epot = -71.3671311491498 | etot = -50.5142746216526 +779000 ekin = 13.0073878068331 | erot = 8.33463285187951 | epot = -71.8562952798855 | etot = -50.5142746211729 +780000 ekin = 12.8626337012878 | erot = 8.87663911987046 | epot = -72.2535474442322 | etot = -50.5142746230739 +781000 ekin = 12.6191311288743 | erot = 9.41238807656042 | epot = -72.5457938291788 | etot = -50.514274623744 +782000 ekin = 12.2922907716842 | erot = 9.90988136283937 | epot = -72.7164467590842 | etot = -50.5142746245607 +783000 ekin = 11.9113538267172 | erot = 10.3385161888649 | epot = -72.7641446399597 | etot = -50.5142746243776 +784000 ekin = 11.5094258764739 | erot = 10.6682447236089 | epot = -72.6919452239908 | etot = -50.514274623908 +785000 ekin = 11.1215244494593 | erot = 10.8798873198842 | epot = -72.5156863910798 | etot = -50.5142746217362 +786000 ekin = 10.7892036478056 | erot = 10.9720367156619 | epot = -72.2755149816011 | etot = -50.5142746181337 +787000 ekin = 10.555029278746 | erot = 10.9621301132836 | epot = -72.0314340061411 | etot = -50.5142746141116 +788000 ekin = 10.4531579062774 | erot = 10.8809781424469 | epot = -71.8484106597301 | etot = -50.5142746110058 +789000 ekin = 10.4992787233554 | erot = 10.7631938893632 | epot = -71.7767472225994 | etot = -50.5142746098808 +790000 ekin = 10.6841251440847 | erot = 10.6378648553805 | epot = -71.8362646105137 | etot = -50.5142746110485 +791000 ekin = 10.9736405231904 | erot = 10.5233964905693 | epot = -72.0113116277152 | etot = -50.5142746139555 +792000 ekin = 11.3161137381175 | erot = 10.4258288161123 | epot = -72.256217172548 | etot = -50.5142746183183 +793000 ekin = 11.6542402037228 | erot = 10.3442073317959 | epot = -72.5127221562072 | etot = -50.5142746206885 +794000 ekin = 11.9411264395415 | erot = 10.2879588172718 | epot = -72.7433598795331 | etot = -50.5142746227198 +795000 ekin = 12.1351044495743 | erot = 10.2641865985143 | epot = -72.9135656717484 | etot = -50.5142746236598 +796000 ekin = 12.2078724557798 | erot = 10.2805672453403 | epot = -73.0027143247989 | etot = -50.5142746236788 +797000 ekin = 12.145259371386 | erot = 10.3450171205794 | epot = -73.0045511149651 | etot = -50.5142746229997 +798000 ekin = 11.9451812221588 | erot = 10.4647770415675 | epot = -72.9242328855249 | etot = -50.5142746217986 +799000 ekin = 11.6151944446074 | erot = 10.6460858263567 | epot = -72.7755548911982 | etot = -50.5142746202341 +800000 ekin = 11.1701119660333 | erot = 10.8937791249724 | epot = -72.5781657095344 | etot = -50.5142746185287 +801000 ekin = 10.6296650136721 | erot = 11.2100289498445 | epot = -72.3539685805623 | etot = -50.5142746170457 +802000 ekin = 10.0162021020414 | erot = 11.5918355781354 | epot = -72.1223122961447 | etot = -50.5142746159679 +803000 ekin = 9.35262484648241 | erot = 12.0292939538292 | epot = -71.8961934158892 | etot = -50.5142746155776 +804000 ekin = 8.66091793166028 | erot = 12.5039909454097 | epot = -71.6791834929645 | etot = -50.5142746158945 +805000 ekin = 7.96269204966567 | erot = 12.990459714855 | epot = -71.4674263808691 | etot = -50.5142746163485 +806000 ekin = 7.28309911913848 | erot = 13.463749946459 | epot = -71.261123682393 | etot = -50.5142746167955 +807000 ekin = 6.64354530302908 | erot = 13.8965012732328 | epot = -71.0543211930859 | etot = -50.514274616824 +808000 ekin = 6.06569426714939 | erot = 14.2665976072253 | epot = -70.8465664904681 | etot = -50.5142746160935 +809000 ekin = 5.57220972267778 | erot = 14.5624309902631 | epot = -70.6489153274786 | etot = -50.5142746145378 +810000 ekin = 5.18560956702226 | erot = 14.7848453683537 | epot = -70.4847295477963 | etot = -50.5142746124203 +811000 ekin = 4.92192373652428 | erot = 14.9394262725461 | epot = -70.375624621343 | etot = -50.5142746122727 +812000 ekin = 4.78454979623265 | erot = 15.0222979446883 | epot = -70.3211223520346 | etot = -50.5142746111137 +813000 ekin = 4.77811513007573 | erot = 15.0438932857333 | epot = -70.3362830266118 | etot = -50.5142746108028 +814000 ekin = 4.89877766102121 | erot = 15.0134686698619 | epot = -70.4265209424707 | etot = -50.5142746115876 +815000 ekin = 5.13224364530848 | erot = 14.9341431305877 | epot = -70.5806613892622 | etot = -50.5142746133661 +816000 ekin = 5.45499511248401 | erot = 14.8029157850397 | epot = -70.7721855132897 | etot = -50.514274615766 +817000 ekin = 5.83730378159657 | erot = 14.6128652259922 | epot = -70.9644436259237 | etot = -50.5142746183349 +818000 ekin = 6.2470507826388 | erot = 14.3559898192088 | epot = -71.1173152225243 | etot = -50.5142746206768 +819000 ekin = 6.6533351986997 | erot = 14.02559371508 | epot = -71.1932035362805 | etot = -50.5142746225008 +820000 ekin = 7.02931213197788 | erot = 13.6180701134041 | epot = -71.1616568689685 | etot = -50.5142746235865 +821000 ekin = 7.35419181513005 | erot = 13.1344275810955 | epot = -71.0028940199835 | etot = -50.5142746237579 +822000 ekin = 7.61452267036041 | erot = 12.5816642165446 | epot = -70.710461509826 | etot = -50.514274622921 +823000 ekin = 7.80457913682541 | erot = 11.9738516457301 | epot = -70.2927054036746 | etot = -50.514274621119 +824000 ekin = 7.92623062485201 | erot = 11.3316465732701 | epot = -69.7721518166521 | etot = -50.51427461853 +825000 ekin = 7.98855124818236 | erot = 10.6800409975003 | epot = -69.1828668611352 | etot = -50.5142746154525 +826000 ekin = 8.00547556716026 | erot = 10.0465644012422 | epot = -68.5663145806636 | etot = -50.5142746122611 +827000 ekin = 7.9933226904963 | erot = 9.45843415914846 | epot = -67.9660314589571 | etot = -50.5142746093124 +828000 ekin = 7.96824966899374 | erot = 8.94000860861965 | epot = -67.4225328845019 | etot = -50.5142746068885 +829000 ekin = 7.94344804464527 | erot = 8.51150826234841 | epot = -66.9692309121181 | etot = -50.5142746051244 +830000 ekin = 7.92872079695388 | erot = 8.18753713456104 | epot = -66.6305325355387 | etot = -50.5142746040238 +831000 ekin = 7.9301544519131 | erot = 7.97742868766256 | epot = -66.4218577430505 | etot = -50.5142746034749 +832000 ekin = 7.95037084501752 | erot = 7.88660237980199 | epot = -66.35124782804 | etot = -50.5142746032205 +833000 ekin = 7.9900087168228 | erot = 7.91841904036411 | epot = -66.42270236042 | etot = -50.5142746032331 +834000 ekin = 8.04830667220734 | erot = 8.07516750501644 | epot = -66.6377487804322 | etot = -50.5142746032084 +835000 ekin = 8.12473779283697 | erot = 8.35958341056793 | epot = -66.9985958064483 | etot = -50.5142746030434 +836000 ekin = 8.22030282864492 | erot = 8.77529455000173 | epot = -67.5098719814205 | etot = -50.5142746027739 +837000 ekin = 8.33787083575325 | erot = 9.32581140976129 | epot = -68.1779568481181 | etot = -50.5142746026035 +838000 ekin = 8.48148351710538 | erot = 10.0120708918826 | epot = -69.0078290118947 | etot = -50.5142746029068 +839000 ekin = 8.6545472339528 | erot = 10.8286339895783 | epot = -69.997455827703 | etot = -50.5142746041719 +840000 ekin = 8.85724897642758 | erot = 11.7591344306047 | epot = -71.1306580138542 | etot = -50.5142746068219 +841000 ekin = 9.08410272398218 | erot = 12.77258772254 | epot = -72.3709650575351 | etot = -50.5142746110129 +842000 ekin = 9.32286445558871 | erot = 13.822272362351 | epot = -73.6594114343907 | etot = -50.514274616451 +843000 ekin = 9.55575186025504 | erot = 14.8485908043933 | epot = -74.9186172870397 | etot = -50.5142746223914 +844000 ekin = 9.76305319172261 | erot = 15.7859703765622 | epot = -76.063298196125 | etot = -50.5142746278402 +845000 ekin = 9.92653283165094 | erot = 16.5722430343869 | epot = -77.0130504982886 | etot = -50.5142746322508 +846000 ekin = 10.0341915121946 | erot = 17.1569368807615 | epot = -77.7054030275234 | etot = -50.5142746345673 +847000 ekin = 10.0842269981591 | erot = 17.5059176317017 | epot = -78.1044192649009 | etot = -50.5142746350401 +848000 ekin = 10.083480736967 | erot = 17.602801490634 | epot = -78.2005568615482 | etot = -50.5142746339472 +849000 ekin = 10.0452569998608 | erot = 17.4478826304392 | epot = -78.0074142619148 | etot = -50.5142746316148 +850000 ekin = 9.98669392840383 | erot = 17.0565884213116 | epot = -77.5575569780125 | etot = -50.5142746282971 +851000 ekin = 9.92663281891543 | erot = 16.4581424380505 | epot = -76.8990498811725 | etot = -50.5142746242065 +852000 ekin = 9.88421071073538 | erot = 15.6937873464926 | epot = -76.0922726768386 | etot = -50.5142746196106 +853000 ekin = 9.87790001921207 | erot = 14.8136202068669 | epot = -75.2057948409522 | etot = -50.5142746148731 +854000 ekin = 9.92462914157822 | erot = 13.8718574790183 | epot = -74.310761231011 | etot = -50.5142746104145 +855000 ekin = 10.0388102442684 | erot = 12.9213545992827 | epot = -73.4744394501745 | etot = -50.5142746066234 +856000 ekin = 10.2313382537762 | erot = 12.0086601024602 | epot = -72.7542729600063 | etot = -50.5142746037699 +857000 ekin = 10.5087335451293 | erot = 11.170590412433 | epot = -72.1935985595479 | etot = -50.5142746019857 +858000 ekin = 10.8725687504192 | erot = 10.4326544037625 | epot = -71.8194977554572 | etot = -50.5142746012754 +859000 ekin = 11.3192383577643 | erot = 9.80910719595831 | epot = -71.642620155266 | etot = -50.5142746015434 +860000 ekin = 11.8400783420205 | erot = 9.30419552787811 | epot = -71.658548472533 | etot = -50.5142746026344 +861000 ekin = 12.4218045286852 | erot = 8.91415835009289 | epot = -71.8502374831343 | etot = -50.5142746043562 +862000 ekin = 13.047159501774 | erot = 8.62956306065923 | epot = -72.1909971689654 | etot = -50.5142746065321 +863000 ekin = 13.6955471607497 | erot = 8.43751332746866 | epot = -72.647335097261 | etot = -50.5142746090426 +864000 ekin = 14.3434008697799 | erot = 8.32326841732247 | epot = -73.1809438989578 | etot = -50.5142746118554 +865000 ekin = 14.9642125533562 | erot = 8.271045708321 | epot = -73.7495328766584 | etot = -50.5142746149813 +866000 ekin = 15.5285589837922 | erot = 8.26427543437267 | epot = -74.3071090365222 | etot = -50.5142746183574 +867000 ekin = 16.004884459812 | erot = 8.28609725289935 | epot = -74.8052563344375 | etot = -50.5142746217262 +868000 ekin = 16.3618698335786 | erot = 8.32099923208314 | epot = -75.1971436902378 | etot = -50.514274624576 +869000 ekin = 16.5726647379719 | erot = 8.35789379698042 | epot = -75.444833161217 | etot = -50.5142746262647 +870000 ekin = 16.6201866860209 | erot = 8.39376845178061 | epot = -75.5282297640759 | etot = -50.5142746262744 +871000 ekin = 16.5016790588097 | erot = 8.43606779494812 | epot = -75.4520214782497 | etot = -50.5142746244918 +872000 ekin = 16.2341552473536 | erot = 8.50234235649182 | epot = -75.2507722227927 | etot = -50.5142746189473 +873000 ekin = 15.8766860459151 | erot = 8.61819397754757 | epot = -75.0091546394492 | etot = -50.5142746159866 +874000 ekin = 15.4649107938791 | erot = 8.80433706336327 | epot = -74.7835224708048 | etot = -50.5142746135625 +875000 ekin = 15.0262874336045 | erot = 9.07115551080233 | epot = -74.6117175567219 | etot = -50.5142746123152 +876000 ekin = 14.5841946134941 | erot = 9.41501293027044 | epot = -74.5134821563096 | etot = -50.5142746125451 +877000 ekin = 14.1547799929574 | erot = 9.81684169519029 | epot = -74.4858963036082 | etot = -50.5142746154604 +878000 ekin = 13.7382136358382 | erot = 10.2440638824515 | epot = -74.4965521349712 | etot = -50.5142746166814 +879000 ekin = 13.3387592431181 | erot = 10.6587148562478 | epot = -74.5117487186855 | etot = -50.5142746193196 +880000 ekin = 12.9616338661233 | erot = 11.0178947403692 | epot = -74.493803227927 | etot = -50.5142746214345 +881000 ekin = 12.6124700510822 | erot = 11.282814649363 | epot = -74.4095593228675 | etot = -50.5142746224222 +882000 ekin = 12.3012191623517 | erot = 11.4261723469453 | epot = -74.2416661314064 | etot = -50.5142746221094 +883000 ekin = 12.0416845184565 | erot = 11.435283897645 | epot = -73.9912430369525 | etot = -50.5142746208509 +884000 ekin = 11.8474220294963 | erot = 11.3115013061744 | epot = -73.6731979550124 | etot = -50.5142746193416 +885000 ekin = 11.7257363966629 | erot = 11.0668464612728 | epot = -73.3068574761389 | etot = -50.5142746182031 +886000 ekin = 11.6731647858944 | erot = 10.7200648867885 | epot = -72.9075042902928 | etot = -50.5142746176099 +887000 ekin = 11.6753437833279 | erot = 10.2941390601762 | epot = -72.4837574607534 | etot = -50.5142746172493 +888000 ekin = 11.7114868674011 | erot = 9.81567994928461 | epot = -72.0414414333127 | etot = -50.5142746166269 +889000 ekin = 11.7608194291219 | erot = 9.31484227783354 | epot = -71.5899363224281 | etot = -50.5142746154726 +890000 ekin = 11.8074394677777 | erot = 8.82394323461783 | epot = -71.1456573163298 | etot = -50.5142746139343 +891000 ekin = 11.8416000935628 | erot = 8.37408459367654 | epot = -70.7299592997222 | etot = -50.5142746124829 +892000 ekin = 11.8578157118592 | erot = 7.99071522456406 | epot = -70.36280554804 | etot = -50.5142746116167 +893000 ekin = 11.8517025878141 | erot = 7.68991980292158 | epot = -70.0558970023627 | etot = -50.514274611627 +894000 ekin = 11.8175069852831 | erot = 7.47687356813375 | epot = -69.8086551659111 | etot = -50.5142746124943 +895000 ekin = 11.7474082014793 | erot = 7.34687884502009 | epot = -69.608561660426 | etot = -50.5142746139266 +896000 ekin = 11.6337519150781 | erot = 7.28921963444749 | epot = -69.4372461644614 | etot = -50.5142746149358 +897000 ekin = 11.472356994567 | erot = 7.29106570298609 | epot = -69.2776973137387 | etot = -50.5142746161856 +898000 ekin = 11.2610645581376 | erot = 7.33791947976118 | epot = -69.1132586561008 | etot = -50.514274618202 +899000 ekin = 10.9996054556735 | erot = 7.41455173571792 | epot = -68.9284318100301 | etot = -50.5142746186387 +900000 ekin = 10.6922844699407 | erot = 7.50755561904315 | epot = -68.7141147070732 | etot = -50.5142746180894 +901000 ekin = 10.35349883072 | erot = 7.60938036319051 | epot = -68.4771538113222 | etot = -50.5142746174117 +902000 ekin = 9.99993129220852 | erot = 7.71616133838586 | epot = -68.230367246768 | etot = -50.5142746161736 +903000 ekin = 9.65023529508671 | erot = 7.82867685331976 | epot = -67.993186763613 | etot = -50.5142746152065 +904000 ekin = 9.31666090716459 | erot = 7.95055248579698 | epot = -67.7814880061039 | etot = -50.5142746131423 +905000 ekin = 9.0151678621596 | erot = 8.09317176469393 | epot = -67.6226142378532 | etot = -50.5142746109997 +906000 ekin = 8.76163371707794 | erot = 8.2719343604388 | epot = -67.5478426867262 | etot = -50.5142746092094 +907000 ekin = 8.56717238120394 | erot = 8.50112591573178 | epot = -67.5825729050883 | etot = -50.5142746081525 +908000 ekin = 8.43684994935758 | erot = 8.78986433043559 | epot = -67.7409888878113 | etot = -50.5142746080181 +909000 ekin = 8.36965149841051 | erot = 9.13947702237007 | epot = -68.023403129548 | etot = -50.5142746087674 +910000 ekin = 8.35959079236633 | erot = 9.54304734377732 | epot = -68.4169127463195 | etot = -50.5142746101759 +911000 ekin = 8.39748118919755 | erot = 9.98695611158263 | epot = -68.8987119127118 | etot = -50.5142746119316 +912000 ekin = 8.47277548197648 | erot = 10.4536385185282 | epot = -69.4406886142433 | etot = -50.5142746137387 +913000 ekin = 8.57499585907974 | erot = 10.9245819662903 | epot = -70.0138524407615 | etot = -50.5142746153915 +914000 ekin = 8.69450482131378 | erot = 11.3827140797361 | epot = -70.5914935178566 | etot = -50.5142746168067 +915000 ekin = 8.82261764862321 | erot = 11.8136624664793 | epot = -71.1505547331184 | etot = -50.5142746180158 +916000 ekin = 8.95125831589976 | erot = 12.2058133556082 | epot = -71.6713462906221 | etot = -50.5142746191141 +917000 ekin = 9.07247170867912 | erot = 12.5495353190533 | epot = -72.1362816479271 | etot = -50.5142746201948 +918000 ekin = 9.17798133023756 | erot = 12.8359656974201 | epot = -72.5282216495854 | etot = -50.5142746219277 +919000 ekin = 9.25795352546051 | erot = 13.0545632678408 | epot = -72.8267914162994 | etot = -50.5142746229981 +920000 ekin = 9.30352764338632 | erot = 13.1980045147827 | epot = -73.0158067819257 | etot = -50.5142746237567 +921000 ekin = 9.30791573962823 | erot = 13.2627586618328 | epot = -73.0849490254401 | etot = -50.514274623979 +922000 ekin = 9.26738318948614 | erot = 13.2504193014238 | epot = -73.032077114381 | etot = -50.5142746234711 +923000 ekin = 9.18225083008032 | erot = 13.1693406239091 | epot = -72.8658660761382 | etot = -50.5142746221487 +924000 ekin = 9.05737763949209 | erot = 13.0352596729487 | epot = -72.6069119325172 | etot = -50.5142746200764 +925000 ekin = 8.9019737971623 | erot = 12.8704449082219 | epot = -72.2866933228554 | etot = -50.5142746174712 +926000 ekin = 8.72875558940198 | erot = 12.7013413967699 | epot = -71.9443716008292 | etot = -50.5142746146573 +927000 ekin = 8.55261219797572 | erot = 12.5551881314088 | epot = -71.6220749413678 | etot = -50.5142746119833 +928000 ekin = 8.38906191378869 | erot = 12.4564414993112 | epot = -71.3597780228518 | etot = -50.5142746097519 +929000 ekin = 8.25278751339911 | erot = 12.4238691104623 | epot = -71.1909312320144 | etot = -50.514274608153 +930000 ekin = 8.15644947625578 | erot = 12.4688675851981 | epot = -71.1395916687183 | etot = -50.5142746072644 +931000 ekin = 8.10980872696185 | erot = 12.5950716572825 | epot = -71.2191549913328 | etot = -50.5142746070885 +932000 ekin = 8.11905369607804 | erot = 12.798887909906 | epot = -71.4322162135849 | etot = -50.5142746076009 +933000 ekin = 8.18618804315994 | erot = 13.0703703777546 | epot = -71.7708330297116 | etot = -50.5142746087971 +934000 ekin = 8.30844961717604 | erot = 13.3939295435153 | epot = -72.2166537713761 | etot = -50.5142746106847 +935000 ekin = 8.47804287614392 | erot = 13.7488706059568 | epot = -72.7411880950829 | etot = -50.5142746129822 +936000 ekin = 8.68285566577444 | erot = 14.1118670755527 | epot = -73.3089973575654 | etot = -50.5142746162383 +937000 ekin = 8.90506344747224 | erot = 14.4532746108157 | epot = -73.8726126780738 | etot = -50.5142746197859 +938000 ekin = 9.12528575776321 | erot = 14.7395572148671 | epot = -74.3791175957916 | etot = -50.5142746231613 +939000 ekin = 9.32644769073843 | erot = 14.9376224441143 | epot = -74.7783447607136 | etot = -50.5142746258609 +940000 ekin = 9.49679607415025 | erot = 15.0191372957794 | epot = -75.0302079974043 | etot = -50.5142746274746 +941000 ekin = 9.63181347023634 | erot = 14.9646422015579 | epot = -75.1107302995734 | etot = -50.5142746277791 +942000 ekin = 9.7345970246142 | erot = 14.7665169184874 | epot = -75.0153885698704 | etot = -50.5142746267687 +943000 ekin = 9.81477003771735 | erot = 14.4302129134903 | epot = -74.7592575758434 | etot = -50.5142746246357 +944000 ekin = 9.88637843640376 | erot = 13.9736039565668 | epot = -74.3742570146764 | etot = -50.5142746217059 +945000 ekin = 9.96538785515584 | erot = 13.4246663205069 | epot = -73.904328794037 | etot = -50.5142746183743 +946000 ekin = 10.0624285977662 | erot = 12.8170998514953 | epot = -73.3938030653477 | etot = -50.5142746160863 +947000 ekin = 10.1824129637518 | erot = 12.1848373687087 | epot = -72.8815249460169 | etot = -50.5142746135564 +948000 ekin = 10.3307952063298 | erot = 11.5602780907907 | epot = -72.4053479087765 | etot = -50.5142746116561 +949000 ekin = 10.5091608692846 | erot = 10.9707033403524 | epot = -71.9941388200363 | etot = -50.5142746103993 +950000 ekin = 10.7157185619705 | erot = 10.436392829731 | epot = -71.6663860014586 | etot = -50.5142746097572 +951000 ekin = 10.9461026016796 | erot = 9.97090696794874 | epot = -71.4312841792187 | etot = -50.5142746095904 +952000 ekin = 11.1944034263847 | erot = 9.58208330477752 | epot = -71.2907613408679 | etot = -50.5142746097057 +953000 ekin = 11.4542745285081 | erot = 9.27371614288968 | epot = -71.2422652813336 | etot = -50.5142746099358 +954000 ekin = 11.7197914421063 | erot = 9.04716566656764 | epot = -71.2812317188749 | etot = -50.5142746102009 +955000 ekin = 11.985807578237 | erot = 8.90221043238509 | epot = -71.4022926211614 | etot = -50.5142746105393 +956000 ekin = 12.2477526012259 | erot = 8.83681504684861 | epot = -71.5988422591496 | etot = -50.5142746110751 +957000 ekin = 12.5001620855863 | erot = 8.84602022701713 | epot = -71.8604569247853 | etot = -50.5142746121818 +958000 ekin = 12.7364419158141 | erot = 8.92025316556045 | epot = -72.1709696949275 | etot = -50.5142746135529 +959000 ekin = 12.9499558171104 | erot = 9.04468571433305 | epot = -72.5089161466905 | etot = -50.514274615247 +960000 ekin = 13.1339945045842 | erot = 9.20006474951547 | epot = -72.8483338711111 | etot = -50.5142746170115 +961000 ekin = 13.2830442059634 | erot = 9.36494740346933 | epot = -73.1622662279336 | etot = -50.5142746185009 +962000 ekin = 13.3943598106719 | erot = 9.51904370684229 | epot = -73.4276781368892 | etot = -50.514274619375 +963000 ekin = 13.4693004785333 | erot = 9.6466908834904 | epot = -73.6302659815043 | etot = -50.5142746194805 +964000 ekin = 13.5138667495702 | erot = 9.73885319426343 | epot = -73.7669945625517 | etot = -50.5142746187181 +965000 ekin = 13.5381869822929 | erot = 9.79431086345277 | epot = -73.8467724630306 | etot = -50.514274617285 +966000 ekin = 13.5561247348925 | erot = 9.81745627086625 | epot = -73.8878556215536 | etot = -50.5142746157949 +967000 ekin = 13.5791884002218 | erot = 9.81700827652725 | epot = -73.9104712911705 | etot = -50.5142746144214 +968000 ekin = 13.6156774161998 | erot = 9.80283527457497 | epot = -73.9327873043165 | etot = -50.5142746135418 +969000 ekin = 13.6696213239404 | erot = 9.78235769607308 | epot = -73.9662536334078 | etot = -50.5142746133943 +970000 ekin = 13.7395769125834 | erot = 9.75809430136155 | epot = -74.0119458280989 | etot = -50.514274614154 +971000 ekin = 13.8188233688189 | erot = 9.72517183373113 | epot = -74.0582698180677 | etot = -50.5142746155177 +972000 ekin = 13.8945737117847 | erot = 9.67630144621188 | epot = -74.0851497751246 | etot = -50.514274617128 +973000 ekin = 13.9510636746107 | erot = 9.60403058377153 | epot = -74.0693688769437 | etot = -50.5142746185615 +974000 ekin = 13.9725505850026 | erot = 9.50361383005942 | epot = -73.990439034536 | etot = -50.514274619474 +975000 ekin = 13.9459468249009 | erot = 9.37533024549605 | epot = -73.8355516900994 | etot = -50.5142746197025 +976000 ekin = 13.8626234187874 | erot = 9.22504260860028 | epot = -73.6019406466906 | etot = -50.514274619303 +977000 ekin = 13.7190808966933 | erot = 9.06288466716476 | epot = -73.2962401823334 | etot = -50.5142746184753 +978000 ekin = 13.5166571665429 | erot = 8.90088911562056 | epot = -72.9318208995972 | etot = -50.5142746174337 +979000 ekin = 13.2607650056573 | erot = 8.75083051915402 | epot = -72.5258701411063 | etot = -50.5142746162949 +980000 ekin = 12.9601438447104 | erot = 8.62327601862834 | epot = -72.0976944783913 | etot = -50.5142746150525 +981000 ekin = 12.6263377401163 | erot = 8.52805592036694 | epot = -71.6686682741084 | etot = -50.5142746136252 +982000 ekin = 12.2732923453016 | erot = 8.47560645870777 | epot = -71.2631734159473 | etot = -50.5142746119379 +983000 ekin = 11.9168085654428 | erot = 8.47829635029741 | epot = -70.9093795257357 | etot = -50.5142746099954 +984000 ekin = 11.5736514704685 | erot = 8.55096975128897 | epot = -70.6388958296694 | etot = -50.5142746079119 +985000 ekin = 11.260336157805 | erot = 8.7102581792731 | epot = -70.4848689429876 | etot = -50.5142746059095 +986000 ekin = 10.9917013457341 | erot = 8.97258068370089 | epot = -70.4785566337324 | etot = -50.5142746042974 +987000 ekin = 10.7795065325224 | erot = 9.35090018037428 | epot = -70.6446813163389 | etot = -50.5142746034422 +988000 ekin = 10.6312152805991 | erot = 9.85057203707997 | epot = -70.9960619213865 | etot = -50.5142746037075 +989000 ekin = 10.5490976147615 | erot = 10.4650086574291 | epot = -71.5283808775621 | etot = -50.5142746053715 +990000 ekin = 10.5298658629642 | erot = 11.172318985671 | epot = -72.216459457117 | etot = -50.5142746084818 +991000 ekin = 10.5651233193796 | erot = 11.9345717218314 | epot = -73.0139696539284 | etot = -50.5142746127174 +992000 ekin = 10.6428905939733 | erot = 12.7012555801191 | epot = -73.8584207914381 | etot = -50.5142746173457 +993000 ekin = 10.7501909020635 | erot = 13.4173760270567 | epot = -74.6818415505024 | etot = -50.5142746213823 +994000 ekin = 10.8760849479378 | erot = 14.034452679583 | epot = -75.4248122514733 | etot = -50.5142746239525 +995000 ekin = 11.014003549658 | erot = 14.5205029285366 | epot = -76.0487811028824 | etot = -50.5142746246879 +996000 ekin = 11.1622832137205 | erot = 14.8647830970565 | epot = -76.5413409346542 | etot = -50.5142746238772 +997000 ekin = 11.3226561298868 | erot = 15.0754558509346 | epot = -76.9123866030921 | etot = -50.5142746222707 +998000 ekin = 11.4975426711617 | erot = 15.1719516024432 | epot = -77.1837688942903 | etot = -50.5142746206854 +999000 ekin = 11.6875167360703 | erot = 15.1760730283588 | epot = -77.3778643840911 | etot = -50.5142746196621 +1000000 ekin = 11.8899772625222 | erot = 15.1055556567953 | epot = -77.5098075386556 | etot = -50.5142746193381 + 1000000 443.20455 -80.663303 3.1534956 -65.61983 -0.0074359672 39304000 +Loop time of 11.0539 on 1 procs for 1000000 steps with 10 atoms + +Performance: 133.346 ns/day, 0.180 hours/ns, 90466.136 timesteps/s, 904.661 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 8.8106 | 8.8106 | 8.8106 | 0.0 | 79.71 +Bond | 0.45112 | 0.45112 | 0.45112 | 0.0 | 4.08 +Neigh | 0.005589 | 0.005589 | 0.005589 | 0.0 | 0.05 +Comm | 0.24664 | 0.24664 | 0.24664 | 0.0 | 2.23 +Output | 0.12442 | 0.12442 | 0.12442 | 0.0 | 1.13 +Modify | 1.1263 | 1.1263 | 1.1263 | 0.0 | 10.19 +Other | | 0.2892 | | | 2.62 + +Nlocal: 10 ave 10 max 10 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 37 ave 37 max 37 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 1.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:11 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 new file mode 100644 index 0000000000..9a582267b8 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/log.19May24.duplex1.g++.4 @@ -0,0 +1,1118 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 10 atoms + reading velocities ... + 10 velocities + scanning bonds ... + 1 = max bonds/atom + 10 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 8 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 2 = max # of 1-4 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 10 settings made for mass +10 atoms in group all +Reading oxdna potential (fene) file oxdna2.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 1 1 + 2 = max # of 1-2 neighbors + 4 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxdna2.real with DATE: 2024-04-26 +Reading oxdna potential (dh) file oxdna2.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.64003240988628 (src/comm.cpp:739) +0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.9029330618621 | etot = -50.5142754103311 +Per MPI rank memory allocation (min/avg/max) = 7.451 | 7.452 | 7.453 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 246.27432 -80.289462 6.3865285 -67.29606 -0.044626926 39304000 +1000 ekin = 6.41540831684956 | erot = 17.3249788985168 | epot = -74.2546626270297 | etot = -50.5142754116634 +2000 ekin = 6.27991122577835 | erot = 17.8454504610745 | epot = -74.6396371002369 | etot = -50.514275413384 +3000 ekin = 6.20398291945338 | erot = 18.3140766039219 | epot = -75.0323349385591 | etot = -50.5142754151838 +4000 ekin = 6.18636199767566 | erot = 18.7040547099769 | epot = -75.4046921244024 | etot = -50.5142754167498 +5000 ekin = 6.22215732158458 | erot = 18.9942188143056 | epot = -75.7306515537709 | etot = -50.5142754178807 +6000 ekin = 6.30420734178858 | erot = 19.1708709879918 | epot = -75.9893537482967 | etot = -50.5142754185163 +7000 ekin = 6.4241349103898 | erot = 19.2280244216477 | epot = -76.1664347507275 | etot = -50.51427541869 +8000 ekin = 6.57305019042805 | erot = 19.1666743693583 | epot = -76.2539999782602 | etot = -50.5142754184739 +9000 ekin = 6.74208660925288 | erot = 18.9937209190121 | epot = -76.250082946157 | etot = -50.514275417892 +10000 ekin = 6.92290866428223 | erot = 18.7212338885033 | epot = -76.1584179697745 | etot = -50.514275416989 +11000 ekin = 7.10814925172364 | erot = 18.3654806858375 | epot = -75.9879053534118 | etot = -50.5142754158506 +12000 ekin = 7.29164020767367 | erot = 17.9454168333354 | epot = -75.7513324556475 | etot = -50.5142754146384 +13000 ekin = 7.46835372796753 | erot = 17.4806722087765 | epot = -75.463301350236 | etot = -50.514275413492 +14000 ekin = 7.63410684865866 | erot = 16.9894852695674 | epot = -75.1378675308065 | etot = -50.5142754125804 +15000 ekin = 7.78518315371966 | erot = 16.4873283506083 | epot = -74.7867869161468 | etot = -50.5142754118188 +16000 ekin = 7.9180489561805 | erot = 15.9866370289743 | epot = -74.4189613960958 | etot = -50.514275410941 +17000 ekin = 8.02929115913949 | erot = 15.4954883395909 | epot = -74.0390549098709 | etot = -50.5142754111405 +18000 ekin = 8.11580274929282 | erot = 15.016179514802 | epot = -73.646257675632 | etot = -50.5142754115371 +19000 ekin = 8.17521064581969 | erot = 14.5455007220264 | epot = -73.2349867798163 | etot = -50.5142754119702 +20000 ekin = 8.20646553317788 | erot = 14.0791106720693 | epot = -72.7998516175191 | etot = -50.5142754122719 +21000 ekin = 8.210504997477 | erot = 13.6133776866129 | epot = -72.3381580963801 | etot = -50.5142754122902 +22000 ekin = 8.19089628972989 | erot = 13.1469621627642 | epot = -71.8521338644047 | etot = -50.5142754119106 +23000 ekin = 8.15436625402569 | erot = 12.6819076192472 | epot = -71.3505492843443 | etot = -50.5142754110714 +24000 ekin = 8.11112226003192 | erot = 12.2241028664329 | epot = -70.849500536239 | etot = -50.5142754097742 +25000 ekin = 8.0748389856222 | erot = 11.7830774890271 | epot = -70.3721918827457 | etot = -50.5142754080964 +26000 ekin = 8.06214574493372 | erot = 11.3711691532405 | epot = -69.9475903043491 | etot = -50.5142754061749 +27000 ekin = 8.09157304392403 | erot = 11.0021655564051 | epot = -69.6080140045727 | etot = -50.5142754042436 +28000 ekin = 8.1816091552257 | erot = 10.6895124998223 | epot = -69.3853970576618 | etot = -50.5142754026138 +29000 ekin = 8.34799192749725 | erot = 10.4442109367346 | epot = -69.306478265872 | etot = -50.5142754016401 +30000 ekin = 8.60050901552075 | erot = 10.2725968652597 | epot = -69.3873812824487 | etot = -50.5142754016683 +31000 ekin = 8.93993736466309 | erot = 10.1743202831913 | epot = -69.6285330507847 | etot = -50.5142754029304 +32000 ekin = 9.35601638498826 | erot = 10.1409979548438 | epot = -70.0112897452869 | etot = -50.5142754054548 +33000 ekin = 9.82730889560409 | erot = 10.1573088046849 | epot = -70.4988931092342 | etot = -50.5142754089452 +34000 ekin = 10.3233617248876 | erot = 10.201770188909 | epot = -71.0394073268399 | etot = -50.5142754130433 +35000 ekin = 10.809056119043 | erot = 10.2472649264777 | epot = -71.5705964624701 | etot = -50.5142754169493 +36000 ekin = 11.249914122838 | erot = 10.2681203532659 | epot = -72.0323098961308 | etot = -50.5142754200268 +37000 ekin = 11.6169651147158 | erot = 10.244630362473 | epot = -72.3758708990405 | etot = -50.5142754218516 +38000 ekin = 11.8900149081463 | erot = 10.1661461993865 | epot = -72.5704365298436 | etot = -50.5142754223108 +39000 ekin = 12.0587831385564 | erot = 10.0319213337585 | epot = -72.6049798938924 | etot = -50.5142754215774 +40000 ekin = 12.1221423965446 | erot = 9.84972970547109 | epot = -72.4861475220151 | etot = -50.5142754199994 +41000 ekin = 12.0861841074643 | erot = 9.6330625802473 | epot = -72.2335221056765 | etot = -50.5142754179649 +42000 ekin = 11.9619003024196 | erot = 9.39799829870681 | epot = -71.8741740169304 | etot = -50.514275415804 +43000 ekin = 11.7630285569638 | erot = 9.16060997815271 | epot = -71.4379139488624 | etot = -50.5142754137459 +44000 ekin = 11.5042972043481 | erot = 8.93525280143089 | epot = -70.9538254179095 | etot = -50.5142754121305 +45000 ekin = 11.2001042846024 | erot = 8.73270158680058 | epot = -70.4470812820302 | etot = -50.5142754106272 +46000 ekin = 10.8635866168478 | erot = 8.56191440586752 | epot = -69.9397764321244 | etot = -50.5142754094091 +47000 ekin = 10.506042654143 | erot = 8.43032536515512 | epot = -69.4506434277693 | etot = -50.5142754084712 +48000 ekin = 10.1367333285096 | erot = 8.34379512278126 | epot = -68.9948038590512 | etot = -50.5142754077604 +49000 ekin = 9.76306209921903 | erot = 8.30714647396204 | epot = -68.5844839803861 | etot = -50.5142754072051 +50000 ekin = 9.39110096123079 | erot = 8.32465746225152 | epot = -68.2300338302012 | etot = -50.5142754067189 +51000 ekin = 9.02637094808705 | erot = 8.40044977380951 | epot = -67.9410961281186 | etot = -50.5142754062221 +52000 ekin = 8.67472960831569 | erot = 8.53870234353558 | epot = -67.7277073575016 | etot = -50.5142754056503 +53000 ekin = 8.34318047181608 | erot = 8.74362113488822 | epot = -67.6010770116717 | etot = -50.5142754049674 +54000 ekin = 8.04040850085723 | erot = 9.01907630543207 | epot = -67.5737602105477 | etot = -50.5142754042584 +55000 ekin = 7.77685567444806 | erot = 9.36744157045945 | epot = -67.6585726485249 | etot = -50.5142754036174 +56000 ekin = 7.56421834771092 | erot = 9.78833936441787 | epot = -67.8668331153491 | etot = -50.5142754032203 +57000 ekin = 7.41438670676051 | erot = 10.2770459211361 | epot = -68.2057080311531 | etot = -50.5142754032564 +58000 ekin = 7.33802624874281 | erot = 10.8230821587548 | epot = -68.6753838113668 | etot = -50.5142754038692 +59000 ekin = 7.34316098271645 | erot = 11.4095663141997 | epot = -69.2670027020111 | etot = -50.514275405095 +60000 ekin = 7.4341300075388 | erot = 12.0137183042255 | epot = -69.9621237186179 | etot = -50.5142754068536 +61000 ekin = 7.61111888193163 | erot = 12.6084567926317 | epot = -70.7338510836134 | etot = -50.5142754090501 +62000 ekin = 7.87021275187741 | erot = 13.1643184159405 | epot = -71.5488065791708 | etot = -50.5142754113529 +63000 ekin = 8.20369524488242 | erot = 13.6538505067931 | epot = -72.3718211650938 | etot = -50.5142754134183 +64000 ekin = 8.60031282923891 | erot = 14.0539021280599 | epot = -73.1684903728601 | etot = -50.5142754155613 +65000 ekin = 9.04632694082953 | erot = 14.3452399471035 | epot = -73.9058423052434 | etot = -50.5142754173104 +66000 ekin = 9.52633841545675 | erot = 14.5163977172627 | epot = -74.5570115512606 | etot = -50.5142754185412 +67000 ekin = 10.0239662909343 | erot = 14.5650853618121 | epot = -75.1033270719445 | etot = -50.5142754191981 +68000 ekin = 10.522376965109 | erot = 14.4984989976628 | epot = -75.5351513820892 | etot = -50.5142754193175 +69000 ekin = 11.0045882552163 | erot = 14.3324567229673 | epot = -75.8513203972085 | etot = -50.5142754190249 +70000 ekin = 11.4535533147697 | erot = 14.0893789066283 | epot = -76.0572076399118 | etot = -50.5142754185137 +71000 ekin = 11.8521538801888 | erot = 13.7954213090599 | epot = -76.1618506069774 | etot = -50.5142754177287 +72000 ekin = 12.1833321321126 | erot = 13.477970603226 | epot = -76.1755781528756 | etot = -50.514275417537 +73000 ekin = 12.4276815038076 | erot = 13.1602120049098 | epot = -76.1021689263877 | etot = -50.5142754176703 +74000 ekin = 12.5675503165858 | erot = 12.8593249179885 | epot = -75.9411506526192 | etot = -50.5142754180449 +75000 ekin = 12.5880722472028 | erot = 12.5864734132395 | epot = -75.6888210788983 | etot = -50.514275418456 +76000 ekin = 12.4791879307471 | erot = 12.3474886698862 | epot = -75.34095201925 | etot = -50.5142754186168 +77000 ekin = 12.2380594263604 | erot = 12.144566415658 | epot = -74.8969012602677 | etot = -50.5142754182493 +78000 ekin = 11.8710909455364 | erot = 11.9782430722432 | epot = -74.3636094349585 | etot = -50.5142754171789 +79000 ekin = 11.3949317822826 | erot = 11.84887925342 | epot = -73.7580864511053 | etot = -50.5142754154027 +80000 ekin = 10.8360121848374 | erot = 11.7571641077332 | epot = -73.1074517056643 | etot = -50.5142754130937 +81000 ekin = 10.2285029505798 | erot = 11.7036410573964 | epot = -72.4464194185294 | etot = -50.5142754105532 +82000 ekin = 9.61095186500213 | erot = 11.6876732074566 | epot = -71.8129004805938 | etot = -50.5142754081351 +83000 ekin = 9.02210953811349 | erot = 11.7064078446962 | epot = -71.242792788983 | etot = -50.5142754061733 +84000 ekin = 8.49658156957016 | erot = 11.7541576431601 | epot = -70.7650146176605 | etot = -50.5142754049302 +85000 ekin = 8.06096889575964 | erot = 11.8223883028468 | epot = -70.3976326031568 | etot = -50.5142754045504 +86000 ekin = 7.73111762512716 | erot = 11.9003213122135 | epot = -70.1457143423862 | etot = -50.5142754050455 +87000 ekin = 7.51095945896828 | erot = 11.9760199352957 | epot = -70.0012548008799 | etot = -50.514275406616 +88000 ekin = 7.39125161739554 | erot = 12.0367692288882 | epot = -69.9422962547364 | etot = -50.5142754084527 +89000 ekin = 7.35291960067921 | erot = 12.0715131146574 | epot = -69.9387081257094 | etot = -50.5142754103727 +90000 ekin = 7.3729215274092 | erot = 12.0742094418155 | epot = -69.961406381238 | etot = -50.5142754120133 +91000 ekin = 7.4267722576974 | erot = 12.0445134023044 | epot = -69.9855610731056 | etot = -50.5142754131038 +92000 ekin = 7.49195579980787 | erot = 11.9883651963209 | epot = -69.9945964096583 | etot = -50.5142754135295 +93000 ekin = 7.5503081081974 | erot = 11.9173535388122 | epot = -69.9819370603462 | etot = -50.5142754133367 +94000 ekin = 7.58924049100697 | erot = 11.8468330690197 | epot = -69.9503489726999 | etot = -50.5142754126733 +95000 ekin = 7.60200252044838 | erot = 11.7936183338064 | epot = -69.9098962660036 | etot = -50.5142754117489 +96000 ekin = 7.58730388646369 | erot = 11.77323103503 | epot = -69.8748103322621 | etot = -50.5142754107683 +97000 ekin = 7.54854000456031 | erot = 11.7975124404608 | epot = -69.8603278549306 | etot = -50.5142754099095 +98000 ekin = 7.49272694028264 | erot = 11.872919668758 | epot = -69.87992201836 | etot = -50.5142754093194 +99000 ekin = 7.42914947570204 | erot = 11.9995813313717 | epot = -69.9430062161896 | etot = -50.5142754091159 +100000 ekin = 7.36773967938537 | erot = 12.1710710801644 | epot = -70.053086168939 | etot = -50.5142754093892 +101000 ekin = 7.3173239708405 | erot = 12.3748173436283 | epot = -70.2064167246514 | etot = -50.5142754101825 +102000 ekin = 7.2840363832501 | erot = 12.593109795725 | epot = -70.3914215904381 | etot = -50.514275411463 +103000 ekin = 7.27028672218553 | erot = 12.8047065613068 | epot = -70.5892686965911 | etot = -50.5142754130988 +104000 ekin = 7.27461582345199 | erot = 12.9870305824868 | epot = -70.7759218207938 | etot = -50.5142754148549 +105000 ekin = 7.29256428498991 | erot = 13.1188507799835 | epot = -70.9256904813974 | etot = -50.514275416424 +106000 ekin = 7.31837884124412 | erot = 13.183170708698 | epot = -71.0158249674247 | etot = -50.5142754174826 +107000 ekin = 7.3471237151123 | erot = 13.169898927461 | epot = -71.0312980603379 | etot = -50.5142754177645 +108000 ekin = 7.37665826766646 | erot = 13.0778272245807 | epot = -70.9687609093646 | etot = -50.5142754171175 +109000 ekin = 7.40901890869153 | erot = 12.9155349189492 | epot = -70.8388292431735 | etot = -50.5142754155327 +110000 ekin = 7.45094132862704 | erot = 12.7010355373246 | epot = -70.6662522790932 | etot = -50.5142754131415 +111000 ekin = 7.51347081219303 | erot = 12.4602014961901 | epot = -70.4879477185801 | etot = -50.5142754101971 +112000 ekin = 7.61074849763162 | erot = 12.2241598717142 | epot = -70.3491837763871 | etot = -50.5142754070413 +113000 ekin = 7.75811427376732 | erot = 12.0259242572136 | epot = -70.2983139350622 | etot = -50.5142754040813 +114000 ekin = 7.96968357180692 | erot = 11.8965473949297 | epot = -70.3805063684924 | etot = -50.5142754017558 +115000 ekin = 8.25649742679491 | erot = 11.8610413387419 | epot = -70.6318141648425 | etot = -50.5142753993057 +116000 ekin = 8.62901108799855 | erot = 11.9338020389727 | epot = -71.077088526737 | etot = -50.5142753997658 +117000 ekin = 9.07979306129298 | erot = 12.1168310649588 | epot = -71.7108995279887 | etot = -50.5142754017369 +118000 ekin = 9.58966909202019 | erot = 12.3984864178243 | epot = -72.5024309149993 | etot = -50.5142754051548 +119000 ekin = 10.1306989356931 | erot = 12.7538188996423 | epot = -73.3987932450655 | etot = -50.5142754097302 +120000 ekin = 10.6681502559759 | erot = 13.1469968867666 | epot = -74.3294225577248 | etot = -50.5142754149823 +121000 ekin = 11.1636445520065 | erot = 13.535473044617 | epot = -75.2133930169258 | etot = -50.5142754203023 +122000 ekin = 11.5789797549587 | erot = 13.8753321908118 | epot = -75.9685873708276 | etot = -50.5142754250571 +123000 ekin = 11.8800282928175 | erot = 14.1269962436829 | epot = -76.521299965185 | etot = -50.5142754286847 +124000 ekin = 12.040150051494 | erot = 14.2603474738973 | epot = -76.8147729561726 | etot = -50.5142754307813 +125000 ekin = 12.0426917567894 | erot = 14.2584040043201 | epot = -76.8153711922698 | etot = -50.5142754311602 +126000 ekin = 11.8823151169307 | erot = 14.1189492121665 | epot = -76.5155397589617 | etot = -50.5142754298644 +127000 ekin = 11.5650853952459 | erot = 13.8539357927778 | epot = -75.9332966151645 | etot = -50.5142754271407 +128000 ekin = 11.1074426377014 | erot = 13.4869506143891 | epot = -75.1086686754623 | etot = -50.5142754233718 +129000 ekin = 10.5343384717438 | erot = 13.0494015453618 | epot = -74.0980154361011 | etot = -50.5142754189956 +130000 ekin = 9.87690872398553 | erot = 12.576259576003 | epot = -72.9674437144188 | etot = -50.5142754144302 +131000 ekin = 9.17004712473897 | erot = 12.1021279223491 | epot = -71.7864504571086 | etot = -50.5142754100205 +132000 ekin = 8.45013853633907 | erot = 11.6581576779304 | epot = -70.6225716202886 | etot = -50.5142754060192 +133000 ekin = 7.75306702335383 | erot = 11.2700074960012 | epot = -69.5373499219523 | etot = -50.5142754025972 +134000 ekin = 7.11230829825862 | erot = 10.9564870021566 | epot = -68.5830707008209 | etot = -50.5142754004056 +135000 ekin = 6.55612439193876 | erot = 10.7277682649143 | epot = -67.7981680553211 | etot = -50.5142753984681 +136000 ekin = 6.10819187149973 | erot = 10.5892176988539 | epot = -67.211684967683 | etot = -50.5142753973294 +137000 ekin = 5.78608197421766 | erot = 10.5405205028491 | epot = -66.8408778740874 | etot = -50.5142753970207 +138000 ekin = 5.60007006615214 | erot = 10.575791335008 | epot = -66.6901367986829 | etot = -50.5142753975228 +139000 ekin = 5.55268795111655 | erot = 10.6843332994606 | epot = -66.751296649329 | etot = -50.5142753987518 +140000 ekin = 5.63899580381936 | erot = 10.8516980543454 | epot = -67.00496925871 | etot = -50.5142754005452 +141000 ekin = 5.84764919447641 | erot = 11.0611136462022 | epot = -67.4230382433494 | etot = -50.5142754026708 +142000 ekin = 6.16264005598841 | erot = 11.2952393652931 | epot = -67.9721548261423 | etot = -50.5142754048608 +143000 ekin = 6.56539680065064 | erot = 11.5380449116312 | epot = -68.6177171191527 | etot = -50.5142754068709 +144000 ekin = 7.03681705533687 | erot = 11.7764583665001 | epot = -69.3275508303693 | etot = -50.5142754085323 +145000 ekin = 7.55883117515936 | erot = 12.0018872087092 | epot = -70.074993793568 | etot = -50.5142754096994 +146000 ekin = 8.11525467293437 | erot = 12.2097777634791 | epot = -70.8393078470414 | etot = -50.5142754106279 +147000 ekin = 8.69187535303815 | erot = 12.3979831782877 | epot = -71.604133942692 | etot = -50.5142754113661 +148000 ekin = 9.27596343938009 | erot = 12.5659623821079 | epot = -72.3562012335829 | etot = -50.5142754120949 +149000 ekin = 9.85549786713835 | erot = 12.7129927814329 | epot = -73.0827660615442 | etot = -50.5142754129729 +150000 ekin = 10.418396768649 | erot = 12.8366697845745 | epot = -73.769341967324 | etot = -50.5142754141005 +151000 ekin = 10.9519669544071 | erot = 12.9320291475711 | epot = -74.3982715174723 | etot = -50.5142754154942 +152000 ekin = 11.4426825170492 | erot = 12.9914579844155 | epot = -74.9484159185624 | etot = -50.5142754170976 +153000 ekin = 11.876317648688 | erot = 13.0054164817443 | epot = -75.3960095492288 | etot = -50.5142754187965 +154000 ekin = 12.2384007603461 | erot = 12.9636415213673 | epot = -75.7163177021576 | etot = -50.5142754204442 +155000 ekin = 12.5149348410733 | erot = 12.8565997645001 | epot = -75.8858100274551 | etot = -50.5142754218817 +156000 ekin = 12.6933342582482 | erot = 12.6769330808811 | epot = -75.8845427620791 | etot = -50.5142754229498 +157000 ekin = 12.7635394773922 | erot = 12.4207265619602 | epot = -75.6985414628484 | etot = -50.514275423496 +158000 ekin = 12.7192609300225 | erot = 12.0885427176416 | epot = -75.3220790710407 | etot = -50.5142754233766 +159000 ekin = 12.5592455089091 | erot = 11.6862409532771 | epot = -74.7597618846584 | etot = -50.5142754224722 +160000 ekin = 12.288354457994 | erot = 11.2255943810305 | epot = -74.0282242597334 | etot = -50.5142754207088 +161000 ekin = 11.9181388689072 | erot = 10.7246248575609 | epot = -73.1570391445684 | etot = -50.5142754181004 +162000 ekin = 11.4665846354836 | erot = 10.2074983581298 | epot = -72.1883584083817 | etot = -50.5142754147683 +163000 ekin = 10.9568419276688 | erot = 9.70380592719131 | epot = -71.1749232658142 | etot = -50.5142754109541 +164000 ekin = 10.415038281725 | erot = 9.24702033764179 | epot = -70.1763340263581 | etot = -50.5142754069913 +165000 ekin = 9.86757905055464 | erot = 8.87218491764896 | epot = -69.254039371451 | etot = -50.5142754032474 +166000 ekin = 9.33851143760975 | erot = 8.6130347778522 | epot = -68.4658216155254 | etot = -50.5142754000635 +167000 ekin = 8.84748730504085 | erot = 8.49893907243694 | epot = -67.8607017751746 | etot = -50.5142753976968 +168000 ekin = 8.40864571542269 | erot = 8.55215074312135 | epot = -67.4750718548298 | etot = -50.5142753962858 +169000 ekin = 8.03045700864842 | erot = 8.78581375895569 | epot = -67.3305461634548 | etot = -50.5142753958506 +170000 ekin = 7.71636101684918 | erot = 9.20299038162971 | epot = -67.4336267947997 | etot = -50.5142753963208 +171000 ekin = 7.46715080109723 | erot = 9.79683187833268 | epot = -67.77825807604 | etot = -50.5142753966101 +172000 ekin = 7.28585658179886 | erot = 10.5506327822701 | epot = -68.3507647629954 | etot = -50.5142753989265 +173000 ekin = 7.16416011926273 | erot = 11.4382460333911 | epot = -69.1166815543033 | etot = -50.5142754016495 +174000 ekin = 7.09132968419416 | erot = 12.4279054681619 | epot = -70.0335105569907 | etot = -50.5142754046347 +175000 ekin = 7.05634491974703 | erot = 13.4842000875638 | epot = -71.0548204150808 | etot = -50.51427540777 +176000 ekin = 7.04815622786012 | erot = 14.5697180480002 | epot = -72.1321496868147 | etot = -50.5142754109544 +177000 ekin = 7.05589089928332 | erot = 15.6465151520296 | epot = -73.2166814653926 | etot = -50.5142754140797 +178000 ekin = 7.06870996384048 | erot = 16.6778391096179 | epot = -74.2608244904897 | etot = -50.5142754170313 +179000 ekin = 7.07565875636352 | erot = 17.6303035880064 | epot = -75.2202377640034 | etot = -50.5142754196335 +180000 ekin = 7.06640718471778 | erot = 18.475580236099 | epot = -76.0562628425591 | etot = -50.5142754217424 +181000 ekin = 7.03211004009704 | erot = 19.1916515774748 | epot = -76.7380370407789 | etot = -50.5142754232071 +182000 ekin = 6.96555336524938 | erot = 19.7646727182898 | epot = -77.2445015091219 | etot = -50.5142754255827 +183000 ekin = 6.86135102663214 | erot = 20.1806311279207 | epot = -77.5562575806635 | etot = -50.5142754261107 +184000 ekin = 6.71513119692684 | erot = 20.4321176363584 | epot = -77.6615242591428 | etot = -50.5142754258575 +185000 ekin = 6.52573507255774 | erot = 20.5251927864044 | epot = -77.5652032838376 | etot = -50.5142754248754 +186000 ekin = 6.29640349453609 | erot = 20.4725850987713 | epot = -77.2832640165641 | etot = -50.5142754232567 +187000 ekin = 6.0352483563431 | erot = 20.2918463237094 | epot = -76.8413701011687 | etot = -50.5142754211162 +188000 ekin = 5.75534624813142 | erot = 20.003513474993 | epot = -76.2731351417105 | etot = -50.5142754185861 +189000 ekin = 5.47428677235273 | erot = 19.6288299760677 | epot = -75.6173921644552 | etot = -50.5142754160348 +190000 ekin = 5.21304528645338 | erot = 19.1884702895163 | epot = -74.9157909892313 | etot = -50.5142754132617 +191000 ekin = 4.99413978963197 | erot = 18.7029827292113 | epot = -74.2113979294859 | etot = -50.5142754106427 +192000 ekin = 4.83931815322826 | erot = 18.191274780975 | epot = -73.5448683425773 | etot = -50.5142754083741 +193000 ekin = 4.76714699157977 | erot = 17.6700691054177 | epot = -72.9514915036075 | etot = -50.51427540661 +194000 ekin = 4.79094358958925 | erot = 17.1536396953267 | epot = -72.4588586903521 | etot = -50.5142754054362 +195000 ekin = 4.91743571189986 | erot = 16.6538363084239 | epot = -72.0855474251812 | etot = -50.5142754048574 +196000 ekin = 5.1463565099702 | erot = 16.1803427452281 | epot = -71.8409746600068 | etot = -50.5142754048085 +197000 ekin = 5.4709576937409 | erot = 15.741043259991 | epot = -71.7262763589156 | etot = -50.5142754051837 +198000 ekin = 5.87922858422111 | erot = 15.3423400565245 | epot = -71.7358440466092 | etot = -50.5142754058636 +199000 ekin = 6.35549663143683 | erot = 14.9892917891059 | epot = -71.8590638272886 | etot = -50.5142754067459 +200000 ekin = 6.8820758632859 | erot = 14.6855189973232 | epot = -72.081870268366 | etot = -50.514275407757 +201000 ekin = 7.44070643690184 | erot = 14.4329169816303 | epot = -72.3878988273838 | etot = -50.5142754088517 +202000 ekin = 8.01364908712578 | erot = 14.2312922771998 | epot = -72.7592167743313 | etot = -50.5142754100058 +203000 ekin = 8.58441531263517 | erot = 14.0780678440199 | epot = -73.176758567858 | etot = -50.5142754112029 +204000 ekin = 9.13819316347435 | erot = 13.9681780326677 | epot = -73.6206466085633 | etot = -50.5142754124213 +205000 ekin = 9.66205791777544 | erot = 13.8942152360292 | epot = -74.0705485674246 | etot = -50.5142754136199 +206000 ekin = 10.1450467911598 | erot = 13.8468542669147 | epot = -74.5061764728694 | etot = -50.5142754147949 +207000 ekin = 10.5781443228252 | erot = 13.8152589579854 | epot = -74.9076786967007 | etot = -50.5142754158901 +208000 ekin = 10.9541942360374 | erot = 13.7878179109787 | epot = -75.2562875638908 | etot = -50.5142754168747 +209000 ekin = 11.2677463035536 | erot = 13.7528525924388 | epot = -75.5348743137186 | etot = -50.5142754177263 +210000 ekin = 11.5148381182878 | erot = 13.6992490106657 | epot = -75.7283625473805 | etot = -50.5142754184271 +211000 ekin = 11.6927279463145 | erot = 13.617054323805 | epot = -75.8240576890846 | etot = -50.5142754189651 +212000 ekin = 11.7996107409576 | erot = 13.4980938589365 | epot = -75.8119800191655 | etot = -50.5142754192714 +213000 ekin = 11.8343576841856 | erot = 13.3367031669184 | epot = -75.6853362705999 | etot = -50.5142754194959 +214000 ekin = 11.7963237462782 | erot = 13.1291697339432 | epot = -75.4397688997533 | etot = -50.514275419532 +215000 ekin = 11.6852668694912 | erot = 12.874430284688 | epot = -75.0739725735796 | etot = -50.5142754194004 +216000 ekin = 11.5014303659838 | erot = 12.5741401329483 | epot = -74.5898459180426 | etot = -50.5142754191105 +217000 ekin = 11.2458820823737 | erot = 12.2323072888261 | epot = -73.9924647898455 | etot = -50.5142754186458 +218000 ekin = 10.9212463786256 | erot = 11.8549524898054 | epot = -73.2904742863558 | etot = -50.5142754179248 +219000 ekin = 10.532960707104 | erot = 11.4501226259861 | epot = -72.4973587498683 | etot = -50.5142754167781 +220000 ekin = 10.0910611337979 | erot = 11.0285507859445 | epot = -71.6338873347119 | etot = -50.5142754149696 +221000 ekin = 9.61219796243461 | erot = 10.6049025440457 | epot = -70.7313759187632 | etot = -50.5142754122829 +222000 ekin = 9.12115937360566 | erot = 10.1989791085933 | epot = -69.8344138908757 | etot = -50.5142754086768 +223000 ekin = 8.65086680646373 | erot = 9.83578310548002 | epot = -69.0009253163689 | etot = -50.5142754044252 +224000 ekin = 8.23994052341592 | erot = 9.54342912562408 | epot = -68.2976450491949 | etot = -50.5142754001549 +225000 ekin = 7.92770828799823 | erot = 9.34870111081389 | epot = -67.7906847955069 | etot = -50.5142753966948 +226000 ekin = 7.74769423456563 | erot = 9.27124602944927 | epot = -67.5332156588595 | etot = -50.5142753948446 +227000 ekin = 7.72151333456704 | erot = 9.31824720259694 | epot = -67.5540359321235 | etot = -50.5142753949595 +228000 ekin = 7.8550934831219 | erot = 9.4823063677855 | epot = -67.8516752474312 | etot = -50.5142753965238 +229000 ekin = 8.13704792667924 | erot = 9.74526659084824 | epot = -68.3965899178452 | etot = -50.5142754003177 +230000 ekin = 8.54211975827146 | erot = 10.0762112157472 | epot = -69.1326063789155 | etot = -50.5142754048968 +231000 ekin = 9.03730612207804 | erot = 10.4369573689899 | epot = -69.9885389005796 | etot = -50.5142754095116 +232000 ekin = 9.58655681927191 | erot = 10.7906593081327 | epot = -70.8914915409894 | etot = -50.5142754135848 +233000 ekin = 10.1548693407455 | erot = 11.1065562702293 | epot = -71.7757010277636 | etot = -50.5142754167888 +234000 ekin = 10.7108776684946 | erot = 11.3626339427593 | epot = -72.5877870303025 | etot = -50.5142754190486 +235000 ekin = 11.227991529631 | erot = 11.5461467437172 | epot = -73.2884136938095 | etot = -50.5142754204614 +236000 ekin = 11.6845296184684 | erot = 11.6525082369783 | epot = -73.8513132774546 | etot = -50.5142754220079 +237000 ekin = 12.0579257921087 | erot = 11.6840457725785 | epot = -74.256246987397 | etot = -50.5142754227097 +238000 ekin = 12.3279512217304 | erot = 11.6453539329295 | epot = -74.4875805777133 | etot = -50.5142754230534 +239000 ekin = 12.4822356739966 | erot = 11.5417603171798 | epot = -74.5382714141925 | etot = -50.5142754230161 +240000 ekin = 12.5140319304705 | erot = 11.3798400951642 | epot = -74.4081474481376 | etot = -50.5142754225029 +241000 ekin = 12.4234383523719 | erot = 11.1674085806387 | epot = -74.1051223544116 | etot = -50.514275421401 +242000 ekin = 12.2186033883425 | erot = 10.9138071750467 | epot = -73.6466859829904 | etot = -50.5142754196012 +243000 ekin = 11.9165339535847 | erot = 10.6303079140403 | epot = -73.0611172847419 | etot = -50.5142754171169 +244000 ekin = 11.5429037221883 | erot = 10.3301144758677 | epot = -72.3872936120617 | etot = -50.5142754140058 +245000 ekin = 11.1308004491742 | erot = 10.0279651152867 | epot = -71.6730409749902 | etot = -50.5142754105293 +246000 ekin = 10.7178963481095 | erot = 9.73923384809003 | epot = -70.9714056032603 | etot = -50.5142754070608 +247000 ekin = 10.3421796192255 | erot = 9.47853790668733 | epot = -70.3349929299394 | etot = -50.5142754040265 +248000 ekin = 10.0370371760671 | erot = 9.25823648339794 | epot = -69.8095490613008 | etot = -50.5142754018358 +249000 ekin = 9.82809079046689 | erot = 9.08725211025908 | epot = -69.4296183010316 | etot = -50.5142754003056 +250000 ekin = 9.7301811790438 | erot = 8.96958696148604 | epot = -69.2140435411877 | etot = -50.5142754006578 +251000 ekin = 9.73984053867505 | erot = 8.90312708508932 | epot = -69.1572430257791 | etot = -50.5142754020147 +252000 ekin = 9.84186771029651 | erot = 8.88191102821177 | epot = -69.2380541425503 | etot = -50.5142754040421 +253000 ekin = 10.0131035686047 | erot = 8.89763848171037 | epot = -69.4250174566696 | etot = -50.5142754063545 +254000 ekin = 10.2265753155538 | erot = 8.94123900967878 | epot = -69.6820897338543 | etot = -50.5142754086217 +255000 ekin = 10.4552485961449 | erot = 9.00423312864855 | epot = -69.9737571353835 | etot = -50.5142754105901 +256000 ekin = 10.6747348456466 | erot = 9.07982990112379 | epot = -70.2688401589834 | etot = -50.514275412213 +257000 ekin = 10.8646942922507 | erot = 9.16274367319122 | epot = -70.5417133788841 | etot = -50.5142754134422 +258000 ekin = 11.0093996909192 | erot = 9.24945580314207 | epot = -70.7731309083504 | etot = -50.5142754142891 +259000 ekin = 11.0977947702441 | erot = 9.33830301516425 | epot = -70.9503732001606 | etot = -50.5142754147522 +260000 ekin = 11.1234502408098 | erot = 9.42959720860747 | epot = -71.0673228642354 | etot = -50.5142754148182 +261000 ekin = 11.0846553116714 | erot = 9.52592259400152 | epot = -71.1248533201204 | etot = -50.5142754144474 +262000 ekin = 10.984638316139 | erot = 9.63253179681266 | epot = -71.1314455270241 | etot = -50.5142754140724 +263000 ekin = 10.8299323585395 | erot = 9.75337886021491 | epot = -71.0975866314619 | etot = -50.5142754127075 +264000 ekin = 10.6322589076009 | erot = 9.89661561772529 | epot = -71.043149936365 | etot = -50.5142754110388 +265000 ekin = 10.4088137866306 | erot = 10.0729935919341 | epot = -70.9960827876143 | etot = -50.5142754090497 +266000 ekin = 10.1805628465601 | erot = 10.2939584250778 | epot = -70.9887966786993 | etot = -50.5142754070614 +267000 ekin = 9.96994974150393 | erot = 10.5688816981301 | epot = -71.0531068450853 | etot = -50.5142754054513 +268000 ekin = 9.79794557249612 | erot = 10.9022495131634 | epot = -71.2144704902405 | etot = -50.514275404581 +269000 ekin = 9.68133719080967 | erot = 11.2909602515362 | epot = -71.4865728471559 | etot = -50.51427540481 +270000 ekin = 9.62864440995091 | erot = 11.7231927403034 | epot = -71.8661125564593 | etot = -50.514275406205 +271000 ekin = 9.63922421059774 | erot = 12.1783004915323 | epot = -72.3318001107749 | etot = -50.5142754086448 +272000 ekin = 9.70377142417398 | erot = 12.6284925682459 | epot = -72.8465394041799 | etot = -50.51427541176 +273000 ekin = 9.8063511269751 | erot = 13.0424803665411 | epot = -73.3631069085421 | etot = -50.5142754150259 +274000 ekin = 9.92762957285844 | erot = 13.3902097774721 | epot = -73.8321147682193 | etot = -50.5142754178888 +275000 ekin = 10.0484619807246 | erot = 13.6476466829874 | epot = -74.2103840836058 | etot = -50.5142754198938 +276000 ekin = 10.1529836986312 | erot = 13.8005799704977 | epot = -74.4678390899012 | etot = -50.5142754207723 +277000 ekin = 10.2306208739454 | erot = 13.8468297581951 | epot = -74.5917260525716 | etot = -50.5142754204311 +278000 ekin = 10.2768285154679 | erot = 13.7964170571851 | epot = -74.5875209917308 | etot = -50.5142754190778 +279000 ekin = 10.2926887337975 | erot = 13.6696245090783 | epot = -74.4765886598105 | etot = -50.5142754169347 +280000 ekin = 10.2837511614433 | erot = 13.4944463812718 | epot = -74.2924729570549 | etot = -50.5142754143399 +281000 ekin = 10.2584490696337 | erot = 13.3029884943437 | epot = -74.0757129756518 | etot = -50.5142754116744 +282000 ekin = 10.2256707145218 | erot = 13.1261764968024 | epot = -73.8661226217319 | etot = -50.5142754104077 +283000 ekin = 10.1905670824271 | erot = 12.9864505984498 | epot = -73.6912930902104 | etot = -50.5142754093336 +284000 ekin = 10.1551014927832 | erot = 12.8990344595995 | epot = -73.5684113617333 | etot = -50.5142754093506 +285000 ekin = 10.1166174221453 | erot = 12.8680165955296 | epot = -73.4989094281387 | etot = -50.5142754104637 +286000 ekin = 10.0677495873385 | erot = 12.8863469806722 | epot = -73.4683719803649 | etot = -50.5142754123541 +287000 ekin = 9.99824250893113 | erot = 12.9388664872155 | epot = -73.451384410478 | etot = -50.5142754143313 +288000 ekin = 9.89878072361279 | erot = 13.0083713387396 | epot = -73.4214274778747 | etot = -50.5142754155222 +289000 ekin = 9.76588531823301 | erot = 13.0828123958642 | epot = -73.3629731293727 | etot = -50.5142754152755 +290000 ekin = 9.60570842713546 | erot = 13.1602378251788 | epot = -73.2802216658707 | etot = -50.5142754135565 +291000 ekin = 9.43434667886679 | erot = 13.2486965863666 | epot = -73.1973186762433 | etot = -50.5142754110099 +292000 ekin = 9.27394835180298 | erot = 13.3611401460319 | epot = -73.1493639064103 | etot = -50.5142754085754 +293000 ekin = 9.14636730713516 | erot = 13.508296111862 | epot = -73.1689388261846 | etot = -50.5142754071874 +294000 ekin = 9.06768252918386 | erot = 13.6923254511167 | epot = -73.274283387418 | etot = -50.5142754071174 +295000 ekin = 9.04532028964203 | erot = 13.9047980939014 | epot = -73.4643937919253 | etot = -50.5142754083819 +296000 ekin = 9.07685514216932 | erot = 14.1273095688263 | epot = -73.7184401215834 | etot = -50.5142754105878 +297000 ekin = 9.15243484563929 | erot = 14.3349675764924 | epot = -74.0016778353859 | etot = -50.5142754132543 +298000 ekin = 9.25735642260993 | erot = 14.5009144267095 | epot = -74.272546265234 | etot = -50.5142754159145 +299000 ekin = 9.37408501219885 | erot = 14.6008610261479 | epot = -74.4892214566812 | etot = -50.5142754183345 +300000 ekin = 9.48403035595357 | erot = 14.6171008230997 | epot = -74.6154065990458 | etot = -50.5142754199925 +301000 ekin = 9.56941047833026 | erot = 14.5422411099529 | epot = -74.6259270092226 | etot = -50.5142754209395 +302000 ekin = 9.61327914963467 | erot = 14.378723713019 | epot = -74.5062782840107 | etot = -50.5142754213571 +303000 ekin = 9.60019007969869 | erot = 14.1333232517767 | epot = -74.247788754271 | etot = -50.5142754227957 +304000 ekin = 9.51663443757369 | erot = 13.8077649608907 | epot = -73.8386748218732 | etot = -50.5142754234088 +305000 ekin = 9.35052324456569 | erot = 13.4126572581527 | epot = -73.2774559257932 | etot = -50.5142754230748 +306000 ekin = 9.092386148072 | erot = 12.9580617085375 | epot = -72.5647232811115 | etot = -50.514275424502 +307000 ekin = 8.73005981828168 | erot = 12.4440345689812 | epot = -71.6883698129516 | etot = -50.5142754256887 +308000 ekin = 8.25664133386104 | erot = 11.8703174730556 | epot = -70.6412342327938 | etot = -50.5142754258772 +309000 ekin = 7.68019887870488 | erot = 11.2440321634392 | epot = -69.4385064478165 | etot = -50.5142754056724 +310000 ekin = 6.10737245374142 | erot = 10.002228414897 | epot = -66.6238758338137 | etot = -50.5142749651753 +311000 ekin = 6.50516631276161 | erot = 8.43886202715248 | epot = -65.4583031837191 | etot = -50.514274843805 +312000 ekin = 8.70116484241941 | erot = 7.89328716556354 | epot = -67.1087266850217 | etot = -50.5142746770387 +313000 ekin = 8.86124124004463 | erot = 7.60650277386486 | epot = -66.9820187089931 | etot = -50.5142746950836 +314000 ekin = 8.98375855328481 | erot = 7.42590866136671 | epot = -66.9239419073455 | etot = -50.514274692694 +315000 ekin = 9.08224545794751 | erot = 7.35030056649325 | epot = -66.9468207149303 | etot = -50.5142746904895 +316000 ekin = 9.18875804710271 | erot = 7.3745853881851 | epot = -67.0776181243804 | etot = -50.5142746890926 +317000 ekin = 9.33052371804657 | erot = 7.48774538838077 | epot = -67.3325437958086 | etot = -50.5142746893812 +318000 ekin = 9.51917570866743 | erot = 7.66478668187902 | epot = -67.698237081594 | etot = -50.5142746910475 +319000 ekin = 9.75242332648387 | erot = 7.87397921140609 | epot = -68.1406772315323 | etot = -50.5142746936424 +320000 ekin = 10.0191832997486 | erot = 8.08576089652625 | epot = -68.6192188931081 | etot = -50.5142746968332 +321000 ekin = 10.2991596304326 | erot = 8.27181002887399 | epot = -69.0852443594221 | etot = -50.5142747001155 +322000 ekin = 10.5668594668805 | erot = 8.40836857708763 | epot = -69.4895027468579 | etot = -50.5142747028898 +323000 ekin = 10.7967867214542 | erot = 8.47975301094411 | epot = -69.790814435656 | etot = -50.5142747032577 +324000 ekin = 10.9735635054938 | erot = 8.48122286684698 | epot = -69.9690610761778 | etot = -50.5142747038371 +325000 ekin = 11.0878819432239 | erot = 8.41951775675473 | epot = -70.0216744027954 | etot = -50.5142747028168 +326000 ekin = 11.1347107227788 | erot = 8.31335610180601 | epot = -69.9623415249674 | etot = -50.5142747003826 +327000 ekin = 11.1183799650552 | erot = 8.19353318202614 | epot = -69.8261878441104 | etot = -50.5142746970291 +328000 ekin = 11.0497327326504 | erot = 8.09852253416955 | epot = -69.6625299601751 | etot = -50.5142746933551 +329000 ekin = 10.9426003402541 | erot = 8.06872590413947 | epot = -69.5256009343306 | etot = -50.514274689937 +330000 ekin = 10.8106057636499 | erot = 8.14099901902345 | epot = -69.465879469905 | etot = -50.5142746872316 +331000 ekin = 10.6649041616717 | erot = 8.34394296354098 | epot = -69.5231218107424 | etot = -50.5142746855298 +332000 ekin = 10.5130013374487 | erot = 8.69446319291375 | epot = -69.7217392153338 | etot = -50.5142746849714 +333000 ekin = 10.3584993437686 | erot = 9.19578452270885 | epot = -70.068558552037 | etot = -50.5142746855595 +334000 ekin = 10.2015206739134 | erot = 9.83691053813619 | epot = -70.5527058992349 | etot = -50.5142746871853 +335000 ekin = 10.039533591642 | erot = 10.5934602800325 | epot = -71.1472685613235 | etot = -50.5142746896489 +336000 ekin = 9.86837013790453 | erot = 11.4297871185518 | epot = -71.8124319491329 | etot = -50.5142746926766 +337000 ekin = 9.68329052895473 | erot = 12.3021498009615 | epot = -72.4997150262984 | etot = -50.5142746963822 +338000 ekin = 9.47975699832246 | erot = 13.1586156684166 | epot = -73.1526473662513 | etot = -50.5142746995123 +339000 ekin = 9.25386163521108 | erot = 13.9501138811546 | epot = -73.7182502184674 | etot = -50.5142747021017 +340000 ekin = 9.0041124705003 | erot = 14.6361003739376 | epot = -74.1544875483691 | etot = -50.5142747039313 +341000 ekin = 8.73210815872213 | erot = 15.1850150670298 | epot = -74.431397930643 | etot = -50.5142747048911 +342000 ekin = 8.44257602321301 | erot = 15.5760933936512 | epot = -74.5329441218357 | etot = -50.5142747049715 +343000 ekin = 8.14306068344561 | erot = 15.7999489751116 | epot = -74.457284362799 | etot = -50.5142747042418 +344000 ekin = 7.84335230652546 | erot = 15.85820178893 | epot = -74.2158287982668 | etot = -50.5142747028113 +345000 ekin = 7.55476158127004 | erot = 15.7625218310027 | epot = -73.8315581130777 | etot = -50.514274700805 +346000 ekin = 7.28933152870106 | erot = 15.5333922679153 | epot = -73.3369984949705 | etot = -50.5142746983542 +347000 ekin = 7.05903031456423 | erot = 15.1987186623017 | epot = -72.7720236724687 | etot = -50.5142746956027 +348000 ekin = 6.8749234811854 | erot = 14.7922321909521 | epot = -72.1814303648537 | etot = -50.5142746927162 +349000 ekin = 6.74631360360857 | erot = 14.3515585684733 | epot = -71.612146861975 | etot = -50.5142746898931 +350000 ekin = 6.6798666945979 | erot = 13.9158727832157 | epot = -71.1100141651634 | etot = -50.5142746873498 +351000 ekin = 6.67881215224917 | erot = 13.5231979606908 | epot = -70.7162847982477 | etot = -50.5142746853078 +352000 ekin = 6.74233002325304 | erot = 13.2075061614665 | epot = -70.4641108686907 | etot = -50.5142746839711 +353000 ekin = 6.86523168135804 | erot = 12.99583142007 | epot = -70.3753377849391 | etot = -50.5142746835111 +354000 ekin = 7.03799439994906 | erot = 12.9056193290381 | epot = -70.4578884130328 | etot = -50.5142746840457 +355000 ekin = 7.24717151819179 | erot = 12.9425723794625 | epot = -70.704018583276 | etot = -50.5142746856217 +356000 ekin = 7.4761877974731 | erot = 13.0993511152901 | epot = -71.0898136009402 | etot = -50.514274688177 +357000 ekin = 7.70655379468214 | erot = 13.3555627807251 | epot = -71.576391266919 | etot = -50.5142746915118 +358000 ekin = 7.91949851741237 | erot = 13.6794128875102 | epot = -72.1131861002074 | etot = -50.5142746952848 +359000 ekin = 8.09792001680045 | erot = 14.0311122671652 | epot = -72.643306983018 | etot = -50.5142746990523 +360000 ekin = 8.22841418973107 | erot = 14.3676693799534 | epot = -73.1103582720264 | etot = -50.514274702342 +361000 ekin = 8.30307067049387 | erot = 14.6487380645247 | epot = -73.4660834390475 | etot = -50.5142747040289 +362000 ekin = 8.32057496602261 | erot = 14.8452541250431 | epot = -73.6801037963478 | etot = -50.514274705282 +363000 ekin = 8.28596637426031 | erot = 14.9355049197912 | epot = -73.7357459994441 | etot = -50.5142747053926 +364000 ekin = 8.21051030663795 | erot = 14.9080133756924 | epot = -73.6327983867719 | etot = -50.5142747044415 +365000 ekin = 8.11062074727325 | erot = 14.7623286020347 | epot = -73.3872240519604 | etot = -50.5142747026524 +366000 ekin = 8.00603056266532 | erot = 14.5073568469375 | epot = -73.0276621099553 | etot = -50.5142747003525 +367000 ekin = 7.91744023302101 | erot = 14.1587217211998 | epot = -72.5904366521256 | etot = -50.5142746979048 +368000 ekin = 7.86392049102369 | erot = 13.7358279103901 | epot = -72.114023097055 | etot = -50.5142746956412 +369000 ekin = 7.86042077697011 | erot = 13.2593035824029 | epot = -71.6339990531807 | etot = -50.5142746938077 +370000 ekin = 7.91575681906267 | erot = 12.7493098978033 | epot = -71.1793414093916 | etot = -50.5142746925256 +371000 ekin = 8.0314176515605 | erot = 12.224882599033 | epot = -70.7705749423856 | etot = -50.5142746917921 +372000 ekin = 8.2014344867836 | erot = 11.7041154007154 | epot = -70.4198245790021 | etot = -50.5142746915031 +373000 ekin = 8.41338088911726 | erot = 11.2047322600046 | epot = -70.132387840622 | etot = -50.5142746915001 +374000 ekin = 8.65035651211555 | erot = 10.7445296546692 | epot = -69.9091608583952 | etot = -50.5142746916105 +375000 ekin = 8.8936146386472 | erot = 10.3413213234561 | epot = -69.7492106537874 | etot = -50.5142746916841 +376000 ekin = 9.1253714435836 | erot = 10.0122766242485 | epot = -69.6519227594581 | etot = -50.514274691626 +377000 ekin = 9.33127044534337 | erot = 9.77273697837441 | epot = -69.6182821151407 | etot = -50.5142746914229 +378000 ekin = 9.50196666763184 | erot = 9.63465665477537 | epot = -69.650898013574 | etot = -50.5142746911668 +379000 ekin = 9.63341647872386 | erot = 9.60484799639576 | epot = -69.752539166967 | etot = -50.5142746918473 +380000 ekin = 9.72259425985655 | erot = 9.68264926837001 | epot = -69.9195182203078 | etot = -50.5142746920812 +381000 ekin = 9.76882857105924 | erot = 9.85976932385756 | epot = -70.1428725876487 | etot = -50.5142746927319 +382000 ekin = 9.77534265376213 | erot = 10.1216764958066 | epot = -70.4112938433178 | etot = -50.514274693749 +383000 ekin = 9.74553082877612 | erot = 10.4488490599493 | epot = -70.708654583621 | etot = -50.5142746948956 +384000 ekin = 9.68350130853765 | erot = 10.8197410298538 | epot = -71.0175170342467 | etot = -50.5142746958552 +385000 ekin = 9.5954111192781 | erot = 11.2139279084422 | epot = -71.3236137241221 | etot = -50.5142746964018 +386000 ekin = 9.49051238892938 | erot = 11.614249506982 | epot = -71.6190365924349 | etot = -50.5142746965235 +387000 ekin = 9.38093820527632 | erot = 12.0071365317705 | epot = -71.9023494334877 | etot = -50.5142746964408 +388000 ekin = 9.27994371657981 | erot = 12.3811396839122 | epot = -72.1753580970018 | etot = -50.5142746965098 +389000 ekin = 9.19914674274271 | erot = 12.7246960950101 | epot = -72.4381175345215 | etot = -50.5142746967686 +390000 ekin = 9.14582012533032 | erot = 13.0260688102847 | epot = -72.6861636335371 | etot = -50.5142746979221 +391000 ekin = 9.12133255589048 | erot = 13.2696465843341 | epot = -72.9052538397012 | etot = -50.5142746994766 +392000 ekin = 9.12142280934788 | erot = 13.4389248950445 | epot = -73.0746224053982 | etot = -50.5142747010059 +393000 ekin = 9.1381719641129 | erot = 13.5212229550151 | epot = -73.1736696211337 | etot = -50.5142747020057 +394000 ekin = 9.16298117431549 | erot = 13.5118244942784 | epot = -73.1890803706461 | etot = -50.5142747020522 +395000 ekin = 9.18964919962186 | erot = 13.4168358877668 | epot = -73.1207597883506 | etot = -50.514274700962 +396000 ekin = 9.21646132594111 | erot = 13.2536172301874 | epot = -72.9843532549932 | etot = -50.5142746988646 +397000 ekin = 9.24655582003865 | erot = 13.048360781714 | epot = -72.8091912979599 | etot = -50.5142746962072 +398000 ekin = 9.28632448604099 | erot = 12.8312285607892 | epot = -72.6318277404758 | etot = -50.5142746936456 +399000 ekin = 9.34221312080447 | erot = 12.63009249328 | epot = -72.4865803059712 | etot = -50.5142746918868 +400000 ekin = 9.41686913722861 | erot = 12.4642777025704 | epot = -72.3954215313006 | etot = -50.5142746915016 +401000 ekin = 9.50589901458469 | erot = 12.3397667936919 | epot = -72.3599405010301 | etot = -50.5142746927535 +402000 ekin = 9.59639944968567 | erot = 12.2470917660231 | epot = -72.3577659112033 | etot = -50.5142746954945 +403000 ekin = 9.66795983396075 | erot = 12.1626989619761 | epot = -72.3449334950877 | etot = -50.5142746991509 +404000 ekin = 9.69608913018285 | erot = 12.0539804141988 | epot = -72.2643442472069 | etot = -50.5142747028253 +405000 ekin = 9.65743908964136 | erot = 11.8874299823527 | epot = -72.0591437774434 | etot = -50.5142747054493 +406000 ekin = 9.53561319898212 | erot = 11.6383102531975 | epot = -71.6881981583051 | etot = -50.5142747061255 +407000 ekin = 9.3257730730707 | erot = 11.2990220058201 | epot = -71.1390697833488 | etot = -50.514274704458 +408000 ekin = 9.03640922282147 | erot = 10.8830678024735 | epot = -70.4337517260222 | etot = -50.5142747007272 +409000 ekin = 8.6897950835713 | erot = 10.4228266789006 | epot = -69.6268964554868 | etot = -50.5142746930149 +410000 ekin = 7.9560270357561 | erot = 9.9942714058413 | epot = -68.4645730787207 | etot = -50.5142746371233 +411000 ekin = 6.74655524928412 | erot = 10.0270618218395 | epot = -67.2878915397569 | etot = -50.5142744686333 +412000 ekin = 6.77788460765984 | erot = 10.2313763539054 | epot = -67.5235357279879 | etot = -50.5142747664226 +413000 ekin = 6.6178174617623 | erot = 9.9841680249977 | epot = -67.1162600910728 | etot = -50.5142746043128 +414000 ekin = 6.49546599326978 | erot = 9.85785035087921 | epot = -66.8675909469 | etot = -50.514274602751 +415000 ekin = 6.41727287248962 | erot = 9.86294960526658 | epot = -66.7944970800397 | etot = -50.5142746022835 +416000 ekin = 6.38652270868501 | erot = 10.0017061049924 | epot = -66.9025034163947 | etot = -50.5142746027173 +417000 ekin = 6.4020315533291 | erot = 10.2671783491741 | epot = -67.1834845063956 | etot = -50.5142746038924 +418000 ekin = 6.45904359291919 | erot = 10.6446827914202 | epot = -67.6180009900369 | etot = -50.5142746056975 +419000 ekin = 6.54999227104184 | erot = 11.1128009050149 | epot = -68.1770677840724 | etot = -50.5142746080157 +420000 ekin = 6.66500093978218 | erot = 11.6444776666554 | epot = -68.8237532173681 | etot = -50.5142746109305 +421000 ekin = 6.79216043872518 | erot = 12.2064235895659 | epot = -69.5128586425798 | etot = -50.5142746142886 +422000 ekin = 6.91773851390988 | erot = 12.7612933296174 | epot = -70.1933064611822 | etot = -50.5142746176549 +423000 ekin = 7.02685612353172 | erot = 13.2705085058938 | epot = -70.8116392505478 | etot = -50.5142746211223 +424000 ekin = 7.10547271092138 | erot = 13.6958822981288 | epot = -71.3156296329592 | etot = -50.5142746239091 +425000 ekin = 7.14257278346475 | erot = 14.0063216956977 | epot = -71.6631691046743 | etot = -50.5142746255119 +426000 ekin = 7.13247824794801 | erot = 14.1825679514318 | epot = -71.8293208250407 | etot = -50.5142746256608 +427000 ekin = 7.076097413192 | erot = 14.2196705903179 | epot = -71.8100426279541 | etot = -50.5142746244442 +428000 ekin = 6.98044576832941 | erot = 14.1262798064319 | epot = -71.6210001970106 | etot = -50.5142746222493 +429000 ekin = 6.85670921306948 | erot = 13.9212692789297 | epot = -71.2922531115699 | etot = -50.5142746195707 +430000 ekin = 6.7178161305864 | erot = 13.6292889155741 | epot = -70.8613796631915 | etot = -50.514274617031 +431000 ekin = 6.58365833328427 | erot = 13.2819652495181 | epot = -70.3798981921801 | etot = -50.5142746093777 +432000 ekin = 6.48411075968597 | erot = 12.9190083014664 | epot = -69.9173936698742 | etot = -50.5142746087219 +433000 ekin = 6.41960617892929 | erot = 12.553116717395 | epot = -69.4869975047765 | etot = -50.5142746084522 +434000 ekin = 6.38738760764971 | erot = 12.1915446818595 | epot = -69.093206897824 | etot = -50.5142746083148 +435000 ekin = 6.3844651806673 | erot = 11.8388548771074 | epot = -68.7375946666331 | etot = -50.5142746088584 +436000 ekin = 6.40158771779383 | erot = 11.4934615671522 | epot = -68.4093238934663 | etot = -50.5142746085202 +437000 ekin = 6.43433296980875 | erot = 11.1572008355164 | epot = -68.1058084136378 | etot = -50.5142746083126 +438000 ekin = 6.48252041810872 | erot = 10.8339757935673 | epot = -67.8307708198418 | etot = -50.5142746081658 +439000 ekin = 6.54577705115413 | erot = 10.5262474658429 | epot = -67.5862991252642 | etot = -50.5142746082672 +440000 ekin = 6.6234396857555 | erot = 10.2344360683686 | epot = -67.3721503625897 | etot = -50.5142746084656 +441000 ekin = 6.71455901735561 | erot = 9.95770655653919 | epot = -67.1865401826606 | etot = -50.5142746087658 +442000 ekin = 6.81814800218934 | erot = 9.69459000556867 | epot = -67.0270126167143 | etot = -50.5142746089563 +443000 ekin = 6.93320757980195 | erot = 9.44436660476061 | epot = -66.8918487936025 | etot = -50.51427460904 +444000 ekin = 7.05887283238584 | erot = 9.20812456867728 | epot = -66.7812720099878 | etot = -50.5142746089247 +445000 ekin = 7.19471792125887 | erot = 8.98907069041183 | epot = -66.698063220748 | etot = -50.5142746090773 +446000 ekin = 7.33895516701059 | erot = 8.79147036187154 | epot = -66.6447001377162 | etot = -50.5142746088341 +447000 ekin = 7.49037827521283 | erot = 8.62086071350145 | epot = -66.6255135972191 | etot = -50.5142746085048 +448000 ekin = 7.64865155423642 | erot = 8.4836257346772 | epot = -66.6465518970749 | etot = -50.5142746081613 +449000 ekin = 7.81370578733912 | erot = 8.38592298858194 | epot = -66.7139033838151 | etot = -50.514274607894 +450000 ekin = 7.98535597598701 | erot = 8.33253518713007 | epot = -66.8321657709338 | etot = -50.5142746078167 +451000 ekin = 8.16298003843024 | erot = 8.32609814440351 | epot = -67.0033527906324 | etot = -50.5142746077987 +452000 ekin = 8.34665075710426 | erot = 8.36815837883489 | epot = -67.2290837442314 | etot = -50.5142746082922 +453000 ekin = 8.53368486478645 | erot = 8.45559889747579 | epot = -67.5035583714215 | etot = -50.5142746091592 +454000 ekin = 8.71876659842333 | erot = 8.58149267465122 | epot = -67.814533883426 | etot = -50.5142746103514 +455000 ekin = 8.89458197889553 | erot = 8.73616891418618 | epot = -68.1450255048362 | etot = -50.5142746117544 +456000 ekin = 9.05263676519765 | erot = 8.90825623341302 | epot = -68.475167611793 | etot = -50.5142746131823 +457000 ekin = 9.18436468197176 | erot = 9.08589966844638 | epot = -68.7845389652096 | etot = -50.5142746147915 +458000 ekin = 9.2798708484486 | erot = 9.25693683992989 | epot = -69.0510823038951 | etot = -50.5142746155166 +459000 ekin = 9.33585675940989 | erot = 9.41397844081413 | epot = -69.2641098158563 | etot = -50.5142746156323 +460000 ekin = 9.35537570855096 | erot = 9.55424544253639 | epot = -69.4238957661582 | etot = -50.5142746150708 +461000 ekin = 9.34708447364844 | erot = 9.6795225048903 | epot = -69.5408815924374 | etot = -50.5142746138987 +462000 ekin = 9.32438028426558 | erot = 9.79582203166516 | epot = -69.6344769282607 | etot = -50.5142746123299 +463000 ekin = 9.3033894737706 | erot = 9.91209761434952 | epot = -69.7297616988178 | etot = -50.5142746106976 +464000 ekin = 9.30012223230643 | erot = 10.0380089094871 | epot = -69.8524057511913 | etot = -50.5142746093977 +465000 ekin = 9.32729383497944 | erot = 10.1814090069884 | epot = -70.0229774507351 | etot = -50.5142746087672 +466000 ekin = 9.39154918927656 | erot = 10.3458332464757 | epot = -70.2516570448627 | etot = -50.5142746091105 +467000 ekin = 9.49255088765059 | erot = 10.5268619331915 | epot = -70.5336874312256 | etot = -50.5142746103835 +468000 ekin = 9.62305221132604 | erot = 10.7128982306376 | epot = -70.8502250543247 | etot = -50.514274612361 +469000 ekin = 9.77069488359911 | erot = 10.8867837312668 | epot = -71.1717532295539 | etot = -50.514274614688 +470000 ekin = 9.92089819249867 | erot = 11.0285784794615 | epot = -71.4637512887705 | etot = -50.5142746168103 +471000 ekin = 10.059517639692 | erot = 11.1206306063014 | epot = -71.69442286431 | etot = -50.5142746183166 +472000 ekin = 10.1754768606278 | erot = 11.1514441165871 | epot = -71.8411955961184 | etot = -50.5142746189035 +473000 ekin = 10.2623030554246 | erot = 11.1187283838379 | epot = -71.8953060577122 | etot = -50.5142746184498 +474000 ekin = 10.3185312147273 | erot = 11.030545588013 | epot = -71.8633514198336 | etot = -50.5142746170933 +475000 ekin = 10.3471799199331 | erot = 10.9051616574204 | epot = -71.7666161922609 | etot = -50.5142746149074 +476000 ekin = 10.35464021048 | erot = 10.7694904205599 | epot = -71.638405243284 | etot = -50.5142746122441 +477000 ekin = 10.3491629826044 | erot = 10.6559910559233 | epot = -71.5194286481754 | etot = -50.5142746096478 +478000 ekin = 10.3379217815357 | erot = 10.5983211038034 | epot = -71.4505174924988 | etot = -50.5142746071597 +479000 ekin = 10.328028374716 | erot = 10.6277262155424 | epot = -71.4700291953201 | etot = -50.5142746050617 +480000 ekin = 10.3254996650184 | erot = 10.7702201780147 | epot = -71.6099944467265 | etot = -50.5142746036933 +481000 ekin = 10.333689005966 | erot = 11.0433446243404 | epot = -71.8913082335951 | etot = -50.5142746032886 +482000 ekin = 10.3524366677779 | erot = 11.45405903145 | epot = -72.3207703030967 | etot = -50.5142746038687 +483000 ekin = 10.3781084074647 | erot = 11.9979341330494 | epot = -72.8903171458662 | etot = -50.514274605352 +484000 ekin = 10.4042611097819 | erot = 12.6596244417091 | epot = -73.578160159112 | etot = -50.514274607621 +485000 ekin = 10.4221302631885 | erot = 13.4142029090613 | epot = -74.3506077826684 | etot = -50.5142746104186 +486000 ekin = 10.4218511022266 | erot = 14.2297763891948 | epot = -75.1659021048472 | etot = -50.5142746134258 +487000 ekin = 10.3939548024949 | erot = 15.0707615261073 | epot = -75.9789909449393 | etot = -50.5142746163371 +488000 ekin = 10.3307490466764 | erot = 15.901069958466 | epot = -76.7460936240819 | etot = -50.5142746189395 +489000 ekin = 10.2272110328914 | erot = 16.6865229089584 | epot = -77.4280085629864 | etot = -50.5142746211366 +490000 ekin = 10.0812183872238 | erot = 17.3962474873107 | epot = -77.9917404974535 | etot = -50.5142746229189 +491000 ekin = 9.89313188202311 | erot = 18.0033313049116 | epot = -78.4107378112024 | etot = -50.5142746242677 +492000 ekin = 9.66548546857302 | erot = 18.4853389017258 | epot = -78.6650989961058 | etot = -50.514274625807 +493000 ekin = 9.40191070802767 | erot = 18.8229573786077 | epot = -78.7391427127531 | etot = -50.5142746261177 +494000 ekin = 9.10904774193782 | erot = 19.0062114320175 | epot = -78.6295337996336 | etot = -50.5142746256783 +495000 ekin = 8.79635273334391 | erot = 19.0345219994416 | epot = -78.3451493572118 | etot = -50.5142746244262 +496000 ekin = 8.47610073024254 | erot = 18.9167105341889 | epot = -77.9070858868661 | etot = -50.5142746224347 +497000 ekin = 8.16317181357977 | erot = 18.6700073960851 | epot = -77.3474538295998 | etot = -50.5142746199349 +498000 ekin = 7.87402966206604 | erot = 18.3175884261423 | epot = -76.7058927054906 | etot = -50.5142746172822 +499000 ekin = 7.62493759930534 | erot = 17.8851866271409 | epot = -76.0243988413068 | etot = -50.5142746148606 +500000 ekin = 7.42972946262078 | erot = 17.3977376248812 | epot = -75.3417417004763 | etot = -50.5142746129743 +501000 ekin = 7.2976728684442 | erot = 16.8770499285062 | epot = -74.6889974087211 | etot = -50.5142746117707 +502000 ekin = 7.23199528875678 | erot = 16.3411235838348 | epot = -74.0873934837985 | etot = -50.5142746112069 +503000 ekin = 7.22945681989707 | erot = 15.8051011256099 | epot = -73.5488325566038 | etot = -50.5142746110968 +504000 ekin = 7.28103351461574 | erot = 15.2831943565127 | epot = -73.0785024823216 | etot = -50.5142746111932 +505000 ekin = 7.37347669950783 | erot = 14.7905903684621 | epot = -72.6783416792526 | etot = -50.5142746112827 +506000 ekin = 7.49135174828742 | erot = 14.3444485240495 | epot = -72.3500748835764 | etot = -50.5142746112395 +507000 ekin = 7.61914293605602 | erot = 13.9635506159284 | epot = -72.0969681630287 | etot = -50.5142746110443 +508000 ekin = 7.74307878352891 | erot = 13.6666853268212 | epot = -71.924038721116 | etot = -50.5142746107658 +509000 ekin = 7.85243073756124 | erot = 13.4701783614719 | epot = -71.8368837095767 | etot = -50.5142746105435 +510000 ekin = 7.94014182641694 | erot = 13.38510989459 | epot = -71.8395263315565 | etot = -50.5142746105496 +511000 ekin = 8.00274035613683 | erot = 13.4146098330176 | epot = -71.9316248001467 | etot = -50.5142746109922 +512000 ekin = 8.0395947820636 | erot = 13.5514344934683 | epot = -72.1053038876095 | etot = -50.5142746120776 +513000 ekin = 8.05166756793522 | erot = 13.7761589059122 | epot = -72.3421010878252 | etot = -50.5142746139778 +514000 ekin = 8.0400743803172 | erot = 14.0563762259778 | epot = -72.6107252230327 | etot = -50.5142746167377 +515000 ekin = 8.00493220655174 | erot = 14.3476352397211 | epot = -72.866842066446 | etot = -50.5142746201732 +516000 ekin = 7.94508318889731 | erot = 14.5970448958803 | epot = -73.0564027085642 | etot = -50.5142746237866 +517000 ekin = 7.85912630285855 | erot = 14.7501438289086 | epot = -73.1235447585609 | etot = -50.5142746267938 +518000 ekin = 7.74765591028633 | erot = 14.760474814026 | epot = -73.022405352644 | etot = -50.5142746283317 +519000 ekin = 7.61585879292523 | erot = 14.5996265098283 | epot = -72.7297599305418 | etot = -50.5142746277883 +520000 ekin = 7.47514959112457 | erot = 14.2643892941964 | epot = -72.2538135104003 | etot = -50.5142746250794 +521000 ekin = 7.3427858954402 | erot = 13.7782408540964 | epot = -71.6353013702353 | etot = -50.5142746206986 +522000 ekin = 7.23932626200134 | erot = 13.1865968867284 | epot = -70.9401977642482 | etot = -50.5142746155185 +523000 ekin = 7.18476026651873 | erot = 12.5477212482208 | epot = -70.2467561252324 | etot = -50.5142746104929 +524000 ekin = 7.19456043548625 | erot = 11.9223659335378 | epot = -69.6312009754275 | etot = -50.5142746064035 +525000 ekin = 7.27670076771941 | erot = 11.3647768162878 | epot = -69.1557521877451 | etot = -50.514274603738 +526000 ekin = 7.43017656898807 | erot = 10.9164455514449 | epot = -68.8608967231243 | etot = -50.5142746026914 +527000 ekin = 7.64507873197692 | erot = 10.6028306905154 | epot = -68.7621840256994 | etot = -50.5142746032071 +528000 ekin = 7.90396874722393 | erot = 10.4326201984507 | epot = -68.8508635507307 | etot = -50.5142746050561 +529000 ekin = 8.18416633901187 | erot = 10.3989120257516 | epot = -69.097352972662 | etot = -50.5142746078985 +530000 ekin = 8.46054142242976 | erot = 10.4817412712184 | epot = -69.4565573049844 | etot = -50.5142746113362 +531000 ekin = 8.70843705753887 | erot = 10.6515092337666 | epot = -69.87422090625 | etot = -50.5142746149445 +532000 ekin = 8.90640402471323 | erot = 10.8729770963941 | epot = -70.2936557394195 | etot = -50.5142746183122 +533000 ekin = 9.03848560922355 | erot = 11.1095342988321 | epot = -70.6622945291218 | etot = -50.5142746210661 +534000 ekin = 9.09585660968956 | erot = 11.3274354311 | epot = -70.9375666636919 | etot = -50.5142746229024 +535000 ekin = 9.07769161962254 | erot = 11.4996353903455 | epot = -71.0916016335857 | etot = -50.5142746236176 +536000 ekin = 8.99119538622236 | erot = 11.6087805008578 | epot = -71.1142505102249 | etot = -50.5142746231448 +537000 ekin = 8.85079437598883 | erot = 11.6489142180418 | epot = -71.0139832156003 | etot = -50.5142746215697 +538000 ekin = 8.6765582659912 | erot = 11.6255793580404 | epot = -70.8164122431588 | etot = -50.5142746191272 +539000 ekin = 8.49200375593156 | erot = 11.5542615596027 | epot = -70.5605399317068 | etot = -50.5142746161725 +540000 ekin = 8.32364695432576 | erot = 11.4574951670977 | epot = -70.2954167347966 | etot = -50.5142746133732 +541000 ekin = 8.19487884820117 | erot = 11.3596088272196 | epot = -70.0687622863157 | etot = -50.5142746108949 +542000 ekin = 8.12161273120138 | erot = 11.284042058361 | epot = -69.9199293984864 | etot = -50.5142746089241 +543000 ekin = 8.11471609566151 | erot = 11.2514192637678 | epot = -69.8804099670844 | etot = -50.5142746076551 +544000 ekin = 8.17908931154173 | erot = 11.2773707849429 | epot = -69.9707347036591 | etot = -50.5142746071745 +545000 ekin = 8.31344770508808 | erot = 11.371353556837 | epot = -70.1990758694012 | etot = -50.5142746074761 +546000 ekin = 8.51069467196935 | erot = 11.536314361344 | epot = -70.5612836418126 | etot = -50.5142746084993 +547000 ekin = 8.75865223740997 | erot = 11.7688547419138 | epot = -71.0417815894989 | etot = -50.5142746101751 +548000 ekin = 9.04082699801815 | erot = 12.0581718441636 | epot = -71.6132734556815 | etot = -50.5142746134998 +549000 ekin = 9.33624649604673 | erot = 12.3823696051851 | epot = -72.2328907177602 | etot = -50.5142746165284 +550000 ekin = 9.62129146820136 | erot = 12.7185500786339 | epot = -72.8541161665021 | etot = -50.5142746196668 +551000 ekin = 9.872682667968 | erot = 13.0427912748003 | epot = -73.4297485652762 | etot = -50.5142746225079 +552000 ekin = 10.0704190088322 | erot = 13.3329151351367 | epot = -73.9176087685553 | etot = -50.5142746245863 +553000 ekin = 10.2009056939477 | erot = 13.5725638576694 | epot = -74.2877441770286 | etot = -50.5142746254115 +554000 ekin = 10.2593644362471 | erot = 13.7535104687497 | epot = -74.527149530021 | etot = -50.5142746250242 +555000 ekin = 10.2514586318862 | erot = 13.8763528095856 | epot = -74.6420860648936 | etot = -50.5142746234218 +556000 ekin = 10.1921106932784 | erot = 13.9500978834529 | epot = -74.6564831978669 | etot = -50.5142746211355 +557000 ekin = 10.1015652266976 | erot = 13.9882161029595 | epot = -74.6040559485553 | etot = -50.5142746188982 +558000 ekin = 9.99991303230764 | erot = 14.0034286779365 | epot = -74.5176163276167 | etot = -50.5142746173726 +559000 ekin = 9.90202983163942 | erot = 14.0033678523424 | epot = -74.4196722999438 | etot = -50.514274615962 +560000 ekin = 9.81686282987798 | erot = 13.9898208823782 | epot = -74.3209583291104 | etot = -50.5142746168542 +561000 ekin = 9.74012209781474 | erot = 13.9575380153649 | epot = -74.2119347312768 | etot = -50.5142746180971 +562000 ekin = 9.66202249063476 | erot = 13.8995402247441 | epot = -74.0758373341239 | etot = -50.514274618745 +563000 ekin = 9.57125126717889 | erot = 13.8130745957407 | epot = -73.8986004819793 | etot = -50.5142746190596 +564000 ekin = 9.45733143835268 | erot = 13.7046546957124 | epot = -73.6762607521036 | etot = -50.5142746180385 +565000 ekin = 9.31598070796451 | erot = 13.591118833445 | epot = -73.421374157864 | etot = -50.5142746164544 +566000 ekin = 9.14991861300553 | erot = 13.4939773072373 | epot = -73.1581705345424 | etot = -50.5142746142996 +567000 ekin = 8.96796855716502 | erot = 13.4373000591231 | epot = -72.9195432283204 | etot = -50.5142746120323 +568000 ekin = 8.78295943729665 | erot = 13.4429949208159 | epot = -72.7402289682422 | etot = -50.5142746101297 +569000 ekin = 8.60911084021965 | erot = 13.5261109883945 | epot = -72.6494964376006 | etot = -50.5142746089865 +570000 ekin = 8.45962137975433 | erot = 13.6911409172601 | epot = -72.665036905859 | etot = -50.5142746088445 +571000 ekin = 8.34502164174357 | erot = 13.9298996508014 | epot = -72.789195902299 | etot = -50.5142746097539 +572000 ekin = 8.27150053294362 | erot = 14.2179224508629 | epot = -73.0036975966792 | etot = -50.5142746128727 +573000 ekin = 8.24027906060908 | erot = 14.5163717589229 | epot = -73.2709254351699 | etot = -50.5142746156379 +574000 ekin = 8.25076229273446 | erot = 14.782699035351 | epot = -73.5477359471055 | etot = -50.5142746190201 +575000 ekin = 8.30023045844111 | erot = 14.9695304974658 | epot = -73.7840355778018 | etot = -50.5142746218949 +576000 ekin = 8.38430166796684 | erot = 15.0355677896521 | epot = -73.9341440816966 | etot = -50.5142746240777 +577000 ekin = 8.49786330870201 | erot = 14.9506840672774 | epot = -73.9628220011276 | etot = -50.5142746251482 +578000 ekin = 8.63531193623021 | erot = 14.7010752683058 | epot = -73.8506618297048 | etot = -50.5142746251689 +579000 ekin = 8.79067648366292 | erot = 14.2898408975377 | epot = -73.5947920053057 | etot = -50.514274624105 +580000 ekin = 8.95769742194029 | erot = 13.7363251615615 | epot = -73.208297205719 | etot = -50.5142746222172 +581000 ekin = 9.1299788706959 | erot = 13.0726035153202 | epot = -72.7168570058733 | etot = -50.5142746198572 +582000 ekin = 9.30131608654131 | erot = 12.3381170470857 | epot = -72.1537077509712 | etot = -50.5142746173442 +583000 ekin = 9.46624938716497 | erot = 11.5746138603005 | epot = -71.5551378622994 | etot = -50.514274614834 +584000 ekin = 9.620724933419 | erot = 10.8222363956645 | epot = -70.9572359416422 | etot = -50.5142746125587 +585000 ekin = 9.76261487022584 | erot = 10.1164678304297 | epot = -70.393357311154 | etot = -50.5142746104985 +586000 ekin = 9.89186342300852 | erot = 9.4875195803207 | epot = -69.89365761204 | etot = -50.5142746087107 +587000 ekin = 10.0101586280187 | erot = 8.95961455311989 | epot = -69.4840477884309 | etot = -50.5142746072923 +588000 ekin = 10.1201887301505 | erot = 8.5501573641065 | epot = -69.1846207006391 | etot = -50.514274606382 +589000 ekin = 10.2246599088895 | erot = 8.26863816358287 | epot = -69.0075726786038 | etot = -50.5142746061314 +590000 ekin = 10.3253143810889 | erot = 8.11543769025879 | epot = -68.9550266779995 | etot = -50.5142746066518 +591000 ekin = 10.4222032216477 | erot = 8.0809981167352 | epot = -69.0174759463425 | etot = -50.5142746079596 +592000 ekin = 10.5134337128702 | erot = 8.1459936001908 | epot = -69.173701922983 | etot = -50.514274609922 +593000 ekin = 10.5955057544217 | erot = 8.28306481727704 | epot = -69.3928451839472 | etot = -50.5142746122484 +594000 ekin = 10.6641662354614 | erot = 8.46027689183062 | epot = -69.638717741839 | etot = -50.5142746145469 +595000 ekin = 10.7154927999608 | erot = 8.64578434327109 | epot = -69.875551759666 | etot = -50.5142746164341 +596000 ekin = 10.7467872731018 | erot = 8.81255786151828 | epot = -70.0736197522735 | etot = -50.5142746176534 +597000 ekin = 10.7569302189981 | erot = 8.94187861301369 | epot = -70.2130834501401 | etot = -50.5142746181283 +598000 ekin = 10.7466010847312 | erot = 9.02533979254752 | epot = -70.2862154950865 | etot = -50.5142746178078 +599000 ekin = 10.7182887695106 | erot = 9.0650790688296 | epot = -70.2976424556367 | etot = -50.5142746172965 +600000 ekin = 10.6720485189359 | erot = 9.06844804975761 | epot = -70.254771185229 | etot = -50.5142746165355 +601000 ekin = 10.6072956941404 | erot = 9.04742526344434 | epot = -70.1689955732264 | etot = -50.5142746156417 +602000 ekin = 10.5233178202805 | erot = 9.01691281405176 | epot = -70.0545052489855 | etot = -50.5142746146532 +603000 ekin = 10.4199668052602 | erot = 8.99335643430934 | epot = -69.9275978531261 | etot = -50.5142746135566 +604000 ekin = 10.2985732111422 | erot = 8.99387297245081 | epot = -69.8067207959167 | etot = -50.5142746123237 +605000 ekin = 10.1627605691522 | erot = 9.03562879917117 | epot = -69.7126639792975 | etot = -50.5142746109742 +606000 ekin = 10.0187545713199 | erot = 9.13500980541805 | epot = -69.6680389863702 | etot = -50.5142746096322 +607000 ekin = 9.87474119401897 | erot = 9.30612986570829 | epot = -69.6951456683218 | etot = -50.5142746085945 +608000 ekin = 9.73894032960022 | erot = 9.5581574531413 | epot = -69.8113723910812 | etot = -50.5142746083396 +609000 ekin = 9.61645131102769 | erot = 9.89160474270308 | epot = -70.0223306630962 | etot = -50.5142746093654 +610000 ekin = 9.50561717815242 | erot = 10.2946039754773 | epot = -70.3144957656318 | etot = -50.514274612002 +611000 ekin = 9.39548197887694 | erot = 10.7408569963072 | epot = -70.6506135912498 | etot = -50.5142746160656 +612000 ekin = 9.26629251209254 | erot = 11.1926279417912 | epot = -70.9731950744566 | etot = -50.5142746205729 +613000 ekin = 9.09415007005248 | erot = 11.6098990354819 | epot = -71.2183237296768 | etot = -50.5142746241424 +614000 ekin = 8.85874044725752 | erot = 11.9622145365274 | epot = -71.3352296093783 | etot = -50.5142746255934 +615000 ekin = 8.55082001882929 | erot = 12.2382561372936 | epot = -71.3033507806285 | etot = -50.5142746245056 +616000 ekin = 8.175888360977 | erot = 12.4480456866369 | epot = -71.1382086691017 | etot = -50.5142746214878 +617000 ekin = 7.75281434573713 | erot = 12.6167254402941 | epot = -70.8838144036964 | etot = -50.5142746176652 +618000 ekin = 7.30914473381905 | erot = 12.7738647630868 | epot = -70.5972841110086 | etot = -50.5142746141028 +619000 ekin = 6.87603930023189 | erot = 12.9445772325018 | epot = -70.3348911438367 | etot = -50.514274611103 +620000 ekin = 6.48430188506113 | erot = 13.1463744536997 | epot = -70.1449509480766 | etot = -50.5142746093158 +621000 ekin = 6.15889859796186 | erot = 13.3879128346421 | epot = -70.0610860402284 | etot = -50.5142746076245 +622000 ekin = 5.92489751014034 | erot = 13.6734353594457 | epot = -70.1126074758758 | etot = -50.5142746062898 +623000 ekin = 5.80503635923321 | erot = 14.0046748008201 | epot = -70.323985765443 | etot = -50.5142746053896 +624000 ekin = 5.81685163240234 | erot = 14.3809730724792 | epot = -70.7120993101167 | etot = -50.5142746052353 +625000 ekin = 5.96964537891364 | erot = 14.7975194183877 | epot = -71.2814394036077 | etot = -50.5142746063063 +626000 ekin = 6.26099435192758 | erot = 15.2418617554262 | epot = -72.017130716455 | etot = -50.5142746091012 +627000 ekin = 6.67389324015709 | erot = 15.6898147640095 | epot = -72.8779826180747 | etot = -50.5142746139082 +628000 ekin = 7.17593798618658 | erot = 16.1028362030306 | epot = -73.7930488096841 | etot = -50.5142746204669 +629000 ekin = 7.72199923897968 | erot = 16.4299438960646 | epot = -74.6662177627284 | etot = -50.5142746276842 +630000 ekin = 8.26123500939383 | erot = 16.6169483753651 | epot = -75.3924580185056 | etot = -50.5142746337466 +631000 ekin = 8.74754840904575 | erot = 16.6224867205867 | epot = -75.8843097661632 | etot = -50.5142746365308 +632000 ekin = 9.15004592006942 | erot = 16.4358276586453 | epot = -76.1001482137943 | etot = -50.5142746350796 +633000 ekin = 9.45937080857058 | erot = 16.0853639088586 | epot = -76.0590093468388 | etot = -50.5142746294097 +634000 ekin = 9.68568488527849 | erot = 15.6315739486894 | epot = -75.8315334570553 | etot = -50.5142746230874 +635000 ekin = 9.84580171434891 | erot = 15.1444204261244 | epot = -75.504496757784 | etot = -50.5142746173107 +636000 ekin = 9.95723404954417 | erot = 14.686080241921 | epot = -75.1575889048362 | etot = -50.5142746133711 +637000 ekin = 10.032321596039 | erot = 14.2991433337626 | epot = -74.8457395413004 | etot = -50.5142746114988 +638000 ekin = 10.0765624311206 | erot = 14.0046093482885 | epot = -74.5954463906111 | etot = -50.514274611202 +639000 ekin = 10.0902754260143 | erot = 13.8068600166826 | epot = -74.4114100544216 | etot = -50.5142746117247 +640000 ekin = 10.0716366459578 | erot = 13.7011883664002 | epot = -74.2870996247358 | etot = -50.5142746123778 +641000 ekin = 10.019579855139 | erot = 13.6807153270372 | epot = -74.2145697948658 | etot = -50.5142746126896 +642000 ekin = 9.93575791766622 | erot = 13.7411722988916 | epot = -74.1912048290125 | etot = -50.5142746124548 +643000 ekin = 9.82526205665779 | erot = 13.8830736873786 | epot = -74.222610355769 | etot = -50.5142746117327 +644000 ekin = 9.69609523856024 | erot = 14.1112875028235 | epot = -74.3216573521974 | etot = -50.5142746108136 +645000 ekin = 9.55761878272972 | erot = 14.4322553940752 | epot = -74.5041487878821 | etot = -50.5142746110772 +646000 ekin = 9.41485510301491 | erot = 14.8475477985045 | epot = -74.7766775131998 | etot = -50.5142746116804 +647000 ekin = 9.26709768133843 | erot = 15.3482149653111 | epot = -75.1295872604127 | etot = -50.5142746137632 +648000 ekin = 9.10972978583349 | erot = 15.9109204654798 | epot = -75.5349248689429 | etot = -50.5142746176296 +649000 ekin = 8.9315814550155 | erot = 16.4937182185534 | epot = -75.9395742966243 | etot = -50.5142746230554 +650000 ekin = 8.71657057994074 | erot = 17.0382000588728 | epot = -76.2690452678485 | etot = -50.514274629035 +651000 ekin = 8.44844851105175 | erot = 17.4793597703207 | epot = -76.4420829152532 | etot = -50.5142746338807 +652000 ekin = 8.11815479201172 | erot = 17.7619704870292 | epot = -76.3943999148916 | etot = -50.5142746358506 +653000 ekin = 7.73114435531218 | erot = 17.8572650854382 | epot = -76.1026840748118 | etot = -50.5142746340614 +654000 ekin = 7.31085494736458 | erot = 17.7714907197143 | epot = -75.5966202960844 | etot = -50.5142746290055 +655000 ekin = 6.89588215317778 | erot = 17.5418067096489 | epot = -74.9519634850893 | etot = -50.5142746222626 +656000 ekin = 6.53171010736376 | erot = 17.2224717011596 | epot = -74.2684564242042 | etot = -50.5142746156808 +657000 ekin = 6.26041816780914 | erot = 16.8689320360005 | epot = -73.6436248144601 | etot = -50.5142746106505 +658000 ekin = 6.11203041445794 | erot = 16.5262126841704 | epot = -73.1525177064601 | etot = -50.5142746078318 +659000 ekin = 6.09972540608881 | erot = 16.2236488550554 | epot = -72.837648868387 | etot = -50.5142746072428 +660000 ekin = 6.21938199681726 | erot = 15.9744887375992 | epot = -72.7081453429256 | etot = -50.5142746085091 +661000 ekin = 6.45261911218506 | erot = 15.77778773976 | epot = -72.7446814630817 | etot = -50.5142746111367 +662000 ekin = 6.7716882555292 | erot = 15.6204850253194 | epot = -72.9064478955629 | etot = -50.5142746147143 +663000 ekin = 7.14435819257924 | erot = 15.478593564038 | epot = -73.1372263756168 | etot = -50.5142746189996 +664000 ekin = 7.53740317176545 | erot = 15.3176852477738 | epot = -73.3693630433733 | etot = -50.514274623834 +665000 ekin = 7.91836523030113 | erot = 15.0942309146789 | epot = -73.5268707738693 | etot = -50.5142746288894 +666000 ekin = 8.25643498248337 | erot = 14.7603215859625 | epot = -73.5310312018662 | etot = -50.5142746334204 +667000 ekin = 8.52385764879543 | erot = 14.2736320138678 | epot = -73.3117642989291 | etot = -50.514274636266 +668000 ekin = 8.69866667318591 | erot = 13.6113201081884 | epot = -72.8242614176828 | etot = -50.5142746363085 +669000 ekin = 8.76804368922024 | erot = 12.7822873051114 | epot = -72.0646056274626 | etot = -50.514274633131 +670000 ekin = 8.7304670675869 | erot = 11.8307777757836 | epot = -71.0755194707241 | etot = -50.5142746273536 +671000 ekin = 8.59524186891959 | erot = 10.8283334362616 | epot = -69.937849925502 | etot = -50.5142746203208 +672000 ekin = 8.37965784966922 | erot = 9.85799241690562 | epot = -68.7519248799939 | etot = -50.514274613419 +673000 ekin = 8.10529771609926 | erot = 8.99841190536189 | epot = -67.6179842290081 | etot = -50.5142746075469 +674000 ekin = 7.79494136354955 | erot = 8.31372525729646 | epot = -66.6229412238675 | etot = -50.5142746030214 +675000 ekin = 7.47060107992419 | erot = 7.85026883552638 | epot = -65.8351445152254 | etot = -50.5142745997748 +676000 ekin = 7.15246577753135 | erot = 7.63789726267775 | epot = -65.3046376378203 | etot = -50.5142745976112 +677000 ekin = 6.85830618373252 | erot = 7.69282168188937 | epot = -65.0654024620073 | etot = -50.5142745963854 +678000 ekin = 6.60298755764553 | erot = 8.01973470913126 | epot = -65.1369968628789 | etot = -50.5142745961021 +679000 ekin = 6.39787215419565 | erot = 8.61208125101092 | epot = -65.5242280021487 | etot = -50.5142745969422 +680000 ekin = 6.24998134211449 | erot = 9.45011609593844 | epot = -66.2143720373123 | etot = -50.5142745992594 +681000 ekin = 6.16088982576969 | erot = 10.4969757469541 | epot = -67.1721401762214 | etot = -50.5142746034977 +682000 ekin = 6.12554393409797 | erot = 11.6937893201654 | epot = -68.3336078642541 | etot = -50.5142746099908 +683000 ekin = 6.13157359399397 | erot = 12.9561475536548 | epot = -69.6019957662809 | etot = -50.5142746186321 +684000 ekin = 6.16005916027991 | erot = 14.175693163925 | epot = -70.850026952704 | etot = -50.5142746284992 +685000 ekin = 6.18869173790237 | erot = 15.2307522948807 | epot = -71.9337186705506 | etot = -50.5142746377675 +686000 ekin = 6.19732878112365 | erot = 16.0068645008489 | epot = -72.7184679261729 | etot = -50.5142746442004 +687000 ekin = 6.17424105603543 | erot = 16.4218469242485 | epot = -73.1103626264231 | etot = -50.5142746461392 +688000 ekin = 6.12017794217911 | erot = 16.4448717751939 | epot = -73.0793243607007 | etot = -50.5142746433277 +689000 ekin = 6.04820168736814 | erot = 16.1005193404669 | epot = -72.6629956647682 | etot = -50.5142746369331 +690000 ekin = 5.97970220537207 | erot = 15.4569806258048 | epot = -71.9509574599937 | etot = -50.5142746288169 +691000 ekin = 5.93893719623427 | erot = 14.605710167059 | epot = -71.0589219839816 | etot = -50.5142746206883 +692000 ekin = 5.94838842833223 | erot = 13.6417068401402 | epot = -70.1043698821412 | etot = -50.5142746136687 +693000 ekin = 6.02589021177394 | erot = 12.6498891238861 | epot = -69.1900539439278 | etot = -50.5142746082677 +694000 ekin = 6.18463455178242 | erot = 11.7000608799123 | epot = -68.3989700350278 | etot = -50.514274603333 +695000 ekin = 6.43478432357831 | erot = 10.8472395602001 | epot = -67.7962984856164 | etot = -50.5142746018379 +696000 ekin = 6.77322428396141 | erot = 10.1195064532741 | epot = -67.407005338705 | etot = -50.5142746014695 +697000 ekin = 7.19141853636714 | erot = 9.53118158812937 | epot = -67.2368747264792 | etot = -50.5142746019827 +698000 ekin = 7.67702076756888 | erot = 9.08693839129866 | epot = -67.2782337620764 | etot = -50.5142746032089 +699000 ekin = 8.21429897541807 | erot = 8.78382057635582 | epot = -67.5123941568513 | etot = -50.5142746050775 +700000 ekin = 8.78422716550662 | erot = 8.61224580901528 | epot = -67.9107475821421 | etot = -50.5142746076202 +701000 ekin = 9.36423931739826 | erot = 8.55605856482336 | epot = -68.4345724931355 | etot = -50.5142746109139 +702000 ekin = 9.92792016717606 | erot = 8.59213538140994 | epot = -69.0343301635391 | etot = -50.5142746149531 +703000 ekin = 10.4452984142782 | erot = 8.6906406474678 | epot = -69.650213681228 | etot = -50.5142746194821 +704000 ekin = 10.8846377327658 | erot = 8.817413241637 | epot = -70.21632559826 | etot = -50.5142746238572 +705000 ekin = 11.2162913879666 | erot = 8.93948813625224 | epot = -70.6700541513435 | etot = -50.5142746271246 +706000 ekin = 11.4181455722527 | erot = 9.03309347105436 | epot = -70.9655136716544 | etot = -50.5142746283474 +707000 ekin = 11.4809106569868 | erot = 9.09134201921814 | epot = -71.0865273032402 | etot = -50.5142746270353 +708000 ekin = 11.4068982891467 | erot = 9.12200528524663 | epot = -71.0431782001055 | etot = -50.5142746257122 +709000 ekin = 11.207263291306 | erot = 9.14465465268529 | epot = -70.8661925651784 | etot = -50.5142746211871 +710000 ekin = 10.9083907026581 | erot = 9.19859957941885 | epot = -70.6212648981726 | etot = -50.5142746160956 +711000 ekin = 10.5423746431423 | erot = 9.32614430674808 | epot = -70.3827935613037 | etot = -50.5142746114133 +712000 ekin = 10.1417786131218 | erot = 9.56360239367812 | epot = -70.219655614563 | etot = -50.5142746077631 +713000 ekin = 9.73608713715417 | erot = 9.9356699105274 | epot = -70.1860316530563 | etot = -50.5142746053747 +714000 ekin = 9.35027943777136 | erot = 10.4538184610608 | epot = -70.3183725027277 | etot = -50.5142746038955 +715000 ekin = 9.00463394824735 | erot = 11.1175080875288 | epot = -70.6364166398391 | etot = -50.5142746040629 +716000 ekin = 8.71247739172323 | erot = 11.911722071649 | epot = -71.1384740684836 | etot = -50.5142746051113 +717000 ekin = 8.4828781642453 | erot = 12.8114967087923 | epot = -71.8086494800388 | etot = -50.5142746070012 +718000 ekin = 8.32091760999845 | erot = 13.7831462397263 | epot = -72.6183384595501 | etot = -50.5142746098254 +719000 ekin = 8.22703613377359 | erot = 14.7838475725411 | epot = -73.5251583200662 | etot = -50.5142746137515 +720000 ekin = 8.19603263798189 | erot = 15.7606669338407 | epot = -74.4709741906888 | etot = -50.5142746188662 +721000 ekin = 8.21637629750214 | erot = 16.6505227360403 | epot = -75.3811736584968 | etot = -50.5142746249544 +722000 ekin = 8.27076325259746 | erot = 17.383196988941 | epot = -76.1682348731295 | etot = -50.5142746315911 +723000 ekin = 8.33599195242273 | erot = 17.8873102966714 | epot = -76.7375768863803 | etot = -50.5142746372861 +724000 ekin = 8.38930978731971 | erot = 18.1039114578533 | epot = -77.007495885722 | etot = -50.514274640549 +725000 ekin = 8.4165186400972 | erot = 18.0027385421349 | epot = -76.9335318225387 | etot = -50.5142746403066 +726000 ekin = 8.4154002233162 | erot = 17.5920134841814 | epot = -76.5216883438779 | etot = -50.5142746363804 +727000 ekin = 8.39679923845161 | erot = 16.919929722969 | epot = -75.8310035909851 | etot = -50.5142746295646 +728000 ekin = 8.3818942002517 | erot = 16.0663700673365 | epot = -74.9625388888454 | etot = -50.5142746212571 +729000 ekin = 8.39699694309242 | erot = 15.1283483167792 | epot = -74.0396198728095 | etot = -50.5142746129379 +730000 ekin = 8.4678254383047 | erot = 14.2043901533638 | epot = -73.1864901974477 | etot = -50.5142746057792 +731000 ekin = 8.61470307568928 | erot = 13.3819120233155 | epot = -72.5108896995107 | etot = -50.514274600506 +732000 ekin = 8.84928637443201 | erot = 12.729288023069 | epot = -72.0928489949349 | etot = -50.5142745974338 +733000 ekin = 9.17280766709871 | erot = 12.2923211340428 | epot = -71.9794033977278 | etot = -50.5142745965863 +734000 ekin = 9.57560598369746 | erot = 12.0938942191352 | epot = -72.1837748006325 | etot = -50.5142745977998 +735000 ekin = 10.0377642396558 | erot = 12.1355113635674 | epot = -72.6875502040207 | etot = -50.5142746007974 +736000 ekin = 10.5307595726908 | erot = 12.3998369838626 | epot = -73.4448711617588 | etot = -50.5142746052054 +737000 ekin = 11.020091415724 | erot = 12.8538466733546 | epot = -74.3882126996429 | etot = -50.5142746105643 +738000 ekin = 11.4687808905075 | erot = 13.4525508837993 | epot = -75.4356063906421 | etot = -50.5142746163353 +739000 ekin = 11.8414287125964 | erot = 14.1433222477384 | epot = -76.4990255822779 | etot = -50.5142746219431 +740000 ekin = 12.1082656211499 | erot = 14.8707107510516 | epot = -77.493250999042 | etot = -50.5142746268405 +741000 ekin = 12.2485032334025 | erot = 15.5814643741637 | epot = -78.3442422381294 | etot = -50.5142746305632 +742000 ekin = 12.2524265472084 | erot = 16.2294231022069 | epot = -78.9961242821844 | etot = -50.5142746327691 +743000 ekin = 12.121994994847 | erot = 16.7799163002756 | epot = -79.4161859283928 | etot = -50.5142746332702 +744000 ekin = 11.8700125681399 | erot = 17.2130632823787 | epot = -79.5973504826108 | etot = -50.5142746320923 +745000 ekin = 11.5180572441709 | erot = 17.5250437155193 | epot = -79.5573755892154 | etot = -50.5142746295252 +746000 ekin = 11.0934236280252 | erot = 17.7264433609928 | epot = -79.3341416151374 | etot = -50.5142746261194 +747000 ekin = 10.625484028931 | erot = 17.8375345490455 | epot = -78.9772932005533 | etot = -50.5142746225768 +748000 ekin = 10.1420744189115 | erot = 17.8814972667899 | epot = -78.5378463052758 | etot = -50.5142746195745 +749000 ekin = 9.66656115769509 | erot = 17.8773814864457 | epot = -78.0582172617543 | etot = -50.5142746176135 +750000 ekin = 9.2160386704881 | erot = 17.83460421713 | epot = -77.5649175045286 | etot = -50.5142746169105 +751000 ekin = 8.80076552488041 | erot = 17.7502211247623 | epot = -77.0652612671075 | etot = -50.5142746174648 +752000 ekin = 8.42467668902751 | erot = 17.609041360549 | epot = -76.547992668523 | etot = -50.5142746189465 +753000 ekin = 8.08670902919991 | erot = 17.3870500518455 | epot = -75.9880337018982 | etot = -50.5142746208528 +754000 ekin = 7.78266313549285 | erot = 17.0571798776144 | epot = -75.3541176356852 | etot = -50.514274622578 +755000 ekin = 7.50732713165267 | erot = 16.5962021838286 | epot = -74.6178039390357 | etot = -50.5142746235544 +756000 ekin = 7.25656799093465 | erot = 15.9912186969398 | epot = -73.762061311217 | etot = -50.5142746233426 +757000 ekin = 7.02889011916432 | erot = 15.243783516545 | epot = -72.7869482577366 | etot = -50.5142746220273 +758000 ekin = 6.82603226746188 | erot = 14.3694235712677 | epot = -71.7097304583845 | etot = -50.514274619655 +759000 ekin = 6.65556621297692 | erot = 13.4007974873683 | epot = -70.5706383156341 | etot = -50.5142746152888 +760000 ekin = 6.52840618911949 | erot = 12.3808622803694 | epot = -69.4235430816177 | etot = -50.5142746121288 +761000 ekin = 6.45348689199773 | erot = 11.3465222562028 | epot = -68.3142837573728 | etot = -50.5142746091723 +762000 ekin = 6.44051607910641 | erot = 10.331721515393 | epot = -67.2865122011051 | etot = -50.5142746066057 +763000 ekin = 6.49918252436092 | erot = 9.36548217885221 | epot = -66.3789393077048 | etot = -50.5142746044917 +764000 ekin = 6.63833890054542 | erot = 8.47149284047071 | epot = -65.624106343837 | etot = -50.5142746028209 +765000 ekin = 6.86513419528386 | erot = 7.66877834276847 | epot = -65.0481871396127 | etot = -50.5142746015603 +766000 ekin = 7.18378077100147 | erot = 6.97265281322276 | epot = -64.6707081850581 | etot = -50.5142746008339 +767000 ekin = 7.59444235333481 | erot = 6.3955714375875 | epot = -64.5042883913707 | etot = -50.5142746004484 +768000 ekin = 8.09268145326367 | erot = 5.94781682490191 | epot = -64.5547728787741 | etot = -50.5142746006086 +769000 ekin = 8.66808446392277 | erot = 5.63681148444972 | epot = -64.81917054984 | etot = -50.5142746014675 +770000 ekin = 9.30348521556543 | erot = 5.46582731733528 | epot = -65.2835871360561 | etot = -50.5142746031554 +771000 ekin = 9.97431898096283 | erot = 5.43270401323985 | epot = -65.9212975999135 | etot = -50.5142746057108 +772000 ekin = 10.6499862226458 | erot = 5.5282704859122 | epot = -66.6925313175461 | etot = -50.5142746089881 +773000 ekin = 11.2957807948667 | erot = 5.73712650852638 | epot = -67.5471819160364 | etot = -50.5142746126434 +774000 ekin = 11.8763197237616 | erot = 6.03945270147251 | epot = -68.4300470414055 | etot = -50.5142746161714 +775000 ekin = 12.359832233683 | erot = 6.41425449691518 | epot = -69.2883613496549 | etot = -50.5142746190568 +776000 ekin = 12.7222841193265 | erot = 6.84284553246925 | epot = -70.0794042727346 | etot = -50.5142746209388 +777000 ekin = 12.950328619089 | erot = 7.31125230206383 | epot = -70.7758555428855 | etot = -50.5142746217327 +778000 ekin = 13.0423382707772 | erot = 7.81051825667609 | epot = -71.3671311491184 | etot = -50.5142746216651 +779000 ekin = 13.0073878067837 | erot = 8.33463285187138 | epot = -71.8562952798404 | etot = -50.5142746211853 +780000 ekin = 12.8626337012282 | erot = 8.87663911986012 | epot = -72.2535474441751 | etot = -50.5142746230867 +781000 ekin = 12.6191311288065 | erot = 9.41238807654897 | epot = -72.5457938291128 | etot = -50.5142746237573 +782000 ekin = 12.2922907716106 | erot = 9.90988136282892 | epot = -72.7164467590134 | etot = -50.5142746245739 +783000 ekin = 11.9113538266415 | erot = 10.3385161888582 | epot = -72.76414463989 | etot = -50.5142746243904 +784000 ekin = 11.5094258763993 | erot = 10.6682447236089 | epot = -72.6919452239281 | etot = -50.51427462392 +785000 ekin = 11.1215244493888 | erot = 10.8798873198936 | epot = -72.5156863910302 | etot = -50.5142746217479 +786000 ekin = 10.7892036477414 | erot = 10.9720367156824 | epot = -72.2755149815689 | etot = -50.5142746181451 +787000 ekin = 10.5550292786894 | erot = 10.9621301133158 | epot = -72.0314340061284 | etot = -50.5142746141232 +788000 ekin = 10.4531579062282 | erot = 10.8809781424898 | epot = -71.8484106597352 | etot = -50.5142746110173 +789000 ekin = 10.4992787233121 | erot = 10.7631938894143 | epot = -71.776747222619 | etot = -50.5142746098926 +790000 ekin = 10.6841251440453 | erot = 10.6378648554361 | epot = -71.8362646105419 | etot = -50.5142746110604 +791000 ekin = 10.9736405231527 | erot = 10.5233964906253 | epot = -72.0113116277457 | etot = -50.5142746139677 +792000 ekin = 11.3161137380799 | erot = 10.4258288161654 | epot = -72.2562171725761 | etot = -50.5142746183308 +793000 ekin = 11.6542402036844 | erot = 10.3442073318433 | epot = -72.5127221562285 | etot = -50.5142746207008 +794000 ekin = 11.9411264395025 | erot = 10.2879588173115 | epot = -72.7433598795459 | etot = -50.5142746227319 +795000 ekin = 12.1351044495356 | erot = 10.2641865985452 | epot = -72.9135656717524 | etot = -50.5142746236716 +796000 ekin = 12.2078724557425 | erot = 10.2805672453621 | epot = -73.002714324796 | etot = -50.5142746236914 +797000 ekin = 12.1452593713512 | erot = 10.3450171205922 | epot = -73.0045511149551 | etot = -50.5142746230116 +798000 ekin = 11.9451812221276 | erot = 10.4647770415723 | epot = -72.9242328855099 | etot = -50.5142746218099 +799000 ekin = 11.6151944445807 | erot = 10.6460858263548 | epot = -72.7755548911813 | etot = -50.5142746202458 +800000 ekin = 11.1701119660118 | erot = 10.8937791249656 | epot = -72.5781657095174 | etot = -50.51427461854 +801000 ekin = 10.629665013656 | erot = 11.2100289498347 | epot = -72.3539685805472 | etot = -50.5142746170565 +802000 ekin = 10.0162021020309 | erot = 11.5918355781245 | epot = -72.1223122961343 | etot = -50.5142746159789 +803000 ekin = 9.35262484647737 | erot = 12.0292939538184 | epot = -71.8961934158852 | etot = -50.5142746155894 +804000 ekin = 8.66091793166003 | erot = 12.5039909453998 | epot = -71.6791834929657 | etot = -50.5142746159059 +805000 ekin = 7.96269204966891 | erot = 12.9904597148454 | epot = -71.4674263808736 | etot = -50.5142746163593 +806000 ekin = 7.28309911914363 | erot = 13.4637499464485 | epot = -71.2611236823976 | etot = -50.5142746168054 +807000 ekin = 6.64354530303459 | erot = 13.8965012732196 | epot = -71.0543211930884 | etot = -50.5142746168341 +808000 ekin = 6.06569426715366 | erot = 14.2665976072072 | epot = -70.846566490465 | etot = -50.5142746161041 +809000 ekin = 5.57220972267948 | erot = 14.5624309902382 | epot = -70.6489153274645 | etot = -50.5142746145468 +810000 ekin = 5.18560956702054 | erot = 14.7848453683203 | epot = -70.4847295477707 | etot = -50.5142746124298 +811000 ekin = 4.92192373651933 | erot = 14.9394262725043 | epot = -70.3756246213058 | etot = -50.5142746122821 +812000 ekin = 4.78454979622525 | erot = 15.0222979446393 | epot = -70.3211223519872 | etot = -50.5142746111227 +813000 ekin = 4.77811513006738 | erot = 15.0438932856792 | epot = -70.3362830265582 | etot = -50.5142746108117 +814000 ekin = 4.89877766101389 | erot = 15.0134686698061 | epot = -70.426520942417 | etot = -50.514274611597 +815000 ekin = 5.13224364530435 | erot = 14.9341431305339 | epot = -70.5806613892138 | etot = -50.5142746133756 +816000 ekin = 5.45499511248497 | erot = 14.8029157849916 | epot = -70.772185513252 | etot = -50.5142746157755 +817000 ekin = 5.83730378160397 | erot = 14.6128652259528 | epot = -70.9644436259008 | etot = -50.514274618344 +818000 ekin = 6.24705078265335 | erot = 14.35598981918 | epot = -71.1173152225196 | etot = -50.5142746206862 +819000 ekin = 6.65333519872133 | erot = 14.0255937150625 | epot = -71.1932035362944 | etot = -50.5142746225105 +820000 ekin = 7.02931213200585 | erot = 13.6180701133972 | epot = -71.1616568689995 | etot = -50.5142746235965 +821000 ekin = 7.35419181516296 | erot = 13.1344275810971 | epot = -71.002894020028 | etot = -50.5142746237679 +822000 ekin = 7.61452267039641 | erot = 12.5816642165519 | epot = -70.7104615098789 | etot = -50.5142746229306 +823000 ekin = 7.8045791368625 | erot = 11.9738516457396 | epot = -70.2927054037303 | etot = -50.5142746211282 +824000 ekin = 7.9262306248882 | erot = 11.3316465732783 | epot = -69.7721518167056 | etot = -50.5142746185391 +825000 ekin = 7.98855124821598 | erot = 10.6800409975046 | epot = -69.1828668611821 | etot = -50.5142746154616 +826000 ekin = 8.00547556719018 | erot = 10.0465644012408 | epot = -68.5663145807013 | etot = -50.5142746122704 +827000 ekin = 7.99332269052192 | erot = 9.45843415914092 | epot = -67.9660314589833 | etot = -50.5142746093205 +828000 ekin = 7.96824966901498 | erot = 8.94000860860646 | epot = -67.4225328845179 | etot = -50.5142746068965 +829000 ekin = 7.94344804466234 | erot = 8.51150826233098 | epot = -66.9692309121261 | etot = -50.5142746051328 +830000 ekin = 7.92872079696729 | erot = 8.18753713454097 | epot = -66.6305325355413 | etot = -50.514274604033 +831000 ekin = 7.93015445192337 | erot = 7.97742868764142 | epot = -66.4218577430486 | etot = -50.5142746034839 +832000 ekin = 7.95037084502494 | erot = 7.88660237978092 | epot = -66.3512478280359 | etot = -50.51427460323 +833000 ekin = 7.99000871682723 | erot = 7.91841904034366 | epot = -66.4227023604139 | etot = -50.514274603243 +834000 ekin = 8.04830667220843 | erot = 8.07516750499664 | epot = -66.6377487804233 | etot = -50.5142746032182 +835000 ekin = 8.12473779283404 | erot = 8.35958341054817 | epot = -66.9985958064356 | etot = -50.5142746030534 +836000 ekin = 8.2203028286371 | erot = 8.77529454998099 | epot = -67.5098719814022 | etot = -50.5142746027841 +837000 ekin = 8.33787083573966 | erot = 9.32581140973844 | epot = -68.1779568480919 | etot = -50.5142746026137 +838000 ekin = 8.48148351708533 | erot = 10.0120708918567 | epot = -69.0078290118589 | etot = -50.5142746029169 +839000 ekin = 8.65454723392593 | erot = 10.828633989549 | epot = -69.9974558276565 | etot = -50.5142746041816 +840000 ekin = 8.8572489763941 | erot = 11.7591344305728 | epot = -71.1306580137988 | etot = -50.5142746068319 +841000 ekin = 9.084102723943 | erot = 12.7725877225071 | epot = -72.3709650574723 | etot = -50.5142746110221 +842000 ekin = 9.3228644555453 | erot = 13.8222723623197 | epot = -73.6594114343262 | etot = -50.5142746164612 +843000 ekin = 9.55575186020913 | erot = 14.8485908043665 | epot = -74.9186172869775 | etot = -50.5142746224019 +844000 ekin = 9.76305319167583 | erot = 15.7859703765421 | epot = -76.0632981960683 | etot = -50.5142746278504 +845000 ekin = 9.92653283160569 | erot = 16.5722430343749 | epot = -77.0130504982422 | etot = -50.5142746322615 +846000 ekin = 10.0341915121518 | erot = 17.1569368807579 | epot = -77.705403027488 | etot = -50.5142746345783 +847000 ekin = 10.0842269981193 | erot = 17.5059176317059 | epot = -78.1044192648766 | etot = -50.5142746350513 +848000 ekin = 10.0834807369303 | erot = 17.6028014906451 | epot = -78.2005568615335 | etot = -50.5142746339581 +849000 ekin = 10.0452569998271 | erot = 17.4478826304562 | epot = -78.0074142619096 | etot = -50.5142746316263 +850000 ekin = 9.98669392837276 | erot = 17.0565884213337 | epot = -77.5575569780145 | etot = -50.5142746283081 +851000 ekin = 9.92663281888658 | erot = 16.4581424380771 | epot = -76.8990498811812 | etot = -50.5142746242175 +852000 ekin = 9.88421071070815 | erot = 15.6937873465229 | epot = -76.0922726768526 | etot = -50.5142746196215 +853000 ekin = 9.87790001918571 | erot = 14.8136202069001 | epot = -75.2057948409708 | etot = -50.514274614885 +854000 ekin = 9.92462914155201 | erot = 13.8718574790535 | epot = -74.3107612310318 | etot = -50.5142746104263 +855000 ekin = 10.0388102442415 | erot = 12.9213545993191 | epot = -73.4744394501961 | etot = -50.5142746066355 +856000 ekin = 10.2313382537482 | erot = 12.0086601024974 | epot = -72.7542729600268 | etot = -50.5142746037812 +857000 ekin = 10.5087335451001 | erot = 11.1705904124712 | epot = -72.193598559568 | etot = -50.5142746019967 +858000 ekin = 10.8725687503891 | erot = 10.4326544038022 | epot = -71.8194977554779 | etot = -50.5142746012866 +859000 ekin = 11.3192383577338 | erot = 9.80910719600053 | epot = -71.6426201552897 | etot = -50.5142746015554 +860000 ekin = 11.8400783419905 | erot = 9.30419552792422 | epot = -71.658548472561 | etot = -50.5142746026463 +861000 ekin = 12.4218045286565 | erot = 8.91415835014432 | epot = -71.8502374831694 | etot = -50.5142746043686 +862000 ekin = 13.0471595017477 | erot = 8.62956306071713 | epot = -72.1909971690095 | etot = -50.5142746065447 +863000 ekin = 13.6955471607266 | erot = 8.43751332753371 | epot = -72.6473350973154 | etot = -50.5142746090551 +864000 ekin = 14.3434008697606 | erot = 8.32326841739466 | epot = -73.1809438990228 | etot = -50.5142746118675 +865000 ekin = 14.9642125533412 | erot = 8.27104570839966 | epot = -73.7495328767341 | etot = -50.5142746149933 +866000 ekin = 15.528558983782 | erot = 8.26427543445646 | epot = -74.3071090366081 | etot = -50.5142746183696 +867000 ekin = 16.0048844598068 | erot = 8.28609725298643 | epot = -74.8052563345312 | etot = -50.514274621738 +868000 ekin = 16.3618698335787 | erot = 8.32099923217132 | epot = -75.1971436903374 | etot = -50.5142746245874 +869000 ekin = 16.5726647379777 | erot = 8.35789379706738 | epot = -75.4448331613222 | etot = -50.5142746262771 +870000 ekin = 16.6201866860329 | erot = 8.39376845186404 | epot = -75.5282297641825 | etot = -50.5142746262856 +871000 ekin = 16.5016790588276 | erot = 8.43606779502584 | epot = -75.4520214783566 | etot = -50.5142746245031 +872000 ekin = 16.2341552473781 | erot = 8.50234235656206 | epot = -75.2507722228983 | etot = -50.5142746189581 +873000 ekin = 15.876686045947 | erot = 8.61819397760871 | epot = -75.0091546395533 | etot = -50.5142746159976 +874000 ekin = 15.4649107939159 | erot = 8.80433706341398 | epot = -74.783522470903 | etot = -50.5142746135731 +875000 ekin = 15.0262874336432 | erot = 9.07115551084192 | epot = -74.6117175568101 | etot = -50.5142746123251 +876000 ekin = 14.5841946135315 | erot = 9.41501293029907 | epot = -74.513482156385 | etot = -50.5142746125544 +877000 ekin = 14.1547799929905 | erot = 9.81684169520886 | epot = -74.4858963036691 | etot = -50.5142746154698 +878000 ekin = 13.738213635863 | erot = 10.2440638824616 | epot = -74.496552135016 | etot = -50.5142746166914 +879000 ekin = 13.3387592431327 | erot = 10.6587148562512 | epot = -74.5117487187133 | etot = -50.5142746193294 +880000 ekin = 12.9616338661267 | erot = 11.0178947403681 | epot = -74.4938032279389 | etot = -50.5142746214441 +881000 ekin = 12.6124700510745 | erot = 11.2828146493588 | epot = -74.409559322865 | etot = -50.5142746224317 +882000 ekin = 12.3012191623339 | erot = 11.4261723469392 | epot = -74.2416661313924 | etot = -50.5142746221193 +883000 ekin = 12.041684518431 | erot = 11.4352838976379 | epot = -73.9912430369291 | etot = -50.5142746208602 +884000 ekin = 11.8474220294668 | erot = 11.3115013061668 | epot = -73.6731979549861 | etot = -50.5142746193525 +885000 ekin = 11.7257363966337 | erot = 11.0668464612646 | epot = -73.3068574761126 | etot = -50.5142746182143 +886000 ekin = 11.6731647858694 | erot = 10.7200648867792 | epot = -72.9075042902706 | etot = -50.5142746176219 +887000 ekin = 11.6753437833101 | erot = 10.2941390601645 | epot = -72.483757460736 | etot = -50.5142746172613 +888000 ekin = 11.711486867392 | erot = 9.81567994926898 | epot = -72.0414414333002 | etot = -50.5142746166392 +889000 ekin = 11.7608194291218 | erot = 9.31484227781205 | epot = -71.589936322419 | etot = -50.5142746154851 +890000 ekin = 11.8074394677861 | erot = 8.82394323458894 | epot = -71.1456573163221 | etot = -50.514274613947 +891000 ekin = 11.8416000935789 | erot = 8.37408459363945 | epot = -70.7299592997137 | etot = -50.5142746124953 +892000 ekin = 11.8578157118822 | erot = 7.99071522451893 | epot = -70.3628055480302 | etot = -50.514274611629 +893000 ekin = 11.8517025878437 | erot = 7.68991980286949 | epot = -70.0558970023529 | etot = -50.5142746116397 +894000 ekin = 11.8175069853191 | erot = 7.47687356807654 | epot = -69.8086551659019 | etot = -50.5142746125063 +895000 ekin = 11.7474082015216 | erot = 7.34687884495997 | epot = -69.6085616604206 | etot = -50.5142746139391 +896000 ekin = 11.6337519151265 | erot = 7.2892196343865 | epot = -69.4372461644606 | etot = -50.5142746149475 +897000 ekin = 11.4723569946212 | erot = 7.291065702926 | epot = -69.277697313744 | etot = -50.5142746161968 +898000 ekin = 11.2610645581968 | erot = 7.33791947970324 | epot = -69.1132586561133 | etot = -50.5142746182133 +899000 ekin = 10.9996054557354 | erot = 7.4145517356619 | epot = -68.9284318100476 | etot = -50.5142746186504 +900000 ekin = 10.6922844700029 | erot = 7.50755561898882 | epot = -68.7141147070924 | etot = -50.5142746181007 +901000 ekin = 10.3534988307799 | erot = 7.60938036313742 | epot = -68.477153811341 | etot = -50.5142746174237 +902000 ekin = 9.99993129226381 | erot = 7.71616133833331 | epot = -68.2303672467816 | etot = -50.5142746161845 +903000 ekin = 9.65023529513539 | erot = 7.82867685326672 | epot = -67.9931867636195 | etot = -50.5142746152174 +904000 ekin = 9.31666090720493 | erot = 7.95055248574213 | epot = -67.7814880061006 | etot = -50.5142746131536 +905000 ekin = 9.0151678621896 | erot = 8.0931717646355 | epot = -67.6226142378358 | etot = -50.5142746110107 +906000 ekin = 8.76163371709618 | erot = 8.27193436037489 | epot = -67.5478426866915 | etot = -50.5142746092204 +907000 ekin = 8.5671723812097 | erot = 8.50112591566098 | epot = -67.5825729050348 | etot = -50.5142746081642 +908000 ekin = 8.43684994935096 | erot = 8.78986433035733 | epot = -67.7409888877375 | etot = -50.5142746080292 +909000 ekin = 8.36965149839248 | erot = 9.13947702228474 | epot = -68.0234031294551 | etot = -50.5142746087779 +910000 ekin = 8.35959079233856 | erot = 9.54304734368641 | epot = -68.4169127462108 | etot = -50.5142746101858 +911000 ekin = 8.39748118916213 | erot = 9.98695611148845 | epot = -68.8987119125913 | etot = -50.5142746119407 +912000 ekin = 8.47277548193584 | erot = 10.4536385184336 | epot = -69.440688614117 | etot = -50.5142746137475 +913000 ekin = 8.57499585903622 | erot = 10.9245819661982 | epot = -70.0138524406339 | etot = -50.5142746153994 +914000 ekin = 8.69450482126952 | erot = 11.3827140796491 | epot = -70.5914935177333 | etot = -50.5142746168147 +915000 ekin = 8.82261764858011 | erot = 11.8136624663994 | epot = -71.1505547330035 | etot = -50.514274618024 +916000 ekin = 8.95125831585943 | erot = 12.205813355537 | epot = -71.6713462905192 | etot = -50.5142746191227 +917000 ekin = 9.07247170864295 | erot = 12.5495353189923 | epot = -72.1362816478387 | etot = -50.5142746202035 +918000 ekin = 9.17798133020699 | erot = 12.8359656973712 | epot = -72.5282216495145 | etot = -50.5142746219363 +919000 ekin = 9.25795352543698 | erot = 13.0545632678061 | epot = -72.8267914162506 | etot = -50.5142746230075 +920000 ekin = 9.30352764337116 | erot = 13.1980045147644 | epot = -73.0158067819017 | etot = -50.5142746237662 +921000 ekin = 9.30791573962261 | erot = 13.2627586618327 | epot = -73.0849490254433 | etot = -50.514274623988 +922000 ekin = 9.26738318949092 | erot = 13.2504193014433 | epot = -73.0320771144145 | etot = -50.5142746234803 +923000 ekin = 9.18225083009585 | erot = 13.1693406239485 | epot = -72.8658660762015 | etot = -50.5142746221572 +924000 ekin = 9.05737763951813 | erot = 13.035259673007 | epot = -72.60691193261 | etot = -50.5142746200849 +925000 ekin = 8.90197379719792 | erot = 12.8704449082967 | epot = -72.2866933229743 | etot = -50.5142746174796 +926000 ekin = 8.72875558944565 | erot = 12.7013413968575 | epot = -71.9443716009688 | etot = -50.5142746146656 +927000 ekin = 8.55261219802547 | erot = 12.5551881315045 | epot = -71.6220749415216 | etot = -50.5142746119915 +928000 ekin = 8.3890619138423 | erot = 12.4564414994099 | epot = -71.3597780230131 | etot = -50.5142746097609 +929000 ekin = 8.25278751345445 | erot = 12.4238691105587 | epot = -71.1909312321754 | etot = -50.5142746081623 +930000 ekin = 8.15644947631112 | erot = 12.4688675852871 | epot = -71.1395916688729 | etot = -50.5142746072747 +931000 ekin = 8.10980872701606 | erot = 12.5950716573596 | epot = -71.2191549914745 | etot = -50.5142746070989 +932000 ekin = 8.11905369613075 | erot = 12.7988879099669 | epot = -71.43221621371 | etot = -50.5142746076124 +933000 ekin = 8.18618804321149 | erot = 13.070370377796 | epot = -71.7708330298154 | etot = -50.5142746088079 +934000 ekin = 8.30844961722735 | erot = 13.3939295435348 | epot = -72.2166537714582 | etot = -50.514274610696 +935000 ekin = 8.47804287619654 | erot = 13.7488706059529 | epot = -72.7411880951433 | etot = -50.5142746129938 +936000 ekin = 8.68285566583036 | erot = 14.1118670755257 | epot = -73.3089973576053 | etot = -50.5142746162492 +937000 ekin = 8.90506344753319 | erot = 14.4532746107671 | epot = -73.8726126780966 | etot = -50.5142746197963 +938000 ekin = 9.12528575783064 | erot = 14.7395572147996 | epot = -74.3791175958013 | etot = -50.514274623171 +939000 ekin = 9.32644769081306 | erot = 14.9376224440318 | epot = -74.7783447607167 | etot = -50.5142746258718 +940000 ekin = 9.49679607423193 | erot = 15.0191372956862 | epot = -75.0302079974039 | etot = -50.5142746274858 +941000 ekin = 9.63181347032397 | erot = 14.9646422014584 | epot = -75.1107302995718 | etot = -50.5142746277895 +942000 ekin = 9.73459702470586 | erot = 14.766516918386 | epot = -75.0153885698712 | etot = -50.5142746267793 +943000 ekin = 9.81477003781061 | erot = 14.4302129133908 | epot = -74.7592575758477 | etot = -50.5142746246463 +944000 ekin = 9.88637843649583 | erot = 13.9736039564721 | epot = -74.3742570146845 | etot = -50.5142746217166 +945000 ekin = 9.9653878552439 | erot = 13.4246663204191 | epot = -73.9043287940479 | etot = -50.5142746183849 +946000 ekin = 10.0624285978489 | erot = 12.8170998514157 | epot = -73.3938030653617 | etot = -50.514274616097 +947000 ekin = 10.1824129638269 | erot = 12.1848373686378 | epot = -72.8815249460322 | etot = -50.5142746135675 +948000 ekin = 10.3307952063951 | erot = 11.5602780907278 | epot = -72.4053479087891 | etot = -50.5142746116662 +949000 ekin = 10.509160869338 | erot = 10.9707033402967 | epot = -71.9941388200449 | etot = -50.5142746104101 +950000 ekin = 10.7157185620102 | erot = 10.4363928296814 | epot = -71.6663860014597 | etot = -50.5142746097681 +951000 ekin = 10.946102601704 | erot = 9.97090696790417 | epot = -71.4312841792091 | etot = -50.514274609601 +952000 ekin = 11.1944034263922 | erot = 9.58208330473698 | epot = -71.2907613408455 | etot = -50.5142746097163 +953000 ekin = 11.4542745284974 | erot = 9.27371614285239 | epot = -71.2422652812955 | etot = -50.5142746099457 +954000 ekin = 11.7197914420766 | erot = 9.04716566653344 | epot = -71.2812317188213 | etot = -50.5142746102112 +955000 ekin = 11.9858075781877 | erot = 8.90221043235444 | epot = -71.4022926210912 | etot = -50.5142746105491 +956000 ekin = 12.247752601157 | erot = 8.83681504682281 | epot = -71.5988422590654 | etot = -50.5142746110856 +957000 ekin = 12.5001620854987 | erot = 8.84602022699858 | epot = -71.8604569246898 | etot = -50.5142746121925 +958000 ekin = 12.7364419157096 | erot = 8.9202531655527 | epot = -72.1709696948261 | etot = -50.5142746135637 +959000 ekin = 12.9499558169919 | erot = 9.04468571434051 | epot = -72.5089161465906 | etot = -50.5142746152582 +960000 ekin = 13.1339945044549 | erot = 9.20006474954276 | epot = -72.8483338710208 | etot = -50.5142746170231 +961000 ekin = 13.2830442058268 | erot = 9.36494740352057 | epot = -73.1622662278611 | etot = -50.5142746185137 +962000 ekin = 13.3943598105312 | erot = 9.51904370691999 | epot = -73.4276781368386 | etot = -50.5142746193874 +963000 ekin = 13.4693004783907 | erot = 9.64669088359462 | epot = -73.6302659814776 | etot = -50.5142746194923 +964000 ekin = 13.5138667494266 | erot = 9.73885319439184 | epot = -73.7669945625489 | etot = -50.5142746187304 +965000 ekin = 13.5381869821487 | erot = 9.79431086360019 | epot = -73.8467724630455 | etot = -50.5142746172966 +966000 ekin = 13.5561247347474 | erot = 9.81745627102526 | epot = -73.8878556215787 | etot = -50.514274615806 +967000 ekin = 13.5791884000743 | erot = 9.8170082766903 | epot = -73.9104712911977 | etot = -50.5142746144331 +968000 ekin = 13.6156774160484 | erot = 9.80283527473491 | epot = -73.9327873043372 | etot = -50.5142746135539 +969000 ekin = 13.6696213237842 | erot = 9.782357696224 | epot = -73.9662536334143 | etot = -50.5142746134061 +970000 ekin = 13.7395769124221 | erot = 9.75809430149993 | epot = -74.0119458280882 | etot = -50.5142746141662 +971000 ekin = 13.8188233686534 | erot = 9.72517183385525 | epot = -74.0582698180394 | etot = -50.5142746155307 +972000 ekin = 13.8945737116172 | erot = 9.67630144632062 | epot = -74.0851497750791 | etot = -50.5142746171412 +973000 ekin = 13.9510636744438 | erot = 9.60403058386454 | epot = -74.0693688768831 | etot = -50.5142746185747 +974000 ekin = 13.9725505848395 | erot = 9.50361383013663 | epot = -73.9904390344624 | etot = -50.5142746194863 +975000 ekin = 13.9459468247441 | erot = 9.37533024555715 | epot = -73.8355516900162 | etot = -50.514274619715 +976000 ekin = 13.8626234186394 | erot = 9.22504260864496 | epot = -73.6019406466 | etot = -50.5142746193156 +977000 ekin = 13.7190808965563 | erot = 9.06288466719337 | epot = -73.2962401822375 | etot = -50.5142746184878 +978000 ekin = 13.516657166419 | erot = 8.90088911563463 | epot = -72.9318208994998 | etot = -50.5142746174462 +979000 ekin = 13.2607650055488 | erot = 8.75083051915684 | epot = -72.5258701410125 | etot = -50.5142746163069 +980000 ekin = 12.9601438446192 | erot = 8.62327601862502 | epot = -72.0976944783079 | etot = -50.5142746150637 +981000 ekin = 12.6263377400443 | erot = 8.52805592036366 | epot = -71.6686682740438 | etot = -50.5142746136358 +982000 ekin = 12.2732923452504 | erot = 8.47560645871046 | epot = -71.2631734159094 | etot = -50.5142746119486 +983000 ekin = 11.9168085654132 | erot = 8.47829635031043 | epot = -70.9093795257297 | etot = -50.5142746100061 +984000 ekin = 11.5736514704602 | erot = 8.5509697513139 | epot = -70.6388958296981 | etot = -50.5142746079239 +985000 ekin = 11.2603361578165 | erot = 8.71025817930807 | epot = -70.4848689430464 | etot = -50.5142746059218 +986000 ekin = 10.9917013457631 | erot = 8.97258068374094 | epot = -70.478556633814 | etot = -50.51427460431 +987000 ekin = 10.7795065325659 | erot = 9.35090018041219 | epot = -70.6446813164327 | etot = -50.5142746034546 +988000 ekin = 10.6312152806539 | erot = 9.85057203710816 | epot = -70.9960619214831 | etot = -50.514274603721 +989000 ekin = 10.5490976148249 | erot = 10.4650086574415 | epot = -71.528380877651 | etot = -50.5142746053845 +990000 ekin = 10.5298658630342 | erot = 11.1723189856646 | epot = -72.2164594571936 | etot = -50.5142746084948 +991000 ekin = 10.5651233194553 | erot = 11.9345717218068 | epot = -73.0139696539915 | etot = -50.5142746127294 +992000 ekin = 10.6428905940546 | erot = 12.7012555800802 | epot = -73.8584207914926 | etot = -50.5142746173579 +993000 ekin = 10.7501909021507 | erot = 13.4173760270084 | epot = -74.6818415505524 | etot = -50.5142746213933 +994000 ekin = 10.8760849480312 | erot = 14.0344526795298 | epot = -75.4248122515248 | etot = -50.5142746239637 +995000 ekin = 11.0140035497573 | erot = 14.5205029284807 | epot = -76.0487811029377 | etot = -50.5142746246998 +996000 ekin = 11.1622832138247 | erot = 14.8647830969972 | epot = -76.5413409347103 | etot = -50.5142746238884 +997000 ekin = 11.3226561299946 | erot = 15.0754558508696 | epot = -76.9123866031459 | etot = -50.5142746222818 +998000 ekin = 11.4975426712718 | erot = 15.1719516023698 | epot = -77.1837688943373 | etot = -50.5142746206957 +999000 ekin = 11.6875167361815 | erot = 15.1760730282748 | epot = -77.3778643841292 | etot = -50.5142746196729 +1000000 ekin = 11.8899772626335 | erot = 15.1055556567 | epot = -77.5098075386809 | etot = -50.5142746193474 + 1000000 443.20455 -80.663303 3.1534956 -65.61983 -0.0074359672 39304000 +Loop time of 10.6878 on 4 procs for 1000000 steps with 10 atoms + +Performance: 137.913 ns/day, 0.174 hours/ns, 93564.730 timesteps/s, 935.647 katom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 3.2507 | 4.5103 | 6.3725 | 53.9 | 42.20 +Bond | 0.14129 | 0.19368 | 0.25474 | 9.5 | 1.81 +Neigh | 0.004024 | 0.0040453 | 0.004073 | 0.0 | 0.04 +Comm | 2.2577 | 4.3405 | 5.6343 | 60.5 | 40.61 +Output | 0.06195 | 0.071184 | 0.095935 | 5.4 | 0.67 +Modify | 0.3976 | 0.46641 | 0.55199 | 10.1 | 4.36 +Other | | 1.102 | | | 10.31 + +Nlocal: 2.5 ave 3 max 2 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 7.5 ave 8 max 7 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 9.25 ave 18 max 4 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 37 +Ave neighs/atom = 3.7 +Ave special neighs/atom = 1.6 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:10 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.4type b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.4type new file mode 100644 index 0000000000..32b09c9298 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.4type @@ -0,0 +1,132 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +26 atoms +4 atom types +24 bonds +1 bond types +26 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -5.088903454828145 -4.022006630398617 0.979450832492054 1 1 1.0016462505133576 0 0 0 +2 2 -3.073273348143933 -6.886121795405585 4.2637967191149935 1 1 1.0016462505133576 0 0 0 +3 3 -1.6015249052848957 -7.954971258517993 7.983259491779774 1 1 1.0016462505133576 0 0 0 +4 4 1.6004494372303046 -7.502206000462345 11.142183230976523 1 1 1.0016462505133576 0 0 0 +5 1 3.9762269824284777 -5.378694720128274 14.092706034736517 1 1 1.0016462505133576 0 0 0 +6 2 5.244098183685422 -2.0736999117014334 17.034635513902522 1 1 1.0016462505133576 0 0 0 +7 3 4.66434547759629 0.9057195140116471 20.406471315843888 1 1 1.0016462505133576 0 0 0 +8 4 3.3770131096003007 2.884613516099349 24.32212902640886 1 1 1.0016462505133576 0 0 0 +9 1 0.7795485088930724 2.8596780468864993 27.93316866219941 1 1 1.0016462505133576 0 0 0 +10 2 -2.220644638122167 1.9976911283301424 30.852747566202943 1 1 1.0016462505133576 0 0 0 +11 3 -3.752108563283866 -0.36118973532266224 34.56060757623137 1 1 1.0016462505133576 0 0 0 +12 4 -4.0981351277114095 -3.3336637232155737 38.03472139175804 1 1 1.0016462505133576 0 0 0 +13 1 -2.580860807366316 -5.296690457458744 41.65233354663661 1 1 1.0016462505133576 0 0 0 +14 4 3.11235736590125 3.9787921540654274 41.61858344700847 2 1 1.0016462505133576 0 0 0 +15 1 4.972174868431865 1.22026293032667 39.080053199424356 2 1 1.0016462505133576 0 0 0 +16 2 6.193349083696695 -1.843990009872412 35.70127548826449 2 1 1.0016462505133576 0 0 0 +17 3 4.85045978654294 -5.086115266816092 32.287814957190825 2 1 1.0016462505133576 0 0 0 +18 4 2.7413887948469777 -6.6667612407190076 28.945688671744993 2 1 1.0016462505133576 0 0 0 +19 1 0.23801913694460985 -6.962572452460229 24.638294488589953 2 1 1.0016462505133576 0 0 0 +20 2 -2.929295143505978 -5.793156995357843 22.155368377440084 2 1 1.0016462505133576 0 0 0 +21 3 -4.874287161624311 -2.6868984302083723 19.162406167006097 2 1 1.0016462505133576 0 0 0 +22 4 -4.466038023713098 -0.16009445500929992 14.199167217812603 2 1 1.0016462505133576 0 0 0 +23 1 -3.805032901797115 1.3047989425274054 9.939919176722297 2 1 1.0016462505133576 0 0 0 +24 2 -0.3645313828582167 2.0504253339486334 6.749830838323167 2 1 1.0016462505133576 0 0 0 +25 3 2.8696234661228 1.1843850873648512 3.5779840008575166 2 1 1.0016462505133576 0 0 0 +26 4 4.584052070339748 -2.4162961106383802 0.4178747538604132 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 -0.0007092826233374404 -0.0011683182237858898 0.0009345415878891811 -0.19711297351977997 0.3471662755040702 1.1876949496899232 +2 0.0001692806579311005 0.001454411904318072 -0.0009132068521112497 0.40085230919108755 -0.18887849087800404 0.047091827325408245 +3 0.00026721094548725233 -0.0018474107413693995 -7.33687581476124e-05 0.46267958346439353 1.0098887515959383 0.6393407481151142 +4 0.0005530692647148845 6.276724836348722e-05 0.0011760622369354724 0.485473149019376 -1.016731064060453 0.4763136256195711 +5 0.0010959077967915062 -0.002073578927849095 0.0009200279724368436 1.0623586979165884 1.065939836735458 -1.5037672467577814 +6 -0.0011992989214254961 -0.0008200232774176946 -1.878586889584186e-05 0.2637939462292815 0.9503989065450423 -1.6260870297579495 +7 0.0006177535901987009 0.000518919774167013 0.0003998839732602718 -0.6408171281169938 0.36348341926995353 -1.375803360797847 +8 0.00016059142531900045 -0.0006450606532728585 0.0008669204672450051 -0.7477778258878353 0.47361246994539824 -0.5810846842200627 +9 8.231216517048786e-05 6.015188190262039e-05 6.125792756154739e-05 -0.4607197796707098 0.5637456934375974 0.26087415190460156 +10 -0.000500147138046807 -0.000463066044342822 0.000355851169196805 -0.36328886676626787 -0.43369687106567045 0.5273136714151697 +11 0.0007757175683907118 -8.926233267161596e-05 -0.0008385947169209714 -0.4808110547195639 0.46086842856246785 -1.2339214306000716 +12 -0.001263650191118318 0.00028219137594863816 -0.0014126973797773772 0.3775783079049196 -0.1807429862945671 2.0452684483124046 +13 -3.2579866050976174e-05 0.0002635521160422669 0.0004611578260851882 -0.7261457161482728 -0.9102614938022983 -0.950223070000176 +14 -0.0004505866261683952 0.0009690259297353478 -0.0013620790360894626 0.7053189033188233 0.2384556381419323 0.771670025066328 +15 0.0011631309106043411 0.00044570587091719976 8.76640977124226e-05 0.6336939456886027 0.23680623944908769 0.16348552253269122 +16 -6.374073980270027e-05 -0.0002931008886831666 0.001121388312515121 -0.22078626344978855 0.4828157321900567 -1.5155692478249987 +17 -0.0010186027342478764 -0.002155869929612435 -0.0002602846290421834 -0.7045426361887308 -0.35130535920917716 -1.3344634305851248 +18 0.0013185658893551267 2.047723112341404e-05 -0.0005696586063762746 -1.6060222297755182 0.09031942024852611 0.9877781291576422 +19 -0.0014036986693625635 0.0012719382904391608 1.897600955961397e-05 0.9208051089916969 -1.6695360996503725 0.9680334678576618 +20 -0.0017040889747209288 0.00025337668854442876 -0.0001691840039087206 -0.5820811149791364 -0.6584676155867104 -0.13895286467266474 +21 -0.0012832301288169161 0.00023432762658239688 0.0004175391014650396 -0.368479743293301 -0.13070387294699928 -0.7972536298008709 +22 0.000425865764618422 0.0005323528439718917 -0.00037084207215630813 -1.987484231007066 -0.8187640783546725 0.8567029127863278 +23 -0.0004662057261624694 -0.0009522140435800978 0.0009625566807134454 0.07570418552326717 -1.5530387610102858 1.0623583182518839 +24 -0.0008020353772621954 0.0006130763545177365 0.000256600283460346 -0.4133480645752746 -1.123177366593782 0.34895664453469977 +25 -0.0007357778484794694 0.0004842720240985607 -0.0010361169830474496 0.23875324331203535 -0.5925750420871833 0.1484289925046781 +26 -0.000301663155222858 0.001775092432198598 -0.0009822913284976214 0.0628202961121918 0.11750852756815655 -0.8762490863383418 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 8 9 +9 1 9 10 +10 1 10 11 +11 1 11 12 +12 1 12 13 +13 1 14 15 +14 1 15 16 +15 1 16 17 +16 1 17 18 +17 1 18 19 +18 1 19 20 +19 1 20 21 +20 1 21 22 +21 1 22 23 +22 1 23 24 +23 1 24 25 +24 1 25 26 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9970278940278272 0.0014876174054512252 0.0750547523448584 0.017319055267040844 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9059171712388804 0.007913225291438054 0.04634256838354512 0.42083705406683053 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.7657426991864452 0.028071560533125216 0.13224385975981257 0.6287779160305484 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5238981696613685 0.0516703526741727 0.1609645534282743 0.8348360887142046 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.30973290897949424 0.0750672191209306 0.23962885621884192 0.9170651279902646 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.050269263744563454 0.08142241031464711 0.09584085715741358 0.9907865170259763 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.3805122714271814 0.08965734720629535 0.057827749665601925 0.9186010683391725 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.6066322463100545 0.015286960797006149 0.035984536832974555 0.7940206166563465 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.771660293819677 0.02607541526374929 -0.08047223278265907 -0.6303845520092687 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.9119628434851113 0.03686258000931541 -0.11017000132786052 -0.3934812487336936 +11 9.999999997766462 9.999999997766462 9.999999997766462 0.9917294290821066 0.05835078551401739 -0.08073737536574405 -0.08092837290732445 +12 9.999999997766462 9.999999997766462 9.999999997766462 0.9763527785523285 0.06753089597617556 0.004847281702108697 0.205307899901351 +13 9.999999997766462 9.999999997766462 9.999999997766462 0.8553397145502984 0.1399133966151149 0.07233200118835512 0.49354462388392356 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.014416326682630282 -0.533642571147991 0.8442695396252617 0.04718813669228716 +15 9.999999997766462 9.999999997766462 9.999999997766462 0.14095892784917538 -0.2201285495070387 0.9406003462562982 -0.21666792788520955 +16 9.999999997766462 9.999999997766462 9.999999997766462 0.07323967796304806 0.05035907488974361 0.963136526452943 -0.2539053850556888 +17 9.999999997766462 9.999999997766462 9.999999997766462 0.030254986187638885 0.39195467212588947 0.9164794947567249 -0.07430684019611289 +18 9.999999997766462 9.999999997766462 9.999999997766462 -0.03080283760241768 0.6526511470205414 0.7481495879677094 -0.11562810865943304 +19 9.999999997766462 9.999999997766462 9.999999997766462 -0.09450197979153381 0.7469150592813072 0.6556128255138505 -0.0579576833217777 +20 9.999999997766462 9.999999997766462 9.999999997766462 -0.12903334341475137 0.9222523214328698 0.3501336268694509 -0.10103214950765672 +21 9.999999997766462 9.999999997766462 9.999999997766462 -0.0069954457806870336 0.9888131084284681 -0.09413955816471489 -0.11548785185859346 +22 9.999999997766462 9.999999997766462 9.999999997766462 0.029336230851923526 0.9805894852440379 -0.19236800606724952 -0.02404573205262194 +23 9.999999997766462 9.999999997766462 9.999999997766462 0.03080980270092377 0.872234086776475 -0.4869211139732921 0.03415088124407873 +24 9.999999997766462 9.999999997766462 9.999999997766462 0.007237815450514786 0.690265186998662 -0.7210993183911308 0.05913847022922672 +25 9.999999997766462 9.999999997766462 9.999999997766462 0.06694683426684143 -0.46894411325316443 0.8712038661029582 -0.12889283810247346 +26 9.999999997766462 9.999999997766462 9.999999997766462 0.07581973147109407 -0.10215114654759445 0.9759556607577902 -0.17699451916228467 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.8type b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.8type new file mode 100644 index 0000000000..a70a71c866 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/data.duplex4.8type @@ -0,0 +1,136 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +26 atoms +8 atom types +24 bonds +1 bond types +26 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 +5 315.8376 +6 315.8376 +7 315.8376 +8 315.8376 + +Atoms # hybrid + +1 1 -5.088903454828145 -4.022006630398617 0.979450832492054 1 1 1.0016462505133576 0 0 0 +2 2 -3.073273348143933 -6.886121795405585 4.2637967191149935 1 1 1.0016462505133576 0 0 0 +3 3 -1.6015249052848957 -7.954971258517993 7.983259491779774 1 1 1.0016462505133576 0 0 0 +4 4 1.6004494372303046 -7.502206000462345 11.142183230976523 1 1 1.0016462505133576 0 0 0 +5 5 3.9762269824284777 -5.378694720128274 14.092706034736517 1 1 1.0016462505133576 0 0 0 +6 6 5.244098183685422 -2.0736999117014334 17.034635513902522 1 1 1.0016462505133576 0 0 0 +7 7 4.66434547759629 0.9057195140116471 20.406471315843888 1 1 1.0016462505133576 0 0 0 +8 8 3.3770131096003007 2.884613516099349 24.32212902640886 1 1 1.0016462505133576 0 0 0 +9 1 0.7795485088930724 2.8596780468864993 27.93316866219941 1 1 1.0016462505133576 0 0 0 +10 2 -2.220644638122167 1.9976911283301424 30.852747566202943 1 1 1.0016462505133576 0 0 0 +11 7 -3.752108563283866 -0.36118973532266224 34.56060757623137 1 1 1.0016462505133576 0 0 0 +12 8 -4.0981351277114095 -3.3336637232155737 38.03472139175804 1 1 1.0016462505133576 0 0 0 +13 1 -2.580860807366316 -5.296690457458744 41.65233354663661 1 1 1.0016462505133576 0 0 0 +14 4 3.11235736590125 3.9787921540654274 41.61858344700847 2 1 1.0016462505133576 0 0 0 +15 5 4.972174868431865 1.22026293032667 39.080053199424356 2 1 1.0016462505133576 0 0 0 +16 6 6.193349083696695 -1.843990009872412 35.70127548826449 2 1 1.0016462505133576 0 0 0 +17 3 4.85045978654294 -5.086115266816092 32.287814957190825 2 1 1.0016462505133576 0 0 0 +18 4 2.7413887948469777 -6.6667612407190076 28.945688671744993 2 1 1.0016462505133576 0 0 0 +19 5 0.23801913694460985 -6.962572452460229 24.638294488589953 2 1 1.0016462505133576 0 0 0 +20 6 -2.929295143505978 -5.793156995357843 22.155368377440084 2 1 1.0016462505133576 0 0 0 +21 7 -4.874287161624311 -2.6868984302083723 19.162406167006097 2 1 1.0016462505133576 0 0 0 +22 8 -4.466038023713098 -0.16009445500929992 14.199167217812603 2 1 1.0016462505133576 0 0 0 +23 1 -3.805032901797115 1.3047989425274054 9.939919176722297 2 1 1.0016462505133576 0 0 0 +24 2 -0.3645313828582167 2.0504253339486334 6.749830838323167 2 1 1.0016462505133576 0 0 0 +25 3 2.8696234661228 1.1843850873648512 3.5779840008575166 2 1 1.0016462505133576 0 0 0 +26 4 4.584052070339748 -2.4162961106383802 0.4178747538604132 2 1 1.0016462505133576 0 0 0 + +Velocities + +1 -0.0007092826233374404 -0.0011683182237858898 0.0009345415878891811 -0.19711297351977997 0.3471662755040702 1.1876949496899232 +2 0.0001692806579311005 0.001454411904318072 -0.0009132068521112497 0.40085230919108755 -0.18887849087800404 0.047091827325408245 +3 0.00026721094548725233 -0.0018474107413693995 -7.33687581476124e-05 0.46267958346439353 1.0098887515959383 0.6393407481151142 +4 0.0005530692647148845 6.276724836348722e-05 0.0011760622369354724 0.485473149019376 -1.016731064060453 0.4763136256195711 +5 0.0010959077967915062 -0.002073578927849095 0.0009200279724368436 1.0623586979165884 1.065939836735458 -1.5037672467577814 +6 -0.0011992989214254961 -0.0008200232774176946 -1.878586889584186e-05 0.2637939462292815 0.9503989065450423 -1.6260870297579495 +7 0.0006177535901987009 0.000518919774167013 0.0003998839732602718 -0.6408171281169938 0.36348341926995353 -1.375803360797847 +8 0.00016059142531900045 -0.0006450606532728585 0.0008669204672450051 -0.7477778258878353 0.47361246994539824 -0.5810846842200627 +9 8.231216517048786e-05 6.015188190262039e-05 6.125792756154739e-05 -0.4607197796707098 0.5637456934375974 0.26087415190460156 +10 -0.000500147138046807 -0.000463066044342822 0.000355851169196805 -0.36328886676626787 -0.43369687106567045 0.5273136714151697 +11 0.0007757175683907118 -8.926233267161596e-05 -0.0008385947169209714 -0.4808110547195639 0.46086842856246785 -1.2339214306000716 +12 -0.001263650191118318 0.00028219137594863816 -0.0014126973797773772 0.3775783079049196 -0.1807429862945671 2.0452684483124046 +13 -3.2579866050976174e-05 0.0002635521160422669 0.0004611578260851882 -0.7261457161482728 -0.9102614938022983 -0.950223070000176 +14 -0.0004505866261683952 0.0009690259297353478 -0.0013620790360894626 0.7053189033188233 0.2384556381419323 0.771670025066328 +15 0.0011631309106043411 0.00044570587091719976 8.76640977124226e-05 0.6336939456886027 0.23680623944908769 0.16348552253269122 +16 -6.374073980270027e-05 -0.0002931008886831666 0.001121388312515121 -0.22078626344978855 0.4828157321900567 -1.5155692478249987 +17 -0.0010186027342478764 -0.002155869929612435 -0.0002602846290421834 -0.7045426361887308 -0.35130535920917716 -1.3344634305851248 +18 0.0013185658893551267 2.047723112341404e-05 -0.0005696586063762746 -1.6060222297755182 0.09031942024852611 0.9877781291576422 +19 -0.0014036986693625635 0.0012719382904391608 1.897600955961397e-05 0.9208051089916969 -1.6695360996503725 0.9680334678576618 +20 -0.0017040889747209288 0.00025337668854442876 -0.0001691840039087206 -0.5820811149791364 -0.6584676155867104 -0.13895286467266474 +21 -0.0012832301288169161 0.00023432762658239688 0.0004175391014650396 -0.368479743293301 -0.13070387294699928 -0.7972536298008709 +22 0.000425865764618422 0.0005323528439718917 -0.00037084207215630813 -1.987484231007066 -0.8187640783546725 0.8567029127863278 +23 -0.0004662057261624694 -0.0009522140435800978 0.0009625566807134454 0.07570418552326717 -1.5530387610102858 1.0623583182518839 +24 -0.0008020353772621954 0.0006130763545177365 0.000256600283460346 -0.4133480645752746 -1.123177366593782 0.34895664453469977 +25 -0.0007357778484794694 0.0004842720240985607 -0.0010361169830474496 0.23875324331203535 -0.5925750420871833 0.1484289925046781 +26 -0.000301663155222858 0.001775092432198598 -0.0009822913284976214 0.0628202961121918 0.11750852756815655 -0.8762490863383418 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 8 9 +9 1 9 10 +10 1 10 11 +11 1 11 12 +12 1 12 13 +13 1 14 15 +14 1 15 16 +15 1 16 17 +16 1 17 18 +17 1 18 19 +18 1 19 20 +19 1 20 21 +20 1 21 22 +21 1 22 23 +22 1 23 24 +23 1 24 25 +24 1 25 26 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9970278940278272 0.0014876174054512252 0.0750547523448584 0.017319055267040844 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9059171712388804 0.007913225291438054 0.04634256838354512 0.42083705406683053 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.7657426991864452 0.028071560533125216 0.13224385975981257 0.6287779160305484 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5238981696613685 0.0516703526741727 0.1609645534282743 0.8348360887142046 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.30973290897949424 0.0750672191209306 0.23962885621884192 0.9170651279902646 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.050269263744563454 0.08142241031464711 0.09584085715741358 0.9907865170259763 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.3805122714271814 0.08965734720629535 0.057827749665601925 0.9186010683391725 +8 9.999999997766462 9.999999997766462 9.999999997766462 -0.6066322463100545 0.015286960797006149 0.035984536832974555 0.7940206166563465 +9 9.999999997766462 9.999999997766462 9.999999997766462 0.771660293819677 0.02607541526374929 -0.08047223278265907 -0.6303845520092687 +10 9.999999997766462 9.999999997766462 9.999999997766462 0.9119628434851113 0.03686258000931541 -0.11017000132786052 -0.3934812487336936 +11 9.999999997766462 9.999999997766462 9.999999997766462 0.9917294290821066 0.05835078551401739 -0.08073737536574405 -0.08092837290732445 +12 9.999999997766462 9.999999997766462 9.999999997766462 0.9763527785523285 0.06753089597617556 0.004847281702108697 0.205307899901351 +13 9.999999997766462 9.999999997766462 9.999999997766462 0.8553397145502984 0.1399133966151149 0.07233200118835512 0.49354462388392356 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.014416326682630282 -0.533642571147991 0.8442695396252617 0.04718813669228716 +15 9.999999997766462 9.999999997766462 9.999999997766462 0.14095892784917538 -0.2201285495070387 0.9406003462562982 -0.21666792788520955 +16 9.999999997766462 9.999999997766462 9.999999997766462 0.07323967796304806 0.05035907488974361 0.963136526452943 -0.2539053850556888 +17 9.999999997766462 9.999999997766462 9.999999997766462 0.030254986187638885 0.39195467212588947 0.9164794947567249 -0.07430684019611289 +18 9.999999997766462 9.999999997766462 9.999999997766462 -0.03080283760241768 0.6526511470205414 0.7481495879677094 -0.11562810865943304 +19 9.999999997766462 9.999999997766462 9.999999997766462 -0.09450197979153381 0.7469150592813072 0.6556128255138505 -0.0579576833217777 +20 9.999999997766462 9.999999997766462 9.999999997766462 -0.12903334341475137 0.9222523214328698 0.3501336268694509 -0.10103214950765672 +21 9.999999997766462 9.999999997766462 9.999999997766462 -0.0069954457806870336 0.9888131084284681 -0.09413955816471489 -0.11548785185859346 +22 9.999999997766462 9.999999997766462 9.999999997766462 0.029336230851923526 0.9805894852440379 -0.19236800606724952 -0.02404573205262194 +23 9.999999997766462 9.999999997766462 9.999999997766462 0.03080980270092377 0.872234086776475 -0.4869211139732921 0.03415088124407873 +24 9.999999997766462 9.999999997766462 9.999999997766462 0.007237815450514786 0.690265186998662 -0.7210993183911308 0.05913847022922672 +25 9.999999997766462 9.999999997766462 9.999999997766462 0.06694683426684143 -0.46894411325316443 0.8712038661029582 -0.12889283810247346 +26 9.999999997766462 9.999999997766462 9.999999997766462 0.07581973147109407 -0.10215114654759445 0.9759556607577902 -0.17699451916228467 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/generate_unique.py b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/generate_unique.py new file mode 100644 index 0000000000..330215bd80 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/generate_unique.py @@ -0,0 +1,828 @@ +#!/usr/bin/env python +""" +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Oliver Henrich (University of Strathclyde, Glasgow) +------------------------------------------------------------------------- */ +""" +""" +Creates unique base-pairings to avoid asymmetrical H-bonds. + +Modified to create the bead wall setup. +N_BEADS is the number of beads along one direction, the final system will have N_BEADS^2 beads in the wall. N_BEADS should be set to be odd number. +""" + + +#Define number of base-pairs per turn for B-form DNA +N = 10.5 +#Define distance between the big bead and the centre of mass of the last base-pair +BEAD_OFFSET = 2.0 +WALL_PARTICLE_SIZE = 2.0 +N_BEADS = 11 + +#Number of unique base type groups (1-4) ACGT counts as one group +N_BASE_TYPES = 20 + + +""" +Import basic modules +""" +import sys, os, timeit + +from timeit import default_timer as timer +start_time = timer() +""" +Try to import numpy; if failed, import a local version mynumpy +which needs to be provided +""" +try: + import numpy as np +except: + print("numpy not found. Exiting.", file=sys.stderr) + sys.exit(1) + +""" +Check that the required arguments (box offset and size in simulation units +and the sequence file were provided +""" +try: + box_offset = float(sys.argv[1]) + box_length = float(sys.argv[2]) + infile = sys.argv[3] + if len(sys.argv) == 4: + topo = 'strand' + lk = 0 + elif len(sys.argv) == 5: + topo = 'strand' + lk = int(sys.argv[4]) + +except: + print("Usage: %s <%s> <%s> <%s> <%s> " % (sys.argv[0], \ + "box offset", "box length", "file with sequences", "[Lk]"), file=sys.stderr) + sys.exit(1) +box = np.array ([box_length, box_length, box_length]) + +""" +Try to open the file and fail gracefully if file cannot be opened +""" +try: + inp = open (infile, 'r') + inp.close() +except: + print("Could not open file '%s' for reading. \ + Aborting." % infile, file=sys.stderr) + sys.exit(2) + +# return parts of a string +def partition(s, d): + if d in s: + sp = s.split(d, 1) + return sp[0], d, sp[1] + else: + return s, "", "" + +""" +Define the model constants +""" +# set model constants +PI = np.pi +POS_BASE = 0.4 +POS_BACK = -0.4 +EXCL_RC1 = 0.711879214356 +EXCL_RC2 = 0.335388426126 +EXCL_RC3 = 0.52329943261 + +""" +Define auxiliary variables for the construction of a helix +""" +# center of the double strand +COM_CENTRE_DS = POS_BASE + 0.2 + +# ideal rise between two consecutive nucleotides on the +# same strand which are to be base paired in a duplex +BASE_BASE = 0.3897628551303122 + +# cutoff distance for overlap check +RC2 = 16 + +# squares of the excluded volume distances for overlap check +RC2_BACK = EXCL_RC1**2 +RC2_BASE = EXCL_RC2**2 +RC2_BACK_BASE = EXCL_RC3**2 + +# enumeration to translate from letters to numbers and vice versa +number_to_base = {1 : 'A', 2 : 'C', 3 : 'G', 4 : 'T'} +base_to_number = {'A' : 1, 'a' : 1, 'C' : 2, 'c' : 2, + 'G' : 3, 'g' : 3, 'T' : 4, 't' : 4} + +# auxiliary arrays +positions = [] +a1s = [] +a3s = [] +quaternions = [] + +newpositions = [] +newa1s = [] +newa3s = [] + +basetype = [] +strandnum = [] + +bonds = [] + +""" +Convert local body frame to quaternion DOF +""" +def exyz_to_quat (mya1, mya3): + + mya2 = np.cross(mya3, mya1) + myquat = [1,0,0,0] + + q0sq = 0.25 * (mya1[0] + mya2[1] + mya3[2] + 1.0) + q1sq = q0sq - 0.5 * (mya2[1] + mya3[2]) + q2sq = q0sq - 0.5 * (mya1[0] + mya3[2]) + q3sq = q0sq - 0.5 * (mya1[0] + mya2[1]) + + # some component must be greater than 1/4 since they sum to 1 + # compute other components from it + + if q0sq >= 0.25: + myquat[0] = np.sqrt(q0sq) + myquat[1] = (mya2[2] - mya3[1]) / (4.0*myquat[0]) + myquat[2] = (mya3[0] - mya1[2]) / (4.0*myquat[0]) + myquat[3] = (mya1[1] - mya2[0]) / (4.0*myquat[0]) + elif q1sq >= 0.25: + myquat[1] = np.sqrt(q1sq) + myquat[0] = (mya2[2] - mya3[1]) / (4.0*myquat[1]) + myquat[2] = (mya2[0] + mya1[1]) / (4.0*myquat[1]) + myquat[3] = (mya1[2] + mya3[0]) / (4.0*myquat[1]) + elif q2sq >= 0.25: + myquat[2] = np.sqrt(q2sq) + myquat[0] = (mya3[0] - mya1[2]) / (4.0*myquat[2]) + myquat[1] = (mya2[0] + mya1[1]) / (4.0*myquat[2]) + myquat[3] = (mya3[1] + mya2[2]) / (4.0*myquat[2]) + elif q3sq >= 0.25: + myquat[3] = np.sqrt(q3sq) + myquat[0] = (mya1[1] - mya2[0]) / (4.0*myquat[3]) + myquat[1] = (mya3[0] + mya1[2]) / (4.0*myquat[3]) + myquat[2] = (mya3[1] + mya2[2]) / (4.0*myquat[3]) + + norm = 1.0/np.sqrt(myquat[0]*myquat[0] + myquat[1]*myquat[1] + \ + myquat[2]*myquat[2] + myquat[3]*myquat[3]) + myquat[0] *= norm + myquat[1] *= norm + myquat[2] *= norm + myquat[3] *= norm + + return np.array([myquat[0],myquat[1],myquat[2],myquat[3]]) + +""" +Adds a strand to the system by appending it to the array of previous strands +""" +def add_strands (mynewpositions, mynewa1s, mynewa3s): + overlap = False + + # This is a simple check for each of the particles where for previously + # placed particles i we check whether it overlaps with any of the + # newly created particles j + + print("## Checking for overlaps", file=sys.stdout) + + for i in range(len(positions)): + + p = positions[i] + pa1 = a1s[i] + + for j in range (len(mynewpositions)): + + q = mynewpositions[j] + qa1 = mynewa1s[j] + + # skip particles that are anyway too far away + dr = p - q + dr -= box * np.rint (dr / box) + if np.dot(dr, dr) > RC2: + continue + + # base site and backbone site of the two particles + p_pos_back = p + pa1 * POS_BACK + p_pos_base = p + pa1 * POS_BASE + q_pos_back = q + qa1 * POS_BACK + q_pos_base = q + qa1 * POS_BASE + + # check for no overlap between the two backbone sites + dr = p_pos_back - q_pos_back + dr -= box * np.rint (dr / box) + if np.dot(dr, dr) < RC2_BACK: + overlap = True + + # check for no overlap between the two base sites + dr = p_pos_base - q_pos_base + dr -= box * np.rint (dr / box) + if np.dot(dr, dr) < RC2_BASE: + overlap = True + + # check for no overlap between backbone site of particle p + # with base site of particle q + dr = p_pos_back - q_pos_base + dr -= box * np.rint (dr / box) + if np.dot(dr, dr) < RC2_BACK_BASE: + overlap = True + + # check for no overlap between base site of particle p and + # backbone site of particle q + dr = p_pos_base - q_pos_back + dr -= box * np.rint (dr / box) + if np.dot(dr, dr) < RC2_BACK_BASE: + overlap = True + + # exit if there is an overlap + if overlap: + return False + + # append to the existing list if no overlap is found + if not overlap: + + for p in mynewpositions: + positions.append(p) + for p in mynewa1s: + a1s.append (p) + for p in mynewa3s: + a3s.append (p) + # calculate quaternion from local body frame and append + for ia in range(len(mynewpositions)): + mynewquaternions = exyz_to_quat(mynewa1s[ia],mynewa3s[ia]) + quaternions.append(mynewquaternions) + + return True + +""" +Calculate angle of rotation site to site +""" +def get_angle(bp): + #n, minimal number of bases per turn + n = 10.5 + found = False + while found == False: + turns = bp/n + diff = abs( turns - round(turns)) + if diff < 0.03: + found = True + turns = round(turns)+lk + angle = (360*turns)/bp + angle = round (angle,2) + #angle =round( 360/n,2) + elif n > 11.5: + angle = 35.9 + found = True + else: + n += 0.02 + return angle + + +def get_angle2(bp): + turns = bp/N + lk + angle = (360*turns)/bp + + return angle + + + +""" +Returns the rotation matrix defined by an axis and angle +""" +def get_rotation_matrix(axis, anglest, nbp=0): + # The argument anglest can be either an angle in radiants + # (accepted types are float, int or np.float64 or np.float64) + # or a tuple [angle, units] where angle is a number and + # units is a string. It tells the routine whether to use degrees, + # radiants (the default) or base pairs turns. + if not isinstance (anglest, (np.float64, np.float32, float, int)): + if len(anglest) > 1: + if anglest[1] in ["degrees", "deg", "o"]: + angle = (np.pi / 180.) * (anglest[0]) + elif anglest[1] in ["bp"]: + if nbp == 0: + angle = int(anglest[0]) * (np.pi / 180.) * (35.9) + else: + ang = get_angle2(nbp) + angle = int(anglest[0]) * (np.pi / 180.) * (ang) + else: + angle = float(anglest[0]) + else: + angle = float(anglest[0]) + else: + angle = float(anglest) # in degrees (?) + + axis = np.array(axis) + axis /= np.sqrt(np.dot(axis, axis)) + + ct = np.cos(angle) + st = np.sin(angle) + olc = 1. - ct + x, y, z = axis + + return np.array([[olc*x*x+ct, olc*x*y-st*z, olc*x*z+st*y], + [olc*x*y+st*z, olc*y*y+ct, olc*y*z-st*x], + [olc*x*z-st*y, olc*y*z+st*x, olc*z*z+ct]]) + +""" +Generates the position and orientation vectors of a +(single or double) strand from a sequence string +""" +def generate_strand(bp, sequence=None, start_pos=np.array([0, 0, 0]), \ + dir=np.array([0, 0, 1]), perp=False, double=True, rot=0.): + # generate empty arrays + mynewpositions, mynewa1s, mynewa3s = [], [], [] + + # cast the provided start_pos array into a numpy array + start_pos = np.array(start_pos, dtype=float) + + # overall direction of the helix + dir = np.array(dir, dtype=float) + #if sequence == None: + # sequence = np.random.randint(1, 5, bp) + + # the elseif here is most likely redundant + #elif len(sequence) != bp: + # n = bp - len(sequence) + # sequence += np.random.randint(1, 5, n) + # print("sequence is too short, adding %d random bases" % n, file=sys.stderr) + + # normalize direction + dir_norm = np.sqrt(np.dot(dir,dir)) + if dir_norm < 1e-10: + print("direction must be a valid vector,\ + defaulting to (0, 0, 1)", file=sys.stderr) + dir = np.array([0, 0, 1]) + else: dir /= dir_norm + + # find a vector orthogonal to dir to act as helix direction, + # if not provided switch off random orientation + if perp is None or perp is False: + v1 = np.random.random_sample(3) + # comment in to suppress randomized base vector + v1 = [1,0,0] + v1 -= dir * (np.dot(dir, v1)) + v1 /= np.sqrt(sum(v1*v1)) + else: + v1 = perp; + + # generate rotational matrix representing the overall rotation of the helix + R0 = get_rotation_matrix(dir, rot) + + # rotation matrix corresponding to one step along the helix + R = get_rotation_matrix(dir, [1, "bp"],bp) + + # set the vector a1 (backbone to base) to v1 + a1 = v1 + + # apply the global rotation to a1 + a1 = np.dot(R0, a1) + + # set the position of the fist backbone site to start_pos + rb = np.array(start_pos) + + # set a3 to the direction of the helix + a3 = dir + + for i in range(bp): + # work out the position of the centre of mass of the nucleotide + rcom = rb - COM_CENTRE_DS * a1 + + # append to newpositions + mynewpositions.append(rcom) + mynewa1s.append(a1) + mynewa3s.append(a3) + + # if we are not at the end of the helix, we work out a1 and rb for the + # next nucleotide along the helix + if i != bp - 1: + a1 = np.dot(R, a1) + rb += a3 * BASE_BASE + + # if we are working on a double strand, we do a cycle similar + # to the previous one but backwards + if double == True: + a1 = -a1 + a3 = -dir + R = R.transpose() + for i in range(bp): + rcom = rb - COM_CENTRE_DS * a1 + mynewpositions.append (rcom) + mynewa1s.append (a1) + mynewa3s.append (a3) + a1 = np.dot(R, a1) + rb += a3 * BASE_BASE + + + #Calculate the positions of the bead wall + + last_base1 = mynewpositions[int( len(mynewpositions)/2 - 1) ] + last_base2 = mynewpositions[int( len(mynewpositions)/2) ] + mid_point = (last_base1 + last_base2) / 2 + + NN = N_BEADS**2 + p1 = [mid_point[0] - (N_BEADS-1)*WALL_PARTICLE_SIZE, mid_point[1] - (N_BEADS-1)*WALL_PARTICLE_SIZE, mid_point[2] + BEAD_OFFSET ] + for i in range(N_BEADS): + for j in range(N_BEADS): + position = [ p1[0] + 2*i*WALL_PARTICLE_SIZE, p1[1] + 2*j*WALL_PARTICLE_SIZE, p1[2]] + mynewa1s.append([1,0,0]) + mynewa3s.append([1,0,0]) + mynewpositions.append(position) + + assert (len (mynewpositions) > 0) + + return [mynewpositions, mynewa1s, mynewa3s] + + + +""" +Main function for this script. +Reads a text file with the following format: +- Each line contains the sequence for a single strand (A,C,G,T) +- Lines beginning with the keyword 'DOUBLE' produce double-stranded DNA + +Ex: Two ssDNA (single stranded DNA) +ATATATA +GCGCGCG + +Ex: Two strands, one double stranded, the other single stranded. +DOUBLE AGGGCT +CCTGTA + +""" + +def read_strands(filename): + try: + infile = open (filename) + except: + print("Could not open file '%s'. Aborting." % filename, file=sys.stderr) + sys.exit(2) + + # This block works out the number of nucleotides and strands by reading + # the number of non-empty lines in the input file and the number of letters, + # taking the possible DOUBLE keyword into account. + nstrands, nnucl, nbonds = 0, 0, 0 + lines = infile.readlines() + for line in lines: + line = line.upper().strip() + if len(line) == 0: + continue + if line[:6] == 'DOUBLE': + line = line.split()[1] + length = len(line) + print("## Found duplex of %i base pairs" % length, file=sys.stdout) + nnucl += 2*length + nstrands += 2 + nbonds+= 2*length + + else: + line = line.split()[0] + length = len(line) + print("## Found single strand of %i bases" % length, file=sys.stdout) + nnucl += length + nstrands += 1 + if topo == 'ring': + nbonds =+ length + else: + nbonds += length+1 + # rewind the sequence input file + infile.seek(0) + + print("## nstrands, nnucl = ", nstrands, nnucl, file=sys.stdout) + + # generate the data file in LAMMPS format + try: + out = open ("data.oxdna", "w") + except: + print("Could not open data file for writing. Aborting.", file=sys.stderr) + sys.exit(2) + + lines = infile.readlines() + nlines = len(lines) + i = 1 + myns = 0 + noffset = 1 + + for line in lines: + line = line.upper().strip() + + # skip empty lines + if len(line) == 0: + i += 1 + continue + + # block for duplexes: last argument of the generate function + # is set to 'True' + if line[:6] == 'DOUBLE': + line = line.split()[1] + length = len(line) + seq = [(base_to_number[x]) for x in line] + seq = np.array(seq,dtype=int) + n_a, n_c, n_g, n_t = 0, 0, 0, 0 + for s in range(seq.size): + if seq[s] == 1: + n_a += 1 + elif seq[s] == 2: + n_c += 1 + elif seq[s] ==3: + n_g += 1 + elif seq[s] == 4: + n_t += 1 + smallest_n_bases = n_c + if n_a < n_c: + smallest_n_bases = n_a + if smallest_n_bases > n_t: + smallest_n_bases = n_t + if smallest_n_bases > n_g: + smallest_n_bases = n_g + + if smallest_n_bases < N_BASE_TYPES: + print('## Not enough occurrences of base types in the sequence for ' + str(N_BASE_TYPES)) + print('## unique base types, switching to ' + str(smallest_n_bases) + ' unique types') + else: + smallest_n_bases = N_BASE_TYPES + + a, c, g, t = -3, -2, -1, 0 + for s in range(seq.size): + if seq[s] == 1: + if a < (smallest_n_bases*4-3): + a += 4 + else: + a = 1 + seq[s] = a + + elif seq[s] == 2: + if c < (smallest_n_bases*4-2): + c += 4 + else: + c = 2 + seq[s] = c + + elif seq[s] == 3: + if g < (smallest_n_bases*4-1): + g += 4 + else: + g = 3 + seq[s] = g + elif seq[s] == 4: + if t < (smallest_n_bases*4): + t += 4 + else: + t = 4 + seq[s] = t + + + + myns += 1 + + for b in range(length): + basetype.append(seq[b]) + strandnum.append(myns) + + for b in range(length-1): + bondpair = [noffset + b, noffset + b + 1] + bonds.append(bondpair) + + + noffset += length + + # create the sequence of the second strand as made of + # complementary bases + #seq2 = [5-s for s in seq] + seq2 = seq + for s in range(seq2.size): + if seq2[s]%4 == 1: + seq2[s] += 3 + elif seq2[s]%4 == 2: + seq2[s] += 1 + elif seq2[s]%4 == 3: + seq2[s] -= 1 + elif seq2[s]%4 == 0: + seq2[s] -= 3 + + #seq2.reverse() + + myns += 1 + + for b in range(length): + basetype.append(seq2[b]) + strandnum.append(myns) + + for b in range(length-1): + bondpair = [noffset + b, noffset + b + 1] + bonds.append(bondpair) + + + #create wall bead types + bead_type = 4*smallest_n_bases + 1 + for i in range(N_BEADS**2): + + basetype.append(bead_type) + basetype.append(bead_type) + strandnum.append(bead_type) + strandnum.append(bead_type) + #bonds.append([length, noffset + length]) + #bonds.append([length+1, noffset + length]) + + noffset += length + + print("## Created duplex of %i bases" % (2*length), file=sys.stdout) + + # generate random position of the first nucleotide + com = box_offset + np.random.random_sample(3) * box + # comment out to randomize + com = [0,0,0] + + # generate the random direction of the helix + axis = np.random.random_sample(3) + # comment out to randomize + axis = [0,0,1] + axis /= np.sqrt(np.dot(axis, axis)) + + # use the generate function defined above to create + # the position and orientation vector of the strand + if topo == 'ring': + newpositions, newa1s, newa3s = generate_ring(len(line), \ + sequence=seq, dir=axis, start_pos=com, double=True) + else: + newpositions, newa1s, newa3s = generate_strand(len(line), \ + sequence=seq, dir=axis, start_pos=com, double=True) + + # generate a new position for the strand until it does not overlap + # with anything already present + start = timer() + while not add_strands(newpositions, newa1s, newa3s): + com = box_offset + np.random.random_sample(3) * box + axis = np.random.random_sample(3) + axis /= np.sqrt(np.dot(axis, axis)) + if topo == 'ring': + newpositions, newa1s, newa3s = generate_ring(len(line), \ + sequence=seq, dir=axis, start_pos=com, double=True) + else: + newpositions, newa1s, newa3s = generate_strand(len(line), \ + sequence=seq, dir=axis, start_pos=com, double=True) + print("## Trying %i" % i, file=sys.stdout) + end = timer() + print("## Added duplex of %i bases (line %i/%i) in %.2fs, now at %i/%i" % \ + (2*length, i, nlines, end-start, len(positions), nnucl), file=sys.stdout) + + # block for single strands: last argument of the generate function + # is set to 'False' + else: + length = len(line) + seq = [(base_to_number[x]) for x in line] + + myns += 1 + for b in range(length): + basetype.append(seq[b]) + strandnum.append(myns) + + for b in range(length-1): + bondpair = [noffset + b, noffset + b + 1] + bonds.append(bondpair) + if topo == 'ring': + bondpair = [noffset, noffset + length-1] + bonds.append(bondpair) + noffset += length + + + # generate random position of the first nucleotide + com = box_offset + np.random.random_sample(3) * box + # comment out to randomize + com = [-30,0,0] + + # generate the random direction of the helix + axis = np.random.random_sample(3) + # comment out to randomize + axis = [0,0,1] + axis /= np.sqrt(np.dot(axis, axis)) + + print("## Created single strand of %i bases" % length, file=sys.stdout) + if topo == 'ring': + newpositions, newa1s, newa3s = generate_ring(length, \ + sequence=seq, dir=axis, start_pos=com, double=False) + else: + newpositions, newa1s, newa3s = generate_strand(length, \ + sequence=seq, dir=axis, start_pos=com, double=False) + start = timer() + while not add_strands(newpositions, newa1s, newa3s): + com = box_offset + np.random.random_sample(3) * box + axis = np.random.random_sample(3) + axis /= np.sqrt(np.dot(axis, axis)) + if topo == 'ring': + newpositions, newa1s, newa3s = generate_ring(length, \ + sequence=seq, dir=axis, start_pos=com, double=False) + + else: + newpositions, newa1s, newa3s = generate_strand(length, \ + sequence=seq, dir=axis, start_pos=com, double=False) + print("## Trying %i" % (i), file=sys.stdout) + end = timer() + print("## Added single strand of %i bases (line %i/%i) in %.2fs, now at %i/%i" % \ + (length, i, nlines, end-start,len(positions), nnucl), file=sys.stdout) + + i += 1 + + # sanity check + #if not len(positions) == nnucl: + # print(len(positions), nnucl) + # raise AssertionError + nnucl = nnucl + (N_BEADS**2) + nbonds -= 4 + + out.write('# LAMMPS data file\n') + out.write('%d atoms\n' % nnucl) + out.write('%d ellipsoids\n' % nnucl) + out.write('%d bonds\n' % nbonds) + out.write('\n') + out.write('%d atom types\n' %bead_type ) + out.write('1 bond types\n') + out.write('\n') + out.write('# System size\n') + out.write('%f %f xlo xhi\n' % (box_offset,box_offset+box_length)) + out.write('%f %f ylo yhi\n' % (box_offset,box_offset+box_length)) + out.write('%f %f zlo zhi\n' % (0,box_length)) + + #out.write('\n') + #out.write('Masses\n') + #out.write('\n') + #out.write('1 3.1575\n') + #out.write('2 3.1575\n') + #out.write('3 3.1575\n') + #out.write('4 3.1575\n') + #out.write('5 3.1575\n') + + # for each nucleotide print a line under the headers + # Atoms, Velocities, Ellipsoids and Bonds + out.write('\n') + out.write(\ + '# Atom-ID, type, position, molecule-ID, ellipsoid flag, density\n') + out.write('Atoms\n') + out.write('\n') + + for i in range(nnucl): + out.write('%d %d %22.15le %22.15le %22.15le %d 1 1\n' \ + % (i+1, basetype[i], \ + positions[i][0], positions[i][1], positions[i][2], \ + strandnum[i])) + + out.write('\n') + out.write('# Atom-ID, translational, rotational velocity\n') + out.write('Velocities\n') + out.write('\n') + + for i in range(nnucl): + out.write("%d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le\n" \ + % (i+1,0.0,0.0,0.0,0.0,0.0,0.0)) + + out.write('\n') + out.write('# Atom-ID, shape, quaternion\n') + out.write('Ellipsoids\n') + out.write('\n') + + for i in range(nnucl): + out.write(\ + "%d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le\n" \ + % (i+1,1.1739845031423408,1.1739845031423408,1.1739845031423408, \ + quaternions[i][0],quaternions[i][1], quaternions[i][2],quaternions[i][3])) + + out.write('\n') + out.write('# Bond topology\n') + out.write('Bonds\n') + out.write('\n') + + for i in range(nbonds): + if i < nbonds-2: + out.write("%d %d %d %d\n" % (i+1,1,bonds[i][0],bonds[i][1])) + #else: + + #out.write("%d %d %d %d\n" % (i+1,2,bonds[i][0],bonds[i][1])) + + out.close() + + print("## Wrote data to 'data.oxdna'", file=sys.stdout) + print("## DONE", file=sys.stdout) + +# call the above main() function, which executes the program +read_strands (infile) + +end_time=timer() +runtime = end_time-start_time +hours = runtime/3600 +minutes = (runtime-np.rint(hours)*3600)/60 +seconds = (runtime-np.rint(hours)*3600-np.rint(minutes)*60)%60 +print("## Total runtime %ih:%im:%.2fs" % (hours,minutes,seconds), file=sys.stdout) diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.4type b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.4type new file mode 100644 index 0000000000..f88547c423 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.4type @@ -0,0 +1,87 @@ +variable number equal 4 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 4 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.4type + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} + variable basemod equal ${base}%4 + if "${basemod} == 1" then & + "variable comp equal ${base}+3" & + "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then & + "variable comp equal ${base}+1" & + "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.8type b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.8type new file mode 100644 index 0000000000..c3bf6ee207 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/in.duplex4.8type @@ -0,0 +1,87 @@ +variable number equal 8 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 8 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.8type + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass + +group all type 1 4 + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} + variable basemod equal ${base}%4 + if "${basemod} == 1" then & + "variable comp equal ${base}+3" & + "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then & + "variable comp equal ${base}+1" & + "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 new file mode 100644 index 0000000000..c468ee24ff --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 26 atoms + reading velocities ... + 26 velocities + scanning bonds ... + 1 = max bonds/atom + 26 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 24 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 26 settings made for mass +26 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 +Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 299.91159 -228.12763 5.3145589 -200.46358 0.037365999 39304000 +1000 ekin = 22.8379863364631 | erot = 20.8727077214658 | epot = -223.40247948455 | etot = -179.691785426621 +2000 ekin = 22.7811305214841 | erot = 22.642319354707 | epot = -224.256117760205 | etot = -178.832667884014 +3000 ekin = 23.3007102476489 | erot = 24.7866780853993 | epot = -225.012681837824 | etot = -176.925293504776 +4000 ekin = 22.7903421051578 | erot = 24.569247173836 | epot = -225.53962239349 | etot = -178.180033114497 +5000 ekin = 22.19925646023 | erot = 25.6289473462429 | epot = -225.721034396187 | etot = -177.892830589714 +6000 ekin = 22.3860723428343 | erot = 25.7078570981677 | epot = -225.520727206183 | etot = -177.426797765181 +7000 ekin = 22.6093903901514 | erot = 24.8279594754098 | epot = -225.139767140542 | etot = -177.702417274981 +8000 ekin = 22.3366506221221 | erot = 25.3490822995746 | epot = -224.659830672346 | etot = -176.97409775065 +9000 ekin = 22.1017491922176 | erot = 23.8561173282126 | epot = -224.102470196007 | etot = -178.144603675577 +10000 ekin = 21.3469487217786 | erot = 23.034985278251 | epot = -223.591750396367 | etot = -179.209816396337 +11000 ekin = 20.5717104541852 | erot = 24.8615565294047 | epot = -223.484019303241 | etot = -178.050752319652 +12000 ekin = 20.411935484151 | erot = 25.1271441409211 | epot = -223.751373801975 | etot = -178.212294176903 +13000 ekin = 20.2798810279148 | erot = 24.281806390477 | epot = -224.390777503839 | etot = -179.829090085447 +14000 ekin = 19.6242363441233 | erot = 26.8542751690783 | epot = -225.215820819941 | etot = -178.73730930674 +15000 ekin = 20.0818097074935 | erot = 29.2937195480841 | epot = -226.167773981604 | etot = -176.792244726026 +16000 ekin = 19.6823418822516 | erot = 30.3811175824271 | epot = -227.408076260742 | etot = -177.344616796063 +17000 ekin = 19.5450698280734 | erot = 32.5391774659612 | epot = -228.808347823448 | etot = -176.724100529413 +18000 ekin = 20.0756319264279 | erot = 33.5672084608192 | epot = -230.110512386278 | etot = -176.467671999031 +19000 ekin = 19.6603874622079 | erot = 32.528542938808 | epot = -231.207417420873 | etot = -179.018487019857 +20000 ekin = 19.5984395633796 | erot = 31.3606067961676 | epot = -232.171981685224 | etot = -181.212935325677 +21000 ekin = 19.8375798064082 | erot = 31.8939937172914 | epot = -232.880097232772 | etot = -181.148523709072 +22000 ekin = 19.9286085655832 | erot = 30.5391742384594 | epot = -233.322303895413 | etot = -182.85452109137 +23000 ekin = 20.1661434732298 | erot = 30.6973170954371 | epot = -233.687536932121 | etot = -182.824076363455 +24000 ekin = 20.5065436368894 | erot = 30.0297091428477 | epot = -233.956998583432 | etot = -183.420745803695 +25000 ekin = 20.529858609709 | erot = 27.1945410830961 | epot = -233.994416252181 | etot = -186.270016559376 +26000 ekin = 20.699035687076 | erot = 29.09174515188 | epot = -233.720969470337 | etot = -183.930188631381 +27000 ekin = 20.7350777764672 | erot = 28.5961324745054 | epot = -233.307821216305 | etot = -183.976610965332 +28000 ekin = 21.1532240716935 | erot = 27.7486079543453 | epot = -232.966688262262 | etot = -184.064856236223 +29000 ekin = 21.3118506902676 | erot = 25.736471201621 | epot = -232.759622611367 | etot = -185.711300719478 +30000 ekin = 20.9513131899827 | erot = 26.876741160358 | epot = -232.673474007172 | etot = -184.845419656831 +31000 ekin = 21.3216486612277 | erot = 26.2777465254033 | epot = -232.609223688159 | etot = -185.009828501528 +32000 ekin = 22.0969166841928 | erot = 24.7959897585166 | epot = -232.612526553891 | etot = -185.719620111181 +33000 ekin = 22.875370966078 | erot = 24.1467590540463 | epot = -232.688992091586 | etot = -185.666862071462 +34000 ekin = 23.5405053823873 | erot = 22.7415684492007 | epot = -232.615611352503 | etot = -186.333537520915 +35000 ekin = 23.7257555349787 | erot = 26.8191624133874 | epot = -232.23498680623 | etot = -181.690068857864 +36000 ekin = 23.2515945340346 | erot = 23.8280794869285 | epot = -231.753024246269 | etot = -184.673350225306 +37000 ekin = 23.8513426401361 | erot = 25.6368246142449 | epot = -231.060980894716 | etot = -181.572813640335 +38000 ekin = 23.8781935722645 | erot = 22.7747736894791 | epot = -230.152104757751 | etot = -183.499137496008 +39000 ekin = 23.3884393320053 | erot = 22.6925700673075 | epot = -229.140534316443 | etot = -183.05952491713 +40000 ekin = 22.7413687353909 | erot = 21.4736378452411 | epot = -228.265631373339 | etot = -184.050624792707 +41000 ekin = 23.2348935054145 | erot = 21.0108525021673 | epot = -227.75573531584 | etot = -183.509989308258 +42000 ekin = 23.3940171890425 | erot = 22.1904243568237 | epot = -227.643506146239 | etot = -182.059064600373 +43000 ekin = 23.2681022018539 | erot = 21.7837756583263 | epot = -227.855518729869 | etot = -182.803640869689 +44000 ekin = 23.5393535337972 | erot = 20.7730908198455 | epot = -228.246566278463 | etot = -183.93412192482 +45000 ekin = 24.1405649747358 | erot = 20.1728652780817 | epot = -228.807425059799 | etot = -184.493994806982 +46000 ekin = 24.585245817982 | erot = 21.0236670642408 | epot = -229.213686304167 | etot = -183.604773421944 +47000 ekin = 24.1560413910622 | erot = 19.6811193727542 | epot = -229.413234324251 | etot = -185.576073560435 +48000 ekin = 23.5246878727431 | erot = 19.721180663017 | epot = -229.434759182691 | etot = -186.188890646931 +49000 ekin = 23.1670415745661 | erot = 22.5501021659482 | epot = -229.177266193688 | etot = -183.460122453174 +50000 ekin = 22.8223612259816 | erot = 22.567605149626 | epot = -228.600859944765 | etot = -183.210893569157 +51000 ekin = 22.9120987888545 | erot = 21.0527888961203 | epot = -227.77037262561 | etot = -183.805484940635 +52000 ekin = 22.187626079843 | erot = 20.5194847365121 | epot = -226.835169897986 | etot = -184.128059081631 +53000 ekin = 21.3650052806676 | erot = 20.2770735131344 | epot = -225.807155710179 | etot = -184.165076916377 +54000 ekin = 20.4303417025859 | erot = 17.9973021512008 | epot = -224.896097666587 | etot = -186.468453812801 +55000 ekin = 19.714913763396 | erot = 18.5590407326034 | epot = -224.06259658443 | etot = -185.788642088431 +56000 ekin = 19.685159503242 | erot = 20.0732971833202 | epot = -223.279023832763 | etot = -183.520567146201 +57000 ekin = 19.060196259904 | erot = 18.256095629202 | epot = -222.84333391372 | etot = -185.527042024614 +58000 ekin = 18.5841091049986 | erot = 19.1515036320309 | epot = -222.696024269362 | etot = -184.960411532333 +59000 ekin = 18.0414625414599 | erot = 18.2275847003703 | epot = -222.821981249891 | etot = -186.55293400806 +60000 ekin = 18.2103913071538 | erot = 18.4755642418172 | epot = -223.234305836724 | etot = -186.548350287753 +61000 ekin = 17.9869947125514 | erot = 22.4458503852164 | epot = -223.797760245785 | etot = -183.364915148017 +62000 ekin = 18.1431070502485 | erot = 21.7652022985207 | epot = -224.318306232552 | etot = -184.409996883783 +63000 ekin = 17.973357520257 | erot = 21.6688824771829 | epot = -224.735623623494 | etot = -185.093383626054 +64000 ekin = 17.8102495654737 | erot = 21.8723940899094 | epot = -225.323991291355 | etot = -185.641347635972 +65000 ekin = 18.0338529130483 | erot = 22.1181740951059 | epot = -225.877150411024 | etot = -185.72512340287 +66000 ekin = 18.1822893834801 | erot = 21.7465005263719 | epot = -226.185684363613 | etot = -186.256894453761 +67000 ekin = 18.5240194292997 | erot = 23.3964917870366 | epot = -226.365163861592 | etot = -184.444652645256 +68000 ekin = 18.5155376828975 | erot = 20.9719183620335 | epot = -226.451473665725 | etot = -186.964017620794 +69000 ekin = 18.6323014683072 | erot = 20.588171070637 | epot = -226.648083130375 | etot = -187.427610591431 +70000 ekin = 19.5343933745558 | erot = 17.5472322005953 | epot = -226.977679956235 | etot = -189.896054381084 +71000 ekin = 20.2276605685904 | erot = 16.3663260398183 | epot = -227.393323574632 | etot = -190.799336966224 +72000 ekin = 20.3130284812279 | erot = 16.4497414610662 | epot = -228.013381961156 | etot = -191.250612018862 +73000 ekin = 21.0477998518383 | erot = 15.4406791831341 | epot = -228.675590564562 | etot = -192.187111529589 +74000 ekin = 21.7371512650598 | erot = 17.5352725761175 | epot = -229.494527276336 | etot = -190.222103435159 +75000 ekin = 22.6680122759915 | erot = 18.5419401178599 | epot = -230.463408123768 | etot = -189.253455729917 +76000 ekin = 23.0346115082234 | erot = 19.8636379382539 | epot = -231.254905942531 | etot = -188.356656496053 +77000 ekin = 23.2797429827865 | erot = 19.7434715156692 | epot = -231.721208677509 | etot = -188.697994179053 +78000 ekin = 23.4106393811464 | erot = 19.4211385461251 | epot = -231.892259154973 | etot = -189.060481227701 +79000 ekin = 23.4632537757978 | erot = 18.8653049537082 | epot = -231.690998177985 | etot = -189.362439448479 +80000 ekin = 23.3884971334889 | erot = 18.1174271773692 | epot = -231.118174876358 | etot = -189.6122505655 +81000 ekin = 23.5022754315906 | erot = 17.1755695884554 | epot = -230.398467043008 | etot = -189.720622022962 +82000 ekin = 23.0472842217945 | erot = 17.2373445724549 | epot = -229.638468243904 | etot = -189.353839449655 +83000 ekin = 21.5042588722365 | erot = 16.786367445308 | epot = -228.921540236372 | etot = -190.630913918827 +84000 ekin = 22.1329940094216 | erot = 16.2632055631471 | epot = -228.335250260719 | etot = -189.93905068815 +85000 ekin = 20.9154057430379 | erot = 16.6557644544218 | epot = -227.803085954943 | etot = -190.231915757484 +86000 ekin = 20.6981517687592 | erot = 18.6120855140407 | epot = -227.283699712715 | etot = -187.973462429915 +87000 ekin = 20.7059776963377 | erot = 18.1357410469598 | epot = -226.805480829165 | etot = -187.963762085867 +88000 ekin = 20.5112535017457 | erot = 17.8809983821762 | epot = -226.459696318129 | etot = -188.067444434207 +89000 ekin = 20.6525596514182 | erot = 20.4133880492623 | epot = -226.205468820861 | etot = -185.139521120181 +90000 ekin = 20.695293192409 | erot = 20.3370512782838 | epot = -225.953852764959 | etot = -184.921508294267 +91000 ekin = 19.7682690703159 | erot = 23.8787808356902 | epot = -225.655385288229 | etot = -182.008335382223 +92000 ekin = 19.6828792607911 | erot = 22.5766537107148 | epot = -225.535582585193 | etot = -183.276049613687 +93000 ekin = 19.3048520995758 | erot = 20.6317228268703 | epot = -225.547774602348 | etot = -185.611199675902 +94000 ekin = 19.028411935034 | erot = 20.0568093447086 | epot = -225.530355910562 | etot = -186.445134630819 +95000 ekin = 18.5452655948058 | erot = 22.9286015621929 | epot = -225.523849045322 | etot = -184.049981888323 +96000 ekin = 18.3728256439782 | erot = 25.039495486179 | epot = -225.537862748503 | etot = -182.125541618346 +97000 ekin = 17.9426894203414 | erot = 28.5848563795549 | epot = -225.638824537989 | etot = -179.111278738092 +98000 ekin = 17.5850264746273 | erot = 26.5739649306284 | epot = -225.648647927869 | etot = -181.489656522613 +99000 ekin = 17.3808762582936 | erot = 24.7289180187015 | epot = -225.594130307751 | etot = -183.484336030756 +100000 ekin = 17.3273680270292 | erot = 22.7273796979409 | epot = -225.299321148282 | etot = -185.244573423312 +101000 ekin = 17.0042319903592 | erot = 20.8052793029198 | epot = -225.102935121042 | etot = -187.293423827763 +102000 ekin = 17.05502613973 | erot = 21.316603586839 | epot = -224.890904735916 | etot = -186.519275009347 +103000 ekin = 17.2263904973081 | erot = 20.3710964353458 | epot = -224.753273552475 | etot = -187.155786619821 +104000 ekin = 16.7943747317823 | erot = 21.7185799033818 | epot = -224.555386740442 | etot = -186.042432105278 +105000 ekin = 16.6865175024786 | erot = 20.0200455556502 | epot = -224.47221260965 | etot = -187.765649551522 +106000 ekin = 16.5925867843767 | erot = 21.7048075291456 | epot = -224.380087441128 | etot = -186.082693127606 +107000 ekin = 17.2054452998434 | erot = 22.6546685111546 | epot = -224.481631442089 | etot = -184.621517631091 +108000 ekin = 16.9267033337673 | erot = 23.5631418034102 | epot = -224.898081411902 | etot = -184.408236274724 +109000 ekin = 17.3821452346864 | erot = 25.9049365088352 | epot = -225.621226955643 | etot = -182.334145212121 +110000 ekin = 17.5124448065073 | erot = 27.8801611895846 | epot = -226.410419972689 | etot = -181.017813976598 +111000 ekin = 18.5487245393564 | erot = 25.6736058140268 | epot = -227.167416210036 | etot = -182.945085856652 +112000 ekin = 19.8365999588111 | erot = 24.2751230291775 | epot = -227.944028021488 | etot = -183.832305033499 +113000 ekin = 20.1722859000849 | erot = 25.3603047130775 | epot = -228.958826647654 | etot = -183.426236034491 +114000 ekin = 20.2870180696113 | erot = 25.6800990417157 | epot = -230.17458939254 | etot = -184.207472281213 +115000 ekin = 21.3318566501428 | erot = 27.1697329853562 | epot = -231.444909631325 | etot = -182.943319995826 +116000 ekin = 22.4210844135644 | erot = 26.004420936002 | epot = -232.710476417833 | etot = -184.284971068267 +117000 ekin = 24.3405871824212 | erot = 25.2077444956265 | epot = -233.933190998453 | etot = -184.384859320406 +118000 ekin = 25.0884094969948 | erot = 26.5527557651617 | epot = -235.048390081924 | etot = -183.407224819767 +119000 ekin = 25.4315051787003 | erot = 26.1546643641889 | epot = -235.858317413788 | etot = -184.272147870899 +120000 ekin = 24.9629495355357 | erot = 25.2895225128999 | epot = -236.253529746916 | etot = -186.00105769848 +121000 ekin = 26.094755391151 | erot = 26.5212744850534 | epot = -236.079647472315 | etot = -183.46361759611 +122000 ekin = 26.1701918491875 | erot = 24.3510759857483 | epot = -235.493876868904 | etot = -184.972609033969 +123000 ekin = 26.4005875446556 | erot = 20.1865632708939 | epot = -234.709375372604 | etot = -188.122224557054 +124000 ekin = 26.3381579249386 | erot = 19.6639335950121 | epot = -233.989222703183 | etot = -187.987131183233 +125000 ekin = 25.4027453417305 | erot = 19.6503648681598 | epot = -233.10224654375 | etot = -188.04913633386 +126000 ekin = 25.3255704653777 | erot = 20.0698371771056 | epot = -232.162556032928 | etot = -186.767148390445 +127000 ekin = 25.0742564529078 | erot = 19.3577482138169 | epot = -231.22010681212 | etot = -186.788102145396 +128000 ekin = 24.1452145463861 | erot = 20.722592883018 | epot = -230.30707206278 | etot = -185.439264633376 +129000 ekin = 24.1836343798902 | erot = 21.1668068192837 | epot = -229.557734556381 | etot = -184.207293357207 +130000 ekin = 23.6272916857115 | erot = 21.0608635320181 | epot = -228.86842777514 | etot = -184.180272557411 +131000 ekin = 23.7733250641655 | erot = 21.7026182128681 | epot = -228.196470483987 | etot = -182.720527206954 +132000 ekin = 22.235523086447 | erot = 22.2423990709498 | epot = -227.377132642704 | etot = -182.899210485307 +133000 ekin = 21.7697258915644 | erot = 21.0688536119307 | epot = -226.678873870809 | etot = -183.840294367314 +134000 ekin = 22.0334013998118 | erot = 23.6876876537064 | epot = -226.110477401204 | etot = -180.389388347686 +135000 ekin = 21.2888725174031 | erot = 23.8731522967533 | epot = -225.586596896472 | etot = -180.424572082316 +136000 ekin = 21.1112833844234 | erot = 23.1441906006998 | epot = -225.02986093909 | etot = -180.774386953966 +137000 ekin = 20.3417544623754 | erot = 19.8373378818128 | epot = -224.306720617089 | etot = -184.127628272901 +138000 ekin = 20.6378655675457 | erot = 20.7041461431297 | epot = -223.935090515208 | etot = -182.593078804533 +139000 ekin = 20.6358768684418 | erot = 19.6349119675149 | epot = -223.695388728766 | etot = -183.42459989281 +140000 ekin = 21.2970180334091 | erot = 20.9859430093584 | epot = -223.44632370732 | etot = -181.163362664552 +141000 ekin = 20.7458666897953 | erot = 22.008168038219 | epot = -223.471675354103 | etot = -180.717640626089 +142000 ekin = 21.6581543402664 | erot = 22.1925330545729 | epot = -223.759999018087 | etot = -179.909311623248 +143000 ekin = 22.137676382598 | erot = 19.8438720355801 | epot = -223.992076444275 | etot = -182.010528026097 +144000 ekin = 21.4512214487569 | erot = 21.2911862274696 | epot = -224.211315350262 | etot = -181.468907674035 +145000 ekin = 21.1677590228455 | erot = 20.1765379829327 | epot = -224.433855912986 | etot = -183.089558907207 +146000 ekin = 21.2954143160548 | erot = 22.315786511802 | epot = -224.708745433142 | etot = -181.097544605285 +147000 ekin = 20.9304440285978 | erot = 24.2948847043021 | epot = -224.826442145057 | etot = -179.601113412157 +148000 ekin = 20.9920002123677 | erot = 25.1867007165295 | epot = -225.027893064869 | etot = -178.849192135972 +149000 ekin = 20.4937916688861 | erot = 25.3412194127539 | epot = -225.235228138764 | etot = -179.400217057124 +150000 ekin = 20.240788496008 | erot = 24.5936585831824 | epot = -225.22294490262 | etot = -180.38849782343 +151000 ekin = 20.1765587397768 | erot = 23.3198992588029 | epot = -224.965480891794 | etot = -181.469022893215 +152000 ekin = 19.9049224846628 | erot = 22.8007918896868 | epot = -224.714024114794 | etot = -182.008309740445 +153000 ekin = 20.2049676657018 | erot = 22.194787629535 | epot = -224.584122527196 | etot = -182.184367231959 +154000 ekin = 20.2787333086907 | erot = 23.5668471416538 | epot = -224.632505362968 | etot = -180.786924912624 +155000 ekin = 20.54327508537 | erot = 21.0208344632846 | epot = -225.11524693997 | etot = -183.551137391316 +156000 ekin = 21.1891534249123 | erot = 21.9641402966851 | epot = -225.922181500193 | etot = -182.768887778596 +157000 ekin = 21.9241933405022 | erot = 22.2820243127273 | epot = -226.791928428935 | etot = -182.585710775706 +158000 ekin = 22.1128564636274 | erot = 21.6071323400673 | epot = -227.681294121914 | etot = -183.961305318219 +159000 ekin = 21.9706527338173 | erot = 23.0889220586676 | epot = -228.293622590392 | etot = -183.234047797907 +160000 ekin = 22.1766068917265 | erot = 24.537009024834 | epot = -228.724261272436 | etot = -182.010645355876 +161000 ekin = 22.2585263955668 | erot = 26.3988206054411 | epot = -229.153198320277 | etot = -180.495851319269 +162000 ekin = 23.9956799056614 | erot = 29.0208643540612 | epot = -229.511788677983 | etot = -176.49524441826 +163000 ekin = 24.0427671853836 | erot = 28.5149092203014 | epot = -229.882700364651 | etot = -177.325023958966 +164000 ekin = 24.6404986309622 | erot = 29.8954353563838 | epot = -230.05653220386 | etot = -175.520598216514 +165000 ekin = 25.37837451169 | erot = 29.3458474374449 | epot = -230.021956695543 | etot = -175.297734746409 +166000 ekin = 24.5018301159861 | erot = 27.0572013521953 | epot = -229.807404132493 | etot = -178.248372664311 +167000 ekin = 24.3635902860623 | erot = 25.1004090825066 | epot = -229.418996399617 | etot = -179.954997031048 +168000 ekin = 24.0782799291434 | erot = 23.6106192667051 | epot = -228.790493183835 | etot = -181.101593987986 +169000 ekin = 23.5408370855421 | erot = 21.779214731184 | epot = -228.096753694582 | etot = -182.776701877856 +170000 ekin = 23.3042056991829 | erot = 22.5887621937051 | epot = -227.644704595797 | etot = -181.751736702909 +171000 ekin = 23.1139069856327 | erot = 25.56161061645 | epot = -227.386750672406 | etot = -178.711233070323 +172000 ekin = 22.4125455911307 | erot = 23.9879390948077 | epot = -227.478440821498 | etot = -181.07795613556 +173000 ekin = 21.1650772689554 | erot = 24.037053824746 | epot = -228.027795739756 | etot = -182.825664646054 +174000 ekin = 21.5377174768009 | erot = 25.6623168386594 | epot = -228.810113267544 | etot = -181.610078952084 +175000 ekin = 21.2673885173618 | erot = 25.3358091366212 | epot = -229.601669873776 | etot = -182.998472219792 +176000 ekin = 22.0549078764628 | erot = 25.1987886573552 | epot = -230.199173516198 | etot = -182.94547698238 +177000 ekin = 22.1952451140842 | erot = 26.2074019384157 | epot = -230.449490408395 | etot = -182.046843355895 +178000 ekin = 22.6474601747908 | erot = 23.8569097796671 | epot = -230.486903876126 | etot = -183.982533921668 +179000 ekin = 22.5332951614051 | erot = 24.1586648743825 | epot = -230.249582873377 | etot = -183.55762283759 +180000 ekin = 22.9130954884035 | erot = 22.1104613694639 | epot = -229.757677624187 | etot = -184.73412076632 +181000 ekin = 22.5830672584554 | erot = 20.450357914035 | epot = -229.205005015184 | etot = -186.171579842693 +182000 ekin = 21.7744390453032 | erot = 20.3565453634741 | epot = -228.578765211469 | etot = -186.447780802691 +183000 ekin = 21.3156414739578 | erot = 21.1055168403748 | epot = -227.936610643158 | etot = -185.515452328825 +184000 ekin = 21.4060237522632 | erot = 20.8540585363569 | epot = -227.278789217958 | etot = -185.018706929338 +185000 ekin = 21.4522029742182 | erot = 19.9268287024307 | epot = -226.747540479433 | etot = -185.368508802785 +186000 ekin = 21.1983246906017 | erot = 21.4683722301386 | epot = -226.354347511139 | etot = -183.687650590399 +187000 ekin = 19.690535005356 | erot = 21.6640179195446 | epot = -225.994223499083 | etot = -184.639670574183 +188000 ekin = 19.3802922890703 | erot = 20.3716521999867 | epot = -225.572007065283 | etot = -185.820062576226 +189000 ekin = 18.4695751736414 | erot = 20.9528614806743 | epot = -225.247637250638 | etot = -185.825200596322 +190000 ekin = 17.4681116945173 | erot = 22.2496740454142 | epot = -224.805249640785 | etot = -185.087463900853 +191000 ekin = 16.6191337946719 | erot = 21.4193312202814 | epot = -224.294610310801 | etot = -186.256145295848 +192000 ekin = 16.0143800470349 | erot = 23.3693680596585 | epot = -223.718710211147 | etot = -184.334962104454 +193000 ekin = 15.7997901257216 | erot = 22.8225508042988 | epot = -223.089938646114 | etot = -184.467597716093 +194000 ekin = 15.2217453118598 | erot = 22.7325306996813 | epot = -222.625275149846 | etot = -184.670999138305 +195000 ekin = 15.1719099531695 | erot = 22.4876618724485 | epot = -222.099560622719 | etot = -184.439988797101 +196000 ekin = 15.3343672188822 | erot = 20.7775889118734 | epot = -221.597631501452 | etot = -185.485675370697 +197000 ekin = 14.766048091889 | erot = 19.7842334059676 | epot = -221.252213948545 | etot = -186.701932450688 +198000 ekin = 14.7770693853773 | erot = 20.3688380244553 | epot = -220.957884756875 | etot = -185.811977347042 +199000 ekin = 14.6937058517326 | erot = 22.6205548299113 | epot = -220.829895321234 | etot = -183.51563463959 +200000 ekin = 15.8653653492245 | erot = 20.8741496651364 | epot = -220.921168840223 | etot = -184.181653825862 +201000 ekin = 16.8728289108128 | erot = 23.0954953178473 | epot = -221.24134564708 | etot = -181.27302141842 +202000 ekin = 17.1574797353138 | erot = 22.285557506037 | epot = -221.513124761678 | etot = -182.070087520327 +203000 ekin = 18.4748883214853 | erot = 21.1472224923989 | epot = -221.731230109427 | etot = -182.109119295543 +204000 ekin = 19.2325496005105 | erot = 20.9923779560698 | epot = -221.821935938326 | etot = -181.597008381746 +205000 ekin = 18.4255902998036 | erot = 21.6289651382083 | epot = -222.10565061528 | etot = -182.051095177268 +206000 ekin = 18.5468871013068 | erot = 22.2892911055978 | epot = -222.480026344849 | etot = -181.643848137944 +207000 ekin = 18.9799810220236 | erot = 25.3769178031176 | epot = -222.656627081049 | etot = -178.299728255907 +208000 ekin = 18.985044800951 | erot = 26.4647809474189 | epot = -222.71751731042 | etot = -177.26769156205 +209000 ekin = 19.7564462509297 | erot = 23.7060464556116 | epot = -222.835034583459 | etot = -179.372541876917 +210000 ekin = 18.930059047627 | erot = 21.9791265973624 | epot = -222.75013900049 | etot = -181.840953355501 +211000 ekin = 19.3637206258675 | erot = 20.2144155977342 | epot = -222.884011041863 | etot = -183.305874818262 +212000 ekin = 18.6127906086045 | erot = 18.7836957734051 | epot = -223.131977986675 | etot = -185.735491604666 +213000 ekin = 18.6207275953171 | erot = 18.079576040676 | epot = -223.568944156785 | etot = -186.868640520792 +214000 ekin = 18.0525593583566 | erot = 20.9785428305194 | epot = -224.281741393784 | etot = -185.250639204908 +215000 ekin = 18.4181697813342 | erot = 21.5844731751551 | epot = -225.36589716156 | etot = -185.363254205071 +216000 ekin = 18.1283838147148 | erot = 26.0258037718262 | epot = -226.609028691632 | etot = -182.454841105091 +217000 ekin = 18.5976564529797 | erot = 25.2672310084213 | epot = -227.604708371557 | etot = -183.739820910156 +218000 ekin = 18.6146376310641 | erot = 23.8235521999893 | epot = -228.575434081834 | etot = -186.13724425078 +219000 ekin = 19.3665245563789 | erot = 24.0423091654174 | epot = -229.487172233029 | etot = -186.078338511233 +220000 ekin = 19.0674806968353 | erot = 24.8437141420456 | epot = -230.380897501689 | etot = -186.469702662808 +221000 ekin = 18.7605746437215 | erot = 26.6882095060636 | epot = -231.213347501054 | etot = -185.764563351269 +222000 ekin = 18.2601086357985 | erot = 26.2872383665376 | epot = -231.899871459307 | etot = -187.352524456971 +223000 ekin = 18.450698620632 | erot = 26.0465542803085 | epot = -232.337267696155 | etot = -187.840014795214 +224000 ekin = 18.9891330599031 | erot = 27.8638375428931 | epot = -232.528415379388 | etot = -185.675444776592 +225000 ekin = 19.4927747283068 | erot = 25.801864264556 | epot = -232.780900379235 | etot = -187.486261386372 +226000 ekin = 19.1531460973279 | erot = 30.4806630263034 | epot = -233.077183634691 | etot = -183.44337451106 +227000 ekin = 18.60714463341 | erot = 30.1777908886287 | epot = -232.964109027209 | etot = -184.179173505171 +228000 ekin = 18.4858074214198 | erot = 31.561135296702 | epot = -232.632194016111 | etot = -182.585251297989 +229000 ekin = 18.121165512591 | erot = 31.2764316650807 | epot = -232.253052683513 | etot = -182.855455505842 +230000 ekin = 17.8908234673042 | erot = 27.5438052529654 | epot = -231.968720310839 | etot = -186.534091590569 +231000 ekin = 17.4046011153877 | erot = 24.8124690524392 | epot = -231.614857480412 | etot = -189.397787312585 +232000 ekin = 16.726949239043 | erot = 25.4479901290198 | epot = -231.298988676823 | etot = -189.12404930876 +233000 ekin = 17.4181301789806 | erot = 25.6698394160172 | epot = -231.284274641405 | etot = -188.196305046407 +234000 ekin = 17.2837229866899 | erot = 24.7490838826286 | epot = -231.292369116174 | etot = -189.259562246856 +235000 ekin = 17.8418429383167 | erot = 21.8691418097328 | epot = -231.251575822849 | etot = -191.5405910748 +236000 ekin = 18.2280444396042 | erot = 22.4776949586945 | epot = -231.507293467971 | etot = -190.801554069672 +237000 ekin = 17.5170325906195 | erot = 23.8831905837694 | epot = -232.09911142057 | etot = -190.698888246182 +238000 ekin = 17.5370495415089 | erot = 23.1397896153992 | epot = -232.813601469978 | etot = -192.13676231307 +239000 ekin = 18.5035461424359 | erot = 23.6314853899781 | epot = -233.424851371331 | etot = -191.289819838917 +240000 ekin = 18.2400558551285 | erot = 25.7782971635906 | epot = -233.735423678076 | etot = -189.717070659357 +241000 ekin = 18.3026727766783 | erot = 24.4472869908134 | epot = -233.913575321003 | etot = -191.163615553511 +242000 ekin = 17.7115212204843 | erot = 24.995729162613 | epot = -234.050352631169 | etot = -191.343102248072 +243000 ekin = 17.2078487224333 | erot = 23.9090981344856 | epot = -234.125136273026 | etot = -193.008189416107 +244000 ekin = 16.2099036691328 | erot = 23.5424124480185 | epot = -234.271072794161 | etot = -194.51875667701 +245000 ekin = 16.2853237680124 | erot = 25.6013260460874 | epot = -234.567326279749 | etot = -192.680676465649 +246000 ekin = 15.9877124738648 | erot = 26.4618528423917 | epot = -234.907254123649 | etot = -192.457688807393 +247000 ekin = 16.278912642661 | erot = 25.6305025080533 | epot = -235.38224025519 | etot = -193.472825104476 +248000 ekin = 16.1891212016019 | erot = 26.7270438066868 | epot = -235.85693800343 | etot = -192.940772995142 +249000 ekin = 16.2464500192795 | erot = 27.0261014884008 | epot = -236.177986894745 | etot = -192.905435387065 +250000 ekin = 15.9341143953265 | erot = 30.8738949363089 | epot = -236.535496633727 | etot = -189.727487302092 +251000 ekin = 15.8028184849003 | erot = 32.1505879831005 | epot = -236.688974719602 | etot = -188.735568251601 +252000 ekin = 16.7909168467857 | erot = 32.8335558099614 | epot = -236.645831434934 | etot = -187.021358778187 +253000 ekin = 16.9139273743643 | erot = 29.2781158099218 | epot = -236.579277646039 | etot = -190.387234461753 +254000 ekin = 16.6934725608083 | erot = 29.105191471631 | epot = -236.457570337498 | etot = -190.658906305059 +255000 ekin = 16.9530894051165 | erot = 28.561900354835 | epot = -236.494291914548 | etot = -190.979302154596 +256000 ekin = 16.8565757743705 | erot = 26.1542309529602 | epot = -236.815950729242 | etot = -193.805144001911 +257000 ekin = 16.585149543856 | erot = 27.2044624689905 | epot = -237.076180448211 | etot = -193.286568435365 +258000 ekin = 16.9649893297413 | erot = 29.5003144318717 | epot = -237.125813775239 | etot = -190.660510013626 +259000 ekin = 16.8759816443281 | erot = 28.8592698754747 | epot = -237.185288834274 | etot = -191.450037314471 +260000 ekin = 16.9796890464332 | erot = 27.618877966906 | epot = -237.312226590128 | etot = -192.713659576789 +261000 ekin = 17.1257291800673 | erot = 26.9320058611979 | epot = -237.262614695238 | etot = -193.204879653972 +262000 ekin = 17.6923394447622 | erot = 27.2700259360803 | epot = -237.143815143362 | etot = -192.18144976252 +263000 ekin = 17.8430352696419 | erot = 25.086676238323 | epot = -236.946345380794 | etot = -194.016633872829 +264000 ekin = 18.0391753861997 | erot = 26.3317958950567 | epot = -236.678672413504 | etot = -192.307701132247 +265000 ekin = 18.013924761071 | erot = 25.5680520302975 | epot = -236.424056901965 | etot = -192.842080110596 +266000 ekin = 17.6154269767062 | erot = 23.675123094962 | epot = -235.997667559883 | etot = -194.707117488214 +267000 ekin = 17.6622486381387 | erot = 26.2267112931792 | epot = -235.553502063923 | etot = -191.664542132605 +268000 ekin = 17.8125223357387 | erot = 27.363444164387 | epot = -235.09406638475 | etot = -189.918099884624 +269000 ekin = 17.4475328870398 | erot = 28.702098419643 | epot = -234.302641461941 | etot = -188.153010155258 +270000 ekin = 17.3046917858623 | erot = 29.7195013929747 | epot = -233.361041913271 | etot = -186.336848734434 +271000 ekin = 17.142474619254 | erot = 29.9663485879831 | epot = -232.456072910032 | etot = -185.347249702795 +272000 ekin = 17.1520876922752 | erot = 28.8349700847661 | epot = -231.55505567112 | etot = -185.567997894079 +273000 ekin = 16.529132536504 | erot = 28.0012512077314 | epot = -230.483093897511 | etot = -185.952710153276 +274000 ekin = 16.0104360170946 | erot = 26.9274909329307 | epot = -229.230529801711 | etot = -186.292602851686 +275000 ekin = 15.5159445897247 | erot = 25.0461733638716 | epot = -227.842923326835 | etot = -187.280805373238 +276000 ekin = 15.3290449735773 | erot = 22.6013849304136 | epot = -226.645721417409 | etot = -188.715291513418 +277000 ekin = 14.8998254086663 | erot = 21.4368139643109 | epot = -225.632942921213 | etot = -189.296303548235 +278000 ekin = 14.6883229783611 | erot = 21.764246814846 | epot = -224.505045285419 | etot = -188.052475492212 +279000 ekin = 14.8047270727149 | erot = 21.9101300703525 | epot = -223.591887497535 | etot = -186.877030354468 +280000 ekin = 15.1052613957242 | erot = 21.2019638470283 | epot = -222.930554266676 | etot = -186.623329023924 +281000 ekin = 15.9185405703085 | erot = 22.7554995785104 | epot = -222.496264131452 | etot = -183.822223982633 +282000 ekin = 15.7118745407237 | erot = 21.6184112020448 | epot = -222.111847398432 | etot = -184.781561655664 +283000 ekin = 15.6333488922702 | erot = 21.465780561396 | epot = -221.697448312628 | etot = -184.598318858962 +284000 ekin = 15.959853189633 | erot = 21.5564118521706 | epot = -221.456027263584 | etot = -183.93976222178 +285000 ekin = 16.1804948749226 | erot = 20.7957823598973 | epot = -221.442032618529 | etot = -184.465755383709 +286000 ekin = 16.2437780433302 | erot = 22.0029966684091 | epot = -221.48947785587 | etot = -183.242703144131 +287000 ekin = 16.5860527634174 | erot = 21.2347797551117 | epot = -221.681437402569 | etot = -183.86060488404 +288000 ekin = 17.4777982920666 | erot = 22.9676186033132 | epot = -222.210097097494 | etot = -181.764680202114 +289000 ekin = 19.2022256495172 | erot = 21.806988434862 | epot = -223.03555219086 | etot = -182.026338106481 +290000 ekin = 20.6029736081834 | erot = 21.6756942552161 | epot = -223.927958525587 | etot = -181.649290662188 +291000 ekin = 21.0325637238795 | erot = 25.0635435951381 | epot = -224.954298339301 | etot = -178.858191020283 +292000 ekin = 21.9992014565845 | erot = 24.5675448811519 | epot = -226.014147345555 | etot = -179.447401007819 +293000 ekin = 22.8449936736823 | erot = 26.0971097085354 | epot = -227.039865181468 | etot = -178.09776179925 +294000 ekin = 24.2424273090434 | erot = 22.3242335931344 | epot = -227.698192270626 | etot = -181.131531368448 +295000 ekin = 25.1430321033927 | erot = 22.81093656589 | epot = -228.272133548427 | etot = -180.318164879144 +296000 ekin = 25.4190616181137 | erot = 23.5935920052844 | epot = -228.827919142591 | etot = -179.815265519193 +297000 ekin = 24.1157580511247 | erot = 24.5278953829289 | epot = -229.421950081214 | etot = -180.77829664716 +298000 ekin = 24.1091297661069 | erot = 24.3527158051324 | epot = -229.912795380237 | etot = -181.450949808998 +299000 ekin = 24.1889413361173 | erot = 28.3512815530446 | epot = -230.356799401626 | etot = -177.816576512464 +300000 ekin = 24.2163939347386 | erot = 26.6122585649448 | epot = -230.754469972665 | etot = -179.925817472982 +301000 ekin = 23.9473801903426 | erot = 27.8600078683744 | epot = -231.048868063292 | etot = -179.241480004575 +302000 ekin = 23.6699655332583 | erot = 27.5610103980966 | epot = -231.2462622361 | etot = -180.015286304745 +303000 ekin = 23.8797875069283 | erot = 29.2034880593161 | epot = -231.3115724611 | etot = -178.228296894856 +304000 ekin = 22.73106672979 | erot = 27.7503022429659 | epot = -231.512470993041 | etot = -181.031102020285 +305000 ekin = 22.1016085656468 | erot = 27.0493993901605 | epot = -231.718355828267 | etot = -182.56734787246 +306000 ekin = 21.3693097984681 | erot = 26.2537086929049 | epot = -231.891297103593 | etot = -184.26827861222 +307000 ekin = 21.0324320589055 | erot = 24.6230768163623 | epot = -232.14138641287 | etot = -186.485877537602 +308000 ekin = 20.1154566391106 | erot = 21.7787557790717 | epot = -232.402656379528 | etot = -190.508443961346 +309000 ekin = 19.6646153697248 | erot = 24.2524356353678 | epot = -232.726752497782 | etot = -188.809701492689 +310000 ekin = 19.506055878272 | erot = 23.0558815582429 | epot = -232.894728269794 | etot = -190.332790833279 +311000 ekin = 19.4366809731017 | erot = 23.3044474838376 | epot = -232.852507372457 | etot = -190.111378915517 +312000 ekin = 18.9851206753984 | erot = 23.3056434770267 | epot = -232.658571091316 | etot = -190.367806938891 +313000 ekin = 18.456476357187 | erot = 22.3541198734799 | epot = -232.226835699179 | etot = -191.416239468512 +314000 ekin = 17.5964963597534 | erot = 24.280152514809 | epot = -231.840379924947 | etot = -189.963731050385 +315000 ekin = 17.4204244485737 | erot = 23.6514203760144 | epot = -231.530486492869 | etot = -190.45864166828 +316000 ekin = 16.1724163728655 | erot = 22.698801275189 | epot = -231.308288231255 | etot = -192.4370705832 +317000 ekin = 16.1754961975214 | erot = 24.7458837009842 | epot = -231.086735374031 | etot = -190.165355475525 +318000 ekin = 15.6276186513821 | erot = 25.4598581999699 | epot = -230.874800576949 | etot = -189.787323725597 +319000 ekin = 15.2218658312374 | erot = 26.310179302591 | epot = -230.890983487464 | etot = -189.358938353635 +320000 ekin = 14.5086838632118 | erot = 25.5779207778604 | epot = -230.835599614339 | etot = -190.748994973267 +321000 ekin = 14.3605129926004 | erot = 24.3299501149204 | epot = -230.738948206952 | etot = -192.048485099431 +322000 ekin = 14.3610877203126 | erot = 22.9310291497487 | epot = -230.65305378356 | etot = -193.360936913499 +323000 ekin = 14.7688305230875 | erot = 22.2970860063464 | epot = -230.465569924266 | etot = -193.399653394832 +324000 ekin = 14.9355157274789 | erot = 21.6250944927411 | epot = -230.284210305093 | etot = -193.723600084873 +325000 ekin = 14.671493713112 | erot = 19.7302049638664 | epot = -230.227419340871 | etot = -195.825720663893 +326000 ekin = 14.9234987156657 | erot = 18.5568938196644 | epot = -230.211337706826 | etot = -196.730945171496 +327000 ekin = 15.4129696630397 | erot = 18.0709384490326 | epot = -230.259317350117 | etot = -196.775409238045 +328000 ekin = 16.3932927560713 | erot = 18.0499060967779 | epot = -230.447119407116 | etot = -196.003920554267 +329000 ekin = 17.4064272548349 | erot = 17.712742044302 | epot = -230.608667384644 | etot = -195.489498085507 +330000 ekin = 17.9751565884689 | erot = 20.51547017577 | epot = -230.944813706002 | etot = -192.454186941763 +331000 ekin = 18.0313803560148 | erot = 22.5739918453344 | epot = -231.277621168628 | etot = -190.672248967279 +332000 ekin = 18.15147843611 | erot = 22.8208528087548 | epot = -231.623777285706 | etot = -190.651446040841 +333000 ekin = 18.0930465656663 | erot = 21.9771411609275 | epot = -231.923848859364 | etot = -191.85366113277 +334000 ekin = 17.7728125353381 | erot = 23.128955301666 | epot = -232.169505006005 | etot = -191.267737169001 +335000 ekin = 19.0031630375606 | erot = 23.3897776040612 | epot = -232.460034619601 | etot = -190.067093977979 +336000 ekin = 19.5591765342243 | erot = 25.3697311547745 | epot = -232.739268822111 | etot = -187.810361133113 +337000 ekin = 19.8563675404798 | erot = 27.3439820813804 | epot = -232.906112080656 | etot = -185.705762458796 +338000 ekin = 19.751099035653 | erot = 24.921360312315 | epot = -232.758554071368 | etot = -188.0860947234 +339000 ekin = 19.9050741791919 | erot = 25.5301605485524 | epot = -232.417171827705 | etot = -186.98193709996 +340000 ekin = 19.8794162185109 | erot = 25.9787598068518 | epot = -231.88072644563 | etot = -186.022550420267 +341000 ekin = 19.9454216521201 | erot = 24.1566390151013 | epot = -231.212127397362 | etot = -187.11006673014 +342000 ekin = 19.9237875292304 | erot = 26.4019287790718 | epot = -230.32153874995 | etot = -183.995822441648 +343000 ekin = 19.1115068720885 | erot = 22.5948467356212 | epot = -229.503208394896 | etot = -187.796854787186 +344000 ekin = 18.3079084943896 | erot = 23.107837537118 | epot = -228.898967466162 | etot = -187.483221434654 +345000 ekin = 18.4650460950013 | erot = 23.8173535141912 | epot = -228.453285301913 | etot = -186.17088569272 +346000 ekin = 18.0304251681423 | erot = 23.3440747631772 | epot = -228.183574545935 | etot = -186.809074614615 +347000 ekin = 17.5483582122927 | erot = 23.0282517992432 | epot = -227.908297752933 | etot = -187.331687741398 +348000 ekin = 17.622359603253 | erot = 22.2176773752137 | epot = -227.687080765617 | etot = -187.847043787151 +349000 ekin = 18.1160269661089 | erot = 23.5048787159375 | epot = -227.62230627499 | etot = -186.001400592943 +350000 ekin = 18.4237634534031 | erot = 23.3245531376522 | epot = -227.749080027053 | etot = -186.000763435998 +351000 ekin = 18.7086532226307 | erot = 23.8443722630501 | epot = -227.802083115351 | etot = -185.24905762967 +352000 ekin = 18.4929053608692 | erot = 23.3879966472946 | epot = -228.059952926951 | etot = -186.179050918787 +353000 ekin = 18.9161069388645 | erot = 23.2227449598892 | epot = -228.455593201501 | etot = -186.316741302748 +354000 ekin = 19.0977071534437 | erot = 26.1711894049523 | epot = -228.863332747988 | etot = -183.594436189592 +355000 ekin = 18.8408988656362 | erot = 25.4820466037911 | epot = -229.149897752163 | etot = -184.826952282736 +356000 ekin = 18.0073291494761 | erot = 26.6233733651629 | epot = -229.30066738625 | etot = -184.669964871611 +357000 ekin = 17.7607082496061 | erot = 25.2859928393404 | epot = -229.131821622954 | etot = -186.085120534008 +358000 ekin = 17.3110477472649 | erot = 23.858172364184 | epot = -228.730492207362 | etot = -187.561272095913 +359000 ekin = 17.2747418765998 | erot = 22.3862089851412 | epot = -228.089331840306 | etot = -188.428380978565 +360000 ekin = 17.2627985134611 | erot = 22.0449155343728 | epot = -227.380056681146 | etot = -188.072342633312 +361000 ekin = 16.7022908865183 | erot = 20.1648887982823 | epot = -226.685841413765 | etot = -189.818661728965 +362000 ekin = 16.5236886103148 | erot = 17.367003581832 | epot = -226.179176639549 | etot = -192.288484447402 +363000 ekin = 16.6039189858822 | erot = 16.0035347935122 | epot = -225.740790574137 | etot = -193.133336794742 +364000 ekin = 15.9788934900066 | erot = 16.6121483003756 | epot = -225.114863846841 | etot = -192.523822056459 +365000 ekin = 15.1431317526968 | erot = 16.9097471834361 | epot = -224.479846480109 | etot = -192.426967543976 +366000 ekin = 14.3990111988618 | erot = 17.0852361664414 | epot = -223.860574415737 | etot = -192.376327050434 +367000 ekin = 14.7093223353035 | erot = 19.9259917527912 | epot = -223.239871274407 | etot = -188.604557186313 +368000 ekin = 14.4767524017819 | erot = 19.8571324274854 | epot = -222.763305586433 | etot = -188.429420757165 +369000 ekin = 14.5295526109511 | erot = 19.4653517852366 | epot = -222.374285556898 | etot = -188.37938116071 +370000 ekin = 14.6624229936735 | erot = 18.4895700260451 | epot = -222.141224908878 | etot = -188.98923188916 +371000 ekin = 14.5457820238232 | erot = 17.1607101368225 | epot = -222.091600781158 | etot = -190.385108620512 +372000 ekin = 14.3765645142415 | erot = 18.3396365891572 | epot = -222.422609627797 | etot = -189.706408524398 +373000 ekin = 14.7873291899404 | erot = 18.9757135731518 | epot = -223.205572088605 | etot = -189.442529325513 +374000 ekin = 15.7125804964135 | erot = 21.4180777064736 | epot = -224.094929147205 | etot = -186.964270944318 +375000 ekin = 15.9971371168641 | erot = 19.8267795606279 | epot = -225.189250395173 | etot = -189.365333717681 +376000 ekin = 16.6671924038023 | erot = 19.2635449216383 | epot = -226.559332642176 | etot = -190.628595316735 +377000 ekin = 17.7603728345199 | erot = 18.779994279654 | epot = -227.963757986198 | etot = -191.423390872024 +378000 ekin = 18.1886050864902 | erot = 20.8441911699424 | epot = -229.547369091145 | etot = -190.514572834712 +379000 ekin = 19.033100220467 | erot = 20.072237741282 | epot = -231.143533498054 | etot = -192.038195536305 +380000 ekin = 19.3958875215032 | erot = 21.4029492342147 | epot = -232.694529537328 | etot = -191.89569278161 +381000 ekin = 19.9083965791013 | erot = 22.0262926736848 | epot = -234.32167171513 | etot = -192.386982462344 +382000 ekin = 20.8309151956209 | erot = 23.0680223560274 | epot = -235.663830319217 | etot = -191.764892767568 +383000 ekin = 21.2110564910967 | erot = 21.0693378226244 | epot = -236.854844845752 | etot = -194.574450532031 +384000 ekin = 22.0271729397392 | erot = 19.5738896898674 | epot = -237.761071028817 | etot = -196.16000839921 +385000 ekin = 21.9888232627756 | erot = 21.9438035828551 | epot = -238.480083243308 | etot = -194.547456397677 +386000 ekin = 22.1638739887246 | erot = 22.6209901962172 | epot = -238.997084576409 | etot = -194.212220391467 +387000 ekin = 22.4704802119025 | erot = 23.1635909564577 | epot = -239.498617670884 | etot = -193.864546502524 +388000 ekin = 22.8360688044956 | erot = 25.0873884717806 | epot = -239.669249619648 | etot = -191.745792343372 +389000 ekin = 23.0584509448569 | erot = 23.7837899729554 | epot = -239.601361166478 | etot = -192.759120248666 +390000 ekin = 23.6960202157352 | erot = 22.2855109641288 | epot = -239.380639976731 | etot = -193.399108796867 +391000 ekin = 23.7991151344636 | erot = 20.6201012177775 | epot = -239.03189252051 | etot = -194.612676168269 +392000 ekin = 23.9591701543348 | erot = 21.9552661146519 | epot = -238.459192052771 | etot = -192.544755783784 +393000 ekin = 23.9801600708864 | erot = 22.869736284692 | epot = -237.591953793527 | etot = -190.742057437948 +394000 ekin = 23.4806447315076 | erot = 23.7894518329385 | epot = -236.673823439361 | etot = -189.403726874915 +395000 ekin = 24.5044542002931 | erot = 22.3496968561238 | epot = -235.743236345989 | etot = -188.889085289572 +396000 ekin = 25.0523490436962 | erot = 21.8742064454878 | epot = -234.847289992152 | etot = -187.920734502968 +397000 ekin = 24.6499536596579 | erot = 21.7645397688862 | epot = -234.02267754065 | etot = -187.608184112106 +398000 ekin = 24.6654129500861 | erot = 22.1514966474267 | epot = -233.052972677734 | etot = -186.236063080221 +399000 ekin = 24.4527034646846 | erot = 22.1387556663723 | epot = -232.022437613541 | etot = -185.430978482484 +400000 ekin = 24.2410273375347 | erot = 20.3962614781508 | epot = -231.005809135405 | etot = -186.36852031972 +401000 ekin = 23.6761212056534 | erot = 22.7225603362526 | epot = -230.115763739954 | etot = -183.717082198048 +402000 ekin = 23.2783312945623 | erot = 21.072405109571 | epot = -229.330217542778 | etot = -184.979481138645 +403000 ekin = 23.3187858415702 | erot = 21.6853668727119 | epot = -228.46646899817 | etot = -183.462316283888 +404000 ekin = 22.6452628627526 | erot = 19.8334541701381 | epot = -227.74020593733 | etot = -185.261488904439 +405000 ekin = 22.8006471912822 | erot = 18.666718374297 | epot = -227.470604446323 | etot = -186.003238880744 +406000 ekin = 22.2794202436027 | erot = 18.3828666900747 | epot = -227.331354672565 | etot = -186.669067738888 +407000 ekin = 22.2172456768627 | erot = 18.4773392588829 | epot = -227.523003290546 | etot = -186.828418354801 +408000 ekin = 22.6521756504711 | erot = 19.4208076833358 | epot = -227.87233388974 | etot = -185.799350555933 +409000 ekin = 23.5573264374349 | erot = 20.5061505842945 | epot = -228.154858179183 | etot = -184.091381157454 +410000 ekin = 24.2750456328492 | erot = 22.8792635845596 | epot = -228.453698162395 | etot = -181.299388944986 +411000 ekin = 25.2420122816034 | erot = 23.7365200565699 | epot = -228.770700580075 | etot = -179.792168241901 +412000 ekin = 25.291356362185 | erot = 23.8310304102202 | epot = -229.010782171434 | etot = -179.888395399029 +413000 ekin = 25.2600396503997 | erot = 22.7169838925796 | epot = -229.062680900308 | etot = -181.085657357328 +414000 ekin = 25.4912045141821 | erot = 23.7306969786591 | epot = -228.998337849082 | etot = -179.77643635624 +415000 ekin = 26.1735887247197 | erot = 22.6674135061758 | epot = -228.693341533324 | etot = -179.852339302428 +416000 ekin = 26.5748108328611 | erot = 21.6439172230018 | epot = -228.361662386621 | etot = -180.142934330759 +417000 ekin = 26.7768070690628 | erot = 21.6230631516283 | epot = -228.087012878216 | etot = -179.687142657525 +418000 ekin = 26.5908575562701 | erot = 22.1239144254595 | epot = -227.62723288751 | etot = -178.912460905781 +419000 ekin = 26.1390688484464 | erot = 19.8809151124988 | epot = -226.977438068285 | etot = -180.95745410734 +420000 ekin = 25.5372021331576 | erot = 18.4693355705533 | epot = -226.169296116375 | etot = -182.162758412664 +421000 ekin = 24.7576070800854 | erot = 21.2379290063398 | epot = -225.177912035829 | etot = -179.182375949404 +422000 ekin = 23.5775097382875 | erot = 20.7150967321225 | epot = -224.071351753226 | etot = -179.778745282816 +423000 ekin = 23.3503211007386 | erot = 20.7766198719257 | epot = -222.934603836064 | etot = -178.807662863399 +424000 ekin = 22.9014106427363 | erot = 21.0323838208275 | epot = -221.865657024477 | etot = -177.931862560913 +425000 ekin = 22.167001043224 | erot = 19.8951057365931 | epot = -221.008759763888 | etot = -178.946652984071 +426000 ekin = 21.7191918731043 | erot = 20.0481315073592 | epot = -220.379164165788 | etot = -178.611840785324 +427000 ekin = 22.3863209159599 | erot = 20.1467365914768 | epot = -219.748771980514 | etot = -177.215714473077 +428000 ekin = 22.3113642728441 | erot = 18.9435836850322 | epot = -219.042454222864 | etot = -177.787506264988 +429000 ekin = 21.8292251452452 | erot = 16.620780664556 | epot = -218.481603976101 | etot = -180.0315981663 +430000 ekin = 21.5787512284699 | erot = 15.9396143193706 | epot = -217.957523577516 | etot = -180.439158029675 +431000 ekin = 21.5476976648958 | erot = 16.0853660094757 | epot = -217.637522182414 | etot = -180.004458508042 +432000 ekin = 20.8305046334209 | erot = 18.3962397210501 | epot = -217.510435589248 | etot = -178.283691234777 +433000 ekin = 21.3366166805747 | erot = 17.1761613375181 | epot = -217.730201210123 | etot = -179.21742319203 +434000 ekin = 21.4473991234971 | erot = 18.3914065237362 | epot = -218.31882890629 | etot = -178.480023259057 +435000 ekin = 21.8938565298032 | erot = 20.4321817028492 | epot = -219.08695235614 | etot = -176.760914123488 +436000 ekin = 22.7745161208294 | erot = 21.7909028890296 | epot = -220.039533912902 | etot = -175.474114903043 +437000 ekin = 23.0603914755853 | erot = 23.5766353307907 | epot = -221.014303297324 | etot = -174.377276490948 +438000 ekin = 24.5047158921013 | erot = 22.5082522761815 | epot = -221.830036253357 | etot = -174.817068085074 +439000 ekin = 24.6143280761287 | erot = 24.2611592034082 | epot = -222.681938930047 | etot = -173.80645165051 +440000 ekin = 24.3817582592681 | erot = 24.7408480502237 | epot = -223.513777238926 | etot = -174.391170929434 +441000 ekin = 24.7073799963697 | erot = 26.0715535157816 | epot = -224.270002709343 | etot = -173.491069197191 +442000 ekin = 24.5768549815013 | erot = 26.1754826601808 | epot = -224.850802162052 | etot = -174.09846452037 +443000 ekin = 25.2420932847023 | erot = 24.7427655137794 | epot = -225.167556551113 | etot = -175.182697752631 +444000 ekin = 25.9747330874369 | erot = 26.9622244259886 | epot = -225.24583879208 | etot = -172.308881278654 +445000 ekin = 26.1721310818258 | erot = 27.8161657482946 | epot = -225.021125061423 | etot = -171.032828231303 +446000 ekin = 26.2042305171885 | erot = 26.6449261740889 | epot = -224.735035228785 | etot = -171.885878537508 +447000 ekin = 25.9445128989677 | erot = 26.4816025199488 | epot = -224.245178179105 | etot = -171.819062760188 +448000 ekin = 25.5372900980307 | erot = 25.0281118333634 | epot = -223.618727357863 | etot = -173.053325426469 +449000 ekin = 25.7322219082413 | erot = 26.9973146922278 | epot = -223.018245220603 | etot = -170.288708620134 +450000 ekin = 25.8738458288472 | erot = 26.4843992391509 | epot = -222.408567465752 | etot = -170.050322397754 +451000 ekin = 25.6858259591492 | erot = 25.2647052575128 | epot = -221.452550893268 | etot = -170.502019676606 +452000 ekin = 25.7815007863341 | erot = 23.0466968711352 | epot = -220.49127053138 | etot = -171.66307287391 +453000 ekin = 25.7970445433776 | erot = 21.1141058412002 | epot = -219.594142395429 | etot = -172.682992010851 +454000 ekin = 25.688804966856 | erot = 22.6294586470315 | epot = -218.915377931307 | etot = -170.59711431742 +455000 ekin = 25.6037732271854 | erot = 22.9697679221883 | epot = -218.493679612878 | etot = -169.920138463504 +456000 ekin = 26.0514762135096 | erot = 23.8916333063363 | epot = -218.316686773003 | etot = -168.373577253157 +457000 ekin = 26.0167886371092 | erot = 22.9916268768507 | epot = -218.187169314675 | etot = -169.178753800715 +458000 ekin = 25.7882597661439 | erot = 20.8748032531609 | epot = -217.987058469246 | etot = -171.323995449942 +459000 ekin = 26.1697981408122 | erot = 21.3086466081266 | epot = -218.026696392449 | etot = -170.54825164351 +460000 ekin = 25.7192439412156 | erot = 24.4214622489547 | epot = -218.347831000891 | etot = -168.207124810721 +461000 ekin = 25.7495969095132 | erot = 26.1294994916656 | epot = -218.822266029574 | etot = -166.943169628395 +462000 ekin = 25.8591234001759 | erot = 26.9103950574254 | epot = -219.538074391763 | etot = -166.768555934162 +463000 ekin = 25.4934778644091 | erot = 28.9857339062074 | epot = -220.244381956634 | etot = -165.765170186017 +464000 ekin = 25.3807989297151 | erot = 28.2636863620641 | epot = -220.82311618793 | etot = -167.178630896151 +465000 ekin = 25.4889304853069 | erot = 26.8232193679972 | epot = -221.238335961676 | etot = -168.926186108372 +466000 ekin = 25.6703409883731 | erot = 25.2637813032743 | epot = -221.475634605288 | etot = -170.54151231364 +467000 ekin = 25.3302831697602 | erot = 24.6072222319647 | epot = -221.607373938226 | etot = -171.669868536501 +468000 ekin = 26.2089173332122 | erot = 22.9661948896766 | epot = -221.830072302435 | etot = -172.654960079546 +469000 ekin = 27.6643804489026 | erot = 22.7018029478283 | epot = -222.234721440326 | etot = -171.868538043595 +470000 ekin = 27.7860331432337 | erot = 23.37749342455 | epot = -222.896428711169 | etot = -171.732902143385 +471000 ekin = 28.3340963939428 | erot = 25.3278577360011 | epot = -223.570564232673 | etot = -169.908610102729 +472000 ekin = 28.5060434759036 | erot = 25.626902389105 | epot = -224.148650689462 | etot = -170.015704824453 +473000 ekin = 28.8298134833811 | erot = 26.1588503986598 | epot = -224.562065916091 | etot = -169.573402034051 +474000 ekin = 28.5479350336082 | erot = 25.8885076622197 | epot = -224.671302893341 | etot = -170.234860197513 +475000 ekin = 28.7950172155165 | erot = 25.1475376581866 | epot = -224.461514143169 | etot = -170.518959269466 +476000 ekin = 28.4606864434488 | erot = 25.2517480986696 | epot = -223.893621964986 | etot = -170.181187422868 +477000 ekin = 28.0142928872112 | erot = 23.5481845275566 | epot = -223.15087114256 | etot = -171.588393727793 +478000 ekin = 27.7552032877925 | erot = 21.0056990914093 | epot = -222.398351737606 | etot = -173.637449358404 +479000 ekin = 26.7537623197156 | erot = 22.040286739641 | epot = -221.556035536971 | etot = -172.761986477614 +480000 ekin = 26.3364213218961 | erot = 21.616270547523 | epot = -220.488389208344 | etot = -172.535697338924 +481000 ekin = 25.5733541062401 | erot = 20.6410322219284 | epot = -219.255993114652 | etot = -173.041606786483 +482000 ekin = 25.3038828266597 | erot = 21.7331282226314 | epot = -218.060917075251 | etot = -171.02390602596 +483000 ekin = 25.4847680481985 | erot = 21.8125494513952 | epot = -217.017386150345 | etot = -169.720068650751 +484000 ekin = 25.4921600059346 | erot = 22.7125552631874 | epot = -216.165477936407 | etot = -167.960762667285 +485000 ekin = 25.1014549873177 | erot = 22.9083083653785 | epot = -215.459368644848 | etot = -167.449605292152 +486000 ekin = 23.7381916279128 | erot = 22.0359551706864 | epot = -214.867401759866 | etot = -169.093254961267 +487000 ekin = 23.1022967247011 | erot = 20.9897368619166 | epot = -214.49309827136 | etot = -170.401064684743 +488000 ekin = 22.3280062343421 | erot = 22.6581977288416 | epot = -214.411928640685 | etot = -169.425724677501 +489000 ekin = 21.5200390992131 | erot = 24.4256444850011 | epot = -214.553046668213 | etot = -168.607363083998 +490000 ekin = 22.1745834778823 | erot = 23.202684442612 | epot = -214.682014948056 | etot = -169.304747027562 +491000 ekin = 22.2155647410761 | erot = 23.9559835315798 | epot = -214.794268468461 | etot = -168.622720195805 +492000 ekin = 21.9074062571785 | erot = 23.0107085417582 | epot = -214.876391213439 | etot = -169.958276414503 +493000 ekin = 21.7673907407181 | erot = 22.3862681939078 | epot = -215.110849414315 | etot = -170.957190479689 +494000 ekin = 20.7745584966346 | erot = 22.7452296264065 | epot = -215.46860879911 | etot = -171.948820676069 +495000 ekin = 19.7536125274935 | erot = 24.534405221311 | epot = -215.973479846197 | etot = -171.685462097392 +496000 ekin = 19.5440096583046 | erot = 23.1762967935367 | epot = -216.627509848901 | etot = -173.90720339706 +497000 ekin = 19.2601107947869 | erot = 27.0129650022824 | epot = -217.496309014045 | etot = -171.223233216976 +498000 ekin = 20.008240149509 | erot = 28.3938360735788 | epot = -218.510580772204 | etot = -170.108504549116 +499000 ekin = 20.2250869378451 | erot = 29.7495194421564 | epot = -219.413536230996 | etot = -169.438929850994 +500000 ekin = 20.5377041017314 | erot = 25.5981483203109 | epot = -220.10250670273 | etot = -173.966654280688 +501000 ekin = 20.7437007868733 | erot = 25.5722254074985 | epot = -220.706620920466 | etot = -174.390694726094 +502000 ekin = 21.3974117388996 | erot = 27.1477040916275 | epot = -221.203987796437 | etot = -172.65887196591 +503000 ekin = 21.9720670171586 | erot = 27.4594748055059 | epot = -221.564705185604 | etot = -172.13316336294 +504000 ekin = 22.0036398241597 | erot = 27.8844566679454 | epot = -221.822730635735 | etot = -171.934634143629 +505000 ekin = 23.1885968423919 | erot = 27.0080739021865 | epot = -222.35778688837 | etot = -172.161116143791 +506000 ekin = 22.722531651873 | erot = 26.6500914123035 | epot = -222.671998920708 | etot = -173.299375856532 +507000 ekin = 22.2628604257524 | erot = 25.1165297319669 | epot = -223.132828338462 | etot = -175.753438180742 +508000 ekin = 22.7028911519561 | erot = 23.4656498814886 | epot = -223.54407467575 | etot = -177.375533642305 +509000 ekin = 22.6654713026151 | erot = 22.3116431994452 | epot = -223.812280936561 | etot = -178.8351664345 +510000 ekin = 23.2444036217202 | erot = 23.7118265646526 | epot = -224.123509542875 | etot = -177.167279356502 +511000 ekin = 22.7352979426128 | erot = 23.8711299722302 | epot = -224.367646933689 | etot = -177.761219018846 +512000 ekin = 22.460433299215 | erot = 25.9025431935021 | epot = -224.625156824351 | etot = -176.262180331634 +513000 ekin = 22.0947651201679 | erot = 24.9904521975554 | epot = -224.816807649759 | etot = -177.731590332036 +514000 ekin = 21.783961391663 | erot = 27.6768125066713 | epot = -224.803176634329 | etot = -175.342402735995 +515000 ekin = 20.8838805084714 | erot = 26.7006493321653 | epot = -224.615071561818 | etot = -177.030541721182 +516000 ekin = 21.4036026624667 | erot = 29.9826472115484 | epot = -224.43203188109 | etot = -173.045782007075 +517000 ekin = 21.0725470625647 | erot = 29.5449947930599 | epot = -224.413593337603 | etot = -173.796051481978 +518000 ekin = 21.1692298808073 | erot = 27.273466345669 | epot = -224.467250578245 | etot = -176.024554351769 +519000 ekin = 21.5445051781035 | erot = 27.4144674038741 | epot = -224.856924566818 | etot = -175.89795198484 +520000 ekin = 21.8088279707338 | erot = 26.9958167714558 | epot = -225.458073506627 | etot = -176.653428764437 +521000 ekin = 21.3359848054427 | erot = 27.3496112855869 | epot = -226.263472854907 | etot = -177.577876763878 +522000 ekin = 21.383381595961 | erot = 28.5594995391198 | epot = -227.177929279517 | etot = -177.235048144436 +523000 ekin = 22.3312177264689 | erot = 28.7548602321851 | epot = -228.039253797182 | etot = -176.953175838528 +524000 ekin = 22.876818128058 | erot = 30.8759050315318 | epot = -228.592215099028 | etot = -174.839491939438 +525000 ekin = 23.6968405729144 | erot = 30.6366736796914 | epot = -229.121694343188 | etot = -174.788180090583 +526000 ekin = 24.0470079695023 | erot = 27.5141010669624 | epot = -229.424175891327 | etot = -177.863066854862 +527000 ekin = 24.7652559941686 | erot = 24.0459690561378 | epot = -229.423371401068 | etot = -180.612146350762 +528000 ekin = 25.8850187683723 | erot = 21.6623200862783 | epot = -229.307228706866 | etot = -181.759889852215 +529000 ekin = 27.0463610704001 | erot = 22.1786800201847 | epot = -229.038404872887 | etot = -179.813363782302 +530000 ekin = 27.7753267980006 | erot = 21.352696690415 | epot = -228.849367136447 | etot = -179.721343648031 +531000 ekin = 27.8126912344675 | erot = 20.3285370027924 | epot = -228.550501942543 | etot = -180.409273705283 +532000 ekin = 28.6172804460881 | erot = 18.3427969924976 | epot = -228.423163122221 | etot = -181.463085683636 +533000 ekin = 28.2068049753172 | erot = 18.2536479974195 | epot = -228.612314526597 | etot = -182.151861553861 +534000 ekin = 28.4495519996443 | erot = 18.0012277086546 | epot = -228.943853455769 | etot = -182.49307374747 +535000 ekin = 28.9497940969891 | erot = 16.8492155357581 | epot = -229.741275998853 | etot = -183.942266366106 +536000 ekin = 28.5652244837817 | erot = 17.3435379345182 | epot = -230.83687671424 | etot = -184.92811429594 +537000 ekin = 29.022362828562 | erot = 17.9527916225231 | epot = -231.95803351984 | etot = -184.982879068755 +538000 ekin = 29.8174105606222 | erot = 16.0379790395698 | epot = -232.791699361863 | etot = -186.936309761671 +539000 ekin = 29.6952792444876 | erot = 17.4273307073527 | epot = -233.496059263026 | etot = -186.373449311186 +540000 ekin = 29.750585937819 | erot = 20.0144365059585 | epot = -234.056270399686 | etot = -184.291247955909 +541000 ekin = 29.368313343467 | erot = 19.579576821786 | epot = -234.349077090936 | etot = -185.401186925683 +542000 ekin = 28.4447550384428 | erot = 19.7945093762075 | epot = -234.236435613877 | etot = -185.997171199227 +543000 ekin = 27.7587268728516 | erot = 21.2328503430547 | epot = -233.528121996461 | etot = -184.536544780555 +544000 ekin = 28.3225695671127 | erot = 17.802768152032 | epot = -232.50551567328 | etot = -186.380177954136 +545000 ekin = 28.0998287685114 | erot = 19.6585770476894 | epot = -231.387898079567 | etot = -183.629492263366 +546000 ekin = 27.3903651306005 | erot = 21.807934581675 | epot = -230.479365576106 | etot = -181.281065863831 +547000 ekin = 26.7970978237519 | erot = 20.9996558932496 | epot = -229.684797062509 | etot = -181.888043345508 +548000 ekin = 26.7983027373764 | erot = 20.8421351684446 | epot = -228.90155588475 | etot = -181.261117978929 +549000 ekin = 26.188169756037 | erot = 21.0585848868904 | epot = -228.206493092338 | etot = -180.95973844941 +550000 ekin = 26.0140312453881 | erot = 22.5801677208772 | epot = -227.777402823687 | etot = -179.183203857422 +551000 ekin = 25.7757664599119 | erot = 23.9110391567262 | epot = -227.517272594077 | etot = -177.830466977439 +552000 ekin = 25.8315344617212 | erot = 23.7338223198244 | epot = -227.474934810832 | etot = -177.909578029286 +553000 ekin = 25.6747033622136 | erot = 22.7253607563637 | epot = -227.635537487589 | etot = -179.235473369012 +554000 ekin = 25.6047324774861 | erot = 22.6670330249201 | epot = -227.987099764937 | etot = -179.715334262531 +555000 ekin = 26.5879549294076 | erot = 24.0685342421982 | epot = -228.529950924382 | etot = -177.873461752776 +556000 ekin = 27.6268706515679 | erot = 22.1109312637994 | epot = -229.425954027825 | etot = -179.688152112458 +557000 ekin = 28.069112907845 | erot = 26.8965683539211 | epot = -230.584971459936 | etot = -175.61929019817 +558000 ekin = 28.0678083112931 | erot = 25.6618030440032 | epot = -231.991530613965 | etot = -178.261919258669 +559000 ekin = 28.9742033607634 | erot = 26.5724591704157 | epot = -233.463994495035 | etot = -177.917331963856 +560000 ekin = 28.9011051536108 | erot = 25.5889025184335 | epot = -234.725653093072 | etot = -180.235645421027 +561000 ekin = 29.4002126238622 | erot = 26.2954345341183 | epot = -235.835285786746 | etot = -180.139638628766 +562000 ekin = 29.975757760105 | erot = 24.4408981516764 | epot = -236.463195408104 | etot = -182.046539496323 +563000 ekin = 29.7752306165208 | erot = 27.2106096805276 | epot = -236.685322677156 | etot = -179.699482380108 +564000 ekin = 29.8813809383381 | erot = 26.6216283857818 | epot = -236.661076407545 | etot = -180.158067083425 +565000 ekin = 29.6774879892468 | erot = 27.2290939876273 | epot = -236.311809225071 | etot = -179.405227248197 +566000 ekin = 28.6346936939147 | erot = 26.8023560052638 | epot = -235.668742898058 | etot = -180.23169319888 +567000 ekin = 27.3954299875009 | erot = 26.5201802334772 | epot = -234.779541480291 | etot = -180.863931259313 +568000 ekin = 27.4071194817491 | erot = 25.1324696708474 | epot = -233.501854955991 | etot = -180.962265803394 +569000 ekin = 26.6231867984125 | erot = 24.6541363875885 | epot = -232.187184366121 | etot = -180.90986118012 +570000 ekin = 27.6093553036065 | erot = 23.6900717393427 | epot = -230.809430752191 | etot = -179.510003709242 +571000 ekin = 26.9083310567801 | erot = 22.528408139646 | epot = -229.566553491015 | etot = -180.129814294588 +572000 ekin = 26.4716627800808 | erot = 22.2845965716381 | epot = -228.619137213519 | etot = -179.8628778618 +573000 ekin = 26.6971389887138 | erot = 21.8798558769198 | epot = -228.034982255581 | etot = -179.457987389947 +574000 ekin = 27.2478685862593 | erot = 21.7451315224891 | epot = -227.459773842304 | etot = -178.466773733556 +575000 ekin = 28.7134212605173 | erot = 21.3522952166471 | epot = -226.994685152085 | etot = -176.928968674921 +576000 ekin = 28.5222344692551 | erot = 18.8986377279701 | epot = -226.85884558054 | etot = -179.437973383315 +577000 ekin = 29.1715076179565 | erot = 20.1101522026671 | epot = -226.880557883166 | etot = -177.598898062543 +578000 ekin = 29.1958211105308 | erot = 20.240027120463 | epot = -226.916258035043 | etot = -177.480409804049 +579000 ekin = 28.7985703505952 | erot = 18.3977325249373 | epot = -226.88304615327 | etot = -179.686743277737 +580000 ekin = 28.4440078780217 | erot = 18.4595801944313 | epot = -226.943317478502 | etot = -180.039729406048 +581000 ekin = 29.6191385878667 | erot = 18.2815372928574 | epot = -227.074832318056 | etot = -179.174156437332 +582000 ekin = 28.8755366565893 | erot = 17.8411251075596 | epot = -227.166122160148 | etot = -180.449460395999 +583000 ekin = 28.6195101128279 | erot = 17.8287187393535 | epot = -227.132715220626 | etot = -180.684486368445 +584000 ekin = 28.2523600687915 | erot = 17.6307832024022 | epot = -227.251691559433 | etot = -181.368548288239 +585000 ekin = 27.5957630773252 | erot = 17.8252193046033 | epot = -227.442847627708 | etot = -182.021865245779 +586000 ekin = 27.7899511430164 | erot = 18.5604184072932 | epot = -227.520178862255 | etot = -181.169809311945 +587000 ekin = 27.3277470399822 | erot = 19.4404091802981 | epot = -227.404442611801 | etot = -180.636286391521 +588000 ekin = 27.3638216941813 | erot = 20.0988247739979 | epot = -227.0932868642 | etot = -179.630640396021 +589000 ekin = 26.9522108357383 | erot = 19.0940445155609 | epot = -226.797323932239 | etot = -180.751068580939 +590000 ekin = 27.0814604422477 | erot = 18.9210809272503 | epot = -226.462739616754 | etot = -180.460198247256 +591000 ekin = 26.6304741560081 | erot = 19.7073249259863 | epot = -226.366593304564 | etot = -180.02879422257 +592000 ekin = 26.6793460171722 | erot = 22.0507306271919 | epot = -226.36463028426 | etot = -177.634553639896 +593000 ekin = 26.4435671908487 | erot = 22.0663123802426 | epot = -226.444524918504 | etot = -177.934645347413 +594000 ekin = 26.051479512619 | erot = 21.4158049135016 | epot = -226.573432513486 | etot = -179.106148087365 +595000 ekin = 25.6800098048177 | erot = 21.489745642643 | epot = -226.861484159439 | etot = -179.691728711979 +596000 ekin = 25.4982303265013 | erot = 22.0961692232522 | epot = -227.19375202979 | etot = -179.599352480036 +597000 ekin = 24.4179219809124 | erot = 21.221622910841 | epot = -227.371569607757 | etot = -181.732024716003 +598000 ekin = 24.2598938247207 | erot = 23.7729295468385 | epot = -227.36641699774 | etot = -179.333593626181 +599000 ekin = 24.2026897211424 | erot = 23.7935607586132 | epot = -227.120360675563 | etot = -179.124110195808 +600000 ekin = 24.6901303608034 | erot = 22.0458619441968 | epot = -226.63280531999 | etot = -179.89681301499 +601000 ekin = 24.7093667383309 | erot = 23.9592983403602 | epot = -225.919718139048 | etot = -177.251053060357 +602000 ekin = 24.9977163593162 | erot = 21.6808979179701 | epot = -225.225550361662 | etot = -178.546936084376 +603000 ekin = 24.909080272873 | erot = 19.8567647026369 | epot = -224.510932501025 | etot = -179.745087525515 +604000 ekin = 25.7672016321128 | erot = 20.1058382913628 | epot = -223.859317715152 | etot = -177.986277791676 +605000 ekin = 26.2854405598537 | erot = 18.6086042172451 | epot = -223.341754324839 | etot = -178.44770954774 +606000 ekin = 26.8878269017605 | erot = 16.8626720456841 | epot = -223.037062471522 | etot = -179.286563524077 +607000 ekin = 27.708630558942 | erot = 16.2639676386698 | epot = -222.903954806076 | etot = -178.931356608464 +608000 ekin = 27.5722592645523 | erot = 16.050800679878 | epot = -222.655822923886 | etot = -179.032762979456 +609000 ekin = 27.3059305453791 | erot = 16.2526674395162 | epot = -222.499289767144 | etot = -178.940691782249 +610000 ekin = 26.0529834115964 | erot = 17.5407293679719 | epot = -222.559467243073 | etot = -178.965754463504 +611000 ekin = 25.6444622853818 | erot = 17.5578356444653 | epot = -222.540154641407 | etot = -179.33785671156 +612000 ekin = 26.1044768868262 | erot = 16.7678551448027 | epot = -222.589366667697 | etot = -179.717034636068 +613000 ekin = 26.778105103681 | erot = 17.5411817669898 | epot = -222.737319173291 | etot = -178.418032302621 +614000 ekin = 27.6064782364792 | erot = 16.8092616077952 | epot = -222.738962051088 | etot = -178.323222206813 +615000 ekin = 27.202348500151 | erot = 18.1300982120248 | epot = -222.580596496295 | etot = -177.248149784119 +616000 ekin = 26.7294242583747 | erot = 17.8023339715893 | epot = -222.270889821123 | etot = -177.739131591159 +617000 ekin = 25.9673127266019 | erot = 19.4938436622423 | epot = -221.855677631762 | etot = -176.394521242918 +618000 ekin = 24.6649274148857 | erot = 19.7556140429642 | epot = -221.395419093589 | etot = -176.974877635739 +619000 ekin = 23.8246156062723 | erot = 22.6932905362597 | epot = -220.85765285395 | etot = -174.339746711418 +620000 ekin = 22.3922506676526 | erot = 23.1856908985781 | epot = -220.581162841993 | etot = -175.003221275762 +621000 ekin = 21.4430140463455 | erot = 20.0877017400879 | epot = -220.316250852764 | etot = -178.785535066331 +622000 ekin = 21.0282015425459 | erot = 21.2952952107454 | epot = -220.469702077462 | etot = -178.146205324171 +623000 ekin = 20.5485493901374 | erot = 21.9686222594177 | epot = -220.884709147042 | etot = -178.367537497487 +624000 ekin = 20.4116762130833 | erot = 24.4448345310671 | epot = -221.506951111473 | etot = -176.650440367323 +625000 ekin = 20.7086024723278 | erot = 24.9980231142946 | epot = -222.442357834988 | etot = -176.735732248366 +626000 ekin = 21.41397100679 | erot = 25.3578069120284 | epot = -223.283385353664 | etot = -176.511607434846 +627000 ekin = 21.8080912412149 | erot = 22.9275444026493 | epot = -223.892792640231 | etot = -179.157156996367 +628000 ekin = 22.0606300305555 | erot = 21.9874550553957 | epot = -224.361440644786 | etot = -180.313355558834 +629000 ekin = 22.2686585302 | erot = 23.3956059048975 | epot = -224.755334667347 | etot = -179.091070232249 +630000 ekin = 22.7261581540143 | erot = 23.599198071745 | epot = -224.949694798805 | etot = -178.624338573046 +631000 ekin = 22.7545989614576 | erot = 18.6693303881336 | epot = -225.170398987567 | etot = -183.746469637976 +632000 ekin = 22.8582899163666 | erot = 18.8600074747406 | epot = -225.453249516017 | etot = -183.734952124909 +633000 ekin = 22.5940364544595 | erot = 19.5865726816331 | epot = -225.675890763231 | etot = -183.495281627138 +634000 ekin = 21.7360344990529 | erot = 21.1386827787326 | epot = -225.807787978514 | etot = -182.933070700728 +635000 ekin = 22.3638048171573 | erot = 20.8651345753279 | epot = -226.017654598281 | etot = -182.788715205795 +636000 ekin = 23.2564468915411 | erot = 20.9568292454768 | epot = -226.474810466865 | etot = -182.261534329847 +637000 ekin = 23.7446282139124 | erot = 20.9649035011187 | epot = -227.255190257715 | etot = -182.545658542684 +638000 ekin = 24.9768211335302 | erot = 20.7684051797868 | epot = -228.339137670731 | etot = -182.593911357414 +639000 ekin = 25.6081152991627 | erot = 20.5394040856467 | epot = -229.535959313578 | etot = -183.388439928768 +640000 ekin = 25.882879312268 | erot = 21.5458521538092 | epot = -230.501601623652 | etot = -183.072870157574 +641000 ekin = 26.7192719153612 | erot = 21.5077808734751 | epot = -231.311086176637 | etot = -183.084033387801 +642000 ekin = 26.7533018509874 | erot = 22.3868483570804 | epot = -231.697126060187 | etot = -182.556975852119 +643000 ekin = 27.227638812425 | erot = 22.7444906941992 | epot = -231.70041423596 | etot = -181.728284729336 +644000 ekin = 28.2340179730461 | erot = 21.2142453447777 | epot = -231.34574674841 | etot = -181.897483430587 +645000 ekin = 27.9813501134116 | erot = 19.5632665182491 | epot = -230.723712640252 | etot = -183.179096008591 +646000 ekin = 27.3510433641092 | erot = 20.3180919491713 | epot = -229.805725426514 | etot = -182.136590113233 +647000 ekin = 27.4763651215188 | erot = 20.1973565201653 | epot = -228.883194713424 | etot = -181.20947307174 +648000 ekin = 26.9203103910451 | erot = 19.3299558126679 | epot = -228.183094649897 | etot = -181.932828446184 +649000 ekin = 27.1584207863441 | erot = 19.7773817590138 | epot = -227.851865720852 | etot = -180.916063175494 +650000 ekin = 27.8558677817717 | erot = 21.5235280981856 | epot = -227.854497907235 | etot = -178.475102027277 +651000 ekin = 27.4752369028502 | erot = 22.4969948370604 | epot = -228.056030460106 | etot = -178.083798720195 +652000 ekin = 27.8926782089265 | erot = 20.2366908977832 | epot = -228.25658268699 | etot = -180.12721358028 +653000 ekin = 27.833217461393 | erot = 22.8857793598376 | epot = -228.476748982019 | etot = -177.757752160788 +654000 ekin = 28.0840949255035 | erot = 20.7706125191501 | epot = -228.683833272169 | etot = -179.829125827515 +655000 ekin = 27.403762673065 | erot = 22.3510763116526 | epot = -229.021084688067 | etot = -179.266245703349 +656000 ekin = 28.3726446615757 | erot = 22.7742600500831 | epot = -229.347089574997 | etot = -178.200184863339 +657000 ekin = 27.7030235167448 | erot = 21.8629223338815 | epot = -229.434356479491 | etot = -179.868410628864 +658000 ekin = 27.1759488980294 | erot = 23.4533512480567 | epot = -229.408283419532 | etot = -178.778983273446 +659000 ekin = 27.1576709282284 | erot = 21.6330760247461 | epot = -229.142943895062 | etot = -180.352196942087 +660000 ekin = 26.3221730814178 | erot = 21.7821345770448 | epot = -228.723364173055 | etot = -180.619056514592 +661000 ekin = 25.779491442224 | erot = 22.2970031395793 | epot = -228.256343213546 | etot = -180.179848631742 +662000 ekin = 25.2646841713566 | erot = 21.3867459046999 | epot = -227.695753928069 | etot = -181.044323852012 +663000 ekin = 25.788599860439 | erot = 22.1358077324136 | epot = -227.095496572601 | etot = -179.171088979748 +664000 ekin = 25.6902100255482 | erot = 21.1754933170497 | epot = -226.605702908437 | etot = -179.739999565839 +665000 ekin = 25.8071177593121 | erot = 20.2980512970803 | epot = -226.316135130784 | etot = -180.210966074392 +666000 ekin = 25.654039027879 | erot = 19.3527959955109 | epot = -226.278718912648 | etot = -181.271883889258 +667000 ekin = 25.259919176648 | erot = 21.3448305524703 | epot = -226.010298820921 | etot = -179.405549091803 +668000 ekin = 24.899938000725 | erot = 20.4509835382855 | epot = -225.592827118275 | etot = -180.241905579265 +669000 ekin = 24.445106638769 | erot = 20.2026559802712 | epot = -225.189465074759 | etot = -180.541702455719 +670000 ekin = 23.6375178330896 | erot = 21.4368740508129 | epot = -224.732122186456 | etot = -179.657730302553 +671000 ekin = 23.6282860496992 | erot = 21.7094329321311 | epot = -224.008580994932 | etot = -178.670862013101 +672000 ekin = 24.0984504997224 | erot = 21.9403750101964 | epot = -223.13895872841 | etot = -177.100133218492 +673000 ekin = 23.7973496489823 | erot = 20.9987265259934 | epot = -222.393285441872 | etot = -177.597209266896 +674000 ekin = 23.7065530280889 | erot = 22.376642799205 | epot = -221.700044416557 | etot = -175.616848589263 +675000 ekin = 23.001776123468 | erot = 23.6694964963629 | epot = -221.420479977735 | etot = -174.749207357904 +676000 ekin = 22.5164066205241 | erot = 22.6402910589994 | epot = -221.322788427074 | etot = -176.16609074755 +677000 ekin = 22.5497630953929 | erot = 23.1877936778892 | epot = -221.402074795503 | etot = -175.664518022221 +678000 ekin = 21.5585311333769 | erot = 22.8702436982297 | epot = -221.697973670764 | etot = -177.269198839157 +679000 ekin = 21.4618959055948 | erot = 23.3865040507615 | epot = -222.015748334195 | etot = -177.167348377838 +680000 ekin = 21.4622800320567 | erot = 21.4127199547269 | epot = -222.429797710664 | etot = -179.55479772388 +681000 ekin = 21.1737975880679 | erot = 21.5846131769088 | epot = -222.953468011023 | etot = -180.195057246046 +682000 ekin = 21.7254656898551 | erot = 21.6540443362751 | epot = -223.45869005669 | etot = -180.07918003056 +683000 ekin = 21.4183563237426 | erot = 23.8796952031651 | epot = -224.031962106781 | etot = -178.733910579873 +684000 ekin = 22.2181785671375 | erot = 26.4163907692242 | epot = -224.556597387323 | etot = -175.922028050961 +685000 ekin = 22.4057534349632 | erot = 26.3514235333686 | epot = -224.764117789834 | etot = -176.006940821502 +686000 ekin = 21.9879963383394 | erot = 25.5983588287999 | epot = -224.837162072601 | etot = -177.250806905461 +687000 ekin = 21.7554417881072 | erot = 27.0115877106503 | epot = -224.825418203926 | etot = -176.058388705169 +688000 ekin = 21.8197561062317 | erot = 25.0081437700991 | epot = -224.863055701397 | etot = -178.035155825067 +689000 ekin = 21.5892200304501 | erot = 29.2491439251534 | epot = -224.907328455093 | etot = -174.068964499489 +690000 ekin = 21.8426769308178 | erot = 27.2293005592937 | epot = -224.943981990783 | etot = -175.872004500672 +691000 ekin = 22.1363752207295 | erot = 25.7931707752218 | epot = -224.746736914525 | etot = -176.817190918574 +692000 ekin = 22.5352297800636 | erot = 25.3446974399755 | epot = -224.434434618052 | etot = -176.554507398013 +693000 ekin = 22.8091228929751 | erot = 26.4872450844796 | epot = -224.047374463991 | etot = -174.751006486536 +694000 ekin = 22.4873583888692 | erot = 25.6513676536721 | epot = -223.737465620132 | etot = -175.598739577591 +695000 ekin = 23.1242633624005 | erot = 21.5570288691547 | epot = -223.550411341546 | etot = -178.869119109991 +696000 ekin = 24.0628961042017 | erot = 18.7702329767746 | epot = -223.663714460872 | etot = -180.830585379896 +697000 ekin = 24.4595165378671 | erot = 16.374437330644 | epot = -224.303732218758 | etot = -183.469778350247 +698000 ekin = 25.8305878390951 | erot = 15.1686612882172 | epot = -225.420465790738 | etot = -184.421216663426 +699000 ekin = 26.583760876588 | erot = 16.914220924162 | epot = -227.004086871952 | etot = -183.506105071201 +700000 ekin = 27.5797608451701 | erot = 19.1004834812402 | epot = -228.733304055557 | etot = -182.053059729146 +701000 ekin = 28.092598661006 | erot = 19.107193423995 | epot = -230.4398691701 | etot = -183.240077085099 +702000 ekin = 28.038659655595 | erot = 20.8470907300003 | epot = -231.921720460127 | etot = -183.035970074532 +703000 ekin = 28.1176122670283 | erot = 20.4831386988919 | epot = -233.089326607717 | etot = -184.488575641797 +704000 ekin = 28.6795532382639 | erot = 21.9842156401384 | epot = -233.886659285723 | etot = -183.222890407321 +705000 ekin = 28.4117756447571 | erot = 25.4648529190999 | epot = -234.312539385659 | etot = -180.435910821802 +706000 ekin = 27.4926471672545 | erot = 26.570396574273 | epot = -234.463545747886 | etot = -180.400502006358 +707000 ekin = 26.4290449605895 | erot = 29.8098318595607 | epot = -234.288422874891 | etot = -178.049546054741 +708000 ekin = 26.785682949808 | erot = 26.5168034780305 | epot = -233.599155373867 | etot = -180.296668946029 +709000 ekin = 26.1152543232575 | erot = 25.8699376167037 | epot = -232.62906889387 | etot = -180.643876953909 +710000 ekin = 25.640992098621 | erot = 24.9444607038658 | epot = -231.31659516414 | etot = -180.731142361653 +711000 ekin = 24.8084490562813 | erot = 22.41486490139 | epot = -230.188845489325 | etot = -182.965531531653 +712000 ekin = 24.0206122957558 | erot = 23.3639832553073 | epot = -229.544707677943 | etot = -182.16011212688 +713000 ekin = 23.3232426911543 | erot = 23.9964282538794 | epot = -229.263722517708 | etot = -181.944051572675 +714000 ekin = 23.3805726450359 | erot = 23.0699795298048 | epot = -229.169110187163 | etot = -182.718558012323 +715000 ekin = 22.6342143618995 | erot = 23.6996306944786 | epot = -229.323793869064 | etot = -182.989948812685 +716000 ekin = 22.7503175950267 | erot = 24.6103793866802 | epot = -229.738719755983 | etot = -182.378022774277 +717000 ekin = 22.7487828419965 | erot = 23.3120643428286 | epot = -230.199311355603 | etot = -184.138464170778 +718000 ekin = 23.7440282855966 | erot = 21.6662565298252 | epot = -230.594844861738 | etot = -185.184560046316 +719000 ekin = 23.0053134398269 | erot = 21.1345728705727 | epot = -230.919025277455 | etot = -186.779138967055 +720000 ekin = 22.7927824705925 | erot = 18.6486137418451 | epot = -231.312571080127 | etot = -189.871174867689 +721000 ekin = 22.9406443866908 | erot = 19.8512244181128 | epot = -231.525388298161 | etot = -188.733519493358 +722000 ekin = 22.6168297832631 | erot = 19.1089757310031 | epot = -231.486078548655 | etot = -189.760273034388 +723000 ekin = 23.2145903286558 | erot = 18.4327411531208 | epot = -231.073654493071 | etot = -189.426323011295 +724000 ekin = 23.1941486606142 | erot = 20.1152704224142 | epot = -230.393344877734 | etot = -187.083925794705 +725000 ekin = 23.2117542270878 | erot = 20.0416524857156 | epot = -229.681975652754 | etot = -186.428568939951 +726000 ekin = 22.4943249505552 | erot = 17.6255689470432 | epot = -229.018602806407 | etot = -188.898708908808 +727000 ekin = 23.0134120388946 | erot = 16.0733087173804 | epot = -228.449610641761 | etot = -189.362889885486 +728000 ekin = 23.6002606897018 | erot = 17.3538640496192 | epot = -227.894896906635 | etot = -186.940772167314 +729000 ekin = 23.2666739347333 | erot = 15.9737775925554 | epot = -227.639499131122 | etot = -188.399047603833 +730000 ekin = 23.6369012496368 | erot = 15.0574600338378 | epot = -227.615876852929 | etot = -188.921515569454 +731000 ekin = 24.2843158588705 | erot = 14.7532999805969 | epot = -227.863610813074 | etot = -188.825994973606 +732000 ekin = 24.5920563697733 | erot = 15.441921529354 | epot = -228.208536089551 | etot = -188.174558190424 +733000 ekin = 24.9542143587772 | erot = 16.2528554884185 | epot = -228.886245906842 | etot = -187.679176059646 +734000 ekin = 25.1975745295967 | erot = 17.5309997011736 | epot = -229.874798122519 | etot = -187.146223891749 +735000 ekin = 26.3384002839214 | erot = 20.2147377764707 | epot = -231.034141807835 | etot = -184.481003747443 +736000 ekin = 26.9977201223223 | erot = 21.4312348250696 | epot = -232.517347753316 | etot = -184.088392805924 +737000 ekin = 27.106843703555 | erot = 21.9213211360194 | epot = -233.962863053087 | etot = -184.934698213512 +738000 ekin = 27.0817280355982 | erot = 23.1086627439609 | epot = -235.308416470173 | etot = -185.118025690614 +739000 ekin = 27.7017346367214 | erot = 23.0670600140734 | epot = -236.434348689915 | etot = -185.66555403912 +740000 ekin = 27.414483533319 | erot = 22.8495946003411 | epot = -237.159045352128 | etot = -186.894967218468 +741000 ekin = 27.1254940524986 | erot = 25.2136677791409 | epot = -237.27567454816 | etot = -184.936512716521 +742000 ekin = 26.1007467617893 | erot = 24.3083714669445 | epot = -237.110037846066 | etot = -186.700919617333 +743000 ekin = 25.9661191503059 | erot = 24.9966890539635 | epot = -236.568563108752 | etot = -185.605754904482 +744000 ekin = 25.9610162148347 | erot = 24.0267364726876 | epot = -235.718093082982 | etot = -185.73034039546 +745000 ekin = 25.1903410925453 | erot = 20.0322158938195 | epot = -234.647323333736 | etot = -189.424766347371 +746000 ekin = 24.5549018272587 | erot = 19.5333934287955 | epot = -233.457073304408 | etot = -189.368778048353 +747000 ekin = 24.6969973760579 | erot = 19.684765269497 | epot = -232.388047096093 | etot = -188.006284450538 +748000 ekin = 23.8661147826955 | erot = 18.7566250549712 | epot = -231.325158225068 | etot = -188.702418387402 +749000 ekin = 22.8905662925953 | erot = 17.616297562066 | epot = -230.516546812681 | etot = -190.009682958019 +750000 ekin = 21.7762308247725 | erot = 18.808565539541 | epot = -229.678177029533 | etot = -189.09338066522 +751000 ekin = 21.470435101573 | erot = 19.3561756327847 | epot = -229.009265480618 | etot = -188.18265474626 +752000 ekin = 21.9146908855108 | erot = 21.6932584373869 | epot = -228.339869446873 | etot = -184.731920123975 +753000 ekin = 21.3126722507014 | erot = 19.4830994613168 | epot = -227.826644686117 | etot = -187.030872974099 +754000 ekin = 21.9973420006405 | erot = 18.3087877257647 | epot = -227.734582363023 | etot = -187.428452636618 +755000 ekin = 22.0630883354931 | erot = 17.7232559029141 | epot = -227.901903373361 | etot = -188.115559134954 +756000 ekin = 22.7885108553802 | erot = 18.9466234012732 | epot = -228.388591706589 | etot = -186.653457449935 +757000 ekin = 23.4273630235623 | erot = 19.3375649643952 | epot = -229.062755020945 | etot = -186.297827032987 +758000 ekin = 23.957213137725 | erot = 17.6511752357222 | epot = -229.883345819876 | etot = -188.274957446429 +759000 ekin = 24.8000463898566 | erot = 19.7556788733861 | epot = -230.860841170257 | etot = -186.305115907015 +760000 ekin = 24.3481865433343 | erot = 19.5845017015682 | epot = -231.819085479179 | etot = -187.886397234276 +761000 ekin = 24.7383964493482 | erot = 19.7052128432058 | epot = -232.446954772443 | etot = -188.003345479889 +762000 ekin = 24.7648359199342 | erot = 19.1678127120839 | epot = -232.719408348113 | etot = -188.786759716095 +763000 ekin = 24.6386313272633 | erot = 20.2072282597132 | epot = -232.892027596087 | etot = -188.046168009111 +764000 ekin = 24.535646123958 | erot = 22.5770425253206 | epot = -232.923754633562 | etot = -185.811065984283 +765000 ekin = 23.5513975921745 | erot = 23.8339377954301 | epot = -232.76312879921 | etot = -185.377793411606 +766000 ekin = 23.3033290453631 | erot = 23.9531600538532 | epot = -232.376570600668 | etot = -185.120081501452 +767000 ekin = 23.3690671647366 | erot = 21.8572954539486 | epot = -231.660452995211 | etot = -186.434090376525 +768000 ekin = 23.2846487005283 | erot = 21.3431585578876 | epot = -230.788764884581 | etot = -186.160957626165 +769000 ekin = 22.639077883555 | erot = 22.2121122667711 | epot = -230.121718934275 | etot = -185.270528783949 +770000 ekin = 22.9570384866444 | erot = 20.3561307423381 | epot = -229.677968740405 | etot = -186.364799511423 +771000 ekin = 23.4805185151499 | erot = 19.2296467559715 | epot = -229.218370670653 | etot = -186.508205399532 +772000 ekin = 23.6763149012215 | erot = 18.7804644565625 | epot = -229.197189562088 | etot = -186.740410204304 +773000 ekin = 23.2744828335044 | erot = 18.3799138508661 | epot = -229.294843443837 | etot = -187.640446759466 +774000 ekin = 24.1615203598158 | erot = 18.900317215458 | epot = -229.618073899692 | etot = -186.556236324418 +775000 ekin = 24.5357529676979 | erot = 22.7624377798731 | epot = -230.089626217906 | etot = -182.791435470335 +776000 ekin = 24.5386633146364 | erot = 21.1855266154048 | epot = -230.582204299442 | etot = -184.8580143694 +777000 ekin = 25.2498386289825 | erot = 21.3517051740902 | epot = -231.095135150134 | etot = -184.493591347061 +778000 ekin = 25.1773810922395 | erot = 21.7257078056424 | epot = -231.571689532577 | etot = -184.668600634695 +779000 ekin = 25.0706221380908 | erot = 23.206106433149 | epot = -231.920098805104 | etot = -183.643370233864 +780000 ekin = 25.0073948183737 | erot = 23.7843076919343 | epot = -231.940828129371 | etot = -183.149125619063 +781000 ekin = 25.862328682591 | erot = 20.6147635245773 | epot = -231.660475043653 | etot = -185.183382836484 +782000 ekin = 26.0106396574312 | erot = 18.4785712250649 | epot = -231.228955508185 | etot = -186.739744625689 +783000 ekin = 26.3548094027823 | erot = 20.3847656672935 | epot = -230.847881341015 | etot = -184.108306270939 +784000 ekin = 26.9941621418946 | erot = 20.6658207449783 | epot = -230.342301897166 | etot = -182.682319010294 +785000 ekin = 27.1272259996373 | erot = 20.0337747206907 | epot = -229.609935110564 | etot = -182.448934390236 +786000 ekin = 26.2875323551626 | erot = 21.2032948699837 | epot = -228.871206104526 | etot = -181.380378879379 +787000 ekin = 27.102289880841 | erot = 22.7511634245655 | epot = -228.229695505568 | etot = -178.376242200162 +788000 ekin = 26.9004033303382 | erot = 23.284460905515 | epot = -227.746200253144 | etot = -177.561336017291 +789000 ekin = 26.296015640084 | erot = 23.9396195703878 | epot = -227.4595974325 | etot = -177.223962222028 +790000 ekin = 26.0014289202783 | erot = 26.1183503632237 | epot = -227.52011756713 | etot = -175.400338283628 +791000 ekin = 26.0417552278906 | erot = 24.4511943151671 | epot = -227.865832903974 | etot = -177.372883360917 +792000 ekin = 24.7829875539951 | erot = 25.7161813251446 | epot = -228.337129921754 | etot = -177.837961042614 +793000 ekin = 24.1365737213691 | erot = 26.6815526928053 | epot = -229.030608073319 | etot = -178.212481659145 +794000 ekin = 24.2497409488624 | erot = 27.0890119453063 | epot = -229.824908003136 | etot = -178.486155108968 +795000 ekin = 24.6407890606403 | erot = 27.889646525042 | epot = -230.805274185753 | etot = -178.27483860007 +796000 ekin = 25.3265228383185 | erot = 27.1393608545888 | epot = -231.693076803536 | etot = -179.227193110629 +797000 ekin = 26.6978206545278 | erot = 26.0659091687928 | epot = -232.555084872404 | etot = -179.791355049083 +798000 ekin = 26.3339851949647 | erot = 24.0430202875505 | epot = -233.536000193098 | etot = -183.158994710583 +799000 ekin = 26.9068087522464 | erot = 22.6750790932831 | epot = -234.458642892057 | etot = -184.876755046527 +800000 ekin = 27.1539987641759 | erot = 23.0521331292966 | epot = -235.226285042255 | etot = -185.020153148783 +801000 ekin = 28.1094335983316 | erot = 25.0050175559563 | epot = -235.765403988368 | etot = -182.65095283408 +802000 ekin = 28.2095765951819 | erot = 27.782893768378 | epot = -236.074276063345 | etot = -180.081805699785 +803000 ekin = 27.5705368050616 | erot = 28.8940855937134 | epot = -236.110252388434 | etot = -179.645629989659 +804000 ekin = 28.2157687187553 | erot = 27.74636434354 | epot = -236.079369382529 | etot = -180.117236320234 +805000 ekin = 28.320866013253 | erot = 29.9910811282246 | epot = -235.90913845068 | etot = -177.597191309203 +806000 ekin = 28.1050825504931 | erot = 26.9917671949644 | epot = -235.67969557003 | etot = -180.582845824572 +807000 ekin = 28.9805100536259 | erot = 27.4290452324766 | epot = -235.492989203125 | etot = -179.083433917023 +808000 ekin = 28.6297117732318 | erot = 26.5808708304162 | epot = -235.318064848412 | etot = -180.107482244764 +809000 ekin = 27.6485930588141 | erot = 26.8549775475233 | epot = -234.976046493401 | etot = -180.472475887064 +810000 ekin = 27.3535576125066 | erot = 27.4159280488332 | epot = -234.674224241899 | etot = -179.90473858056 +811000 ekin = 26.8179323011295 | erot = 23.7813000955385 | epot = -234.075151851674 | etot = -183.475919455006 +812000 ekin = 25.4460426056691 | erot = 22.5673797708771 | epot = -233.183000295958 | etot = -185.169577919411 +813000 ekin = 24.6447760709675 | erot = 21.8823489885933 | epot = -232.313502763387 | etot = -185.786377703826 +814000 ekin = 23.5292099931413 | erot = 23.5195364453851 | epot = -231.540928013004 | etot = -184.492181574478 +815000 ekin = 23.2925196788094 | erot = 24.0874833263439 | epot = -231.037162145188 | etot = -183.657159140034 +816000 ekin = 22.5686853714983 | erot = 23.2614654221577 | epot = -230.69420971902 | etot = -184.864058925364 +817000 ekin = 21.8281820071653 | erot = 23.5211267469624 | epot = -230.271049994022 | etot = -184.921741239894 +818000 ekin = 21.2884404725207 | erot = 24.902381419566 | epot = -229.858747495004 | etot = -183.667925602917 +819000 ekin = 21.0872506325458 | erot = 24.5311269568262 | epot = -229.338784368977 | etot = -183.720406779605 +820000 ekin = 20.8955721018969 | erot = 25.3653144031468 | epot = -228.629666907205 | etot = -182.368780402161 +821000 ekin = 21.0405754334193 | erot = 21.6474705949844 | epot = -227.730299016778 | etot = -185.042252988374 +822000 ekin = 20.9721716781629 | erot = 21.5305117214123 | epot = -226.866605601223 | etot = -184.363922201648 +823000 ekin = 21.3134444479004 | erot = 18.9497629221593 | epot = -225.861340505134 | etot = -185.598133135074 +824000 ekin = 20.9747397211228 | erot = 18.6168738131577 | epot = -225.064270159964 | etot = -185.472656625683 +825000 ekin = 21.3904407523305 | erot = 18.7811321199529 | epot = -224.367454518582 | etot = -184.195881646298 +826000 ekin = 21.8928774215356 | erot = 18.0229901458568 | epot = -223.971578653884 | etot = -184.055711086492 +827000 ekin = 22.7137879274166 | erot = 17.003583367025 | epot = -223.925754778761 | etot = -184.208383484319 +828000 ekin = 23.27710684341 | erot = 16.767643058574 | epot = -223.977166786808 | etot = -183.932416884824 +829000 ekin = 22.9248196274624 | erot = 16.7826748876662 | epot = -224.203173005046 | etot = -184.495678489918 +830000 ekin = 23.4067478420881 | erot = 18.7934665997725 | epot = -224.482791288573 | etot = -182.282576846713 +831000 ekin = 23.4821697156405 | erot = 18.2729392007921 | epot = -224.915819953911 | etot = -183.160711037479 +832000 ekin = 23.6777143333438 | erot = 18.2278960830696 | epot = -225.489645423005 | etot = -183.584035006592 +833000 ekin = 23.472191617002 | erot = 18.0493053174397 | epot = -226.176378068975 | etot = -184.654881134533 +834000 ekin = 23.7368728904259 | erot = 18.0164626266613 | epot = -226.92716915948 | etot = -185.173833642392 +835000 ekin = 24.1489739233553 | erot = 18.9188017440221 | epot = -227.647120026384 | etot = -184.579344359006 +836000 ekin = 24.9827825556416 | erot = 19.495588151043 | epot = -228.34763399319 | etot = -183.869263286505 +837000 ekin = 25.256659406949 | erot = 18.944776639966 | epot = -228.876405841141 | etot = -184.674969794226 +838000 ekin = 25.6241774229268 | erot = 18.8091020128683 | epot = -229.371952192415 | etot = -184.938672756619 +839000 ekin = 24.937654890099 | erot = 19.8676941565057 | epot = -229.858542408147 | etot = -185.053193361542 +840000 ekin = 24.4858927113979 | erot = 20.165387717701 | epot = -230.274829908799 | etot = -185.6235494797 +841000 ekin = 25.2649920297918 | erot = 24.2935866726487 | epot = -230.699551533791 | etot = -181.14097283135 +842000 ekin = 25.1332828225798 | erot = 25.2707888267597 | epot = -231.095538575756 | etot = -180.691466926417 +843000 ekin = 25.1733374952435 | erot = 25.9799311513388 | epot = -231.399217706907 | etot = -180.245949060324 +844000 ekin = 25.6427133855964 | erot = 26.078509916794 | epot = -231.550673355361 | etot = -179.82945005297 +845000 ekin = 25.1297698352677 | erot = 24.7021906095904 | epot = -231.460774324866 | etot = -181.628813880008 +846000 ekin = 23.9774924150437 | erot = 26.9234963124405 | epot = -231.260980839143 | etot = -180.359992111659 +847000 ekin = 23.9502284491091 | erot = 25.3996788275484 | epot = -230.920723601702 | etot = -181.570816325044 +848000 ekin = 23.6157182559703 | erot = 24.5551104055363 | epot = -230.306195126828 | etot = -182.135366465322 +849000 ekin = 22.6955823420992 | erot = 25.5456755652408 | epot = -229.458091789959 | etot = -181.216833882618 +850000 ekin = 22.0235173219512 | erot = 26.2022873474972 | epot = -228.638684453437 | etot = -180.412879783989 +851000 ekin = 20.3765133939015 | erot = 25.395296129778 | epot = -227.4038640863 | etot = -181.632054562621 +852000 ekin = 19.712651245867 | erot = 22.1621130679229 | epot = -226.183276861571 | etot = -184.308512547781 +853000 ekin = 19.9928897638392 | erot = 20.0874368006941 | epot = -225.284467563439 | etot = -185.204140998906 +854000 ekin = 19.488290778963 | erot = 19.9220642414495 | epot = -224.827954241878 | etot = -185.417599221465 +855000 ekin = 19.0625095702531 | erot = 23.1790778413437 | epot = -224.708495395363 | etot = -182.466907983767 +856000 ekin = 18.2834869557216 | erot = 23.7444220411258 | epot = -224.914568249835 | etot = -182.886659252988 +857000 ekin = 18.0511175672903 | erot = 23.2575694040762 | epot = -225.28875879225 | etot = -183.980071820884 +858000 ekin = 17.987864866636 | erot = 22.7427618173349 | epot = -225.735338610943 | etot = -185.004711926972 +859000 ekin = 18.1389416018411 | erot = 21.3928666667423 | epot = -226.037392251567 | etot = -186.505583982984 +860000 ekin = 18.6141725361191 | erot = 20.6939972933922 | epot = -226.430306906883 | etot = -187.122137077371 +861000 ekin = 18.401448708528 | erot = 19.0196700230753 | epot = -226.81711834723 | etot = -189.395999615627 +862000 ekin = 19.1545854076427 | erot = 19.6617033547467 | epot = -227.136988769577 | etot = -188.320700007187 +863000 ekin = 19.7210305410548 | erot = 19.0006017481044 | epot = -227.58643743169 | etot = -188.864805142531 +864000 ekin = 20.4150266073574 | erot = 17.4275270266597 | epot = -227.954722358838 | etot = -190.112168724821 +865000 ekin = 19.9419797685448 | erot = 18.4620038343303 | epot = -228.340343063655 | etot = -189.93635946078 +866000 ekin = 20.0439020993958 | erot = 19.7882082077027 | epot = -228.670054548891 | etot = -188.837944241793 +867000 ekin = 20.4021140966254 | erot = 16.6652764682189 | epot = -228.856375548282 | etot = -191.788984983438 +868000 ekin = 20.0497264126648 | erot = 15.1372589940697 | epot = -228.9464789622 | etot = -193.759493555466 +869000 ekin = 20.3294773849231 | erot = 15.3005394579943 | epot = -228.69433960582 | etot = -193.064322762902 +870000 ekin = 21.0889922536593 | erot = 16.6120429683399 | epot = -228.508354500254 | etot = -190.807319278254 +871000 ekin = 21.4383179744103 | erot = 15.7484322870451 | epot = -228.210620038394 | etot = -191.023869776939 +872000 ekin = 20.9086609371529 | erot = 15.1111364530204 | epot = -227.78534180259 | etot = -191.765544412416 +873000 ekin = 20.8153441906834 | erot = 16.5761474970315 | epot = -227.299271762687 | etot = -189.907780074972 +874000 ekin = 20.9430061532593 | erot = 16.1679775988649 | epot = -226.763117412711 | etot = -189.652133660586 +875000 ekin = 20.8032036636137 | erot = 17.5698273129444 | epot = -226.415697698183 | etot = -188.042666721625 +876000 ekin = 21.2280022982517 | erot = 17.9072946891329 | epot = -226.028708918809 | etot = -186.893411931424 +877000 ekin = 20.7314119673013 | erot = 18.8567759065314 | epot = -225.75544933082 | etot = -186.167261456988 +878000 ekin = 19.6914373366095 | erot = 18.0844279043814 | epot = -225.736073224764 | etot = -187.960207983773 +879000 ekin = 19.3380672635332 | erot = 20.3104617632777 | epot = -225.910509841808 | etot = -186.261980814997 +880000 ekin = 20.1253722733107 | erot = 19.6280011404237 | epot = -226.214189456348 | etot = -186.460816042614 +881000 ekin = 20.260952001898 | erot = 21.2130237420557 | epot = -226.552056767178 | etot = -185.078081023224 +882000 ekin = 21.3999865884411 | erot = 20.028991688965 | epot = -226.705011052036 | etot = -185.27603277463 +883000 ekin = 20.9234278576856 | erot = 17.6868960387749 | epot = -226.60324790835 | etot = -187.992924011889 +884000 ekin = 20.2953614821548 | erot = 19.6437828087785 | epot = -226.531387224454 | etot = -186.59224293352 +885000 ekin = 20.0270746296784 | erot = 18.5836278581865 | epot = -226.609255319515 | etot = -187.99855283165 +886000 ekin = 20.5051703060542 | erot = 18.0664735117856 | epot = -226.96051309001 | etot = -188.38886927217 +887000 ekin = 20.6026175595096 | erot = 18.6797072756244 | epot = -227.547206365853 | etot = -188.264881530719 +888000 ekin = 21.2323390050554 | erot = 20.9767236317906 | epot = -228.222699335688 | etot = -186.013636698842 +889000 ekin = 21.8381850979202 | erot = 25.4926747228943 | epot = -229.035049210771 | etot = -181.704189389957 +890000 ekin = 21.4079820277754 | erot = 27.1125219125164 | epot = -229.846306308658 | etot = -181.325802368367 +891000 ekin = 20.7821773337589 | erot = 28.3638087372895 | epot = -230.472553686443 | etot = -181.326567615394 +892000 ekin = 20.9530226613445 | erot = 29.3670280639872 | epot = -230.939235576405 | etot = -180.619184851073 +893000 ekin = 20.7215793854111 | erot = 31.0978810463376 | epot = -231.283574476306 | etot = -179.464114044558 +894000 ekin = 19.8695855128928 | erot = 31.7444008344117 | epot = -231.206530399661 | etot = -179.592544052357 +895000 ekin = 20.4710472102287 | erot = 32.2571471114376 | epot = -230.935329589533 | etot = -178.207135267867 +896000 ekin = 20.0060219077691 | erot = 31.457482996745 | epot = -230.39059212909 | etot = -178.927087224576 +897000 ekin = 19.5877677637713 | erot = 30.8725368660366 | epot = -229.679299884647 | etot = -179.218995254839 +898000 ekin = 19.5649042545347 | erot = 30.6384498007997 | epot = -228.784507947033 | etot = -178.581153891699 +899000 ekin = 19.552835254318 | erot = 29.951844791116 | epot = -227.835835338061 | etot = -178.331155292627 +900000 ekin = 19.2943713466608 | erot = 28.266076937142 | epot = -226.951949904772 | etot = -179.391501620969 +901000 ekin = 18.7114972173853 | erot = 25.779754104773 | epot = -226.031983135348 | etot = -181.54073181319 +902000 ekin = 18.7187531634708 | erot = 21.6824516537499 | epot = -225.333624072524 | etot = -184.932419255303 +903000 ekin = 18.5839455909793 | erot = 21.3627578096897 | epot = -224.798501909831 | etot = -184.851798509162 +904000 ekin = 18.3200785166187 | erot = 21.0384699999409 | epot = -224.517265654088 | etot = -185.158717137528 +905000 ekin = 18.2865838363112 | erot = 22.5880133859383 | epot = -224.539131448644 | etot = -183.664534226394 +906000 ekin = 18.8425722270119 | erot = 21.9502833403246 | epot = -224.826601919796 | etot = -184.03374635246 +907000 ekin = 18.236662353643 | erot = 21.6508700749443 | epot = -225.411854073913 | etot = -185.524321645325 +908000 ekin = 19.0863284801222 | erot = 21.7256265222381 | epot = -225.925114677336 | etot = -185.113159674975 +909000 ekin = 18.6818812816023 | erot = 20.5599381624967 | epot = -226.282894133629 | etot = -187.04107468953 +910000 ekin = 19.0812656136231 | erot = 20.4145332853015 | epot = -226.698405476378 | etot = -187.202606577453 +911000 ekin = 18.9756818734077 | erot = 19.7026952453737 | epot = -227.201366089943 | etot = -188.522988971161 +912000 ekin = 19.4517334786722 | erot = 19.3460897587287 | epot = -227.803131570748 | etot = -189.005308333347 +913000 ekin = 19.487052846439 | erot = 19.4558063021173 | epot = -228.833499323783 | etot = -189.890640175227 +914000 ekin = 20.0013452620764 | erot = 19.8883578065421 | epot = -230.188717691798 | etot = -190.299014623179 +915000 ekin = 20.9190174527208 | erot = 21.5162066495227 | epot = -231.33235656658 | etot = -188.897132464337 +916000 ekin = 21.0408041290695 | erot = 20.6706622893139 | epot = -232.345019966097 | etot = -190.633553547713 +917000 ekin = 21.4182021320957 | erot = 20.3350739399058 | epot = -233.071031631301 | etot = -191.317755559299 +918000 ekin = 22.0971055055586 | erot = 18.9655185938109 | epot = -233.580798555561 | etot = -192.518174456191 +919000 ekin = 22.5486106562676 | erot = 18.3948377546432 | epot = -234.050312577178 | etot = -193.106864166267 +920000 ekin = 23.3254614038352 | erot = 19.5922944610403 | epot = -234.48534712321 | etot = -191.567591258335 +921000 ekin = 23.5452459126828 | erot = 20.5850080381015 | epot = -234.86333152558 | etot = -190.733077574796 +922000 ekin = 23.548927893765 | erot = 21.8847693351997 | epot = -235.159655748814 | etot = -189.72595851985 +923000 ekin = 23.6264800883718 | erot = 24.823701669703 | epot = -235.319615013714 | etot = -186.869433255639 +924000 ekin = 23.4484029162379 | erot = 25.2387940247724 | epot = -235.348442838844 | etot = -186.661245897834 +925000 ekin = 23.7581201931874 | erot = 26.0564388640377 | epot = -235.235791589113 | etot = -185.421232531888 +926000 ekin = 23.2671712311938 | erot = 27.0589269562523 | epot = -234.804321198793 | etot = -184.478223011347 +927000 ekin = 23.0270381962365 | erot = 29.4095030756175 | epot = -234.307939870163 | etot = -181.871398598309 +928000 ekin = 23.140501344179 | erot = 27.0790502179807 | epot = -233.844847745639 | etot = -183.62529618348 +929000 ekin = 22.2734898741118 | erot = 27.0674755071555 | epot = -233.049914186603 | etot = -183.708948805335 +930000 ekin = 21.6339427121745 | erot = 25.2225644782622 | epot = -232.095625490262 | etot = -185.239118299825 +931000 ekin = 20.9327398893734 | erot = 22.3817305427933 | epot = -231.012404519165 | etot = -187.697934086999 +932000 ekin = 20.4822193525442 | erot = 22.9972350477763 | epot = -230.147455250577 | etot = -186.668000850256 +933000 ekin = 19.9660353920888 | erot = 24.4740543358249 | epot = -229.586577553208 | etot = -185.146487825294 +934000 ekin = 19.3969944972964 | erot = 23.9687951023098 | epot = -229.129558438895 | etot = -185.763768839289 +935000 ekin = 18.8183272744565 | erot = 23.494590376579 | epot = -228.829650383225 | etot = -186.516732732189 +936000 ekin = 17.9161255220784 | erot = 26.3097805675523 | epot = -228.725255966952 | etot = -184.499349877321 +937000 ekin = 17.4090072925044 | erot = 28.2846119714553 | epot = -228.595685952083 | etot = -182.902066688124 +938000 ekin = 17.7095687249429 | erot = 28.4339381503916 | epot = -228.52964518166 | etot = -182.386138306326 +939000 ekin = 17.5520408874173 | erot = 27.0941576154426 | epot = -228.469555611768 | etot = -183.823357108909 +940000 ekin = 17.1798814813059 | erot = 25.8182574439337 | epot = -228.458369765694 | etot = -185.460230840454 +941000 ekin = 18.3127771365279 | erot = 26.1340829522924 | epot = -228.605257427977 | etot = -184.158397339157 +942000 ekin = 18.4394261942677 | erot = 25.2374530821303 | epot = -228.698077294464 | etot = -185.021198018066 +943000 ekin = 18.2926042504087 | erot = 25.6259778525084 | epot = -228.714835650707 | etot = -184.796253547789 +944000 ekin = 18.1985428862211 | erot = 27.2944037574074 | epot = -228.856509809853 | etot = -183.363563166225 +945000 ekin = 18.5074415121775 | erot = 27.6142744599881 | epot = -229.209548154119 | etot = -183.087832181953 +946000 ekin = 19.2233115923275 | erot = 29.6826055408939 | epot = -229.700854946272 | etot = -180.79493781305 +947000 ekin = 19.2209049259883 | erot = 28.9510045058796 | epot = -230.298982034344 | etot = -182.127072602476 +948000 ekin = 19.7441291687864 | erot = 26.2906426684946 | epot = -230.779259933587 | etot = -184.744488096306 +949000 ekin = 19.4506543919674 | erot = 26.8808216821455 | epot = -231.059979079511 | etot = -184.728503005398 +950000 ekin = 20.1645638300332 | erot = 25.6765899295848 | epot = -231.255749555474 | etot = -185.414595795856 +951000 ekin = 20.6156032604793 | erot = 23.3780963018669 | epot = -231.363279926649 | etot = -187.369580364303 +952000 ekin = 20.397762898021 | erot = 21.9317814265749 | epot = -231.413145962119 | etot = -189.083601637523 +953000 ekin = 21.0736084801864 | erot = 21.1438497831439 | epot = -231.535497877041 | etot = -189.318039613711 +954000 ekin = 22.2970457335312 | erot = 21.8052778907762 | epot = -231.61117831621 | etot = -187.508854691902 +955000 ekin = 22.119368227684 | erot = 23.2345496019292 | epot = -231.828383029989 | etot = -186.474465200376 +956000 ekin = 21.4925632863079 | erot = 21.4930515028271 | epot = -232.064300377829 | etot = -189.078685588694 +957000 ekin = 20.8333682688634 | erot = 22.8032486196631 | epot = -232.190793202397 | etot = -188.554176313871 +958000 ekin = 19.8501740638794 | erot = 24.4089530073582 | epot = -232.249982663747 | etot = -187.990855592509 +959000 ekin = 19.2680019449165 | erot = 25.5054723395896 | epot = -232.152549289162 | etot = -187.379075004656 +960000 ekin = 19.7794915155661 | erot = 24.9916198272161 | epot = -231.918033034319 | etot = -187.146921691537 +961000 ekin = 19.2751025937535 | erot = 25.8738975860354 | epot = -231.741716385163 | etot = -186.592716205374 +962000 ekin = 19.5337863893408 | erot = 24.9356255276758 | epot = -231.55739577143 | etot = -187.087983854414 +963000 ekin = 18.9999723551409 | erot = 25.6087844134591 | epot = -231.447506108069 | etot = -186.838749339469 +964000 ekin = 18.8752847703513 | erot = 24.9133910089691 | epot = -231.338447218817 | etot = -187.549771439496 +965000 ekin = 19.291184662028 | erot = 26.9200173912746 | epot = -231.200004911496 | etot = -184.988802858193 +966000 ekin = 19.9923055028309 | erot = 23.6358047261547 | epot = -231.075767261895 | etot = -187.44765703291 +967000 ekin = 20.7057273743393 | erot = 22.5792578588179 | epot = -230.879832297065 | etot = -187.594847063908 +968000 ekin = 20.9571086143562 | erot = 20.068819571795 | epot = -230.940571243941 | etot = -189.914643057789 +969000 ekin = 21.1817427297271 | erot = 21.825570412089 | epot = -231.039838752312 | etot = -188.032525610496 +970000 ekin = 21.6764110888425 | erot = 18.6641228269477 | epot = -231.330833358017 | etot = -190.990299442226 +971000 ekin = 21.6293984081523 | erot = 20.4985343496002 | epot = -231.743853106541 | etot = -189.615920348789 +972000 ekin = 21.8321017334667 | erot = 24.1203627051505 | epot = -232.392520631785 | etot = -186.440056193167 +973000 ekin = 22.2085815332021 | erot = 23.693087815175 | epot = -232.912739470324 | etot = -187.011070121947 +974000 ekin = 23.847360088775 | erot = 24.6762793762862 | epot = -233.368044095902 | etot = -184.844404630841 +975000 ekin = 23.8772760481354 | erot = 23.8186315371493 | epot = -233.675813480515 | etot = -185.979905895231 +976000 ekin = 24.8508847684197 | erot = 25.4916104671426 | epot = -233.730386974331 | etot = -183.387891738769 +977000 ekin = 25.503947524416 | erot = 25.977795351237 | epot = -233.493574624629 | etot = -182.011831748976 +978000 ekin = 25.1301492488327 | erot = 23.6629990089568 | epot = -232.903591402815 | etot = -184.110443145025 +979000 ekin = 24.5159482950054 | erot = 23.0268756855837 | epot = -231.985954800605 | etot = -184.443130820016 +980000 ekin = 24.3566813412311 | erot = 22.1670075667718 | epot = -230.990647999228 | etot = -184.466959091225 +981000 ekin = 23.9671984077651 | erot = 21.1028376661039 | epot = -230.100691904619 | etot = -185.03065583075 +982000 ekin = 24.2014904181518 | erot = 21.766454128543 | epot = -229.357805757613 | etot = -183.389861210918 +983000 ekin = 24.7761393638494 | erot = 21.5867990158502 | epot = -228.528183005968 | etot = -182.165244626269 +984000 ekin = 24.762354593527 | erot = 20.3394309281687 | epot = -227.693626881489 | etot = -182.591841359793 +985000 ekin = 23.1046341904546 | erot = 20.4859555093025 | epot = -226.832364952595 | etot = -183.241775252838 +986000 ekin = 22.9917171657182 | erot = 19.6850542240413 | epot = -225.931729672514 | etot = -183.254958282755 +987000 ekin = 23.0807717247555 | erot = 18.7933780253197 | epot = -225.294914737568 | etot = -183.420764987493 +988000 ekin = 23.4666498858033 | erot = 18.3944401818207 | epot = -224.462201121502 | etot = -182.601111053878 +989000 ekin = 22.8294990773184 | erot = 18.3438283695259 | epot = -223.609265715967 | etot = -182.435938269123 +990000 ekin = 22.7066871299428 | erot = 18.5469186746782 | epot = -222.854303271458 | etot = -181.600697466837 +991000 ekin = 22.1383192479068 | erot = 18.4323256035066 | epot = -222.260388874341 | etot = -181.689744022928 +992000 ekin = 21.6825567231224 | erot = 17.8750037490483 | epot = -221.638206330132 | etot = -182.080645857962 +993000 ekin = 21.6468556176261 | erot = 19.5312645063955 | epot = -221.115778704445 | etot = -179.937658580423 +994000 ekin = 21.4467710605119 | erot = 22.8410951796741 | epot = -220.729552539755 | etot = -176.441686299569 +995000 ekin = 22.4071907674418 | erot = 20.5892070380571 | epot = -220.394740391854 | etot = -177.398342586355 +996000 ekin = 22.1528083326795 | erot = 20.104343598086 | epot = -220.236106067073 | etot = -177.978954136307 +997000 ekin = 21.4854485286746 | erot = 19.7617644517094 | epot = -220.302222594169 | etot = -179.055009613785 +998000 ekin = 22.1449863079611 | erot = 20.4384133517957 | epot = -220.780253661163 | etot = -178.196854001406 +999000 ekin = 22.5781778653751 | erot = 21.7041052467461 | epot = -221.511725171924 | etot = -177.229442059803 +1000000 ekin = 22.8867994582225 | erot = 20.7015166614267 | epot = -222.040127669769 | etot = -178.45181155012 + 1000000 307.12188 -227.88356 5.8434328 -199.15333 0.033370746 39304000 +Loop time of 49.9988 on 1 procs for 1000000 steps with 26 atoms + +Performance: 29.480 ns/day, 0.814 hours/ns, 20000.476 timesteps/s, 520.012 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 42.93 | 42.93 | 42.93 | 0.0 | 85.86 +Bond | 1.1736 | 1.1736 | 1.1736 | 0.0 | 2.35 +Neigh | 0.010656 | 0.010656 | 0.010656 | 0.0 | 0.02 +Comm | 0.2842 | 0.2842 | 0.2842 | 0.0 | 0.57 +Output | 0.22398 | 0.22398 | 0.22398 | 0.0 | 0.45 +Modify | 5.1366 | 5.1366 | 5.1366 | 0.0 | 10.27 +Other | | 0.2401 | | | 0.48 + +Nlocal: 26 ave 26 max 26 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 301 ave 301 max 301 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 301 +Ave neighs/atom = 11.576923 +Ave special neighs/atom = 5.0769231 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:50 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 new file mode 100644 index 0000000000..17269a0e91 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 26 atoms + reading velocities ... + 26 velocities + scanning bonds ... + 1 = max bonds/atom + 26 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 24 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 26 settings made for mass +26 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 +Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 299.91159 -228.12763 5.3145589 -200.46358 0.037365999 39304000 +1000 ekin = 23.3890953137706 | erot = 19.6410994523669 | epot = -223.453852955672 | etot = -180.423658189535 +2000 ekin = 23.1636407259802 | erot = 21.3625588607293 | epot = -224.083184468805 | etot = -179.556984882096 +3000 ekin = 23.2806646382535 | erot = 22.5430917602388 | epot = -224.768803309422 | etot = -178.945046910929 +4000 ekin = 23.9982606831172 | erot = 23.3468002016785 | epot = -225.369139455231 | etot = -178.024078570435 +5000 ekin = 24.165831446691 | erot = 24.309309123119 | epot = -225.647777921139 | etot = -177.172637351329 +6000 ekin = 24.6463592700502 | erot = 24.0743926173796 | epot = -225.506791813463 | etot = -176.786039926033 +7000 ekin = 24.3535569942788 | erot = 23.7545459891526 | epot = -225.024405145301 | etot = -176.91630216187 +8000 ekin = 24.1086868814849 | erot = 22.0830265599649 | epot = -224.271997801092 | etot = -178.080284359642 +9000 ekin = 23.6657562363458 | erot = 23.1988592381777 | epot = -223.434572814547 | etot = -176.569957340023 +10000 ekin = 24.3232494642814 | erot = 24.4646190421148 | epot = -222.599352113837 | etot = -173.811483607441 +11000 ekin = 23.5151408185546 | erot = 24.7247948775442 | epot = -221.829445800186 | etot = -173.589510104087 +12000 ekin = 23.1685925031279 | erot = 24.5168702274895 | epot = -221.283446631497 | etot = -173.597983900879 +13000 ekin = 22.5542770265459 | erot = 23.5479562044803 | epot = -220.966648997482 | etot = -174.864415766456 +14000 ekin = 22.1812934517937 | erot = 22.8843950945786 | epot = -220.909390045146 | etot = -175.843701498774 +15000 ekin = 21.6910740763736 | erot = 20.1250177447006 | epot = -221.050686326242 | etot = -179.234594505167 +16000 ekin = 22.4093549284696 | erot = 20.736944453168 | epot = -221.640495388654 | etot = -178.494196007016 +17000 ekin = 22.679935542291 | erot = 20.1401904659941 | epot = -222.539917467256 | etot = -179.71979145897 +18000 ekin = 22.7533504972992 | erot = 22.7880003534203 | epot = -223.497938845177 | etot = -177.956587994457 +19000 ekin = 22.6910824257598 | erot = 22.6775801630857 | epot = -224.397974314829 | etot = -179.029311725984 +20000 ekin = 22.4764122530343 | erot = 23.7180217709408 | epot = -225.277618576532 | etot = -179.083184552557 +21000 ekin = 22.3910995469036 | erot = 23.2739103814922 | epot = -226.054371546779 | etot = -180.389361618383 +22000 ekin = 22.7568179157572 | erot = 22.0747817368078 | epot = -226.677846442693 | etot = -181.846246790128 +23000 ekin = 23.0388332875658 | erot = 21.0371096765612 | epot = -226.873115293642 | etot = -182.797172329515 +24000 ekin = 22.9280961752663 | erot = 20.7369981826367 | epot = -226.863624686001 | etot = -183.198530328098 +25000 ekin = 23.1552675069494 | erot = 22.7089539602996 | epot = -226.603802406831 | etot = -180.739580939582 +26000 ekin = 23.1603034696877 | erot = 24.1226336440568 | epot = -226.15389780062 | etot = -178.870960686875 +27000 ekin = 22.8639956982148 | erot = 24.9308927260679 | epot = -225.734799028865 | etot = -177.939910604582 +28000 ekin = 22.8686406093792 | erot = 24.6702817199638 | epot = -225.404399605183 | etot = -177.865477275841 +29000 ekin = 22.7329708724114 | erot = 24.8206803603672 | epot = -225.288544762221 | etot = -177.734893529442 +30000 ekin = 23.2224697595134 | erot = 24.1186993911772 | epot = -225.281641810783 | etot = -177.940472660093 +31000 ekin = 23.2116217901824 | erot = 21.2110758669747 | epot = -225.379848736762 | etot = -180.957151079605 +32000 ekin = 22.6705345674289 | erot = 21.1222567836579 | epot = -225.626990597972 | etot = -181.834199246885 +33000 ekin = 22.5742554775595 | erot = 23.8115179286177 | epot = -226.196557922731 | etot = -179.810784516554 +34000 ekin = 22.4811628913946 | erot = 23.1703307206031 | epot = -227.132725939902 | etot = -181.481232327904 +35000 ekin = 22.1305128996843 | erot = 21.7768358380573 | epot = -228.241546350004 | etot = -184.334197612262 +36000 ekin = 22.3064371288266 | erot = 23.6090073902907 | epot = -229.291792709837 | etot = -183.37634819072 +37000 ekin = 22.7954030625747 | erot = 26.5244949994173 | epot = -230.44896109423 | etot = -181.129063032238 +38000 ekin = 22.021936313581 | erot = 28.7809192800672 | epot = -231.527472091849 | etot = -180.724616498201 +39000 ekin = 21.4311061995551 | erot = 30.0076463982257 | epot = -232.292567603581 | etot = -180.8538150058 +40000 ekin = 22.1961102532617 | erot = 28.4384036307401 | epot = -232.768624821777 | etot = -182.134110937775 +41000 ekin = 22.1632663233095 | erot = 27.8241627319402 | epot = -232.914504546317 | etot = -182.927075491067 +42000 ekin = 21.1410868775786 | erot = 26.870218141795 | epot = -232.876921131849 | etot = -184.865616112475 +43000 ekin = 21.3077823999456 | erot = 29.4997981842649 | epot = -232.609490543326 | etot = -181.801909959116 +44000 ekin = 21.0347661835417 | erot = 30.6694367820553 | epot = -232.102541009681 | etot = -180.398338044084 +45000 ekin = 20.0324931780768 | erot = 31.6373084224142 | epot = -231.359075571458 | etot = -179.689273970967 +46000 ekin = 19.8601076626959 | erot = 27.6516450222689 | epot = -230.481472443215 | etot = -182.96971975825 +47000 ekin = 19.9409510348244 | erot = 24.2746077209965 | epot = -229.669745177728 | etot = -185.454186421907 +48000 ekin = 20.2692406564663 | erot = 24.1549347770059 | epot = -228.892944669037 | etot = -184.468769235565 +49000 ekin = 19.7308285932956 | erot = 25.0778897556889 | epot = -228.04425642055 | etot = -183.235538071566 +50000 ekin = 19.5156647106263 | erot = 22.9395420283448 | epot = -227.011157830413 | etot = -184.555951091442 +51000 ekin = 19.6024948282074 | erot = 24.0313890926859 | epot = -226.023373255268 | etot = -182.389489334375 +52000 ekin = 19.8286591378852 | erot = 22.0208354730768 | epot = -225.032119343055 | etot = -183.182624732093 +53000 ekin = 19.3575981919063 | erot = 22.7897166177213 | epot = -224.158699287711 | etot = -182.011384478083 +54000 ekin = 19.597311059818 | erot = 23.0278186836853 | epot = -223.146432587169 | etot = -180.521302843666 +55000 ekin = 19.3207453743081 | erot = 22.0468752508626 | epot = -222.056416747158 | etot = -180.688796121987 +56000 ekin = 18.9770983953914 | erot = 20.6896918925267 | epot = -221.097322814135 | etot = -181.430532526217 +57000 ekin = 19.2291543150894 | erot = 18.2138179116051 | epot = -220.326696880738 | etot = -182.883724654043 +58000 ekin = 19.7989002082911 | erot = 17.8570481045562 | epot = -219.66066516308 | etot = -182.004716850233 +59000 ekin = 20.1354893580566 | erot = 18.0275449356124 | epot = -219.109861890285 | etot = -180.946827596616 +60000 ekin = 20.1400165937336 | erot = 16.7164726976129 | epot = -218.497904222289 | etot = -181.641414930942 +61000 ekin = 20.4228706753348 | erot = 15.3375065644544 | epot = -217.960810097484 | etot = -182.200432857695 +62000 ekin = 20.1686520767929 | erot = 14.8244535971852 | epot = -217.555103496147 | etot = -182.561997822169 +63000 ekin = 19.311066891783 | erot = 16.0064319386931 | epot = -217.355843552053 | etot = -182.038344721576 +64000 ekin = 18.6500742611855 | erot = 16.7733280191606 | epot = -217.424263371911 | etot = -182.000861091564 +65000 ekin = 18.4635153424261 | erot = 17.7526461844363 | epot = -217.607200736113 | etot = -181.391039209251 +66000 ekin = 18.0355770665484 | erot = 17.7854478795887 | epot = -217.893635735966 | etot = -182.072610789828 +67000 ekin = 18.7683164596081 | erot = 19.080252052141 | epot = -218.398035038712 | etot = -180.549466526963 +68000 ekin = 19.5633237463074 | erot = 19.5360521825708 | epot = -219.279673886377 | etot = -180.180297957499 +69000 ekin = 20.2188862219853 | erot = 20.833043152936 | epot = -220.282200151711 | etot = -179.23027077679 +70000 ekin = 20.9970230548361 | erot = 19.0573782912758 | epot = -221.465010968187 | etot = -181.410609622075 +71000 ekin = 22.2151160410886 | erot = 18.5722600954372 | epot = -222.617922299482 | etot = -181.830546162956 +72000 ekin = 23.0812082679138 | erot = 20.9554395379592 | epot = -224.077548221027 | etot = -180.040900415154 +73000 ekin = 24.1112874481562 | erot = 21.3307333887604 | epot = -225.657040151954 | etot = -180.215019315038 +74000 ekin = 25.1420377195353 | erot = 21.9350931527228 | epot = -226.775976258114 | etot = -179.698845385856 +75000 ekin = 25.4905080277013 | erot = 20.8716474966583 | epot = -227.44994158467 | etot = -181.087786060311 +76000 ekin = 26.1889777417351 | erot = 18.9373050893096 | epot = -227.905073960386 | etot = -182.778791129342 +77000 ekin = 26.6309013716286 | erot = 19.5714794491311 | epot = -228.081005377953 | etot = -181.878624557193 +78000 ekin = 27.3057147200393 | erot = 19.5248231586005 | epot = -228.040153322525 | etot = -181.209615443886 +79000 ekin = 28.2640662888057 | erot = 20.2680283946488 | epot = -227.894218120703 | etot = -179.362123437249 +80000 ekin = 28.8799414765843 | erot = 21.2755780503219 | epot = -227.426549194774 | etot = -177.271029667868 +81000 ekin = 28.0858484625652 | erot = 21.7656751298647 | epot = -226.837288216447 | etot = -176.985764624017 +82000 ekin = 27.5576739603813 | erot = 21.5235335244366 | epot = -226.257098694314 | etot = -177.175891209496 +83000 ekin = 27.0556891289388 | erot = 22.6329456874458 | epot = -225.705589513145 | etot = -176.01695469676 +84000 ekin = 26.940061932639 | erot = 22.4076039984471 | epot = -225.381193301861 | etot = -176.033527370774 +85000 ekin = 26.525652465447 | erot = 24.4523763465308 | epot = -225.328349372335 | etot = -174.350320560357 +86000 ekin = 26.2488146649899 | erot = 24.9404486230819 | epot = -225.600551034373 | etot = -174.411287746301 +87000 ekin = 25.8921444638997 | erot = 23.8549898140682 | epot = -225.944879311363 | etot = -176.197745033396 +88000 ekin = 26.2103045690956 | erot = 23.1783147432123 | epot = -226.027774274625 | etot = -176.639154962317 +89000 ekin = 25.9835312219869 | erot = 24.2571523005165 | epot = -225.843728416076 | etot = -175.603044893573 +90000 ekin = 25.0784166533943 | erot = 23.6606895366222 | epot = -225.518913230511 | etot = -176.779807040494 +91000 ekin = 25.1550989963772 | erot = 24.611658714882 | epot = -225.044629759836 | etot = -175.277872048577 +92000 ekin = 24.6322805735348 | erot = 23.0482358024938 | epot = -224.419349930751 | etot = -176.738833554722 +93000 ekin = 24.180459234874 | erot = 20.7592927466895 | epot = -223.586212452689 | etot = -178.646460471126 +94000 ekin = 22.9793960468067 | erot = 20.9605947384726 | epot = -222.799813856714 | etot = -178.859823071435 +95000 ekin = 22.0929244299446 | erot = 22.3265647171473 | epot = -222.029129765178 | etot = -177.609640618086 +96000 ekin = 21.7264489643602 | erot = 21.1719809671405 | epot = -221.221631774717 | etot = -178.323201843216 +97000 ekin = 21.4220036658247 | erot = 21.3543994979149 | epot = -220.52548534737 | etot = -177.74908218363 +98000 ekin = 20.0618032599352 | erot = 22.5876428184093 | epot = -219.923872605452 | etot = -177.274426527108 +99000 ekin = 19.3288174724157 | erot = 23.7511671518151 | epot = -219.367088850842 | etot = -176.287104226611 +100000 ekin = 18.4832594748416 | erot = 23.1505163286733 | epot = -218.93835041027 | etot = -177.304574606755 +101000 ekin = 18.2036045057376 | erot = 23.4110434093513 | epot = -218.810174271335 | etot = -177.195526356247 +102000 ekin = 19.1822681980068 | erot = 24.5380584864956 | epot = -219.20692211123 | etot = -175.486595426727 +103000 ekin = 19.6432797836894 | erot = 24.6590917201035 | epot = -219.897839906815 | etot = -175.595468403022 +104000 ekin = 20.1705942940374 | erot = 24.5511248426482 | epot = -220.691524456858 | etot = -175.969805320173 +105000 ekin = 20.4521236023122 | erot = 24.9947804545851 | epot = -221.484673188626 | etot = -176.037769131728 +106000 ekin = 20.2290985098953 | erot = 27.3725689281464 | epot = -222.355241194015 | etot = -174.753573755973 +107000 ekin = 20.8434847834034 | erot = 26.3604100874063 | epot = -223.150037642897 | etot = -175.946142772087 +108000 ekin = 21.412418363854 | erot = 28.2162878060305 | epot = -223.460424862129 | etot = -173.831718692244 +109000 ekin = 21.4548274110363 | erot = 30.3230159735583 | epot = -223.240254565236 | etot = -171.462411180641 +110000 ekin = 21.0213729404218 | erot = 29.3710550207835 | epot = -222.579286542226 | etot = -172.186858581021 +111000 ekin = 20.9967841720846 | erot = 26.7618200853704 | epot = -221.876250793147 | etot = -174.117646535692 +112000 ekin = 21.7067956747879 | erot = 24.9536304481639 | epot = -221.394505355036 | etot = -174.734079232084 +113000 ekin = 21.4580535818318 | erot = 22.7691051824902 | epot = -221.519820597203 | etot = -177.292661832881 +114000 ekin = 22.2538283177252 | erot = 22.1731381215523 | epot = -221.687750534437 | etot = -177.260784095159 +115000 ekin = 22.7396594344901 | erot = 20.8608644375928 | epot = -222.152243091207 | etot = -178.551719219124 +116000 ekin = 24.1978150545115 | erot = 21.3688456685818 | epot = -222.980866690549 | etot = -177.414205967455 +117000 ekin = 25.4933258533643 | erot = 22.6030027739669 | epot = -224.127289238825 | etot = -176.030960611493 +118000 ekin = 26.5632696276086 | erot = 22.5348729995318 | epot = -225.275605356332 | etot = -176.177462729191 +119000 ekin = 27.3565904118111 | erot = 23.0690511978526 | epot = -226.447636503629 | etot = -176.021994893965 +120000 ekin = 29.3515149477993 | erot = 22.9538643517138 | epot = -227.384133540075 | etot = -175.078754240562 +121000 ekin = 30.5981861627602 | erot = 24.0718786854702 | epot = -228.0863722092 | etot = -173.416307360969 +122000 ekin = 30.8337076451186 | erot = 21.5728983486705 | epot = -228.574513811433 | etot = -176.167907817644 +123000 ekin = 31.5034781314849 | erot = 24.7369743163131 | epot = -228.825132694326 | etot = -172.584680246528 +124000 ekin = 32.5012268554423 | erot = 22.3540490361114 | epot = -229.031726697549 | etot = -174.176450805995 +125000 ekin = 32.7837623568763 | erot = 21.6390695988794 | epot = -229.355357070393 | etot = -174.932525114638 +126000 ekin = 34.6524233539235 | erot = 20.8886638576163 | epot = -229.754016136603 | etot = -174.212928925063 +127000 ekin = 34.0859583483566 | erot = 20.87571356796 | epot = -230.186745529299 | etot = -175.225073612982 +128000 ekin = 33.3654002002854 | erot = 17.8696662885262 | epot = -230.452008826877 | etot = -179.216942338065 +129000 ekin = 32.879700171019 | erot = 20.1227819588362 | epot = -230.66738519366 | etot = -177.664903063805 +130000 ekin = 32.5779755655807 | erot = 22.5079760785794 | epot = -230.755161253226 | etot = -175.669209609066 +131000 ekin = 32.0009253066221 | erot = 23.4002695617563 | epot = -230.587415910688 | etot = -175.186221042309 +132000 ekin = 30.6104507658518 | erot = 23.2152891369288 | epot = -230.187009153994 | etot = -176.361269251214 +133000 ekin = 30.0801055500021 | erot = 24.89872490236 | epot = -229.502463574013 | etot = -174.523633121651 +134000 ekin = 29.5703478432003 | erot = 25.5419443422135 | epot = -228.376328698803 | etot = -173.264036513389 +135000 ekin = 27.8494638285662 | erot = 22.1463271581356 | epot = -226.796614760718 | etot = -176.800823774016 +136000 ekin = 26.7413064146633 | erot = 24.9789465866713 | epot = -225.063840059921 | etot = -173.343587058586 +137000 ekin = 25.6957193105053 | erot = 20.7412156523377 | epot = -223.397630735845 | etot = -176.960695773002 +138000 ekin = 23.6295036307194 | erot = 22.156062146465 | epot = -221.790362287186 | etot = -176.004796510002 +139000 ekin = 21.3906159765428 | erot = 21.7146099871639 | epot = -220.250844850201 | etot = -177.145618886495 +140000 ekin = 20.4985795938428 | erot = 20.8528672558468 | epot = -218.909318457139 | etot = -177.557871607449 +141000 ekin = 20.0359949166403 | erot = 21.2802479225099 | epot = -217.577251694951 | etot = -176.261008855801 +142000 ekin = 18.9631892259955 | erot = 19.8482921778254 | epot = -216.554661187853 | etot = -177.743179784032 +143000 ekin = 18.9783976628076 | erot = 21.2354711831475 | epot = -215.943444643249 | etot = -175.729575797294 +144000 ekin = 18.3622731665631 | erot = 20.8806330220523 | epot = -215.526530561429 | etot = -176.283624372814 +145000 ekin = 18.3633778590725 | erot = 20.9808337178454 | epot = -215.141180064732 | etot = -175.796968487814 +146000 ekin = 18.0030641174453 | erot = 20.1144458830263 | epot = -215.132079230415 | etot = -177.014569229944 +147000 ekin = 18.1301824506837 | erot = 20.0682713533626 | epot = -215.558128457865 | etot = -177.359674653818 +148000 ekin = 18.7692583084233 | erot = 18.7526905862527 | epot = -216.118789082644 | etot = -178.596840187968 +149000 ekin = 18.9701199796348 | erot = 21.3459169858944 | epot = -216.705869035682 | etot = -176.389832070152 +150000 ekin = 19.1460230366766 | erot = 22.9728862104556 | epot = -217.097167008501 | etot = -174.978257761369 +151000 ekin = 19.9232401081762 | erot = 20.8260224389232 | epot = -217.485240320698 | etot = -176.735977773599 +152000 ekin = 20.1824516077178 | erot = 20.0237977742153 | epot = -217.959645068293 | etot = -177.75339568636 +153000 ekin = 21.0207460333017 | erot = 21.268492565156 | epot = -218.612718008189 | etot = -176.323479409731 +154000 ekin = 22.534961994461 | erot = 20.9919099903807 | epot = -219.177409254363 | etot = -175.650537269521 +155000 ekin = 22.8618213684381 | erot = 19.5692643142745 | epot = -219.570021303563 | etot = -177.138935620851 +156000 ekin = 23.1051643701801 | erot = 16.4296764652247 | epot = -219.703156446911 | etot = -180.168315611506 +157000 ekin = 23.2429556198953 | erot = 18.0924487652884 | epot = -219.692327251345 | etot = -178.356922866161 +158000 ekin = 23.0355467188289 | erot = 18.2828932149397 | epot = -219.48465834254 | etot = -178.166218408772 +159000 ekin = 23.1050695121227 | erot = 16.2275027241546 | epot = -219.231547257504 | etot = -179.898975021227 +160000 ekin = 22.7521851912413 | erot = 16.6417481664669 | epot = -219.073812974093 | etot = -179.679879616385 +161000 ekin = 23.2701284387811 | erot = 17.0428745048628 | epot = -218.662884465419 | etot = -178.349881521775 +162000 ekin = 23.4520460412958 | erot = 19.2723698795182 | epot = -218.246057424873 | etot = -175.521641504059 +163000 ekin = 23.689441669341 | erot = 16.1416805717479 | epot = -218.038571722494 | etot = -178.207449481405 +164000 ekin = 23.3619421025109 | erot = 18.22708784978 | epot = -218.093772102733 | etot = -176.504742150442 +165000 ekin = 23.8064702087761 | erot = 19.6627695131554 | epot = -218.432017549968 | etot = -174.962777828037 +166000 ekin = 24.0139008081603 | erot = 20.0731418226024 | epot = -219.005861365541 | etot = -174.918818734778 +167000 ekin = 24.0624950654638 | erot = 20.9748981844942 | epot = -219.683607499488 | etot = -174.64621424953 +168000 ekin = 23.9376600547935 | erot = 20.1285243447132 | epot = -220.420457921599 | etot = -176.354273522093 +169000 ekin = 23.5298927322548 | erot = 20.2068282573737 | epot = -221.313567545343 | etot = -177.576846555714 +170000 ekin = 23.7768907445282 | erot = 21.2771123646888 | epot = -222.337207228985 | etot = -177.283204119768 +171000 ekin = 24.1370595671943 | erot = 23.097407978718 | epot = -223.5506470736 | etot = -176.316179527688 +172000 ekin = 24.4668786543479 | erot = 25.3209673144829 | epot = -224.697775116656 | etot = -174.909929147825 +173000 ekin = 24.6123421907483 | erot = 25.55710330111 | epot = -225.927114756503 | etot = -175.757669264645 +174000 ekin = 24.1184603587473 | erot = 26.344734075088 | epot = -227.192870039681 | etot = -176.729675605846 +175000 ekin = 24.6198790665726 | erot = 26.2179225737243 | epot = -228.430613666214 | etot = -177.592812025917 +176000 ekin = 24.6885745323025 | erot = 25.3760086033795 | epot = -229.590489142521 | etot = -179.525906006839 +177000 ekin = 25.8487289680921 | erot = 27.3473459150405 | epot = -230.512099208118 | etot = -177.316024324985 +178000 ekin = 25.7936599135358 | erot = 26.8557059905942 | epot = -231.146460411413 | etot = -178.497094507283 +179000 ekin = 26.1888961667669 | erot = 29.1002089068839 | epot = -231.411675557269 | etot = -176.122570483618 +180000 ekin = 26.0135600090731 | erot = 27.5817576880658 | epot = -231.273797896987 | etot = -177.678480199848 +181000 ekin = 26.2264624864677 | erot = 25.4290614265803 | epot = -230.913442560937 | etot = -179.257918647889 +182000 ekin = 26.1398552438982 | erot = 24.0809599689769 | epot = -230.511696027826 | etot = -180.290880814951 +183000 ekin = 26.1556145401761 | erot = 24.0766924985731 | epot = -229.818266971064 | etot = -179.585959932315 +184000 ekin = 27.3086871074633 | erot = 24.4288359228746 | epot = -228.839517782805 | etot = -177.101994752467 +185000 ekin = 27.4898787585441 | erot = 24.7938482452323 | epot = -227.666559851805 | etot = -175.382832848029 +186000 ekin = 27.3328782862148 | erot = 22.6658429472471 | epot = -226.350890551421 | etot = -176.352169317959 +187000 ekin = 26.7948174814632 | erot = 22.6470038181953 | epot = -225.081289232844 | etot = -175.639467933186 +188000 ekin = 27.8723845439341 | erot = 23.5234220005291 | epot = -223.908358510605 | etot = -172.512551966142 +189000 ekin = 28.1601880311353 | erot = 23.7261081823951 | epot = -222.800556775815 | etot = -170.914260562285 +190000 ekin = 28.0281791381836 | erot = 22.4495336007974 | epot = -221.746357664621 | etot = -171.26864492564 +191000 ekin = 28.3968994364094 | erot = 24.5513031073085 | epot = -220.887175628872 | etot = -167.938973085154 +192000 ekin = 27.7855852746761 | erot = 25.7678221031458 | epot = -220.147377425492 | etot = -166.59397004767 +193000 ekin = 27.0653969351198 | erot = 26.0797976416142 | epot = -219.448938305435 | etot = -166.303743728701 +194000 ekin = 26.591886956892 | erot = 27.2559987926336 | epot = -218.866818380032 | etot = -165.018932630506 +195000 ekin = 25.3875760139297 | erot = 30.4658402325932 | epot = -218.624921486327 | etot = -162.771505239804 +196000 ekin = 25.2698426080245 | erot = 29.5251795522301 | epot = -218.561614102179 | etot = -163.766591941925 +197000 ekin = 24.2903229144824 | erot = 31.8288244412473 | epot = -218.729796870422 | etot = -162.610649514693 +198000 ekin = 23.7276722827683 | erot = 32.0454149389688 | epot = -218.941804941586 | etot = -163.168717719849 +199000 ekin = 23.8463467560116 | erot = 31.965616978649 | epot = -219.185182684789 | etot = -163.373218950129 +200000 ekin = 23.3466100334222 | erot = 29.1399528434376 | epot = -219.23796368071 | etot = -166.75140080385 +201000 ekin = 22.7487917233094 | erot = 25.7244975420237 | epot = -219.090866114478 | etot = -170.617576849145 +202000 ekin = 22.1721332597989 | erot = 26.1511956277664 | epot = -218.778552074906 | etot = -170.455223187341 +203000 ekin = 21.7181344250325 | erot = 26.0871722320545 | epot = -218.390435495582 | etot = -170.585128838495 +204000 ekin = 21.0376564690026 | erot = 25.6226947809704 | epot = -218.05720217283 | etot = -171.396850922857 +205000 ekin = 20.7302702694838 | erot = 24.1599304176471 | epot = -217.801704730261 | etot = -172.91150404313 +206000 ekin = 21.3382716889647 | erot = 25.5578466968796 | epot = -217.705513220694 | etot = -170.80939483485 +207000 ekin = 21.929943769803 | erot = 24.3043622352602 | epot = -217.500606803152 | etot = -171.266300798088 +208000 ekin = 22.3703602648222 | erot = 23.8138985281345 | epot = -217.448247660947 | etot = -171.263988867991 +209000 ekin = 22.8322135815925 | erot = 24.3154754235774 | epot = -217.780621512497 | etot = -170.632932507327 +210000 ekin = 23.531458296701 | erot = 24.1781224892903 | epot = -218.426497805566 | etot = -170.716917019575 +211000 ekin = 24.3108042780204 | erot = 23.8117896585318 | epot = -219.237721464183 | etot = -171.115127527631 +212000 ekin = 25.5498843003363 | erot = 26.3148102829016 | epot = -220.148368449074 | etot = -168.283673865837 +213000 ekin = 26.7904826379273 | erot = 27.2908991135753 | epot = -221.046804647224 | etot = -166.965422895721 +214000 ekin = 27.9221149858574 | erot = 28.825031948947 | epot = -222.018023522183 | etot = -165.270876587378 +215000 ekin = 29.7060783522062 | erot = 26.6259095075768 | epot = -223.029189042779 | etot = -166.697201182996 +216000 ekin = 30.8166996672947 | erot = 27.4426017797676 | epot = -223.860903452266 | etot = -165.601602005203 +217000 ekin = 32.1062758748256 | erot = 28.480190382591 | epot = -224.420307416779 | etot = -163.833841159362 +218000 ekin = 34.0231354353329 | erot = 28.0396432492363 | epot = -224.762754873132 | etot = -162.699976188563 +219000 ekin = 35.0935147430151 | erot = 27.3420247123898 | epot = -224.844267242182 | etot = -162.408727786777 +220000 ekin = 36.6903483012276 | erot = 26.4046555014058 | epot = -224.674345925857 | etot = -161.579342123224 +221000 ekin = 37.0162358447748 | erot = 27.0644284813825 | epot = -224.294474180674 | etot = -160.213809854517 +222000 ekin = 37.2286352786866 | erot = 29.6452455867393 | epot = -223.646643282534 | etot = -156.772762417109 +223000 ekin = 37.1371706719775 | erot = 29.0338627066246 | epot = -223.02426705627 | etot = -156.853233677668 +224000 ekin = 37.7973687387399 | erot = 29.5349839686757 | epot = -222.452854546985 | etot = -155.120501839569 +225000 ekin = 37.8069973966967 | erot = 29.6422173132561 | epot = -221.948475640134 | etot = -154.499260930181 +226000 ekin = 37.3773991674874 | erot = 28.09605253081 | epot = -221.560990142565 | etot = -156.087538444267 +227000 ekin = 37.527755930331 | erot = 27.6808541221468 | epot = -221.483330512065 | etot = -156.274720459587 +228000 ekin = 38.4470067960778 | erot = 27.8146638288223 | epot = -221.276464510559 | etot = -155.014793885659 +229000 ekin = 39.1836147193506 | erot = 25.70095638706 | epot = -220.76463229751 | etot = -155.880061191099 +230000 ekin = 38.098964797451 | erot = 24.8377609072553 | epot = -219.990046626182 | etot = -157.053320921476 +231000 ekin = 36.1669798709402 | erot = 24.8108260069157 | epot = -219.186001203482 | etot = -158.208195325626 +232000 ekin = 36.2198119684192 | erot = 23.4065079338759 | epot = -218.360141683673 | etot = -158.733821781378 +233000 ekin = 34.9532458569289 | erot = 23.2139515607483 | epot = -217.384236817587 | etot = -159.21703939991 +234000 ekin = 33.7585177506638 | erot = 23.2139271576215 | epot = -216.590184561824 | etot = -159.617739653539 +235000 ekin = 32.5335134532386 | erot = 20.9776329357582 | epot = -215.733671699105 | etot = -162.222525310108 +236000 ekin = 31.2185234875872 | erot = 19.9753628972515 | epot = -214.975828378577 | etot = -163.781941993739 +237000 ekin = 30.4570685291383 | erot = 20.3543664256712 | epot = -214.499912868784 | etot = -163.688477913975 +238000 ekin = 30.2614586325617 | erot = 21.1886832898794 | epot = -214.361693708507 | etot = -162.911551786066 +239000 ekin = 30.4636237840023 | erot = 21.5186095678481 | epot = -214.441235319161 | etot = -162.459001967311 +240000 ekin = 30.1210218817714 | erot = 22.9784100820642 | epot = -214.858237469049 | etot = -161.758805505214 +241000 ekin = 30.3658666076425 | erot = 21.7261951348677 | epot = -215.434563747826 | etot = -163.342502005316 +242000 ekin = 31.3867694338899 | erot = 23.9153977300584 | epot = -216.072635834797 | etot = -160.770468670849 +243000 ekin = 31.1900708118743 | erot = 26.6273701728334 | epot = -216.694600313578 | etot = -158.877159328871 +244000 ekin = 31.1564882281032 | erot = 25.7058049551927 | epot = -217.265423330916 | etot = -160.40313014762 +245000 ekin = 32.4795705887834 | erot = 24.8995064535899 | epot = -217.720460688445 | etot = -160.341383646071 +246000 ekin = 32.872022647284 | erot = 22.333159106545 | epot = -218.061658138483 | etot = -162.856476384654 +247000 ekin = 33.4284260628809 | erot = 24.7591927551794 | epot = -218.263367004162 | etot = -160.075748186102 +248000 ekin = 32.4614988934282 | erot = 23.8539156460749 | epot = -218.302805394426 | etot = -161.987390854923 +249000 ekin = 32.1756176499451 | erot = 23.8767681339002 | epot = -218.304065910381 | etot = -162.251680126536 +250000 ekin = 32.2198888158387 | erot = 22.8375122406138 | epot = -218.144356419904 | etot = -163.086955363451 +251000 ekin = 32.3333741154669 | erot = 22.2973676925259 | epot = -217.820854022814 | etot = -163.190112214821 +252000 ekin = 32.6075392448557 | erot = 23.4769293692233 | epot = -217.429569515478 | etot = -161.345100901399 +253000 ekin = 32.4971688738337 | erot = 24.3030528043931 | epot = -216.984279947662 | etot = -160.184058269435 +254000 ekin = 31.8923138747249 | erot = 24.1415429248736 | epot = -216.529032269096 | etot = -160.495175469498 +255000 ekin = 31.4024206135883 | erot = 23.8129962675095 | epot = -216.108885088425 | etot = -160.893468207327 +256000 ekin = 31.4668964539727 | erot = 25.1555403914743 | epot = -215.777158729505 | etot = -159.154721884058 +257000 ekin = 30.1578271181182 | erot = 25.2224232604804 | epot = -215.398717214095 | etot = -160.018466835496 +258000 ekin = 30.052285311838 | erot = 25.7673281945382 | epot = -215.003795923615 | etot = -159.184182417239 +259000 ekin = 28.790005223663 | erot = 25.9071617879885 | epot = -214.672294871174 | etot = -159.975127859522 +260000 ekin = 28.824260164679 | erot = 25.3762394651934 | epot = -214.438705752551 | etot = -160.238206122679 +261000 ekin = 28.4516249893281 | erot = 24.3935835063456 | epot = -214.056107967132 | etot = -161.210899471458 +262000 ekin = 27.8087703289653 | erot = 22.2360995417882 | epot = -213.52238610892 | etot = -163.477516238166 +263000 ekin = 27.2988805169285 | erot = 22.3316425638774 | epot = -213.209725671803 | etot = -163.579202590997 +264000 ekin = 27.7705600653735 | erot = 23.2743633836993 | epot = -213.047162146333 | etot = -162.00223869726 +265000 ekin = 27.8709800491321 | erot = 23.5211350737156 | epot = -212.86511367636 | etot = -161.472998553512 +266000 ekin = 27.9918135619683 | erot = 23.7232253135648 | epot = -212.641590093523 | etot = -160.92655121799 +267000 ekin = 28.5234357395516 | erot = 24.0561346062967 | epot = -212.474716645669 | etot = -159.895146299821 +268000 ekin = 28.870687215238 | erot = 23.8306167734046 | epot = -212.508203135534 | etot = -159.806899146891 +269000 ekin = 29.2607991052743 | erot = 24.1133194421955 | epot = -212.537028623626 | etot = -159.162910076156 +270000 ekin = 28.5296269979822 | erot = 25.8732554655093 | epot = -212.31029476064 | etot = -157.907412297149 +271000 ekin = 28.9212541346642 | erot = 22.4473820635914 | epot = -212.324230216607 | etot = -160.955594018351 +272000 ekin = 29.6765055230995 | erot = 25.0261431612911 | epot = -212.625998104986 | etot = -157.923349420595 +273000 ekin = 29.7746844908601 | erot = 24.8432699221532 | epot = -212.915298586345 | etot = -158.297344173332 +274000 ekin = 29.9742743190805 | erot = 24.1999136810544 | epot = -213.041688653029 | etot = -158.867500652894 +275000 ekin = 29.5940338177725 | erot = 25.4819616152138 | epot = -213.067492330014 | etot = -157.991496897028 +276000 ekin = 30.2832320515794 | erot = 24.0723230457662 | epot = -213.253118366949 | etot = -158.897563269603 +277000 ekin = 30.4700966177081 | erot = 23.2212292830064 | epot = -213.621019589182 | etot = -159.929693688468 +278000 ekin = 30.67056507496 | erot = 24.4631770981652 | epot = -214.132222700305 | etot = -158.99848052718 +279000 ekin = 30.6357169264609 | erot = 19.8864866789268 | epot = -214.377025145056 | etot = -163.854821539669 +280000 ekin = 30.6259905609972 | erot = 18.665780487499 | epot = -214.4335387873 | etot = -165.141767738804 +281000 ekin = 30.5241190789795 | erot = 17.9408431561163 | epot = -214.446974019773 | etot = -165.982011784677 +282000 ekin = 30.2531856243418 | erot = 16.5789274482122 | epot = -214.432453220479 | etot = -167.600340147925 +283000 ekin = 29.4314819022737 | erot = 14.9978652258759 | epot = -214.684414044695 | etot = -170.255066916545 +284000 ekin = 30.4463102919895 | erot = 13.9713280303416 | epot = -215.084928089016 | etot = -170.667289766685 +285000 ekin = 31.0787017394374 | erot = 14.4465786715638 | epot = -215.631231905545 | etot = -170.105951494544 +286000 ekin = 31.1520316133396 | erot = 14.4930799914547 | epot = -216.300770408183 | etot = -170.655658803388 +287000 ekin = 32.351781766203 | erot = 16.6989745946407 | epot = -216.963878558876 | etot = -167.913122198032 +288000 ekin = 33.005541771032 | erot = 18.134215920469 | epot = -217.673454635531 | etot = -166.53369694403 +289000 ekin = 31.8618589209554 | erot = 18.4772719583004 | epot = -218.379723064086 | etot = -168.04059218483 +290000 ekin = 31.8344575426835 | erot = 19.7422352431296 | epot = -219.065973771903 | etot = -167.48928098609 +291000 ekin = 31.9518185930539 | erot = 20.621627266815 | epot = -219.570480405878 | etot = -166.997034546009 +292000 ekin = 32.6439243188648 | erot = 22.5302835108441 | epot = -219.892967757819 | etot = -164.71875992811 +293000 ekin = 31.4829450686937 | erot = 21.3316743728505 | epot = -219.958047969435 | etot = -167.143428527891 +294000 ekin = 31.6375180782201 | erot = 21.238624328018 | epot = -219.885582904306 | etot = -167.009440498068 +295000 ekin = 31.0253762184145 | erot = 22.4882784169501 | epot = -219.814823672917 | etot = -166.301169037553 +296000 ekin = 30.8124492018732 | erot = 21.713403837488 | epot = -219.710246306785 | etot = -167.184393267424 +297000 ekin = 30.6962957393053 | erot = 21.2387002912486 | epot = -219.446213938046 | etot = -167.511217907492 +298000 ekin = 30.2751045254072 | erot = 21.2588516620972 | epot = -219.069662492538 | etot = -167.535706305033 +299000 ekin = 30.2654549878554 | erot = 19.9050587659481 | epot = -218.83938043646 | etot = -168.668866682656 +300000 ekin = 30.0162960943798 | erot = 22.3467328364631 | epot = -218.595337871123 | etot = -166.232308940281 +301000 ekin = 29.6491535845194 | erot = 19.8418961043971 | epot = -218.642810229095 | etot = -169.151760540178 +302000 ekin = 29.8744151298851 | erot = 18.1734214421702 | epot = -218.872367696606 | etot = -170.824531124551 +303000 ekin = 30.5896376432356 | erot = 18.3628979719825 | epot = -219.385303830194 | etot = -170.432768214976 +304000 ekin = 30.8134874190764 | erot = 19.9151431938305 | epot = -220.085697355968 | etot = -169.357066743061 +305000 ekin = 31.2099214170774 | erot = 20.6624279502763 | epot = -220.87374787482 | etot = -169.001398507466 +306000 ekin = 31.5379241870259 | erot = 21.2324529548628 | epot = -221.686063335012 | etot = -168.915686193123 +307000 ekin = 32.2075616004244 | erot = 23.1042657052719 | epot = -222.42594670972 | etot = -167.114119404023 +308000 ekin = 32.5982898681942 | erot = 23.3642432119933 | epot = -222.922692953037 | etot = -166.96015987285 +309000 ekin = 32.4315134575481 | erot = 23.8633076366207 | epot = -223.184000926484 | etot = -166.889179832315 +310000 ekin = 32.1158150633277 | erot = 23.3576385972236 | epot = -223.437543256612 | etot = -167.964089596061 +311000 ekin = 33.0748530306084 | erot = 23.7247742792265 | epot = -223.800381213498 | etot = -167.000753903663 +312000 ekin = 34.0642489795215 | erot = 24.4005553104056 | epot = -224.015053783926 | etot = -165.550249493999 +313000 ekin = 33.3941820316022 | erot = 22.8657808322912 | epot = -224.224694496321 | etot = -167.964731632427 +314000 ekin = 32.8831430452506 | erot = 22.3521386618945 | epot = -224.328814014534 | etot = -169.093532307389 +315000 ekin = 32.6439304562237 | erot = 24.3395053721963 | epot = -224.403018580942 | etot = -167.419582752522 +316000 ekin = 32.5730201874399 | erot = 25.8715269487792 | epot = -224.429728916574 | etot = -165.985181780355 +317000 ekin = 31.691345936356 | erot = 27.6427411551856 | epot = -224.240735797652 | etot = -164.90664870611 +318000 ekin = 31.1651843502561 | erot = 26.792649242559 | epot = -223.979858021812 | etot = -166.022024428997 +319000 ekin = 31.7256674778549 | erot = 23.8408589889958 | epot = -223.590556061656 | etot = -168.024029594805 +320000 ekin = 31.7060827776545 | erot = 26.4684067579431 | epot = -223.249262306441 | etot = -165.074772770843 +321000 ekin = 31.6031237667453 | erot = 27.4509881705089 | epot = -223.147476089125 | etot = -164.093364151871 +322000 ekin = 30.3481482285902 | erot = 27.7216584811217 | epot = -222.937601855219 | etot = -164.867795145507 +323000 ekin = 29.3228062491828 | erot = 29.7362160481481 | epot = -222.700827695669 | etot = -163.641805398338 +324000 ekin = 30.0900580978278 | erot = 28.3009812560174 | epot = -222.702754485984 | etot = -164.311715132138 +325000 ekin = 28.9724465195176 | erot = 31.4194498954201 | epot = -222.678079364986 | etot = -162.286182950048 +326000 ekin = 29.6807119193739 | erot = 29.8368278955146 | epot = -222.408655317023 | etot = -162.891115502134 +327000 ekin = 30.1649693984999 | erot = 27.5646417986177 | epot = -222.067063198242 | etot = -164.337452001125 +328000 ekin = 30.3408094046572 | erot = 26.5580828070968 | epot = -221.711839024904 | etot = -164.81294681315 +329000 ekin = 29.8995896328213 | erot = 24.6642798907952 | epot = -221.317020601826 | etot = -166.753151078209 +330000 ekin = 29.1001168093683 | erot = 27.3082067727852 | epot = -221.023371065897 | etot = -164.615047483743 +331000 ekin = 29.3349918490581 | erot = 27.5476077161585 | epot = -220.672722242025 | etot = -163.790122676808 +332000 ekin = 29.5801979725688 | erot = 27.2721545786742 | epot = -220.153700211885 | etot = -163.301347660642 +333000 ekin = 28.8256885894683 | erot = 28.4593129139449 | epot = -219.338463478995 | etot = -162.053461975582 +334000 ekin = 29.6068579849397 | erot = 28.2610782505578 | epot = -218.379292922818 | etot = -160.511356687321 +335000 ekin = 29.1933888055502 | erot = 24.4887025724561 | epot = -217.4599543906 | etot = -163.777863012594 +336000 ekin = 30.3071264565402 | erot = 24.6669652156945 | epot = -216.60775546459 | etot = -161.633663792355 +337000 ekin = 30.1138123587914 | erot = 23.8810939282739 | epot = -215.898081222498 | etot = -161.903174935432 +338000 ekin = 30.3467366262656 | erot = 22.5089541109543 | epot = -215.413223769271 | etot = -162.557533032051 +339000 ekin = 29.2241742025094 | erot = 22.9493211875938 | epot = -215.161328851956 | etot = -162.987833461853 +340000 ekin = 30.5171940243424 | erot = 22.1230395830795 | epot = -215.211023569382 | etot = -162.57078996196 +341000 ekin = 30.2990451747942 | erot = 22.0969746780876 | epot = -215.550935218903 | etot = -163.154915366021 +342000 ekin = 30.4576471953255 | erot = 22.8638016940834 | epot = -216.001360002558 | etot = -162.679911113149 +343000 ekin = 30.5621281016439 | erot = 24.4583122950448 | epot = -215.621289056559 | etot = -160.60084865987 +344000 ekin = 32.4519608541283 | erot = 28.5755206655114 | epot = -217.653133425583 | etot = -156.625651905943 +345000 ekin = 31.64186545717 | erot = 32.3842692970166 | epot = -218.708632568144 | etot = -154.682497813957 +346000 ekin = 31.9511111644616 | erot = 30.5483257685665 | epot = -219.014511159579 | etot = -156.515074226551 +347000 ekin = 30.7638178773701 | erot = 27.010357983763 | epot = -218.824845563665 | etot = -161.050669702532 +348000 ekin = 29.6838704731132 | erot = 24.9056867476275 | epot = -218.325871696026 | etot = -163.736314475285 +349000 ekin = 28.9550895574073 | erot = 28.1956349832957 | epot = -217.605556361012 | etot = -160.454831820309 +350000 ekin = 27.8908728899355 | erot = 27.4303776928326 | epot = -216.700972313945 | etot = -161.379721731177 +351000 ekin = 27.2743250159904 | erot = 29.1647807029794 | epot = -215.665223366206 | etot = -159.226117647236 +352000 ekin = 26.9616211386809 | erot = 30.6797251227193 | epot = -214.694539908538 | etot = -157.053193647138 +353000 ekin = 27.348832713772 | erot = 29.6015507795374 | epot = -213.896099461977 | etot = -156.945715968668 +354000 ekin = 26.1507956829831 | erot = 30.7563048879842 | epot = -213.372078199846 | etot = -156.464977628878 +355000 ekin = 25.6190603614018 | erot = 32.5689348009866 | epot = -213.269655859313 | etot = -155.081660696925 +356000 ekin = 25.3669997880113 | erot = 31.0472983763093 | epot = -213.450675449262 | etot = -157.036377284941 +357000 ekin = 25.312758671354 | erot = 31.8479342344932 | epot = -213.695546912804 | etot = -156.534854006956 +358000 ekin = 26.0187679198773 | erot = 31.9758685586405 | epot = -214.009662837489 | etot = -156.015026358971 +359000 ekin = 26.5607225985322 | erot = 29.9396653432688 | epot = -214.192283973959 | etot = -157.691896032158 +360000 ekin = 26.5902994062844 | erot = 25.9943052658055 | epot = -214.124414590833 | etot = -161.539809918743 +361000 ekin = 26.4813018415084 | erot = 24.2616769392684 | epot = -213.85398393885 | etot = -163.111005158073 +362000 ekin = 26.5033314195901 | erot = 26.0990581372781 | epot = -213.545462747037 | etot = -160.943073190169 +363000 ekin = 27.1571133077625 | erot = 25.5067564699878 | epot = -213.334127657296 | etot = -160.670257879545 +364000 ekin = 27.887930595824 | erot = 23.9887993938849 | epot = -212.852508852937 | etot = -160.975778863229 +365000 ekin = 27.967758403039 | erot = 20.854424772872 | epot = -212.290084332197 | etot = -163.467901156286 +366000 ekin = 27.0060927016748 | erot = 20.9170666829011 | epot = -211.843808452849 | etot = -163.920649068273 +367000 ekin = 26.6039768958553 | erot = 23.5699590216425 | epot = -211.557557482102 | etot = -161.383621564604 +368000 ekin = 26.1143377810244 | erot = 24.5362401721805 | epot = -211.384448343648 | etot = -160.733870390443 +369000 ekin = 25.8118104643539 | erot = 22.5391701033533 | epot = -211.406298065096 | etot = -163.055317497389 +370000 ekin = 25.8673504840375 | erot = 22.7731029418705 | epot = -211.64775421813 | etot = -163.007300792222 +371000 ekin = 26.4562588492746 | erot = 23.9905423895665 | epot = -211.815727194594 | etot = -161.368925955753 +372000 ekin = 26.3200791949476 | erot = 22.7189248210943 | epot = -212.040306718402 | etot = -163.00130270236 +373000 ekin = 25.3755530875695 | erot = 25.0380776190232 | epot = -212.072031912698 | etot = -161.658401206106 +374000 ekin = 24.1185712423776 | erot = 25.2038789684849 | epot = -211.935098223519 | etot = -162.612648012656 +375000 ekin = 24.0684595712565 | erot = 23.8499797175989 | epot = -211.793395733322 | etot = -163.874956444466 +376000 ekin = 22.5016871580896 | erot = 25.6118197832101 | epot = -211.409769064352 | etot = -163.296262123053 +377000 ekin = 22.0986939181275 | erot = 24.7100299168742 | epot = -211.045176539028 | etot = -164.236452704026 +378000 ekin = 21.1684841682011 | erot = 25.5492888669468 | epot = -210.660306734319 | etot = -163.942533699171 +379000 ekin = 20.010673971417 | erot = 29.7040277439788 | epot = -210.244603948909 | etot = -160.529902233513 +380000 ekin = 18.6364568547605 | erot = 33.3248766383446 | epot = -210.07312332186 | etot = -158.111789828755 +381000 ekin = 19.1123943604215 | erot = 29.9128186030511 | epot = -210.121981236354 | etot = -161.096768272881 +382000 ekin = 18.488667416097 | erot = 30.6195763742908 | epot = -210.287398668517 | etot = -161.179154878129 +383000 ekin = 17.9867949709769 | erot = 30.4649216268247 | epot = -210.644012249165 | etot = -162.192295651363 +384000 ekin = 18.086653701317 | erot = 30.1682137046886 | epot = -211.454411912153 | etot = -163.199544506147 +385000 ekin = 17.9753010304936 | erot = 30.6444125095994 | epot = -212.324100690826 | etot = -163.704387150733 +386000 ekin = 17.7413668486357 | erot = 30.1012874369922 | epot = -213.259558577419 | etot = -165.416904291791 +387000 ekin = 18.2186784291797 | erot = 28.3029350222839 | epot = -214.13010996286 | etot = -167.608496511396 +388000 ekin = 19.292870919104 | erot = 29.2720917147751 | epot = -214.909679402132 | etot = -166.344716768253 +389000 ekin = 20.4945794932603 | erot = 28.0408016793114 | epot = -215.715111099094 | etot = -167.179729926522 +390000 ekin = 21.4293155611672 | erot = 27.6051655638294 | epot = -216.558290196654 | etot = -167.523809071658 +391000 ekin = 22.3503257992232 | erot = 27.4540127593509 | epot = -217.20378427697 | etot = -167.399445718396 +392000 ekin = 23.5932179843426 | erot = 27.1057144401021 | epot = -217.566275239839 | etot = -166.867342815394 +393000 ekin = 23.7557009876267 | erot = 26.6637680566362 | epot = -217.563756363461 | etot = -167.144287319198 +394000 ekin = 24.4865989987554 | erot = 23.220719991203 | epot = -217.316082883998 | etot = -169.608763894039 +395000 ekin = 24.7595946480364 | erot = 21.8918507069135 | epot = -216.949712698095 | etot = -170.298267343146 +396000 ekin = 24.982464352614 | erot = 22.3354930515494 | epot = -216.416874060901 | etot = -169.098916656738 +397000 ekin = 25.3000376061139 | erot = 18.3060350402966 | epot = -216.050469640324 | etot = -172.444396993914 +398000 ekin = 25.2861319964392 | erot = 20.4058007069709 | epot = -215.762453015488 | etot = -170.070520312078 +399000 ekin = 25.6910756014433 | erot = 17.2458372762693 | epot = -215.449363397805 | etot = -172.512450520093 +400000 ekin = 26.4568923302747 | erot = 20.1388849072962 | epot = -215.187132762528 | etot = -168.591355524957 +401000 ekin = 26.473671301154 | erot = 21.2374664754577 | epot = -215.079189181665 | etot = -167.368051405054 +402000 ekin = 26.9661026532044 | erot = 22.1166726988484 | epot = -215.024717195915 | etot = -165.941941843862 +403000 ekin = 27.3226322136654 | erot = 22.8394489464986 | epot = -214.937632585437 | etot = -164.775551425273 +404000 ekin = 27.8935295461376 | erot = 22.8817369521021 | epot = -214.928408259317 | etot = -164.153141761077 +405000 ekin = 27.9407970657418 | erot = 23.0166667876302 | epot = -215.070859098588 | etot = -164.113395245216 +406000 ekin = 27.8467131583262 | erot = 24.0920158980814 | epot = -215.21564472779 | etot = -163.276915671383 +407000 ekin = 28.1735323456276 | erot = 24.4127070079513 | epot = -215.337654426137 | etot = -162.751415072558 +408000 ekin = 28.0581746931196 | erot = 25.4097057702624 | epot = -215.286666631528 | etot = -161.818786168146 +409000 ekin = 28.4575477087421 | erot = 27.0137932992507 | epot = -215.176589089366 | etot = -159.705248081373 +410000 ekin = 29.085031171955 | erot = 22.9273639101281 | epot = -215.097105269705 | etot = -163.084710187621 +411000 ekin = 28.9671748142217 | erot = 21.8822014832413 | epot = -214.921613402608 | etot = -164.072237105145 +412000 ekin = 29.4064096216751 | erot = 22.5408195016054 | epot = -214.627366977766 | etot = -162.680137854486 +413000 ekin = 29.1673383998257 | erot = 22.321938064771 | epot = -214.45055434655 | etot = -162.961277881953 +414000 ekin = 29.0111563106279 | erot = 18.7948327919326 | epot = -214.508701808542 | etot = -166.702712705981 +415000 ekin = 29.2163525836019 | erot = 18.3535912788607 | epot = -214.674303958464 | etot = -167.104360096002 +416000 ekin = 29.3094098198563 | erot = 17.6709040312385 | epot = -214.87605897502 | etot = -167.895745123926 +417000 ekin = 29.3855401131447 | erot = 16.4805818891855 | epot = -215.210819648773 | etot = -169.344697646443 +418000 ekin = 30.2763385538192 | erot = 20.6340456010144 | epot = -215.816567102338 | etot = -164.906182947505 +419000 ekin = 31.2702871079484 | erot = 21.0558998076069 | epot = -216.353762857211 | etot = -164.027575941656 +420000 ekin = 31.1928990244873 | erot = 23.8599837907919 | epot = -216.890403955335 | etot = -161.837521140056 +421000 ekin = 31.5456444237668 | erot = 23.2548532394917 | epot = -217.344973044312 | etot = -162.544475381054 +422000 ekin = 31.595330248126 | erot = 24.1129799902568 | epot = -217.646733756815 | etot = -161.938423518432 +423000 ekin = 30.3263575817443 | erot = 24.7757808957598 | epot = -217.691567202219 | etot = -162.589428724715 +424000 ekin = 29.6227184353682 | erot = 26.8551354763864 | epot = -217.49353393768 | etot = -161.015680025925 +425000 ekin = 29.5897090928897 | erot = 26.5787069615055 | epot = -217.189735948055 | etot = -161.02131989366 +426000 ekin = 28.3811287852246 | erot = 26.0477945184346 | epot = -216.709754303037 | etot = -162.280830999377 +427000 ekin = 27.7967079006065 | erot = 25.8148017215667 | epot = -215.916318594378 | etot = -162.304808972205 +428000 ekin = 27.0564125148368 | erot = 24.2254396851756 | epot = -214.786030457606 | etot = -163.504178257594 +429000 ekin = 26.4009850387513 | erot = 25.2739282576038 | epot = -213.377238447454 | etot = -161.702325151099 +430000 ekin = 25.8966083026098 | erot = 25.0007234317203 | epot = -211.870124789713 | etot = -160.972793055383 +431000 ekin = 24.7984133581247 | erot = 23.6811925425768 | epot = -210.204391421479 | etot = -161.724785520777 +432000 ekin = 24.5987744680211 | erot = 21.4763884246366 | epot = -208.534970052743 | etot = -162.459807160085 +433000 ekin = 22.9801023558261 | erot = 20.5753920602906 | epot = -207.012668945877 | etot = -163.457174529761 +434000 ekin = 21.7283926559211 | erot = 20.7827792983396 | epot = -205.743779917972 | etot = -163.232607963712 +435000 ekin = 20.6245427682379 | erot = 23.3682934466507 | epot = -204.585339785363 | etot = -160.592503570474 +436000 ekin = 19.7010843166892 | erot = 22.7947216751232 | epot = -203.673192464633 | etot = -161.17738647282 +437000 ekin = 18.8171368139259 | erot = 25.8230091867142 | epot = -202.902988849489 | etot = -158.262842848849 +438000 ekin = 18.5857719223376 | erot = 23.8018783969198 | epot = -202.347858231407 | etot = -159.96020791215 +439000 ekin = 18.4671140963778 | erot = 20.8474712254561 | epot = -202.040176117765 | etot = -162.725590795931 +440000 ekin = 18.7081908968736 | erot = 21.8456146936514 | epot = -202.119006954422 | etot = -161.565201363897 +441000 ekin = 19.1502196807364 | erot = 22.8429897393171 | epot = -202.649140947654 | etot = -160.655931527601 +442000 ekin = 19.6976623491702 | erot = 23.833532038064 | epot = -203.432766723882 | etot = -159.901572336648 +443000 ekin = 20.2692385782964 | erot = 23.174529180215 | epot = -204.244337936897 | etot = -160.800570178386 +444000 ekin = 19.6594548157619 | erot = 25.8570487147508 | epot = -204.964941783042 | etot = -159.448438252529 +445000 ekin = 20.0159531993039 | erot = 25.4583870830884 | epot = -205.887229192997 | etot = -160.412888910605 +446000 ekin = 20.9430057952113 | erot = 27.6789597381082 | epot = -206.884522007063 | etot = -158.262556473743 +447000 ekin = 21.5434157008284 | erot = 26.3367064953282 | epot = -207.875777090658 | etot = -159.995654894502 +448000 ekin = 21.3493130668634 | erot = 28.7124847307391 | epot = -208.826609271652 | etot = -158.76481147405 +449000 ekin = 21.4147217526733 | erot = 30.2712153847118 | epot = -209.889081936843 | etot = -158.203144799458 +450000 ekin = 22.9537180151663 | erot = 30.7913406967762 | epot = -211.045040894093 | etot = -157.29998218215 +451000 ekin = 24.0701784584903 | erot = 33.2662973441661 | epot = -212.037901576699 | etot = -154.701425774043 +452000 ekin = 24.9326594408497 | erot = 33.1807983552873 | epot = -213.020928110261 | etot = -154.907470314124 +453000 ekin = 25.9026870743818 | erot = 29.9694393741095 | epot = -213.918112791264 | etot = -158.045986342772 +454000 ekin = 25.6267674636379 | erot = 30.3094040078412 | epot = -214.751677160517 | etot = -158.815505689038 +455000 ekin = 25.8835420243565 | erot = 31.0348607020646 | epot = -215.515256607227 | etot = -158.596853880806 +456000 ekin = 26.5079598183216 | erot = 31.1273555306477 | epot = -216.246152804127 | etot = -158.610837455158 +457000 ekin = 27.4443036582482 | erot = 29.8343750435819 | epot = -216.811984874468 | etot = -159.533306172638 +458000 ekin = 26.9310118911977 | erot = 27.7201727649044 | epot = -216.756924658081 | etot = -162.105740001979 +459000 ekin = 27.9109641832173 | erot = 25.6787961230286 | epot = -217.297816399931 | etot = -163.708056093685 +460000 ekin = 27.9601360034299 | erot = 25.3252752047677 | epot = -217.967018926065 | etot = -164.681607717868 +461000 ekin = 27.0745859502303 | erot = 25.5847145566425 | epot = -217.810130302685 | etot = -165.150829795813 +462000 ekin = 26.7487951031419 | erot = 24.980711595531 | epot = -217.697766754625 | etot = -165.968260055952 +463000 ekin = 26.0732441338559 | erot = 28.153686894781 | epot = -217.358666684053 | etot = -163.131735655416 +464000 ekin = 26.0396949919171 | erot = 25.8416381117693 | epot = -216.944940451188 | etot = -165.063607347501 +465000 ekin = 25.3226575272321 | erot = 24.0325554854213 | epot = -216.354701601293 | etot = -166.99948858864 +466000 ekin = 24.1231672777327 | erot = 24.4307976004896 | epot = -215.565164328178 | etot = -167.011199449956 +467000 ekin = 23.8540709231575 | erot = 22.124846509072 | epot = -214.920239098285 | etot = -168.941321666055 +468000 ekin = 22.565597367876 | erot = 22.7691054272285 | epot = -214.530469865182 | etot = -169.195767070077 +469000 ekin = 22.2713028791399 | erot = 22.2113409900692 | epot = -214.270807992981 | etot = -169.788164123772 +470000 ekin = 22.4851427578562 | erot = 21.4377178321587 | epot = -214.468076008404 | etot = -170.545215418389 +471000 ekin = 22.1823272554268 | erot = 20.278257170788 | epot = -214.941978893437 | etot = -172.481394467223 +472000 ekin = 21.8731320005381 | erot = 19.0138763043457 | epot = -215.549112362977 | etot = -174.662104058093 +473000 ekin = 20.8777093211568 | erot = 22.4202421701947 | epot = -216.333540945248 | etot = -173.035589453897 +474000 ekin = 21.4845461241046 | erot = 21.5552254985163 | epot = -217.149747427618 | etot = -174.109975804997 +475000 ekin = 21.8424250616637 | erot = 22.343637585153 | epot = -218.003692733599 | etot = -173.817630086783 +476000 ekin = 23.3926359095999 | erot = 23.4769825817391 | epot = -218.918478361235 | etot = -172.048859869896 +477000 ekin = 23.53084242551 | erot = 22.2301883973586 | epot = -219.644035844548 | etot = -173.88300502168 +478000 ekin = 23.6068262804286 | erot = 20.4526014426457 | epot = -220.193888919509 | etot = -176.134461196435 +479000 ekin = 23.4875352763514 | erot = 19.3184155065279 | epot = -220.738674570528 | etot = -177.932723787649 +480000 ekin = 23.0717855202954 | erot = 21.8892004951702 | epot = -221.304242068401 | etot = -176.343256052935 +481000 ekin = 22.3550858352525 | erot = 23.0423486541001 | epot = -221.663877016894 | etot = -176.266442527541 +482000 ekin = 21.9864848364329 | erot = 22.7363916127196 | epot = -221.683762589876 | etot = -176.960886140723 +483000 ekin = 22.6106924731206 | erot = 24.0428223649866 | epot = -221.59708966704 | etot = -174.943574828933 +484000 ekin = 22.5076589696515 | erot = 23.4557074572132 | epot = -221.540386505083 | etot = -175.577020078218 +485000 ekin = 22.6452014843636 | erot = 21.762451203069 | epot = -221.380979387409 | etot = -176.973326699976 +486000 ekin = 22.8884924315959 | erot = 22.3107890975159 | epot = -221.108997132445 | etot = -175.909715603333 +487000 ekin = 22.9971918001234 | erot = 24.3833170218936 | epot = -220.71103827305 | etot = -173.330529451033 +488000 ekin = 22.1533984482818 | erot = 25.7281535841679 | epot = -220.122813937115 | etot = -172.241261904665 +489000 ekin = 22.4515755615887 | erot = 25.0522662107032 | epot = -219.719249535127 | etot = -172.215407762835 +490000 ekin = 22.9547894223432 | erot = 24.517779033553 | epot = -219.418606998125 | etot = -171.946038542229 +491000 ekin = 23.5816418799849 | erot = 22.753839355928 | epot = -218.924118670106 | etot = -172.588637434193 +492000 ekin = 23.8823445747864 | erot = 21.2184779917221 | epot = -218.227735715369 | etot = -173.126913148861 +493000 ekin = 24.3448959898337 | erot = 21.8115598709523 | epot = -217.334509642487 | etot = -171.178053781701 +494000 ekin = 24.4320819054026 | erot = 22.5752180720098 | epot = -216.473641638612 | etot = -169.466341661199 +495000 ekin = 24.3755841384379 | erot = 23.9444067518822 | epot = -215.609878516645 | etot = -167.289887626325 +496000 ekin = 24.8598166549303 | erot = 21.4239924353219 | epot = -214.945231394708 | etot = -168.661422304456 +497000 ekin = 25.2448003736739 | erot = 20.8176798090042 | epot = -214.387561750013 | etot = -168.325081567335 +498000 ekin = 26.5693421635397 | erot = 20.5035803503483 | epot = -214.015978269251 | etot = -166.943055755363 +499000 ekin = 26.7852769961491 | erot = 19.5435940700116 | epot = -213.683959917476 | etot = -167.355088851315 +500000 ekin = 27.535057693355 | erot = 18.705068833847 | epot = -213.607739162636 | etot = -167.367612635434 +501000 ekin = 28.3213060130359 | erot = 17.8116944886089 | epot = -213.67740185523 | etot = -167.544401353585 +502000 ekin = 28.7521713272079 | erot = 18.0095076993248 | epot = -213.852896101639 | etot = -167.091217075106 +503000 ekin = 29.5029581283875 | erot = 18.909099125371 | epot = -214.062334972754 | etot = -165.650277718996 +504000 ekin = 30.3217459607846 | erot = 18.7844890901023 | epot = -214.319342764931 | etot = -165.213107714044 +505000 ekin = 30.1578277397036 | erot = 19.4319341441026 | epot = -214.415908521801 | etot = -164.826146637995 +506000 ekin = 29.209747070706 | erot = 19.026940448028 | epot = -214.633852668846 | etot = -166.397165150112 +507000 ekin = 29.642495894677 | erot = 19.5492883197655 | epot = -214.855190806251 | etot = -165.663406591808 +508000 ekin = 28.5340625040779 | erot = 21.9407235369196 | epot = -215.063369427087 | etot = -164.588583386089 +509000 ekin = 27.8112749390816 | erot = 22.7669227870046 | epot = -215.189489573915 | etot = -164.611291847828 +510000 ekin = 27.8718580299492 | erot = 22.1925267160587 | epot = -215.43076040814 | etot = -165.366375662132 +511000 ekin = 27.5420550600504 | erot = 21.1930166573984 | epot = -215.661435095053 | etot = -166.926363377604 +512000 ekin = 28.0922073127214 | erot = 21.705529509828 | epot = -215.786982318953 | etot = -165.989245496404 +513000 ekin = 28.4464077185633 | erot = 21.5872391817044 | epot = -216.013997388439 | etot = -165.980350488171 +514000 ekin = 28.6738400915053 | erot = 22.761394528105 | epot = -216.375218054325 | etot = -164.939983434714 +515000 ekin = 28.4988335118868 | erot = 21.0723384938813 | epot = -216.772216081264 | etot = -167.201044075496 +516000 ekin = 28.2431215529153 | erot = 22.5108174537502 | epot = -217.625419460918 | etot = -166.871480454252 +517000 ekin = 28.347655310566 | erot = 21.6185847645587 | epot = -218.584116365942 | etot = -168.617876290817 +518000 ekin = 28.7355143896094 | erot = 22.2912135675691 | epot = -219.537764202997 | etot = -168.511036245819 +519000 ekin = 28.0405456500047 | erot = 25.2172553666922 | epot = -220.297953309532 | etot = -167.040152292836 +520000 ekin = 26.9306517754668 | erot = 27.0838156807788 | epot = -220.731765046824 | etot = -166.717297590578 +521000 ekin = 26.1543611134017 | erot = 30.9762120900742 | epot = -221.023845549438 | etot = -163.893272345962 +522000 ekin = 25.2846258443128 | erot = 30.3488474956666 | epot = -221.113718831057 | etot = -165.480245491078 +523000 ekin = 25.3420381973596 | erot = 27.1843281367116 | epot = -221.140536198052 | etot = -168.614169863981 +524000 ekin = 25.7141573378958 | erot = 29.455779249349 | epot = -221.057372075661 | etot = -165.887435488417 +525000 ekin = 25.4838363010697 | erot = 26.3934330170679 | epot = -220.912701137522 | etot = -169.035431819385 +526000 ekin = 26.0079410350116 | erot = 30.2000198054899 | epot = -220.869509193105 | etot = -164.661548352604 +527000 ekin = 26.1588103027025 | erot = 29.7041166536357 | epot = -220.802295317341 | etot = -164.939368361003 +528000 ekin = 26.7938806212106 | erot = 29.1988530061502 | epot = -220.603226285027 | etot = -164.610492657666 +529000 ekin = 26.8945337264061 | erot = 30.8684009418751 | epot = -220.501633795914 | etot = -162.738699127633 +530000 ekin = 26.9078317338313 | erot = 29.6059799090131 | epot = -220.558751011573 | etot = -164.044939368729 +531000 ekin = 27.7935485005803 | erot = 29.2278507025209 | epot = -220.747606613035 | etot = -163.726207409933 +532000 ekin = 27.887349588649 | erot = 27.9662412084584 | epot = -221.046254717572 | etot = -165.192663920465 +533000 ekin = 28.6036302553006 | erot = 30.4080436081815 | epot = -221.390581182077 | etot = -162.378907318595 +534000 ekin = 29.1450459094427 | erot = 29.8984953927896 | epot = -221.618689857672 | etot = -162.57514855544 +535000 ekin = 29.469911033471 | erot = 29.755268847455 | epot = -221.750636117443 | etot = -162.525456236517 +536000 ekin = 29.50494662019 | erot = 30.5743840829575 | epot = -221.629307929619 | etot = -161.549977226472 +537000 ekin = 28.425893453274 | erot = 32.2633658998326 | epot = -221.149883136949 | etot = -160.460623783842 +538000 ekin = 28.0184749761055 | erot = 30.9372043254436 | epot = -220.230421084041 | etot = -161.274741782492 +539000 ekin = 26.9914955024263 | erot = 31.1470532462602 | epot = -218.907897489909 | etot = -160.769348741223 +540000 ekin = 25.8342672805741 | erot = 30.4659839502893 | epot = -217.4023318616 | etot = -161.102080630737 +541000 ekin = 25.026783494083 | erot = 28.6292948272569 | epot = -215.859642568803 | etot = -162.203564247463 +542000 ekin = 24.2196496447266 | erot = 27.1673316851706 | epot = -214.460130991487 | etot = -163.073149661589 +543000 ekin = 23.6870158078332 | erot = 27.3438759386704 | epot = -213.038313075576 | etot = -162.007421329072 +544000 ekin = 23.0676757322196 | erot = 26.7417435047259 | epot = -211.706572811687 | etot = -161.897153574741 +545000 ekin = 21.8293570586022 | erot = 25.2088678150874 | epot = -210.577232175622 | etot = -163.539007301932 +546000 ekin = 21.5224546734963 | erot = 25.7347520792893 | epot = -209.72960555737 | etot = -162.472398804585 +547000 ekin = 20.9968182936697 | erot = 25.5632514150022 | epot = -209.191378920644 | etot = -162.631309211972 +548000 ekin = 19.8988817654073 | erot = 23.2679071410407 | epot = -208.743073804017 | etot = -165.576284897569 +549000 ekin = 19.9727838598321 | erot = 22.3903038756502 | epot = -208.700752574222 | etot = -166.33766483874 +550000 ekin = 19.5901365826176 | erot = 23.3554322669728 | epot = -209.057328163197 | etot = -166.111759313607 +551000 ekin = 19.3625273691881 | erot = 22.3770654995204 | epot = -209.363208919373 | etot = -167.623616050665 +552000 ekin = 19.5151849616975 | erot = 21.2706999045886 | epot = -209.797169625893 | etot = -169.011284759607 +553000 ekin = 19.2265779452039 | erot = 20.4826132865114 | epot = -209.999313263519 | etot = -170.290122031804 +554000 ekin = 19.5496295764989 | erot = 20.8693447741625 | epot = -209.779481348856 | etot = -169.360506998194 +555000 ekin = 19.1735854190619 | erot = 19.9647334065035 | epot = -209.314112705489 | etot = -170.175793879924 +556000 ekin = 18.5478675513136 | erot = 24.137842092091 | epot = -208.401647045382 | etot = -165.715937401977 +557000 ekin = 17.4742761697172 | erot = 24.0319972301999 | epot = -207.527543381088 | etot = -166.021269981171 +558000 ekin = 17.0450293728529 | erot = 25.0431971863445 | epot = -206.756554568577 | etot = -164.66832800938 +559000 ekin = 16.5375595856902 | erot = 23.7766127103862 | epot = -205.999592721795 | etot = -165.685420425718 +560000 ekin = 16.3675553275375 | erot = 22.7274451429466 | epot = -205.532696411942 | etot = -166.437695941458 +561000 ekin = 16.4002686388511 | erot = 23.454222688713 | epot = -205.33653129407 | etot = -165.482039966506 +562000 ekin = 16.8601910320653 | erot = 24.6920222465119 | epot = -205.561599056927 | etot = -164.00938577835 +563000 ekin = 17.4904033581056 | erot = 27.3327302539918 | epot = -206.371449865494 | etot = -161.548316253397 +564000 ekin = 18.2959040777444 | erot = 25.8631538436394 | epot = -207.295829537485 | etot = -163.136771616101 +565000 ekin = 19.1876481491769 | erot = 26.3288155361578 | epot = -208.252583626631 | etot = -162.736119941296 +566000 ekin = 19.3470565924911 | erot = 25.8088677343261 | epot = -209.135375001814 | etot = -163.979450674997 +567000 ekin = 19.3284332398276 | erot = 26.1324360478945 | epot = -210.001092533551 | etot = -164.540223245829 +568000 ekin = 20.2145930912203 | erot = 27.7960775164549 | epot = -210.739375059829 | etot = -162.728704452154 +569000 ekin = 20.7786788494836 | erot = 29.1835546820981 | epot = -211.690043333607 | etot = -161.727809802026 +570000 ekin = 20.4712421095841 | erot = 30.0658782238937 | epot = -212.489990080473 | etot = -161.952869746995 +571000 ekin = 20.1740626295591 | erot = 34.2763104149801 | epot = -212.99657775615 | etot = -158.54620471161 +572000 ekin = 20.2865908439986 | erot = 32.9711037269835 | epot = -213.258049696028 | etot = -160.000355125046 +573000 ekin = 20.2785763047898 | erot = 32.164420996442 | epot = -213.224973233119 | etot = -160.781975931887 +574000 ekin = 20.73420675937 | erot = 33.4121841231608 | epot = -212.911121076823 | etot = -158.764730194292 +575000 ekin = 20.2170533951852 | erot = 31.3247437485476 | epot = -212.546252872734 | etot = -161.004455729001 +576000 ekin = 19.4298111281265 | erot = 32.3261160719177 | epot = -212.142648109265 | etot = -160.386720909221 +577000 ekin = 19.2647608601736 | erot = 34.7383488770083 | epot = -211.774480661784 | etot = -157.771370924603 +578000 ekin = 18.8591531744448 | erot = 34.9578310327361 | epot = -211.41608019627 | etot = -157.599095989089 +579000 ekin = 19.1764535805344 | erot = 34.5315583779688 | epot = -210.953075025527 | etot = -157.245063067024 +580000 ekin = 19.2853428286521 | erot = 34.6365289435264 | epot = -210.25522157758 | etot = -156.333349805402 +581000 ekin = 18.7906308240455 | erot = 33.6526265209018 | epot = -209.637569234705 | etot = -157.194311889758 +582000 ekin = 19.084905315022 | erot = 30.2130120641441 | epot = -209.11867694325 | etot = -159.820759564084 +583000 ekin = 19.7173995337446 | erot = 30.366640119437 | epot = -208.664312052077 | etot = -158.580272398895 +584000 ekin = 20.3909791819401 | erot = 28.9778999219973 | epot = -208.252182490968 | etot = -158.883303387031 +585000 ekin = 20.9470408507438 | erot = 28.5667963345671 | epot = -208.028127454439 | etot = -158.514290269128 +586000 ekin = 21.8171004518006 | erot = 27.8466229838588 | epot = -208.095369306471 | etot = -158.431645870812 +587000 ekin = 23.1615832403556 | erot = 24.9646595929125 | epot = -208.369983933223 | etot = -160.243741099955 +588000 ekin = 23.8959195121688 | erot = 25.24887078156 | epot = -209.101399059693 | etot = -159.956608765964 +589000 ekin = 24.7834285754863 | erot = 26.0497724346551 | epot = -209.871831515904 | etot = -159.038630505763 +590000 ekin = 25.3936432927543 | erot = 23.6572511459096 | epot = -210.480131773127 | etot = -161.429237334463 +591000 ekin = 25.9278610257486 | erot = 23.0115174388733 | epot = -210.978711850373 | etot = -162.039333385751 +592000 ekin = 27.1309273397085 | erot = 23.1610725306481 | epot = -211.238339753623 | etot = -160.946339883266 +593000 ekin = 26.4574056599296 | erot = 23.5297100340712 | epot = -211.398991430669 | etot = -161.411875736668 +594000 ekin = 26.2135133417378 | erot = 24.3682480979618 | epot = -211.629783890836 | etot = -161.048022451137 +595000 ekin = 26.7143131575838 | erot = 25.9581831810466 | epot = -211.492775841309 | etot = -158.820279502679 +596000 ekin = 25.9981237047512 | erot = 24.5874940201996 | epot = -210.994983795865 | etot = -160.409366070915 +597000 ekin = 25.3691803838513 | erot = 25.6177769896042 | epot = -210.235015094311 | etot = -159.248057720855 +598000 ekin = 23.6665857713897 | erot = 26.7002735359816 | epot = -209.31162840973 | etot = -158.944769102359 +599000 ekin = 22.4410822725131 | erot = 24.4123509303077 | epot = -208.296342188806 | etot = -161.442908985985 +600000 ekin = 22.1604509520165 | erot = 23.7403591164762 | epot = -207.435376754137 | etot = -161.534566685645 +601000 ekin = 22.1910498539915 | erot = 25.7876707770135 | epot = -206.80770864539 | etot = -158.828988014385 +602000 ekin = 21.3191775900909 | erot = 24.1816411383452 | epot = -206.419514787599 | etot = -160.918696059162 +603000 ekin = 21.1724174977999 | erot = 23.1636571932934 | epot = -206.285960522692 | etot = -161.949885831599 +604000 ekin = 20.9177152169245 | erot = 23.0600658965548 | epot = -206.401463523596 | etot = -162.423682410117 +605000 ekin = 20.5881838168339 | erot = 23.4945688308947 | epot = -206.783521776426 | etot = -162.700769128698 +606000 ekin = 20.5566050385019 | erot = 24.4436457663487 | epot = -207.302724003666 | etot = -162.302473198816 +607000 ekin = 20.5889650529151 | erot = 24.2601145277504 | epot = -207.849151297373 | etot = -163.000071716707 +608000 ekin = 20.798561595616 | erot = 24.0529914889943 | epot = -208.221016465144 | etot = -163.369463380534 +609000 ekin = 21.3334604629993 | erot = 21.2987977820021 | epot = -208.39362904366 | etot = -165.761370798658 +610000 ekin = 21.0077312853339 | erot = 24.5390976123487 | epot = -208.423455376914 | etot = -162.876626479231 +611000 ekin = 21.2062750244278 | erot = 25.6924763445408 | epot = -208.465273559828 | etot = -161.566522190859 +612000 ekin = 21.1092285061772 | erot = 23.1681846181344 | epot = -208.369973333871 | etot = -164.09256020956 +613000 ekin = 21.3505829699377 | erot = 23.3795515105117 | epot = -208.252217187376 | etot = -163.522082706926 +614000 ekin = 21.9887200992592 | erot = 22.9814942014575 | epot = -208.08425451512 | etot = -163.114040214403 +615000 ekin = 21.9879302481981 | erot = 23.9474635145876 | epot = -208.112157339249 | etot = -162.176763576463 +616000 ekin = 21.6535652813721 | erot = 25.7665709398204 | epot = -208.073996342823 | etot = -160.653860121631 +617000 ekin = 21.5327802980097 | erot = 25.9126271147335 | epot = -208.081562756535 | etot = -160.636155343791 +618000 ekin = 21.6331060335065 | erot = 25.3216229154819 | epot = -208.118612594362 | etot = -161.163883645373 +619000 ekin = 21.5377257980259 | erot = 24.0810842352126 | epot = -208.182453990811 | etot = -162.563643957572 +620000 ekin = 22.2944761843434 | erot = 26.8961911381653 | epot = -208.572090943205 | etot = -159.381423620697 +621000 ekin = 23.2275714627294 | erot = 28.5194568041071 | epot = -209.005121904323 | etot = -157.258093637486 +622000 ekin = 23.8057112362969 | erot = 28.1725382958721 | epot = -209.310919824284 | etot = -157.332670292115 +623000 ekin = 23.836200160347 | erot = 27.2782572535261 | epot = -209.480204064921 | etot = -158.365746651048 +624000 ekin = 23.5225747889065 | erot = 27.5958156421042 | epot = -209.446824879225 | etot = -158.328434448214 +625000 ekin = 23.3180565211004 | erot = 27.7299743553773 | epot = -209.243975503887 | etot = -158.195944627409 +626000 ekin = 23.6186803255339 | erot = 26.3585577647064 | epot = -208.833123041292 | etot = -158.855884951052 +627000 ekin = 23.7020468224909 | erot = 24.8473737782309 | epot = -208.363264541316 | etot = -159.813843940594 +628000 ekin = 23.234214910991 | erot = 23.6981867115843 | epot = -207.745309999887 | etot = -160.812908377311 +629000 ekin = 22.4918100586061 | erot = 24.881640940065 | epot = -207.051343604772 | etot = -159.677892606101 +630000 ekin = 22.1453629035581 | erot = 20.2998733728557 | epot = -206.39001968886 | etot = -163.944783412446 +631000 ekin = 22.7036826399466 | erot = 18.9834012990071 | epot = -205.753133262548 | etot = -164.066049323594 +632000 ekin = 23.0551963097502 | erot = 19.1201804696073 | epot = -205.05968682992 | etot = -162.884310050562 +633000 ekin = 22.747707004055 | erot = 20.2298517397387 | epot = -204.679628820142 | etot = -161.702070076348 +634000 ekin = 22.1372732618932 | erot = 20.0792269586333 | epot = -204.542150052713 | etot = -162.325649832186 +635000 ekin = 21.9900639375166 | erot = 23.0915091625923 | epot = -204.519806168891 | etot = -159.438233068782 +636000 ekin = 22.4343890150495 | erot = 22.7785270631131 | epot = -204.773050210983 | etot = -159.560134132821 +637000 ekin = 22.4930206180041 | erot = 21.8914552071171 | epot = -205.185291613209 | etot = -160.800815788088 +638000 ekin = 22.6067746447143 | erot = 22.2834374488441 | epot = -205.831736530974 | etot = -160.941524437416 +639000 ekin = 22.9634779459864 | erot = 21.0233006007606 | epot = -206.678000527936 | etot = -162.691221981189 +640000 ekin = 23.0006770449898 | erot = 20.1435647319737 | epot = -207.67418045306 | etot = -164.529938676097 +641000 ekin = 22.6796709156744 | erot = 20.1265770944198 | epot = -208.864068916451 | etot = -166.057820906357 +642000 ekin = 23.0426441097264 | erot = 20.3821125283994 | epot = -210.157224630151 | etot = -166.732467992025 +643000 ekin = 23.6886630072442 | erot = 20.9311429904711 | epot = -211.335279277866 | etot = -166.715473280151 +644000 ekin = 23.3501873913686 | erot = 20.2116989369836 | epot = -212.405134347394 | etot = -168.843248019042 +645000 ekin = 24.214183792306 | erot = 19.1997084892897 | epot = -213.275734343161 | etot = -169.861842061566 +646000 ekin = 24.0032353748067 | erot = 18.7366869191874 | epot = -214.020930167623 | etot = -171.281007873629 +647000 ekin = 24.8268141920476 | erot = 20.0966967362663 | epot = -214.740433438135 | etot = -169.816922509822 +648000 ekin = 24.8649186744143 | erot = 20.9050241858578 | epot = -215.442059068409 | etot = -169.672116208136 +649000 ekin = 24.8646057578191 | erot = 21.521791933497 | epot = -216.156866604821 | etot = -169.770468913505 +650000 ekin = 24.0713138258436 | erot = 22.6881112054577 | epot = -216.962642193737 | etot = -170.203217162436 +651000 ekin = 24.0648474956462 | erot = 21.9056553318526 | epot = -217.68682151817 | etot = -171.716318690672 +652000 ekin = 23.7298725103662 | erot = 21.0498830137315 | epot = -218.178357024535 | etot = -173.398601500437 +653000 ekin = 24.2612309905982 | erot = 20.9396425318005 | epot = -218.402996619013 | etot = -173.202123096615 +654000 ekin = 24.5742837739783 | erot = 21.5842057775824 | epot = -218.453825537757 | etot = -172.295335986196 +655000 ekin = 24.8172949648637 | erot = 21.5633790150742 | epot = -218.138128805473 | etot = -171.757454825535 +656000 ekin = 26.1016118595101 | erot = 20.2089399346234 | epot = -217.608120203544 | etot = -171.29756840941 +657000 ekin = 25.5468936086447 | erot = 20.5700758336473 | epot = -216.896383096438 | etot = -170.779413654146 +658000 ekin = 24.8009166899182 | erot = 20.3492391925765 | epot = -215.907642384675 | etot = -170.75748650218 +659000 ekin = 24.2700519127878 | erot = 19.3880786744432 | epot = -214.779591604614 | etot = -171.121461017383 +660000 ekin = 23.7386557662651 | erot = 17.3667145566108 | epot = -213.671617228208 | etot = -172.566246905332 +661000 ekin = 23.101615905894 | erot = 18.0746065237967 | epot = -212.813170220349 | etot = -171.636947790658 +662000 ekin = 23.5132942257758 | erot = 19.3913290878883 | epot = -212.178312398575 | etot = -169.27368908491 +663000 ekin = 22.8490848881554 | erot = 22.3558454667425 | epot = -211.708233502208 | etot = -166.50330314731 +664000 ekin = 22.5371891975751 | erot = 23.8324410238751 | epot = -211.630305812256 | etot = -165.260675590806 +665000 ekin = 22.4828402581824 | erot = 22.1418709319913 | epot = -211.932335178627 | etot = -167.307623988453 +666000 ekin = 21.658575574868 | erot = 23.2685049016563 | epot = -212.34419719029 | etot = -167.417116713765 +667000 ekin = 21.746716005369 | erot = 26.6231378444392 | epot = -212.869195610415 | etot = -164.499341760607 +668000 ekin = 21.8400234731699 | erot = 27.0215900877162 | epot = -213.230575394842 | etot = -164.368961833956 +669000 ekin = 21.5717180264524 | erot = 25.4843097358269 | epot = -213.402729296273 | etot = -166.346701533994 +670000 ekin = 21.2159612264746 | erot = 27.0486352599825 | epot = -213.623541173123 | etot = -165.358944686665 +671000 ekin = 21.0316750378212 | erot = 28.2790369826503 | epot = -213.670944628475 | etot = -164.360232608003 +672000 ekin = 21.0540110477226 | erot = 27.9477049264318 | epot = -213.821833683391 | etot = -164.820117709236 +673000 ekin = 20.622467197854 | erot = 31.8631428606973 | epot = -214.143301465583 | etot = -161.657691407032 +674000 ekin = 19.7399937911566 | erot = 31.3007461152899 | epot = -214.328096065417 | etot = -163.287356158971 +675000 ekin = 19.6812168375245 | erot = 28.9841135234018 | epot = -214.58757301913 | etot = -165.922242658204 +676000 ekin = 20.2683648931208 | erot = 29.0544957444103 | epot = -214.986567261058 | etot = -165.663706623527 +677000 ekin = 20.4847241494001 | erot = 27.1326629448698 | epot = -215.500686522809 | etot = -167.88329942854 +678000 ekin = 21.302019725926 | erot = 26.9440120099185 | epot = -215.97832097774 | etot = -167.732289241896 +679000 ekin = 20.7252183388119 | erot = 27.5800790128446 | epot = -216.242490346929 | etot = -167.937192995272 +680000 ekin = 21.1467020674332 | erot = 27.5476121215625 | epot = -216.37538065002 | etot = -167.681066461025 +681000 ekin = 20.7720273332215 | erot = 27.1624962363794 | epot = -216.426580638711 | etot = -168.49205706911 +682000 ekin = 20.4708699436742 | erot = 26.3358564577069 | epot = -216.448305176171 | etot = -169.64157877479 +683000 ekin = 19.8000088900235 | erot = 27.4272282812591 | epot = -216.207270658414 | etot = -168.980033487131 +684000 ekin = 20.1500542970064 | erot = 26.0761853873505 | epot = -215.864502199571 | etot = -169.638262515214 +685000 ekin = 19.8486865740984 | erot = 26.0238267262043 | epot = -215.500516760578 | etot = -169.628003460275 +686000 ekin = 19.7513338939334 | erot = 25.3757647595747 | epot = -215.210189827277 | etot = -170.083091173769 +687000 ekin = 20.7214918102431 | erot = 24.1072372944022 | epot = -214.967239797801 | etot = -170.138510693156 +688000 ekin = 21.0626981869003 | erot = 23.2762891547382 | epot = -214.979397567732 | etot = -170.640410226093 +689000 ekin = 21.5266424344628 | erot = 20.7174231605385 | epot = -215.094101507179 | etot = -172.850035912178 +690000 ekin = 22.5491523723621 | erot = 20.847571984209 | epot = -214.986970380787 | etot = -171.590246024216 +691000 ekin = 23.8583355308872 | erot = 22.0099769027697 | epot = -214.848454555845 | etot = -168.980142122188 +692000 ekin = 24.96520872453 | erot = 21.4857106199454 | epot = -214.494800129558 | etot = -168.043880785083 +693000 ekin = 26.0051918382276 | erot = 21.3733007404598 | epot = -214.001727781338 | etot = -166.623235202651 +694000 ekin = 26.4392720652869 | erot = 21.3317762759646 | epot = -213.263998412814 | etot = -165.492950071562 +695000 ekin = 27.3615193041949 | erot = 20.6921753134717 | epot = -212.356901954365 | etot = -164.303207336699 +696000 ekin = 27.3093057978157 | erot = 20.0965375265573 | epot = -211.297735908804 | etot = -163.891892584431 +697000 ekin = 26.7453316152447 | erot = 18.7856987042669 | epot = -210.110607673786 | etot = -164.579577354274 +698000 ekin = 25.5722707624857 | erot = 19.6853079921957 | epot = -209.125608153436 | etot = -163.868029398755 +699000 ekin = 24.9916657277841 | erot = 18.4661630806181 | epot = -208.42973768859 | etot = -164.971908880188 +700000 ekin = 24.521058485274 | erot = 16.84944737211 | epot = -207.9193858017 | etot = -166.548879944316 +701000 ekin = 23.7778912460905 | erot = 19.3168143286452 | epot = -207.673622403358 | etot = -164.578916828622 +702000 ekin = 23.4418540405128 | erot = 17.9399262410738 | epot = -207.631679946816 | etot = -166.24989966523 +703000 ekin = 22.5362735605758 | erot = 16.8799469700555 | epot = -207.655410737567 | etot = -168.239190206935 +704000 ekin = 21.6771800595091 | erot = 17.1833672937461 | epot = -207.854126531408 | etot = -168.993579178153 +705000 ekin = 21.4420921851221 | erot = 20.8433776157946 | epot = -208.2214030325 | etot = -165.935933231584 +706000 ekin = 21.2415323522356 | erot = 21.0841388634033 | epot = -208.785212184223 | etot = -166.459540968584 +707000 ekin = 21.1211180279557 | erot = 22.7053094579755 | epot = -209.418467814605 | etot = -165.592040328673 +708000 ekin = 21.4313901815259 | erot = 21.142901789246 | epot = -210.045555019851 | etot = -167.471263049079 +709000 ekin = 21.1002753292038 | erot = 22.8489798007674 | epot = -210.826178475879 | etot = -166.876923345908 +710000 ekin = 21.8422173465255 | erot = 20.0932738292303 | epot = -211.532469955408 | etot = -169.596978779652 +711000 ekin = 22.1026708164741 | erot = 22.4726045475365 | epot = -212.126194080497 | etot = -167.550918716487 +712000 ekin = 22.4258695027194 | erot = 21.442958222841 | epot = -212.558458286709 | etot = -168.689630561149 +713000 ekin = 22.5222749624208 | erot = 20.3898387031543 | epot = -212.978786634482 | etot = -170.066672968907 +714000 ekin = 22.1262254185207 | erot = 21.2706738146545 | epot = -213.406504414377 | etot = -170.009605181201 +715000 ekin = 21.6589564668707 | erot = 22.8713228305269 | epot = -214.103705031576 | etot = -169.573425734178 +716000 ekin = 22.8499377351371 | erot = 22.5811259198023 | epot = -214.886932195704 | etot = -169.455868540765 +717000 ekin = 23.1453273466383 | erot = 22.0823648529859 | epot = -215.752901424345 | etot = -170.52520922472 +718000 ekin = 23.4911204712306 | erot = 21.8266696386258 | epot = -216.797611238792 | etot = -171.479821128935 +719000 ekin = 23.5427559868846 | erot = 20.6352185380146 | epot = -217.868984095443 | etot = -173.691009570544 +720000 ekin = 24.6730711390776 | erot = 21.7437690143765 | epot = -218.925770671597 | etot = -172.508930518143 +721000 ekin = 25.2403931355773 | erot = 19.4577236844891 | epot = -219.945055136347 | etot = -175.246938316281 +722000 ekin = 25.7389977817124 | erot = 21.6950149985872 | epot = -220.731451014357 | etot = -173.297438234057 +723000 ekin = 24.59999507444 | erot = 24.4179337524363 | epot = -221.359631454453 | etot = -172.341702627577 +724000 ekin = 23.8141214256889 | erot = 25.3193356469838 | epot = -221.823580154673 | etot = -172.690123082 +725000 ekin = 23.3651337491413 | erot = 28.7091491551534 | epot = -222.090867886168 | etot = -170.016584981873 +726000 ekin = 23.1307089149661 | erot = 29.7953383527835 | epot = -222.003607909333 | etot = -169.077560641584 +727000 ekin = 22.6496655720656 | erot = 29.2473418500935 | epot = -221.635062275438 | etot = -169.738054853278 +728000 ekin = 21.811364434554 | erot = 31.7331322577198 | epot = -221.154414993919 | etot = -167.609918301645 +729000 ekin = 20.4746743669592 | erot = 32.546576149833 | epot = -220.690887684563 | etot = -167.669637167771 +730000 ekin = 19.8147243806315 | erot = 34.9007244000495 | epot = -220.114078177837 | etot = -165.398629397156 +731000 ekin = 18.6145766929913 | erot = 34.0320241969118 | epot = -219.536330230485 | etot = -166.889729340582 +732000 ekin = 17.8112285881693 | erot = 34.0479803252401 | epot = -218.968869737311 | etot = -167.109660823901 +733000 ekin = 17.6476056471454 | erot = 34.2057929926945 | epot = -218.3294527504 | etot = -166.47605411056 +734000 ekin = 17.7690619853332 | erot = 32.1417337283976 | epot = -217.520065128183 | etot = -167.609269414452 +735000 ekin = 17.0579199291445 | erot = 30.2470102548337 | epot = -216.550373483739 | etot = -169.245443299761 +736000 ekin = 17.5498866135578 | erot = 29.3166528563917 | epot = -215.643405297165 | etot = -168.776865827216 +737000 ekin = 17.6187796043555 | erot = 26.3475349686048 | epot = -214.809218139055 | etot = -170.842903566094 +738000 ekin = 18.2269608592319 | erot = 25.7040359881548 | epot = -214.115591404826 | etot = -170.18459455744 +739000 ekin = 18.7173977512819 | erot = 24.4619685419347 | epot = -213.441484725329 | etot = -170.262118432112 +740000 ekin = 19.0110962436152 | erot = 22.142772803043 | epot = -212.815607635912 | etot = -171.661738589254 +741000 ekin = 18.9267028320974 | erot = 21.3358168112262 | epot = -212.366636079153 | etot = -172.104116435829 +742000 ekin = 19.3549116475726 | erot = 19.5096408469649 | epot = -212.216543882057 | etot = -173.35199138752 +743000 ekin = 20.119013306821 | erot = 18.4104477349336 | epot = -212.288606698492 | etot = -173.759145656738 +744000 ekin = 20.3566526518901 | erot = 19.4246888199086 | epot = -212.75389749051 | etot = -172.972556018711 +745000 ekin = 21.1509415657888 | erot = 20.1659043839807 | epot = -213.418747745429 | etot = -172.10190179566 +746000 ekin = 21.3037423527627 | erot = 20.2172486917649 | epot = -214.157876553476 | etot = -172.636885508949 +747000 ekin = 22.3146611040097 | erot = 21.9871375259789 | epot = -214.88232405197 | etot = -170.580525421981 +748000 ekin = 22.2283253425591 | erot = 22.5065193409822 | epot = -215.506784482801 | etot = -170.77193979926 +749000 ekin = 21.7915806164301 | erot = 22.1396569978617 | epot = -215.707286574207 | etot = -171.776048959915 +750000 ekin = 22.4607758902159 | erot = 23.0482930283985 | epot = -215.651390580345 | etot = -170.142321661731 +751000 ekin = 21.6437369626355 | erot = 20.9291810842114 | epot = -215.338251046595 | etot = -172.765332999748 +752000 ekin = 21.0774801700924 | erot = 19.7791759941412 | epot = -214.933012142375 | etot = -174.076355978141 +753000 ekin = 20.2142777715798 | erot = 19.9156489858756 | epot = -214.515836213762 | etot = -174.385909456307 +754000 ekin = 20.550710880581 | erot = 21.7521689158874 | epot = -214.220858046315 | etot = -171.917978249847 +755000 ekin = 20.4661806652476 | erot = 22.5423956641592 | epot = -214.061716510521 | etot = -171.053140181114 +756000 ekin = 20.9954844614009 | erot = 22.4473939364008 | epot = -213.92503672056 | etot = -170.482158322758 +757000 ekin = 20.6283594838306 | erot = 21.4270437425632 | epot = -213.790125131555 | etot = -171.734721905161 +758000 ekin = 20.5508018897077 | erot = 20.9536901677692 | epot = -213.663158456533 | etot = -172.158666399056 +759000 ekin = 19.6263241751684 | erot = 23.4476640487024 | epot = -213.66383402851 | etot = -170.589845804639 +760000 ekin = 19.9340259748652 | erot = 22.6482020561595 | epot = -213.71724602475 | etot = -171.135017993725 +761000 ekin = 19.6910494084164 | erot = 22.0029116902266 | epot = -213.754878089614 | etot = -172.060916990971 +762000 ekin = 19.7910800016039 | erot = 22.5984804286307 | epot = -213.965250022108 | etot = -171.575689591873 +763000 ekin = 20.5238796096632 | erot = 22.2928877563363 | epot = -214.47551076934 | etot = -171.658743403341 +764000 ekin = 20.6650033448462 | erot = 24.6171910330824 | epot = -214.890202898626 | etot = -169.608008520698 +765000 ekin = 20.4618665382424 | erot = 25.8587140484164 | epot = -215.138274656898 | etot = -168.817694070239 +766000 ekin = 19.6548882123823 | erot = 25.0439293422707 | epot = -215.348875696047 | etot = -170.650058141394 +767000 ekin = 19.3270400363748 | erot = 25.2554744973183 | epot = -215.248876217743 | etot = -170.66636168405 +768000 ekin = 18.5163875301612 | erot = 26.9740801270243 | epot = -214.975549734016 | etot = -169.485082076831 +769000 ekin = 19.2689096458285 | erot = 26.7549801973199 | epot = -214.627183257247 | etot = -168.603293414099 +770000 ekin = 20.3065357099473 | erot = 24.5864981815754 | epot = -214.449155022355 | etot = -169.556121130832 +771000 ekin = 19.8160989352992 | erot = 24.3795653656177 | epot = -214.568609385595 | etot = -170.372945084678 +772000 ekin = 20.0808636272602 | erot = 25.3489458930141 | epot = -214.810149634203 | etot = -169.380340113928 +773000 ekin = 20.4572934790689 | erot = 23.9373155006916 | epot = -215.368798012186 | etot = -170.974189032425 +774000 ekin = 21.4581254177255 | erot = 24.8038079049394 | epot = -216.135566629648 | etot = -169.873633306983 +775000 ekin = 21.56609423293 | erot = 24.7269407163978 | epot = -217.095913678146 | etot = -170.802878728818 +776000 ekin = 21.7139623963331 | erot = 24.678564784346 | epot = -217.949762418936 | etot = -171.557235238257 +777000 ekin = 22.1382470902253 | erot = 26.3515368343078 | epot = -218.812121008321 | etot = -170.322337083788 +778000 ekin = 22.6753074399956 | erot = 26.7132834273965 | epot = -219.665211222619 | etot = -170.276620355226 +779000 ekin = 23.2722008637946 | erot = 25.1496800354838 | epot = -220.353105007404 | etot = -171.931224108126 +780000 ekin = 23.0129926689262 | erot = 23.0916850844916 | epot = -220.994134927724 | etot = -174.889457174306 +781000 ekin = 23.786429669784 | erot = 25.1844301582418 | epot = -221.387914121756 | etot = -172.41705429373 +782000 ekin = 23.5606686383571 | erot = 26.3634060367889 | epot = -221.434267464486 | etot = -171.51019278934 +783000 ekin = 24.0155758037646 | erot = 26.6670282787156 | epot = -221.227091913094 | etot = -170.544487830613 +784000 ekin = 24.0357990642713 | erot = 25.6617687084465 | epot = -220.907876114701 | etot = -171.210308341983 +785000 ekin = 24.5524506997925 | erot = 24.7676360875449 | epot = -220.413360888571 | etot = -171.093274101234 +786000 ekin = 24.4055025806397 | erot = 24.6030636477925 | epot = -219.720284916293 | etot = -170.711718687861 +787000 ekin = 25.0410360300686 | erot = 22.998359933619 | epot = -218.996593162027 | etot = -170.95719719834 +788000 ekin = 24.767877979881 | erot = 21.7923381425487 | epot = -218.352848534383 | etot = -171.792632411953 +789000 ekin = 24.8408040750631 | erot = 24.1208833257935 | epot = -217.830352648894 | etot = -168.868665248037 +790000 ekin = 24.4896562826161 | erot = 23.8855568181502 | epot = -217.476066337486 | etot = -169.10085323672 +791000 ekin = 24.295800420788 | erot = 22.2236025604802 | epot = -217.181373280855 | etot = -170.661970299587 +792000 ekin = 23.8380813001559 | erot = 20.6465905204417 | epot = -216.979132071427 | etot = -172.494460250829 +793000 ekin = 23.4376405312798 | erot = 22.3758695226247 | epot = -217.013967781529 | etot = -171.200457727625 +794000 ekin = 23.6651564360299 | erot = 24.5594365423356 | epot = -217.322425543396 | etot = -169.097832565031 +795000 ekin = 24.2246572084756 | erot = 24.523759714456 | epot = -217.532287869643 | etot = -168.783870946711 +796000 ekin = 24.0060240578042 | erot = 25.0471365078935 | epot = -217.591289135025 | etot = -168.538128569328 +797000 ekin = 24.6806226103091 | erot = 24.5153114750642 | epot = -217.396581247709 | etot = -168.200647162335 +798000 ekin = 23.743570188968 | erot = 26.0446750366824 | epot = -217.042257715778 | etot = -167.254012490128 +799000 ekin = 23.6918256055875 | erot = 25.3998427121517 | epot = -216.430832155802 | etot = -167.339163838063 +800000 ekin = 23.9795390809841 | erot = 26.2050804883332 | epot = -215.909334288757 | etot = -165.724714719439 +801000 ekin = 22.9818713498596 | erot = 26.0822510026421 | epot = -215.192675863883 | etot = -166.128553511382 +802000 ekin = 22.6987202252713 | erot = 24.4605697174941 | epot = -214.288341115587 | etot = -167.129051172822 +803000 ekin = 22.5973595447689 | erot = 25.0746177868642 | epot = -213.399668666611 | etot = -165.727691334978 +804000 ekin = 22.5679051171115 | erot = 23.8929873743116 | epot = -212.445166364649 | etot = -165.984273873226 +805000 ekin = 23.9825063136489 | erot = 23.4605910900564 | epot = -211.763911653385 | etot = -164.32081424968 +806000 ekin = 23.7122851358872 | erot = 24.3242427199374 | epot = -211.391629930493 | etot = -163.355102074668 +807000 ekin = 24.334807708307 | erot = 25.0191489745547 | epot = -211.002022647805 | etot = -161.648065964944 +808000 ekin = 23.5785338219753 | erot = 25.682978373141 | epot = -210.682430009381 | etot = -161.420917814264 +809000 ekin = 23.2672257998437 | erot = 23.7727702775216 | epot = -210.482421836394 | etot = -163.442425759029 +810000 ekin = 23.2973748071818 | erot = 24.561611045747 | epot = -210.255015349723 | etot = -162.396029496794 +811000 ekin = 24.0082703459793 | erot = 24.8986235898251 | epot = -210.100128510354 | etot = -161.19323457455 +812000 ekin = 23.5717850105925 | erot = 22.2118475566537 | epot = -210.079952231166 | etot = -164.29631966392 +813000 ekin = 23.8144414957769 | erot = 23.7648492562902 | epot = -210.006754772319 | etot = -162.427464020252 +814000 ekin = 23.3465977086067 | erot = 23.58039301019 | epot = -210.26830643344 | etot = -163.341315714643 +815000 ekin = 23.7706537845421 | erot = 23.6859516971766 | epot = -210.69986675248 | etot = -163.243261270761 +816000 ekin = 24.4396723738333 | erot = 20.7642731167639 | epot = -211.197880702624 | etot = -165.993935212026 +817000 ekin = 24.5050242640549 | erot = 20.1975149970127 | epot = -211.716456063282 | etot = -167.013916802214 +818000 ekin = 24.6467770699857 | erot = 21.529583415028 | epot = -212.178224182293 | etot = -166.001863697279 +819000 ekin = 23.9362784569689 | erot = 21.885485913296 | epot = -212.7074517228 | etot = -166.885687352535 +820000 ekin = 23.8925161494513 | erot = 21.7993180032808 | epot = -213.102576947411 | etot = -167.410742794679 +821000 ekin = 24.2038142478228 | erot = 22.9479343465945 | epot = -213.713003298829 | etot = -166.561254704412 +822000 ekin = 24.9372292708339 | erot = 23.3111003411094 | epot = -214.446490633768 | etot = -166.198161021825 +823000 ekin = 24.9810184744614 | erot = 19.3880692104392 | epot = -215.313873180455 | etot = -170.944785495554 +824000 ekin = 25.3757196310442 | erot = 19.1383506800577 | epot = -216.195322093276 | etot = -171.681251782174 +825000 ekin = 25.7714493929878 | erot = 20.7852688563227 | epot = -217.289068840725 | etot = -170.732350591415 +826000 ekin = 26.8493153910039 | erot = 21.6412827777179 | epot = -218.435288959846 | etot = -169.944690791124 +827000 ekin = 27.3839801920855 | erot = 21.4692964838888 | epot = -219.392426378877 | etot = -170.539149702903 +828000 ekin = 27.229680724747 | erot = 19.6329742054381 | epot = -220.273927299677 | etot = -173.411272369491 +829000 ekin = 28.1128884812802 | erot = 20.9502927197495 | epot = -221.21471082526 | etot = -172.15152962423 +830000 ekin = 28.8435364019276 | erot = 21.7826449636337 | epot = -222.278080486409 | etot = -171.651899120847 +831000 ekin = 28.382403945525 | erot = 21.9470916756457 | epot = -223.209359588942 | etot = -172.879863967771 +832000 ekin = 29.2687628401495 | erot = 20.5210693984925 | epot = -223.940697765464 | etot = -174.150865526822 +833000 ekin = 29.8001169918452 | erot = 19.1336112091991 | epot = -224.577996191363 | etot = -175.644267990319 +834000 ekin = 29.988952353328 | erot = 18.4370859277507 | epot = -225.027611469757 | etot = -176.601573188678 +835000 ekin = 31.1943711572552 | erot = 19.9395820078326 | epot = -225.505582228924 | etot = -174.371629063836 +836000 ekin = 31.4486064464243 | erot = 18.8230392617263 | epot = -225.897370125356 | etot = -175.625724417205 +837000 ekin = 30.897968105625 | erot = 17.525936203234 | epot = -226.014420243358 | etot = -177.590515934499 +838000 ekin = 30.3278609246781 | erot = 17.8376744101104 | epot = -225.874910017182 | etot = -177.709374682393 +839000 ekin = 28.5705963055734 | erot = 19.0197374605662 | epot = -225.567956855126 | etot = -177.977623088986 +840000 ekin = 27.8420547779393 | erot = 20.3181282989612 | epot = -225.084398799451 | etot = -176.924215722551 +841000 ekin = 26.578531878898 | erot = 18.291693309889 | epot = -224.600684647618 | etot = -179.730459458831 +842000 ekin = 25.021856816298 | erot = 17.0225406378546 | epot = -224.142254239588 | etot = -182.097856785436 +843000 ekin = 23.9095699919698 | erot = 15.4704933701473 | epot = -223.646706047482 | etot = -184.266642685364 +844000 ekin = 22.5803633860571 | erot = 15.9225454375333 | epot = -223.270602971588 | etot = -184.767694147998 +845000 ekin = 22.8380208177356 | erot = 16.9518494619353 | epot = -223.143196252822 | etot = -183.353325973152 +846000 ekin = 22.6092342503318 | erot = 19.1522264883275 | epot = -223.294605543864 | etot = -181.533144805205 +847000 ekin = 22.8438035235789 | erot = 20.5201034436593 | epot = -223.473679851918 | etot = -180.10977288468 +848000 ekin = 24.096705623773 | erot = 23.2844333976006 | epot = -223.639763222442 | etot = -176.258624201068 +849000 ekin = 23.4884021207942 | erot = 25.3929694182074 | epot = -223.896170953652 | etot = -175.01479941465 +850000 ekin = 22.6242009333951 | erot = 26.9404543040126 | epot = -224.252836199893 | etot = -174.688180962486 +851000 ekin = 22.462800324761 | erot = 26.1722746584294 | epot = -224.607456254157 | etot = -175.972381270966 +852000 ekin = 22.9338232909787 | erot = 26.8967348092924 | epot = -224.962026374242 | etot = -175.131468273971 +853000 ekin = 23.5089803042907 | erot = 26.2817254800077 | epot = -225.253808794644 | etot = -175.463103010346 +854000 ekin = 23.4667891668536 | erot = 26.9521294085684 | epot = -225.450940504292 | etot = -175.03202192887 +855000 ekin = 22.8308419775732 | erot = 26.0448263395011 | epot = -225.58818928127 | etot = -176.712520964196 +856000 ekin = 22.8838807708131 | erot = 28.3173269449285 | epot = -225.61075714919 | etot = -174.409549433448 +857000 ekin = 23.1624988447929 | erot = 28.1731020031475 | epot = -225.539880019331 | etot = -174.204279171391 +858000 ekin = 23.010544463387 | erot = 27.4142307819788 | epot = -225.412270604551 | etot = -174.987495359185 +859000 ekin = 22.7753414049503 | erot = 27.6211492713748 | epot = -225.124163927943 | etot = -174.727673251618 +860000 ekin = 23.2703861283527 | erot = 24.9426356523561 | epot = -224.786259608365 | etot = -176.573237827656 +861000 ekin = 23.7729389676944 | erot = 24.8447311566921 | epot = -224.563551923108 | etot = -175.945881798722 +862000 ekin = 23.5340740192712 | erot = 24.4915624205987 | epot = -224.357805969819 | etot = -176.332169529949 +863000 ekin = 23.7375308575266 | erot = 24.2323944373344 | epot = -224.144044493851 | etot = -176.17411919899 +864000 ekin = 23.3716941352973 | erot = 22.3641269665702 | epot = -223.879914649663 | etot = -178.144093547796 +865000 ekin = 23.1186430050472 | erot = 22.7161380633252 | epot = -223.612787576836 | etot = -177.778006508463 +866000 ekin = 22.0842043208688 | erot = 24.9778691380164 | epot = -223.307430080952 | etot = -176.245356622066 +867000 ekin = 21.1657335889336 | erot = 26.0383220824095 | epot = -223.101208746092 | etot = -175.897153074749 +868000 ekin = 20.7974073535693 | erot = 26.8327425921659 | epot = -222.794942007792 | etot = -175.164792062057 +869000 ekin = 20.4042118249737 | erot = 27.1429100482463 | epot = -222.436116261228 | etot = -174.888994388008 +870000 ekin = 20.1957141053955 | erot = 25.7366487329437 | epot = -221.955207275389 | etot = -176.02284443705 +871000 ekin = 20.2123557957261 | erot = 25.1939802920791 | epot = -221.256690821026 | etot = -175.850354733221 +872000 ekin = 20.4032419950175 | erot = 25.4624355027898 | epot = -220.516968111741 | etot = -174.651290613934 +873000 ekin = 19.7555498360178 | erot = 24.5861053407173 | epot = -219.769573418505 | etot = -175.42791824177 +874000 ekin = 18.6683455164676 | erot = 24.6077624002317 | epot = -219.119875205566 | etot = -175.843767288867 +875000 ekin = 18.1744504561662 | erot = 24.6987338548905 | epot = -218.47231102186 | etot = -175.599126710803 +876000 ekin = 18.4401297958598 | erot = 25.8115012454218 | epot = -217.9495809478 | etot = -173.697949906518 +877000 ekin = 17.664381190264 | erot = 26.0938124408268 | epot = -217.613305746208 | etot = -173.855112115117 +878000 ekin = 17.5155425895501 | erot = 26.1251978929977 | epot = -217.353846093228 | etot = -173.71310561068 +879000 ekin = 18.0158870329902 | erot = 22.9229967356032 | epot = -217.142818533763 | etot = -176.20393476517 +880000 ekin = 18.2898091775908 | erot = 21.9678230763756 | epot = -216.947884971478 | etot = -176.690252717512 +881000 ekin = 18.2557212304153 | erot = 20.7986777914948 | epot = -216.867472880906 | etot = -177.813073858995 +882000 ekin = 18.6882799858829 | erot = 22.2873864360058 | epot = -217.05073780239 | etot = -176.075071380501 +883000 ekin = 18.9334632698957 | erot = 21.3254259967097 | epot = -217.335733022766 | etot = -177.076843756161 +884000 ekin = 19.7058560972579 | erot = 20.8095031819962 | epot = -217.759932525085 | etot = -177.244573245831 +885000 ekin = 20.2112631550784 | erot = 19.5575411920434 | epot = -218.268786439491 | etot = -178.49998209237 +886000 ekin = 20.7002616226387 | erot = 19.310776902867 | epot = -218.766008187746 | etot = -178.75496966224 +887000 ekin = 21.556043787289 | erot = 18.6474685520941 | epot = -219.158663992651 | etot = -178.955151653268 +888000 ekin = 21.3334930006689 | erot = 20.4856021155481 | epot = -219.579651710559 | etot = -177.760556594342 +889000 ekin = 22.171697390566 | erot = 20.6166150577233 | epot = -220.153325957315 | etot = -177.365013509026 +890000 ekin = 22.2345451037052 | erot = 21.2895106408631 | epot = -220.540453919156 | etot = -177.016398174588 +891000 ekin = 22.2608122330327 | erot = 20.1682134340203 | epot = -220.830256027334 | etot = -178.401230360281 +892000 ekin = 22.2667041004928 | erot = 21.1835211310339 | epot = -220.974423299556 | etot = -177.52419806803 +893000 ekin = 22.8785998921146 | erot = 22.2656591807102 | epot = -220.854501706686 | etot = -175.710242633862 +894000 ekin = 22.7070083180718 | erot = 20.7443672875634 | epot = -220.57293320363 | etot = -177.121557597995 +895000 ekin = 22.4994314958752 | erot = 20.2750367527769 | epot = -220.21529694266 | etot = -177.440828694008 +896000 ekin = 22.6862504668757 | erot = 21.9474616043293 | epot = -219.676966141549 | etot = -175.043254070344 +897000 ekin = 22.4101657769622 | erot = 20.2849313539379 | epot = -218.954521501181 | etot = -176.259424370281 +898000 ekin = 22.6067604772945 | erot = 22.1361684291271 | epot = -218.088311088299 | etot = -173.345382181877 +899000 ekin = 22.6002362519927 | erot = 22.9443785260411 | epot = -217.224223257415 | etot = -171.679608479382 +900000 ekin = 22.2271969756017 | erot = 21.2795539705332 | epot = -216.378348455151 | etot = -172.871597509016 +901000 ekin = 22.049601241704 | erot = 19.6983125737511 | epot = -215.642075676261 | etot = -173.894161860806 +902000 ekin = 21.5373973946795 | erot = 20.0636413054755 | epot = -215.059151442717 | etot = -173.458112742562 +903000 ekin = 21.3273338630826 | erot = 20.6238147912146 | epot = -214.498710762212 | etot = -172.547562107915 +904000 ekin = 21.0822000097366 | erot = 21.2140090803987 | epot = -214.106117024932 | etot = -171.809907934796 +905000 ekin = 20.688573504515 | erot = 23.6425315011056 | epot = -213.989802974573 | etot = -169.658697968952 +906000 ekin = 20.8777040514165 | erot = 22.1389592583989 | epot = -213.961705252052 | etot = -170.945041942237 +907000 ekin = 21.5380348777401 | erot = 20.2343470856017 | epot = -214.064513257377 | etot = -172.292131294036 +908000 ekin = 20.9274847289174 | erot = 22.9159415344444 | epot = -214.205523604128 | etot = -170.362097340766 +909000 ekin = 20.7056821583171 | erot = 23.1534436178424 | epot = -214.128940350364 | etot = -170.269814574204 +910000 ekin = 20.6850690694788 | erot = 21.783469726861 | epot = -213.91187960968 | etot = -171.44334081334 +911000 ekin = 20.4049026492844 | erot = 24.4277842653814 | epot = -213.485163443353 | etot = -168.652476528687 +912000 ekin = 20.6124368604298 | erot = 25.2278717850118 | epot = -212.994133996415 | etot = -167.153825350974 +913000 ekin = 20.3761012114308 | erot = 24.7723910910313 | epot = -212.657154422535 | etot = -167.508662120073 +914000 ekin = 19.8968997426853 | erot = 25.4410819754834 | epot = -212.497368647685 | etot = -167.159386929516 +915000 ekin = 19.9950171951882 | erot = 25.9419095773569 | epot = -212.507529869006 | etot = -166.570603096461 +916000 ekin = 19.6549262075363 | erot = 24.538237997724 | epot = -212.481735916643 | etot = -168.288571711383 +917000 ekin = 19.1943251031612 | erot = 24.31332627058 | epot = -212.593107757692 | etot = -169.085456383951 +918000 ekin = 18.3242362402623 | erot = 22.0402118609707 | epot = -212.817817515526 | etot = -172.453369414293 +919000 ekin = 18.4622091649616 | erot = 22.0712625398805 | epot = -213.248725483561 | etot = -172.715253778719 +920000 ekin = 19.2487751773886 | erot = 25.3359478866229 | epot = -213.780255594758 | etot = -169.195532530746 +921000 ekin = 19.5018854862383 | erot = 23.5233553159472 | epot = -214.227012786969 | etot = -171.201771984784 +922000 ekin = 20.0460346272463 | erot = 23.3015862848816 | epot = -214.628134308544 | etot = -171.280513396416 +923000 ekin = 19.2900442060425 | erot = 21.7882354465828 | epot = -215.132996794542 | etot = -174.054717141917 +924000 ekin = 19.8084784518446 | erot = 20.6067657458497 | epot = -215.520425153804 | etot = -175.10518095611 +925000 ekin = 19.4297747207056 | erot = 19.7971794451035 | epot = -215.775169090021 | etot = -176.548214924211 +926000 ekin = 19.6579133002046 | erot = 19.0438552077666 | epot = -215.748052097731 | etot = -177.04628358976 +927000 ekin = 20.4195662533946 | erot = 18.9593050109652 | epot = -215.618862876762 | etot = -176.239991612402 +928000 ekin = 20.4817836282247 | erot = 18.9847825923888 | epot = -215.304393191577 | etot = -175.837826970963 +929000 ekin = 20.9504941576429 | erot = 19.7784806309953 | epot = -214.727990541094 | etot = -173.999015752456 +930000 ekin = 21.1315408433683 | erot = 20.6616164444539 | epot = -214.061785502445 | etot = -172.268628214623 +931000 ekin = 21.2634088922109 | erot = 21.9365830714564 | epot = -213.529347543443 | etot = -170.329355579775 +932000 ekin = 21.006213211584 | erot = 21.2825267850011 | epot = -212.999183574852 | etot = -170.710443578267 +933000 ekin = 21.2284411209639 | erot = 20.8232596682586 | epot = -212.371172372981 | etot = -170.319471583758 +934000 ekin = 20.5279385282457 | erot = 20.1701889387579 | epot = -211.858985221721 | etot = -171.160857754718 +935000 ekin = 20.1948548273404 | erot = 19.538371480896 | epot = -211.862647749463 | etot = -172.129421441226 +936000 ekin = 20.1806679134658 | erot = 21.4990281973767 | epot = -212.443949037452 | etot = -170.76425292661 +937000 ekin = 20.0545914091422 | erot = 20.9834617113798 | epot = -213.292670869919 | etot = -172.254617749397 +938000 ekin = 19.8082215701157 | erot = 20.8974589230379 | epot = -214.037804111151 | etot = -173.332123617997 +939000 ekin = 20.3649856793841 | erot = 23.9090631210053 | epot = -214.809663951944 | etot = -170.535615151554 +940000 ekin = 20.9455103352144 | erot = 24.9039051347133 | epot = -215.699887091858 | etot = -169.850471621931 +941000 ekin = 22.0008473383399 | erot = 23.3113935488402 | epot = -216.614986710114 | etot = -171.302745822934 +942000 ekin = 21.6408089485804 | erot = 26.4701413664084 | epot = -217.436072618249 | etot = -169.32512230326 +943000 ekin = 22.0375713327493 | erot = 23.8525644765125 | epot = -218.064504556064 | etot = -172.174368746803 +944000 ekin = 21.3825689791004 | erot = 22.0065856356145 | epot = -218.486120233654 | etot = -175.096965618939 +945000 ekin = 20.850173972681 | erot = 21.1332702356783 | epot = -218.794495873448 | etot = -176.811051665089 +946000 ekin = 20.4139375222148 | erot = 23.6679631776017 | epot = -219.021459743601 | etot = -174.939559043785 +947000 ekin = 20.1906398813672 | erot = 26.5654138598139 | epot = -218.929211499128 | etot = -172.173157757947 +948000 ekin = 20.1586787090284 | erot = 25.3617860657906 | epot = -218.683588417106 | etot = -173.163123642287 +949000 ekin = 20.6015087780768 | erot = 24.0216151369725 | epot = -218.644352518059 | etot = -174.02122860301 +950000 ekin = 20.7471893785302 | erot = 25.3619181001311 | epot = -218.710402012473 | etot = -172.601294533811 +951000 ekin = 20.2569076833938 | erot = 27.0210577095201 | epot = -218.988213515806 | etot = -171.710248122892 +952000 ekin = 20.5584159627657 | erot = 27.2103033079755 | epot = -219.159574869077 | etot = -171.390855598336 +953000 ekin = 21.7412270180337 | erot = 25.7395142553205 | epot = -219.276981606574 | etot = -171.79624033322 +954000 ekin = 22.5769744101438 | erot = 23.3851809606138 | epot = -219.432021398479 | etot = -173.469866027721 +955000 ekin = 22.7540917406293 | erot = 24.0485022563637 | epot = -219.45122924006 | etot = -172.648635243067 +956000 ekin = 23.6959292084454 | erot = 24.2542500120269 | epot = -219.324912206847 | etot = -171.374732986375 +957000 ekin = 24.5172263085672 | erot = 24.1459598029485 | epot = -219.163645858039 | etot = -170.500459746523 +958000 ekin = 25.8225599553336 | erot = 23.6654996104887 | epot = -219.159019217903 | etot = -169.670959652081 +959000 ekin = 26.8068645926446 | erot = 25.0211786091659 | epot = -219.23531458736 | etot = -167.40727138555 +960000 ekin = 26.5999695579089 | erot = 25.6266836486181 | epot = -219.112393893106 | etot = -166.885740686579 +961000 ekin = 27.0539782988757 | erot = 26.1135586378242 | epot = -218.901327623641 | etot = -165.733790686941 +962000 ekin = 27.3128371491059 | erot = 25.6398136135623 | epot = -218.716820658053 | etot = -165.764169895385 +963000 ekin = 27.5776608737564 | erot = 24.2328598021347 | epot = -218.565342926505 | etot = -166.754822250614 +964000 ekin = 28.434847779201 | erot = 23.0688699860552 | epot = -218.32159079768 | etot = -166.817873032424 +965000 ekin = 27.9989611524549 | erot = 21.1729542648574 | epot = -217.935512501719 | etot = -168.763597084407 +966000 ekin = 28.1906276758125 | erot = 19.7596499447264 | epot = -217.551246311047 | etot = -169.600968690508 +967000 ekin = 28.1299488148111 | erot = 19.7764414549918 | epot = -217.022765960343 | etot = -169.11637569054 +968000 ekin = 27.2553372938565 | erot = 18.6432061694697 | epot = -216.345481598031 | etot = -170.446938134704 +969000 ekin = 27.3975194660702 | erot = 16.7046773675797 | epot = -215.471813515321 | etot = -171.369616681671 +970000 ekin = 26.2092304427085 | erot = 16.6741476212952 | epot = -214.618004397777 | etot = -171.734626333774 +971000 ekin = 25.4753520862258 | erot = 16.4961256389214 | epot = -213.774217411075 | etot = -171.802739685927 +972000 ekin = 25.1338150886746 | erot = 17.5885931811208 | epot = -212.941007560394 | etot = -170.218599290598 +973000 ekin = 23.9980459819068 | erot = 19.2413290657419 | epot = -212.209972657659 | etot = -168.97059761001 +974000 ekin = 23.1991915243631 | erot = 20.5621498503079 | epot = -211.643302372093 | etot = -167.881960997422 +975000 ekin = 22.0936708905994 | erot = 23.8925799416044 | epot = -211.258183683576 | etot = -165.271932851372 +976000 ekin = 21.5284614810504 | erot = 24.4823848282085 | epot = -210.871321753255 | etot = -164.860475443996 +977000 ekin = 20.9102492410769 | erot = 21.693728956875 | epot = -210.421620122539 | etot = -167.817641924587 +978000 ekin = 20.5534455754244 | erot = 21.4137671023852 | epot = -210.104378292213 | etot = -168.137165614403 +979000 ekin = 20.4475545334837 | erot = 21.7023482062785 | epot = -209.997680361419 | etot = -167.847777621657 +980000 ekin = 20.0153051482561 | erot = 22.1641624026467 | epot = -209.89453747175 | etot = -167.715069920847 +981000 ekin = 19.2553377922842 | erot = 21.6998257958764 | epot = -209.890607062706 | etot = -168.935443474545 +982000 ekin = 19.3602504755725 | erot = 22.71183002751 | epot = -209.817363885782 | etot = -167.7452833827 +983000 ekin = 19.9918630693289 | erot = 23.202269542363 | epot = -209.824553681854 | etot = -166.630421070162 +984000 ekin = 20.2229931630647 | erot = 22.783376358611 | epot = -209.980959689712 | etot = -166.974590168037 +985000 ekin = 20.1271575518484 | erot = 25.8324951123609 | epot = -210.176274954526 | etot = -164.216622290317 +986000 ekin = 19.8065574143083 | erot = 25.7086232557777 | epot = -210.259482005916 | etot = -164.74430133583 +987000 ekin = 19.8241962308738 | erot = 27.3477557937439 | epot = -210.338061448385 | etot = -163.166109423767 +988000 ekin = 20.5802327460373 | erot = 26.5177798191887 | epot = -210.374636605805 | etot = -163.276624040579 +989000 ekin = 19.8243827036663 | erot = 25.0249543132842 | epot = -210.405555790817 | etot = -165.556218773867 +990000 ekin = 19.6784859521663 | erot = 25.0211614919117 | epot = -210.536148192301 | etot = -165.836500748223 +991000 ekin = 19.8800072497794 | erot = 23.9545983908763 | epot = -210.811356988255 | etot = -166.976751347599 +992000 ekin = 19.9500698690931 | erot = 23.5129947805019 | epot = -211.184932089162 | etot = -167.721867439567 +993000 ekin = 18.937341089784 | erot = 23.1942485295875 | epot = -211.832628892927 | etot = -169.701039273555 +994000 ekin = 19.0566139838972 | erot = 23.5902607657524 | epot = -212.751294519113 | etot = -170.104419769464 +995000 ekin = 19.600538964917 | erot = 24.2017471939332 | epot = -213.671202895863 | etot = -169.868916737012 +996000 ekin = 20.3648160827738 | erot = 24.5056692824139 | epot = -214.567571801734 | etot = -169.697086436546 +997000 ekin = 20.6784197154575 | erot = 22.6383548571427 | epot = -215.397393210187 | etot = -172.080618637587 +998000 ekin = 21.27338897749 | erot = 21.4812766210868 | epot = -216.126312680602 | etot = -173.371647082025 +999000 ekin = 22.1968344281123 | erot = 22.7999859685056 | epot = -216.784980184639 | etot = -171.788159788021 +1000000 ekin = 22.6406306102505 | erot = 22.5936369544571 | epot = -217.43832313152 | etot = -172.204055566812 + 1000000 303.8185 -221.63969 4.201369 -194.79769 -0.0039208577 39304000 +Loop time of 33.2292 on 4 procs for 1000000 steps with 26 atoms + +Performance: 44.358 ns/day, 0.541 hours/ns, 30094.016 timesteps/s, 782.444 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 10.626 | 15.644 | 25.979 | 154.5 | 47.08 +Bond | 0.33928 | 0.43429 | 0.52964 | 14.4 | 1.31 +Neigh | 0.007773 | 0.0079158 | 0.008061 | 0.1 | 0.02 +Comm | 4.0659 | 14.948 | 19.566 | 164.9 | 44.99 +Output | 0.089356 | 0.10217 | 0.10917 | 2.4 | 0.31 +Modify | 1.2889 | 1.7411 | 2.1956 | 31.1 | 5.24 +Other | | 0.3515 | | | 1.06 + +Nlocal: 6.5 ave 10 max 3 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 19.5 ave 23 max 16 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 75.25 ave 182 max 25 min +Histogram: 1 2 0 0 0 0 0 0 0 1 + +Total # of neighbors = 301 +Ave neighs/atom = 11.576923 +Ave special neighs/atom = 5.0769231 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:33 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 new file mode 100644 index 0000000000..29d38ba865 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 26 atoms + reading velocities ... + 26 velocities + scanning bonds ... + 1 = max bonds/atom + 26 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 24 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 26 settings made for mass +26 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 +Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 299.91159 -228.12763 5.3145589 -200.46358 0.037365999 39304000 +1000 ekin = 22.8379863364631 | erot = 20.8727077214658 | epot = -223.40247948455 | etot = -179.691785426621 +2000 ekin = 22.7811305214841 | erot = 22.642319354707 | epot = -224.256117760205 | etot = -178.832667884014 +3000 ekin = 23.3007102476489 | erot = 24.7866780853993 | epot = -225.012681837824 | etot = -176.925293504776 +4000 ekin = 22.7903421051578 | erot = 24.569247173836 | epot = -225.53962239349 | etot = -178.180033114497 +5000 ekin = 22.19925646023 | erot = 25.6289473462429 | epot = -225.721034396187 | etot = -177.892830589714 +6000 ekin = 22.3860723428343 | erot = 25.7078570981677 | epot = -225.520727206183 | etot = -177.426797765181 +7000 ekin = 22.6093903901514 | erot = 24.8279594754098 | epot = -225.139767140542 | etot = -177.702417274981 +8000 ekin = 22.3366506221221 | erot = 25.3490822995746 | epot = -224.659830672346 | etot = -176.97409775065 +9000 ekin = 22.1017491922176 | erot = 23.8561173282126 | epot = -224.102470196007 | etot = -178.144603675577 +10000 ekin = 21.3469487217786 | erot = 23.034985278251 | epot = -223.591750396367 | etot = -179.209816396337 +11000 ekin = 20.5717104541852 | erot = 24.8615565294047 | epot = -223.484019303241 | etot = -178.050752319652 +12000 ekin = 20.411935484151 | erot = 25.1271441409211 | epot = -223.751373801975 | etot = -178.212294176903 +13000 ekin = 20.2798810279148 | erot = 24.281806390477 | epot = -224.390777503839 | etot = -179.829090085447 +14000 ekin = 19.6242363441233 | erot = 26.8542751690783 | epot = -225.215820819941 | etot = -178.73730930674 +15000 ekin = 20.0818097074935 | erot = 29.2937195480841 | epot = -226.167773981604 | etot = -176.792244726026 +16000 ekin = 19.6823418822516 | erot = 30.3811175824271 | epot = -227.408076260742 | etot = -177.344616796063 +17000 ekin = 19.5450698280734 | erot = 32.5391774659612 | epot = -228.808347823448 | etot = -176.724100529413 +18000 ekin = 20.0756319264279 | erot = 33.5672084608192 | epot = -230.110512386278 | etot = -176.467671999031 +19000 ekin = 19.6603874622079 | erot = 32.528542938808 | epot = -231.207417420873 | etot = -179.018487019857 +20000 ekin = 19.5984395633796 | erot = 31.3606067961676 | epot = -232.171981685224 | etot = -181.212935325677 +21000 ekin = 19.8375798064082 | erot = 31.8939937172914 | epot = -232.880097232772 | etot = -181.148523709072 +22000 ekin = 19.9286085655832 | erot = 30.5391742384594 | epot = -233.322303895413 | etot = -182.85452109137 +23000 ekin = 20.1661434732298 | erot = 30.6973170954371 | epot = -233.687536932121 | etot = -182.824076363455 +24000 ekin = 20.5065436368894 | erot = 30.0297091428477 | epot = -233.956998583432 | etot = -183.420745803695 +25000 ekin = 20.529858609709 | erot = 27.1945410830961 | epot = -233.994416252181 | etot = -186.270016559376 +26000 ekin = 20.699035687076 | erot = 29.09174515188 | epot = -233.720969470337 | etot = -183.930188631381 +27000 ekin = 20.7350777764672 | erot = 28.5961324745054 | epot = -233.307821216305 | etot = -183.976610965332 +28000 ekin = 21.1532240716935 | erot = 27.7486079543453 | epot = -232.966688262262 | etot = -184.064856236223 +29000 ekin = 21.3118506902676 | erot = 25.736471201621 | epot = -232.759622611367 | etot = -185.711300719478 +30000 ekin = 20.9513131899827 | erot = 26.876741160358 | epot = -232.673474007172 | etot = -184.845419656831 +31000 ekin = 21.3216486612277 | erot = 26.2777465254033 | epot = -232.609223688159 | etot = -185.009828501528 +32000 ekin = 22.0969166841928 | erot = 24.7959897585166 | epot = -232.612526553891 | etot = -185.719620111181 +33000 ekin = 22.875370966078 | erot = 24.1467590540463 | epot = -232.688992091586 | etot = -185.666862071462 +34000 ekin = 23.5405053823873 | erot = 22.7415684492007 | epot = -232.615611352503 | etot = -186.333537520915 +35000 ekin = 23.7257555349787 | erot = 26.8191624133874 | epot = -232.23498680623 | etot = -181.690068857864 +36000 ekin = 23.2515945340346 | erot = 23.8280794869285 | epot = -231.753024246269 | etot = -184.673350225306 +37000 ekin = 23.8513426401361 | erot = 25.6368246142449 | epot = -231.060980894716 | etot = -181.572813640335 +38000 ekin = 23.8781935722645 | erot = 22.7747736894791 | epot = -230.152104757751 | etot = -183.499137496008 +39000 ekin = 23.3884393320053 | erot = 22.6925700673075 | epot = -229.140534316443 | etot = -183.05952491713 +40000 ekin = 22.7413687353909 | erot = 21.4736378452411 | epot = -228.265631373339 | etot = -184.050624792707 +41000 ekin = 23.2348935054145 | erot = 21.0108525021673 | epot = -227.75573531584 | etot = -183.509989308258 +42000 ekin = 23.3940171890425 | erot = 22.1904243568237 | epot = -227.643506146239 | etot = -182.059064600373 +43000 ekin = 23.2681022018539 | erot = 21.7837756583263 | epot = -227.855518729869 | etot = -182.803640869689 +44000 ekin = 23.5393535337972 | erot = 20.7730908198455 | epot = -228.246566278463 | etot = -183.93412192482 +45000 ekin = 24.1405649747358 | erot = 20.1728652780817 | epot = -228.807425059799 | etot = -184.493994806982 +46000 ekin = 24.585245817982 | erot = 21.0236670642408 | epot = -229.213686304167 | etot = -183.604773421944 +47000 ekin = 24.1560413910622 | erot = 19.6811193727542 | epot = -229.413234324251 | etot = -185.576073560435 +48000 ekin = 23.5246878727431 | erot = 19.721180663017 | epot = -229.434759182691 | etot = -186.188890646931 +49000 ekin = 23.1670415745661 | erot = 22.5501021659482 | epot = -229.177266193688 | etot = -183.460122453174 +50000 ekin = 22.8223612259816 | erot = 22.567605149626 | epot = -228.600859944765 | etot = -183.210893569157 +51000 ekin = 22.9120987888545 | erot = 21.0527888961203 | epot = -227.77037262561 | etot = -183.805484940635 +52000 ekin = 22.187626079843 | erot = 20.5194847365121 | epot = -226.835169897986 | etot = -184.128059081631 +53000 ekin = 21.3650052806676 | erot = 20.2770735131344 | epot = -225.807155710179 | etot = -184.165076916377 +54000 ekin = 20.4303417025859 | erot = 17.9973021512008 | epot = -224.896097666587 | etot = -186.468453812801 +55000 ekin = 19.714913763396 | erot = 18.5590407326034 | epot = -224.06259658443 | etot = -185.788642088431 +56000 ekin = 19.685159503242 | erot = 20.0732971833202 | epot = -223.279023832763 | etot = -183.520567146201 +57000 ekin = 19.060196259904 | erot = 18.256095629202 | epot = -222.84333391372 | etot = -185.527042024614 +58000 ekin = 18.5841091049986 | erot = 19.1515036320309 | epot = -222.696024269362 | etot = -184.960411532333 +59000 ekin = 18.0414625414599 | erot = 18.2275847003703 | epot = -222.821981249891 | etot = -186.55293400806 +60000 ekin = 18.2103913071538 | erot = 18.4755642418172 | epot = -223.234305836724 | etot = -186.548350287753 +61000 ekin = 17.9869947125514 | erot = 22.4458503852164 | epot = -223.797760245785 | etot = -183.364915148017 +62000 ekin = 18.1431070502485 | erot = 21.7652022985207 | epot = -224.318306232552 | etot = -184.409996883783 +63000 ekin = 17.973357520257 | erot = 21.6688824771829 | epot = -224.735623623494 | etot = -185.093383626054 +64000 ekin = 17.8102495654737 | erot = 21.8723940899094 | epot = -225.323991291355 | etot = -185.641347635972 +65000 ekin = 18.0338529130483 | erot = 22.1181740951059 | epot = -225.877150411024 | etot = -185.72512340287 +66000 ekin = 18.1822893834801 | erot = 21.7465005263719 | epot = -226.185684363613 | etot = -186.256894453761 +67000 ekin = 18.5240194292997 | erot = 23.3964917870366 | epot = -226.365163861592 | etot = -184.444652645256 +68000 ekin = 18.5155376828975 | erot = 20.9719183620335 | epot = -226.451473665725 | etot = -186.964017620794 +69000 ekin = 18.6323014683072 | erot = 20.588171070637 | epot = -226.648083130375 | etot = -187.427610591431 +70000 ekin = 19.5343933745558 | erot = 17.5472322005953 | epot = -226.977679956235 | etot = -189.896054381084 +71000 ekin = 20.2276605685904 | erot = 16.3663260398183 | epot = -227.393323574632 | etot = -190.799336966224 +72000 ekin = 20.3130284812279 | erot = 16.4497414610662 | epot = -228.013381961156 | etot = -191.250612018862 +73000 ekin = 21.0477998518383 | erot = 15.4406791831341 | epot = -228.675590564562 | etot = -192.187111529589 +74000 ekin = 21.7371512650598 | erot = 17.5352725761175 | epot = -229.494527276336 | etot = -190.222103435159 +75000 ekin = 22.6680122759915 | erot = 18.5419401178599 | epot = -230.463408123768 | etot = -189.253455729917 +76000 ekin = 23.0346115082234 | erot = 19.8636379382539 | epot = -231.254905942531 | etot = -188.356656496053 +77000 ekin = 23.2797429827865 | erot = 19.7434715156692 | epot = -231.721208677509 | etot = -188.697994179053 +78000 ekin = 23.4106393811464 | erot = 19.4211385461251 | epot = -231.892259154973 | etot = -189.060481227701 +79000 ekin = 23.4632537757978 | erot = 18.8653049537082 | epot = -231.690998177985 | etot = -189.362439448479 +80000 ekin = 23.3884971334889 | erot = 18.1174271773692 | epot = -231.118174876358 | etot = -189.6122505655 +81000 ekin = 23.5022754315906 | erot = 17.1755695884554 | epot = -230.398467043008 | etot = -189.720622022962 +82000 ekin = 23.0472842217945 | erot = 17.2373445724549 | epot = -229.638468243904 | etot = -189.353839449655 +83000 ekin = 21.5042588722365 | erot = 16.786367445308 | epot = -228.921540236372 | etot = -190.630913918827 +84000 ekin = 22.1329940094216 | erot = 16.2632055631471 | epot = -228.335250260719 | etot = -189.93905068815 +85000 ekin = 20.9154057430379 | erot = 16.6557644544218 | epot = -227.803085954943 | etot = -190.231915757484 +86000 ekin = 20.6981517687592 | erot = 18.6120855140407 | epot = -227.283699712715 | etot = -187.973462429915 +87000 ekin = 20.7059776963377 | erot = 18.1357410469598 | epot = -226.805480829165 | etot = -187.963762085867 +88000 ekin = 20.5112535017457 | erot = 17.8809983821762 | epot = -226.459696318129 | etot = -188.067444434207 +89000 ekin = 20.6525596514182 | erot = 20.4133880492623 | epot = -226.205468820861 | etot = -185.139521120181 +90000 ekin = 20.695293192409 | erot = 20.3370512782838 | epot = -225.953852764959 | etot = -184.921508294267 +91000 ekin = 19.7682690703159 | erot = 23.8787808356902 | epot = -225.655385288229 | etot = -182.008335382223 +92000 ekin = 19.6828792607911 | erot = 22.5766537107148 | epot = -225.535582585193 | etot = -183.276049613687 +93000 ekin = 19.3048520995758 | erot = 20.6317228268703 | epot = -225.547774602348 | etot = -185.611199675902 +94000 ekin = 19.028411935034 | erot = 20.0568093447086 | epot = -225.530355910562 | etot = -186.445134630819 +95000 ekin = 18.5452655948058 | erot = 22.9286015621929 | epot = -225.523849045322 | etot = -184.049981888323 +96000 ekin = 18.3728256439782 | erot = 25.039495486179 | epot = -225.537862748503 | etot = -182.125541618346 +97000 ekin = 17.9426894203414 | erot = 28.5848563795549 | epot = -225.638824537989 | etot = -179.111278738092 +98000 ekin = 17.5850264746273 | erot = 26.5739649306284 | epot = -225.648647927869 | etot = -181.489656522613 +99000 ekin = 17.3808762582936 | erot = 24.7289180187015 | epot = -225.594130307751 | etot = -183.484336030756 +100000 ekin = 17.3273680270292 | erot = 22.7273796979409 | epot = -225.299321148282 | etot = -185.244573423312 +101000 ekin = 17.0042319903592 | erot = 20.8052793029198 | epot = -225.102935121042 | etot = -187.293423827763 +102000 ekin = 17.05502613973 | erot = 21.316603586839 | epot = -224.890904735916 | etot = -186.519275009347 +103000 ekin = 17.2263904973081 | erot = 20.3710964353458 | epot = -224.753273552475 | etot = -187.155786619821 +104000 ekin = 16.7943747317823 | erot = 21.7185799033818 | epot = -224.555386740442 | etot = -186.042432105278 +105000 ekin = 16.6865175024786 | erot = 20.0200455556502 | epot = -224.47221260965 | etot = -187.765649551522 +106000 ekin = 16.5925867843767 | erot = 21.7048075291456 | epot = -224.380087441128 | etot = -186.082693127606 +107000 ekin = 17.2054452998434 | erot = 22.6546685111546 | epot = -224.481631442089 | etot = -184.621517631091 +108000 ekin = 16.9267033337673 | erot = 23.5631418034102 | epot = -224.898081411902 | etot = -184.408236274724 +109000 ekin = 17.3821452346864 | erot = 25.9049365088352 | epot = -225.621226955643 | etot = -182.334145212121 +110000 ekin = 17.5124448065073 | erot = 27.8801611895846 | epot = -226.410419972689 | etot = -181.017813976598 +111000 ekin = 18.5487245393564 | erot = 25.6736058140268 | epot = -227.167416210036 | etot = -182.945085856652 +112000 ekin = 19.8365999588111 | erot = 24.2751230291775 | epot = -227.944028021488 | etot = -183.832305033499 +113000 ekin = 20.1722859000849 | erot = 25.3603047130775 | epot = -228.958826647654 | etot = -183.426236034491 +114000 ekin = 20.2870180696113 | erot = 25.6800990417157 | epot = -230.17458939254 | etot = -184.207472281213 +115000 ekin = 21.3318566501428 | erot = 27.1697329853562 | epot = -231.444909631325 | etot = -182.943319995826 +116000 ekin = 22.4210844135644 | erot = 26.004420936002 | epot = -232.710476417833 | etot = -184.284971068267 +117000 ekin = 24.3405871824212 | erot = 25.2077444956265 | epot = -233.933190998453 | etot = -184.384859320406 +118000 ekin = 25.0884094969948 | erot = 26.5527557651617 | epot = -235.048390081924 | etot = -183.407224819767 +119000 ekin = 25.4315051787003 | erot = 26.1546643641889 | epot = -235.858317413788 | etot = -184.272147870899 +120000 ekin = 24.9629495355357 | erot = 25.2895225128999 | epot = -236.253529746916 | etot = -186.00105769848 +121000 ekin = 26.094755391151 | erot = 26.5212744850534 | epot = -236.079647472315 | etot = -183.46361759611 +122000 ekin = 26.1701918491875 | erot = 24.3510759857483 | epot = -235.493876868904 | etot = -184.972609033969 +123000 ekin = 26.4005875446556 | erot = 20.1865632708939 | epot = -234.709375372604 | etot = -188.122224557054 +124000 ekin = 26.3381579249386 | erot = 19.6639335950121 | epot = -233.989222703183 | etot = -187.987131183233 +125000 ekin = 25.4027453417305 | erot = 19.6503648681598 | epot = -233.10224654375 | etot = -188.04913633386 +126000 ekin = 25.3255704653777 | erot = 20.0698371771056 | epot = -232.162556032928 | etot = -186.767148390445 +127000 ekin = 25.0742564529078 | erot = 19.3577482138169 | epot = -231.22010681212 | etot = -186.788102145396 +128000 ekin = 24.1452145463861 | erot = 20.722592883018 | epot = -230.30707206278 | etot = -185.439264633376 +129000 ekin = 24.1836343798902 | erot = 21.1668068192837 | epot = -229.557734556381 | etot = -184.207293357207 +130000 ekin = 23.6272916857115 | erot = 21.0608635320181 | epot = -228.86842777514 | etot = -184.180272557411 +131000 ekin = 23.7733250641655 | erot = 21.7026182128681 | epot = -228.196470483987 | etot = -182.720527206954 +132000 ekin = 22.235523086447 | erot = 22.2423990709498 | epot = -227.377132642704 | etot = -182.899210485307 +133000 ekin = 21.7697258915644 | erot = 21.0688536119307 | epot = -226.678873870809 | etot = -183.840294367314 +134000 ekin = 22.0334013998118 | erot = 23.6876876537064 | epot = -226.110477401204 | etot = -180.389388347686 +135000 ekin = 21.2888725174031 | erot = 23.8731522967533 | epot = -225.586596896472 | etot = -180.424572082316 +136000 ekin = 21.1112833844234 | erot = 23.1441906006998 | epot = -225.02986093909 | etot = -180.774386953966 +137000 ekin = 20.3417544623754 | erot = 19.8373378818128 | epot = -224.306720617089 | etot = -184.127628272901 +138000 ekin = 20.6378655675457 | erot = 20.7041461431297 | epot = -223.935090515208 | etot = -182.593078804533 +139000 ekin = 20.6358768684418 | erot = 19.6349119675149 | epot = -223.695388728766 | etot = -183.42459989281 +140000 ekin = 21.2970180334091 | erot = 20.9859430093584 | epot = -223.44632370732 | etot = -181.163362664552 +141000 ekin = 20.7458666897953 | erot = 22.008168038219 | epot = -223.471675354103 | etot = -180.717640626089 +142000 ekin = 21.6581543402664 | erot = 22.1925330545729 | epot = -223.759999018087 | etot = -179.909311623248 +143000 ekin = 22.137676382598 | erot = 19.8438720355801 | epot = -223.992076444275 | etot = -182.010528026097 +144000 ekin = 21.4512214487569 | erot = 21.2911862274696 | epot = -224.211315350262 | etot = -181.468907674035 +145000 ekin = 21.1677590228455 | erot = 20.1765379829327 | epot = -224.433855912986 | etot = -183.089558907207 +146000 ekin = 21.2954143160548 | erot = 22.315786511802 | epot = -224.708745433142 | etot = -181.097544605285 +147000 ekin = 20.9304440285978 | erot = 24.2948847043021 | epot = -224.826442145057 | etot = -179.601113412157 +148000 ekin = 20.9920002123677 | erot = 25.1867007165295 | epot = -225.027893064869 | etot = -178.849192135972 +149000 ekin = 20.4937916688861 | erot = 25.3412194127539 | epot = -225.235228138764 | etot = -179.400217057124 +150000 ekin = 20.240788496008 | erot = 24.5936585831824 | epot = -225.22294490262 | etot = -180.38849782343 +151000 ekin = 20.1765587397768 | erot = 23.3198992588029 | epot = -224.965480891794 | etot = -181.469022893215 +152000 ekin = 19.9049224846628 | erot = 22.8007918896868 | epot = -224.714024114794 | etot = -182.008309740445 +153000 ekin = 20.2049676657018 | erot = 22.194787629535 | epot = -224.584122527196 | etot = -182.184367231959 +154000 ekin = 20.2787333086907 | erot = 23.5668471416538 | epot = -224.632505362968 | etot = -180.786924912624 +155000 ekin = 20.54327508537 | erot = 21.0208344632846 | epot = -225.11524693997 | etot = -183.551137391316 +156000 ekin = 21.1891534249123 | erot = 21.9641402966851 | epot = -225.922181500193 | etot = -182.768887778596 +157000 ekin = 21.9241933405022 | erot = 22.2820243127273 | epot = -226.791928428935 | etot = -182.585710775706 +158000 ekin = 22.1128564636274 | erot = 21.6071323400673 | epot = -227.681294121914 | etot = -183.961305318219 +159000 ekin = 21.9706527338173 | erot = 23.0889220586676 | epot = -228.293622590392 | etot = -183.234047797907 +160000 ekin = 22.1766068917265 | erot = 24.537009024834 | epot = -228.724261272436 | etot = -182.010645355876 +161000 ekin = 22.2585263955668 | erot = 26.3988206054411 | epot = -229.153198320277 | etot = -180.495851319269 +162000 ekin = 23.9956799056614 | erot = 29.0208643540612 | epot = -229.511788677983 | etot = -176.49524441826 +163000 ekin = 24.0427671853836 | erot = 28.5149092203014 | epot = -229.882700364651 | etot = -177.325023958966 +164000 ekin = 24.6404986309622 | erot = 29.8954353563838 | epot = -230.05653220386 | etot = -175.520598216514 +165000 ekin = 25.37837451169 | erot = 29.3458474374449 | epot = -230.021956695543 | etot = -175.297734746409 +166000 ekin = 24.5018301159861 | erot = 27.0572013521953 | epot = -229.807404132493 | etot = -178.248372664311 +167000 ekin = 24.3635902860623 | erot = 25.1004090825066 | epot = -229.418996399617 | etot = -179.954997031048 +168000 ekin = 24.0782799291434 | erot = 23.6106192667051 | epot = -228.790493183835 | etot = -181.101593987986 +169000 ekin = 23.5408370855421 | erot = 21.779214731184 | epot = -228.096753694582 | etot = -182.776701877856 +170000 ekin = 23.3042056991829 | erot = 22.5887621937051 | epot = -227.644704595797 | etot = -181.751736702909 +171000 ekin = 23.1139069856327 | erot = 25.56161061645 | epot = -227.386750672406 | etot = -178.711233070323 +172000 ekin = 22.4125455911307 | erot = 23.9879390948077 | epot = -227.478440821498 | etot = -181.07795613556 +173000 ekin = 21.1650772689554 | erot = 24.037053824746 | epot = -228.027795739756 | etot = -182.825664646054 +174000 ekin = 21.5377174768009 | erot = 25.6623168386594 | epot = -228.810113267544 | etot = -181.610078952084 +175000 ekin = 21.2673885173618 | erot = 25.3358091366212 | epot = -229.601669873776 | etot = -182.998472219792 +176000 ekin = 22.0549078764628 | erot = 25.1987886573552 | epot = -230.199173516198 | etot = -182.94547698238 +177000 ekin = 22.1952451140842 | erot = 26.2074019384157 | epot = -230.449490408395 | etot = -182.046843355895 +178000 ekin = 22.6474601747908 | erot = 23.8569097796671 | epot = -230.486903876126 | etot = -183.982533921668 +179000 ekin = 22.5332951614051 | erot = 24.1586648743825 | epot = -230.249582873377 | etot = -183.55762283759 +180000 ekin = 22.9130954884035 | erot = 22.1104613694639 | epot = -229.757677624187 | etot = -184.73412076632 +181000 ekin = 22.5830672584554 | erot = 20.450357914035 | epot = -229.205005015184 | etot = -186.171579842693 +182000 ekin = 21.7744390453032 | erot = 20.3565453634741 | epot = -228.578765211469 | etot = -186.447780802691 +183000 ekin = 21.3156414739578 | erot = 21.1055168403748 | epot = -227.936610643158 | etot = -185.515452328825 +184000 ekin = 21.4060237522632 | erot = 20.8540585363569 | epot = -227.278789217958 | etot = -185.018706929338 +185000 ekin = 21.4522029742182 | erot = 19.9268287024307 | epot = -226.747540479433 | etot = -185.368508802785 +186000 ekin = 21.1983246906017 | erot = 21.4683722301386 | epot = -226.354347511139 | etot = -183.687650590399 +187000 ekin = 19.690535005356 | erot = 21.6640179195446 | epot = -225.994223499083 | etot = -184.639670574183 +188000 ekin = 19.3802922890703 | erot = 20.3716521999867 | epot = -225.572007065283 | etot = -185.820062576226 +189000 ekin = 18.4695751736414 | erot = 20.9528614806743 | epot = -225.247637250638 | etot = -185.825200596322 +190000 ekin = 17.4681116945173 | erot = 22.2496740454142 | epot = -224.805249640785 | etot = -185.087463900853 +191000 ekin = 16.6191337946719 | erot = 21.4193312202814 | epot = -224.294610310801 | etot = -186.256145295848 +192000 ekin = 16.0143800470349 | erot = 23.3693680596585 | epot = -223.718710211147 | etot = -184.334962104454 +193000 ekin = 15.7997901257216 | erot = 22.8225508042988 | epot = -223.089938646114 | etot = -184.467597716093 +194000 ekin = 15.2217453118598 | erot = 22.7325306996813 | epot = -222.625275149846 | etot = -184.670999138305 +195000 ekin = 15.1719099531695 | erot = 22.4876618724485 | epot = -222.099560622719 | etot = -184.439988797101 +196000 ekin = 15.3343672188822 | erot = 20.7775889118734 | epot = -221.597631501452 | etot = -185.485675370697 +197000 ekin = 14.766048091889 | erot = 19.7842334059676 | epot = -221.252213948545 | etot = -186.701932450688 +198000 ekin = 14.7770693853773 | erot = 20.3688380244553 | epot = -220.957884756875 | etot = -185.811977347042 +199000 ekin = 14.6937058517326 | erot = 22.6205548299113 | epot = -220.829895321234 | etot = -183.51563463959 +200000 ekin = 15.8653653492245 | erot = 20.8741496651364 | epot = -220.921168840223 | etot = -184.181653825862 +201000 ekin = 16.8728289108128 | erot = 23.0954953178473 | epot = -221.24134564708 | etot = -181.27302141842 +202000 ekin = 17.1574797353138 | erot = 22.285557506037 | epot = -221.513124761678 | etot = -182.070087520327 +203000 ekin = 18.4748883214853 | erot = 21.1472224923989 | epot = -221.731230109427 | etot = -182.109119295543 +204000 ekin = 19.2325496005105 | erot = 20.9923779560698 | epot = -221.821935938326 | etot = -181.597008381746 +205000 ekin = 18.4255902998036 | erot = 21.6289651382083 | epot = -222.10565061528 | etot = -182.051095177268 +206000 ekin = 18.5468871013068 | erot = 22.2892911055978 | epot = -222.480026344849 | etot = -181.643848137944 +207000 ekin = 18.9799810220236 | erot = 25.3769178031176 | epot = -222.656627081049 | etot = -178.299728255907 +208000 ekin = 18.985044800951 | erot = 26.4647809474189 | epot = -222.71751731042 | etot = -177.26769156205 +209000 ekin = 19.7564462509297 | erot = 23.7060464556116 | epot = -222.835034583459 | etot = -179.372541876917 +210000 ekin = 18.930059047627 | erot = 21.9791265973624 | epot = -222.75013900049 | etot = -181.840953355501 +211000 ekin = 19.3637206258675 | erot = 20.2144155977342 | epot = -222.884011041863 | etot = -183.305874818262 +212000 ekin = 18.6127906086045 | erot = 18.7836957734051 | epot = -223.131977986675 | etot = -185.735491604666 +213000 ekin = 18.6207275953171 | erot = 18.079576040676 | epot = -223.568944156785 | etot = -186.868640520792 +214000 ekin = 18.0525593583566 | erot = 20.9785428305194 | epot = -224.281741393784 | etot = -185.250639204908 +215000 ekin = 18.4181697813342 | erot = 21.5844731751551 | epot = -225.36589716156 | etot = -185.363254205071 +216000 ekin = 18.1283838147148 | erot = 26.0258037718262 | epot = -226.609028691632 | etot = -182.454841105091 +217000 ekin = 18.5976564529797 | erot = 25.2672310084213 | epot = -227.604708371557 | etot = -183.739820910156 +218000 ekin = 18.6146376310641 | erot = 23.8235521999893 | epot = -228.575434081834 | etot = -186.13724425078 +219000 ekin = 19.3665245563789 | erot = 24.0423091654174 | epot = -229.487172233029 | etot = -186.078338511233 +220000 ekin = 19.0674806968353 | erot = 24.8437141420456 | epot = -230.380897501689 | etot = -186.469702662808 +221000 ekin = 18.7605746437215 | erot = 26.6882095060636 | epot = -231.213347501054 | etot = -185.764563351269 +222000 ekin = 18.2601086357985 | erot = 26.2872383665376 | epot = -231.899871459307 | etot = -187.352524456971 +223000 ekin = 18.450698620632 | erot = 26.0465542803085 | epot = -232.337267696155 | etot = -187.840014795214 +224000 ekin = 18.9891330599031 | erot = 27.8638375428931 | epot = -232.528415379388 | etot = -185.675444776592 +225000 ekin = 19.4927747283068 | erot = 25.801864264556 | epot = -232.780900379235 | etot = -187.486261386372 +226000 ekin = 19.1531460973279 | erot = 30.4806630263034 | epot = -233.077183634691 | etot = -183.44337451106 +227000 ekin = 18.60714463341 | erot = 30.1777908886287 | epot = -232.964109027209 | etot = -184.179173505171 +228000 ekin = 18.4858074214198 | erot = 31.561135296702 | epot = -232.632194016111 | etot = -182.585251297989 +229000 ekin = 18.121165512591 | erot = 31.2764316650807 | epot = -232.253052683513 | etot = -182.855455505842 +230000 ekin = 17.8908234673042 | erot = 27.5438052529654 | epot = -231.968720310839 | etot = -186.534091590569 +231000 ekin = 17.4046011153877 | erot = 24.8124690524392 | epot = -231.614857480412 | etot = -189.397787312585 +232000 ekin = 16.726949239043 | erot = 25.4479901290198 | epot = -231.298988676823 | etot = -189.12404930876 +233000 ekin = 17.4181301789806 | erot = 25.6698394160172 | epot = -231.284274641405 | etot = -188.196305046407 +234000 ekin = 17.2837229866899 | erot = 24.7490838826286 | epot = -231.292369116174 | etot = -189.259562246856 +235000 ekin = 17.8418429383167 | erot = 21.8691418097328 | epot = -231.251575822849 | etot = -191.5405910748 +236000 ekin = 18.2280444396042 | erot = 22.4776949586945 | epot = -231.507293467971 | etot = -190.801554069672 +237000 ekin = 17.5170325906195 | erot = 23.8831905837694 | epot = -232.09911142057 | etot = -190.698888246182 +238000 ekin = 17.5370495415089 | erot = 23.1397896153992 | epot = -232.813601469978 | etot = -192.13676231307 +239000 ekin = 18.5035461424359 | erot = 23.6314853899781 | epot = -233.424851371331 | etot = -191.289819838917 +240000 ekin = 18.2400558551285 | erot = 25.7782971635906 | epot = -233.735423678076 | etot = -189.717070659357 +241000 ekin = 18.3026727766783 | erot = 24.4472869908134 | epot = -233.913575321003 | etot = -191.163615553511 +242000 ekin = 17.7115212204843 | erot = 24.995729162613 | epot = -234.050352631169 | etot = -191.343102248072 +243000 ekin = 17.2078487224333 | erot = 23.9090981344856 | epot = -234.125136273026 | etot = -193.008189416107 +244000 ekin = 16.2099036691328 | erot = 23.5424124480185 | epot = -234.271072794161 | etot = -194.51875667701 +245000 ekin = 16.2853237680124 | erot = 25.6013260460874 | epot = -234.567326279749 | etot = -192.680676465649 +246000 ekin = 15.9877124738648 | erot = 26.4618528423917 | epot = -234.907254123649 | etot = -192.457688807393 +247000 ekin = 16.278912642661 | erot = 25.6305025080533 | epot = -235.38224025519 | etot = -193.472825104476 +248000 ekin = 16.1891212016019 | erot = 26.7270438066868 | epot = -235.85693800343 | etot = -192.940772995142 +249000 ekin = 16.2464500192795 | erot = 27.0261014884008 | epot = -236.177986894745 | etot = -192.905435387065 +250000 ekin = 15.9341143953265 | erot = 30.8738949363089 | epot = -236.535496633727 | etot = -189.727487302092 +251000 ekin = 15.8028184849003 | erot = 32.1505879831005 | epot = -236.688974719602 | etot = -188.735568251601 +252000 ekin = 16.7909168467857 | erot = 32.8335558099614 | epot = -236.645831434934 | etot = -187.021358778187 +253000 ekin = 16.9139273743643 | erot = 29.2781158099218 | epot = -236.579277646039 | etot = -190.387234461753 +254000 ekin = 16.6934725608083 | erot = 29.105191471631 | epot = -236.457570337498 | etot = -190.658906305059 +255000 ekin = 16.9530894051165 | erot = 28.561900354835 | epot = -236.494291914548 | etot = -190.979302154596 +256000 ekin = 16.8565757743705 | erot = 26.1542309529602 | epot = -236.815950729242 | etot = -193.805144001911 +257000 ekin = 16.585149543856 | erot = 27.2044624689905 | epot = -237.076180448211 | etot = -193.286568435365 +258000 ekin = 16.9649893297413 | erot = 29.5003144318717 | epot = -237.125813775239 | etot = -190.660510013626 +259000 ekin = 16.8759816443281 | erot = 28.8592698754747 | epot = -237.185288834274 | etot = -191.450037314471 +260000 ekin = 16.9796890464332 | erot = 27.618877966906 | epot = -237.312226590128 | etot = -192.713659576789 +261000 ekin = 17.1257291800673 | erot = 26.9320058611979 | epot = -237.262614695238 | etot = -193.204879653972 +262000 ekin = 17.6923394447622 | erot = 27.2700259360803 | epot = -237.143815143362 | etot = -192.18144976252 +263000 ekin = 17.8430352696419 | erot = 25.086676238323 | epot = -236.946345380794 | etot = -194.016633872829 +264000 ekin = 18.0391753861997 | erot = 26.3317958950567 | epot = -236.678672413504 | etot = -192.307701132247 +265000 ekin = 18.013924761071 | erot = 25.5680520302975 | epot = -236.424056901965 | etot = -192.842080110596 +266000 ekin = 17.6154269767062 | erot = 23.675123094962 | epot = -235.997667559883 | etot = -194.707117488214 +267000 ekin = 17.6622486381387 | erot = 26.2267112931792 | epot = -235.553502063923 | etot = -191.664542132605 +268000 ekin = 17.8125223357387 | erot = 27.363444164387 | epot = -235.09406638475 | etot = -189.918099884624 +269000 ekin = 17.4475328870398 | erot = 28.702098419643 | epot = -234.302641461941 | etot = -188.153010155258 +270000 ekin = 17.3046917858623 | erot = 29.7195013929747 | epot = -233.361041913271 | etot = -186.336848734434 +271000 ekin = 17.142474619254 | erot = 29.9663485879831 | epot = -232.456072910032 | etot = -185.347249702795 +272000 ekin = 17.1520876922752 | erot = 28.8349700847661 | epot = -231.55505567112 | etot = -185.567997894079 +273000 ekin = 16.529132536504 | erot = 28.0012512077314 | epot = -230.483093897511 | etot = -185.952710153276 +274000 ekin = 16.0104360170946 | erot = 26.9274909329307 | epot = -229.230529801711 | etot = -186.292602851686 +275000 ekin = 15.5159445897247 | erot = 25.0461733638716 | epot = -227.842923326835 | etot = -187.280805373238 +276000 ekin = 15.3290449735773 | erot = 22.6013849304136 | epot = -226.645721417409 | etot = -188.715291513418 +277000 ekin = 14.8998254086663 | erot = 21.4368139643109 | epot = -225.632942921213 | etot = -189.296303548235 +278000 ekin = 14.6883229783611 | erot = 21.764246814846 | epot = -224.505045285419 | etot = -188.052475492212 +279000 ekin = 14.8047270727149 | erot = 21.9101300703525 | epot = -223.591887497535 | etot = -186.877030354468 +280000 ekin = 15.1052613957242 | erot = 21.2019638470283 | epot = -222.930554266676 | etot = -186.623329023924 +281000 ekin = 15.9185405703085 | erot = 22.7554995785104 | epot = -222.496264131452 | etot = -183.822223982633 +282000 ekin = 15.7118745407237 | erot = 21.6184112020448 | epot = -222.111847398432 | etot = -184.781561655664 +283000 ekin = 15.6333488922702 | erot = 21.465780561396 | epot = -221.697448312628 | etot = -184.598318858962 +284000 ekin = 15.959853189633 | erot = 21.5564118521706 | epot = -221.456027263584 | etot = -183.93976222178 +285000 ekin = 16.1804948749226 | erot = 20.7957823598973 | epot = -221.442032618529 | etot = -184.465755383709 +286000 ekin = 16.2437780433302 | erot = 22.0029966684091 | epot = -221.48947785587 | etot = -183.242703144131 +287000 ekin = 16.5860527634174 | erot = 21.2347797551117 | epot = -221.681437402569 | etot = -183.86060488404 +288000 ekin = 17.4777982920666 | erot = 22.9676186033132 | epot = -222.210097097494 | etot = -181.764680202114 +289000 ekin = 19.2022256495172 | erot = 21.806988434862 | epot = -223.03555219086 | etot = -182.026338106481 +290000 ekin = 20.6029736081834 | erot = 21.6756942552161 | epot = -223.927958525587 | etot = -181.649290662188 +291000 ekin = 21.0325637238795 | erot = 25.0635435951381 | epot = -224.954298339301 | etot = -178.858191020283 +292000 ekin = 21.9992014565845 | erot = 24.5675448811519 | epot = -226.014147345555 | etot = -179.447401007819 +293000 ekin = 22.8449936736823 | erot = 26.0971097085354 | epot = -227.039865181468 | etot = -178.09776179925 +294000 ekin = 24.2424273090434 | erot = 22.3242335931344 | epot = -227.698192270626 | etot = -181.131531368448 +295000 ekin = 25.1430321033927 | erot = 22.81093656589 | epot = -228.272133548427 | etot = -180.318164879144 +296000 ekin = 25.4190616181137 | erot = 23.5935920052844 | epot = -228.827919142591 | etot = -179.815265519193 +297000 ekin = 24.1157580511247 | erot = 24.5278953829289 | epot = -229.421950081214 | etot = -180.77829664716 +298000 ekin = 24.1091297661069 | erot = 24.3527158051324 | epot = -229.912795380237 | etot = -181.450949808998 +299000 ekin = 24.1889413361173 | erot = 28.3512815530446 | epot = -230.356799401626 | etot = -177.816576512464 +300000 ekin = 24.2163939347386 | erot = 26.6122585649448 | epot = -230.754469972665 | etot = -179.925817472982 +301000 ekin = 23.9473801903426 | erot = 27.8600078683744 | epot = -231.048868063292 | etot = -179.241480004575 +302000 ekin = 23.6699655332583 | erot = 27.5610103980966 | epot = -231.2462622361 | etot = -180.015286304745 +303000 ekin = 23.8797875069283 | erot = 29.2034880593161 | epot = -231.3115724611 | etot = -178.228296894856 +304000 ekin = 22.73106672979 | erot = 27.7503022429659 | epot = -231.512470993041 | etot = -181.031102020285 +305000 ekin = 22.1016085656468 | erot = 27.0493993901605 | epot = -231.718355828267 | etot = -182.56734787246 +306000 ekin = 21.3693097984681 | erot = 26.2537086929049 | epot = -231.891297103593 | etot = -184.26827861222 +307000 ekin = 21.0324320589055 | erot = 24.6230768163623 | epot = -232.14138641287 | etot = -186.485877537602 +308000 ekin = 20.1154566391106 | erot = 21.7787557790717 | epot = -232.402656379528 | etot = -190.508443961346 +309000 ekin = 19.6646153697248 | erot = 24.2524356353678 | epot = -232.726752497782 | etot = -188.809701492689 +310000 ekin = 19.506055878272 | erot = 23.0558815582429 | epot = -232.894728269794 | etot = -190.332790833279 +311000 ekin = 19.4366809731017 | erot = 23.3044474838376 | epot = -232.852507372457 | etot = -190.111378915517 +312000 ekin = 18.9851206753984 | erot = 23.3056434770267 | epot = -232.658571091316 | etot = -190.367806938891 +313000 ekin = 18.456476357187 | erot = 22.3541198734799 | epot = -232.226835699179 | etot = -191.416239468512 +314000 ekin = 17.5964963597534 | erot = 24.280152514809 | epot = -231.840379924947 | etot = -189.963731050385 +315000 ekin = 17.4204244485737 | erot = 23.6514203760144 | epot = -231.530486492869 | etot = -190.45864166828 +316000 ekin = 16.1724163728655 | erot = 22.698801275189 | epot = -231.308288231255 | etot = -192.4370705832 +317000 ekin = 16.1754961975214 | erot = 24.7458837009842 | epot = -231.086735374031 | etot = -190.165355475525 +318000 ekin = 15.6276186513821 | erot = 25.4598581999699 | epot = -230.874800576949 | etot = -189.787323725597 +319000 ekin = 15.2218658312374 | erot = 26.310179302591 | epot = -230.890983487464 | etot = -189.358938353635 +320000 ekin = 14.5086838632118 | erot = 25.5779207778604 | epot = -230.835599614339 | etot = -190.748994973267 +321000 ekin = 14.3605129926004 | erot = 24.3299501149204 | epot = -230.738948206952 | etot = -192.048485099431 +322000 ekin = 14.3610877203126 | erot = 22.9310291497487 | epot = -230.65305378356 | etot = -193.360936913499 +323000 ekin = 14.7688305230875 | erot = 22.2970860063464 | epot = -230.465569924266 | etot = -193.399653394832 +324000 ekin = 14.9355157274789 | erot = 21.6250944927411 | epot = -230.284210305093 | etot = -193.723600084873 +325000 ekin = 14.671493713112 | erot = 19.7302049638664 | epot = -230.227419340871 | etot = -195.825720663893 +326000 ekin = 14.9234987156657 | erot = 18.5568938196644 | epot = -230.211337706826 | etot = -196.730945171496 +327000 ekin = 15.4129696630397 | erot = 18.0709384490326 | epot = -230.259317350117 | etot = -196.775409238045 +328000 ekin = 16.3932927560713 | erot = 18.0499060967779 | epot = -230.447119407116 | etot = -196.003920554267 +329000 ekin = 17.4064272548349 | erot = 17.712742044302 | epot = -230.608667384644 | etot = -195.489498085507 +330000 ekin = 17.9751565884689 | erot = 20.51547017577 | epot = -230.944813706002 | etot = -192.454186941763 +331000 ekin = 18.0313803560148 | erot = 22.5739918453344 | epot = -231.277621168628 | etot = -190.672248967279 +332000 ekin = 18.15147843611 | erot = 22.8208528087548 | epot = -231.623777285706 | etot = -190.651446040841 +333000 ekin = 18.0930465656663 | erot = 21.9771411609275 | epot = -231.923848859364 | etot = -191.85366113277 +334000 ekin = 17.7728125353381 | erot = 23.128955301666 | epot = -232.169505006005 | etot = -191.267737169001 +335000 ekin = 19.0031630375606 | erot = 23.3897776040612 | epot = -232.460034619601 | etot = -190.067093977979 +336000 ekin = 19.5591765342243 | erot = 25.3697311547745 | epot = -232.739268822111 | etot = -187.810361133113 +337000 ekin = 19.8563675404798 | erot = 27.3439820813804 | epot = -232.906112080656 | etot = -185.705762458796 +338000 ekin = 19.751099035653 | erot = 24.921360312315 | epot = -232.758554071368 | etot = -188.0860947234 +339000 ekin = 19.9050741791919 | erot = 25.5301605485524 | epot = -232.417171827705 | etot = -186.98193709996 +340000 ekin = 19.8794162185109 | erot = 25.9787598068518 | epot = -231.88072644563 | etot = -186.022550420267 +341000 ekin = 19.9454216521201 | erot = 24.1566390151013 | epot = -231.212127397362 | etot = -187.11006673014 +342000 ekin = 19.9237875292304 | erot = 26.4019287790718 | epot = -230.32153874995 | etot = -183.995822441648 +343000 ekin = 19.1115068720885 | erot = 22.5948467356212 | epot = -229.503208394896 | etot = -187.796854787186 +344000 ekin = 18.3079084943896 | erot = 23.107837537118 | epot = -228.898967466162 | etot = -187.483221434654 +345000 ekin = 18.4650460950013 | erot = 23.8173535141912 | epot = -228.453285301913 | etot = -186.17088569272 +346000 ekin = 18.0304251681423 | erot = 23.3440747631772 | epot = -228.183574545935 | etot = -186.809074614615 +347000 ekin = 17.5483582122927 | erot = 23.0282517992432 | epot = -227.908297752933 | etot = -187.331687741398 +348000 ekin = 17.622359603253 | erot = 22.2176773752137 | epot = -227.687080765617 | etot = -187.847043787151 +349000 ekin = 18.1160269661089 | erot = 23.5048787159375 | epot = -227.62230627499 | etot = -186.001400592943 +350000 ekin = 18.4237634534031 | erot = 23.3245531376522 | epot = -227.749080027053 | etot = -186.000763435998 +351000 ekin = 18.7086532226307 | erot = 23.8443722630501 | epot = -227.802083115351 | etot = -185.24905762967 +352000 ekin = 18.4929053608692 | erot = 23.3879966472946 | epot = -228.059952926951 | etot = -186.179050918787 +353000 ekin = 18.9161069388645 | erot = 23.2227449598892 | epot = -228.455593201501 | etot = -186.316741302748 +354000 ekin = 19.0977071534437 | erot = 26.1711894049523 | epot = -228.863332747988 | etot = -183.594436189592 +355000 ekin = 18.8408988656362 | erot = 25.4820466037911 | epot = -229.149897752163 | etot = -184.826952282736 +356000 ekin = 18.0073291494761 | erot = 26.6233733651629 | epot = -229.30066738625 | etot = -184.669964871611 +357000 ekin = 17.7607082496061 | erot = 25.2859928393404 | epot = -229.131821622954 | etot = -186.085120534008 +358000 ekin = 17.3110477472649 | erot = 23.858172364184 | epot = -228.730492207362 | etot = -187.561272095913 +359000 ekin = 17.2747418765998 | erot = 22.3862089851412 | epot = -228.089331840306 | etot = -188.428380978565 +360000 ekin = 17.2627985134611 | erot = 22.0449155343728 | epot = -227.380056681146 | etot = -188.072342633312 +361000 ekin = 16.7022908865183 | erot = 20.1648887982823 | epot = -226.685841413765 | etot = -189.818661728965 +362000 ekin = 16.5236886103148 | erot = 17.367003581832 | epot = -226.179176639549 | etot = -192.288484447402 +363000 ekin = 16.6039189858822 | erot = 16.0035347935122 | epot = -225.740790574137 | etot = -193.133336794742 +364000 ekin = 15.9788934900066 | erot = 16.6121483003756 | epot = -225.114863846841 | etot = -192.523822056459 +365000 ekin = 15.1431317526968 | erot = 16.9097471834361 | epot = -224.479846480109 | etot = -192.426967543976 +366000 ekin = 14.3990111988618 | erot = 17.0852361664414 | epot = -223.860574415737 | etot = -192.376327050434 +367000 ekin = 14.7093223353035 | erot = 19.9259917527912 | epot = -223.239871274407 | etot = -188.604557186313 +368000 ekin = 14.4767524017819 | erot = 19.8571324274854 | epot = -222.763305586433 | etot = -188.429420757165 +369000 ekin = 14.5295526109511 | erot = 19.4653517852366 | epot = -222.374285556898 | etot = -188.37938116071 +370000 ekin = 14.6624229936735 | erot = 18.4895700260451 | epot = -222.141224908878 | etot = -188.98923188916 +371000 ekin = 14.5457820238232 | erot = 17.1607101368225 | epot = -222.091600781158 | etot = -190.385108620512 +372000 ekin = 14.3765645142415 | erot = 18.3396365891572 | epot = -222.422609627797 | etot = -189.706408524398 +373000 ekin = 14.7873291899404 | erot = 18.9757135731518 | epot = -223.205572088605 | etot = -189.442529325513 +374000 ekin = 15.7125804964135 | erot = 21.4180777064736 | epot = -224.094929147205 | etot = -186.964270944318 +375000 ekin = 15.9971371168641 | erot = 19.8267795606279 | epot = -225.189250395173 | etot = -189.365333717681 +376000 ekin = 16.6671924038023 | erot = 19.2635449216383 | epot = -226.559332642176 | etot = -190.628595316735 +377000 ekin = 17.7603728345199 | erot = 18.779994279654 | epot = -227.963757986198 | etot = -191.423390872024 +378000 ekin = 18.1886050864902 | erot = 20.8441911699424 | epot = -229.547369091145 | etot = -190.514572834712 +379000 ekin = 19.033100220467 | erot = 20.072237741282 | epot = -231.143533498054 | etot = -192.038195536305 +380000 ekin = 19.3958875215032 | erot = 21.4029492342147 | epot = -232.694529537328 | etot = -191.89569278161 +381000 ekin = 19.9083965791013 | erot = 22.0262926736848 | epot = -234.32167171513 | etot = -192.386982462344 +382000 ekin = 20.8309151956209 | erot = 23.0680223560274 | epot = -235.663830319217 | etot = -191.764892767568 +383000 ekin = 21.2110564910967 | erot = 21.0693378226244 | epot = -236.854844845752 | etot = -194.574450532031 +384000 ekin = 22.0271729397392 | erot = 19.5738896898674 | epot = -237.761071028817 | etot = -196.16000839921 +385000 ekin = 21.9888232627756 | erot = 21.9438035828551 | epot = -238.480083243308 | etot = -194.547456397677 +386000 ekin = 22.1638739887246 | erot = 22.6209901962172 | epot = -238.997084576409 | etot = -194.212220391467 +387000 ekin = 22.4704802119025 | erot = 23.1635909564577 | epot = -239.498617670884 | etot = -193.864546502524 +388000 ekin = 22.8360688044956 | erot = 25.0873884717806 | epot = -239.669249619648 | etot = -191.745792343372 +389000 ekin = 23.0584509448569 | erot = 23.7837899729554 | epot = -239.601361166478 | etot = -192.759120248666 +390000 ekin = 23.6960202157352 | erot = 22.2855109641288 | epot = -239.380639976731 | etot = -193.399108796867 +391000 ekin = 23.7991151344636 | erot = 20.6201012177775 | epot = -239.03189252051 | etot = -194.612676168269 +392000 ekin = 23.9591701543348 | erot = 21.9552661146519 | epot = -238.459192052771 | etot = -192.544755783784 +393000 ekin = 23.9801600708864 | erot = 22.869736284692 | epot = -237.591953793527 | etot = -190.742057437948 +394000 ekin = 23.4806447315076 | erot = 23.7894518329385 | epot = -236.673823439361 | etot = -189.403726874915 +395000 ekin = 24.5044542002931 | erot = 22.3496968561238 | epot = -235.743236345989 | etot = -188.889085289572 +396000 ekin = 25.0523490436962 | erot = 21.8742064454878 | epot = -234.847289992152 | etot = -187.920734502968 +397000 ekin = 24.6499536596579 | erot = 21.7645397688862 | epot = -234.02267754065 | etot = -187.608184112106 +398000 ekin = 24.6654129500861 | erot = 22.1514966474267 | epot = -233.052972677734 | etot = -186.236063080221 +399000 ekin = 24.4527034646846 | erot = 22.1387556663723 | epot = -232.022437613541 | etot = -185.430978482484 +400000 ekin = 24.2410273375347 | erot = 20.3962614781508 | epot = -231.005809135405 | etot = -186.36852031972 +401000 ekin = 23.6761212056534 | erot = 22.7225603362526 | epot = -230.115763739954 | etot = -183.717082198048 +402000 ekin = 23.2783312945623 | erot = 21.072405109571 | epot = -229.330217542778 | etot = -184.979481138645 +403000 ekin = 23.3187858415702 | erot = 21.6853668727119 | epot = -228.46646899817 | etot = -183.462316283888 +404000 ekin = 22.6452628627526 | erot = 19.8334541701381 | epot = -227.74020593733 | etot = -185.261488904439 +405000 ekin = 22.8006471912822 | erot = 18.666718374297 | epot = -227.470604446323 | etot = -186.003238880744 +406000 ekin = 22.2794202436027 | erot = 18.3828666900747 | epot = -227.331354672565 | etot = -186.669067738888 +407000 ekin = 22.2172456768627 | erot = 18.4773392588829 | epot = -227.523003290546 | etot = -186.828418354801 +408000 ekin = 22.6521756504711 | erot = 19.4208076833358 | epot = -227.87233388974 | etot = -185.799350555933 +409000 ekin = 23.5573264374349 | erot = 20.5061505842945 | epot = -228.154858179183 | etot = -184.091381157454 +410000 ekin = 24.2750456328492 | erot = 22.8792635845596 | epot = -228.453698162395 | etot = -181.299388944986 +411000 ekin = 25.2420122816034 | erot = 23.7365200565699 | epot = -228.770700580075 | etot = -179.792168241901 +412000 ekin = 25.291356362185 | erot = 23.8310304102202 | epot = -229.010782171434 | etot = -179.888395399029 +413000 ekin = 25.2600396503997 | erot = 22.7169838925796 | epot = -229.062680900308 | etot = -181.085657357328 +414000 ekin = 25.4912045141821 | erot = 23.7306969786591 | epot = -228.998337849082 | etot = -179.77643635624 +415000 ekin = 26.1735887247197 | erot = 22.6674135061758 | epot = -228.693341533324 | etot = -179.852339302428 +416000 ekin = 26.5748108328611 | erot = 21.6439172230018 | epot = -228.361662386621 | etot = -180.142934330759 +417000 ekin = 26.7768070690628 | erot = 21.6230631516283 | epot = -228.087012878216 | etot = -179.687142657525 +418000 ekin = 26.5908575562701 | erot = 22.1239144254595 | epot = -227.62723288751 | etot = -178.912460905781 +419000 ekin = 26.1390688484464 | erot = 19.8809151124988 | epot = -226.977438068285 | etot = -180.95745410734 +420000 ekin = 25.5372021331576 | erot = 18.4693355705533 | epot = -226.169296116375 | etot = -182.162758412664 +421000 ekin = 24.7576070800854 | erot = 21.2379290063398 | epot = -225.177912035829 | etot = -179.182375949404 +422000 ekin = 23.5775097382875 | erot = 20.7150967321225 | epot = -224.071351753226 | etot = -179.778745282816 +423000 ekin = 23.3503211007386 | erot = 20.7766198719257 | epot = -222.934603836064 | etot = -178.807662863399 +424000 ekin = 22.9014106427363 | erot = 21.0323838208275 | epot = -221.865657024477 | etot = -177.931862560913 +425000 ekin = 22.167001043224 | erot = 19.8951057365931 | epot = -221.008759763888 | etot = -178.946652984071 +426000 ekin = 21.7191918731043 | erot = 20.0481315073592 | epot = -220.379164165788 | etot = -178.611840785324 +427000 ekin = 22.3863209159599 | erot = 20.1467365914768 | epot = -219.748771980514 | etot = -177.215714473077 +428000 ekin = 22.3113642728441 | erot = 18.9435836850322 | epot = -219.042454222864 | etot = -177.787506264988 +429000 ekin = 21.8292251452452 | erot = 16.620780664556 | epot = -218.481603976101 | etot = -180.0315981663 +430000 ekin = 21.5787512284699 | erot = 15.9396143193706 | epot = -217.957523577516 | etot = -180.439158029675 +431000 ekin = 21.5476976648958 | erot = 16.0853660094757 | epot = -217.637522182414 | etot = -180.004458508042 +432000 ekin = 20.8305046334209 | erot = 18.3962397210501 | epot = -217.510435589248 | etot = -178.283691234777 +433000 ekin = 21.3366166805747 | erot = 17.1761613375181 | epot = -217.730201210123 | etot = -179.21742319203 +434000 ekin = 21.4473991234971 | erot = 18.3914065237362 | epot = -218.31882890629 | etot = -178.480023259057 +435000 ekin = 21.8938565298032 | erot = 20.4321817028492 | epot = -219.08695235614 | etot = -176.760914123488 +436000 ekin = 22.7745161208294 | erot = 21.7909028890296 | epot = -220.039533912902 | etot = -175.474114903043 +437000 ekin = 23.0603914755853 | erot = 23.5766353307907 | epot = -221.014303297324 | etot = -174.377276490948 +438000 ekin = 24.5047158921013 | erot = 22.5082522761815 | epot = -221.830036253357 | etot = -174.817068085074 +439000 ekin = 24.6143280761287 | erot = 24.2611592034082 | epot = -222.681938930047 | etot = -173.80645165051 +440000 ekin = 24.3817582592681 | erot = 24.7408480502237 | epot = -223.513777238926 | etot = -174.391170929434 +441000 ekin = 24.7073799963697 | erot = 26.0715535157816 | epot = -224.270002709343 | etot = -173.491069197191 +442000 ekin = 24.5768549815013 | erot = 26.1754826601808 | epot = -224.850802162052 | etot = -174.09846452037 +443000 ekin = 25.2420932847023 | erot = 24.7427655137794 | epot = -225.167556551113 | etot = -175.182697752631 +444000 ekin = 25.9747330874369 | erot = 26.9622244259886 | epot = -225.24583879208 | etot = -172.308881278654 +445000 ekin = 26.1721310818258 | erot = 27.8161657482946 | epot = -225.021125061423 | etot = -171.032828231303 +446000 ekin = 26.2042305171885 | erot = 26.6449261740889 | epot = -224.735035228785 | etot = -171.885878537508 +447000 ekin = 25.9445128989677 | erot = 26.4816025199488 | epot = -224.245178179105 | etot = -171.819062760188 +448000 ekin = 25.5372900980307 | erot = 25.0281118333634 | epot = -223.618727357863 | etot = -173.053325426469 +449000 ekin = 25.7322219082413 | erot = 26.9973146922278 | epot = -223.018245220603 | etot = -170.288708620134 +450000 ekin = 25.8738458288472 | erot = 26.4843992391509 | epot = -222.408567465752 | etot = -170.050322397754 +451000 ekin = 25.6858259591492 | erot = 25.2647052575128 | epot = -221.452550893268 | etot = -170.502019676606 +452000 ekin = 25.7815007863341 | erot = 23.0466968711352 | epot = -220.49127053138 | etot = -171.66307287391 +453000 ekin = 25.7970445433776 | erot = 21.1141058412002 | epot = -219.594142395429 | etot = -172.682992010851 +454000 ekin = 25.688804966856 | erot = 22.6294586470315 | epot = -218.915377931307 | etot = -170.59711431742 +455000 ekin = 25.6037732271854 | erot = 22.9697679221883 | epot = -218.493679612878 | etot = -169.920138463504 +456000 ekin = 26.0514762135096 | erot = 23.8916333063363 | epot = -218.316686773003 | etot = -168.373577253157 +457000 ekin = 26.0167886371092 | erot = 22.9916268768507 | epot = -218.187169314675 | etot = -169.178753800715 +458000 ekin = 25.7882597661439 | erot = 20.8748032531609 | epot = -217.987058469246 | etot = -171.323995449942 +459000 ekin = 26.1697981408122 | erot = 21.3086466081266 | epot = -218.026696392449 | etot = -170.54825164351 +460000 ekin = 25.7192439412156 | erot = 24.4214622489547 | epot = -218.347831000891 | etot = -168.207124810721 +461000 ekin = 25.7495969095132 | erot = 26.1294994916656 | epot = -218.822266029574 | etot = -166.943169628395 +462000 ekin = 25.8591234001759 | erot = 26.9103950574254 | epot = -219.538074391763 | etot = -166.768555934162 +463000 ekin = 25.4934778644091 | erot = 28.9857339062074 | epot = -220.244381956634 | etot = -165.765170186017 +464000 ekin = 25.3807989297151 | erot = 28.2636863620641 | epot = -220.82311618793 | etot = -167.178630896151 +465000 ekin = 25.4889304853069 | erot = 26.8232193679972 | epot = -221.238335961676 | etot = -168.926186108372 +466000 ekin = 25.6703409883731 | erot = 25.2637813032743 | epot = -221.475634605288 | etot = -170.54151231364 +467000 ekin = 25.3302831697602 | erot = 24.6072222319647 | epot = -221.607373938226 | etot = -171.669868536501 +468000 ekin = 26.2089173332122 | erot = 22.9661948896766 | epot = -221.830072302435 | etot = -172.654960079546 +469000 ekin = 27.6643804489026 | erot = 22.7018029478283 | epot = -222.234721440326 | etot = -171.868538043595 +470000 ekin = 27.7860331432337 | erot = 23.37749342455 | epot = -222.896428711169 | etot = -171.732902143385 +471000 ekin = 28.3340963939428 | erot = 25.3278577360011 | epot = -223.570564232673 | etot = -169.908610102729 +472000 ekin = 28.5060434759036 | erot = 25.626902389105 | epot = -224.148650689462 | etot = -170.015704824453 +473000 ekin = 28.8298134833811 | erot = 26.1588503986598 | epot = -224.562065916091 | etot = -169.573402034051 +474000 ekin = 28.5479350336082 | erot = 25.8885076622197 | epot = -224.671302893341 | etot = -170.234860197513 +475000 ekin = 28.7950172155165 | erot = 25.1475376581866 | epot = -224.461514143169 | etot = -170.518959269466 +476000 ekin = 28.4606864434488 | erot = 25.2517480986696 | epot = -223.893621964986 | etot = -170.181187422868 +477000 ekin = 28.0142928872112 | erot = 23.5481845275566 | epot = -223.15087114256 | etot = -171.588393727793 +478000 ekin = 27.7552032877925 | erot = 21.0056990914093 | epot = -222.398351737606 | etot = -173.637449358404 +479000 ekin = 26.7537623197156 | erot = 22.040286739641 | epot = -221.556035536971 | etot = -172.761986477614 +480000 ekin = 26.3364213218961 | erot = 21.616270547523 | epot = -220.488389208344 | etot = -172.535697338924 +481000 ekin = 25.5733541062401 | erot = 20.6410322219284 | epot = -219.255993114652 | etot = -173.041606786483 +482000 ekin = 25.3038828266597 | erot = 21.7331282226314 | epot = -218.060917075251 | etot = -171.02390602596 +483000 ekin = 25.4847680481985 | erot = 21.8125494513952 | epot = -217.017386150345 | etot = -169.720068650751 +484000 ekin = 25.4921600059346 | erot = 22.7125552631874 | epot = -216.165477936407 | etot = -167.960762667285 +485000 ekin = 25.1014549873177 | erot = 22.9083083653785 | epot = -215.459368644848 | etot = -167.449605292152 +486000 ekin = 23.7381916279128 | erot = 22.0359551706864 | epot = -214.867401759866 | etot = -169.093254961267 +487000 ekin = 23.1022967247011 | erot = 20.9897368619166 | epot = -214.49309827136 | etot = -170.401064684743 +488000 ekin = 22.3280062343421 | erot = 22.6581977288416 | epot = -214.411928640685 | etot = -169.425724677501 +489000 ekin = 21.5200390992131 | erot = 24.4256444850011 | epot = -214.553046668213 | etot = -168.607363083998 +490000 ekin = 22.1745834778823 | erot = 23.202684442612 | epot = -214.682014948056 | etot = -169.304747027562 +491000 ekin = 22.2155647410761 | erot = 23.9559835315798 | epot = -214.794268468461 | etot = -168.622720195805 +492000 ekin = 21.9074062571785 | erot = 23.0107085417582 | epot = -214.876391213439 | etot = -169.958276414503 +493000 ekin = 21.7673907407181 | erot = 22.3862681939078 | epot = -215.110849414315 | etot = -170.957190479689 +494000 ekin = 20.7745584966346 | erot = 22.7452296264065 | epot = -215.46860879911 | etot = -171.948820676069 +495000 ekin = 19.7536125274935 | erot = 24.534405221311 | epot = -215.973479846197 | etot = -171.685462097392 +496000 ekin = 19.5440096583046 | erot = 23.1762967935367 | epot = -216.627509848901 | etot = -173.90720339706 +497000 ekin = 19.2601107947869 | erot = 27.0129650022824 | epot = -217.496309014045 | etot = -171.223233216976 +498000 ekin = 20.008240149509 | erot = 28.3938360735788 | epot = -218.510580772204 | etot = -170.108504549116 +499000 ekin = 20.2250869378451 | erot = 29.7495194421564 | epot = -219.413536230996 | etot = -169.438929850994 +500000 ekin = 20.5377041017314 | erot = 25.5981483203109 | epot = -220.10250670273 | etot = -173.966654280688 +501000 ekin = 20.7437007868733 | erot = 25.5722254074985 | epot = -220.706620920466 | etot = -174.390694726094 +502000 ekin = 21.3974117388996 | erot = 27.1477040916275 | epot = -221.203987796437 | etot = -172.65887196591 +503000 ekin = 21.9720670171586 | erot = 27.4594748055059 | epot = -221.564705185604 | etot = -172.13316336294 +504000 ekin = 22.0036398241597 | erot = 27.8844566679454 | epot = -221.822730635735 | etot = -171.934634143629 +505000 ekin = 23.1885968423919 | erot = 27.0080739021865 | epot = -222.35778688837 | etot = -172.161116143791 +506000 ekin = 22.722531651873 | erot = 26.6500914123035 | epot = -222.671998920708 | etot = -173.299375856532 +507000 ekin = 22.2628604257524 | erot = 25.1165297319669 | epot = -223.132828338462 | etot = -175.753438180742 +508000 ekin = 22.7028911519561 | erot = 23.4656498814886 | epot = -223.54407467575 | etot = -177.375533642305 +509000 ekin = 22.6654713026151 | erot = 22.3116431994452 | epot = -223.812280936561 | etot = -178.8351664345 +510000 ekin = 23.2444036217202 | erot = 23.7118265646526 | epot = -224.123509542875 | etot = -177.167279356502 +511000 ekin = 22.7352979426128 | erot = 23.8711299722302 | epot = -224.367646933689 | etot = -177.761219018846 +512000 ekin = 22.460433299215 | erot = 25.9025431935021 | epot = -224.625156824351 | etot = -176.262180331634 +513000 ekin = 22.0947651201679 | erot = 24.9904521975554 | epot = -224.816807649759 | etot = -177.731590332036 +514000 ekin = 21.783961391663 | erot = 27.6768125066713 | epot = -224.803176634329 | etot = -175.342402735995 +515000 ekin = 20.8838805084714 | erot = 26.7006493321653 | epot = -224.615071561818 | etot = -177.030541721182 +516000 ekin = 21.4036026624667 | erot = 29.9826472115484 | epot = -224.43203188109 | etot = -173.045782007075 +517000 ekin = 21.0725470625647 | erot = 29.5449947930599 | epot = -224.413593337603 | etot = -173.796051481978 +518000 ekin = 21.1692298808073 | erot = 27.273466345669 | epot = -224.467250578245 | etot = -176.024554351769 +519000 ekin = 21.5445051781035 | erot = 27.4144674038741 | epot = -224.856924566818 | etot = -175.89795198484 +520000 ekin = 21.8088279707338 | erot = 26.9958167714558 | epot = -225.458073506627 | etot = -176.653428764437 +521000 ekin = 21.3359848054427 | erot = 27.3496112855869 | epot = -226.263472854907 | etot = -177.577876763878 +522000 ekin = 21.383381595961 | erot = 28.5594995391198 | epot = -227.177929279517 | etot = -177.235048144436 +523000 ekin = 22.3312177264689 | erot = 28.7548602321851 | epot = -228.039253797182 | etot = -176.953175838528 +524000 ekin = 22.876818128058 | erot = 30.8759050315318 | epot = -228.592215099028 | etot = -174.839491939438 +525000 ekin = 23.6968405729144 | erot = 30.6366736796914 | epot = -229.121694343188 | etot = -174.788180090583 +526000 ekin = 24.0470079695023 | erot = 27.5141010669624 | epot = -229.424175891327 | etot = -177.863066854862 +527000 ekin = 24.7652559941686 | erot = 24.0459690561378 | epot = -229.423371401068 | etot = -180.612146350762 +528000 ekin = 25.8850187683723 | erot = 21.6623200862783 | epot = -229.307228706866 | etot = -181.759889852215 +529000 ekin = 27.0463610704001 | erot = 22.1786800201847 | epot = -229.038404872887 | etot = -179.813363782302 +530000 ekin = 27.7753267980006 | erot = 21.352696690415 | epot = -228.849367136447 | etot = -179.721343648031 +531000 ekin = 27.8126912344675 | erot = 20.3285370027924 | epot = -228.550501942543 | etot = -180.409273705283 +532000 ekin = 28.6172804460881 | erot = 18.3427969924976 | epot = -228.423163122221 | etot = -181.463085683636 +533000 ekin = 28.2068049753172 | erot = 18.2536479974195 | epot = -228.612314526597 | etot = -182.151861553861 +534000 ekin = 28.4495519996443 | erot = 18.0012277086546 | epot = -228.943853455769 | etot = -182.49307374747 +535000 ekin = 28.9497940969891 | erot = 16.8492155357581 | epot = -229.741275998853 | etot = -183.942266366106 +536000 ekin = 28.5652244837817 | erot = 17.3435379345182 | epot = -230.83687671424 | etot = -184.92811429594 +537000 ekin = 29.022362828562 | erot = 17.9527916225231 | epot = -231.95803351984 | etot = -184.982879068755 +538000 ekin = 29.8174105606222 | erot = 16.0379790395698 | epot = -232.791699361863 | etot = -186.936309761671 +539000 ekin = 29.6952792444876 | erot = 17.4273307073527 | epot = -233.496059263026 | etot = -186.373449311186 +540000 ekin = 29.750585937819 | erot = 20.0144365059585 | epot = -234.056270399686 | etot = -184.291247955909 +541000 ekin = 29.368313343467 | erot = 19.579576821786 | epot = -234.349077090936 | etot = -185.401186925683 +542000 ekin = 28.4447550384428 | erot = 19.7945093762075 | epot = -234.236435613877 | etot = -185.997171199227 +543000 ekin = 27.7587268728516 | erot = 21.2328503430547 | epot = -233.528121996461 | etot = -184.536544780555 +544000 ekin = 28.3225695671127 | erot = 17.802768152032 | epot = -232.50551567328 | etot = -186.380177954136 +545000 ekin = 28.0998287685114 | erot = 19.6585770476894 | epot = -231.387898079567 | etot = -183.629492263366 +546000 ekin = 27.3903651306005 | erot = 21.807934581675 | epot = -230.479365576106 | etot = -181.281065863831 +547000 ekin = 26.7970978237519 | erot = 20.9996558932496 | epot = -229.684797062509 | etot = -181.888043345508 +548000 ekin = 26.7983027373764 | erot = 20.8421351684446 | epot = -228.90155588475 | etot = -181.261117978929 +549000 ekin = 26.188169756037 | erot = 21.0585848868904 | epot = -228.206493092338 | etot = -180.95973844941 +550000 ekin = 26.0140312453881 | erot = 22.5801677208772 | epot = -227.777402823687 | etot = -179.183203857422 +551000 ekin = 25.7757664599119 | erot = 23.9110391567262 | epot = -227.517272594077 | etot = -177.830466977439 +552000 ekin = 25.8315344617212 | erot = 23.7338223198244 | epot = -227.474934810832 | etot = -177.909578029286 +553000 ekin = 25.6747033622136 | erot = 22.7253607563637 | epot = -227.635537487589 | etot = -179.235473369012 +554000 ekin = 25.6047324774861 | erot = 22.6670330249201 | epot = -227.987099764937 | etot = -179.715334262531 +555000 ekin = 26.5879549294076 | erot = 24.0685342421982 | epot = -228.529950924382 | etot = -177.873461752776 +556000 ekin = 27.6268706515679 | erot = 22.1109312637994 | epot = -229.425954027825 | etot = -179.688152112458 +557000 ekin = 28.069112907845 | erot = 26.8965683539211 | epot = -230.584971459936 | etot = -175.61929019817 +558000 ekin = 28.0678083112931 | erot = 25.6618030440032 | epot = -231.991530613965 | etot = -178.261919258669 +559000 ekin = 28.9742033607634 | erot = 26.5724591704157 | epot = -233.463994495035 | etot = -177.917331963856 +560000 ekin = 28.9011051536108 | erot = 25.5889025184335 | epot = -234.725653093072 | etot = -180.235645421027 +561000 ekin = 29.4002126238622 | erot = 26.2954345341183 | epot = -235.835285786746 | etot = -180.139638628766 +562000 ekin = 29.975757760105 | erot = 24.4408981516764 | epot = -236.463195408104 | etot = -182.046539496323 +563000 ekin = 29.7752306165208 | erot = 27.2106096805276 | epot = -236.685322677156 | etot = -179.699482380108 +564000 ekin = 29.8813809383381 | erot = 26.6216283857818 | epot = -236.661076407545 | etot = -180.158067083425 +565000 ekin = 29.6774879892468 | erot = 27.2290939876273 | epot = -236.311809225071 | etot = -179.405227248197 +566000 ekin = 28.6346936939147 | erot = 26.8023560052638 | epot = -235.668742898058 | etot = -180.23169319888 +567000 ekin = 27.3954299875009 | erot = 26.5201802334772 | epot = -234.779541480291 | etot = -180.863931259313 +568000 ekin = 27.4071194817491 | erot = 25.1324696708474 | epot = -233.501854955991 | etot = -180.962265803394 +569000 ekin = 26.6231867984125 | erot = 24.6541363875885 | epot = -232.187184366121 | etot = -180.90986118012 +570000 ekin = 27.6093553036065 | erot = 23.6900717393427 | epot = -230.809430752191 | etot = -179.510003709242 +571000 ekin = 26.9083310567801 | erot = 22.528408139646 | epot = -229.566553491015 | etot = -180.129814294588 +572000 ekin = 26.4716627800808 | erot = 22.2845965716381 | epot = -228.619137213519 | etot = -179.8628778618 +573000 ekin = 26.6971389887138 | erot = 21.8798558769198 | epot = -228.034982255581 | etot = -179.457987389947 +574000 ekin = 27.2478685862593 | erot = 21.7451315224891 | epot = -227.459773842304 | etot = -178.466773733556 +575000 ekin = 28.7134212605173 | erot = 21.3522952166471 | epot = -226.994685152085 | etot = -176.928968674921 +576000 ekin = 28.5222344692551 | erot = 18.8986377279701 | epot = -226.85884558054 | etot = -179.437973383315 +577000 ekin = 29.1715076179565 | erot = 20.1101522026671 | epot = -226.880557883166 | etot = -177.598898062543 +578000 ekin = 29.1958211105308 | erot = 20.240027120463 | epot = -226.916258035043 | etot = -177.480409804049 +579000 ekin = 28.7985703505952 | erot = 18.3977325249373 | epot = -226.88304615327 | etot = -179.686743277737 +580000 ekin = 28.4440078780217 | erot = 18.4595801944313 | epot = -226.943317478502 | etot = -180.039729406048 +581000 ekin = 29.6191385878667 | erot = 18.2815372928574 | epot = -227.074832318056 | etot = -179.174156437332 +582000 ekin = 28.8755366565893 | erot = 17.8411251075596 | epot = -227.166122160148 | etot = -180.449460395999 +583000 ekin = 28.6195101128279 | erot = 17.8287187393535 | epot = -227.132715220626 | etot = -180.684486368445 +584000 ekin = 28.2523600687915 | erot = 17.6307832024022 | epot = -227.251691559433 | etot = -181.368548288239 +585000 ekin = 27.5957630773252 | erot = 17.8252193046033 | epot = -227.442847627708 | etot = -182.021865245779 +586000 ekin = 27.7899511430164 | erot = 18.5604184072932 | epot = -227.520178862255 | etot = -181.169809311945 +587000 ekin = 27.3277470399822 | erot = 19.4404091802981 | epot = -227.404442611801 | etot = -180.636286391521 +588000 ekin = 27.3638216941813 | erot = 20.0988247739979 | epot = -227.0932868642 | etot = -179.630640396021 +589000 ekin = 26.9522108357383 | erot = 19.0940445155609 | epot = -226.797323932239 | etot = -180.751068580939 +590000 ekin = 27.0814604422477 | erot = 18.9210809272503 | epot = -226.462739616754 | etot = -180.460198247256 +591000 ekin = 26.6304741560081 | erot = 19.7073249259863 | epot = -226.366593304564 | etot = -180.02879422257 +592000 ekin = 26.6793460171722 | erot = 22.0507306271919 | epot = -226.36463028426 | etot = -177.634553639896 +593000 ekin = 26.4435671908487 | erot = 22.0663123802426 | epot = -226.444524918504 | etot = -177.934645347413 +594000 ekin = 26.051479512619 | erot = 21.4158049135016 | epot = -226.573432513486 | etot = -179.106148087365 +595000 ekin = 25.6800098048177 | erot = 21.489745642643 | epot = -226.861484159439 | etot = -179.691728711979 +596000 ekin = 25.4982303265013 | erot = 22.0961692232522 | epot = -227.19375202979 | etot = -179.599352480036 +597000 ekin = 24.4179219809124 | erot = 21.221622910841 | epot = -227.371569607757 | etot = -181.732024716003 +598000 ekin = 24.2598938247207 | erot = 23.7729295468385 | epot = -227.36641699774 | etot = -179.333593626181 +599000 ekin = 24.2026897211424 | erot = 23.7935607586132 | epot = -227.120360675563 | etot = -179.124110195808 +600000 ekin = 24.6901303608034 | erot = 22.0458619441968 | epot = -226.63280531999 | etot = -179.89681301499 +601000 ekin = 24.7093667383309 | erot = 23.9592983403602 | epot = -225.919718139048 | etot = -177.251053060357 +602000 ekin = 24.9977163593162 | erot = 21.6808979179701 | epot = -225.225550361662 | etot = -178.546936084376 +603000 ekin = 24.909080272873 | erot = 19.8567647026369 | epot = -224.510932501025 | etot = -179.745087525515 +604000 ekin = 25.7672016321128 | erot = 20.1058382913628 | epot = -223.859317715152 | etot = -177.986277791676 +605000 ekin = 26.2854405598537 | erot = 18.6086042172451 | epot = -223.341754324839 | etot = -178.44770954774 +606000 ekin = 26.8878269017605 | erot = 16.8626720456841 | epot = -223.037062471522 | etot = -179.286563524077 +607000 ekin = 27.708630558942 | erot = 16.2639676386698 | epot = -222.903954806076 | etot = -178.931356608464 +608000 ekin = 27.5722592645523 | erot = 16.050800679878 | epot = -222.655822923886 | etot = -179.032762979456 +609000 ekin = 27.3059305453791 | erot = 16.2526674395162 | epot = -222.499289767144 | etot = -178.940691782249 +610000 ekin = 26.0529834115964 | erot = 17.5407293679719 | epot = -222.559467243073 | etot = -178.965754463504 +611000 ekin = 25.6444622853818 | erot = 17.5578356444653 | epot = -222.540154641407 | etot = -179.33785671156 +612000 ekin = 26.1044768868262 | erot = 16.7678551448027 | epot = -222.589366667697 | etot = -179.717034636068 +613000 ekin = 26.778105103681 | erot = 17.5411817669898 | epot = -222.737319173291 | etot = -178.418032302621 +614000 ekin = 27.6064782364792 | erot = 16.8092616077952 | epot = -222.738962051088 | etot = -178.323222206813 +615000 ekin = 27.202348500151 | erot = 18.1300982120248 | epot = -222.580596496295 | etot = -177.248149784119 +616000 ekin = 26.7294242583747 | erot = 17.8023339715893 | epot = -222.270889821123 | etot = -177.739131591159 +617000 ekin = 25.9673127266019 | erot = 19.4938436622423 | epot = -221.855677631762 | etot = -176.394521242918 +618000 ekin = 24.6649274148857 | erot = 19.7556140429642 | epot = -221.395419093589 | etot = -176.974877635739 +619000 ekin = 23.8246156062723 | erot = 22.6932905362597 | epot = -220.85765285395 | etot = -174.339746711418 +620000 ekin = 22.3922506676526 | erot = 23.1856908985781 | epot = -220.581162841993 | etot = -175.003221275762 +621000 ekin = 21.4430140463455 | erot = 20.0877017400879 | epot = -220.316250852764 | etot = -178.785535066331 +622000 ekin = 21.0282015425459 | erot = 21.2952952107454 | epot = -220.469702077462 | etot = -178.146205324171 +623000 ekin = 20.5485493901374 | erot = 21.9686222594177 | epot = -220.884709147042 | etot = -178.367537497487 +624000 ekin = 20.4116762130833 | erot = 24.4448345310671 | epot = -221.506951111473 | etot = -176.650440367323 +625000 ekin = 20.7086024723278 | erot = 24.9980231142946 | epot = -222.442357834988 | etot = -176.735732248366 +626000 ekin = 21.41397100679 | erot = 25.3578069120284 | epot = -223.283385353664 | etot = -176.511607434846 +627000 ekin = 21.8080912412149 | erot = 22.9275444026493 | epot = -223.892792640231 | etot = -179.157156996367 +628000 ekin = 22.0606300305555 | erot = 21.9874550553957 | epot = -224.361440644786 | etot = -180.313355558834 +629000 ekin = 22.2686585302 | erot = 23.3956059048975 | epot = -224.755334667347 | etot = -179.091070232249 +630000 ekin = 22.7261581540143 | erot = 23.599198071745 | epot = -224.949694798805 | etot = -178.624338573046 +631000 ekin = 22.7545989614576 | erot = 18.6693303881336 | epot = -225.170398987567 | etot = -183.746469637976 +632000 ekin = 22.8582899163666 | erot = 18.8600074747406 | epot = -225.453249516017 | etot = -183.734952124909 +633000 ekin = 22.5940364544595 | erot = 19.5865726816331 | epot = -225.675890763231 | etot = -183.495281627138 +634000 ekin = 21.7360344990529 | erot = 21.1386827787326 | epot = -225.807787978514 | etot = -182.933070700728 +635000 ekin = 22.3638048171573 | erot = 20.8651345753279 | epot = -226.017654598281 | etot = -182.788715205795 +636000 ekin = 23.2564468915411 | erot = 20.9568292454768 | epot = -226.474810466865 | etot = -182.261534329847 +637000 ekin = 23.7446282139124 | erot = 20.9649035011187 | epot = -227.255190257715 | etot = -182.545658542684 +638000 ekin = 24.9768211335302 | erot = 20.7684051797868 | epot = -228.339137670731 | etot = -182.593911357414 +639000 ekin = 25.6081152991627 | erot = 20.5394040856467 | epot = -229.535959313578 | etot = -183.388439928768 +640000 ekin = 25.882879312268 | erot = 21.5458521538092 | epot = -230.501601623652 | etot = -183.072870157574 +641000 ekin = 26.7192719153612 | erot = 21.5077808734751 | epot = -231.311086176637 | etot = -183.084033387801 +642000 ekin = 26.7533018509874 | erot = 22.3868483570804 | epot = -231.697126060187 | etot = -182.556975852119 +643000 ekin = 27.227638812425 | erot = 22.7444906941992 | epot = -231.70041423596 | etot = -181.728284729336 +644000 ekin = 28.2340179730461 | erot = 21.2142453447777 | epot = -231.34574674841 | etot = -181.897483430587 +645000 ekin = 27.9813501134116 | erot = 19.5632665182491 | epot = -230.723712640252 | etot = -183.179096008591 +646000 ekin = 27.3510433641092 | erot = 20.3180919491713 | epot = -229.805725426514 | etot = -182.136590113233 +647000 ekin = 27.4763651215188 | erot = 20.1973565201653 | epot = -228.883194713424 | etot = -181.20947307174 +648000 ekin = 26.9203103910451 | erot = 19.3299558126679 | epot = -228.183094649897 | etot = -181.932828446184 +649000 ekin = 27.1584207863441 | erot = 19.7773817590138 | epot = -227.851865720852 | etot = -180.916063175494 +650000 ekin = 27.8558677817717 | erot = 21.5235280981856 | epot = -227.854497907235 | etot = -178.475102027277 +651000 ekin = 27.4752369028502 | erot = 22.4969948370604 | epot = -228.056030460106 | etot = -178.083798720195 +652000 ekin = 27.8926782089265 | erot = 20.2366908977832 | epot = -228.25658268699 | etot = -180.12721358028 +653000 ekin = 27.833217461393 | erot = 22.8857793598376 | epot = -228.476748982019 | etot = -177.757752160788 +654000 ekin = 28.0840949255035 | erot = 20.7706125191501 | epot = -228.683833272169 | etot = -179.829125827515 +655000 ekin = 27.403762673065 | erot = 22.3510763116526 | epot = -229.021084688067 | etot = -179.266245703349 +656000 ekin = 28.3726446615757 | erot = 22.7742600500831 | epot = -229.347089574997 | etot = -178.200184863339 +657000 ekin = 27.7030235167448 | erot = 21.8629223338815 | epot = -229.434356479491 | etot = -179.868410628864 +658000 ekin = 27.1759488980294 | erot = 23.4533512480567 | epot = -229.408283419532 | etot = -178.778983273446 +659000 ekin = 27.1576709282284 | erot = 21.6330760247461 | epot = -229.142943895062 | etot = -180.352196942087 +660000 ekin = 26.3221730814178 | erot = 21.7821345770448 | epot = -228.723364173055 | etot = -180.619056514592 +661000 ekin = 25.779491442224 | erot = 22.2970031395793 | epot = -228.256343213546 | etot = -180.179848631742 +662000 ekin = 25.2646841713566 | erot = 21.3867459046999 | epot = -227.695753928069 | etot = -181.044323852012 +663000 ekin = 25.788599860439 | erot = 22.1358077324136 | epot = -227.095496572601 | etot = -179.171088979748 +664000 ekin = 25.6902100255482 | erot = 21.1754933170497 | epot = -226.605702908437 | etot = -179.739999565839 +665000 ekin = 25.8071177593121 | erot = 20.2980512970803 | epot = -226.316135130784 | etot = -180.210966074392 +666000 ekin = 25.654039027879 | erot = 19.3527959955109 | epot = -226.278718912648 | etot = -181.271883889258 +667000 ekin = 25.259919176648 | erot = 21.3448305524703 | epot = -226.010298820921 | etot = -179.405549091803 +668000 ekin = 24.899938000725 | erot = 20.4509835382855 | epot = -225.592827118275 | etot = -180.241905579265 +669000 ekin = 24.445106638769 | erot = 20.2026559802712 | epot = -225.189465074759 | etot = -180.541702455719 +670000 ekin = 23.6375178330896 | erot = 21.4368740508129 | epot = -224.732122186456 | etot = -179.657730302553 +671000 ekin = 23.6282860496992 | erot = 21.7094329321311 | epot = -224.008580994932 | etot = -178.670862013101 +672000 ekin = 24.0984504997224 | erot = 21.9403750101964 | epot = -223.13895872841 | etot = -177.100133218492 +673000 ekin = 23.7973496489823 | erot = 20.9987265259934 | epot = -222.393285441872 | etot = -177.597209266896 +674000 ekin = 23.7065530280889 | erot = 22.376642799205 | epot = -221.700044416557 | etot = -175.616848589263 +675000 ekin = 23.001776123468 | erot = 23.6694964963629 | epot = -221.420479977735 | etot = -174.749207357904 +676000 ekin = 22.5164066205241 | erot = 22.6402910589994 | epot = -221.322788427074 | etot = -176.16609074755 +677000 ekin = 22.5497630953929 | erot = 23.1877936778892 | epot = -221.402074795503 | etot = -175.664518022221 +678000 ekin = 21.5585311333769 | erot = 22.8702436982297 | epot = -221.697973670764 | etot = -177.269198839157 +679000 ekin = 21.4618959055948 | erot = 23.3865040507615 | epot = -222.015748334195 | etot = -177.167348377838 +680000 ekin = 21.4622800320567 | erot = 21.4127199547269 | epot = -222.429797710664 | etot = -179.55479772388 +681000 ekin = 21.1737975880679 | erot = 21.5846131769088 | epot = -222.953468011023 | etot = -180.195057246046 +682000 ekin = 21.7254656898551 | erot = 21.6540443362751 | epot = -223.45869005669 | etot = -180.07918003056 +683000 ekin = 21.4183563237426 | erot = 23.8796952031651 | epot = -224.031962106781 | etot = -178.733910579873 +684000 ekin = 22.2181785671375 | erot = 26.4163907692242 | epot = -224.556597387323 | etot = -175.922028050961 +685000 ekin = 22.4057534349632 | erot = 26.3514235333686 | epot = -224.764117789834 | etot = -176.006940821502 +686000 ekin = 21.9879963383394 | erot = 25.5983588287999 | epot = -224.837162072601 | etot = -177.250806905461 +687000 ekin = 21.7554417881072 | erot = 27.0115877106503 | epot = -224.825418203926 | etot = -176.058388705169 +688000 ekin = 21.8197561062317 | erot = 25.0081437700991 | epot = -224.863055701397 | etot = -178.035155825067 +689000 ekin = 21.5892200304501 | erot = 29.2491439251534 | epot = -224.907328455093 | etot = -174.068964499489 +690000 ekin = 21.8426769308178 | erot = 27.2293005592937 | epot = -224.943981990783 | etot = -175.872004500672 +691000 ekin = 22.1363752207295 | erot = 25.7931707752218 | epot = -224.746736914525 | etot = -176.817190918574 +692000 ekin = 22.5352297800636 | erot = 25.3446974399755 | epot = -224.434434618052 | etot = -176.554507398013 +693000 ekin = 22.8091228929751 | erot = 26.4872450844796 | epot = -224.047374463991 | etot = -174.751006486536 +694000 ekin = 22.4873583888692 | erot = 25.6513676536721 | epot = -223.737465620132 | etot = -175.598739577591 +695000 ekin = 23.1242633624005 | erot = 21.5570288691547 | epot = -223.550411341546 | etot = -178.869119109991 +696000 ekin = 24.0628961042017 | erot = 18.7702329767746 | epot = -223.663714460872 | etot = -180.830585379896 +697000 ekin = 24.4595165378671 | erot = 16.374437330644 | epot = -224.303732218758 | etot = -183.469778350247 +698000 ekin = 25.8305878390951 | erot = 15.1686612882172 | epot = -225.420465790738 | etot = -184.421216663426 +699000 ekin = 26.583760876588 | erot = 16.914220924162 | epot = -227.004086871952 | etot = -183.506105071201 +700000 ekin = 27.5797608451701 | erot = 19.1004834812402 | epot = -228.733304055557 | etot = -182.053059729146 +701000 ekin = 28.092598661006 | erot = 19.107193423995 | epot = -230.4398691701 | etot = -183.240077085099 +702000 ekin = 28.038659655595 | erot = 20.8470907300003 | epot = -231.921720460127 | etot = -183.035970074532 +703000 ekin = 28.1176122670283 | erot = 20.4831386988919 | epot = -233.089326607717 | etot = -184.488575641797 +704000 ekin = 28.6795532382639 | erot = 21.9842156401384 | epot = -233.886659285723 | etot = -183.222890407321 +705000 ekin = 28.4117756447571 | erot = 25.4648529190999 | epot = -234.312539385659 | etot = -180.435910821802 +706000 ekin = 27.4926471672545 | erot = 26.570396574273 | epot = -234.463545747886 | etot = -180.400502006358 +707000 ekin = 26.4290449605895 | erot = 29.8098318595607 | epot = -234.288422874891 | etot = -178.049546054741 +708000 ekin = 26.785682949808 | erot = 26.5168034780305 | epot = -233.599155373867 | etot = -180.296668946029 +709000 ekin = 26.1152543232575 | erot = 25.8699376167037 | epot = -232.62906889387 | etot = -180.643876953909 +710000 ekin = 25.640992098621 | erot = 24.9444607038658 | epot = -231.31659516414 | etot = -180.731142361653 +711000 ekin = 24.8084490562813 | erot = 22.41486490139 | epot = -230.188845489325 | etot = -182.965531531653 +712000 ekin = 24.0206122957558 | erot = 23.3639832553073 | epot = -229.544707677943 | etot = -182.16011212688 +713000 ekin = 23.3232426911543 | erot = 23.9964282538794 | epot = -229.263722517708 | etot = -181.944051572675 +714000 ekin = 23.3805726450359 | erot = 23.0699795298048 | epot = -229.169110187163 | etot = -182.718558012323 +715000 ekin = 22.6342143618995 | erot = 23.6996306944786 | epot = -229.323793869064 | etot = -182.989948812685 +716000 ekin = 22.7503175950267 | erot = 24.6103793866802 | epot = -229.738719755983 | etot = -182.378022774277 +717000 ekin = 22.7487828419965 | erot = 23.3120643428286 | epot = -230.199311355603 | etot = -184.138464170778 +718000 ekin = 23.7440282855966 | erot = 21.6662565298252 | epot = -230.594844861738 | etot = -185.184560046316 +719000 ekin = 23.0053134398269 | erot = 21.1345728705727 | epot = -230.919025277455 | etot = -186.779138967055 +720000 ekin = 22.7927824705925 | erot = 18.6486137418451 | epot = -231.312571080127 | etot = -189.871174867689 +721000 ekin = 22.9406443866908 | erot = 19.8512244181128 | epot = -231.525388298161 | etot = -188.733519493358 +722000 ekin = 22.6168297832631 | erot = 19.1089757310031 | epot = -231.486078548655 | etot = -189.760273034388 +723000 ekin = 23.2145903286558 | erot = 18.4327411531208 | epot = -231.073654493071 | etot = -189.426323011295 +724000 ekin = 23.1941486606142 | erot = 20.1152704224142 | epot = -230.393344877734 | etot = -187.083925794705 +725000 ekin = 23.2117542270878 | erot = 20.0416524857156 | epot = -229.681975652754 | etot = -186.428568939951 +726000 ekin = 22.4943249505552 | erot = 17.6255689470432 | epot = -229.018602806407 | etot = -188.898708908808 +727000 ekin = 23.0134120388946 | erot = 16.0733087173804 | epot = -228.449610641761 | etot = -189.362889885486 +728000 ekin = 23.6002606897018 | erot = 17.3538640496192 | epot = -227.894896906635 | etot = -186.940772167314 +729000 ekin = 23.2666739347333 | erot = 15.9737775925554 | epot = -227.639499131122 | etot = -188.399047603833 +730000 ekin = 23.6369012496368 | erot = 15.0574600338378 | epot = -227.615876852929 | etot = -188.921515569454 +731000 ekin = 24.2843158588705 | erot = 14.7532999805969 | epot = -227.863610813074 | etot = -188.825994973606 +732000 ekin = 24.5920563697733 | erot = 15.441921529354 | epot = -228.208536089551 | etot = -188.174558190424 +733000 ekin = 24.9542143587772 | erot = 16.2528554884185 | epot = -228.886245906842 | etot = -187.679176059646 +734000 ekin = 25.1975745295967 | erot = 17.5309997011736 | epot = -229.874798122519 | etot = -187.146223891749 +735000 ekin = 26.3384002839214 | erot = 20.2147377764707 | epot = -231.034141807835 | etot = -184.481003747443 +736000 ekin = 26.9977201223223 | erot = 21.4312348250696 | epot = -232.517347753316 | etot = -184.088392805924 +737000 ekin = 27.106843703555 | erot = 21.9213211360194 | epot = -233.962863053087 | etot = -184.934698213512 +738000 ekin = 27.0817280355982 | erot = 23.1086627439609 | epot = -235.308416470173 | etot = -185.118025690614 +739000 ekin = 27.7017346367214 | erot = 23.0670600140734 | epot = -236.434348689915 | etot = -185.66555403912 +740000 ekin = 27.414483533319 | erot = 22.8495946003411 | epot = -237.159045352128 | etot = -186.894967218468 +741000 ekin = 27.1254940524986 | erot = 25.2136677791409 | epot = -237.27567454816 | etot = -184.936512716521 +742000 ekin = 26.1007467617893 | erot = 24.3083714669445 | epot = -237.110037846066 | etot = -186.700919617333 +743000 ekin = 25.9661191503059 | erot = 24.9966890539635 | epot = -236.568563108752 | etot = -185.605754904482 +744000 ekin = 25.9610162148347 | erot = 24.0267364726876 | epot = -235.718093082982 | etot = -185.73034039546 +745000 ekin = 25.1903410925453 | erot = 20.0322158938195 | epot = -234.647323333736 | etot = -189.424766347371 +746000 ekin = 24.5549018272587 | erot = 19.5333934287955 | epot = -233.457073304408 | etot = -189.368778048353 +747000 ekin = 24.6969973760579 | erot = 19.684765269497 | epot = -232.388047096093 | etot = -188.006284450538 +748000 ekin = 23.8661147826955 | erot = 18.7566250549712 | epot = -231.325158225068 | etot = -188.702418387402 +749000 ekin = 22.8905662925953 | erot = 17.616297562066 | epot = -230.516546812681 | etot = -190.009682958019 +750000 ekin = 21.7762308247725 | erot = 18.808565539541 | epot = -229.678177029533 | etot = -189.09338066522 +751000 ekin = 21.470435101573 | erot = 19.3561756327847 | epot = -229.009265480618 | etot = -188.18265474626 +752000 ekin = 21.9146908855108 | erot = 21.6932584373869 | epot = -228.339869446873 | etot = -184.731920123975 +753000 ekin = 21.3126722507014 | erot = 19.4830994613168 | epot = -227.826644686117 | etot = -187.030872974099 +754000 ekin = 21.9973420006405 | erot = 18.3087877257647 | epot = -227.734582363023 | etot = -187.428452636618 +755000 ekin = 22.0630883354931 | erot = 17.7232559029141 | epot = -227.901903373361 | etot = -188.115559134954 +756000 ekin = 22.7885108553802 | erot = 18.9466234012732 | epot = -228.388591706589 | etot = -186.653457449935 +757000 ekin = 23.4273630235623 | erot = 19.3375649643952 | epot = -229.062755020945 | etot = -186.297827032987 +758000 ekin = 23.957213137725 | erot = 17.6511752357222 | epot = -229.883345819876 | etot = -188.274957446429 +759000 ekin = 24.8000463898566 | erot = 19.7556788733861 | epot = -230.860841170257 | etot = -186.305115907015 +760000 ekin = 24.3481865433343 | erot = 19.5845017015682 | epot = -231.819085479179 | etot = -187.886397234276 +761000 ekin = 24.7383964493482 | erot = 19.7052128432058 | epot = -232.446954772443 | etot = -188.003345479889 +762000 ekin = 24.7648359199342 | erot = 19.1678127120839 | epot = -232.719408348113 | etot = -188.786759716095 +763000 ekin = 24.6386313272633 | erot = 20.2072282597132 | epot = -232.892027596087 | etot = -188.046168009111 +764000 ekin = 24.535646123958 | erot = 22.5770425253206 | epot = -232.923754633562 | etot = -185.811065984283 +765000 ekin = 23.5513975921745 | erot = 23.8339377954301 | epot = -232.76312879921 | etot = -185.377793411606 +766000 ekin = 23.3033290453631 | erot = 23.9531600538532 | epot = -232.376570600668 | etot = -185.120081501452 +767000 ekin = 23.3690671647366 | erot = 21.8572954539486 | epot = -231.660452995211 | etot = -186.434090376525 +768000 ekin = 23.2846487005283 | erot = 21.3431585578876 | epot = -230.788764884581 | etot = -186.160957626165 +769000 ekin = 22.639077883555 | erot = 22.2121122667711 | epot = -230.121718934275 | etot = -185.270528783949 +770000 ekin = 22.9570384866444 | erot = 20.3561307423381 | epot = -229.677968740405 | etot = -186.364799511423 +771000 ekin = 23.4805185151499 | erot = 19.2296467559715 | epot = -229.218370670653 | etot = -186.508205399532 +772000 ekin = 23.6763149012215 | erot = 18.7804644565625 | epot = -229.197189562088 | etot = -186.740410204304 +773000 ekin = 23.2744828335044 | erot = 18.3799138508661 | epot = -229.294843443837 | etot = -187.640446759466 +774000 ekin = 24.1615203598158 | erot = 18.900317215458 | epot = -229.618073899692 | etot = -186.556236324418 +775000 ekin = 24.5357529676979 | erot = 22.7624377798731 | epot = -230.089626217906 | etot = -182.791435470335 +776000 ekin = 24.5386633146364 | erot = 21.1855266154048 | epot = -230.582204299442 | etot = -184.8580143694 +777000 ekin = 25.2498386289825 | erot = 21.3517051740902 | epot = -231.095135150134 | etot = -184.493591347061 +778000 ekin = 25.1773810922395 | erot = 21.7257078056424 | epot = -231.571689532577 | etot = -184.668600634695 +779000 ekin = 25.0706221380908 | erot = 23.206106433149 | epot = -231.920098805104 | etot = -183.643370233864 +780000 ekin = 25.0073948183737 | erot = 23.7843076919343 | epot = -231.940828129371 | etot = -183.149125619063 +781000 ekin = 25.862328682591 | erot = 20.6147635245773 | epot = -231.660475043653 | etot = -185.183382836484 +782000 ekin = 26.0106396574312 | erot = 18.4785712250649 | epot = -231.228955508185 | etot = -186.739744625689 +783000 ekin = 26.3548094027823 | erot = 20.3847656672935 | epot = -230.847881341015 | etot = -184.108306270939 +784000 ekin = 26.9941621418946 | erot = 20.6658207449783 | epot = -230.342301897166 | etot = -182.682319010294 +785000 ekin = 27.1272259996373 | erot = 20.0337747206907 | epot = -229.609935110564 | etot = -182.448934390236 +786000 ekin = 26.2875323551626 | erot = 21.2032948699837 | epot = -228.871206104526 | etot = -181.380378879379 +787000 ekin = 27.102289880841 | erot = 22.7511634245655 | epot = -228.229695505568 | etot = -178.376242200162 +788000 ekin = 26.9004033303382 | erot = 23.284460905515 | epot = -227.746200253144 | etot = -177.561336017291 +789000 ekin = 26.296015640084 | erot = 23.9396195703878 | epot = -227.4595974325 | etot = -177.223962222028 +790000 ekin = 26.0014289202783 | erot = 26.1183503632237 | epot = -227.52011756713 | etot = -175.400338283628 +791000 ekin = 26.0417552278906 | erot = 24.4511943151671 | epot = -227.865832903974 | etot = -177.372883360917 +792000 ekin = 24.7829875539951 | erot = 25.7161813251446 | epot = -228.337129921754 | etot = -177.837961042614 +793000 ekin = 24.1365737213691 | erot = 26.6815526928053 | epot = -229.030608073319 | etot = -178.212481659145 +794000 ekin = 24.2497409488624 | erot = 27.0890119453063 | epot = -229.824908003136 | etot = -178.486155108968 +795000 ekin = 24.6407890606403 | erot = 27.889646525042 | epot = -230.805274185753 | etot = -178.27483860007 +796000 ekin = 25.3265228383185 | erot = 27.1393608545888 | epot = -231.693076803536 | etot = -179.227193110629 +797000 ekin = 26.6978206545278 | erot = 26.0659091687928 | epot = -232.555084872404 | etot = -179.791355049083 +798000 ekin = 26.3339851949647 | erot = 24.0430202875505 | epot = -233.536000193098 | etot = -183.158994710583 +799000 ekin = 26.9068087522464 | erot = 22.6750790932831 | epot = -234.458642892057 | etot = -184.876755046527 +800000 ekin = 27.1539987641759 | erot = 23.0521331292966 | epot = -235.226285042255 | etot = -185.020153148783 +801000 ekin = 28.1094335983316 | erot = 25.0050175559563 | epot = -235.765403988368 | etot = -182.65095283408 +802000 ekin = 28.2095765951819 | erot = 27.782893768378 | epot = -236.074276063345 | etot = -180.081805699785 +803000 ekin = 27.5705368050616 | erot = 28.8940855937134 | epot = -236.110252388434 | etot = -179.645629989659 +804000 ekin = 28.2157687187553 | erot = 27.74636434354 | epot = -236.079369382529 | etot = -180.117236320234 +805000 ekin = 28.320866013253 | erot = 29.9910811282246 | epot = -235.90913845068 | etot = -177.597191309203 +806000 ekin = 28.1050825504931 | erot = 26.9917671949644 | epot = -235.67969557003 | etot = -180.582845824572 +807000 ekin = 28.9805100536259 | erot = 27.4290452324766 | epot = -235.492989203125 | etot = -179.083433917023 +808000 ekin = 28.6297117732318 | erot = 26.5808708304162 | epot = -235.318064848412 | etot = -180.107482244764 +809000 ekin = 27.6485930588141 | erot = 26.8549775475233 | epot = -234.976046493401 | etot = -180.472475887064 +810000 ekin = 27.3535576125066 | erot = 27.4159280488332 | epot = -234.674224241899 | etot = -179.90473858056 +811000 ekin = 26.8179323011295 | erot = 23.7813000955385 | epot = -234.075151851674 | etot = -183.475919455006 +812000 ekin = 25.4460426056691 | erot = 22.5673797708771 | epot = -233.183000295958 | etot = -185.169577919411 +813000 ekin = 24.6447760709675 | erot = 21.8823489885933 | epot = -232.313502763387 | etot = -185.786377703826 +814000 ekin = 23.5292099931413 | erot = 23.5195364453851 | epot = -231.540928013004 | etot = -184.492181574478 +815000 ekin = 23.2925196788094 | erot = 24.0874833263439 | epot = -231.037162145188 | etot = -183.657159140034 +816000 ekin = 22.5686853714983 | erot = 23.2614654221577 | epot = -230.69420971902 | etot = -184.864058925364 +817000 ekin = 21.8281820071653 | erot = 23.5211267469624 | epot = -230.271049994022 | etot = -184.921741239894 +818000 ekin = 21.2884404725207 | erot = 24.902381419566 | epot = -229.858747495004 | etot = -183.667925602917 +819000 ekin = 21.0872506325458 | erot = 24.5311269568262 | epot = -229.338784368977 | etot = -183.720406779605 +820000 ekin = 20.8955721018969 | erot = 25.3653144031468 | epot = -228.629666907205 | etot = -182.368780402161 +821000 ekin = 21.0405754334193 | erot = 21.6474705949844 | epot = -227.730299016778 | etot = -185.042252988374 +822000 ekin = 20.9721716781629 | erot = 21.5305117214123 | epot = -226.866605601223 | etot = -184.363922201648 +823000 ekin = 21.3134444479004 | erot = 18.9497629221593 | epot = -225.861340505134 | etot = -185.598133135074 +824000 ekin = 20.9747397211228 | erot = 18.6168738131577 | epot = -225.064270159964 | etot = -185.472656625683 +825000 ekin = 21.3904407523305 | erot = 18.7811321199529 | epot = -224.367454518582 | etot = -184.195881646298 +826000 ekin = 21.8928774215356 | erot = 18.0229901458568 | epot = -223.971578653884 | etot = -184.055711086492 +827000 ekin = 22.7137879274166 | erot = 17.003583367025 | epot = -223.925754778761 | etot = -184.208383484319 +828000 ekin = 23.27710684341 | erot = 16.767643058574 | epot = -223.977166786808 | etot = -183.932416884824 +829000 ekin = 22.9248196274624 | erot = 16.7826748876662 | epot = -224.203173005046 | etot = -184.495678489918 +830000 ekin = 23.4067478420881 | erot = 18.7934665997725 | epot = -224.482791288573 | etot = -182.282576846713 +831000 ekin = 23.4821697156405 | erot = 18.2729392007921 | epot = -224.915819953911 | etot = -183.160711037479 +832000 ekin = 23.6777143333438 | erot = 18.2278960830696 | epot = -225.489645423005 | etot = -183.584035006592 +833000 ekin = 23.472191617002 | erot = 18.0493053174397 | epot = -226.176378068975 | etot = -184.654881134533 +834000 ekin = 23.7368728904259 | erot = 18.0164626266613 | epot = -226.92716915948 | etot = -185.173833642392 +835000 ekin = 24.1489739233553 | erot = 18.9188017440221 | epot = -227.647120026384 | etot = -184.579344359006 +836000 ekin = 24.9827825556416 | erot = 19.495588151043 | epot = -228.34763399319 | etot = -183.869263286505 +837000 ekin = 25.256659406949 | erot = 18.944776639966 | epot = -228.876405841141 | etot = -184.674969794226 +838000 ekin = 25.6241774229268 | erot = 18.8091020128683 | epot = -229.371952192415 | etot = -184.938672756619 +839000 ekin = 24.937654890099 | erot = 19.8676941565057 | epot = -229.858542408147 | etot = -185.053193361542 +840000 ekin = 24.4858927113979 | erot = 20.165387717701 | epot = -230.274829908799 | etot = -185.6235494797 +841000 ekin = 25.2649920297918 | erot = 24.2935866726487 | epot = -230.699551533791 | etot = -181.14097283135 +842000 ekin = 25.1332828225798 | erot = 25.2707888267597 | epot = -231.095538575756 | etot = -180.691466926417 +843000 ekin = 25.1733374952435 | erot = 25.9799311513388 | epot = -231.399217706907 | etot = -180.245949060324 +844000 ekin = 25.6427133855964 | erot = 26.078509916794 | epot = -231.550673355361 | etot = -179.82945005297 +845000 ekin = 25.1297698352677 | erot = 24.7021906095904 | epot = -231.460774324866 | etot = -181.628813880008 +846000 ekin = 23.9774924150437 | erot = 26.9234963124405 | epot = -231.260980839143 | etot = -180.359992111659 +847000 ekin = 23.9502284491091 | erot = 25.3996788275484 | epot = -230.920723601702 | etot = -181.570816325044 +848000 ekin = 23.6157182559703 | erot = 24.5551104055363 | epot = -230.306195126828 | etot = -182.135366465322 +849000 ekin = 22.6955823420992 | erot = 25.5456755652408 | epot = -229.458091789959 | etot = -181.216833882618 +850000 ekin = 22.0235173219512 | erot = 26.2022873474972 | epot = -228.638684453437 | etot = -180.412879783989 +851000 ekin = 20.3765133939015 | erot = 25.395296129778 | epot = -227.4038640863 | etot = -181.632054562621 +852000 ekin = 19.712651245867 | erot = 22.1621130679229 | epot = -226.183276861571 | etot = -184.308512547781 +853000 ekin = 19.9928897638392 | erot = 20.0874368006941 | epot = -225.284467563439 | etot = -185.204140998906 +854000 ekin = 19.488290778963 | erot = 19.9220642414495 | epot = -224.827954241878 | etot = -185.417599221465 +855000 ekin = 19.0625095702531 | erot = 23.1790778413437 | epot = -224.708495395363 | etot = -182.466907983767 +856000 ekin = 18.2834869557216 | erot = 23.7444220411258 | epot = -224.914568249835 | etot = -182.886659252988 +857000 ekin = 18.0511175672903 | erot = 23.2575694040762 | epot = -225.28875879225 | etot = -183.980071820884 +858000 ekin = 17.987864866636 | erot = 22.7427618173349 | epot = -225.735338610943 | etot = -185.004711926972 +859000 ekin = 18.1389416018411 | erot = 21.3928666667423 | epot = -226.037392251567 | etot = -186.505583982984 +860000 ekin = 18.6141725361191 | erot = 20.6939972933922 | epot = -226.430306906883 | etot = -187.122137077371 +861000 ekin = 18.401448708528 | erot = 19.0196700230753 | epot = -226.81711834723 | etot = -189.395999615627 +862000 ekin = 19.1545854076427 | erot = 19.6617033547467 | epot = -227.136988769577 | etot = -188.320700007187 +863000 ekin = 19.7210305410548 | erot = 19.0006017481044 | epot = -227.58643743169 | etot = -188.864805142531 +864000 ekin = 20.4150266073574 | erot = 17.4275270266597 | epot = -227.954722358838 | etot = -190.112168724821 +865000 ekin = 19.9419797685448 | erot = 18.4620038343303 | epot = -228.340343063655 | etot = -189.93635946078 +866000 ekin = 20.0439020993958 | erot = 19.7882082077027 | epot = -228.670054548891 | etot = -188.837944241793 +867000 ekin = 20.4021140966254 | erot = 16.6652764682189 | epot = -228.856375548282 | etot = -191.788984983438 +868000 ekin = 20.0497264126648 | erot = 15.1372589940697 | epot = -228.9464789622 | etot = -193.759493555466 +869000 ekin = 20.3294773849231 | erot = 15.3005394579943 | epot = -228.69433960582 | etot = -193.064322762902 +870000 ekin = 21.0889922536593 | erot = 16.6120429683399 | epot = -228.508354500254 | etot = -190.807319278254 +871000 ekin = 21.4383179744103 | erot = 15.7484322870451 | epot = -228.210620038394 | etot = -191.023869776939 +872000 ekin = 20.9086609371529 | erot = 15.1111364530204 | epot = -227.78534180259 | etot = -191.765544412416 +873000 ekin = 20.8153441906834 | erot = 16.5761474970315 | epot = -227.299271762687 | etot = -189.907780074972 +874000 ekin = 20.9430061532593 | erot = 16.1679775988649 | epot = -226.763117412711 | etot = -189.652133660586 +875000 ekin = 20.8032036636137 | erot = 17.5698273129444 | epot = -226.415697698183 | etot = -188.042666721625 +876000 ekin = 21.2280022982517 | erot = 17.9072946891329 | epot = -226.028708918809 | etot = -186.893411931424 +877000 ekin = 20.7314119673013 | erot = 18.8567759065314 | epot = -225.75544933082 | etot = -186.167261456988 +878000 ekin = 19.6914373366095 | erot = 18.0844279043814 | epot = -225.736073224764 | etot = -187.960207983773 +879000 ekin = 19.3380672635332 | erot = 20.3104617632777 | epot = -225.910509841808 | etot = -186.261980814997 +880000 ekin = 20.1253722733107 | erot = 19.6280011404237 | epot = -226.214189456348 | etot = -186.460816042614 +881000 ekin = 20.260952001898 | erot = 21.2130237420557 | epot = -226.552056767178 | etot = -185.078081023224 +882000 ekin = 21.3999865884411 | erot = 20.028991688965 | epot = -226.705011052036 | etot = -185.27603277463 +883000 ekin = 20.9234278576856 | erot = 17.6868960387749 | epot = -226.60324790835 | etot = -187.992924011889 +884000 ekin = 20.2953614821548 | erot = 19.6437828087785 | epot = -226.531387224454 | etot = -186.59224293352 +885000 ekin = 20.0270746296784 | erot = 18.5836278581865 | epot = -226.609255319515 | etot = -187.99855283165 +886000 ekin = 20.5051703060542 | erot = 18.0664735117856 | epot = -226.96051309001 | etot = -188.38886927217 +887000 ekin = 20.6026175595096 | erot = 18.6797072756244 | epot = -227.547206365853 | etot = -188.264881530719 +888000 ekin = 21.2323390050554 | erot = 20.9767236317906 | epot = -228.222699335688 | etot = -186.013636698842 +889000 ekin = 21.8381850979202 | erot = 25.4926747228943 | epot = -229.035049210771 | etot = -181.704189389957 +890000 ekin = 21.4079820277754 | erot = 27.1125219125164 | epot = -229.846306308658 | etot = -181.325802368367 +891000 ekin = 20.7821773337589 | erot = 28.3638087372895 | epot = -230.472553686443 | etot = -181.326567615394 +892000 ekin = 20.9530226613445 | erot = 29.3670280639872 | epot = -230.939235576405 | etot = -180.619184851073 +893000 ekin = 20.7215793854111 | erot = 31.0978810463376 | epot = -231.283574476306 | etot = -179.464114044558 +894000 ekin = 19.8695855128928 | erot = 31.7444008344117 | epot = -231.206530399661 | etot = -179.592544052357 +895000 ekin = 20.4710472102287 | erot = 32.2571471114376 | epot = -230.935329589533 | etot = -178.207135267867 +896000 ekin = 20.0060219077691 | erot = 31.457482996745 | epot = -230.39059212909 | etot = -178.927087224576 +897000 ekin = 19.5877677637713 | erot = 30.8725368660366 | epot = -229.679299884647 | etot = -179.218995254839 +898000 ekin = 19.5649042545347 | erot = 30.6384498007997 | epot = -228.784507947033 | etot = -178.581153891699 +899000 ekin = 19.552835254318 | erot = 29.951844791116 | epot = -227.835835338061 | etot = -178.331155292627 +900000 ekin = 19.2943713466608 | erot = 28.266076937142 | epot = -226.951949904772 | etot = -179.391501620969 +901000 ekin = 18.7114972173853 | erot = 25.779754104773 | epot = -226.031983135348 | etot = -181.54073181319 +902000 ekin = 18.7187531634708 | erot = 21.6824516537499 | epot = -225.333624072524 | etot = -184.932419255303 +903000 ekin = 18.5839455909793 | erot = 21.3627578096897 | epot = -224.798501909831 | etot = -184.851798509162 +904000 ekin = 18.3200785166187 | erot = 21.0384699999409 | epot = -224.517265654088 | etot = -185.158717137528 +905000 ekin = 18.2865838363112 | erot = 22.5880133859383 | epot = -224.539131448644 | etot = -183.664534226394 +906000 ekin = 18.8425722270119 | erot = 21.9502833403246 | epot = -224.826601919796 | etot = -184.03374635246 +907000 ekin = 18.236662353643 | erot = 21.6508700749443 | epot = -225.411854073913 | etot = -185.524321645325 +908000 ekin = 19.0863284801222 | erot = 21.7256265222381 | epot = -225.925114677336 | etot = -185.113159674975 +909000 ekin = 18.6818812816023 | erot = 20.5599381624967 | epot = -226.282894133629 | etot = -187.04107468953 +910000 ekin = 19.0812656136231 | erot = 20.4145332853015 | epot = -226.698405476378 | etot = -187.202606577453 +911000 ekin = 18.9756818734077 | erot = 19.7026952453737 | epot = -227.201366089943 | etot = -188.522988971161 +912000 ekin = 19.4517334786722 | erot = 19.3460897587287 | epot = -227.803131570748 | etot = -189.005308333347 +913000 ekin = 19.487052846439 | erot = 19.4558063021173 | epot = -228.833499323783 | etot = -189.890640175227 +914000 ekin = 20.0013452620764 | erot = 19.8883578065421 | epot = -230.188717691798 | etot = -190.299014623179 +915000 ekin = 20.9190174527208 | erot = 21.5162066495227 | epot = -231.33235656658 | etot = -188.897132464337 +916000 ekin = 21.0408041290695 | erot = 20.6706622893139 | epot = -232.345019966097 | etot = -190.633553547713 +917000 ekin = 21.4182021320957 | erot = 20.3350739399058 | epot = -233.071031631301 | etot = -191.317755559299 +918000 ekin = 22.0971055055586 | erot = 18.9655185938109 | epot = -233.580798555561 | etot = -192.518174456191 +919000 ekin = 22.5486106562676 | erot = 18.3948377546432 | epot = -234.050312577178 | etot = -193.106864166267 +920000 ekin = 23.3254614038352 | erot = 19.5922944610403 | epot = -234.48534712321 | etot = -191.567591258335 +921000 ekin = 23.5452459126828 | erot = 20.5850080381015 | epot = -234.86333152558 | etot = -190.733077574796 +922000 ekin = 23.548927893765 | erot = 21.8847693351997 | epot = -235.159655748814 | etot = -189.72595851985 +923000 ekin = 23.6264800883718 | erot = 24.823701669703 | epot = -235.319615013714 | etot = -186.869433255639 +924000 ekin = 23.4484029162379 | erot = 25.2387940247724 | epot = -235.348442838844 | etot = -186.661245897834 +925000 ekin = 23.7581201931874 | erot = 26.0564388640377 | epot = -235.235791589113 | etot = -185.421232531888 +926000 ekin = 23.2671712311938 | erot = 27.0589269562523 | epot = -234.804321198793 | etot = -184.478223011347 +927000 ekin = 23.0270381962365 | erot = 29.4095030756175 | epot = -234.307939870163 | etot = -181.871398598309 +928000 ekin = 23.140501344179 | erot = 27.0790502179807 | epot = -233.844847745639 | etot = -183.62529618348 +929000 ekin = 22.2734898741118 | erot = 27.0674755071555 | epot = -233.049914186603 | etot = -183.708948805335 +930000 ekin = 21.6339427121745 | erot = 25.2225644782622 | epot = -232.095625490262 | etot = -185.239118299825 +931000 ekin = 20.9327398893734 | erot = 22.3817305427933 | epot = -231.012404519165 | etot = -187.697934086999 +932000 ekin = 20.4822193525442 | erot = 22.9972350477763 | epot = -230.147455250577 | etot = -186.668000850256 +933000 ekin = 19.9660353920888 | erot = 24.4740543358249 | epot = -229.586577553208 | etot = -185.146487825294 +934000 ekin = 19.3969944972964 | erot = 23.9687951023098 | epot = -229.129558438895 | etot = -185.763768839289 +935000 ekin = 18.8183272744565 | erot = 23.494590376579 | epot = -228.829650383225 | etot = -186.516732732189 +936000 ekin = 17.9161255220784 | erot = 26.3097805675523 | epot = -228.725255966952 | etot = -184.499349877321 +937000 ekin = 17.4090072925044 | erot = 28.2846119714553 | epot = -228.595685952083 | etot = -182.902066688124 +938000 ekin = 17.7095687249429 | erot = 28.4339381503916 | epot = -228.52964518166 | etot = -182.386138306326 +939000 ekin = 17.5520408874173 | erot = 27.0941576154426 | epot = -228.469555611768 | etot = -183.823357108909 +940000 ekin = 17.1798814813059 | erot = 25.8182574439337 | epot = -228.458369765694 | etot = -185.460230840454 +941000 ekin = 18.3127771365279 | erot = 26.1340829522924 | epot = -228.605257427977 | etot = -184.158397339157 +942000 ekin = 18.4394261942677 | erot = 25.2374530821303 | epot = -228.698077294464 | etot = -185.021198018066 +943000 ekin = 18.2926042504087 | erot = 25.6259778525084 | epot = -228.714835650707 | etot = -184.796253547789 +944000 ekin = 18.1985428862211 | erot = 27.2944037574074 | epot = -228.856509809853 | etot = -183.363563166225 +945000 ekin = 18.5074415121775 | erot = 27.6142744599881 | epot = -229.209548154119 | etot = -183.087832181953 +946000 ekin = 19.2233115923275 | erot = 29.6826055408939 | epot = -229.700854946272 | etot = -180.79493781305 +947000 ekin = 19.2209049259883 | erot = 28.9510045058796 | epot = -230.298982034344 | etot = -182.127072602476 +948000 ekin = 19.7441291687864 | erot = 26.2906426684946 | epot = -230.779259933587 | etot = -184.744488096306 +949000 ekin = 19.4506543919674 | erot = 26.8808216821455 | epot = -231.059979079511 | etot = -184.728503005398 +950000 ekin = 20.1645638300332 | erot = 25.6765899295848 | epot = -231.255749555474 | etot = -185.414595795856 +951000 ekin = 20.6156032604793 | erot = 23.3780963018669 | epot = -231.363279926649 | etot = -187.369580364303 +952000 ekin = 20.397762898021 | erot = 21.9317814265749 | epot = -231.413145962119 | etot = -189.083601637523 +953000 ekin = 21.0736084801864 | erot = 21.1438497831439 | epot = -231.535497877041 | etot = -189.318039613711 +954000 ekin = 22.2970457335312 | erot = 21.8052778907762 | epot = -231.61117831621 | etot = -187.508854691902 +955000 ekin = 22.119368227684 | erot = 23.2345496019292 | epot = -231.828383029989 | etot = -186.474465200376 +956000 ekin = 21.4925632863079 | erot = 21.4930515028271 | epot = -232.064300377829 | etot = -189.078685588694 +957000 ekin = 20.8333682688634 | erot = 22.8032486196631 | epot = -232.190793202397 | etot = -188.554176313871 +958000 ekin = 19.8501740638794 | erot = 24.4089530073582 | epot = -232.249982663747 | etot = -187.990855592509 +959000 ekin = 19.2680019449165 | erot = 25.5054723395896 | epot = -232.152549289162 | etot = -187.379075004656 +960000 ekin = 19.7794915155661 | erot = 24.9916198272161 | epot = -231.918033034319 | etot = -187.146921691537 +961000 ekin = 19.2751025937535 | erot = 25.8738975860354 | epot = -231.741716385163 | etot = -186.592716205374 +962000 ekin = 19.5337863893408 | erot = 24.9356255276758 | epot = -231.55739577143 | etot = -187.087983854414 +963000 ekin = 18.9999723551409 | erot = 25.6087844134591 | epot = -231.447506108069 | etot = -186.838749339469 +964000 ekin = 18.8752847703513 | erot = 24.9133910089691 | epot = -231.338447218817 | etot = -187.549771439496 +965000 ekin = 19.291184662028 | erot = 26.9200173912746 | epot = -231.200004911496 | etot = -184.988802858193 +966000 ekin = 19.9923055028309 | erot = 23.6358047261547 | epot = -231.075767261895 | etot = -187.44765703291 +967000 ekin = 20.7057273743393 | erot = 22.5792578588179 | epot = -230.879832297065 | etot = -187.594847063908 +968000 ekin = 20.9571086143562 | erot = 20.068819571795 | epot = -230.940571243941 | etot = -189.914643057789 +969000 ekin = 21.1817427297271 | erot = 21.825570412089 | epot = -231.039838752312 | etot = -188.032525610496 +970000 ekin = 21.6764110888425 | erot = 18.6641228269477 | epot = -231.330833358017 | etot = -190.990299442226 +971000 ekin = 21.6293984081523 | erot = 20.4985343496002 | epot = -231.743853106541 | etot = -189.615920348789 +972000 ekin = 21.8321017334667 | erot = 24.1203627051505 | epot = -232.392520631785 | etot = -186.440056193167 +973000 ekin = 22.2085815332021 | erot = 23.693087815175 | epot = -232.912739470324 | etot = -187.011070121947 +974000 ekin = 23.847360088775 | erot = 24.6762793762862 | epot = -233.368044095902 | etot = -184.844404630841 +975000 ekin = 23.8772760481354 | erot = 23.8186315371493 | epot = -233.675813480515 | etot = -185.979905895231 +976000 ekin = 24.8508847684197 | erot = 25.4916104671426 | epot = -233.730386974331 | etot = -183.387891738769 +977000 ekin = 25.503947524416 | erot = 25.977795351237 | epot = -233.493574624629 | etot = -182.011831748976 +978000 ekin = 25.1301492488327 | erot = 23.6629990089568 | epot = -232.903591402815 | etot = -184.110443145025 +979000 ekin = 24.5159482950054 | erot = 23.0268756855837 | epot = -231.985954800605 | etot = -184.443130820016 +980000 ekin = 24.3566813412311 | erot = 22.1670075667718 | epot = -230.990647999228 | etot = -184.466959091225 +981000 ekin = 23.9671984077651 | erot = 21.1028376661039 | epot = -230.100691904619 | etot = -185.03065583075 +982000 ekin = 24.2014904181518 | erot = 21.766454128543 | epot = -229.357805757613 | etot = -183.389861210918 +983000 ekin = 24.7761393638494 | erot = 21.5867990158502 | epot = -228.528183005968 | etot = -182.165244626269 +984000 ekin = 24.762354593527 | erot = 20.3394309281687 | epot = -227.693626881489 | etot = -182.591841359793 +985000 ekin = 23.1046341904546 | erot = 20.4859555093025 | epot = -226.832364952595 | etot = -183.241775252838 +986000 ekin = 22.9917171657182 | erot = 19.6850542240413 | epot = -225.931729672514 | etot = -183.254958282755 +987000 ekin = 23.0807717247555 | erot = 18.7933780253197 | epot = -225.294914737568 | etot = -183.420764987493 +988000 ekin = 23.4666498858033 | erot = 18.3944401818207 | epot = -224.462201121502 | etot = -182.601111053878 +989000 ekin = 22.8294990773184 | erot = 18.3438283695259 | epot = -223.609265715967 | etot = -182.435938269123 +990000 ekin = 22.7066871299428 | erot = 18.5469186746782 | epot = -222.854303271458 | etot = -181.600697466837 +991000 ekin = 22.1383192479068 | erot = 18.4323256035066 | epot = -222.260388874341 | etot = -181.689744022928 +992000 ekin = 21.6825567231224 | erot = 17.8750037490483 | epot = -221.638206330132 | etot = -182.080645857962 +993000 ekin = 21.6468556176261 | erot = 19.5312645063955 | epot = -221.115778704445 | etot = -179.937658580423 +994000 ekin = 21.4467710605119 | erot = 22.8410951796741 | epot = -220.729552539755 | etot = -176.441686299569 +995000 ekin = 22.4071907674418 | erot = 20.5892070380571 | epot = -220.394740391854 | etot = -177.398342586355 +996000 ekin = 22.1528083326795 | erot = 20.104343598086 | epot = -220.236106067073 | etot = -177.978954136307 +997000 ekin = 21.4854485286746 | erot = 19.7617644517094 | epot = -220.302222594169 | etot = -179.055009613785 +998000 ekin = 22.1449863079611 | erot = 20.4384133517957 | epot = -220.780253661163 | etot = -178.196854001406 +999000 ekin = 22.5781778653751 | erot = 21.7041052467461 | epot = -221.511725171924 | etot = -177.229442059803 +1000000 ekin = 22.8867994582225 | erot = 20.7015166614267 | epot = -222.040127669769 | etot = -178.45181155012 + 1000000 307.12188 -227.88356 5.8434328 -199.15333 0.033370746 39304000 +Loop time of 51.9408 on 1 procs for 1000000 steps with 26 atoms + +Performance: 28.378 ns/day, 0.846 hours/ns, 19252.681 timesteps/s, 500.570 katom-step/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 44.649 | 44.649 | 44.649 | 0.0 | 85.96 +Bond | 1.2217 | 1.2217 | 1.2217 | 0.0 | 2.35 +Neigh | 0.011591 | 0.011591 | 0.011591 | 0.0 | 0.02 +Comm | 0.31411 | 0.31411 | 0.31411 | 0.0 | 0.60 +Output | 0.2259 | 0.2259 | 0.2259 | 0.0 | 0.43 +Modify | 5.2451 | 5.2451 | 5.2451 | 0.0 | 10.10 +Other | | 0.2734 | | | 0.53 + +Nlocal: 26 ave 26 max 26 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 301 ave 301 max 301 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 301 +Ave neighs/atom = 11.576923 +Ave special neighs/atom = 5.0769231 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:51 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 new file mode 100644 index 0000000000..14e1c35e27 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 26 atoms + reading velocities ... + 26 velocities + scanning bonds ... + 1 = max bonds/atom + 26 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 24 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.007 seconds +Setting atom values ... + 26 settings made for mass +26 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 48.032697 + ghost atom cutoff = 48.032697 + binsize = 24.016348, bins = 15 15 15 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxdna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxdna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxdna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxdna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxdna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 +Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 299.91159 -228.12763 5.3145589 -200.46358 0.037365999 39304000 +1000 ekin = 23.3890953137706 | erot = 19.6410994523669 | epot = -223.453852955672 | etot = -180.423658189535 +2000 ekin = 23.1636407259802 | erot = 21.3625588607293 | epot = -224.083184468805 | etot = -179.556984882096 +3000 ekin = 23.2806646382535 | erot = 22.5430917602388 | epot = -224.768803309422 | etot = -178.945046910929 +4000 ekin = 23.9982606831172 | erot = 23.3468002016785 | epot = -225.369139455231 | etot = -178.024078570435 +5000 ekin = 24.165831446691 | erot = 24.309309123119 | epot = -225.647777921139 | etot = -177.172637351329 +6000 ekin = 24.6463592700502 | erot = 24.0743926173796 | epot = -225.506791813463 | etot = -176.786039926033 +7000 ekin = 24.3535569942788 | erot = 23.7545459891526 | epot = -225.024405145301 | etot = -176.91630216187 +8000 ekin = 24.1086868814849 | erot = 22.0830265599649 | epot = -224.271997801092 | etot = -178.080284359642 +9000 ekin = 23.6657562363458 | erot = 23.1988592381777 | epot = -223.434572814547 | etot = -176.569957340023 +10000 ekin = 24.3232494642814 | erot = 24.4646190421148 | epot = -222.599352113837 | etot = -173.811483607441 +11000 ekin = 23.5151408185546 | erot = 24.7247948775442 | epot = -221.829445800186 | etot = -173.589510104087 +12000 ekin = 23.1685925031279 | erot = 24.5168702274895 | epot = -221.283446631497 | etot = -173.597983900879 +13000 ekin = 22.5542770265459 | erot = 23.5479562044803 | epot = -220.966648997482 | etot = -174.864415766456 +14000 ekin = 22.1812934517937 | erot = 22.8843950945786 | epot = -220.909390045146 | etot = -175.843701498774 +15000 ekin = 21.6910740763736 | erot = 20.1250177447006 | epot = -221.050686326242 | etot = -179.234594505167 +16000 ekin = 22.4093549284696 | erot = 20.736944453168 | epot = -221.640495388654 | etot = -178.494196007016 +17000 ekin = 22.679935542291 | erot = 20.1401904659941 | epot = -222.539917467256 | etot = -179.71979145897 +18000 ekin = 22.7533504972992 | erot = 22.7880003534203 | epot = -223.497938845177 | etot = -177.956587994457 +19000 ekin = 22.6910824257598 | erot = 22.6775801630857 | epot = -224.397974314829 | etot = -179.029311725984 +20000 ekin = 22.4764122530343 | erot = 23.7180217709408 | epot = -225.277618576532 | etot = -179.083184552557 +21000 ekin = 22.3910995469036 | erot = 23.2739103814922 | epot = -226.054371546779 | etot = -180.389361618383 +22000 ekin = 22.7568179157572 | erot = 22.0747817368078 | epot = -226.677846442693 | etot = -181.846246790128 +23000 ekin = 23.0388332875658 | erot = 21.0371096765612 | epot = -226.873115293642 | etot = -182.797172329515 +24000 ekin = 22.9280961752663 | erot = 20.7369981826367 | epot = -226.863624686001 | etot = -183.198530328098 +25000 ekin = 23.1552675069494 | erot = 22.7089539602996 | epot = -226.603802406831 | etot = -180.739580939582 +26000 ekin = 23.1603034696877 | erot = 24.1226336440568 | epot = -226.15389780062 | etot = -178.870960686875 +27000 ekin = 22.8639956982148 | erot = 24.9308927260679 | epot = -225.734799028865 | etot = -177.939910604582 +28000 ekin = 22.8686406093792 | erot = 24.6702817199638 | epot = -225.404399605183 | etot = -177.865477275841 +29000 ekin = 22.7329708724114 | erot = 24.8206803603672 | epot = -225.288544762221 | etot = -177.734893529442 +30000 ekin = 23.2224697595134 | erot = 24.1186993911772 | epot = -225.281641810783 | etot = -177.940472660093 +31000 ekin = 23.2116217901824 | erot = 21.2110758669747 | epot = -225.379848736762 | etot = -180.957151079605 +32000 ekin = 22.6705345674289 | erot = 21.1222567836579 | epot = -225.626990597972 | etot = -181.834199246885 +33000 ekin = 22.5742554775595 | erot = 23.8115179286177 | epot = -226.196557922731 | etot = -179.810784516554 +34000 ekin = 22.4811628913946 | erot = 23.1703307206031 | epot = -227.132725939902 | etot = -181.481232327904 +35000 ekin = 22.1305128996843 | erot = 21.7768358380573 | epot = -228.241546350004 | etot = -184.334197612262 +36000 ekin = 22.3064371288266 | erot = 23.6090073902907 | epot = -229.291792709837 | etot = -183.37634819072 +37000 ekin = 22.7954030625747 | erot = 26.5244949994173 | epot = -230.44896109423 | etot = -181.129063032238 +38000 ekin = 22.021936313581 | erot = 28.7809192800672 | epot = -231.527472091849 | etot = -180.724616498201 +39000 ekin = 21.4311061995551 | erot = 30.0076463982257 | epot = -232.292567603581 | etot = -180.8538150058 +40000 ekin = 22.1961102532617 | erot = 28.4384036307401 | epot = -232.768624821777 | etot = -182.134110937775 +41000 ekin = 22.1632663233095 | erot = 27.8241627319402 | epot = -232.914504546317 | etot = -182.927075491067 +42000 ekin = 21.1410868775786 | erot = 26.870218141795 | epot = -232.876921131849 | etot = -184.865616112475 +43000 ekin = 21.3077823999456 | erot = 29.4997981842649 | epot = -232.609490543326 | etot = -181.801909959116 +44000 ekin = 21.0347661835417 | erot = 30.6694367820553 | epot = -232.102541009681 | etot = -180.398338044084 +45000 ekin = 20.0324931780768 | erot = 31.6373084224142 | epot = -231.359075571458 | etot = -179.689273970967 +46000 ekin = 19.8601076626959 | erot = 27.6516450222689 | epot = -230.481472443215 | etot = -182.96971975825 +47000 ekin = 19.9409510348244 | erot = 24.2746077209965 | epot = -229.669745177728 | etot = -185.454186421907 +48000 ekin = 20.2692406564663 | erot = 24.1549347770059 | epot = -228.892944669037 | etot = -184.468769235565 +49000 ekin = 19.7308285932956 | erot = 25.0778897556889 | epot = -228.04425642055 | etot = -183.235538071566 +50000 ekin = 19.5156647106263 | erot = 22.9395420283448 | epot = -227.011157830413 | etot = -184.555951091442 +51000 ekin = 19.6024948282074 | erot = 24.0313890926859 | epot = -226.023373255268 | etot = -182.389489334375 +52000 ekin = 19.8286591378852 | erot = 22.0208354730768 | epot = -225.032119343055 | etot = -183.182624732093 +53000 ekin = 19.3575981919063 | erot = 22.7897166177213 | epot = -224.158699287711 | etot = -182.011384478083 +54000 ekin = 19.597311059818 | erot = 23.0278186836853 | epot = -223.146432587169 | etot = -180.521302843666 +55000 ekin = 19.3207453743081 | erot = 22.0468752508626 | epot = -222.056416747158 | etot = -180.688796121987 +56000 ekin = 18.9770983953914 | erot = 20.6896918925267 | epot = -221.097322814135 | etot = -181.430532526217 +57000 ekin = 19.2291543150894 | erot = 18.2138179116051 | epot = -220.326696880738 | etot = -182.883724654043 +58000 ekin = 19.7989002082911 | erot = 17.8570481045562 | epot = -219.66066516308 | etot = -182.004716850233 +59000 ekin = 20.1354893580566 | erot = 18.0275449356124 | epot = -219.109861890285 | etot = -180.946827596616 +60000 ekin = 20.1400165937336 | erot = 16.7164726976129 | epot = -218.497904222289 | etot = -181.641414930942 +61000 ekin = 20.4228706753348 | erot = 15.3375065644544 | epot = -217.960810097484 | etot = -182.200432857695 +62000 ekin = 20.1686520767929 | erot = 14.8244535971852 | epot = -217.555103496147 | etot = -182.561997822169 +63000 ekin = 19.311066891783 | erot = 16.0064319386931 | epot = -217.355843552053 | etot = -182.038344721576 +64000 ekin = 18.6500742611855 | erot = 16.7733280191606 | epot = -217.424263371911 | etot = -182.000861091564 +65000 ekin = 18.4635153424261 | erot = 17.7526461844363 | epot = -217.607200736113 | etot = -181.391039209251 +66000 ekin = 18.0355770665484 | erot = 17.7854478795887 | epot = -217.893635735966 | etot = -182.072610789828 +67000 ekin = 18.7683164596081 | erot = 19.080252052141 | epot = -218.398035038712 | etot = -180.549466526963 +68000 ekin = 19.5633237463074 | erot = 19.5360521825708 | epot = -219.279673886377 | etot = -180.180297957499 +69000 ekin = 20.2188862219853 | erot = 20.833043152936 | epot = -220.282200151711 | etot = -179.23027077679 +70000 ekin = 20.9970230548361 | erot = 19.0573782912758 | epot = -221.465010968187 | etot = -181.410609622075 +71000 ekin = 22.2151160410886 | erot = 18.5722600954372 | epot = -222.617922299482 | etot = -181.830546162956 +72000 ekin = 23.0812082679138 | erot = 20.9554395379592 | epot = -224.077548221027 | etot = -180.040900415154 +73000 ekin = 24.1112874481562 | erot = 21.3307333887604 | epot = -225.657040151954 | etot = -180.215019315038 +74000 ekin = 25.1420377195353 | erot = 21.9350931527228 | epot = -226.775976258114 | etot = -179.698845385856 +75000 ekin = 25.4905080277013 | erot = 20.8716474966583 | epot = -227.44994158467 | etot = -181.087786060311 +76000 ekin = 26.1889777417351 | erot = 18.9373050893096 | epot = -227.905073960386 | etot = -182.778791129342 +77000 ekin = 26.6309013716286 | erot = 19.5714794491311 | epot = -228.081005377953 | etot = -181.878624557193 +78000 ekin = 27.3057147200393 | erot = 19.5248231586005 | epot = -228.040153322525 | etot = -181.209615443886 +79000 ekin = 28.2640662888057 | erot = 20.2680283946488 | epot = -227.894218120703 | etot = -179.362123437249 +80000 ekin = 28.8799414765843 | erot = 21.2755780503219 | epot = -227.426549194774 | etot = -177.271029667868 +81000 ekin = 28.0858484625652 | erot = 21.7656751298647 | epot = -226.837288216447 | etot = -176.985764624017 +82000 ekin = 27.5576739603813 | erot = 21.5235335244366 | epot = -226.257098694314 | etot = -177.175891209496 +83000 ekin = 27.0556891289388 | erot = 22.6329456874458 | epot = -225.705589513145 | etot = -176.01695469676 +84000 ekin = 26.940061932639 | erot = 22.4076039984471 | epot = -225.381193301861 | etot = -176.033527370774 +85000 ekin = 26.525652465447 | erot = 24.4523763465308 | epot = -225.328349372335 | etot = -174.350320560357 +86000 ekin = 26.2488146649899 | erot = 24.9404486230819 | epot = -225.600551034373 | etot = -174.411287746301 +87000 ekin = 25.8921444638997 | erot = 23.8549898140682 | epot = -225.944879311363 | etot = -176.197745033396 +88000 ekin = 26.2103045690956 | erot = 23.1783147432123 | epot = -226.027774274625 | etot = -176.639154962317 +89000 ekin = 25.9835312219869 | erot = 24.2571523005165 | epot = -225.843728416076 | etot = -175.603044893573 +90000 ekin = 25.0784166533943 | erot = 23.6606895366222 | epot = -225.518913230511 | etot = -176.779807040494 +91000 ekin = 25.1550989963772 | erot = 24.611658714882 | epot = -225.044629759836 | etot = -175.277872048577 +92000 ekin = 24.6322805735348 | erot = 23.0482358024938 | epot = -224.419349930751 | etot = -176.738833554722 +93000 ekin = 24.180459234874 | erot = 20.7592927466895 | epot = -223.586212452689 | etot = -178.646460471126 +94000 ekin = 22.9793960468067 | erot = 20.9605947384726 | epot = -222.799813856714 | etot = -178.859823071435 +95000 ekin = 22.0929244299446 | erot = 22.3265647171473 | epot = -222.029129765178 | etot = -177.609640618086 +96000 ekin = 21.7264489643602 | erot = 21.1719809671405 | epot = -221.221631774717 | etot = -178.323201843216 +97000 ekin = 21.4220036658247 | erot = 21.3543994979149 | epot = -220.52548534737 | etot = -177.74908218363 +98000 ekin = 20.0618032599352 | erot = 22.5876428184093 | epot = -219.923872605452 | etot = -177.274426527108 +99000 ekin = 19.3288174724157 | erot = 23.7511671518151 | epot = -219.367088850842 | etot = -176.287104226611 +100000 ekin = 18.4832594748416 | erot = 23.1505163286733 | epot = -218.93835041027 | etot = -177.304574606755 +101000 ekin = 18.2036045057376 | erot = 23.4110434093513 | epot = -218.810174271335 | etot = -177.195526356247 +102000 ekin = 19.1822681980068 | erot = 24.5380584864956 | epot = -219.20692211123 | etot = -175.486595426727 +103000 ekin = 19.6432797836894 | erot = 24.6590917201035 | epot = -219.897839906815 | etot = -175.595468403022 +104000 ekin = 20.1705942940374 | erot = 24.5511248426482 | epot = -220.691524456858 | etot = -175.969805320173 +105000 ekin = 20.4521236023122 | erot = 24.9947804545851 | epot = -221.484673188626 | etot = -176.037769131728 +106000 ekin = 20.2290985098953 | erot = 27.3725689281464 | epot = -222.355241194015 | etot = -174.753573755973 +107000 ekin = 20.8434847834034 | erot = 26.3604100874063 | epot = -223.150037642897 | etot = -175.946142772087 +108000 ekin = 21.412418363854 | erot = 28.2162878060305 | epot = -223.460424862129 | etot = -173.831718692244 +109000 ekin = 21.4548274110363 | erot = 30.3230159735583 | epot = -223.240254565236 | etot = -171.462411180641 +110000 ekin = 21.0213729404218 | erot = 29.3710550207835 | epot = -222.579286542226 | etot = -172.186858581021 +111000 ekin = 20.9967841720846 | erot = 26.7618200853704 | epot = -221.876250793147 | etot = -174.117646535692 +112000 ekin = 21.7067956747879 | erot = 24.9536304481639 | epot = -221.394505355036 | etot = -174.734079232084 +113000 ekin = 21.4580535818318 | erot = 22.7691051824902 | epot = -221.519820597203 | etot = -177.292661832881 +114000 ekin = 22.2538283177252 | erot = 22.1731381215523 | epot = -221.687750534437 | etot = -177.260784095159 +115000 ekin = 22.7396594344901 | erot = 20.8608644375928 | epot = -222.152243091207 | etot = -178.551719219124 +116000 ekin = 24.1978150545115 | erot = 21.3688456685818 | epot = -222.980866690549 | etot = -177.414205967455 +117000 ekin = 25.4933258533643 | erot = 22.6030027739669 | epot = -224.127289238825 | etot = -176.030960611493 +118000 ekin = 26.5632696276086 | erot = 22.5348729995318 | epot = -225.275605356332 | etot = -176.177462729191 +119000 ekin = 27.3565904118111 | erot = 23.0690511978526 | epot = -226.447636503629 | etot = -176.021994893965 +120000 ekin = 29.3515149477993 | erot = 22.9538643517138 | epot = -227.384133540075 | etot = -175.078754240562 +121000 ekin = 30.5981861627602 | erot = 24.0718786854702 | epot = -228.0863722092 | etot = -173.416307360969 +122000 ekin = 30.8337076451186 | erot = 21.5728983486705 | epot = -228.574513811433 | etot = -176.167907817644 +123000 ekin = 31.5034781314849 | erot = 24.7369743163131 | epot = -228.825132694326 | etot = -172.584680246528 +124000 ekin = 32.5012268554423 | erot = 22.3540490361114 | epot = -229.031726697549 | etot = -174.176450805995 +125000 ekin = 32.7837623568763 | erot = 21.6390695988794 | epot = -229.355357070393 | etot = -174.932525114638 +126000 ekin = 34.6524233539235 | erot = 20.8886638576163 | epot = -229.754016136603 | etot = -174.212928925063 +127000 ekin = 34.0859583483566 | erot = 20.87571356796 | epot = -230.186745529299 | etot = -175.225073612982 +128000 ekin = 33.3654002002854 | erot = 17.8696662885262 | epot = -230.452008826877 | etot = -179.216942338065 +129000 ekin = 32.879700171019 | erot = 20.1227819588362 | epot = -230.66738519366 | etot = -177.664903063805 +130000 ekin = 32.5779755655807 | erot = 22.5079760785794 | epot = -230.755161253226 | etot = -175.669209609066 +131000 ekin = 32.0009253066221 | erot = 23.4002695617563 | epot = -230.587415910688 | etot = -175.186221042309 +132000 ekin = 30.6104507658518 | erot = 23.2152891369288 | epot = -230.187009153994 | etot = -176.361269251214 +133000 ekin = 30.0801055500021 | erot = 24.89872490236 | epot = -229.502463574013 | etot = -174.523633121651 +134000 ekin = 29.5703478432003 | erot = 25.5419443422135 | epot = -228.376328698803 | etot = -173.264036513389 +135000 ekin = 27.8494638285662 | erot = 22.1463271581356 | epot = -226.796614760718 | etot = -176.800823774016 +136000 ekin = 26.7413064146633 | erot = 24.9789465866713 | epot = -225.063840059921 | etot = -173.343587058586 +137000 ekin = 25.6957193105053 | erot = 20.7412156523377 | epot = -223.397630735845 | etot = -176.960695773002 +138000 ekin = 23.6295036307194 | erot = 22.156062146465 | epot = -221.790362287186 | etot = -176.004796510002 +139000 ekin = 21.3906159765428 | erot = 21.7146099871639 | epot = -220.250844850201 | etot = -177.145618886495 +140000 ekin = 20.4985795938428 | erot = 20.8528672558468 | epot = -218.909318457139 | etot = -177.557871607449 +141000 ekin = 20.0359949166403 | erot = 21.2802479225099 | epot = -217.577251694951 | etot = -176.261008855801 +142000 ekin = 18.9631892259955 | erot = 19.8482921778254 | epot = -216.554661187853 | etot = -177.743179784032 +143000 ekin = 18.9783976628076 | erot = 21.2354711831475 | epot = -215.943444643249 | etot = -175.729575797294 +144000 ekin = 18.3622731665631 | erot = 20.8806330220523 | epot = -215.526530561429 | etot = -176.283624372814 +145000 ekin = 18.3633778590725 | erot = 20.9808337178454 | epot = -215.141180064732 | etot = -175.796968487814 +146000 ekin = 18.0030641174453 | erot = 20.1144458830263 | epot = -215.132079230415 | etot = -177.014569229944 +147000 ekin = 18.1301824506837 | erot = 20.0682713533626 | epot = -215.558128457865 | etot = -177.359674653818 +148000 ekin = 18.7692583084233 | erot = 18.7526905862527 | epot = -216.118789082644 | etot = -178.596840187968 +149000 ekin = 18.9701199796348 | erot = 21.3459169858944 | epot = -216.705869035682 | etot = -176.389832070152 +150000 ekin = 19.1460230366766 | erot = 22.9728862104556 | epot = -217.097167008501 | etot = -174.978257761369 +151000 ekin = 19.9232401081762 | erot = 20.8260224389232 | epot = -217.485240320698 | etot = -176.735977773599 +152000 ekin = 20.1824516077178 | erot = 20.0237977742153 | epot = -217.959645068293 | etot = -177.75339568636 +153000 ekin = 21.0207460333017 | erot = 21.268492565156 | epot = -218.612718008189 | etot = -176.323479409731 +154000 ekin = 22.534961994461 | erot = 20.9919099903807 | epot = -219.177409254363 | etot = -175.650537269521 +155000 ekin = 22.8618213684381 | erot = 19.5692643142745 | epot = -219.570021303563 | etot = -177.138935620851 +156000 ekin = 23.1051643701801 | erot = 16.4296764652247 | epot = -219.703156446911 | etot = -180.168315611506 +157000 ekin = 23.2429556198953 | erot = 18.0924487652884 | epot = -219.692327251345 | etot = -178.356922866161 +158000 ekin = 23.0355467188289 | erot = 18.2828932149397 | epot = -219.48465834254 | etot = -178.166218408772 +159000 ekin = 23.1050695121227 | erot = 16.2275027241546 | epot = -219.231547257504 | etot = -179.898975021227 +160000 ekin = 22.7521851912413 | erot = 16.6417481664669 | epot = -219.073812974093 | etot = -179.679879616385 +161000 ekin = 23.2701284387811 | erot = 17.0428745048628 | epot = -218.662884465419 | etot = -178.349881521775 +162000 ekin = 23.4520460412958 | erot = 19.2723698795182 | epot = -218.246057424873 | etot = -175.521641504059 +163000 ekin = 23.689441669341 | erot = 16.1416805717479 | epot = -218.038571722494 | etot = -178.207449481405 +164000 ekin = 23.3619421025109 | erot = 18.22708784978 | epot = -218.093772102733 | etot = -176.504742150442 +165000 ekin = 23.8064702087761 | erot = 19.6627695131554 | epot = -218.432017549968 | etot = -174.962777828037 +166000 ekin = 24.0139008081603 | erot = 20.0731418226024 | epot = -219.005861365541 | etot = -174.918818734778 +167000 ekin = 24.0624950654638 | erot = 20.9748981844942 | epot = -219.683607499488 | etot = -174.64621424953 +168000 ekin = 23.9376600547935 | erot = 20.1285243447132 | epot = -220.420457921599 | etot = -176.354273522093 +169000 ekin = 23.5298927322548 | erot = 20.2068282573737 | epot = -221.313567545343 | etot = -177.576846555714 +170000 ekin = 23.7768907445282 | erot = 21.2771123646888 | epot = -222.337207228985 | etot = -177.283204119768 +171000 ekin = 24.1370595671943 | erot = 23.097407978718 | epot = -223.5506470736 | etot = -176.316179527688 +172000 ekin = 24.4668786543479 | erot = 25.3209673144829 | epot = -224.697775116656 | etot = -174.909929147825 +173000 ekin = 24.6123421907483 | erot = 25.55710330111 | epot = -225.927114756503 | etot = -175.757669264645 +174000 ekin = 24.1184603587473 | erot = 26.344734075088 | epot = -227.192870039681 | etot = -176.729675605846 +175000 ekin = 24.6198790665726 | erot = 26.2179225737243 | epot = -228.430613666214 | etot = -177.592812025917 +176000 ekin = 24.6885745323025 | erot = 25.3760086033795 | epot = -229.590489142521 | etot = -179.525906006839 +177000 ekin = 25.8487289680921 | erot = 27.3473459150405 | epot = -230.512099208118 | etot = -177.316024324985 +178000 ekin = 25.7936599135358 | erot = 26.8557059905942 | epot = -231.146460411413 | etot = -178.497094507283 +179000 ekin = 26.1888961667669 | erot = 29.1002089068839 | epot = -231.411675557269 | etot = -176.122570483618 +180000 ekin = 26.0135600090731 | erot = 27.5817576880658 | epot = -231.273797896987 | etot = -177.678480199848 +181000 ekin = 26.2264624864677 | erot = 25.4290614265803 | epot = -230.913442560937 | etot = -179.257918647889 +182000 ekin = 26.1398552438982 | erot = 24.0809599689769 | epot = -230.511696027826 | etot = -180.290880814951 +183000 ekin = 26.1556145401761 | erot = 24.0766924985731 | epot = -229.818266971064 | etot = -179.585959932315 +184000 ekin = 27.3086871074633 | erot = 24.4288359228746 | epot = -228.839517782805 | etot = -177.101994752467 +185000 ekin = 27.4898787585441 | erot = 24.7938482452323 | epot = -227.666559851805 | etot = -175.382832848029 +186000 ekin = 27.3328782862148 | erot = 22.6658429472471 | epot = -226.350890551421 | etot = -176.352169317959 +187000 ekin = 26.7948174814632 | erot = 22.6470038181953 | epot = -225.081289232844 | etot = -175.639467933186 +188000 ekin = 27.8723845439341 | erot = 23.5234220005291 | epot = -223.908358510605 | etot = -172.512551966142 +189000 ekin = 28.1601880311353 | erot = 23.7261081823951 | epot = -222.800556775815 | etot = -170.914260562285 +190000 ekin = 28.0281791381836 | erot = 22.4495336007974 | epot = -221.746357664621 | etot = -171.26864492564 +191000 ekin = 28.3968994364094 | erot = 24.5513031073085 | epot = -220.887175628872 | etot = -167.938973085154 +192000 ekin = 27.7855852746761 | erot = 25.7678221031458 | epot = -220.147377425492 | etot = -166.59397004767 +193000 ekin = 27.0653969351198 | erot = 26.0797976416142 | epot = -219.448938305435 | etot = -166.303743728701 +194000 ekin = 26.591886956892 | erot = 27.2559987926336 | epot = -218.866818380032 | etot = -165.018932630506 +195000 ekin = 25.3875760139297 | erot = 30.4658402325932 | epot = -218.624921486327 | etot = -162.771505239804 +196000 ekin = 25.2698426080245 | erot = 29.5251795522301 | epot = -218.561614102179 | etot = -163.766591941925 +197000 ekin = 24.2903229144824 | erot = 31.8288244412473 | epot = -218.729796870422 | etot = -162.610649514693 +198000 ekin = 23.7276722827683 | erot = 32.0454149389688 | epot = -218.941804941586 | etot = -163.168717719849 +199000 ekin = 23.8463467560116 | erot = 31.965616978649 | epot = -219.185182684789 | etot = -163.373218950129 +200000 ekin = 23.3466100334222 | erot = 29.1399528434376 | epot = -219.23796368071 | etot = -166.75140080385 +201000 ekin = 22.7487917233094 | erot = 25.7244975420237 | epot = -219.090866114478 | etot = -170.617576849145 +202000 ekin = 22.1721332597989 | erot = 26.1511956277664 | epot = -218.778552074906 | etot = -170.455223187341 +203000 ekin = 21.7181344250325 | erot = 26.0871722320545 | epot = -218.390435495582 | etot = -170.585128838495 +204000 ekin = 21.0376564690026 | erot = 25.6226947809704 | epot = -218.05720217283 | etot = -171.396850922857 +205000 ekin = 20.7302702694838 | erot = 24.1599304176471 | epot = -217.801704730261 | etot = -172.91150404313 +206000 ekin = 21.3382716889647 | erot = 25.5578466968796 | epot = -217.705513220694 | etot = -170.80939483485 +207000 ekin = 21.929943769803 | erot = 24.3043622352602 | epot = -217.500606803152 | etot = -171.266300798088 +208000 ekin = 22.3703602648222 | erot = 23.8138985281345 | epot = -217.448247660947 | etot = -171.263988867991 +209000 ekin = 22.8322135815925 | erot = 24.3154754235774 | epot = -217.780621512497 | etot = -170.632932507327 +210000 ekin = 23.531458296701 | erot = 24.1781224892903 | epot = -218.426497805566 | etot = -170.716917019575 +211000 ekin = 24.3108042780204 | erot = 23.8117896585318 | epot = -219.237721464183 | etot = -171.115127527631 +212000 ekin = 25.5498843003363 | erot = 26.3148102829016 | epot = -220.148368449074 | etot = -168.283673865837 +213000 ekin = 26.7904826379273 | erot = 27.2908991135753 | epot = -221.046804647224 | etot = -166.965422895721 +214000 ekin = 27.9221149858574 | erot = 28.825031948947 | epot = -222.018023522183 | etot = -165.270876587378 +215000 ekin = 29.7060783522062 | erot = 26.6259095075768 | epot = -223.029189042779 | etot = -166.697201182996 +216000 ekin = 30.8166996672947 | erot = 27.4426017797676 | epot = -223.860903452266 | etot = -165.601602005203 +217000 ekin = 32.1062758748256 | erot = 28.480190382591 | epot = -224.420307416779 | etot = -163.833841159362 +218000 ekin = 34.0231354353329 | erot = 28.0396432492363 | epot = -224.762754873132 | etot = -162.699976188563 +219000 ekin = 35.0935147430151 | erot = 27.3420247123898 | epot = -224.844267242182 | etot = -162.408727786777 +220000 ekin = 36.6903483012276 | erot = 26.4046555014058 | epot = -224.674345925857 | etot = -161.579342123224 +221000 ekin = 37.0162358447748 | erot = 27.0644284813825 | epot = -224.294474180674 | etot = -160.213809854517 +222000 ekin = 37.2286352786866 | erot = 29.6452455867393 | epot = -223.646643282534 | etot = -156.772762417109 +223000 ekin = 37.1371706719775 | erot = 29.0338627066246 | epot = -223.02426705627 | etot = -156.853233677668 +224000 ekin = 37.7973687387399 | erot = 29.5349839686757 | epot = -222.452854546985 | etot = -155.120501839569 +225000 ekin = 37.8069973966967 | erot = 29.6422173132561 | epot = -221.948475640134 | etot = -154.499260930181 +226000 ekin = 37.3773991674874 | erot = 28.09605253081 | epot = -221.560990142565 | etot = -156.087538444267 +227000 ekin = 37.527755930331 | erot = 27.6808541221468 | epot = -221.483330512065 | etot = -156.274720459587 +228000 ekin = 38.4470067960778 | erot = 27.8146638288223 | epot = -221.276464510559 | etot = -155.014793885659 +229000 ekin = 39.1836147193506 | erot = 25.70095638706 | epot = -220.76463229751 | etot = -155.880061191099 +230000 ekin = 38.098964797451 | erot = 24.8377609072553 | epot = -219.990046626182 | etot = -157.053320921476 +231000 ekin = 36.1669798709402 | erot = 24.8108260069157 | epot = -219.186001203482 | etot = -158.208195325626 +232000 ekin = 36.2198119684192 | erot = 23.4065079338759 | epot = -218.360141683673 | etot = -158.733821781378 +233000 ekin = 34.9532458569289 | erot = 23.2139515607483 | epot = -217.384236817587 | etot = -159.21703939991 +234000 ekin = 33.7585177506638 | erot = 23.2139271576215 | epot = -216.590184561824 | etot = -159.617739653539 +235000 ekin = 32.5335134532386 | erot = 20.9776329357582 | epot = -215.733671699105 | etot = -162.222525310108 +236000 ekin = 31.2185234875872 | erot = 19.9753628972515 | epot = -214.975828378577 | etot = -163.781941993739 +237000 ekin = 30.4570685291383 | erot = 20.3543664256712 | epot = -214.499912868784 | etot = -163.688477913975 +238000 ekin = 30.2614586325617 | erot = 21.1886832898794 | epot = -214.361693708507 | etot = -162.911551786066 +239000 ekin = 30.4636237840023 | erot = 21.5186095678481 | epot = -214.441235319161 | etot = -162.459001967311 +240000 ekin = 30.1210218817714 | erot = 22.9784100820642 | epot = -214.858237469049 | etot = -161.758805505214 +241000 ekin = 30.3658666076425 | erot = 21.7261951348677 | epot = -215.434563747826 | etot = -163.342502005316 +242000 ekin = 31.3867694338899 | erot = 23.9153977300584 | epot = -216.072635834797 | etot = -160.770468670849 +243000 ekin = 31.1900708118743 | erot = 26.6273701728334 | epot = -216.694600313578 | etot = -158.877159328871 +244000 ekin = 31.1564882281032 | erot = 25.7058049551927 | epot = -217.265423330916 | etot = -160.40313014762 +245000 ekin = 32.4795705887834 | erot = 24.8995064535899 | epot = -217.720460688445 | etot = -160.341383646071 +246000 ekin = 32.872022647284 | erot = 22.333159106545 | epot = -218.061658138483 | etot = -162.856476384654 +247000 ekin = 33.4284260628809 | erot = 24.7591927551794 | epot = -218.263367004162 | etot = -160.075748186102 +248000 ekin = 32.4614988934282 | erot = 23.8539156460749 | epot = -218.302805394426 | etot = -161.987390854923 +249000 ekin = 32.1756176499451 | erot = 23.8767681339002 | epot = -218.304065910381 | etot = -162.251680126536 +250000 ekin = 32.2198888158387 | erot = 22.8375122406138 | epot = -218.144356419904 | etot = -163.086955363451 +251000 ekin = 32.3333741154669 | erot = 22.2973676925259 | epot = -217.820854022814 | etot = -163.190112214821 +252000 ekin = 32.6075392448557 | erot = 23.4769293692233 | epot = -217.429569515478 | etot = -161.345100901399 +253000 ekin = 32.4971688738337 | erot = 24.3030528043931 | epot = -216.984279947662 | etot = -160.184058269435 +254000 ekin = 31.8923138747249 | erot = 24.1415429248736 | epot = -216.529032269096 | etot = -160.495175469498 +255000 ekin = 31.4024206135883 | erot = 23.8129962675095 | epot = -216.108885088425 | etot = -160.893468207327 +256000 ekin = 31.4668964539727 | erot = 25.1555403914743 | epot = -215.777158729505 | etot = -159.154721884058 +257000 ekin = 30.1578271181182 | erot = 25.2224232604804 | epot = -215.398717214095 | etot = -160.018466835496 +258000 ekin = 30.052285311838 | erot = 25.7673281945382 | epot = -215.003795923615 | etot = -159.184182417239 +259000 ekin = 28.790005223663 | erot = 25.9071617879885 | epot = -214.672294871174 | etot = -159.975127859522 +260000 ekin = 28.824260164679 | erot = 25.3762394651934 | epot = -214.438705752551 | etot = -160.238206122679 +261000 ekin = 28.4516249893281 | erot = 24.3935835063456 | epot = -214.056107967132 | etot = -161.210899471458 +262000 ekin = 27.8087703289653 | erot = 22.2360995417882 | epot = -213.52238610892 | etot = -163.477516238166 +263000 ekin = 27.2988805169285 | erot = 22.3316425638774 | epot = -213.209725671803 | etot = -163.579202590997 +264000 ekin = 27.7705600653735 | erot = 23.2743633836993 | epot = -213.047162146333 | etot = -162.00223869726 +265000 ekin = 27.8709800491321 | erot = 23.5211350737156 | epot = -212.86511367636 | etot = -161.472998553512 +266000 ekin = 27.9918135619683 | erot = 23.7232253135648 | epot = -212.641590093523 | etot = -160.92655121799 +267000 ekin = 28.5234357395516 | erot = 24.0561346062967 | epot = -212.474716645669 | etot = -159.895146299821 +268000 ekin = 28.870687215238 | erot = 23.8306167734046 | epot = -212.508203135534 | etot = -159.806899146891 +269000 ekin = 29.2607991052743 | erot = 24.1133194421955 | epot = -212.537028623626 | etot = -159.162910076156 +270000 ekin = 28.5296269979822 | erot = 25.8732554655093 | epot = -212.31029476064 | etot = -157.907412297149 +271000 ekin = 28.9212541346642 | erot = 22.4473820635914 | epot = -212.324230216607 | etot = -160.955594018351 +272000 ekin = 29.6765055230995 | erot = 25.0261431612911 | epot = -212.625998104986 | etot = -157.923349420595 +273000 ekin = 29.7746844908601 | erot = 24.8432699221532 | epot = -212.915298586345 | etot = -158.297344173332 +274000 ekin = 29.9742743190805 | erot = 24.1999136810544 | epot = -213.041688653029 | etot = -158.867500652894 +275000 ekin = 29.5940338177725 | erot = 25.4819616152138 | epot = -213.067492330014 | etot = -157.991496897028 +276000 ekin = 30.2832320515794 | erot = 24.0723230457662 | epot = -213.253118366949 | etot = -158.897563269603 +277000 ekin = 30.4700966177081 | erot = 23.2212292830064 | epot = -213.621019589182 | etot = -159.929693688468 +278000 ekin = 30.67056507496 | erot = 24.4631770981652 | epot = -214.132222700305 | etot = -158.99848052718 +279000 ekin = 30.6357169264609 | erot = 19.8864866789268 | epot = -214.377025145056 | etot = -163.854821539669 +280000 ekin = 30.6259905609972 | erot = 18.665780487499 | epot = -214.4335387873 | etot = -165.141767738804 +281000 ekin = 30.5241190789795 | erot = 17.9408431561163 | epot = -214.446974019773 | etot = -165.982011784677 +282000 ekin = 30.2531856243418 | erot = 16.5789274482122 | epot = -214.432453220479 | etot = -167.600340147925 +283000 ekin = 29.4314819022737 | erot = 14.9978652258759 | epot = -214.684414044695 | etot = -170.255066916545 +284000 ekin = 30.4463102919895 | erot = 13.9713280303416 | epot = -215.084928089016 | etot = -170.667289766685 +285000 ekin = 31.0787017394374 | erot = 14.4465786715638 | epot = -215.631231905545 | etot = -170.105951494544 +286000 ekin = 31.1520316133396 | erot = 14.4930799914547 | epot = -216.300770408183 | etot = -170.655658803388 +287000 ekin = 32.351781766203 | erot = 16.6989745946407 | epot = -216.963878558876 | etot = -167.913122198032 +288000 ekin = 33.005541771032 | erot = 18.134215920469 | epot = -217.673454635531 | etot = -166.53369694403 +289000 ekin = 31.8618589209554 | erot = 18.4772719583004 | epot = -218.379723064086 | etot = -168.04059218483 +290000 ekin = 31.8344575426835 | erot = 19.7422352431296 | epot = -219.065973771903 | etot = -167.48928098609 +291000 ekin = 31.9518185930539 | erot = 20.621627266815 | epot = -219.570480405878 | etot = -166.997034546009 +292000 ekin = 32.6439243188648 | erot = 22.5302835108441 | epot = -219.892967757819 | etot = -164.71875992811 +293000 ekin = 31.4829450686937 | erot = 21.3316743728505 | epot = -219.958047969435 | etot = -167.143428527891 +294000 ekin = 31.6375180782201 | erot = 21.238624328018 | epot = -219.885582904306 | etot = -167.009440498068 +295000 ekin = 31.0253762184145 | erot = 22.4882784169501 | epot = -219.814823672917 | etot = -166.301169037553 +296000 ekin = 30.8124492018732 | erot = 21.713403837488 | epot = -219.710246306785 | etot = -167.184393267424 +297000 ekin = 30.6962957393053 | erot = 21.2387002912486 | epot = -219.446213938046 | etot = -167.511217907492 +298000 ekin = 30.2751045254072 | erot = 21.2588516620972 | epot = -219.069662492538 | etot = -167.535706305033 +299000 ekin = 30.2654549878554 | erot = 19.9050587659481 | epot = -218.83938043646 | etot = -168.668866682656 +300000 ekin = 30.0162960943798 | erot = 22.3467328364631 | epot = -218.595337871123 | etot = -166.232308940281 +301000 ekin = 29.6491535845194 | erot = 19.8418961043971 | epot = -218.642810229095 | etot = -169.151760540178 +302000 ekin = 29.8744151298851 | erot = 18.1734214421702 | epot = -218.872367696606 | etot = -170.824531124551 +303000 ekin = 30.5896376432356 | erot = 18.3628979719825 | epot = -219.385303830194 | etot = -170.432768214976 +304000 ekin = 30.8134874190764 | erot = 19.9151431938305 | epot = -220.085697355968 | etot = -169.357066743061 +305000 ekin = 31.2099214170774 | erot = 20.6624279502763 | epot = -220.87374787482 | etot = -169.001398507466 +306000 ekin = 31.5379241870259 | erot = 21.2324529548628 | epot = -221.686063335012 | etot = -168.915686193123 +307000 ekin = 32.2075616004244 | erot = 23.1042657052719 | epot = -222.42594670972 | etot = -167.114119404023 +308000 ekin = 32.5982898681942 | erot = 23.3642432119933 | epot = -222.922692953037 | etot = -166.96015987285 +309000 ekin = 32.4315134575481 | erot = 23.8633076366207 | epot = -223.184000926484 | etot = -166.889179832315 +310000 ekin = 32.1158150633277 | erot = 23.3576385972236 | epot = -223.437543256612 | etot = -167.964089596061 +311000 ekin = 33.0748530306084 | erot = 23.7247742792265 | epot = -223.800381213498 | etot = -167.000753903663 +312000 ekin = 34.0642489795215 | erot = 24.4005553104056 | epot = -224.015053783926 | etot = -165.550249493999 +313000 ekin = 33.3941820316022 | erot = 22.8657808322912 | epot = -224.224694496321 | etot = -167.964731632427 +314000 ekin = 32.8831430452506 | erot = 22.3521386618945 | epot = -224.328814014534 | etot = -169.093532307389 +315000 ekin = 32.6439304562237 | erot = 24.3395053721963 | epot = -224.403018580942 | etot = -167.419582752522 +316000 ekin = 32.5730201874399 | erot = 25.8715269487792 | epot = -224.429728916574 | etot = -165.985181780355 +317000 ekin = 31.691345936356 | erot = 27.6427411551856 | epot = -224.240735797652 | etot = -164.90664870611 +318000 ekin = 31.1651843502561 | erot = 26.792649242559 | epot = -223.979858021812 | etot = -166.022024428997 +319000 ekin = 31.7256674778549 | erot = 23.8408589889958 | epot = -223.590556061656 | etot = -168.024029594805 +320000 ekin = 31.7060827776545 | erot = 26.4684067579431 | epot = -223.249262306441 | etot = -165.074772770843 +321000 ekin = 31.6031237667453 | erot = 27.4509881705089 | epot = -223.147476089125 | etot = -164.093364151871 +322000 ekin = 30.3481482285902 | erot = 27.7216584811217 | epot = -222.937601855219 | etot = -164.867795145507 +323000 ekin = 29.3228062491828 | erot = 29.7362160481481 | epot = -222.700827695669 | etot = -163.641805398338 +324000 ekin = 30.0900580978278 | erot = 28.3009812560174 | epot = -222.702754485984 | etot = -164.311715132138 +325000 ekin = 28.9724465195176 | erot = 31.4194498954201 | epot = -222.678079364986 | etot = -162.286182950048 +326000 ekin = 29.6807119193739 | erot = 29.8368278955146 | epot = -222.408655317023 | etot = -162.891115502134 +327000 ekin = 30.1649693984999 | erot = 27.5646417986177 | epot = -222.067063198242 | etot = -164.337452001125 +328000 ekin = 30.3408094046572 | erot = 26.5580828070968 | epot = -221.711839024904 | etot = -164.81294681315 +329000 ekin = 29.8995896328213 | erot = 24.6642798907952 | epot = -221.317020601826 | etot = -166.753151078209 +330000 ekin = 29.1001168093683 | erot = 27.3082067727852 | epot = -221.023371065897 | etot = -164.615047483743 +331000 ekin = 29.3349918490581 | erot = 27.5476077161585 | epot = -220.672722242025 | etot = -163.790122676808 +332000 ekin = 29.5801979725688 | erot = 27.2721545786742 | epot = -220.153700211885 | etot = -163.301347660642 +333000 ekin = 28.8256885894683 | erot = 28.4593129139449 | epot = -219.338463478995 | etot = -162.053461975582 +334000 ekin = 29.6068579849397 | erot = 28.2610782505578 | epot = -218.379292922818 | etot = -160.511356687321 +335000 ekin = 29.1933888055502 | erot = 24.4887025724561 | epot = -217.4599543906 | etot = -163.777863012594 +336000 ekin = 30.3071264565402 | erot = 24.6669652156945 | epot = -216.60775546459 | etot = -161.633663792355 +337000 ekin = 30.1138123587914 | erot = 23.8810939282739 | epot = -215.898081222498 | etot = -161.903174935432 +338000 ekin = 30.3467366262656 | erot = 22.5089541109543 | epot = -215.413223769271 | etot = -162.557533032051 +339000 ekin = 29.2241742025094 | erot = 22.9493211875938 | epot = -215.161328851956 | etot = -162.987833461853 +340000 ekin = 30.5171940243424 | erot = 22.1230395830795 | epot = -215.211023569382 | etot = -162.57078996196 +341000 ekin = 30.2990451747942 | erot = 22.0969746780876 | epot = -215.550935218903 | etot = -163.154915366021 +342000 ekin = 30.4576471953255 | erot = 22.8638016940834 | epot = -216.001360002558 | etot = -162.679911113149 +343000 ekin = 30.5621281016439 | erot = 24.4583122950448 | epot = -215.621289056559 | etot = -160.60084865987 +344000 ekin = 32.4519608541283 | erot = 28.5755206655114 | epot = -217.653133425583 | etot = -156.625651905943 +345000 ekin = 31.64186545717 | erot = 32.3842692970166 | epot = -218.708632568144 | etot = -154.682497813957 +346000 ekin = 31.9511111644616 | erot = 30.5483257685665 | epot = -219.014511159579 | etot = -156.515074226551 +347000 ekin = 30.7638178773701 | erot = 27.010357983763 | epot = -218.824845563665 | etot = -161.050669702532 +348000 ekin = 29.6838704731132 | erot = 24.9056867476275 | epot = -218.325871696026 | etot = -163.736314475285 +349000 ekin = 28.9550895574073 | erot = 28.1956349832957 | epot = -217.605556361012 | etot = -160.454831820309 +350000 ekin = 27.8908728899355 | erot = 27.4303776928326 | epot = -216.700972313945 | etot = -161.379721731177 +351000 ekin = 27.2743250159904 | erot = 29.1647807029794 | epot = -215.665223366206 | etot = -159.226117647236 +352000 ekin = 26.9616211386809 | erot = 30.6797251227193 | epot = -214.694539908538 | etot = -157.053193647138 +353000 ekin = 27.348832713772 | erot = 29.6015507795374 | epot = -213.896099461977 | etot = -156.945715968668 +354000 ekin = 26.1507956829831 | erot = 30.7563048879842 | epot = -213.372078199846 | etot = -156.464977628878 +355000 ekin = 25.6190603614018 | erot = 32.5689348009866 | epot = -213.269655859313 | etot = -155.081660696925 +356000 ekin = 25.3669997880113 | erot = 31.0472983763093 | epot = -213.450675449262 | etot = -157.036377284941 +357000 ekin = 25.312758671354 | erot = 31.8479342344932 | epot = -213.695546912804 | etot = -156.534854006956 +358000 ekin = 26.0187679198773 | erot = 31.9758685586405 | epot = -214.009662837489 | etot = -156.015026358971 +359000 ekin = 26.5607225985322 | erot = 29.9396653432688 | epot = -214.192283973959 | etot = -157.691896032158 +360000 ekin = 26.5902994062844 | erot = 25.9943052658055 | epot = -214.124414590833 | etot = -161.539809918743 +361000 ekin = 26.4813018415084 | erot = 24.2616769392684 | epot = -213.85398393885 | etot = -163.111005158073 +362000 ekin = 26.5033314195901 | erot = 26.0990581372781 | epot = -213.545462747037 | etot = -160.943073190169 +363000 ekin = 27.1571133077625 | erot = 25.5067564699878 | epot = -213.334127657296 | etot = -160.670257879545 +364000 ekin = 27.887930595824 | erot = 23.9887993938849 | epot = -212.852508852937 | etot = -160.975778863229 +365000 ekin = 27.967758403039 | erot = 20.854424772872 | epot = -212.290084332197 | etot = -163.467901156286 +366000 ekin = 27.0060927016748 | erot = 20.9170666829011 | epot = -211.843808452849 | etot = -163.920649068273 +367000 ekin = 26.6039768958553 | erot = 23.5699590216425 | epot = -211.557557482102 | etot = -161.383621564604 +368000 ekin = 26.1143377810244 | erot = 24.5362401721805 | epot = -211.384448343648 | etot = -160.733870390443 +369000 ekin = 25.8118104643539 | erot = 22.5391701033533 | epot = -211.406298065096 | etot = -163.055317497389 +370000 ekin = 25.8673504840375 | erot = 22.7731029418705 | epot = -211.64775421813 | etot = -163.007300792222 +371000 ekin = 26.4562588492746 | erot = 23.9905423895665 | epot = -211.815727194594 | etot = -161.368925955753 +372000 ekin = 26.3200791949476 | erot = 22.7189248210943 | epot = -212.040306718402 | etot = -163.00130270236 +373000 ekin = 25.3755530875695 | erot = 25.0380776190232 | epot = -212.072031912698 | etot = -161.658401206106 +374000 ekin = 24.1185712423776 | erot = 25.2038789684849 | epot = -211.935098223519 | etot = -162.612648012656 +375000 ekin = 24.0684595712565 | erot = 23.8499797175989 | epot = -211.793395733322 | etot = -163.874956444466 +376000 ekin = 22.5016871580896 | erot = 25.6118197832101 | epot = -211.409769064352 | etot = -163.296262123053 +377000 ekin = 22.0986939181275 | erot = 24.7100299168742 | epot = -211.045176539028 | etot = -164.236452704026 +378000 ekin = 21.1684841682011 | erot = 25.5492888669468 | epot = -210.660306734319 | etot = -163.942533699171 +379000 ekin = 20.010673971417 | erot = 29.7040277439788 | epot = -210.244603948909 | etot = -160.529902233513 +380000 ekin = 18.6364568547605 | erot = 33.3248766383446 | epot = -210.07312332186 | etot = -158.111789828755 +381000 ekin = 19.1123943604215 | erot = 29.9128186030511 | epot = -210.121981236354 | etot = -161.096768272881 +382000 ekin = 18.488667416097 | erot = 30.6195763742908 | epot = -210.287398668517 | etot = -161.179154878129 +383000 ekin = 17.9867949709769 | erot = 30.4649216268247 | epot = -210.644012249165 | etot = -162.192295651363 +384000 ekin = 18.086653701317 | erot = 30.1682137046886 | epot = -211.454411912153 | etot = -163.199544506147 +385000 ekin = 17.9753010304936 | erot = 30.6444125095994 | epot = -212.324100690826 | etot = -163.704387150733 +386000 ekin = 17.7413668486357 | erot = 30.1012874369922 | epot = -213.259558577419 | etot = -165.416904291791 +387000 ekin = 18.2186784291797 | erot = 28.3029350222839 | epot = -214.13010996286 | etot = -167.608496511396 +388000 ekin = 19.292870919104 | erot = 29.2720917147751 | epot = -214.909679402132 | etot = -166.344716768253 +389000 ekin = 20.4945794932603 | erot = 28.0408016793114 | epot = -215.715111099094 | etot = -167.179729926522 +390000 ekin = 21.4293155611672 | erot = 27.6051655638294 | epot = -216.558290196654 | etot = -167.523809071658 +391000 ekin = 22.3503257992232 | erot = 27.4540127593509 | epot = -217.20378427697 | etot = -167.399445718396 +392000 ekin = 23.5932179843426 | erot = 27.1057144401021 | epot = -217.566275239839 | etot = -166.867342815394 +393000 ekin = 23.7557009876267 | erot = 26.6637680566362 | epot = -217.563756363461 | etot = -167.144287319198 +394000 ekin = 24.4865989987554 | erot = 23.220719991203 | epot = -217.316082883998 | etot = -169.608763894039 +395000 ekin = 24.7595946480364 | erot = 21.8918507069135 | epot = -216.949712698095 | etot = -170.298267343146 +396000 ekin = 24.982464352614 | erot = 22.3354930515494 | epot = -216.416874060901 | etot = -169.098916656738 +397000 ekin = 25.3000376061139 | erot = 18.3060350402966 | epot = -216.050469640324 | etot = -172.444396993914 +398000 ekin = 25.2861319964392 | erot = 20.4058007069709 | epot = -215.762453015488 | etot = -170.070520312078 +399000 ekin = 25.6910756014433 | erot = 17.2458372762693 | epot = -215.449363397805 | etot = -172.512450520093 +400000 ekin = 26.4568923302747 | erot = 20.1388849072962 | epot = -215.187132762528 | etot = -168.591355524957 +401000 ekin = 26.473671301154 | erot = 21.2374664754577 | epot = -215.079189181665 | etot = -167.368051405054 +402000 ekin = 26.9661026532044 | erot = 22.1166726988484 | epot = -215.024717195915 | etot = -165.941941843862 +403000 ekin = 27.3226322136654 | erot = 22.8394489464986 | epot = -214.937632585437 | etot = -164.775551425273 +404000 ekin = 27.8935295461376 | erot = 22.8817369521021 | epot = -214.928408259317 | etot = -164.153141761077 +405000 ekin = 27.9407970657418 | erot = 23.0166667876302 | epot = -215.070859098588 | etot = -164.113395245216 +406000 ekin = 27.8467131583262 | erot = 24.0920158980814 | epot = -215.21564472779 | etot = -163.276915671383 +407000 ekin = 28.1735323456276 | erot = 24.4127070079513 | epot = -215.337654426137 | etot = -162.751415072558 +408000 ekin = 28.0581746931196 | erot = 25.4097057702624 | epot = -215.286666631528 | etot = -161.818786168146 +409000 ekin = 28.4575477087421 | erot = 27.0137932992507 | epot = -215.176589089366 | etot = -159.705248081373 +410000 ekin = 29.085031171955 | erot = 22.9273639101281 | epot = -215.097105269705 | etot = -163.084710187621 +411000 ekin = 28.9671748142217 | erot = 21.8822014832413 | epot = -214.921613402608 | etot = -164.072237105145 +412000 ekin = 29.4064096216751 | erot = 22.5408195016054 | epot = -214.627366977766 | etot = -162.680137854486 +413000 ekin = 29.1673383998257 | erot = 22.321938064771 | epot = -214.45055434655 | etot = -162.961277881953 +414000 ekin = 29.0111563106279 | erot = 18.7948327919326 | epot = -214.508701808542 | etot = -166.702712705981 +415000 ekin = 29.2163525836019 | erot = 18.3535912788607 | epot = -214.674303958464 | etot = -167.104360096002 +416000 ekin = 29.3094098198563 | erot = 17.6709040312385 | epot = -214.87605897502 | etot = -167.895745123926 +417000 ekin = 29.3855401131447 | erot = 16.4805818891855 | epot = -215.210819648773 | etot = -169.344697646443 +418000 ekin = 30.2763385538192 | erot = 20.6340456010144 | epot = -215.816567102338 | etot = -164.906182947505 +419000 ekin = 31.2702871079484 | erot = 21.0558998076069 | epot = -216.353762857211 | etot = -164.027575941656 +420000 ekin = 31.1928990244873 | erot = 23.8599837907919 | epot = -216.890403955335 | etot = -161.837521140056 +421000 ekin = 31.5456444237668 | erot = 23.2548532394917 | epot = -217.344973044312 | etot = -162.544475381054 +422000 ekin = 31.595330248126 | erot = 24.1129799902568 | epot = -217.646733756815 | etot = -161.938423518432 +423000 ekin = 30.3263575817443 | erot = 24.7757808957598 | epot = -217.691567202219 | etot = -162.589428724715 +424000 ekin = 29.6227184353682 | erot = 26.8551354763864 | epot = -217.49353393768 | etot = -161.015680025925 +425000 ekin = 29.5897090928897 | erot = 26.5787069615055 | epot = -217.189735948055 | etot = -161.02131989366 +426000 ekin = 28.3811287852246 | erot = 26.0477945184346 | epot = -216.709754303037 | etot = -162.280830999377 +427000 ekin = 27.7967079006065 | erot = 25.8148017215667 | epot = -215.916318594378 | etot = -162.304808972205 +428000 ekin = 27.0564125148368 | erot = 24.2254396851756 | epot = -214.786030457606 | etot = -163.504178257594 +429000 ekin = 26.4009850387513 | erot = 25.2739282576038 | epot = -213.377238447454 | etot = -161.702325151099 +430000 ekin = 25.8966083026098 | erot = 25.0007234317203 | epot = -211.870124789713 | etot = -160.972793055383 +431000 ekin = 24.7984133581247 | erot = 23.6811925425768 | epot = -210.204391421479 | etot = -161.724785520777 +432000 ekin = 24.5987744680211 | erot = 21.4763884246366 | epot = -208.534970052743 | etot = -162.459807160085 +433000 ekin = 22.9801023558261 | erot = 20.5753920602906 | epot = -207.012668945877 | etot = -163.457174529761 +434000 ekin = 21.7283926559211 | erot = 20.7827792983396 | epot = -205.743779917972 | etot = -163.232607963712 +435000 ekin = 20.6245427682379 | erot = 23.3682934466507 | epot = -204.585339785363 | etot = -160.592503570474 +436000 ekin = 19.7010843166892 | erot = 22.7947216751232 | epot = -203.673192464633 | etot = -161.17738647282 +437000 ekin = 18.8171368139259 | erot = 25.8230091867142 | epot = -202.902988849489 | etot = -158.262842848849 +438000 ekin = 18.5857719223376 | erot = 23.8018783969198 | epot = -202.347858231407 | etot = -159.96020791215 +439000 ekin = 18.4671140963778 | erot = 20.8474712254561 | epot = -202.040176117765 | etot = -162.725590795931 +440000 ekin = 18.7081908968736 | erot = 21.8456146936514 | epot = -202.119006954422 | etot = -161.565201363897 +441000 ekin = 19.1502196807364 | erot = 22.8429897393171 | epot = -202.649140947654 | etot = -160.655931527601 +442000 ekin = 19.6976623491702 | erot = 23.833532038064 | epot = -203.432766723882 | etot = -159.901572336648 +443000 ekin = 20.2692385782964 | erot = 23.174529180215 | epot = -204.244337936897 | etot = -160.800570178386 +444000 ekin = 19.6594548157619 | erot = 25.8570487147508 | epot = -204.964941783042 | etot = -159.448438252529 +445000 ekin = 20.0159531993039 | erot = 25.4583870830884 | epot = -205.887229192997 | etot = -160.412888910605 +446000 ekin = 20.9430057952113 | erot = 27.6789597381082 | epot = -206.884522007063 | etot = -158.262556473743 +447000 ekin = 21.5434157008284 | erot = 26.3367064953282 | epot = -207.875777090658 | etot = -159.995654894502 +448000 ekin = 21.3493130668634 | erot = 28.7124847307391 | epot = -208.826609271652 | etot = -158.76481147405 +449000 ekin = 21.4147217526733 | erot = 30.2712153847118 | epot = -209.889081936843 | etot = -158.203144799458 +450000 ekin = 22.9537180151663 | erot = 30.7913406967762 | epot = -211.045040894093 | etot = -157.29998218215 +451000 ekin = 24.0701784584903 | erot = 33.2662973441661 | epot = -212.037901576699 | etot = -154.701425774043 +452000 ekin = 24.9326594408497 | erot = 33.1807983552873 | epot = -213.020928110261 | etot = -154.907470314124 +453000 ekin = 25.9026870743818 | erot = 29.9694393741095 | epot = -213.918112791264 | etot = -158.045986342772 +454000 ekin = 25.6267674636379 | erot = 30.3094040078412 | epot = -214.751677160517 | etot = -158.815505689038 +455000 ekin = 25.8835420243565 | erot = 31.0348607020646 | epot = -215.515256607227 | etot = -158.596853880806 +456000 ekin = 26.5079598183216 | erot = 31.1273555306477 | epot = -216.246152804127 | etot = -158.610837455158 +457000 ekin = 27.4443036582482 | erot = 29.8343750435819 | epot = -216.811984874468 | etot = -159.533306172638 +458000 ekin = 26.9310118911977 | erot = 27.7201727649044 | epot = -216.756924658081 | etot = -162.105740001979 +459000 ekin = 27.9109641832173 | erot = 25.6787961230286 | epot = -217.297816399931 | etot = -163.708056093685 +460000 ekin = 27.9601360034299 | erot = 25.3252752047677 | epot = -217.967018926065 | etot = -164.681607717868 +461000 ekin = 27.0745859502303 | erot = 25.5847145566425 | epot = -217.810130302685 | etot = -165.150829795813 +462000 ekin = 26.7487951031419 | erot = 24.980711595531 | epot = -217.697766754625 | etot = -165.968260055952 +463000 ekin = 26.0732441338559 | erot = 28.153686894781 | epot = -217.358666684053 | etot = -163.131735655416 +464000 ekin = 26.0396949919171 | erot = 25.8416381117693 | epot = -216.944940451188 | etot = -165.063607347501 +465000 ekin = 25.3226575272321 | erot = 24.0325554854213 | epot = -216.354701601293 | etot = -166.99948858864 +466000 ekin = 24.1231672777327 | erot = 24.4307976004896 | epot = -215.565164328178 | etot = -167.011199449956 +467000 ekin = 23.8540709231575 | erot = 22.124846509072 | epot = -214.920239098285 | etot = -168.941321666055 +468000 ekin = 22.565597367876 | erot = 22.7691054272285 | epot = -214.530469865182 | etot = -169.195767070077 +469000 ekin = 22.2713028791399 | erot = 22.2113409900692 | epot = -214.270807992981 | etot = -169.788164123772 +470000 ekin = 22.4851427578562 | erot = 21.4377178321587 | epot = -214.468076008404 | etot = -170.545215418389 +471000 ekin = 22.1823272554268 | erot = 20.278257170788 | epot = -214.941978893437 | etot = -172.481394467223 +472000 ekin = 21.8731320005381 | erot = 19.0138763043457 | epot = -215.549112362977 | etot = -174.662104058093 +473000 ekin = 20.8777093211568 | erot = 22.4202421701947 | epot = -216.333540945248 | etot = -173.035589453897 +474000 ekin = 21.4845461241046 | erot = 21.5552254985163 | epot = -217.149747427618 | etot = -174.109975804997 +475000 ekin = 21.8424250616637 | erot = 22.343637585153 | epot = -218.003692733599 | etot = -173.817630086783 +476000 ekin = 23.3926359095999 | erot = 23.4769825817391 | epot = -218.918478361235 | etot = -172.048859869896 +477000 ekin = 23.53084242551 | erot = 22.2301883973586 | epot = -219.644035844548 | etot = -173.88300502168 +478000 ekin = 23.6068262804286 | erot = 20.4526014426457 | epot = -220.193888919509 | etot = -176.134461196435 +479000 ekin = 23.4875352763514 | erot = 19.3184155065279 | epot = -220.738674570528 | etot = -177.932723787649 +480000 ekin = 23.0717855202954 | erot = 21.8892004951702 | epot = -221.304242068401 | etot = -176.343256052935 +481000 ekin = 22.3550858352525 | erot = 23.0423486541001 | epot = -221.663877016894 | etot = -176.266442527541 +482000 ekin = 21.9864848364329 | erot = 22.7363916127196 | epot = -221.683762589876 | etot = -176.960886140723 +483000 ekin = 22.6106924731206 | erot = 24.0428223649866 | epot = -221.59708966704 | etot = -174.943574828933 +484000 ekin = 22.5076589696515 | erot = 23.4557074572132 | epot = -221.540386505083 | etot = -175.577020078218 +485000 ekin = 22.6452014843636 | erot = 21.762451203069 | epot = -221.380979387409 | etot = -176.973326699976 +486000 ekin = 22.8884924315959 | erot = 22.3107890975159 | epot = -221.108997132445 | etot = -175.909715603333 +487000 ekin = 22.9971918001234 | erot = 24.3833170218936 | epot = -220.71103827305 | etot = -173.330529451033 +488000 ekin = 22.1533984482818 | erot = 25.7281535841679 | epot = -220.122813937115 | etot = -172.241261904665 +489000 ekin = 22.4515755615887 | erot = 25.0522662107032 | epot = -219.719249535127 | etot = -172.215407762835 +490000 ekin = 22.9547894223432 | erot = 24.517779033553 | epot = -219.418606998125 | etot = -171.946038542229 +491000 ekin = 23.5816418799849 | erot = 22.753839355928 | epot = -218.924118670106 | etot = -172.588637434193 +492000 ekin = 23.8823445747864 | erot = 21.2184779917221 | epot = -218.227735715369 | etot = -173.126913148861 +493000 ekin = 24.3448959898337 | erot = 21.8115598709523 | epot = -217.334509642487 | etot = -171.178053781701 +494000 ekin = 24.4320819054026 | erot = 22.5752180720098 | epot = -216.473641638612 | etot = -169.466341661199 +495000 ekin = 24.3755841384379 | erot = 23.9444067518822 | epot = -215.609878516645 | etot = -167.289887626325 +496000 ekin = 24.8598166549303 | erot = 21.4239924353219 | epot = -214.945231394708 | etot = -168.661422304456 +497000 ekin = 25.2448003736739 | erot = 20.8176798090042 | epot = -214.387561750013 | etot = -168.325081567335 +498000 ekin = 26.5693421635397 | erot = 20.5035803503483 | epot = -214.015978269251 | etot = -166.943055755363 +499000 ekin = 26.7852769961491 | erot = 19.5435940700116 | epot = -213.683959917476 | etot = -167.355088851315 +500000 ekin = 27.535057693355 | erot = 18.705068833847 | epot = -213.607739162636 | etot = -167.367612635434 +501000 ekin = 28.3213060130359 | erot = 17.8116944886089 | epot = -213.67740185523 | etot = -167.544401353585 +502000 ekin = 28.7521713272079 | erot = 18.0095076993248 | epot = -213.852896101639 | etot = -167.091217075106 +503000 ekin = 29.5029581283875 | erot = 18.909099125371 | epot = -214.062334972754 | etot = -165.650277718996 +504000 ekin = 30.3217459607846 | erot = 18.7844890901023 | epot = -214.319342764931 | etot = -165.213107714044 +505000 ekin = 30.1578277397036 | erot = 19.4319341441026 | epot = -214.415908521801 | etot = -164.826146637995 +506000 ekin = 29.209747070706 | erot = 19.026940448028 | epot = -214.633852668846 | etot = -166.397165150112 +507000 ekin = 29.642495894677 | erot = 19.5492883197655 | epot = -214.855190806251 | etot = -165.663406591808 +508000 ekin = 28.5340625040779 | erot = 21.9407235369196 | epot = -215.063369427087 | etot = -164.588583386089 +509000 ekin = 27.8112749390816 | erot = 22.7669227870046 | epot = -215.189489573915 | etot = -164.611291847828 +510000 ekin = 27.8718580299492 | erot = 22.1925267160587 | epot = -215.43076040814 | etot = -165.366375662132 +511000 ekin = 27.5420550600504 | erot = 21.1930166573984 | epot = -215.661435095053 | etot = -166.926363377604 +512000 ekin = 28.0922073127214 | erot = 21.705529509828 | epot = -215.786982318953 | etot = -165.989245496404 +513000 ekin = 28.4464077185633 | erot = 21.5872391817044 | epot = -216.013997388439 | etot = -165.980350488171 +514000 ekin = 28.6738400915053 | erot = 22.761394528105 | epot = -216.375218054325 | etot = -164.939983434714 +515000 ekin = 28.4988335118868 | erot = 21.0723384938813 | epot = -216.772216081264 | etot = -167.201044075496 +516000 ekin = 28.2431215529153 | erot = 22.5108174537502 | epot = -217.625419460918 | etot = -166.871480454252 +517000 ekin = 28.347655310566 | erot = 21.6185847645587 | epot = -218.584116365942 | etot = -168.617876290817 +518000 ekin = 28.7355143896094 | erot = 22.2912135675691 | epot = -219.537764202997 | etot = -168.511036245819 +519000 ekin = 28.0405456500047 | erot = 25.2172553666922 | epot = -220.297953309532 | etot = -167.040152292836 +520000 ekin = 26.9306517754668 | erot = 27.0838156807788 | epot = -220.731765046824 | etot = -166.717297590578 +521000 ekin = 26.1543611134017 | erot = 30.9762120900742 | epot = -221.023845549438 | etot = -163.893272345962 +522000 ekin = 25.2846258443128 | erot = 30.3488474956666 | epot = -221.113718831057 | etot = -165.480245491078 +523000 ekin = 25.3420381973596 | erot = 27.1843281367116 | epot = -221.140536198052 | etot = -168.614169863981 +524000 ekin = 25.7141573378958 | erot = 29.455779249349 | epot = -221.057372075661 | etot = -165.887435488417 +525000 ekin = 25.4838363010697 | erot = 26.3934330170679 | epot = -220.912701137522 | etot = -169.035431819385 +526000 ekin = 26.0079410350116 | erot = 30.2000198054899 | epot = -220.869509193105 | etot = -164.661548352604 +527000 ekin = 26.1588103027025 | erot = 29.7041166536357 | epot = -220.802295317341 | etot = -164.939368361003 +528000 ekin = 26.7938806212106 | erot = 29.1988530061502 | epot = -220.603226285027 | etot = -164.610492657666 +529000 ekin = 26.8945337264061 | erot = 30.8684009418751 | epot = -220.501633795914 | etot = -162.738699127633 +530000 ekin = 26.9078317338313 | erot = 29.6059799090131 | epot = -220.558751011573 | etot = -164.044939368729 +531000 ekin = 27.7935485005803 | erot = 29.2278507025209 | epot = -220.747606613035 | etot = -163.726207409933 +532000 ekin = 27.887349588649 | erot = 27.9662412084584 | epot = -221.046254717572 | etot = -165.192663920465 +533000 ekin = 28.6036302553006 | erot = 30.4080436081815 | epot = -221.390581182077 | etot = -162.378907318595 +534000 ekin = 29.1450459094427 | erot = 29.8984953927896 | epot = -221.618689857672 | etot = -162.57514855544 +535000 ekin = 29.469911033471 | erot = 29.755268847455 | epot = -221.750636117443 | etot = -162.525456236517 +536000 ekin = 29.50494662019 | erot = 30.5743840829575 | epot = -221.629307929619 | etot = -161.549977226472 +537000 ekin = 28.425893453274 | erot = 32.2633658998326 | epot = -221.149883136949 | etot = -160.460623783842 +538000 ekin = 28.0184749761055 | erot = 30.9372043254436 | epot = -220.230421084041 | etot = -161.274741782492 +539000 ekin = 26.9914955024263 | erot = 31.1470532462602 | epot = -218.907897489909 | etot = -160.769348741223 +540000 ekin = 25.8342672805741 | erot = 30.4659839502893 | epot = -217.4023318616 | etot = -161.102080630737 +541000 ekin = 25.026783494083 | erot = 28.6292948272569 | epot = -215.859642568803 | etot = -162.203564247463 +542000 ekin = 24.2196496447266 | erot = 27.1673316851706 | epot = -214.460130991487 | etot = -163.073149661589 +543000 ekin = 23.6870158078332 | erot = 27.3438759386704 | epot = -213.038313075576 | etot = -162.007421329072 +544000 ekin = 23.0676757322196 | erot = 26.7417435047259 | epot = -211.706572811687 | etot = -161.897153574741 +545000 ekin = 21.8293570586022 | erot = 25.2088678150874 | epot = -210.577232175622 | etot = -163.539007301932 +546000 ekin = 21.5224546734963 | erot = 25.7347520792893 | epot = -209.72960555737 | etot = -162.472398804585 +547000 ekin = 20.9968182936697 | erot = 25.5632514150022 | epot = -209.191378920644 | etot = -162.631309211972 +548000 ekin = 19.8988817654073 | erot = 23.2679071410407 | epot = -208.743073804017 | etot = -165.576284897569 +549000 ekin = 19.9727838598321 | erot = 22.3903038756502 | epot = -208.700752574222 | etot = -166.33766483874 +550000 ekin = 19.5901365826176 | erot = 23.3554322669728 | epot = -209.057328163197 | etot = -166.111759313607 +551000 ekin = 19.3625273691881 | erot = 22.3770654995204 | epot = -209.363208919373 | etot = -167.623616050665 +552000 ekin = 19.5151849616975 | erot = 21.2706999045886 | epot = -209.797169625893 | etot = -169.011284759607 +553000 ekin = 19.2265779452039 | erot = 20.4826132865114 | epot = -209.999313263519 | etot = -170.290122031804 +554000 ekin = 19.5496295764989 | erot = 20.8693447741625 | epot = -209.779481348856 | etot = -169.360506998194 +555000 ekin = 19.1735854190619 | erot = 19.9647334065035 | epot = -209.314112705489 | etot = -170.175793879924 +556000 ekin = 18.5478675513136 | erot = 24.137842092091 | epot = -208.401647045382 | etot = -165.715937401977 +557000 ekin = 17.4742761697172 | erot = 24.0319972301999 | epot = -207.527543381088 | etot = -166.021269981171 +558000 ekin = 17.0450293728529 | erot = 25.0431971863445 | epot = -206.756554568577 | etot = -164.66832800938 +559000 ekin = 16.5375595856902 | erot = 23.7766127103862 | epot = -205.999592721795 | etot = -165.685420425718 +560000 ekin = 16.3675553275375 | erot = 22.7274451429466 | epot = -205.532696411942 | etot = -166.437695941458 +561000 ekin = 16.4002686388511 | erot = 23.454222688713 | epot = -205.33653129407 | etot = -165.482039966506 +562000 ekin = 16.8601910320653 | erot = 24.6920222465119 | epot = -205.561599056927 | etot = -164.00938577835 +563000 ekin = 17.4904033581056 | erot = 27.3327302539918 | epot = -206.371449865494 | etot = -161.548316253397 +564000 ekin = 18.2959040777444 | erot = 25.8631538436394 | epot = -207.295829537485 | etot = -163.136771616101 +565000 ekin = 19.1876481491769 | erot = 26.3288155361578 | epot = -208.252583626631 | etot = -162.736119941296 +566000 ekin = 19.3470565924911 | erot = 25.8088677343261 | epot = -209.135375001814 | etot = -163.979450674997 +567000 ekin = 19.3284332398276 | erot = 26.1324360478945 | epot = -210.001092533551 | etot = -164.540223245829 +568000 ekin = 20.2145930912203 | erot = 27.7960775164549 | epot = -210.739375059829 | etot = -162.728704452154 +569000 ekin = 20.7786788494836 | erot = 29.1835546820981 | epot = -211.690043333607 | etot = -161.727809802026 +570000 ekin = 20.4712421095841 | erot = 30.0658782238937 | epot = -212.489990080473 | etot = -161.952869746995 +571000 ekin = 20.1740626295591 | erot = 34.2763104149801 | epot = -212.99657775615 | etot = -158.54620471161 +572000 ekin = 20.2865908439986 | erot = 32.9711037269835 | epot = -213.258049696028 | etot = -160.000355125046 +573000 ekin = 20.2785763047898 | erot = 32.164420996442 | epot = -213.224973233119 | etot = -160.781975931887 +574000 ekin = 20.73420675937 | erot = 33.4121841231608 | epot = -212.911121076823 | etot = -158.764730194292 +575000 ekin = 20.2170533951852 | erot = 31.3247437485476 | epot = -212.546252872734 | etot = -161.004455729001 +576000 ekin = 19.4298111281265 | erot = 32.3261160719177 | epot = -212.142648109265 | etot = -160.386720909221 +577000 ekin = 19.2647608601736 | erot = 34.7383488770083 | epot = -211.774480661784 | etot = -157.771370924603 +578000 ekin = 18.8591531744448 | erot = 34.9578310327361 | epot = -211.41608019627 | etot = -157.599095989089 +579000 ekin = 19.1764535805344 | erot = 34.5315583779688 | epot = -210.953075025527 | etot = -157.245063067024 +580000 ekin = 19.2853428286521 | erot = 34.6365289435264 | epot = -210.25522157758 | etot = -156.333349805402 +581000 ekin = 18.7906308240455 | erot = 33.6526265209018 | epot = -209.637569234705 | etot = -157.194311889758 +582000 ekin = 19.084905315022 | erot = 30.2130120641441 | epot = -209.11867694325 | etot = -159.820759564084 +583000 ekin = 19.7173995337446 | erot = 30.366640119437 | epot = -208.664312052077 | etot = -158.580272398895 +584000 ekin = 20.3909791819401 | erot = 28.9778999219973 | epot = -208.252182490968 | etot = -158.883303387031 +585000 ekin = 20.9470408507438 | erot = 28.5667963345671 | epot = -208.028127454439 | etot = -158.514290269128 +586000 ekin = 21.8171004518006 | erot = 27.8466229838588 | epot = -208.095369306471 | etot = -158.431645870812 +587000 ekin = 23.1615832403556 | erot = 24.9646595929125 | epot = -208.369983933223 | etot = -160.243741099955 +588000 ekin = 23.8959195121688 | erot = 25.24887078156 | epot = -209.101399059693 | etot = -159.956608765964 +589000 ekin = 24.7834285754863 | erot = 26.0497724346551 | epot = -209.871831515904 | etot = -159.038630505763 +590000 ekin = 25.3936432927543 | erot = 23.6572511459096 | epot = -210.480131773127 | etot = -161.429237334463 +591000 ekin = 25.9278610257486 | erot = 23.0115174388733 | epot = -210.978711850373 | etot = -162.039333385751 +592000 ekin = 27.1309273397085 | erot = 23.1610725306481 | epot = -211.238339753623 | etot = -160.946339883266 +593000 ekin = 26.4574056599296 | erot = 23.5297100340712 | epot = -211.398991430669 | etot = -161.411875736668 +594000 ekin = 26.2135133417378 | erot = 24.3682480979618 | epot = -211.629783890836 | etot = -161.048022451137 +595000 ekin = 26.7143131575838 | erot = 25.9581831810466 | epot = -211.492775841309 | etot = -158.820279502679 +596000 ekin = 25.9981237047512 | erot = 24.5874940201996 | epot = -210.994983795865 | etot = -160.409366070915 +597000 ekin = 25.3691803838513 | erot = 25.6177769896042 | epot = -210.235015094311 | etot = -159.248057720855 +598000 ekin = 23.6665857713897 | erot = 26.7002735359816 | epot = -209.31162840973 | etot = -158.944769102359 +599000 ekin = 22.4410822725131 | erot = 24.4123509303077 | epot = -208.296342188806 | etot = -161.442908985985 +600000 ekin = 22.1604509520165 | erot = 23.7403591164762 | epot = -207.435376754137 | etot = -161.534566685645 +601000 ekin = 22.1910498539915 | erot = 25.7876707770135 | epot = -206.80770864539 | etot = -158.828988014385 +602000 ekin = 21.3191775900909 | erot = 24.1816411383452 | epot = -206.419514787599 | etot = -160.918696059162 +603000 ekin = 21.1724174977999 | erot = 23.1636571932934 | epot = -206.285960522692 | etot = -161.949885831599 +604000 ekin = 20.9177152169245 | erot = 23.0600658965548 | epot = -206.401463523596 | etot = -162.423682410117 +605000 ekin = 20.5881838168339 | erot = 23.4945688308947 | epot = -206.783521776426 | etot = -162.700769128698 +606000 ekin = 20.5566050385019 | erot = 24.4436457663487 | epot = -207.302724003666 | etot = -162.302473198816 +607000 ekin = 20.5889650529151 | erot = 24.2601145277504 | epot = -207.849151297373 | etot = -163.000071716707 +608000 ekin = 20.798561595616 | erot = 24.0529914889943 | epot = -208.221016465144 | etot = -163.369463380534 +609000 ekin = 21.3334604629993 | erot = 21.2987977820021 | epot = -208.39362904366 | etot = -165.761370798658 +610000 ekin = 21.0077312853339 | erot = 24.5390976123487 | epot = -208.423455376914 | etot = -162.876626479231 +611000 ekin = 21.2062750244278 | erot = 25.6924763445408 | epot = -208.465273559828 | etot = -161.566522190859 +612000 ekin = 21.1092285061772 | erot = 23.1681846181344 | epot = -208.369973333871 | etot = -164.09256020956 +613000 ekin = 21.3505829699377 | erot = 23.3795515105117 | epot = -208.252217187376 | etot = -163.522082706926 +614000 ekin = 21.9887200992592 | erot = 22.9814942014575 | epot = -208.08425451512 | etot = -163.114040214403 +615000 ekin = 21.9879302481981 | erot = 23.9474635145876 | epot = -208.112157339249 | etot = -162.176763576463 +616000 ekin = 21.6535652813721 | erot = 25.7665709398204 | epot = -208.073996342823 | etot = -160.653860121631 +617000 ekin = 21.5327802980097 | erot = 25.9126271147335 | epot = -208.081562756535 | etot = -160.636155343791 +618000 ekin = 21.6331060335065 | erot = 25.3216229154819 | epot = -208.118612594362 | etot = -161.163883645373 +619000 ekin = 21.5377257980259 | erot = 24.0810842352126 | epot = -208.182453990811 | etot = -162.563643957572 +620000 ekin = 22.2944761843434 | erot = 26.8961911381653 | epot = -208.572090943205 | etot = -159.381423620697 +621000 ekin = 23.2275714627294 | erot = 28.5194568041071 | epot = -209.005121904323 | etot = -157.258093637486 +622000 ekin = 23.8057112362969 | erot = 28.1725382958721 | epot = -209.310919824284 | etot = -157.332670292115 +623000 ekin = 23.836200160347 | erot = 27.2782572535261 | epot = -209.480204064921 | etot = -158.365746651048 +624000 ekin = 23.5225747889065 | erot = 27.5958156421042 | epot = -209.446824879225 | etot = -158.328434448214 +625000 ekin = 23.3180565211004 | erot = 27.7299743553773 | epot = -209.243975503887 | etot = -158.195944627409 +626000 ekin = 23.6186803255339 | erot = 26.3585577647064 | epot = -208.833123041292 | etot = -158.855884951052 +627000 ekin = 23.7020468224909 | erot = 24.8473737782309 | epot = -208.363264541316 | etot = -159.813843940594 +628000 ekin = 23.234214910991 | erot = 23.6981867115843 | epot = -207.745309999887 | etot = -160.812908377311 +629000 ekin = 22.4918100586061 | erot = 24.881640940065 | epot = -207.051343604772 | etot = -159.677892606101 +630000 ekin = 22.1453629035581 | erot = 20.2998733728557 | epot = -206.39001968886 | etot = -163.944783412446 +631000 ekin = 22.7036826399466 | erot = 18.9834012990071 | epot = -205.753133262548 | etot = -164.066049323594 +632000 ekin = 23.0551963097502 | erot = 19.1201804696073 | epot = -205.05968682992 | etot = -162.884310050562 +633000 ekin = 22.747707004055 | erot = 20.2298517397387 | epot = -204.679628820142 | etot = -161.702070076348 +634000 ekin = 22.1372732618932 | erot = 20.0792269586333 | epot = -204.542150052713 | etot = -162.325649832186 +635000 ekin = 21.9900639375166 | erot = 23.0915091625923 | epot = -204.519806168891 | etot = -159.438233068782 +636000 ekin = 22.4343890150495 | erot = 22.7785270631131 | epot = -204.773050210983 | etot = -159.560134132821 +637000 ekin = 22.4930206180041 | erot = 21.8914552071171 | epot = -205.185291613209 | etot = -160.800815788088 +638000 ekin = 22.6067746447143 | erot = 22.2834374488441 | epot = -205.831736530974 | etot = -160.941524437416 +639000 ekin = 22.9634779459864 | erot = 21.0233006007606 | epot = -206.678000527936 | etot = -162.691221981189 +640000 ekin = 23.0006770449898 | erot = 20.1435647319737 | epot = -207.67418045306 | etot = -164.529938676097 +641000 ekin = 22.6796709156744 | erot = 20.1265770944198 | epot = -208.864068916451 | etot = -166.057820906357 +642000 ekin = 23.0426441097264 | erot = 20.3821125283994 | epot = -210.157224630151 | etot = -166.732467992025 +643000 ekin = 23.6886630072442 | erot = 20.9311429904711 | epot = -211.335279277866 | etot = -166.715473280151 +644000 ekin = 23.3501873913686 | erot = 20.2116989369836 | epot = -212.405134347394 | etot = -168.843248019042 +645000 ekin = 24.214183792306 | erot = 19.1997084892897 | epot = -213.275734343161 | etot = -169.861842061566 +646000 ekin = 24.0032353748067 | erot = 18.7366869191874 | epot = -214.020930167623 | etot = -171.281007873629 +647000 ekin = 24.8268141920476 | erot = 20.0966967362663 | epot = -214.740433438135 | etot = -169.816922509822 +648000 ekin = 24.8649186744143 | erot = 20.9050241858578 | epot = -215.442059068409 | etot = -169.672116208136 +649000 ekin = 24.8646057578191 | erot = 21.521791933497 | epot = -216.156866604821 | etot = -169.770468913505 +650000 ekin = 24.0713138258436 | erot = 22.6881112054577 | epot = -216.962642193737 | etot = -170.203217162436 +651000 ekin = 24.0648474956462 | erot = 21.9056553318526 | epot = -217.68682151817 | etot = -171.716318690672 +652000 ekin = 23.7298725103662 | erot = 21.0498830137315 | epot = -218.178357024535 | etot = -173.398601500437 +653000 ekin = 24.2612309905982 | erot = 20.9396425318005 | epot = -218.402996619013 | etot = -173.202123096615 +654000 ekin = 24.5742837739783 | erot = 21.5842057775824 | epot = -218.453825537757 | etot = -172.295335986196 +655000 ekin = 24.8172949648637 | erot = 21.5633790150742 | epot = -218.138128805473 | etot = -171.757454825535 +656000 ekin = 26.1016118595101 | erot = 20.2089399346234 | epot = -217.608120203544 | etot = -171.29756840941 +657000 ekin = 25.5468936086447 | erot = 20.5700758336473 | epot = -216.896383096438 | etot = -170.779413654146 +658000 ekin = 24.8009166899182 | erot = 20.3492391925765 | epot = -215.907642384675 | etot = -170.75748650218 +659000 ekin = 24.2700519127878 | erot = 19.3880786744432 | epot = -214.779591604614 | etot = -171.121461017383 +660000 ekin = 23.7386557662651 | erot = 17.3667145566108 | epot = -213.671617228208 | etot = -172.566246905332 +661000 ekin = 23.101615905894 | erot = 18.0746065237967 | epot = -212.813170220349 | etot = -171.636947790658 +662000 ekin = 23.5132942257758 | erot = 19.3913290878883 | epot = -212.178312398575 | etot = -169.27368908491 +663000 ekin = 22.8490848881554 | erot = 22.3558454667425 | epot = -211.708233502208 | etot = -166.50330314731 +664000 ekin = 22.5371891975751 | erot = 23.8324410238751 | epot = -211.630305812256 | etot = -165.260675590806 +665000 ekin = 22.4828402581824 | erot = 22.1418709319913 | epot = -211.932335178627 | etot = -167.307623988453 +666000 ekin = 21.658575574868 | erot = 23.2685049016563 | epot = -212.34419719029 | etot = -167.417116713765 +667000 ekin = 21.746716005369 | erot = 26.6231378444392 | epot = -212.869195610415 | etot = -164.499341760607 +668000 ekin = 21.8400234731699 | erot = 27.0215900877162 | epot = -213.230575394842 | etot = -164.368961833956 +669000 ekin = 21.5717180264524 | erot = 25.4843097358269 | epot = -213.402729296273 | etot = -166.346701533994 +670000 ekin = 21.2159612264746 | erot = 27.0486352599825 | epot = -213.623541173123 | etot = -165.358944686665 +671000 ekin = 21.0316750378212 | erot = 28.2790369826503 | epot = -213.670944628475 | etot = -164.360232608003 +672000 ekin = 21.0540110477226 | erot = 27.9477049264318 | epot = -213.821833683391 | etot = -164.820117709236 +673000 ekin = 20.622467197854 | erot = 31.8631428606973 | epot = -214.143301465583 | etot = -161.657691407032 +674000 ekin = 19.7399937911566 | erot = 31.3007461152899 | epot = -214.328096065417 | etot = -163.287356158971 +675000 ekin = 19.6812168375245 | erot = 28.9841135234018 | epot = -214.58757301913 | etot = -165.922242658204 +676000 ekin = 20.2683648931208 | erot = 29.0544957444103 | epot = -214.986567261058 | etot = -165.663706623527 +677000 ekin = 20.4847241494001 | erot = 27.1326629448698 | epot = -215.500686522809 | etot = -167.88329942854 +678000 ekin = 21.302019725926 | erot = 26.9440120099185 | epot = -215.97832097774 | etot = -167.732289241896 +679000 ekin = 20.7252183388119 | erot = 27.5800790128446 | epot = -216.242490346929 | etot = -167.937192995272 +680000 ekin = 21.1467020674332 | erot = 27.5476121215625 | epot = -216.37538065002 | etot = -167.681066461025 +681000 ekin = 20.7720273332215 | erot = 27.1624962363794 | epot = -216.426580638711 | etot = -168.49205706911 +682000 ekin = 20.4708699436742 | erot = 26.3358564577069 | epot = -216.448305176171 | etot = -169.64157877479 +683000 ekin = 19.8000088900235 | erot = 27.4272282812591 | epot = -216.207270658414 | etot = -168.980033487131 +684000 ekin = 20.1500542970064 | erot = 26.0761853873505 | epot = -215.864502199571 | etot = -169.638262515214 +685000 ekin = 19.8486865740984 | erot = 26.0238267262043 | epot = -215.500516760578 | etot = -169.628003460275 +686000 ekin = 19.7513338939334 | erot = 25.3757647595747 | epot = -215.210189827277 | etot = -170.083091173769 +687000 ekin = 20.7214918102431 | erot = 24.1072372944022 | epot = -214.967239797801 | etot = -170.138510693156 +688000 ekin = 21.0626981869003 | erot = 23.2762891547382 | epot = -214.979397567732 | etot = -170.640410226093 +689000 ekin = 21.5266424344628 | erot = 20.7174231605385 | epot = -215.094101507179 | etot = -172.850035912178 +690000 ekin = 22.5491523723621 | erot = 20.847571984209 | epot = -214.986970380787 | etot = -171.590246024216 +691000 ekin = 23.8583355308872 | erot = 22.0099769027697 | epot = -214.848454555845 | etot = -168.980142122188 +692000 ekin = 24.96520872453 | erot = 21.4857106199454 | epot = -214.494800129558 | etot = -168.043880785083 +693000 ekin = 26.0051918382276 | erot = 21.3733007404598 | epot = -214.001727781338 | etot = -166.623235202651 +694000 ekin = 26.4392720652869 | erot = 21.3317762759646 | epot = -213.263998412814 | etot = -165.492950071562 +695000 ekin = 27.3615193041949 | erot = 20.6921753134717 | epot = -212.356901954365 | etot = -164.303207336699 +696000 ekin = 27.3093057978157 | erot = 20.0965375265573 | epot = -211.297735908804 | etot = -163.891892584431 +697000 ekin = 26.7453316152447 | erot = 18.7856987042669 | epot = -210.110607673786 | etot = -164.579577354274 +698000 ekin = 25.5722707624857 | erot = 19.6853079921957 | epot = -209.125608153436 | etot = -163.868029398755 +699000 ekin = 24.9916657277841 | erot = 18.4661630806181 | epot = -208.42973768859 | etot = -164.971908880188 +700000 ekin = 24.521058485274 | erot = 16.84944737211 | epot = -207.9193858017 | etot = -166.548879944316 +701000 ekin = 23.7778912460905 | erot = 19.3168143286452 | epot = -207.673622403358 | etot = -164.578916828622 +702000 ekin = 23.4418540405128 | erot = 17.9399262410738 | epot = -207.631679946816 | etot = -166.24989966523 +703000 ekin = 22.5362735605758 | erot = 16.8799469700555 | epot = -207.655410737567 | etot = -168.239190206935 +704000 ekin = 21.6771800595091 | erot = 17.1833672937461 | epot = -207.854126531408 | etot = -168.993579178153 +705000 ekin = 21.4420921851221 | erot = 20.8433776157946 | epot = -208.2214030325 | etot = -165.935933231584 +706000 ekin = 21.2415323522356 | erot = 21.0841388634033 | epot = -208.785212184223 | etot = -166.459540968584 +707000 ekin = 21.1211180279557 | erot = 22.7053094579755 | epot = -209.418467814605 | etot = -165.592040328673 +708000 ekin = 21.4313901815259 | erot = 21.142901789246 | epot = -210.045555019851 | etot = -167.471263049079 +709000 ekin = 21.1002753292038 | erot = 22.8489798007674 | epot = -210.826178475879 | etot = -166.876923345908 +710000 ekin = 21.8422173465255 | erot = 20.0932738292303 | epot = -211.532469955408 | etot = -169.596978779652 +711000 ekin = 22.1026708164741 | erot = 22.4726045475365 | epot = -212.126194080497 | etot = -167.550918716487 +712000 ekin = 22.4258695027194 | erot = 21.442958222841 | epot = -212.558458286709 | etot = -168.689630561149 +713000 ekin = 22.5222749624208 | erot = 20.3898387031543 | epot = -212.978786634482 | etot = -170.066672968907 +714000 ekin = 22.1262254185207 | erot = 21.2706738146545 | epot = -213.406504414377 | etot = -170.009605181201 +715000 ekin = 21.6589564668707 | erot = 22.8713228305269 | epot = -214.103705031576 | etot = -169.573425734178 +716000 ekin = 22.8499377351371 | erot = 22.5811259198023 | epot = -214.886932195704 | etot = -169.455868540765 +717000 ekin = 23.1453273466383 | erot = 22.0823648529859 | epot = -215.752901424345 | etot = -170.52520922472 +718000 ekin = 23.4911204712306 | erot = 21.8266696386258 | epot = -216.797611238792 | etot = -171.479821128935 +719000 ekin = 23.5427559868846 | erot = 20.6352185380146 | epot = -217.868984095443 | etot = -173.691009570544 +720000 ekin = 24.6730711390776 | erot = 21.7437690143765 | epot = -218.925770671597 | etot = -172.508930518143 +721000 ekin = 25.2403931355773 | erot = 19.4577236844891 | epot = -219.945055136347 | etot = -175.246938316281 +722000 ekin = 25.7389977817124 | erot = 21.6950149985872 | epot = -220.731451014357 | etot = -173.297438234057 +723000 ekin = 24.59999507444 | erot = 24.4179337524363 | epot = -221.359631454453 | etot = -172.341702627577 +724000 ekin = 23.8141214256889 | erot = 25.3193356469838 | epot = -221.823580154673 | etot = -172.690123082 +725000 ekin = 23.3651337491413 | erot = 28.7091491551534 | epot = -222.090867886168 | etot = -170.016584981873 +726000 ekin = 23.1307089149661 | erot = 29.7953383527835 | epot = -222.003607909333 | etot = -169.077560641584 +727000 ekin = 22.6496655720656 | erot = 29.2473418500935 | epot = -221.635062275438 | etot = -169.738054853278 +728000 ekin = 21.811364434554 | erot = 31.7331322577198 | epot = -221.154414993919 | etot = -167.609918301645 +729000 ekin = 20.4746743669592 | erot = 32.546576149833 | epot = -220.690887684563 | etot = -167.669637167771 +730000 ekin = 19.8147243806315 | erot = 34.9007244000495 | epot = -220.114078177837 | etot = -165.398629397156 +731000 ekin = 18.6145766929913 | erot = 34.0320241969118 | epot = -219.536330230485 | etot = -166.889729340582 +732000 ekin = 17.8112285881693 | erot = 34.0479803252401 | epot = -218.968869737311 | etot = -167.109660823901 +733000 ekin = 17.6476056471454 | erot = 34.2057929926945 | epot = -218.3294527504 | etot = -166.47605411056 +734000 ekin = 17.7690619853332 | erot = 32.1417337283976 | epot = -217.520065128183 | etot = -167.609269414452 +735000 ekin = 17.0579199291445 | erot = 30.2470102548337 | epot = -216.550373483739 | etot = -169.245443299761 +736000 ekin = 17.5498866135578 | erot = 29.3166528563917 | epot = -215.643405297165 | etot = -168.776865827216 +737000 ekin = 17.6187796043555 | erot = 26.3475349686048 | epot = -214.809218139055 | etot = -170.842903566094 +738000 ekin = 18.2269608592319 | erot = 25.7040359881548 | epot = -214.115591404826 | etot = -170.18459455744 +739000 ekin = 18.7173977512819 | erot = 24.4619685419347 | epot = -213.441484725329 | etot = -170.262118432112 +740000 ekin = 19.0110962436152 | erot = 22.142772803043 | epot = -212.815607635912 | etot = -171.661738589254 +741000 ekin = 18.9267028320974 | erot = 21.3358168112262 | epot = -212.366636079153 | etot = -172.104116435829 +742000 ekin = 19.3549116475726 | erot = 19.5096408469649 | epot = -212.216543882057 | etot = -173.35199138752 +743000 ekin = 20.119013306821 | erot = 18.4104477349336 | epot = -212.288606698492 | etot = -173.759145656738 +744000 ekin = 20.3566526518901 | erot = 19.4246888199086 | epot = -212.75389749051 | etot = -172.972556018711 +745000 ekin = 21.1509415657888 | erot = 20.1659043839807 | epot = -213.418747745429 | etot = -172.10190179566 +746000 ekin = 21.3037423527627 | erot = 20.2172486917649 | epot = -214.157876553476 | etot = -172.636885508949 +747000 ekin = 22.3146611040097 | erot = 21.9871375259789 | epot = -214.88232405197 | etot = -170.580525421981 +748000 ekin = 22.2283253425591 | erot = 22.5065193409822 | epot = -215.506784482801 | etot = -170.77193979926 +749000 ekin = 21.7915806164301 | erot = 22.1396569978617 | epot = -215.707286574207 | etot = -171.776048959915 +750000 ekin = 22.4607758902159 | erot = 23.0482930283985 | epot = -215.651390580345 | etot = -170.142321661731 +751000 ekin = 21.6437369626355 | erot = 20.9291810842114 | epot = -215.338251046595 | etot = -172.765332999748 +752000 ekin = 21.0774801700924 | erot = 19.7791759941412 | epot = -214.933012142375 | etot = -174.076355978141 +753000 ekin = 20.2142777715798 | erot = 19.9156489858756 | epot = -214.515836213762 | etot = -174.385909456307 +754000 ekin = 20.550710880581 | erot = 21.7521689158874 | epot = -214.220858046315 | etot = -171.917978249847 +755000 ekin = 20.4661806652476 | erot = 22.5423956641592 | epot = -214.061716510521 | etot = -171.053140181114 +756000 ekin = 20.9954844614009 | erot = 22.4473939364008 | epot = -213.92503672056 | etot = -170.482158322758 +757000 ekin = 20.6283594838306 | erot = 21.4270437425632 | epot = -213.790125131555 | etot = -171.734721905161 +758000 ekin = 20.5508018897077 | erot = 20.9536901677692 | epot = -213.663158456533 | etot = -172.158666399056 +759000 ekin = 19.6263241751684 | erot = 23.4476640487024 | epot = -213.66383402851 | etot = -170.589845804639 +760000 ekin = 19.9340259748652 | erot = 22.6482020561595 | epot = -213.71724602475 | etot = -171.135017993725 +761000 ekin = 19.6910494084164 | erot = 22.0029116902266 | epot = -213.754878089614 | etot = -172.060916990971 +762000 ekin = 19.7910800016039 | erot = 22.5984804286307 | epot = -213.965250022108 | etot = -171.575689591873 +763000 ekin = 20.5238796096632 | erot = 22.2928877563363 | epot = -214.47551076934 | etot = -171.658743403341 +764000 ekin = 20.6650033448462 | erot = 24.6171910330824 | epot = -214.890202898626 | etot = -169.608008520698 +765000 ekin = 20.4618665382424 | erot = 25.8587140484164 | epot = -215.138274656898 | etot = -168.817694070239 +766000 ekin = 19.6548882123823 | erot = 25.0439293422707 | epot = -215.348875696047 | etot = -170.650058141394 +767000 ekin = 19.3270400363748 | erot = 25.2554744973183 | epot = -215.248876217743 | etot = -170.66636168405 +768000 ekin = 18.5163875301612 | erot = 26.9740801270243 | epot = -214.975549734016 | etot = -169.485082076831 +769000 ekin = 19.2689096458285 | erot = 26.7549801973199 | epot = -214.627183257247 | etot = -168.603293414099 +770000 ekin = 20.3065357099473 | erot = 24.5864981815754 | epot = -214.449155022355 | etot = -169.556121130832 +771000 ekin = 19.8160989352992 | erot = 24.3795653656177 | epot = -214.568609385595 | etot = -170.372945084678 +772000 ekin = 20.0808636272602 | erot = 25.3489458930141 | epot = -214.810149634203 | etot = -169.380340113928 +773000 ekin = 20.4572934790689 | erot = 23.9373155006916 | epot = -215.368798012186 | etot = -170.974189032425 +774000 ekin = 21.4581254177255 | erot = 24.8038079049394 | epot = -216.135566629648 | etot = -169.873633306983 +775000 ekin = 21.56609423293 | erot = 24.7269407163978 | epot = -217.095913678146 | etot = -170.802878728818 +776000 ekin = 21.7139623963331 | erot = 24.678564784346 | epot = -217.949762418936 | etot = -171.557235238257 +777000 ekin = 22.1382470902253 | erot = 26.3515368343078 | epot = -218.812121008321 | etot = -170.322337083788 +778000 ekin = 22.6753074399956 | erot = 26.7132834273965 | epot = -219.665211222619 | etot = -170.276620355226 +779000 ekin = 23.2722008637946 | erot = 25.1496800354838 | epot = -220.353105007404 | etot = -171.931224108126 +780000 ekin = 23.0129926689262 | erot = 23.0916850844916 | epot = -220.994134927724 | etot = -174.889457174306 +781000 ekin = 23.786429669784 | erot = 25.1844301582418 | epot = -221.387914121756 | etot = -172.41705429373 +782000 ekin = 23.5606686383571 | erot = 26.3634060367889 | epot = -221.434267464486 | etot = -171.51019278934 +783000 ekin = 24.0155758037646 | erot = 26.6670282787156 | epot = -221.227091913094 | etot = -170.544487830613 +784000 ekin = 24.0357990642713 | erot = 25.6617687084465 | epot = -220.907876114701 | etot = -171.210308341983 +785000 ekin = 24.5524506997925 | erot = 24.7676360875449 | epot = -220.413360888571 | etot = -171.093274101234 +786000 ekin = 24.4055025806397 | erot = 24.6030636477925 | epot = -219.720284916293 | etot = -170.711718687861 +787000 ekin = 25.0410360300686 | erot = 22.998359933619 | epot = -218.996593162027 | etot = -170.95719719834 +788000 ekin = 24.767877979881 | erot = 21.7923381425487 | epot = -218.352848534383 | etot = -171.792632411953 +789000 ekin = 24.8408040750631 | erot = 24.1208833257935 | epot = -217.830352648894 | etot = -168.868665248037 +790000 ekin = 24.4896562826161 | erot = 23.8855568181502 | epot = -217.476066337486 | etot = -169.10085323672 +791000 ekin = 24.295800420788 | erot = 22.2236025604802 | epot = -217.181373280855 | etot = -170.661970299587 +792000 ekin = 23.8380813001559 | erot = 20.6465905204417 | epot = -216.979132071427 | etot = -172.494460250829 +793000 ekin = 23.4376405312798 | erot = 22.3758695226247 | epot = -217.013967781529 | etot = -171.200457727625 +794000 ekin = 23.6651564360299 | erot = 24.5594365423356 | epot = -217.322425543396 | etot = -169.097832565031 +795000 ekin = 24.2246572084756 | erot = 24.523759714456 | epot = -217.532287869643 | etot = -168.783870946711 +796000 ekin = 24.0060240578042 | erot = 25.0471365078935 | epot = -217.591289135025 | etot = -168.538128569328 +797000 ekin = 24.6806226103091 | erot = 24.5153114750642 | epot = -217.396581247709 | etot = -168.200647162335 +798000 ekin = 23.743570188968 | erot = 26.0446750366824 | epot = -217.042257715778 | etot = -167.254012490128 +799000 ekin = 23.6918256055875 | erot = 25.3998427121517 | epot = -216.430832155802 | etot = -167.339163838063 +800000 ekin = 23.9795390809841 | erot = 26.2050804883332 | epot = -215.909334288757 | etot = -165.724714719439 +801000 ekin = 22.9818713498596 | erot = 26.0822510026421 | epot = -215.192675863883 | etot = -166.128553511382 +802000 ekin = 22.6987202252713 | erot = 24.4605697174941 | epot = -214.288341115587 | etot = -167.129051172822 +803000 ekin = 22.5973595447689 | erot = 25.0746177868642 | epot = -213.399668666611 | etot = -165.727691334978 +804000 ekin = 22.5679051171115 | erot = 23.8929873743116 | epot = -212.445166364649 | etot = -165.984273873226 +805000 ekin = 23.9825063136489 | erot = 23.4605910900564 | epot = -211.763911653385 | etot = -164.32081424968 +806000 ekin = 23.7122851358872 | erot = 24.3242427199374 | epot = -211.391629930493 | etot = -163.355102074668 +807000 ekin = 24.334807708307 | erot = 25.0191489745547 | epot = -211.002022647805 | etot = -161.648065964944 +808000 ekin = 23.5785338219753 | erot = 25.682978373141 | epot = -210.682430009381 | etot = -161.420917814264 +809000 ekin = 23.2672257998437 | erot = 23.7727702775216 | epot = -210.482421836394 | etot = -163.442425759029 +810000 ekin = 23.2973748071818 | erot = 24.561611045747 | epot = -210.255015349723 | etot = -162.396029496794 +811000 ekin = 24.0082703459793 | erot = 24.8986235898251 | epot = -210.100128510354 | etot = -161.19323457455 +812000 ekin = 23.5717850105925 | erot = 22.2118475566537 | epot = -210.079952231166 | etot = -164.29631966392 +813000 ekin = 23.8144414957769 | erot = 23.7648492562902 | epot = -210.006754772319 | etot = -162.427464020252 +814000 ekin = 23.3465977086067 | erot = 23.58039301019 | epot = -210.26830643344 | etot = -163.341315714643 +815000 ekin = 23.7706537845421 | erot = 23.6859516971766 | epot = -210.69986675248 | etot = -163.243261270761 +816000 ekin = 24.4396723738333 | erot = 20.7642731167639 | epot = -211.197880702624 | etot = -165.993935212026 +817000 ekin = 24.5050242640549 | erot = 20.1975149970127 | epot = -211.716456063282 | etot = -167.013916802214 +818000 ekin = 24.6467770699857 | erot = 21.529583415028 | epot = -212.178224182293 | etot = -166.001863697279 +819000 ekin = 23.9362784569689 | erot = 21.885485913296 | epot = -212.7074517228 | etot = -166.885687352535 +820000 ekin = 23.8925161494513 | erot = 21.7993180032808 | epot = -213.102576947411 | etot = -167.410742794679 +821000 ekin = 24.2038142478228 | erot = 22.9479343465945 | epot = -213.713003298829 | etot = -166.561254704412 +822000 ekin = 24.9372292708339 | erot = 23.3111003411094 | epot = -214.446490633768 | etot = -166.198161021825 +823000 ekin = 24.9810184744614 | erot = 19.3880692104392 | epot = -215.313873180455 | etot = -170.944785495554 +824000 ekin = 25.3757196310442 | erot = 19.1383506800577 | epot = -216.195322093276 | etot = -171.681251782174 +825000 ekin = 25.7714493929878 | erot = 20.7852688563227 | epot = -217.289068840725 | etot = -170.732350591415 +826000 ekin = 26.8493153910039 | erot = 21.6412827777179 | epot = -218.435288959846 | etot = -169.944690791124 +827000 ekin = 27.3839801920855 | erot = 21.4692964838888 | epot = -219.392426378877 | etot = -170.539149702903 +828000 ekin = 27.229680724747 | erot = 19.6329742054381 | epot = -220.273927299677 | etot = -173.411272369491 +829000 ekin = 28.1128884812802 | erot = 20.9502927197495 | epot = -221.21471082526 | etot = -172.15152962423 +830000 ekin = 28.8435364019276 | erot = 21.7826449636337 | epot = -222.278080486409 | etot = -171.651899120847 +831000 ekin = 28.382403945525 | erot = 21.9470916756457 | epot = -223.209359588942 | etot = -172.879863967771 +832000 ekin = 29.2687628401495 | erot = 20.5210693984925 | epot = -223.940697765464 | etot = -174.150865526822 +833000 ekin = 29.8001169918452 | erot = 19.1336112091991 | epot = -224.577996191363 | etot = -175.644267990319 +834000 ekin = 29.988952353328 | erot = 18.4370859277507 | epot = -225.027611469757 | etot = -176.601573188678 +835000 ekin = 31.1943711572552 | erot = 19.9395820078326 | epot = -225.505582228924 | etot = -174.371629063836 +836000 ekin = 31.4486064464243 | erot = 18.8230392617263 | epot = -225.897370125356 | etot = -175.625724417205 +837000 ekin = 30.897968105625 | erot = 17.525936203234 | epot = -226.014420243358 | etot = -177.590515934499 +838000 ekin = 30.3278609246781 | erot = 17.8376744101104 | epot = -225.874910017182 | etot = -177.709374682393 +839000 ekin = 28.5705963055734 | erot = 19.0197374605662 | epot = -225.567956855126 | etot = -177.977623088986 +840000 ekin = 27.8420547779393 | erot = 20.3181282989612 | epot = -225.084398799451 | etot = -176.924215722551 +841000 ekin = 26.578531878898 | erot = 18.291693309889 | epot = -224.600684647618 | etot = -179.730459458831 +842000 ekin = 25.021856816298 | erot = 17.0225406378546 | epot = -224.142254239588 | etot = -182.097856785436 +843000 ekin = 23.9095699919698 | erot = 15.4704933701473 | epot = -223.646706047482 | etot = -184.266642685364 +844000 ekin = 22.5803633860571 | erot = 15.9225454375333 | epot = -223.270602971588 | etot = -184.767694147998 +845000 ekin = 22.8380208177356 | erot = 16.9518494619353 | epot = -223.143196252822 | etot = -183.353325973152 +846000 ekin = 22.6092342503318 | erot = 19.1522264883275 | epot = -223.294605543864 | etot = -181.533144805205 +847000 ekin = 22.8438035235789 | erot = 20.5201034436593 | epot = -223.473679851918 | etot = -180.10977288468 +848000 ekin = 24.096705623773 | erot = 23.2844333976006 | epot = -223.639763222442 | etot = -176.258624201068 +849000 ekin = 23.4884021207942 | erot = 25.3929694182074 | epot = -223.896170953652 | etot = -175.01479941465 +850000 ekin = 22.6242009333951 | erot = 26.9404543040126 | epot = -224.252836199893 | etot = -174.688180962486 +851000 ekin = 22.462800324761 | erot = 26.1722746584294 | epot = -224.607456254157 | etot = -175.972381270966 +852000 ekin = 22.9338232909787 | erot = 26.8967348092924 | epot = -224.962026374242 | etot = -175.131468273971 +853000 ekin = 23.5089803042907 | erot = 26.2817254800077 | epot = -225.253808794644 | etot = -175.463103010346 +854000 ekin = 23.4667891668536 | erot = 26.9521294085684 | epot = -225.450940504292 | etot = -175.03202192887 +855000 ekin = 22.8308419775732 | erot = 26.0448263395011 | epot = -225.58818928127 | etot = -176.712520964196 +856000 ekin = 22.8838807708131 | erot = 28.3173269449285 | epot = -225.61075714919 | etot = -174.409549433448 +857000 ekin = 23.1624988447929 | erot = 28.1731020031475 | epot = -225.539880019331 | etot = -174.204279171391 +858000 ekin = 23.010544463387 | erot = 27.4142307819788 | epot = -225.412270604551 | etot = -174.987495359185 +859000 ekin = 22.7753414049503 | erot = 27.6211492713748 | epot = -225.124163927943 | etot = -174.727673251618 +860000 ekin = 23.2703861283527 | erot = 24.9426356523561 | epot = -224.786259608365 | etot = -176.573237827656 +861000 ekin = 23.7729389676944 | erot = 24.8447311566921 | epot = -224.563551923108 | etot = -175.945881798722 +862000 ekin = 23.5340740192712 | erot = 24.4915624205987 | epot = -224.357805969819 | etot = -176.332169529949 +863000 ekin = 23.7375308575266 | erot = 24.2323944373344 | epot = -224.144044493851 | etot = -176.17411919899 +864000 ekin = 23.3716941352973 | erot = 22.3641269665702 | epot = -223.879914649663 | etot = -178.144093547796 +865000 ekin = 23.1186430050472 | erot = 22.7161380633252 | epot = -223.612787576836 | etot = -177.778006508463 +866000 ekin = 22.0842043208688 | erot = 24.9778691380164 | epot = -223.307430080952 | etot = -176.245356622066 +867000 ekin = 21.1657335889336 | erot = 26.0383220824095 | epot = -223.101208746092 | etot = -175.897153074749 +868000 ekin = 20.7974073535693 | erot = 26.8327425921659 | epot = -222.794942007792 | etot = -175.164792062057 +869000 ekin = 20.4042118249737 | erot = 27.1429100482463 | epot = -222.436116261228 | etot = -174.888994388008 +870000 ekin = 20.1957141053955 | erot = 25.7366487329437 | epot = -221.955207275389 | etot = -176.02284443705 +871000 ekin = 20.2123557957261 | erot = 25.1939802920791 | epot = -221.256690821026 | etot = -175.850354733221 +872000 ekin = 20.4032419950175 | erot = 25.4624355027898 | epot = -220.516968111741 | etot = -174.651290613934 +873000 ekin = 19.7555498360178 | erot = 24.5861053407173 | epot = -219.769573418505 | etot = -175.42791824177 +874000 ekin = 18.6683455164676 | erot = 24.6077624002317 | epot = -219.119875205566 | etot = -175.843767288867 +875000 ekin = 18.1744504561662 | erot = 24.6987338548905 | epot = -218.47231102186 | etot = -175.599126710803 +876000 ekin = 18.4401297958598 | erot = 25.8115012454218 | epot = -217.9495809478 | etot = -173.697949906518 +877000 ekin = 17.664381190264 | erot = 26.0938124408268 | epot = -217.613305746208 | etot = -173.855112115117 +878000 ekin = 17.5155425895501 | erot = 26.1251978929977 | epot = -217.353846093228 | etot = -173.71310561068 +879000 ekin = 18.0158870329902 | erot = 22.9229967356032 | epot = -217.142818533763 | etot = -176.20393476517 +880000 ekin = 18.2898091775908 | erot = 21.9678230763756 | epot = -216.947884971478 | etot = -176.690252717512 +881000 ekin = 18.2557212304153 | erot = 20.7986777914948 | epot = -216.867472880906 | etot = -177.813073858995 +882000 ekin = 18.6882799858829 | erot = 22.2873864360058 | epot = -217.05073780239 | etot = -176.075071380501 +883000 ekin = 18.9334632698957 | erot = 21.3254259967097 | epot = -217.335733022766 | etot = -177.076843756161 +884000 ekin = 19.7058560972579 | erot = 20.8095031819962 | epot = -217.759932525085 | etot = -177.244573245831 +885000 ekin = 20.2112631550784 | erot = 19.5575411920434 | epot = -218.268786439491 | etot = -178.49998209237 +886000 ekin = 20.7002616226387 | erot = 19.310776902867 | epot = -218.766008187746 | etot = -178.75496966224 +887000 ekin = 21.556043787289 | erot = 18.6474685520941 | epot = -219.158663992651 | etot = -178.955151653268 +888000 ekin = 21.3334930006689 | erot = 20.4856021155481 | epot = -219.579651710559 | etot = -177.760556594342 +889000 ekin = 22.171697390566 | erot = 20.6166150577233 | epot = -220.153325957315 | etot = -177.365013509026 +890000 ekin = 22.2345451037052 | erot = 21.2895106408631 | epot = -220.540453919156 | etot = -177.016398174588 +891000 ekin = 22.2608122330327 | erot = 20.1682134340203 | epot = -220.830256027334 | etot = -178.401230360281 +892000 ekin = 22.2667041004928 | erot = 21.1835211310339 | epot = -220.974423299556 | etot = -177.52419806803 +893000 ekin = 22.8785998921146 | erot = 22.2656591807102 | epot = -220.854501706686 | etot = -175.710242633862 +894000 ekin = 22.7070083180718 | erot = 20.7443672875634 | epot = -220.57293320363 | etot = -177.121557597995 +895000 ekin = 22.4994314958752 | erot = 20.2750367527769 | epot = -220.21529694266 | etot = -177.440828694008 +896000 ekin = 22.6862504668757 | erot = 21.9474616043293 | epot = -219.676966141549 | etot = -175.043254070344 +897000 ekin = 22.4101657769622 | erot = 20.2849313539379 | epot = -218.954521501181 | etot = -176.259424370281 +898000 ekin = 22.6067604772945 | erot = 22.1361684291271 | epot = -218.088311088299 | etot = -173.345382181877 +899000 ekin = 22.6002362519927 | erot = 22.9443785260411 | epot = -217.224223257415 | etot = -171.679608479382 +900000 ekin = 22.2271969756017 | erot = 21.2795539705332 | epot = -216.378348455151 | etot = -172.871597509016 +901000 ekin = 22.049601241704 | erot = 19.6983125737511 | epot = -215.642075676261 | etot = -173.894161860806 +902000 ekin = 21.5373973946795 | erot = 20.0636413054755 | epot = -215.059151442717 | etot = -173.458112742562 +903000 ekin = 21.3273338630826 | erot = 20.6238147912146 | epot = -214.498710762212 | etot = -172.547562107915 +904000 ekin = 21.0822000097366 | erot = 21.2140090803987 | epot = -214.106117024932 | etot = -171.809907934796 +905000 ekin = 20.688573504515 | erot = 23.6425315011056 | epot = -213.989802974573 | etot = -169.658697968952 +906000 ekin = 20.8777040514165 | erot = 22.1389592583989 | epot = -213.961705252052 | etot = -170.945041942237 +907000 ekin = 21.5380348777401 | erot = 20.2343470856017 | epot = -214.064513257377 | etot = -172.292131294036 +908000 ekin = 20.9274847289174 | erot = 22.9159415344444 | epot = -214.205523604128 | etot = -170.362097340766 +909000 ekin = 20.7056821583171 | erot = 23.1534436178424 | epot = -214.128940350364 | etot = -170.269814574204 +910000 ekin = 20.6850690694788 | erot = 21.783469726861 | epot = -213.91187960968 | etot = -171.44334081334 +911000 ekin = 20.4049026492844 | erot = 24.4277842653814 | epot = -213.485163443353 | etot = -168.652476528687 +912000 ekin = 20.6124368604298 | erot = 25.2278717850118 | epot = -212.994133996415 | etot = -167.153825350974 +913000 ekin = 20.3761012114308 | erot = 24.7723910910313 | epot = -212.657154422535 | etot = -167.508662120073 +914000 ekin = 19.8968997426853 | erot = 25.4410819754834 | epot = -212.497368647685 | etot = -167.159386929516 +915000 ekin = 19.9950171951882 | erot = 25.9419095773569 | epot = -212.507529869006 | etot = -166.570603096461 +916000 ekin = 19.6549262075363 | erot = 24.538237997724 | epot = -212.481735916643 | etot = -168.288571711383 +917000 ekin = 19.1943251031612 | erot = 24.31332627058 | epot = -212.593107757692 | etot = -169.085456383951 +918000 ekin = 18.3242362402623 | erot = 22.0402118609707 | epot = -212.817817515526 | etot = -172.453369414293 +919000 ekin = 18.4622091649616 | erot = 22.0712625398805 | epot = -213.248725483561 | etot = -172.715253778719 +920000 ekin = 19.2487751773886 | erot = 25.3359478866229 | epot = -213.780255594758 | etot = -169.195532530746 +921000 ekin = 19.5018854862383 | erot = 23.5233553159472 | epot = -214.227012786969 | etot = -171.201771984784 +922000 ekin = 20.0460346272463 | erot = 23.3015862848816 | epot = -214.628134308544 | etot = -171.280513396416 +923000 ekin = 19.2900442060425 | erot = 21.7882354465828 | epot = -215.132996794542 | etot = -174.054717141917 +924000 ekin = 19.8084784518446 | erot = 20.6067657458497 | epot = -215.520425153804 | etot = -175.10518095611 +925000 ekin = 19.4297747207056 | erot = 19.7971794451035 | epot = -215.775169090021 | etot = -176.548214924211 +926000 ekin = 19.6579133002046 | erot = 19.0438552077666 | epot = -215.748052097731 | etot = -177.04628358976 +927000 ekin = 20.4195662533946 | erot = 18.9593050109652 | epot = -215.618862876762 | etot = -176.239991612402 +928000 ekin = 20.4817836282247 | erot = 18.9847825923888 | epot = -215.304393191577 | etot = -175.837826970963 +929000 ekin = 20.9504941576429 | erot = 19.7784806309953 | epot = -214.727990541094 | etot = -173.999015752456 +930000 ekin = 21.1315408433683 | erot = 20.6616164444539 | epot = -214.061785502445 | etot = -172.268628214623 +931000 ekin = 21.2634088922109 | erot = 21.9365830714564 | epot = -213.529347543443 | etot = -170.329355579775 +932000 ekin = 21.006213211584 | erot = 21.2825267850011 | epot = -212.999183574852 | etot = -170.710443578267 +933000 ekin = 21.2284411209639 | erot = 20.8232596682586 | epot = -212.371172372981 | etot = -170.319471583758 +934000 ekin = 20.5279385282457 | erot = 20.1701889387579 | epot = -211.858985221721 | etot = -171.160857754718 +935000 ekin = 20.1948548273404 | erot = 19.538371480896 | epot = -211.862647749463 | etot = -172.129421441226 +936000 ekin = 20.1806679134658 | erot = 21.4990281973767 | epot = -212.443949037452 | etot = -170.76425292661 +937000 ekin = 20.0545914091422 | erot = 20.9834617113798 | epot = -213.292670869919 | etot = -172.254617749397 +938000 ekin = 19.8082215701157 | erot = 20.8974589230379 | epot = -214.037804111151 | etot = -173.332123617997 +939000 ekin = 20.3649856793841 | erot = 23.9090631210053 | epot = -214.809663951944 | etot = -170.535615151554 +940000 ekin = 20.9455103352144 | erot = 24.9039051347133 | epot = -215.699887091858 | etot = -169.850471621931 +941000 ekin = 22.0008473383399 | erot = 23.3113935488402 | epot = -216.614986710114 | etot = -171.302745822934 +942000 ekin = 21.6408089485804 | erot = 26.4701413664084 | epot = -217.436072618249 | etot = -169.32512230326 +943000 ekin = 22.0375713327493 | erot = 23.8525644765125 | epot = -218.064504556064 | etot = -172.174368746803 +944000 ekin = 21.3825689791004 | erot = 22.0065856356145 | epot = -218.486120233654 | etot = -175.096965618939 +945000 ekin = 20.850173972681 | erot = 21.1332702356783 | epot = -218.794495873448 | etot = -176.811051665089 +946000 ekin = 20.4139375222148 | erot = 23.6679631776017 | epot = -219.021459743601 | etot = -174.939559043785 +947000 ekin = 20.1906398813672 | erot = 26.5654138598139 | epot = -218.929211499128 | etot = -172.173157757947 +948000 ekin = 20.1586787090284 | erot = 25.3617860657906 | epot = -218.683588417106 | etot = -173.163123642287 +949000 ekin = 20.6015087780768 | erot = 24.0216151369725 | epot = -218.644352518059 | etot = -174.02122860301 +950000 ekin = 20.7471893785302 | erot = 25.3619181001311 | epot = -218.710402012473 | etot = -172.601294533811 +951000 ekin = 20.2569076833938 | erot = 27.0210577095201 | epot = -218.988213515806 | etot = -171.710248122892 +952000 ekin = 20.5584159627657 | erot = 27.2103033079755 | epot = -219.159574869077 | etot = -171.390855598336 +953000 ekin = 21.7412270180337 | erot = 25.7395142553205 | epot = -219.276981606574 | etot = -171.79624033322 +954000 ekin = 22.5769744101438 | erot = 23.3851809606138 | epot = -219.432021398479 | etot = -173.469866027721 +955000 ekin = 22.7540917406293 | erot = 24.0485022563637 | epot = -219.45122924006 | etot = -172.648635243067 +956000 ekin = 23.6959292084454 | erot = 24.2542500120269 | epot = -219.324912206847 | etot = -171.374732986375 +957000 ekin = 24.5172263085672 | erot = 24.1459598029485 | epot = -219.163645858039 | etot = -170.500459746523 +958000 ekin = 25.8225599553336 | erot = 23.6654996104887 | epot = -219.159019217903 | etot = -169.670959652081 +959000 ekin = 26.8068645926446 | erot = 25.0211786091659 | epot = -219.23531458736 | etot = -167.40727138555 +960000 ekin = 26.5999695579089 | erot = 25.6266836486181 | epot = -219.112393893106 | etot = -166.885740686579 +961000 ekin = 27.0539782988757 | erot = 26.1135586378242 | epot = -218.901327623641 | etot = -165.733790686941 +962000 ekin = 27.3128371491059 | erot = 25.6398136135623 | epot = -218.716820658053 | etot = -165.764169895385 +963000 ekin = 27.5776608737564 | erot = 24.2328598021347 | epot = -218.565342926505 | etot = -166.754822250614 +964000 ekin = 28.434847779201 | erot = 23.0688699860552 | epot = -218.32159079768 | etot = -166.817873032424 +965000 ekin = 27.9989611524549 | erot = 21.1729542648574 | epot = -217.935512501719 | etot = -168.763597084407 +966000 ekin = 28.1906276758125 | erot = 19.7596499447264 | epot = -217.551246311047 | etot = -169.600968690508 +967000 ekin = 28.1299488148111 | erot = 19.7764414549918 | epot = -217.022765960343 | etot = -169.11637569054 +968000 ekin = 27.2553372938565 | erot = 18.6432061694697 | epot = -216.345481598031 | etot = -170.446938134704 +969000 ekin = 27.3975194660702 | erot = 16.7046773675797 | epot = -215.471813515321 | etot = -171.369616681671 +970000 ekin = 26.2092304427085 | erot = 16.6741476212952 | epot = -214.618004397777 | etot = -171.734626333774 +971000 ekin = 25.4753520862258 | erot = 16.4961256389214 | epot = -213.774217411075 | etot = -171.802739685927 +972000 ekin = 25.1338150886746 | erot = 17.5885931811208 | epot = -212.941007560394 | etot = -170.218599290598 +973000 ekin = 23.9980459819068 | erot = 19.2413290657419 | epot = -212.209972657659 | etot = -168.97059761001 +974000 ekin = 23.1991915243631 | erot = 20.5621498503079 | epot = -211.643302372093 | etot = -167.881960997422 +975000 ekin = 22.0936708905994 | erot = 23.8925799416044 | epot = -211.258183683576 | etot = -165.271932851372 +976000 ekin = 21.5284614810504 | erot = 24.4823848282085 | epot = -210.871321753255 | etot = -164.860475443996 +977000 ekin = 20.9102492410769 | erot = 21.693728956875 | epot = -210.421620122539 | etot = -167.817641924587 +978000 ekin = 20.5534455754244 | erot = 21.4137671023852 | epot = -210.104378292213 | etot = -168.137165614403 +979000 ekin = 20.4475545334837 | erot = 21.7023482062785 | epot = -209.997680361419 | etot = -167.847777621657 +980000 ekin = 20.0153051482561 | erot = 22.1641624026467 | epot = -209.89453747175 | etot = -167.715069920847 +981000 ekin = 19.2553377922842 | erot = 21.6998257958764 | epot = -209.890607062706 | etot = -168.935443474545 +982000 ekin = 19.3602504755725 | erot = 22.71183002751 | epot = -209.817363885782 | etot = -167.7452833827 +983000 ekin = 19.9918630693289 | erot = 23.202269542363 | epot = -209.824553681854 | etot = -166.630421070162 +984000 ekin = 20.2229931630647 | erot = 22.783376358611 | epot = -209.980959689712 | etot = -166.974590168037 +985000 ekin = 20.1271575518484 | erot = 25.8324951123609 | epot = -210.176274954526 | etot = -164.216622290317 +986000 ekin = 19.8065574143083 | erot = 25.7086232557777 | epot = -210.259482005916 | etot = -164.74430133583 +987000 ekin = 19.8241962308738 | erot = 27.3477557937439 | epot = -210.338061448385 | etot = -163.166109423767 +988000 ekin = 20.5802327460373 | erot = 26.5177798191887 | epot = -210.374636605805 | etot = -163.276624040579 +989000 ekin = 19.8243827036663 | erot = 25.0249543132842 | epot = -210.405555790817 | etot = -165.556218773867 +990000 ekin = 19.6784859521663 | erot = 25.0211614919117 | epot = -210.536148192301 | etot = -165.836500748223 +991000 ekin = 19.8800072497794 | erot = 23.9545983908763 | epot = -210.811356988255 | etot = -166.976751347599 +992000 ekin = 19.9500698690931 | erot = 23.5129947805019 | epot = -211.184932089162 | etot = -167.721867439567 +993000 ekin = 18.937341089784 | erot = 23.1942485295875 | epot = -211.832628892927 | etot = -169.701039273555 +994000 ekin = 19.0566139838972 | erot = 23.5902607657524 | epot = -212.751294519113 | etot = -170.104419769464 +995000 ekin = 19.600538964917 | erot = 24.2017471939332 | epot = -213.671202895863 | etot = -169.868916737012 +996000 ekin = 20.3648160827738 | erot = 24.5056692824139 | epot = -214.567571801734 | etot = -169.697086436546 +997000 ekin = 20.6784197154575 | erot = 22.6383548571427 | epot = -215.397393210187 | etot = -172.080618637587 +998000 ekin = 21.27338897749 | erot = 21.4812766210868 | epot = -216.126312680602 | etot = -173.371647082025 +999000 ekin = 22.1968344281123 | erot = 22.7999859685056 | epot = -216.784980184639 | etot = -171.788159788021 +1000000 ekin = 22.6406306102505 | erot = 22.5936369544571 | epot = -217.43832313152 | etot = -172.204055566812 + 1000000 303.8185 -221.63969 4.201369 -194.79769 -0.0039208577 39304000 +Loop time of 34.5573 on 4 procs for 1000000 steps with 26 atoms + +Performance: 42.653 ns/day, 0.563 hours/ns, 28937.471 timesteps/s, 752.374 katom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 11.103 | 15.989 | 27.026 | 161.4 | 46.27 +Bond | 0.3534 | 0.44646 | 0.54636 | 13.5 | 1.29 +Neigh | 0.007879 | 0.0080685 | 0.008218 | 0.1 | 0.02 +Comm | 4.2767 | 15.803 | 20.415 | 168.6 | 45.73 +Output | 0.084582 | 0.13406 | 0.15369 | 7.8 | 0.39 +Modify | 1.354 | 1.7988 | 2.2537 | 32.6 | 5.21 +Other | | 0.378 | | | 1.09 + +Nlocal: 6.5 ave 10 max 3 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 19.5 ave 23 max 16 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 75.25 ave 182 max 25 min +Histogram: 1 2 0 0 0 0 0 0 0 1 + +Total # of neighbors = 301 +Ave neighs/atom = 11.576923 +Ave special neighs/atom = 5.0769231 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:34 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/data.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/data.duplex2 new file mode 100644 index 0000000000..78a6fdd51a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/data.duplex2 @@ -0,0 +1,91 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +16 atoms +4 atom types +13 bonds +1 bond types +16 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -5.224492277936935 -5.6003990662830665 3.072035980595378 1 1 1.0016462505133576 0 0 0 +2 2 -3.855482258589815 -8.54410812515585 6.182955020430966 1 1 1.0016462505133576 0 0 0 +3 3 -0.8418698080395857 -10.56041032511679 9.10967975032824 1 1 1.0016462505133576 0 0 0 +4 4 2.502394065492512 -10.715431837829685 12.145744722571814 1 1 1.0016462505133576 0 0 0 +5 1 5.355178690564601 -8.674171903962998 15.067785212133312 1 1 1.0016462505133576 0 0 0 +6 2 6.7305169669220595 -5.763569949980494 18.347908888941284 1 1 1.0016462505133576 0 0 0 +7 3 6.061219006086631 -3.4238594469157198 21.88758604427721 1 1 1.0016462505133576 0 0 0 +8 4 4.001186577913306 -2.576839632838177 26.12300846270287 1 1 1.0016462505133576 0 0 0 +9 1 3.454997351061381 -12.298079702286948 26.05718083554597 2 1 1.0016462505133576 0 0 0 +10 2 -0.2728181587270111 -11.028698363238112 23.169872406755868 2 1 1.0016462505133576 0 0 0 +11 3 -2.692868178466912 -7.73787195036868 20.549852065183913 2 1 1.0016462505133576 0 0 0 +12 4 -3.316857346830113 -4.145374554885233 17.08862230448963 2 1 1.0016462505133576 0 0 0 +13 1 -0.5308965342198838 -0.6095451431748122 13.28229291571604 3 1 1.0016462505133576 0 0 0 +14 2 1.5233668194980015 -0.46991432454420656 8.699204689407908 3 1 1.0016462505133576 0 0 0 +15 3 3.844548159551531 -2.026909836907328 5.074452450044903 3 1 1.0016462505133576 0 0 0 +16 4 4.325141724684425 -4.740799489595668 1.4104749932020408 3 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.00026896558742537556 0.00011298695236274073 0.001242364337461123 0.7538466533118467 -1.2587520584415195 -1.1163576881067447 +2 -0.00019946914535880285 0.0013465785184092233 -0.0009479872206420321 -0.13024003640483983 -0.5006975787807386 0.17048535791572514 +3 -0.0010377647810347322 -0.0006804774738725614 -0.000302697462953215 -0.15638545864527348 -0.2683843524758034 -0.6295604792026762 +4 -0.0011968051721949484 -0.002808404437492725 0.00016214368951061121 -0.7029471277015998 1.2169631204234201 1.42700472482703 +5 -0.0008046113463391788 -0.001142874812754601 -0.0006767129075723855 0.304218367349499 -0.4005571162913614 0.5710347488390389 +6 -0.00023475461149269044 0.000959484075931813 0.0007283860029089665 0.3921776444343422 -2.399417440979843 0.3950910265578085 +7 0.0002545632912247854 -0.00019202725318668095 -0.0007112078778547229 1.4800522749729792 1.8058703404340948 -0.5778414965351256 +8 0.0018887377488028885 -0.0002473511615838234 0.0008120520191337178 0.18841278062652408 0.3347372075847072 -0.5408605905745774 +9 0.0002452564077667799 0.00020601300929708606 6.1033299095680186e-05 0.13966147753401867 -0.0005390290197378453 0.6635632318913824 +10 0.000968244047328249 0.0005529827424647325 -0.00020224034557198784 -0.7235582069719148 -1.9412262416735993 -1.289806869224333 +11 -0.0017543321990246556 -0.000939796984860897 0.0018048542648271923 -1.5775475529872025 -2.0891633737315023 0.40142307521789933 +12 -0.0005934853675296159 0.001116191652783757 4.626275649966328e-05 -1.200961814632207 0.4371811217355096 0.43287366246768927 +13 -0.0007222905985558083 -0.0005767904238661645 0.0006648020330562531 -1.084763819731394 1.1718860080947717 0.2470159472481526 +14 0.0002573730178578412 -0.00182797610679242 -0.00033107273492769625 -0.510496177490122 0.29118940603730814 0.9195837620128926 +15 -0.0010092903785878923 0.0011654195253227475 4.0609661125969864e-05 -0.723803934131871 0.07956576746268508 -1.1413793944128399 +16 -0.0009587558806876301 -0.0004046946607553641 -0.0002343452641922075 0.07373406158203998 -1.3986322243084912 0.4617216556119086 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 9 10 +9 1 10 11 +10 1 11 12 +11 1 13 14 +12 1 14 15 +13 1 15 16 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9964752158482045 -0.053253555733239796 0.011391163807102514 -0.06380787090289707 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9369923833143513 0.11220716044648564 0.06732538499716349 0.3239168400846305 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.797964932091827 0.14473096354527873 0.18374142699366386 0.5554673737937029 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5660864821344559 0.14688275499481052 0.09873742533340191 0.8051226439917721 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.2533023785125306 0.12062313161679827 0.08583012223905846 0.9559922359911086 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.03855807343534716 0.08405913137017908 0.02236505169306371 0.9954632800204194 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.45592844330248017 0.1004550065061007 -0.052524745294758785 0.8827679181910482 +8 9.999999997766462 9.999999997766462 9.999999997766462 0.768021221540491 -0.009582139884533599 0.03658677589040892 -0.63930665074644 +9 9.999999997766462 9.999999997766462 9.999999997766462 -0.23299975754512345 0.688686395231341 0.6747873944883376 -0.12682324016841584 +10 9.999999997766462 9.999999997766462 9.999999997766462 -0.24662061871907232 0.8744456399178389 0.39370836087823996 -0.13970261209395163 +11 9.999999997766462 9.999999997766462 9.999999997766462 -0.087475900850909 0.977367602388229 0.14493549113095577 -0.12686307572668784 +12 9.999999997766462 9.999999997766462 9.999999997766462 -0.03181169300779214 0.9634374984140112 -0.2442360692534371 -0.10547485630879185 +13 9.999999997766462 9.999999997766462 9.999999997766462 -0.032786070696572266 0.7922941528811777 -0.6084214170523915 -0.03191282109962717 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.047188686288341455 0.6316396208287698 -0.7737349519945348 0.011783095844627799 +15 9.999999997766462 9.999999997766462 9.999999997766462 -0.05869980642620335 -0.34229358203414423 0.9376740835056508 0.012519965878508689 +16 9.999999997766462 9.999999997766462 9.999999997766462 -0.08582818143150042 0.0008707732197394232 0.9939540921464659 -0.0684691735853161 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/in.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/in.duplex2 new file mode 100644 index 0000000000..6029ae601d --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/in.duplex2 @@ -0,0 +1,74 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.5 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxRNA2 bond interactions - FENE backbone +bond_style oxrna2/fene +bond_coeff * 11.92337812042065 2.1295 6.482800913 +special_bonds lj 0 1 1 + +# oxRNA2 pair interactions +pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh +pair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxrna2/stk seqdep ${T} 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +pair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 +pair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 +pair_coeff * * oxrna2/dh ${T} ${rhos} 1.02455 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 new file mode 100644 index 0000000000..4b03446769 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.005 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 +Per MPI rank memory allocation (min/avg/max) = 7.592 | 7.592 | 7.592 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -69.627742 3.2447172 -50.262701 0.034084814 39304000 +1000 ekin = 16.3558183649387 | erot = 16.6323090455317 | epot = -66.5525771041996 | etot = -33.5644496937292 +2000 ekin = 16.6191649168148 | erot = 16.5684372137643 | epot = -66.7520518221218 | etot = -33.5644496915427 +3000 ekin = 16.9230904408655 | erot = 16.5204480451833 | epot = -67.0079881759689 | etot = -33.5644496899201 +4000 ekin = 17.2772162612592 | erot = 16.4986792932201 | epot = -67.3403452437718 | etot = -33.5644496892925 +5000 ekin = 17.6866959075726 | erot = 16.5050138456573 | epot = -67.7561594428213 | etot = -33.5644496895913 +6000 ekin = 18.1531343302965 | erot = 16.5325161302816 | epot = -68.2501001506517 | etot = -33.5644496900737 +7000 ekin = 18.6806534933141 | erot = 16.5738535187237 | epot = -68.818956701435 | etot = -33.5644496893973 +8000 ekin = 19.2766528199697 | erot = 16.626151587963 | epot = -69.4672540969566 | etot = -33.5644496890239 +9000 ekin = 19.946149039732 | erot = 16.690847598574 | epot = -70.2014463262322 | etot = -33.5644496879261 +10000 ekin = 20.6973181248475 | erot = 16.777296043853 | epot = -71.039063854855 | etot = -33.5644496861545 +11000 ekin = 21.5395226247921 | erot = 16.901420997199 | epot = -72.0053933083061 | etot = -33.564449686315 +12000 ekin = 22.4717498465051 | erot = 17.0791755563663 | epot = -73.1153750880499 | etot = -33.5644496851785 +13000 ekin = 23.493621609947 | erot = 17.3228520870333 | epot = -74.3809233816827 | etot = -33.5644496847025 +14000 ekin = 24.6044210071245 | erot = 17.6425688028836 | epot = -75.8114394947882 | etot = -33.56444968478 +15000 ekin = 25.7999389267744 | erot = 18.0453525578632 | epot = -77.4097411694883 | etot = -33.5644496848507 +16000 ekin = 27.0739775537122 | erot = 18.536114233291 | epot = -79.1745414730759 | etot = -33.5644496860726 +17000 ekin = 28.4119581304117 | erot = 19.1137262760957 | epot = -81.0901340949627 | etot = -33.5644496884552 +18000 ekin = 29.7909545183301 | erot = 19.7704759932753 | epot = -83.1258802031779 | etot = -33.5644496915724 +19000 ekin = 31.1831510307731 | erot = 20.4915974540493 | epot = -85.2391981805602 | etot = -33.5644496957377 +20000 ekin = 32.5560965367941 | erot = 21.2528351748732 | epot = -87.373381412572 | etot = -33.5644497009046 +21000 ekin = 33.8683309875658 | erot = 22.0156446407475 | epot = -89.4484253379449 | etot = -33.5644497096315 +22000 ekin = 35.0747510230856 | erot = 22.7306302808711 | epot = -91.3698310187507 | etot = -33.5644497147941 +23000 ekin = 36.1427935644225 | erot = 23.3543658008635 | epot = -93.0616090845418 | etot = -33.5644497192558 +24000 ekin = 37.0484240543208 | erot = 23.8536351256839 | epot = -94.4665089004153 | etot = -33.5644497204106 +25000 ekin = 37.7873483857424 | erot = 24.2156130941778 | epot = -95.567411199049 | etot = -33.5644497191288 +26000 ekin = 38.3695951222895 | erot = 24.4472028227108 | epot = -96.381247661283 | etot = -33.5644497162827 +27000 ekin = 38.814245199114 | erot = 24.569649643868 | epot = -96.948344555808 | etot = -33.564449712826 +28000 ekin = 39.1436511594776 | erot = 24.6108705414912 | epot = -97.318971410458 | etot = -33.5644497094892 +29000 ekin = 39.3799077053085 | erot = 24.5987493007987 | epot = -97.5431067127119 | etot = -33.5644497066047 +30000 ekin = 39.543718776792 | erot = 24.5572061990989 | epot = -97.6653746802846 | etot = -33.5644497043937 +31000 ekin = 39.6556538792218 | erot = 24.5025482878259 | epot = -97.7226518696589 | etot = -33.5644497026113 +32000 ekin = 39.7376908979138 | erot = 24.4447365565301 | epot = -97.7468771552206 | etot = -33.5644497007767 +33000 ekin = 39.8178410436032 | erot = 24.3917276701347 | epot = -97.7740184125893 | etot = -33.5644496988513 +34000 ekin = 39.9276187144877 | erot = 24.3494773308424 | epot = -97.8415457422145 | etot = -33.5644496968845 +35000 ekin = 40.0972017271435 | erot = 24.3220925820239 | epot = -97.9837440042528 | etot = -33.5644496950853 +36000 ekin = 40.3554758289771 | erot = 24.3121132861365 | epot = -98.2320388089549 | etot = -33.5644496938413 +37000 ekin = 40.725317224184 | erot = 24.3194531164605 | epot = -98.609220034252 | etot = -33.5644496936075 +38000 ekin = 41.218461457732 | erot = 24.3399425111004 | epot = -99.1228536635587 | etot = -33.5644496947263 +39000 ekin = 41.8315835745714 | erot = 24.3642621379406 | epot = -99.7602954097942 | etot = -33.5644496972823 +40000 ekin = 42.5444333388251 | erot = 24.3777906096196 | epot = -100.486673649663 | etot = -33.5644497012185 +41000 ekin = 43.3221534386109 | erot = 24.3619359806986 | epot = -101.248539124816 | etot = -33.5644497055066 +42000 ekin = 44.1232219530967 | erot = 24.2968159627003 | epot = -101.984487625365 | etot = -33.5644497095679 +43000 ekin = 44.9043008441337 | erot = 24.1647850477424 | epot = -102.633535604781 | etot = -33.5644497129045 +44000 ekin = 45.6258073685752 | erot = 23.953775477634 | epot = -103.144032561026 | etot = -33.5644497148168 +45000 ekin = 46.2557013508714 | erot = 23.6596129163789 | epot = -103.47976398388 | etot = -33.5644497166297 +46000 ekin = 46.7711396854557 | erot = 23.2746461161514 | epot = -103.610235519167 | etot = -33.5644497175602 +47000 ekin = 47.1576706465411 | erot = 22.7983985986745 | epot = -103.520518961436 | etot = -33.5644497162202 +48000 ekin = 47.4067411848222 | erot = 22.24189270691 | epot = -103.213083606728 | etot = -33.5644497149961 +49000 ekin = 47.5134307536666 | erot = 21.6212608371929 | epot = -102.699141303773 | etot = -33.5644497129138 +50000 ekin = 47.4750496002024 | erot = 20.9637753825411 | epot = -102.003274691403 | etot = -33.5644497086593 +51000 ekin = 47.2893433305646 | erot = 20.3140174296332 | epot = -101.16781046916 | etot = -33.5644497089623 +52000 ekin = 46.9527474071891 | erot = 19.68086855223 | epot = -100.198065668178 | etot = -33.5644497087592 +53000 ekin = 46.4669221029442 | erot = 19.0628634962126 | epot = -99.0942353064246 | etot = -33.5644497072679 +54000 ekin = 45.8347987943733 | erot = 18.4752794596827 | epot = -97.8745279599043 | etot = -33.5644497058483 +55000 ekin = 45.059031662863 | erot = 17.9341671577873 | epot = -96.5576485255764 | etot = -33.5644497049261 +56000 ekin = 44.1409291390452 | erot = 17.4520797326571 | epot = -95.1574585762239 | etot = -33.5644497045216 +57000 ekin = 43.0792908324212 | erot = 17.037334269452 | epot = -93.6810748066111 | etot = -33.5644497047379 +58000 ekin = 41.8704923540597 | erot = 16.6939394056073 | epot = -92.1288814650802 | etot = -33.5644497054133 +59000 ekin = 40.5509408803223 | erot = 16.4316140927959 | epot = -90.5470046657477 | etot = -33.5644496926295 +60000 ekin = 39.1975830612663 | erot = 16.2583411314114 | epot = -89.0203738856257 | etot = -33.5644496929479 +61000 ekin = 35.7114984384222 | erot = 15.7928074869524 | epot = -85.0687559055441 | etot = -33.5644499801694 +62000 ekin = 34.7372517507007 | erot = 15.809440909604 | epot = -84.1111427028021 | etot = -33.5644500424973 +63000 ekin = 35.8178089566977 | erot = 16.1653492511931 | epot = -85.5476088513045 | etot = -33.5644506434137 +64000 ekin = 34.869236370394 | erot = 16.1670101597177 | epot = -84.6006971860832 | etot = -33.5644506559716 +65000 ekin = 33.846449455543 | erot = 16.1402632189656 | epot = -83.5511633293454 | etot = -33.5644506548368 +66000 ekin = 32.7636419796955 | erot = 16.0751240440813 | epot = -82.4032166770506 | etot = -33.5644506532738 +67000 ekin = 31.6420680628872 | erot = 15.9705642956741 | epot = -81.1770830093356 | etot = -33.5644506507743 +68000 ekin = 30.5061166759946 | erot = 15.8342590047122 | epot = -79.9048263284351 | etot = -33.5644506477283 +69000 ekin = 29.3793899831114 | erot = 15.678409289176 | epot = -78.6222499180454 | etot = -33.564450645758 +70000 ekin = 28.284277797061 | erot = 15.5192251789805 | epot = -77.367953618708 | etot = -33.5644506426665 +71000 ekin = 27.2428007223107 | erot = 15.3775924468402 | epot = -76.1848438089708 | etot = -33.5644506398198 +72000 ekin = 26.2738583640461 | erot = 15.2738682128153 | epot = -75.1121772142973 | etot = -33.5644506374359 +73000 ekin = 25.3929266243307 | erot = 15.225238925301 | epot = -74.1826161852592 | etot = -33.5644506356275 +74000 ekin = 24.6118800235875 | erot = 15.2440811522995 | epot = -73.4204118109363 | etot = -33.5644506350493 +75000 ekin = 23.9285421197333 | erot = 15.2937064902868 | epot = -72.7866996078847 | etot = -33.5644509978647 +76000 ekin = 23.6014258497327 | erot = 14.5530249139084 | epot = -71.7189013877706 | etot = -33.5644506241296 +77000 ekin = 24.0021186681933 | erot = 14.66725562535 | epot = -72.2338249119969 | etot = -33.5644506184536 +78000 ekin = 23.7667117018407 | erot = 14.8821032755388 | epot = -72.2132655967916 | etot = -33.5644506194121 +79000 ekin = 23.6362408803388 | erot = 15.1573231058555 | epot = -72.3580146069914 | etot = -33.5644506207971 +80000 ekin = 23.6008292998118 | erot = 15.4801164769236 | epot = -72.6453963992449 | etot = -33.5644506225096 +81000 ekin = 23.6479278988449 | erot = 15.8366782045229 | epot = -73.0490567276759 | etot = -33.5644506243081 +82000 ekin = 23.7631958527379 | erot = 16.2135577483199 | epot = -73.5412042271318 | etot = -33.564450626074 +83000 ekin = 23.9313380513044 | erot = 16.5989137528036 | epot = -74.0947024318235 | etot = -33.5644506277155 +84000 ekin = 24.1405337461447 | erot = 16.9832739889227 | epot = -74.6882583637861 | etot = -33.5644506287187 +85000 ekin = 24.3851366362422 | erot = 17.3594190811811 | epot = -75.3090063475336 | etot = -33.5644506301102 +86000 ekin = 24.6499622429148 | erot = 17.7229731863063 | epot = -75.9373860604631 | etot = -33.5644506312419 +87000 ekin = 24.9195866966142 | erot = 18.0734917202568 | epot = -76.5575290489246 | etot = -33.5644506320536 +88000 ekin = 25.1793742014108 | erot = 18.4146339772126 | epot = -77.158458811171 | etot = -33.5644506325475 +89000 ekin = 25.4156568494618 | erot = 18.7539686693896 | epot = -77.7340761514978 | etot = -33.5644506326463 +90000 ekin = 25.609684003566 | erot = 19.1040901404673 | epot = -78.2782247770974 | etot = -33.564450633064 +91000 ekin = 25.7348417969789 | erot = 19.4865010462251 | epot = -78.7857934757922 | etot = -33.5644506325881 +92000 ekin = 25.7824117490226 | erot = 19.9168308436453 | epot = -79.2636932257737 | etot = -33.5644506331059 +93000 ekin = 25.7436484203098 | erot = 20.4015276208925 | epot = -79.7096266744475 | etot = -33.5644506332451 +94000 ekin = 25.610748739912 | erot = 20.9498819611228 | epot = -80.1250813342097 | etot = -33.564450633175 +95000 ekin = 25.3788454256151 | erot = 21.5718811146967 | epot = -80.5151771730825 | etot = -33.5644506327707 +96000 ekin = 25.0476635684712 | erot = 22.2778886106733 | epot = -80.8900028110714 | etot = -33.5644506319269 +97000 ekin = 24.6228037012614 | erot = 23.0785820232949 | epot = -81.2658363557903 | etot = -33.5644506312341 +98000 ekin = 24.116365030335 | erot = 23.980262455698 | epot = -81.6610781157446 | etot = -33.5644506297116 +99000 ekin = 23.5467601995519 | erot = 24.9897227937723 | epot = -82.1009336213321 | etot = -33.5644506280079 +100000 ekin = 22.9377076830261 | erot = 26.1125444287915 | epot = -82.6147027382494 | etot = -33.5644506264317 +101000 ekin = 22.3162402354139 | erot = 27.3495277986758 | epot = -83.2302186594579 | etot = -33.5644506253682 +102000 ekin = 21.7099673799574 | erot = 28.6941289887295 | epot = -83.9685469938778 | etot = -33.5644506251909 +103000 ekin = 21.1440927333159 | erot = 30.130413105192 | epot = -84.8389564646036 | etot = -33.5644506260957 +104000 ekin = 20.6390360732686 | erot = 31.6318076720637 | epot = -85.8352943737421 | etot = -33.5644506284097 +105000 ekin = 20.2097356178038 | erot = 33.1559511277913 | epot = -86.9301373769589 | etot = -33.5644506313638 +106000 ekin = 19.8659962936248 | erot = 34.6591523175119 | epot = -88.0895992442174 | etot = -33.5644506330807 +107000 ekin = 19.6196926152683 | erot = 36.100338989929 | epot = -89.2844822415662 | etot = -33.5644506363689 +108000 ekin = 19.4737764770476 | erot = 37.4404659123052 | epot = -90.4786930287931 | etot = -33.5644506394402 +109000 ekin = 19.4257211238038 | erot = 38.6395727467607 | epot = -91.629744515762 | etot = -33.5644506451975 +110000 ekin = 19.4643317381238 | erot = 39.6495422786812 | epot = -92.6783246653831 | etot = -33.5644506485781 +111000 ekin = 19.5812097010519 | erot = 40.4340503208693 | epot = -93.5797106732657 | etot = -33.5644506513445 +112000 ekin = 19.7688752467972 | erot = 40.9641614008033 | epot = -94.2974873012517 | etot = -33.5644506536512 +113000 ekin = 20.0199352606492 | erot = 41.223561768641 | epot = -94.8079476827741 | etot = -33.5644506534839 +114000 ekin = 20.3316783135505 | erot = 41.2208106095099 | epot = -95.1169395739246 | etot = -33.5644506508641 +115000 ekin = 20.7092934859859 | erot = 40.9902193450394 | epot = -95.2639634786059 | etot = -33.5644506475807 +116000 ekin = 21.1584070130099 | erot = 40.5711692188944 | epot = -95.2940268781066 | etot = -33.5644506462023 +117000 ekin = 21.6717401642325 | erot = 40.0068194492249 | epot = -95.2430102574753 | etot = -33.5644506440179 +118000 ekin = 22.2304498749719 | erot = 39.3449170917023 | epot = -95.1398176087352 | etot = -33.5644506420609 +119000 ekin = 22.8040322747547 | erot = 38.6279078104798 | epot = -94.9963907285559 | etot = -33.5644506433214 +120000 ekin = 23.3636455910815 | erot = 37.8733163419356 | epot = -94.801412577584 | etot = -33.564450644567 +121000 ekin = 23.888334247959 | erot = 37.0853024873726 | epot = -94.5380873807864 | etot = -33.5644506454549 +122000 ekin = 24.3628295450746 | erot = 36.261752125414 | epot = -94.1890323184781 | etot = -33.5644506479895 +123000 ekin = 24.7728939422985 | erot = 35.3896441641771 | epot = -93.7269887541641 | etot = -33.5644506476884 +124000 ekin = 25.1206142173508 | erot = 34.4655545655651 | epot = -93.1506194284814 | etot = -33.5644506455655 +125000 ekin = 25.4216604350097 | erot = 33.5035163209335 | epot = -92.4896273979244 | etot = -33.5644506419812 +126000 ekin = 25.6927735129491 | erot = 32.5281184075519 | epot = -91.785342561111 | etot = -33.56445064061 +127000 ekin = 25.9460883081172 | erot = 31.5650113724827 | epot = -91.0755503181662 | etot = -33.5644506375663 +128000 ekin = 26.1993872383141 | erot = 30.6366650539223 | epot = -90.4005029275325 | etot = -33.5644506352961 +129000 ekin = 26.4652741313034 | erot = 29.7610339508673 | epot = -89.7907587151 | etot = -33.5644506329293 +130000 ekin = 26.7486727551205 | erot = 28.9506137583613 | epot = -89.2637371464484 | etot = -33.5644506329667 +131000 ekin = 27.0469092029044 | erot = 28.2034442942497 | epot = -88.8148041302872 | etot = -33.5644506331331 +132000 ekin = 27.3542874865317 | erot = 27.5160813886976 | epot = -88.4348195084739 | etot = -33.5644506332445 +133000 ekin = 27.6627378161423 | erot = 26.8888107912285 | epot = -88.115999240573 | etot = -33.5644506332022 +134000 ekin = 27.9672923181963 | erot = 26.3214524159622 | epot = -87.8531953671591 | etot = -33.5644506330005 +135000 ekin = 28.2641150379083 | erot = 25.8141340320102 | epot = -87.6426997025991 | etot = -33.5644506326806 +136000 ekin = 28.5509978141388 | erot = 25.3673179322113 | epot = -87.4827663786189 | etot = -33.5644506322688 +137000 ekin = 28.825915909221 | erot = 24.9801644637638 | epot = -87.3705310053152 | etot = -33.5644506323304 +138000 ekin = 29.0842610649339 | erot = 24.6492546073933 | epot = -87.2979663044158 | etot = -33.5644506320886 +139000 ekin = 29.3272222877258 | erot = 24.3700782380065 | epot = -87.2617511574337 | etot = -33.5644506317014 +140000 ekin = 29.5579798491516 | erot = 24.1376580585779 | epot = -87.2600885391681 | etot = -33.5644506314386 +141000 ekin = 29.7799846346249 | erot = 23.9462429930569 | epot = -87.2906782589382 | etot = -33.5644506312564 +142000 ekin = 29.9959841884915 | erot = 23.7899704636026 | epot = -87.3504052833039 | etot = -33.5644506312098 +143000 ekin = 30.2070349127784 | erot = 23.6632996950641 | epot = -87.4347852391688 | etot = -33.5644506313262 +144000 ekin = 30.4118840029093 | erot = 23.5613798569338 | epot = -87.5377144914396 | etot = -33.5644506315964 +145000 ekin = 30.6068456872279 | erot = 23.4803656669067 | epot = -87.6516619861204 | etot = -33.5644506319858 +146000 ekin = 30.7861230778205 | erot = 23.4176420010718 | epot = -87.7682157113363 | etot = -33.564450632444 +147000 ekin = 30.9424364770385 | erot = 23.3719366394227 | epot = -87.8788237493778 | etot = -33.5644506329166 +148000 ekin = 31.0677916134912 | erot = 23.3433216080134 | epot = -87.9755638548586 | etot = -33.564450633354 +149000 ekin = 31.1542520331539 | erot = 23.3331254537123 | epot = -88.0518281205811 | etot = -33.5644506337149 +150000 ekin = 31.1946418128177 | erot = 23.3437996409507 | epot = -88.1028920877325 | etot = -33.5644506339642 +151000 ekin = 31.1838063839322 | erot = 23.3785936220168 | epot = -88.1268506397958 | etot = -33.5644506338469 +152000 ekin = 31.1202290278299 | erot = 23.4412183836703 | epot = -88.125898045246 | etot = -33.5644506337458 +153000 ekin = 31.0032553217637 | erot = 23.5372189789008 | epot = -88.1049249338467 | etot = -33.5644506331823 +154000 ekin = 30.8354559406746 | erot = 23.6729952126947 | epot = -88.072901786295 | etot = -33.5644506329257 +155000 ekin = 30.6186135870526 | erot = 23.8551009557647 | epot = -88.0381651751689 | etot = -33.5644506323515 +156000 ekin = 30.3571457582588 | erot = 24.0914721103742 | epot = -88.0130685002276 | etot = -33.5644506315946 +157000 ekin = 30.0574108500346 | erot = 24.3907046676056 | epot = -88.0125661484805 | etot = -33.5644506308403 +158000 ekin = 29.725675692331 | erot = 24.7625567196346 | epot = -88.0526830421764 | etot = -33.5644506302108 +159000 ekin = 29.3667041507893 | erot = 25.2124449846207 | epot = -88.1435997656297 | etot = -33.5644506302196 +160000 ekin = 28.9829375848235 | erot = 25.7406189361246 | epot = -88.2880071520098 | etot = -33.5644506310616 +161000 ekin = 28.5708031098605 | erot = 26.3449808633556 | epot = -88.4802346049489 | etot = -33.5644506317328 +162000 ekin = 28.1278607476035 | erot = 27.0188065006218 | epot = -88.7111178809852 | etot = -33.5644506327599 +163000 ekin = 27.6515523776407 | erot = 27.7508923428456 | epot = -88.9668953542076 | etot = -33.5644506337213 +164000 ekin = 27.1398166575402 | erot = 28.5265897115496 | epot = -89.2308570046128 | etot = -33.5644506355231 +165000 ekin = 26.5901801294065 | erot = 29.3236809534458 | epot = -89.478311720126 | etot = -33.5644506372737 +166000 ekin = 26.0027550423919 | erot = 30.1148491025849 | epot = -89.6820547838262 | etot = -33.5644506388494 +167000 ekin = 25.3815734826352 | erot = 30.8714146428653 | epot = -89.8174387656332 | etot = -33.5644506401327 +168000 ekin = 24.7338280126162 | erot = 31.5656853660149 | epot = -89.8639640196475 | etot = -33.5644506410165 +169000 ekin = 24.0691061638267 | erot = 32.1733410341194 | epot = -89.8068978394102 | etot = -33.5644506414641 +170000 ekin = 23.3986380903836 | erot = 32.6761770397884 | epot = -89.6392657713668 | etot = -33.5644506411948 +171000 ekin = 22.7350947047584 | erot = 33.0649339609198 | epot = -89.3644793058835 | etot = -33.5644506402053 +172000 ekin = 22.0927595064379 | erot = 33.3397459263013 | epot = -88.9969560711893 | etot = -33.5644506384501 +173000 ekin = 21.4881436133187 | erot = 33.5098602953101 | epot = -88.5624545444277 | etot = -33.5644506357989 +174000 ekin = 20.9424106184102 | erot = 33.5950638981363 | epot = -88.1019251458272 | etot = -33.5644506292807 +175000 ekin = 20.4887725385275 | erot = 33.6332952588425 | epot = -87.6865184248803 | etot = -33.5644506275103 +176000 ekin = 20.1459992745671 | erot = 33.6413286939806 | epot = -87.3517785947221 | etot = -33.5644506261744 +177000 ekin = 19.9273952403454 | erot = 33.6264319072445 | epot = -87.1182777732156 | etot = -33.5644506256257 +178000 ekin = 19.84052681153 | erot = 33.5862782738547 | epot = -86.9912557125122 | etot = -33.5644506271275 +179000 ekin = 19.8828425829422 | erot = 33.5043404166422 | epot = -86.9516336276486 | etot = -33.5644506280643 +180000 ekin = 20.0524881206256 | erot = 33.3671042345402 | epot = -86.9840429849155 | etot = -33.5644506297498 +181000 ekin = 20.3414841297343 | erot = 33.1581782006442 | epot = -87.0641129622508 | etot = -33.5644506318723 +182000 ekin = 20.7352057198233 | erot = 32.8612622822509 | epot = -87.1609186361483 | etot = -33.5644506340741 +183000 ekin = 21.2137106223656 | erot = 32.4647477949401 | epot = -87.2429090532129 | etot = -33.5644506359073 +184000 ekin = 21.753758772068 | erot = 31.9655803613331 | epot = -87.2837897705988 | etot = -33.5644506371977 +185000 ekin = 22.3286746031905 | erot = 31.370802203917 | epot = -87.2639274448021 | etot = -33.5644506376946 +186000 ekin = 22.9115100132914 | erot = 30.6990331536457 | epot = -87.1749938042645 | etot = -33.5644506373275 +187000 ekin = 23.4775030152646 | erot = 29.9792070479746 | epot = -87.0211606994591 | etot = -33.5644506362199 +188000 ekin = 24.0059463479979 | erot = 29.2469949106376 | epot = -86.8173918933481 | etot = -33.5644506347127 +189000 ekin = 24.4809955944256 | erot = 28.5392131436686 | epot = -86.5846593713985 | etot = -33.5644506333043 +190000 ekin = 24.8911658073154 | erot = 27.8871249849478 | epot = -86.3427414248055 | etot = -33.5644506325423 +191000 ekin = 25.2275609419593 | erot = 27.3101259966561 | epot = -86.1021375715933 | etot = -33.5644506329779 +192000 ekin = 25.4831011426815 | erot = 26.8121375634353 | epot = -85.8596893403699 | etot = -33.564450634253 +193000 ekin = 25.2930335715005 | erot = 26.6410891958414 | epot = -85.4985734034485 | etot = -33.5644506361066 +194000 ekin = 25.0352601614032 | erot = 26.6525265483622 | epot = -85.2522373921937 | etot = -33.5644506824282 +195000 ekin = 25.0363508840855 | erot = 26.2378500699517 | epot = -84.8386516236489 | etot = -33.5644506696116 +196000 ekin = 24.9648942549692 | erot = 25.78683024187 | epot = -84.3161751669041 | etot = -33.5644506700649 +197000 ekin = 24.820085073243 | erot = 25.3002719383723 | epot = -83.684807680623 | etot = -33.5644506690076 +198000 ekin = 24.617288458851 | erot = 24.7762496503728 | epot = -82.9579887758224 | etot = -33.5644506665986 +199000 ekin = 24.377048383026 | erot = 24.2259949153754 | epot = -82.1674939619447 | etot = -33.5644506635433 +200000 ekin = 24.1224360020296 | erot = 23.6691820640811 | epot = -81.3560687261525 | etot = -33.5644506600419 +201000 ekin = 23.8775516468454 | erot = 23.1291743985682 | epot = -80.5711767022417 | etot = -33.5644506568281 +202000 ekin = 23.6646103059715 | erot = 22.6276096876224 | epot = -79.8566706478819 | etot = -33.5644506542881 +203000 ekin = 23.5017139925529 | erot = 22.1809863327317 | epot = -79.2471509779019 | etot = -33.5644506526173 +204000 ekin = 23.4012931943585 | erot = 21.7992926193315 | epot = -78.7650364652111 | etot = -33.5644506515211 +205000 ekin = 23.3698442687714 | erot = 21.4883950765849 | epot = -78.4226899967129 | etot = -33.5644506513567 +206000 ekin = 23.4080277663789 | erot = 21.2503388252137 | epot = -78.2228172433636 | etot = -33.5644506517709 +207000 ekin = 23.510672424487 | erot = 21.0828853352428 | epot = -78.1580084122739 | etot = -33.564450652544 +208000 ekin = 23.6683534180495 | erot = 20.982792192542 | epot = -78.2155962640683 | etot = -33.5644506534769 +209000 ekin = 23.8319531636201 | erot = 20.8686960092813 | epot = -78.2650998050279 | etot = -33.5644506321265 +210000 ekin = 24.1634900876329 | erot = 20.8246815259854 | epot = -78.5526222834702 | etot = -33.5644506698519 +211000 ekin = 24.4545474928994 | erot = 20.8320949387436 | epot = -78.851093093408 | etot = -33.564450661765 +212000 ekin = 24.7210588846791 | erot = 20.8889178093565 | epot = -79.1744273565292 | etot = -33.5644506624935 +213000 ekin = 24.9762555918523 | erot = 20.9956570670851 | epot = -79.5363633251146 | etot = -33.5644506661772 +214000 ekin = 25.205483004635 | erot = 21.1345527593194 | epot = -79.904486430984 | etot = -33.5644506670296 +215000 ekin = 25.4055444850383 | erot = 21.2948000239929 | epot = -80.2647951765804 | etot = -33.5644506675491 +216000 ekin = 25.5773395549964 | erot = 21.4659469017795 | epot = -80.6077371248515 | etot = -33.5644506680756 +217000 ekin = 25.7224226233962 | erot = 21.6383314527683 | epot = -80.925204744665 | etot = -33.5644506685004 +218000 ekin = 25.8456307141035 | erot = 21.7996006617643 | epot = -81.2096820449061 | etot = -33.5644506690382 +219000 ekin = 25.952452354154 | erot = 21.9358336225146 | epot = -81.4527366463123 | etot = -33.5644506696437 +220000 ekin = 26.0480501371105 | erot = 22.0331400323315 | epot = -81.6456408394103 | etot = -33.5644506699683 +221000 ekin = 26.1377559920962 | erot = 22.0801399062532 | epot = -81.7823465685503 | etot = -33.5644506702008 +222000 ekin = 26.2262421156876 | erot = 22.0692633440645 | epot = -81.8599561297652 | etot = -33.5644506700131 +223000 ekin = 26.3184403630104 | erot = 21.9982474658179 | epot = -81.8811384982303 | etot = -33.564450669402 +224000 ekin = 26.4171271373366 | erot = 21.8710288815827 | epot = -81.8526066880995 | etot = -33.5644506691801 +225000 ekin = 26.5225389104573 | erot = 21.6965423523224 | epot = -81.7835319309186 | etot = -33.5644506681389 +226000 ekin = 26.7157923548661 | erot = 21.3119214437974 | epot = -81.5921644821821 | etot = -33.5644506835186 +227000 ekin = 27.2484396437667 | erot = 20.6374955150002 | epot = -81.4503858460625 | etot = -33.5644506872956 +228000 ekin = 27.5078528971351 | erot = 20.2748179574298 | epot = -81.3471215226841 | etot = -33.5644506681192 +229000 ekin = 27.631283055081 | erot = 19.9858964954828 | epot = -81.1816302175522 | etot = -33.5644506669884 +230000 ekin = 27.7676058404106 | erot = 19.7189438600699 | epot = -81.0510003675314 | etot = -33.5644506670509 +231000 ekin = 27.917189899564 | erot = 19.4851196432342 | epot = -80.9667602108556 | etot = -33.5644506680573 +232000 ekin = 28.075807909483 | erot = 19.2892055600532 | epot = -80.9294641380291 | etot = -33.5644506684929 +233000 ekin = 28.2354888581566 | erot = 19.1284398309955 | epot = -80.9283793559269 | etot = -33.5644506667748 +234000 ekin = 28.3953039485291 | erot = 19.0132859353528 | epot = -80.973040551359 | etot = -33.564450667477 +235000 ekin = 28.5569493494324 | erot = 18.9585387746561 | epot = -81.0799387921139 | etot = -33.5644506680254 +236000 ekin = 28.7166448189416 | erot = 18.9671002034007 | epot = -81.2481956904871 | etot = -33.5644506681447 +237000 ekin = 28.872502381955 | erot = 19.0433381874402 | epot = -81.4802912373653 | etot = -33.5644506679701 +238000 ekin = 29.0257746255756 | erot = 19.1916941122086 | epot = -81.7819194053224 | etot = -33.5644506675381 +239000 ekin = 29.1795842186668 | erot = 19.4168064167523 | epot = -82.1608413028715 | etot = -33.5644506674523 +240000 ekin = 29.3337146101792 | erot = 19.7090725309346 | epot = -82.6072378097604 | etot = -33.5644506686467 +241000 ekin = 29.4868078966917 | erot = 20.0596352267871 | epot = -83.1108937927889 | etot = -33.5644506693101 +242000 ekin = 29.6351003169272 | erot = 20.4605457842645 | epot = -83.6600967716849 | etot = -33.5644506704932 +243000 ekin = 29.8921802425096 | erot = 20.6958964400126 | epot = -84.1525273495103 | etot = -33.564450666988 +244000 ekin = 30.2594419587612 | erot = 20.9649617308285 | epot = -84.788854393917 | etot = -33.5644507043273 +245000 ekin = 30.3074620328552 | erot = 21.3089995007004 | epot = -85.1809122847552 | etot = -33.5644507511996 +246000 ekin = 30.6998172933386 | erot = 21.0861202554748 | epot = -85.3503880690327 | etot = -33.5644505202193 +247000 ekin = 31.265212405902 | erot = 21.7433599271637 | epot = -86.5730230769931 | etot = -33.5644507439274 +248000 ekin = 31.2039013197071 | erot = 22.3578318777868 | epot = -87.1261839419724 | etot = -33.5644507444785 +249000 ekin = 31.0628965882674 | erot = 22.9361503364564 | epot = -87.563497668308 | etot = -33.5644507435842 +250000 ekin = 30.8544219835531 | erot = 23.4738999845616 | epot = -87.8927727106375 | etot = -33.5644507425228 +251000 ekin = 30.5979929542296 | erot = 23.9732495372637 | epot = -88.1356932312788 | etot = -33.5644507397854 +252000 ekin = 30.3186084933056 | erot = 24.4470234326924 | epot = -88.3300826628224 | etot = -33.5644507368245 +253000 ekin = 30.041632868323 | erot = 24.9117142614227 | epot = -88.5177978639943 | etot = -33.5644507342486 +254000 ekin = 29.6651322242815 | erot = 25.3352238224839 | epot = -88.5648072260565 | etot = -33.5644511792912 +255000 ekin = 27.9972596305184 | erot = 25.343644566417 | epot = -86.9053550134241 | etot = -33.5644508164887 +256000 ekin = 27.4480536506913 | erot = 26.2038023386853 | epot = -87.216306790649 | etot = -33.5644508012725 +257000 ekin = 28.5107044680624 | erot = 27.5793602337782 | epot = -89.6545158780358 | etot = -33.5644511761952 +258000 ekin = 28.9485040029259 | erot = 27.9141399630899 | epot = -90.4270947739431 | etot = -33.5644508079274 +259000 ekin = 29.1923898091059 | erot = 28.2760336628035 | epot = -91.0328742825817 | etot = -33.5644508106723 +260000 ekin = 29.442065950707 | erot = 28.6795119902558 | epot = -91.6860287570451 | etot = -33.5644508160824 +261000 ekin = 29.6845039883856 | erot = 29.1068404636931 | epot = -92.3557952701953 | etot = -33.5644508181166 +262000 ekin = 29.8834680797666 | erot = 29.5461970802723 | epot = -92.9941159814128 | etot = -33.5644508213739 +263000 ekin = 30.015935190767 | erot = 29.964909738063 | epot = -93.545295753821 | etot = -33.5644508249909 +264000 ekin = 30.0524877647281 | erot = 30.3384906869061 | epot = -93.9554292801698 | etot = -33.5644508285355 +265000 ekin = 29.9659450397407 | erot = 30.6431999052832 | epot = -94.1735957766809 | etot = -33.564450831657 +266000 ekin = 29.7355380957518 | erot = 30.8554934502802 | epot = -94.1554823800682 | etot = -33.5644508340362 +267000 ekin = 29.350217253177 | erot = 30.9531552650149 | epot = -93.8678233536528 | etot = -33.564450835461 +268000 ekin = 28.8109215600445 | erot = 30.9159121160384 | epot = -93.2912845119314 | etot = -33.5644508358484 +269000 ekin = 28.131229902636 | erot = 30.7258800106364 | epot = -92.4215607498827 | etot = -33.5644508366102 +270000 ekin = 27.3365120331628 | erot = 30.3685462542785 | epot = -91.26950914197 | etot = -33.5644508545286 +271000 ekin = 26.4621552466787 | erot = 29.8348321072734 | epot = -89.8614382055512 | etot = -33.5644508515991 +272000 ekin = 25.5514537841055 | erot = 29.123871510934 | epot = -88.2397761425329 | etot = -33.5644508474934 +273000 ekin = 24.6528090193024 | erot = 28.2453291639207 | epot = -86.4625890256565 | etot = -33.5644508424334 +274000 ekin = 23.8212346502742 | erot = 27.2200000603037 | epot = -84.6056855414942 | etot = -33.5644508309163 +275000 ekin = 22.9729777889705 | erot = 26.0804823635512 | epot = -82.6179111121121 | etot = -33.5644509595905 +276000 ekin = 22.0549791971374 | erot = 24.8883860441513 | epot = -80.5078160553758 | etot = -33.5644508140871 +277000 ekin = 22.291845448694 | erot = 23.6844629884807 | epot = -79.540759443928 | etot = -33.5644510067533 +278000 ekin = 22.2933944834771 | erot = 22.3796695906392 | epot = -78.2375149019929 | etot = -33.5644508278766 +279000 ekin = 22.3659748250016 | erot = 21.1183819743967 | epot = -77.0488076287097 | etot = -33.5644508293114 +280000 ekin = 22.5183002078625 | erot = 19.9334324614308 | epot = -76.0161834966431 | etot = -33.5644508273498 +281000 ekin = 22.7529481191411 | erot = 18.8478601493348 | epot = -75.1652590940351 | etot = -33.5644508255591 +282000 ekin = 23.0795879184867 | erot = 17.8776966475211 | epot = -74.5217353872447 | etot = -33.564450821237 +283000 ekin = 23.5210121271307 | erot = 17.0345324476566 | epot = -74.1199953957228 | etot = -33.5644508209355 +284000 ekin = 24.07992475589 | erot = 16.3233784658841 | epot = -73.9677540517476 | etot = -33.5644508299736 +285000 ekin = 24.7785446246423 | erot = 15.7478244913642 | epot = -74.0908199422233 | etot = -33.5644508262167 +286000 ekin = 25.636838734536 | erot = 15.3047487827835 | epot = -74.5060383422483 | etot = -33.5644508249288 +287000 ekin = 26.6214548224706 | erot = 14.9922504829288 | epot = -75.1781561308958 | etot = -33.5644508254964 +288000 ekin = 27.7267158888572 | erot = 14.8012865017013 | epot = -76.0924532218297 | etot = -33.5644508312711 +289000 ekin = 28.8920167227279 | erot = 14.7169892845691 | epot = -77.1734568439386 | etot = -33.5644508366416 +290000 ekin = 30.0553666648387 | erot = 14.7251675417572 | epot = -78.3449850482589 | etot = -33.5644508416631 +291000 ekin = 31.1595769632387 | erot = 14.811929120259 | epot = -79.5359569290839 | etot = -33.5644508455862 +292000 ekin = 32.1608216689813 | erot = 14.9640713088845 | epot = -80.6893438261509 | etot = -33.564450848285 +293000 ekin = 33.0319319380177 | erot = 15.168173905447 | epot = -81.7645566935966 | etot = -33.5644508501319 +294000 ekin = 33.7599421346976 | erot = 15.4088106779812 | epot = -82.7332036642767 | etot = -33.5644508515979 +295000 ekin = 34.3413485939712 | erot = 15.667394334235 | epot = -83.5731937811218 | etot = -33.5644508529156 +296000 ekin = 34.7782829446776 | erot = 15.9229210434175 | epot = -84.26565484209 | etot = -33.5644508539949 +297000 ekin = 35.0767101392392 | erot = 16.1546669536439 | epot = -84.7958279474754 | etot = -33.5644508545923 +298000 ekin = 35.2457989813493 | erot = 16.3457320030339 | epot = -85.1559818389166 | etot = -33.5644508545334 +299000 ekin = 35.2970066855207 | erot = 16.4859983979522 | epot = -85.347455937312 | etot = -33.564450853839 +300000 ekin = 35.2422237261662 | erot = 16.5735941681655 | epot = -85.3802687470049 | etot = -33.5644508526733 +301000 ekin = 35.0916597610801 | erot = 16.6147820199824 | epot = -85.2708926322694 | etot = -33.5644508512069 +302000 ekin = 34.8528128910573 | erot = 16.6227287108408 | epot = -85.0399924514116 | etot = -33.5644508495135 +303000 ekin = 34.5312597670619 | erot = 16.6156181966414 | epot = -84.7113288113064 | etot = -33.5644508476031 +304000 ekin = 34.1313674341479 | erot = 16.6227567332271 | epot = -84.3185750111593 | etot = -33.5644508437843 +305000 ekin = 33.6571822643538 | erot = 16.6720234605616 | epot = -83.8936565670797 | etot = -33.5644508421643 +306000 ekin = 33.1151986332185 | erot = 16.7769746117161 | epot = -83.4566240858681 | etot = -33.5644508409335 +307000 ekin = 32.5134330702932 | erot = 16.9437629167783 | epot = -83.02164682739 | etot = -33.5644508403184 +308000 ekin = 31.8601474906921 | erot = 17.1694637372502 | epot = -82.5940620683754 | etot = -33.564450840433 +309000 ekin = 31.1628016434689 | erot = 17.4420089824522 | epot = -82.169261466886 | etot = -33.564450840965 +310000 ekin = 30.4284939703374 | erot = 17.7430091431839 | epot = -81.7359539560138 | etot = -33.5644508424925 +311000 ekin = 29.6636970637345 | erot = 18.0450727084457 | epot = -81.2732206157263 | etot = -33.5644508435461 +312000 ekin = 28.8763119838581 | erot = 18.3211026916569 | epot = -80.7618655199121 | etot = -33.5644508443971 +313000 ekin = 28.0757317032389 | erot = 18.5482322978723 | epot = -80.18841484566 | etot = -33.5644508445488 +314000 ekin = 27.2754576015478 | erot = 18.7102692133214 | epot = -79.5501776586848 | etot = -33.5644508438156 +315000 ekin = 26.492751287582 | erot = 18.8002978243514 | epot = -78.8574999542526 | etot = -33.5644508423192 +316000 ekin = 25.7476825207451 | erot = 18.8201859998617 | epot = -78.1323193609057 | etot = -33.5644508402989 +317000 ekin = 25.061490505917 | erot = 18.7788964667389 | epot = -77.4048378106934 | etot = -33.5644508380374 +318000 ekin = 24.4546904069621 | erot = 18.6903703700711 | epot = -76.70951161281 | etot = -33.5644508357768 +319000 ekin = 23.9454326767099 | erot = 18.5716676910327 | epot = -76.0815512014053 | etot = -33.5644508336627 +320000 ekin = 23.5484361619436 | erot = 18.4417359442066 | epot = -75.5546229378898 | etot = -33.5644508317396 +321000 ekin = 23.2745454667293 | erot = 18.3209670206422 | epot = -75.1599633173638 | etot = -33.5644508299923 +322000 ekin = 23.1307065451601 | erot = 18.2311244117378 | epot = -74.9262817853413 | etot = -33.5644508284434 +323000 ekin = 23.1199305196705 | erot = 18.1948729379475 | epot = -74.8792542848651 | etot = -33.5644508272471 +324000 ekin = 23.2402241372721 | erot = 18.2346442881315 | epot = -75.0393192521543 | etot = -33.5644508267507 +325000 ekin = 23.4710021373605 | erot = 18.3668956955574 | epot = -75.4023486642627 | etot = -33.5644508313448 +326000 ekin = 23.7795455091373 | erot = 18.5932769387736 | epot = -75.9372732824513 | etot = -33.5644508345405 +327000 ekin = 24.1343713309104 | erot = 18.9009306660405 | epot = -76.5997528364855 | etot = -33.5644508395347 +328000 ekin = 24.4953646019651 | erot = 19.2611055951325 | epot = -77.3209210429526 | etot = -33.564450845855 +329000 ekin = 24.8184483225885 | erot = 19.6309716495633 | epot = -78.0138708245784 | etot = -33.5644508524265 +330000 ekin = 25.064815357625 | erot = 19.9600875040515 | epot = -78.5893537191764 | etot = -33.5644508574999 +331000 ekin = 25.210138372085 | erot = 20.2008919381964 | epot = -78.9754811706065 | etot = -33.5644508603252 +332000 ekin = 25.2457706637465 | erot = 20.3248269292201 | epot = -79.1350484525863 | etot = -33.5644508596197 +333000 ekin = 25.1861890028038 | erot = 20.3296166390246 | epot = -79.0802564973891 | etot = -33.5644508555607 +334000 ekin = 25.0662190978875 | erot = 20.2399843242263 | epot = -78.8706542713047 | etot = -33.5644508491909 +335000 ekin = 24.9333683334916 | erot = 20.10098162188 | epot = -78.5988007973609 | etot = -33.5644508419894 +336000 ekin = 24.838111457398 | erot = 19.9670256543986 | epot = -78.3695879471494 | etot = -33.5644508353528 +337000 ekin = 24.8247545149941 | erot = 19.8908557634947 | epot = -78.2800611092981 | etot = -33.5644508308092 +338000 ekin = 24.9246805340852 | erot = 19.9088859975653 | epot = -78.3980173596517 | etot = -33.5644508280012 +339000 ekin = 25.1522743468773 | erot = 20.043365846553 | epot = -78.7600910207995 | etot = -33.5644508273693 +340000 ekin = 25.5040328013693 | erot = 20.306324357249 | epot = -79.3748079873049 | etot = -33.5644508286866 +341000 ekin = 25.9593882031618 | erot = 20.6972938179444 | epot = -80.2211328525995 | etot = -33.5644508314932 +342000 ekin = 26.4842114254738 | erot = 21.2060406180888 | epot = -81.2547028788679 | etot = -33.5644508353053 +343000 ekin = 27.0356929912357 | erot = 21.815327972342 | epot = -82.4154718031651 | etot = -33.5644508395875 +344000 ekin = 27.5676973344761 | erot = 22.5033872894512 | epot = -83.6355354677601 | etot = -33.5644508438328 +345000 ekin = 28.0359749646807 | erot = 23.2463366467675 | epot = -84.8467624590903 | etot = -33.5644508476421 +346000 ekin = 28.4026013552871 | erot = 24.0201112992161 | epot = -85.9871635052192 | etot = -33.564450850716 +347000 ekin = 28.6398915194528 | erot = 24.8020103746231 | epot = -87.0063527467572 | etot = -33.5644508526813 +348000 ekin = 28.7326075377482 | erot = 25.5714490942921 | epot = -87.8685074860267 | etot = -33.5644508539863 +349000 ekin = 28.6752584344036 | erot = 26.3100180841384 | epot = -88.549727373061 | etot = -33.564450854519 +350000 ekin = 28.4730637357079 | erot = 27.0009502159031 | epot = -89.038464806185 | etot = -33.564450854574 +351000 ekin = 28.1395378484453 | erot = 27.6270646736909 | epot = -89.3310533767997 | etot = -33.5644508546635 +352000 ekin = 27.692958073856 | erot = 28.1676652362281 | epot = -89.4250741653402 | etot = -33.5644508552561 +353000 ekin = 27.1526950366525 | erot = 28.5958100264823 | epot = -89.3129559196985 | etot = -33.5644508565636 +354000 ekin = 26.5365141387121 | erot = 28.8781341171817 | epot = -88.9790991141991 | etot = -33.5644508583052 +355000 ekin = 25.8598799836129 | erot = 28.9793031096872 | epot = -88.4036339528938 | etot = -33.5644508595937 +356000 ekin = 25.1375717946229 | erot = 28.8722956885124 | epot = -87.5743183424417 | etot = -33.5644508593064 +357000 ekin = 24.3868741548633 | erot = 28.5495289601074 | epot = -86.5008539716514 | etot = -33.5644508566807 +358000 ekin = 23.6300778926751 | erot = 28.0297879776407 | epot = -85.2243167221727 | etot = -33.5644508518569 +359000 ekin = 22.8939201469052 | erot = 27.355677035979 | epot = -83.8140480288444 | etot = -33.5644508459602 +360000 ekin = 22.206578007299 | erot = 26.5834479666855 | epot = -82.3544768140201 | etot = -33.5644508400356 +361000 ekin = 21.5986345635157 | erot = 25.7744654426823 | epot = -80.9375508370781 | etot = -33.5644508308802 +362000 ekin = 21.1083260621075 | erot = 24.989507840829 | epot = -79.6622847317925 | etot = -33.564450828856 +363000 ekin = 20.7375100619836 | erot = 24.2576398932737 | epot = -78.5596007834521 | etot = -33.5644508281948 +364000 ekin = 20.476003367975 | erot = 23.5946470163905 | epot = -77.635101212758 | etot = -33.5644508283926 +365000 ekin = 20.3079089893725 | erot = 23.009513896542 | epot = -76.8818737148766 | etot = -33.5644508289621 +366000 ekin = 20.2147979335995 | erot = 22.508371935773 | epot = -76.2876206988782 | etot = -33.5644508295058 +367000 ekin = 20.1786185360397 | erot = 22.0973297018217 | epot = -75.8403990676851 | etot = -33.5644508298237 +368000 ekin = 20.1837486799222 | erot = 21.7835270635243 | epot = -75.5317265733032 | etot = -33.5644508298567 +369000 ekin = 20.2182310118282 | erot = 21.574738818764 | epot = -75.3574206602716 | etot = -33.5644508296795 +370000 ekin = 20.2742556079065 | erot = 21.4781104693876 | epot = -75.3168169068296 | etot = -33.5644508295354 +371000 ekin = 20.3477066126427 | erot = 21.4982876398118 | epot = -75.4104450815928 | etot = -33.5644508291383 +372000 ekin = 20.4391769085492 | erot = 21.6370751258624 | epot = -75.6407028633193 | etot = -33.5644508289077 +373000 ekin = 20.5523906693865 | erot = 21.8921389377599 | epot = -76.0089804360328 | etot = -33.5644508288864 +374000 ekin = 20.6947607298497 | erot = 22.2561865203504 | epot = -76.5153980788613 | etot = -33.5644508286612 +375000 ekin = 20.8734352289465 | erot = 22.7176361068345 | epot = -77.1555221652783 | etot = -33.5644508294973 +376000 ekin = 21.089493504449 | erot = 23.2620769848747 | epot = -77.9160213199094 | etot = -33.5644508305857 +377000 ekin = 21.3446674636834 | erot = 23.8720082855239 | epot = -78.7811265807323 | etot = -33.5644508315251 +378000 ekin = 21.64248542288 | erot = 24.5275644040167 | epot = -79.7345006597438 | etot = -33.5644508328471 +379000 ekin = 21.9906215820674 | erot = 25.2058289791334 | epot = -80.760901395464 | etot = -33.5644508342632 +380000 ekin = 22.3975872844685 | erot = 25.8799316875408 | epot = -81.8419698098752 | etot = -33.5644508378659 +381000 ekin = 22.8474625363943 | erot = 26.5196756829191 | epot = -82.9315890607488 | etot = -33.5644508414354 +382000 ekin = 23.3214968284424 | erot = 27.0935868814443 | epot = -83.9795345552253 | etot = -33.5644508453386 +383000 ekin = 23.7989486472446 | erot = 27.5682880226977 | epot = -84.9316875190629 | etot = -33.5644508491206 +384000 ekin = 24.2602946690265 | erot = 27.9101784190738 | epot = -85.7349239404018 | etot = -33.5644508523015 +385000 ekin = 24.6909701694311 | erot = 28.0892515731128 | epot = -86.3446725966466 | etot = -33.5644508541027 +386000 ekin = 25.0758089633983 | erot = 28.0812872789257 | epot = -86.7215471012156 | etot = -33.5644508588916 +387000 ekin = 25.3886917944075 | erot = 27.8683599140167 | epot = -86.8215025662873 | etot = -33.5644508578631 +388000 ekin = 25.6321888108903 | erot = 27.4567876604955 | epot = -86.6534273266304 | etot = -33.5644508552446 +389000 ekin = 25.8173007945516 | erot = 26.8690369422729 | epot = -86.2507885889323 | etot = -33.5644508521078 +390000 ekin = 25.9562629244357 | erot = 26.1386991559259 | epot = -85.6594129285287 | etot = -33.5644508481671 +391000 ekin = 26.0625510048269 | erot = 25.3050096521924 | epot = -84.9320115015289 | etot = -33.5644508445096 +392000 ekin = 26.1477279258622 | erot = 24.4077754077168 | epot = -84.1199541750021 | etot = -33.5644508414231 +393000 ekin = 26.2207009126332 | erot = 23.4862823971765 | epot = -83.2714341487272 | etot = -33.5644508389175 +394000 ekin = 26.2880235523287 | erot = 22.5776047859249 | epot = -82.4300791763575 | etot = -33.5644508381039 +395000 ekin = 26.3461327830984 | erot = 21.6992206106144 | epot = -81.6098042311068 | etot = -33.564450837394 +396000 ekin = 26.3925769143903 | erot = 20.8648963380663 | epot = -80.8219240890407 | etot = -33.5644508365841 +397000 ekin = 26.428035758933 | erot = 20.0875980485209 | epot = -80.0800846430096 | etot = -33.5644508355556 +398000 ekin = 26.456826416021 | erot = 19.3805747697538 | epot = -79.4018520200386 | etot = -33.5644508342638 +399000 ekin = 26.486391084066 | erot = 18.7576183807505 | epot = -78.8084602983018 | etot = -33.5644508334853 +400000 ekin = 26.5240355653678 | erot = 18.2309165845048 | epot = -78.3194029820227 | etot = -33.5644508321501 +401000 ekin = 26.5785515874793 | erot = 17.8133011772033 | epot = -77.9563035960443 | etot = -33.5644508313617 +402000 ekin = 26.6553316875252 | erot = 17.514632436928 | epot = -77.734414956193 | etot = -33.5644508317398 +403000 ekin = 26.7508441445099 | erot = 17.3369800813554 | epot = -77.652275059838 | etot = -33.5644508339727 +404000 ekin = 26.847889984788 | erot = 17.2703664407998 | epot = -77.6827072638883 | etot = -33.5644508383005 +405000 ekin = 26.913648151536 | erot = 17.2906409832311 | epot = -77.7687399796104 | etot = -33.5644508448433 +406000 ekin = 26.902674398225 | erot = 17.3519919760325 | epot = -77.8191172252429 | etot = -33.5644508509854 +407000 ekin = 26.7697793194821 | erot = 17.4151352557073 | epot = -77.7493654299019 | etot = -33.5644508547125 +408000 ekin = 26.4852107134516 | erot = 17.4599310842078 | epot = -77.5095926523416 | etot = -33.5644508546822 +409000 ekin = 26.0447937750069 | erot = 17.489715636437 | epot = -77.0989602629569 | etot = -33.5644508515129 +410000 ekin = 25.4686689668068 | erot = 17.525308599665 | epot = -76.5584284134685 | etot = -33.5644508469967 +411000 ekin = 24.7901856107123 | erot = 17.5925678630378 | epot = -75.9472043167211 | etot = -33.5644508429709 +412000 ekin = 24.0429450725907 | erot = 17.7112262982761 | epot = -75.3186222112118 | etot = -33.5644508403449 +413000 ekin = 23.2530709445256 | erot = 17.8904894596477 | epot = -74.7080112432066 | etot = -33.5644508390334 +414000 ekin = 22.4380957573478 | erot = 18.1309089877695 | epot = -74.1334555836572 | etot = -33.5644508385398 +415000 ekin = 21.6095002976116 | erot = 18.4284521142751 | epot = -73.602403250255 | etot = -33.5644508383683 +416000 ekin = 20.7759703157875 | erot = 18.7780315269414 | epot = -73.1184526809263 | etot = -33.5644508381974 +417000 ekin = 19.9459219947443 | erot = 19.1754390641456 | epot = -72.6858118967654 | etot = -33.5644508378755 +418000 ekin = 19.1290603146812 | erot = 19.6178812354861 | epot = -72.3113923875162 | etot = -33.5644508373488 +419000 ekin = 18.337241174772 | erot = 20.1037315119174 | epot = -72.0054235233031 | etot = -33.5644508366137 +420000 ekin = 17.5848708568132 | erot = 20.6319495840779 | epot = -71.7812712766011 | etot = -33.56445083571 +421000 ekin = 16.8888669767983 | erot = 21.2012508779721 | epot = -71.654568689522 | etot = -33.5644508347516 +422000 ekin = 16.2680311854784 | erot = 21.8088345390476 | epot = -71.6413165584825 | etot = -33.5644508339565 +423000 ekin = 15.7416423467535 | erot = 22.4484657014465 | epot = -71.7545588818543 | etot = -33.5644508336543 +424000 ekin = 15.3271568811325 | erot = 23.1079611162026 | epot = -71.9995688315969 | etot = -33.5644508342617 +425000 ekin = 15.0370245443348 | erot = 23.7664993128454 | epot = -72.3679746933972 | etot = -33.564450836217 +426000 ekin = 14.8748792453187 | erot = 24.3924933231442 | epot = -72.8318234082976 | etot = -33.5644508398346 +427000 ekin = 14.832039809902 | erot = 24.9432466995696 | epot = -73.3397373544821 | etot = -33.5644508450105 +428000 ekin = 14.8863924965724 | erot = 25.3682827941945 | epot = -73.8191261416202 | etot = -33.5644508508533 +429000 ekin = 15.0062259695096 | erot = 25.6182665544711 | epot = -74.1889433796231 | etot = -33.5644508556425 +430000 ekin = 15.1595389321706 | erot = 25.6590201133014 | epot = -74.3830099029893 | etot = -33.5644508575173 +431000 ekin = 15.3249133699301 | erot = 25.4851984008896 | epot = -74.3745626264541 | etot = -33.5644508556344 +432000 ekin = 15.4974987577291 | erot = 25.1253113466907 | epot = -74.1872609551818 | etot = -33.564450850762 +433000 ekin = 15.6867402477113 | erot = 24.6339851579825 | epot = -73.8851762504141 | etot = -33.5644508447203 +434000 ekin = 15.9084789524794 | erot = 24.0759117528502 | epot = -73.5488415445721 | etot = -33.5644508392426 +435000 ekin = 16.1769022059295 | erot = 23.5103596607615 | epot = -73.2517127019844 | etot = -33.5644508352934 +436000 ekin = 16.4997173059121 | erot = 22.982276516596 | epot = -73.0464446556282 | etot = -33.5644508331201 +437000 ekin = 16.8769806267692 | erot = 22.5199344326914 | epot = -72.9613658918858 | etot = -33.5644508324252 +438000 ekin = 17.3021259571189 | erot = 22.1372453982692 | epot = -73.0038221882045 | etot = -33.5644508328165 +439000 ekin = 17.7637229038904 | erot = 21.8373393625555 | epot = -73.1655131003915 | etot = -33.5644508339456 +440000 ekin = 18.2471223979642 | erot = 21.6157595595105 | epot = -73.4273327930288 | etot = -33.5644508355542 +441000 ekin = 18.7357201395202 | erot = 21.4628710845264 | epot = -73.7630420615274 | etot = -33.5644508374808 +442000 ekin = 19.2118878212758 | erot = 21.3654515420967 | epot = -74.1417902029639 | etot = -33.5644508395913 +443000 ekin = 19.6577318124847 | erot = 21.3079015376766 | epot = -74.53008419193 | etot = -33.5644508417687 +444000 ekin = 20.0558238633514 | erot = 21.2733344148632 | epot = -74.8936091221088 | etot = -33.5644508438943 +445000 ekin = 20.3899893912765 | erot = 21.2445884062657 | epot = -75.1990286433742 | etot = -33.564450845832 +446000 ekin = 20.6461236044623 | erot = 21.2052857367731 | epot = -75.4158601887455 | etot = -33.5644508475101 +447000 ekin = 20.8131102288242 | erot = 21.1405154512163 | epot = -75.5180765281394 | etot = -33.5644508480989 +448000 ekin = 20.8836321566285 | erot = 21.0415726580739 | epot = -75.4896556637134 | etot = -33.564450849011 +449000 ekin = 20.8549766397521 | erot = 20.9006105485552 | epot = -75.3200380377527 | etot = -33.5644508494454 +450000 ekin = 20.7289995990038 | erot = 20.7094982244637 | epot = -75.0029486728388 | etot = -33.5644508493713 +451000 ekin = 20.5121237021944 | erot = 20.4634057687326 | epot = -74.5399803196977 | etot = -33.5644508487708 +452000 ekin = 20.2152499009175 | erot = 20.1611428754593 | epot = -73.9408436240171 | etot = -33.5644508476403 +453000 ekin = 19.8534700766569 | erot = 19.8054562088314 | epot = -73.2233771314871 | etot = -33.5644508459988 +454000 ekin = 19.4456214293028 | erot = 19.4031472753521 | epot = -72.4132195485558 | etot = -33.5644508439009 +455000 ekin = 19.013720522958 | erot = 18.9648723131976 | epot = -71.5430436775731 | etot = -33.5644508414174 +456000 ekin = 18.5823093301098 | erot = 18.5046119868785 | epot = -70.6513721556565 | etot = -33.5644508386682 +457000 ekin = 18.1775784950835 | erot = 18.0385547552667 | epot = -69.78058408621 | etot = -33.5644508358598 +458000 ekin = 17.8262193053526 | erot = 17.5834820270548 | epot = -68.9741521653779 | etot = -33.5644508329705 +459000 ekin = 17.5544328315452 | erot = 17.1574115033618 | epot = -68.2762951652654 | etot = -33.5644508303584 +460000 ekin = 17.3857834994296 | erot = 16.7769882364438 | epot = -67.7272225641225 | etot = -33.5644508282491 +461000 ekin = 17.3389537757626 | erot = 16.455973724737 | epot = -67.3593783273661 | etot = -33.5644508268665 +462000 ekin = 17.4254421541841 | erot = 16.2041333991817 | epot = -67.1940263797602 | etot = -33.5644508263943 +463000 ekin = 17.6475549838229 | erot = 16.0264214063364 | epot = -67.2384272171003 | etot = -33.564450826941 +464000 ekin = 17.9971528391881 | erot = 15.9226257283447 | epot = -67.4842293960243 | etot = -33.5644508284914 +465000 ekin = 18.4555654856042 | erot = 15.8876205732821 | epot = -67.9076368897882 | etot = -33.5644508309019 +466000 ekin = 18.994833816268 | erot = 15.9122553308001 | epot = -68.4715399809881 | etot = -33.56445083392 +467000 ekin = 19.5800987880665 | erot = 15.9847161184822 | epot = -69.1292657437925 | etot = -33.5644508372437 +468000 ekin = 20.1726645576357 | erot = 16.092033474867 | epot = -69.8291488730892 | etot = -33.5644508405865 +469000 ekin = 20.7331520539173 | erot = 16.2213910260308 | epot = -70.5189939236682 | etot = -33.5644508437201 +470000 ekin = 21.2242791251891 | erot = 16.3610502015494 | epot = -71.1497801732201 | etot = -33.5644508464816 +471000 ekin = 21.6130740295016 | erot = 16.5009517692281 | epot = -71.6784766474807 | etot = -33.5644508487511 +472000 ekin = 21.8725913830426 | erot = 16.6332178546314 | epot = -72.0702600880887 | etot = -33.5644508504148 +473000 ekin = 21.9833185471591 | erot = 16.7527436323979 | epot = -72.3005130309141 | etot = -33.5644508513571 +474000 ekin = 21.9344099206197 | erot = 16.8578720765084 | epot = -72.3567328486035 | etot = -33.5644508514753 +475000 ekin = 21.7247480854268 | erot = 16.9509439426178 | epot = -72.2401428787492 | etot = -33.5644508507046 +476000 ekin = 21.3637036554458 | erot = 17.0384540155613 | epot = -71.9666085200589 | etot = -33.5644508490518 +477000 ekin = 20.8713853163245 | erot = 17.1305938642667 | epot = -71.5664300271903 | etot = -33.5644508465991 +478000 ekin = 20.278105615873 | erot = 17.2401904856046 | epot = -71.0827469450555 | etot = -33.5644508435779 +479000 ekin = 19.6228148922665 | erot = 17.3807417056378 | epot = -70.568007438203 | etot = -33.5644508402987 +480000 ekin = 18.9501924820064 | erot = 17.5641098022629 | epot = -70.0787531214702 | etot = -33.5644508372009 +481000 ekin = 18.3063999207717 | erot = 17.7978626898958 | epot = -69.6687134454551 | etot = -33.5644508347876 +482000 ekin = 17.7338800308325 | erot = 18.0826185785594 | epot = -69.3809494429303 | etot = -33.5644508335384 +483000 ekin = 17.2661333869276 | erot = 18.4098565339483 | epot = -69.240440754661 | etot = -33.5644508337851 +484000 ekin = 16.9123469725788 | erot = 18.5839236849874 | epot = -69.0607216152016 | etot = -33.5644509576354 +485000 ekin = 17.2473052114824 | erot = 17.4463141951386 | epot = -68.2580700313457 | etot = -33.5644506247246 +486000 ekin = 18.3155143091698 | erot = 17.1832730976792 | epot = -69.0632384225994 | etot = -33.5644510157505 +487000 ekin = 18.1324826614411 | erot = 17.2801627137661 | epot = -68.97709615336 | etot = -33.5644507781527 +488000 ekin = 18.065066671032 | erot = 17.4264266856946 | epot = -69.0559441347504 | etot = -33.5644507780238 +489000 ekin = 18.1230207571896 | erot = 17.62013699274 | epot = -69.3076085290087 | etot = -33.5644507790791 +490000 ekin = 18.2959502060246 | erot = 17.8551924365762 | epot = -69.7155934233775 | etot = -33.5644507807768 +491000 ekin = 18.5602651979885 | erot = 18.1239992625185 | epot = -70.2487152439638 | etot = -33.5644507834568 +492000 ekin = 18.8855238698909 | erot = 18.4159985147992 | epot = -70.8659731703599 | etot = -33.5644507856698 +493000 ekin = 19.2395352565568 | erot = 18.728264479198 | epot = -71.5322505227183 | etot = -33.5644507869634 +494000 ekin = 19.5921246700955 | erot = 19.0689157919617 | epot = -72.2254912499723 | etot = -33.564450787915 +495000 ekin = 19.0728202093635 | erot = 18.9158482409358 | epot = -71.553118977483 | etot = -33.5644505271837 +496000 ekin = 19.8797920565295 | erot = 18.7380967908333 | epot = -72.1823393794609 | etot = -33.5644505320982 +497000 ekin = 21.3129327566087 | erot = 19.2208596910155 | epot = -74.0982428018017 | etot = -33.5644503541775 +498000 ekin = 21.3264694811286 | erot = 19.7980335585692 | epot = -74.6889533936585 | etot = -33.5644503539607 +499000 ekin = 21.2778907742156 | erot = 20.4793064458065 | epot = -75.3216475743002 | etot = -33.5644503542781 +500000 ekin = 21.1661916282903 | erot = 21.2581781223902 | epot = -75.988820105787 | etot = -33.5644503551065 +501000 ekin = 20.9926825375652 | erot = 22.1178388255783 | epot = -76.6749717195959 | etot = -33.5644503564525 +502000 ekin = 20.7610606941479 | erot = 23.0317414653473 | epot = -77.3572525175607 | etot = -33.5644503580655 +503000 ekin = 20.4798770188399 | erot = 23.9650377707536 | epot = -78.0093651497042 | etot = -33.5644503601106 +504000 ekin = 20.1546807719764 | erot = 24.8789199645846 | epot = -78.5980510989298 | etot = -33.5644503623688 +505000 ekin = 19.7897861052766 | erot = 25.7326258924132 | epot = -79.0868623624994 | etot = -33.5644503648096 +506000 ekin = 19.3875459003549 | erot = 26.4882337371013 | epot = -79.4402300038003 | etot = -33.564450366344 +507000 ekin = 18.9527707503713 | erot = 27.1161379584882 | epot = -79.6333590756734 | etot = -33.5644503668138 +508000 ekin = 18.4930541127617 | erot = 27.6003825990922 | epot = -79.6578870777478 | etot = -33.5644503658939 +509000 ekin = 18.0182547166152 | erot = 27.9414911095304 | epot = -79.5241961902308 | etot = -33.5644503640852 +510000 ekin = 17.5239659446583 | erot = 28.1499521523349 | epot = -79.2383684583427 | etot = -33.5644503613495 +511000 ekin = 17.0202767588224 | erot = 28.2490270330593 | epot = -78.8337541499512 | etot = -33.5644503580695 +512000 ekin = 16.5245718006517 | erot = 28.2698315419544 | epot = -78.3588536974674 | etot = -33.5644503548613 +513000 ekin = 16.0539184296555 | erot = 28.2435719405511 | epot = -77.8619407224233 | etot = -33.5644503522167 +514000 ekin = 15.6229539751463 | erot = 28.1963871950865 | epot = -77.3837915206358 | etot = -33.564450350403 +515000 ekin = 15.2424792420144 | erot = 28.1464443105655 | epot = -76.9533739021307 | etot = -33.5644503495508 +516000 ekin = 14.9188926056263 | erot = 28.102754035252 | epot = -76.5860969902898 | etot = -33.5644503494115 +517000 ekin = 14.6543809151572 | erot = 28.0678237290645 | epot = -76.286654994032 | etot = -33.5644503498102 +518000 ekin = 14.4476572455448 | erot = 28.0395642675265 | epot = -76.0516718635495 | etot = -33.5644503504781 +519000 ekin = 14.2950490439313 | erot = 28.0138489409074 | epot = -75.8733483359815 | etot = -33.5644503511427 +520000 ekin = 14.1917488336712 | erot = 27.9870813583917 | epot = -75.7432805436438 | etot = -33.564450351581 +521000 ekin = 14.1329830510129 | erot = 27.9581295478616 | epot = -75.6555629505529 | etot = -33.5644503516784 +522000 ekin = 14.1002586402904 | erot = 27.7732671764717 | epot = -75.4379761963452 | etot = -33.5644503795831 +523000 ekin = 14.1969588160089 | erot = 27.1027118580652 | epot = -74.8641209749246 | etot = -33.5644503008506 +524000 ekin = 14.7378402614501 | erot = 26.616408914504 | epot = -74.9186994724366 | etot = -33.5644502964825 +525000 ekin = 15.506867285083 | erot = 26.5883544533635 | epot = -75.6596721107952 | etot = -33.5644503723486 +526000 ekin = 15.8574449977295 | erot = 26.6724957238465 | epot = -76.0943910941999 | etot = -33.5644503726239 +527000 ekin = 16.0112069682755 | erot = 26.735509894999 | epot = -76.3111672365705 | etot = -33.5644503732961 +528000 ekin = 16.1641744091399 | erot = 26.794797881151 | epot = -76.5234226642097 | etot = -33.5644503739187 +529000 ekin = 16.3159009762014 | erot = 26.8380825380496 | epot = -76.7184338885631 | etot = -33.564450374312 +530000 ekin = 16.4667477211871 | erot = 26.8553312025443 | epot = -76.8865292981414 | etot = -33.5644503744099 +531000 ekin = 16.6177352356877 | erot = 26.8400251085783 | epot = -77.0222107185202 | etot = -33.5644503742542 +532000 ekin = 16.770215067808 | erot = 26.7891084873303 | epot = -77.1237739290464 | etot = -33.5644503739081 +533000 ekin = 16.9253640369286 | erot = 26.7024973873184 | epot = -77.1923117977069 | etot = -33.5644503734599 +534000 ekin = 17.083644786901 | erot = 26.5822176528864 | epot = -77.2303128128235 | etot = -33.5644503730361 +535000 ekin = 17.2444487917795 | erot = 26.4310079588738 | epot = -77.2399071233944 | etot = -33.5644503727411 +536000 ekin = 17.4060591056372 | erot = 26.2510049056998 | epot = -77.2215143839431 | etot = -33.5644503726061 +537000 ekin = 17.565899198427 | erot = 26.0431264908893 | epot = -77.1734760618753 | etot = -33.5644503725589 +538000 ekin = 17.7209415439151 | erot = 25.807444121848 | epot = -77.0928360383798 | etot = -33.5644503726168 +539000 ekin = 17.8681497081321 | erot = 25.5433035299374 | epot = -76.9759036107203 | etot = -33.5644503726507 +540000 ekin = 18.0048631565718 | erot = 25.2502517038857 | epot = -76.8195652330541 | etot = -33.5644503725966 +541000 ekin = 18.129064827171 | erot = 24.9288645877469 | epot = -76.6223797873357 | etot = -33.5644503724178 +542000 ekin = 18.2395164939016 | erot = 24.5811691615965 | epot = -76.3851360275838 | etot = -33.5644503720856 +543000 ekin = 18.3357700080052 | erot = 24.210846834268 | epot = -76.1110672139389 | etot = -33.5644503716657 +544000 ekin = 18.4180615073977 | erot = 23.8229131244208 | epot = -75.8054250029922 | etot = -33.5644503711738 +545000 ekin = 18.48709013 | erot = 23.4236993423704 | epot = -75.475239842524 | etot = -33.5644503701536 +546000 ekin = 18.5436104708162 | erot = 23.023272620427 | epot = -75.1313334610026 | etot = -33.5644503697594 +547000 ekin = 18.5881260728255 | erot = 22.6282216102247 | epot = -74.780798052539 | etot = -33.5644503694888 +548000 ekin = 18.6206521539779 | erot = 22.2431161969749 | epot = -74.4282187199115 | etot = -33.5644503689587 +549000 ekin = 18.6395328552822 | erot = 21.8731131587291 | epot = -74.0770963833356 | etot = -33.5644503693243 +550000 ekin = 18.6420012526372 | erot = 21.5194517195331 | epot = -73.7259033420982 | etot = -33.5644503699279 +551000 ekin = 18.6249210292856 | erot = 21.1784779028361 | epot = -73.3678493028498 | etot = -33.5644503707282 +552000 ekin = 18.5841928768992 | erot = 20.8452278495212 | epot = -72.9938710980166 | etot = -33.5644503715962 +553000 ekin = 18.515212705724 | erot = 20.5148731368217 | epot = -72.5945362148738 | etot = -33.5644503723281 +554000 ekin = 18.4136816909966 | erot = 20.1848933331084 | epot = -72.1630253967881 | etot = -33.5644503726831 +555000 ekin = 18.2766906401233 | erot = 19.857476932628 | epot = -71.6986179451961 | etot = -33.5644503724447 +556000 ekin = 18.1040115049041 | erot = 19.5406874735951 | epot = -71.20914935019 | etot = -33.5644503716908 +557000 ekin = 17.8992309647499 | erot = 19.2497226287959 | epot = -70.7134039634794 | etot = -33.5644503699335 +558000 ekin = 17.6705778374572 | erot = 19.0080857253366 | epot = -70.2431139302706 | etot = -33.5644503674768 +559000 ekin = 17.4315653927809 | erot = 18.8444628123191 | epot = -69.8404785695829 | etot = -33.5644503644829 +560000 ekin = 17.2006230348878 | erot = 18.7901643782654 | epot = -69.5552377744807 | etot = -33.5644503613275 +561000 ekin = 16.9995569160732 | erot = 18.8749610237664 | epot = -69.438968298262 | etot = -33.5644503584223 +562000 ekin = 16.8505251060201 | erot = 19.1232120100743 | epot = -69.538187472407 | etot = -33.5644503563126 +563000 ekin = 16.7718160200182 | erot = 19.5498137335684 | epot = -69.8860801091477 | etot = -33.5644503555612 +564000 ekin = 16.7730284254869 | erot = 20.1561760612857 | epot = -70.4936548437135 | etot = -33.564450356941 +565000 ekin = 16.8503463818591 | erot = 20.9261148982968 | epot = -71.3409116403028 | etot = -33.5644503601468 +566000 ekin = 16.9881817954648 | erot = 21.8252877510101 | epot = -72.3779199117371 | etot = -33.5644503652621 +567000 ekin = 17.1597730194767 | erot = 22.8021750341433 | epot = -73.5263984254872 | etot = -33.5644503718672 +568000 ekin = 17.3309908966704 | erot = 23.7909429898642 | epot = -74.6863842658269 | etot = -33.5644503792923 +569000 ekin = 17.4658946017947 | erot = 24.7167318453097 | epot = -75.7470768337898 | etot = -33.5644503866854 +570000 ekin = 17.5327796656957 | erot = 25.5030724456584 | epot = -76.6003025044407 | etot = -33.5644503930867 +571000 ekin = 17.5098280200956 | erot = 26.0808668137263 | epot = -77.1551452313793 | etot = -33.5644503975575 +572000 ekin = 17.3896134298641 | erot = 26.3976580231972 | epot = -77.3517218524132 | etot = -33.5644503993519 +573000 ekin = 17.1817696520727 | erot = 26.4252545062395 | epot = -77.1714745564325 | etot = -33.5644503981203 +574000 ekin = 16.9132012155478 | erot = 26.1636856780794 | epot = -76.6413372876784 | etot = -33.5644503940512 +575000 ekin = 16.6253831480204 | erot = 25.6401831359933 | epot = -75.8300166719201 | etot = -33.5644503879064 +576000 ekin = 16.380585448721 | erot = 24.9437607561783 | epot = -74.8887965737009 | etot = -33.5644503688016 +577000 ekin = 16.2309295888517 | erot = 24.1552332190076 | epot = -73.9506131738505 | etot = -33.5644503659912 +578000 ekin = 16.2003426792014 | erot = 23.2996785341935 | epot = -73.0644715774378 | etot = -33.5644503640429 +579000 ekin = 16.2983938260692 | erot = 22.403268564264 | epot = -72.2661127535552 | etot = -33.564450363222 +580000 ekin = 16.5164282817949 | erot = 21.4889399504527 | epot = -71.5698185979652 | etot = -33.5644503657176 +581000 ekin = 16.8294131729517 | erot = 20.5770732253488 | epot = -70.9709367638666 | etot = -33.5644503655661 +582000 ekin = 17.2014342865815 | erot = 19.7085617423075 | epot = -70.4744463947337 | etot = -33.5644503658447 +583000 ekin = 17.5894541379175 | erot = 18.9251667746001 | epot = -70.0790712786264 | etot = -33.5644503661089 +584000 ekin = 17.9521233670864 | erot = 18.2657373645481 | epot = -69.7823110977226 | etot = -33.5644503660881 +585000 ekin = 18.2577014583726 | erot = 17.7627566558239 | epot = -69.5849084798981 | etot = -33.5644503657016 +586000 ekin = 18.4890373219802 | erot = 17.4391816025382 | epot = -69.4926692894764 | etot = -33.564450364958 +587000 ekin = 18.6451700996557 | erot = 17.3070654479175 | epot = -69.5166859114532 | etot = -33.56445036388 +588000 ekin = 18.7400423388426 | erot = 17.3682960794591 | epot = -69.6727887808625 | etot = -33.5644503625608 +589000 ekin = 18.7988289995881 | erot = 17.6163757903826 | epot = -69.9796551512482 | etot = -33.5644503612775 +590000 ekin = 18.8521852512136 | erot = 18.0377077417099 | epot = -70.4543433534176 | etot = -33.5644503604942 +591000 ekin = 18.9335216734591 | erot = 18.6145318738827 | epot = -71.1125039068147 | etot = -33.5644503594728 +592000 ekin = 19.0736372367424 | erot = 19.3273958987853 | epot = -71.9654834959436 | etot = -33.5644503604159 +593000 ekin = 19.2836835998251 | erot = 20.1464047126482 | epot = -72.9945386752994 | etot = -33.5644503628261 +594000 ekin = 19.5596584182911 | erot = 21.034123237702 | epot = -74.1582320224138 | etot = -33.5644503664207 +595000 ekin = 19.8847224289421 | erot = 21.9477887878841 | epot = -75.3969615874945 | etot = -33.5644503706683 +596000 ekin = 20.2229995980596 | erot = 22.8321032481879 | epot = -76.6195532314308 | etot = -33.5644503851833 +597000 ekin = 20.5134057747578 | erot = 23.6125551263639 | epot = -77.690411290674 | etot = -33.5644503895523 +598000 ekin = 20.7238255187825 | erot = 24.2466753991533 | epot = -78.5349513101318 | etot = -33.564450392196 +599000 ekin = 20.8326105241634 | erot = 24.7094660562249 | epot = -79.1065269733091 | etot = -33.5644503929208 +600000 ekin = 20.8281928837872 | erot = 24.9942677730575 | epot = -79.3869110487785 | etot = -33.5644503919338 +601000 ekin = 20.7081769101586 | erot = 25.1108515584272 | epot = -79.3834788582876 | etot = -33.5644503897018 +602000 ekin = 20.4770754644872 | erot = 25.0812117067637 | epot = -79.1227375580319 | etot = -33.564450386781 +603000 ekin = 20.1436196145649 | erot = 24.9343592774281 | epot = -78.642429275663 | etot = -33.5644503836701 +604000 ekin = 19.718418586643 | erot = 24.7015463496202 | epot = -77.9844153169741 | etot = -33.5644503807109 +605000 ekin = 19.2123955084805 | erot = 24.4128183909086 | epot = -77.1896642774627 | etot = -33.5644503780737 +606000 ekin = 18.6360571568103 | erot = 24.0951290270779 | epot = -76.2956365596783 | etot = -33.5644503757901 +607000 ekin = 17.9994317315232 | erot = 23.7717793966555 | epot = -75.3356615019793 | etot = -33.5644503738006 +608000 ekin = 17.3124228754835 | erot = 23.4627525856982 | epot = -74.3396258331827 | etot = -33.5644503720009 +609000 ekin = 16.5853412867126 | erot = 23.1855122482213 | epot = -73.3353039052169 | etot = -33.5644503702829 +610000 ekin = 15.8294285552829 | erot = 22.9559130662675 | epot = -72.349791990107 | etot = -33.5644503685566 +611000 ekin = 15.0572484570073 | erot = 22.7889597209054 | epot = -71.4106585446845 | etot = -33.5644503667718 +612000 ekin = 14.2829782525896 | erot = 22.6991649599953 | epot = -70.5465935774999 | etot = -33.564450364915 +613000 ekin = 13.5233158608979 | erot = 22.7018063034666 | epot = -69.789572526273 | etot = -33.5644503619085 +614000 ekin = 12.7974443554635 | erot = 22.8128628324568 | epot = -69.1747575482518 | etot = -33.5644503603315 +615000 ekin = 12.1222485230176 | erot = 23.0409824260638 | epot = -68.727681308147 | etot = -33.5644503590656 +616000 ekin = 11.5143476716423 | erot = 23.3894333510186 | epot = -68.468231381177 | etot = -33.5644503585161 +617000 ekin = 10.9895105320919 | erot = 23.8529820645469 | epot = -68.4069429553071 | etot = -33.5644503586684 +618000 ekin = 10.562142737904 | erot = 24.4166592385434 | epot = -68.5432523362142 | etot = -33.5644503597668 +619000 ekin = 10.2447233169864 | erot = 25.053936124725 | epot = -68.8631098035728 | etot = -33.5644503618614 +620000 ekin = 10.0473729684105 | erot = 25.7263958146269 | epot = -69.3382191478437 | etot = -33.5644503648063 +621000 ekin = 9.97770919372447 | erot = 26.386029455057 | epot = -69.9281890170002 | etot = -33.5644503682187 +622000 ekin = 10.0410058298604 | erot = 26.9805251344677 | epot = -70.5859813358563 | etot = -33.5644503715282 +623000 ekin = 10.2405907653606 | erot = 27.4608678076243 | epot = -71.265908947125 | etot = -33.5644503741401 +624000 ekin = 10.5781077618222 | erot = 27.789174960281 | epot = -71.9317330977985 | etot = -33.5644503756953 +625000 ekin = 11.0534790507876 | erot = 27.9443540029372 | epot = -72.5622834297716 | etot = -33.5644503760469 +626000 ekin = 11.665023962676 | erot = 27.9236660630966 | epot = -73.153140401212 | etot = -33.5644503754394 +627000 ekin = 12.4090657095855 | erot = 27.7401487506199 | epot = -73.7136648344174 | etot = -33.564450374212 +628000 ekin = 13.2797303352362 | erot = 27.4180442687031 | epot = -74.2622249766746 | etot = -33.5644503727353 +629000 ekin = 14.2227247828091 | erot = 26.9288523650796 | epot = -74.716027794269 | etot = -33.5644506463803 +630000 ekin = 14.6371369670079 | erot = 25.6849986219067 | epot = -73.8865860644015 | etot = -33.5644504754868 +631000 ekin = 15.1932748253831 | erot = 24.8015291116418 | epot = -73.5592542941192 | etot = -33.5644503570943 +632000 ekin = 16.584223183011 | erot = 25.1927867331162 | epot = -75.341460399694 | etot = -33.5644504835668 +633000 ekin = 18.1129981078216 | erot = 25.8399990857076 | epot = -77.5174478439555 | etot = -33.5644506504263 +634000 ekin = 19.1483265856614 | erot = 25.7387528535892 | epot = -78.4515299890265 | etot = -33.564450549776 +635000 ekin = 20.1638306106813 | erot = 25.6154971447985 | epot = -79.3437783094146 | etot = -33.5644505539348 +636000 ekin = 21.1529452215294 | erot = 25.4927802223992 | epot = -80.2101760029174 | etot = -33.5644505589887 +637000 ekin = 22.076840414127 | erot = 25.3376757551748 | epot = -80.9789667330327 | etot = -33.5644505637309 +638000 ekin = 22.8998086513204 | erot = 25.1175243534268 | epot = -81.5817835716912 | etot = -33.564450566944 +639000 ekin = 23.5958452423371 | erot = 24.810324027069 | epot = -81.970619837404 | etot = -33.5644505679979 +640000 ekin = 24.1448393959509 | erot = 24.4104070773779 | epot = -82.1196970414061 | etot = -33.5644505680774 +641000 ekin = 24.5337741528747 | erot = 23.9290519069577 | epot = -82.0272766245586 | etot = -33.5644505647262 +642000 ekin = 24.7698696452211 | erot = 23.3958020412245 | epot = -81.7301222481214 | etot = -33.5644505616758 +643000 ekin = 24.8669267986387 | erot = 22.8392829406438 | epot = -81.270660298016 | etot = -33.5644505587335 +644000 ekin = 24.8431155056926 | erot = 22.2830723080152 | epot = -80.6906383699449 | etot = -33.5644505562371 +645000 ekin = 24.7193046979039 | erot = 21.7428697624476 | epot = -80.0266250145381 | etot = -33.5644505541866 +646000 ekin = 24.5180931827109 | erot = 21.2270132547761 | epot = -79.3095569899392 | etot = -33.5644505524521 +647000 ekin = 24.2628521130092 | erot = 20.7388201342314 | epot = -78.5661227982078 | etot = -33.5644505509672 +648000 ekin = 23.9761808135735 | erot = 20.2787945271196 | epot = -77.8194258904783 | etot = -33.5644505497851 +649000 ekin = 23.67787365498 | erot = 19.8458221792402 | epot = -77.0881463832164 | etot = -33.5644505489962 +650000 ekin = 23.3831896135476 | erot = 19.4375683304372 | epot = -76.3852084925965 | etot = -33.5644505486117 +651000 ekin = 23.1045251387838 | erot = 19.0455994386645 | epot = -75.714575126721 | etot = -33.5644505492727 +652000 ekin = 22.852554089729 | erot = 18.660058243978 | epot = -75.0770628826327 | etot = -33.5644505489257 +653000 ekin = 22.6343633028422 | erot = 18.2797742486811 | epot = -74.4785880997844 | etot = -33.5644505482611 +654000 ekin = 22.457706160496 | erot = 17.9066943677479 | epot = -73.9288510753647 | etot = -33.5644505471209 +655000 ekin = 22.3323244895908 | erot = 17.5466477598824 | epot = -73.4434227950449 | etot = -33.5644505455717 +656000 ekin = 22.2694639392795 | erot = 17.2090068009683 | epot = -73.0429212841433 | etot = -33.5644505438955 +657000 ekin = 22.2796962944035 | erot = 16.9050137475 | epot = -72.7491605844585 | etot = -33.564450542555 +658000 ekin = 22.3696390695847 | erot = 16.644764495761 | epot = -72.578854107433 | etot = -33.5644505420873 +659000 ekin = 22.538589477759 | erot = 16.4332539543396 | epot = -72.5362939750541 | etot = -33.5644505429556 +660000 ekin = 22.7761662587416 | erot = 16.2664693862647 | epot = -72.6070861903694 | etot = -33.5644505453631 +661000 ekin = 23.06230224551 | erot = 16.1290340508052 | epot = -72.7557868430349 | etot = -33.5644505467196 +662000 ekin = 23.3837240385233 | erot = 15.9907831586697 | epot = -72.9389579078995 | etot = -33.5644507107065 +663000 ekin = 23.0541480011267 | erot = 16.1177804885964 | epot = -72.7363790496029 | etot = -33.5644505598799 +664000 ekin = 22.9781515363897 | erot = 16.5698259347579 | epot = -73.1124281192206 | etot = -33.5644506480731 +665000 ekin = 23.374978691534 | erot = 16.4117827405633 | epot = -73.3512120004714 | etot = -33.5644505683742 +666000 ekin = 23.7239501856893 | erot = 16.0357448198421 | epot = -73.3241455722274 | etot = -33.5644505666959 +667000 ekin = 24.0215049450261 | erot = 15.6311856369932 | epot = -73.2171411449521 | etot = -33.5644505629329 +668000 ekin = 24.2720292277934 | erot = 15.2431977237525 | epot = -73.0796775108255 | etot = -33.5644505592796 +669000 ekin = 24.4823401844299 | erot = 14.9164487057863 | epot = -72.9632394465769 | etot = -33.5644505563607 +670000 ekin = 24.6591929169718 | erot = 14.6865199574777 | epot = -72.9101634287588 | etot = -33.5644505543093 +671000 ekin = 24.7891522546301 | erot = 14.5781166473157 | epot = -72.9317194579636 | etot = -33.5644505560177 +672000 ekin = 24.8512867496603 | erot = 14.6015183439962 | epot = -73.0172556489739 | etot = -33.5644505553173 +673000 ekin = 24.8569569355798 | erot = 14.7562217137542 | epot = -73.1776292039339 | etot = -33.5644505545999 +674000 ekin = 24.8222537580567 | erot = 15.0373554087232 | epot = -73.4240597206098 | etot = -33.5644505538298 +675000 ekin = 24.7663204260849 | erot = 15.437295119434 | epot = -73.7680660987755 | etot = -33.5644505532566 +676000 ekin = 24.707973141147 | erot = 15.9453732713287 | epot = -74.2177969658379 | etot = -33.5644505533623 +677000 ekin = 24.660603838739 | erot = 16.5455776357113 | epot = -74.7706320292609 | etot = -33.5644505548106 +678000 ekin = 24.6267378747401 | erot = 17.2129758015017 | epot = -75.4041642342705 | etot = -33.5644505580287 +679000 ekin = 24.5940505550725 | erot = 17.9117017662871 | epot = -76.07020288433 | etot = -33.5644505629703 +680000 ekin = 24.5356055096688 | erot = 18.5957689108381 | epot = -76.6958249893355 | etot = -33.5644505688286 +681000 ekin = 24.4156570895309 | erot = 19.2149559854727 | epot = -77.1950636491504 | etot = -33.5644505741468 +682000 ekin = 24.1989519849675 | erot = 19.7242966838354 | epot = -77.4876992464688 | etot = -33.564450577666 +683000 ekin = 23.8604728477913 | erot = 20.0938581667108 | epot = -77.5187815925336 | etot = -33.5644505780315 +684000 ekin = 23.3975557786275 | erot = 20.3180971806807 | epot = -77.2801035347717 | etot = -33.5644505754635 +685000 ekin = 22.8290459836148 | erot = 20.4129669387004 | epot = -76.80646349322 | etot = -33.5644505709048 +686000 ekin = 22.1833688822011 | erot = 20.3969948279682 | epot = -76.1448143063362 | etot = -33.5644505961669 +687000 ekin = 21.4529188815913 | erot = 20.156733845752 | epot = -75.1741032924797 | etot = -33.5644505651364 +688000 ekin = 20.8420414151281 | erot = 19.8330340922101 | epot = -74.2395260487824 | etot = -33.5644505414442 +689000 ekin = 20.4850454817099 | erot = 19.6177759053663 | epot = -73.6672719440564 | etot = -33.5644505569803 +690000 ekin = 20.2236705266713 | erot = 19.4736760202794 | epot = -73.2617971242667 | etot = -33.564450577316 +691000 ekin = 19.9277329712649 | erot = 19.3525548964651 | epot = -72.8447384060534 | etot = -33.5644505383235 +692000 ekin = 19.7615779525566 | erot = 19.3271485933787 | epot = -72.6531770837385 | etot = -33.5644505378033 +693000 ekin = 19.7317397129722 | erot = 19.4147876345959 | epot = -72.7109778863946 | etot = -33.5644505388264 +694000 ekin = 19.8186070325243 | erot = 19.6208277624943 | epot = -73.0038853362896 | etot = -33.564450541271 +695000 ekin = 19.9894250231729 | erot = 19.9418771486032 | epot = -73.4957527165321 | etot = -33.564450544756 +696000 ekin = 20.2029739946799 | erot = 20.3669312876596 | epot = -74.1343558309875 | etot = -33.564450548648 +697000 ekin = 20.4154400731731 | erot = 20.8809193025054 | epot = -74.8608099281222 | etot = -33.5644505524438 +698000 ekin = 20.586206730696 | erot = 21.4669039267717 | epot = -75.6175612131891 | etot = -33.5644505557214 +699000 ekin = 20.6825995319384 | erot = 22.1076466775274 | epot = -76.3546967677076 | etot = -33.5644505582417 +700000 ekin = 20.6830084845855 | erot = 22.7863311628684 | epot = -77.0337902073835 | etot = -33.5644505599297 +701000 ekin = 20.5781931485901 | erot = 23.4865818275485 | epot = -77.6292255369506 | etot = -33.564450560812 +702000 ekin = 20.371075430213 | erot = 24.1923776502136 | epot = -78.1279036413659 | etot = -33.5644505609394 +703000 ekin = 20.0753347573217 | erot = 24.8884672573789 | epot = -78.5282525750727 | etot = -33.5644505603721 +704000 ekin = 19.7130379606064 | erot = 25.5614200071491 | epot = -78.8389085269638 | etot = -33.5644505592083 +705000 ekin = 19.3114467594506 | erot = 26.2008176331446 | epot = -79.0767149502457 | etot = -33.5644505576504 +706000 ekin = 18.8991937909467 | erot = 26.7996687741907 | epot = -79.2633131211814 | etot = -33.564450556044 +707000 ekin = 18.5022273003166 | erot = 27.3532672615511 | epot = -79.4199451167072 | etot = -33.5644505548395 +708000 ekin = 18.1401729285463 | erot = 27.8564307011234 | epot = -79.5610541841487 | etot = -33.5644505544791 +709000 ekin = 17.8234464183816 | erot = 28.2999901850205 | epot = -79.6878871586751 | etot = -33.564450555273 +710000 ekin = 17.5523632004475 | erot = 28.6678464680811 | epot = -79.7846602257444 | etot = -33.5644505572158 +711000 ekin = 17.3194109792864 | erot = 28.9359249914519 | epot = -79.8197865307446 | etot = -33.5644505600063 +712000 ekin = 17.111217474036 | erot = 29.0741670969728 | epot = -79.7498351340657 | etot = -33.5644505630569 +713000 ekin = 16.9121266187594 | erot = 29.0513180276171 | epot = -79.5278952119951 | etot = -33.5644505656186 +714000 ekin = 16.7079630651497 | erot = 28.8416092702073 | epot = -79.1140229023543 | etot = -33.5644505669974 +715000 ekin = 16.4890214395501 | erot = 28.4313561614791 | epot = -78.4848281678324 | etot = -33.5644505668032 +716000 ekin = 16.2513970064722 | erot = 27.8230898676209 | epot = -77.6389374391847 | etot = -33.5644505650916 +717000 ekin = 15.9963403713229 | erot = 27.0356716306523 | epot = -76.596462564269 | etot = -33.5644505622939 +718000 ekin = 15.736130323464 | erot = 26.1105494903108 | epot = -75.4111303700896 | etot = -33.5644505563148 +719000 ekin = 15.4991442318496 | erot = 25.1078869419086 | epot = -74.1714817285169 | etot = -33.5644505547587 +720000 ekin = 15.2869109972121 | erot = 24.0511182750597 | epot = -72.9024798253532 | etot = -33.5644505530814 +721000 ekin = 15.0983958358413 | erot = 22.9636187898412 | epot = -71.626465177062 | etot = -33.5644505513795 +722000 ekin = 14.9325120649955 | erot = 21.8688846290998 | epot = -70.3658472463797 | etot = -33.5644505522845 +723000 ekin = 14.7807572554272 | erot = 20.7831774063264 | epot = -69.1283852119052 | etot = -33.5644505501515 +724000 ekin = 14.6422909693862 | erot = 19.7295658945069 | epot = -67.9363074121321 | etot = -33.5644505482389 +725000 ekin = 14.5216204989736 | erot = 18.7315290196227 | epot = -66.8176000651018 | etot = -33.5644505465054 +726000 ekin = 14.4243651447115 | erot = 17.809249661836 | epot = -65.7980653514567 | etot = -33.5644505449092 +727000 ekin = 14.3569475468078 | erot = 16.9804196358499 | epot = -64.9018177260886 | etot = -33.5644505434309 +728000 ekin = 14.2536930560822 | erot = 16.2469828256636 | epot = -64.0651265321117 | etot = -33.5644506503659 +729000 ekin = 13.8457257245456 | erot = 15.9222518563763 | epot = -63.3324280816472 | etot = -33.5644505007253 +730000 ekin = 14.0260810346084 | erot = 15.9641149760264 | epot = -63.5546467080333 | etot = -33.5644506973986 +731000 ekin = 14.2598526192304 | erot = 15.8407237762752 | epot = -63.6650270930514 | etot = -33.5644506975458 +732000 ekin = 14.5606957103586 | erot = 15.8547631013359 | epot = -63.9799095104338 | etot = -33.5644506987393 +733000 ekin = 14.9193813445856 | erot = 16.0002143189837 | epot = -64.4840463647582 | etot = -33.5644507011889 +734000 ekin = 15.3191392245689 | erot = 16.2611439993741 | epot = -65.1447339288827 | etot = -33.5644507049397 +735000 ekin = 15.7356019022088 | erot = 16.6113471095831 | epot = -65.911399721546 | etot = -33.5644507097541 +736000 ekin = 16.1415246409903 | erot = 17.0234641329184 | epot = -66.7294394826049 | etot = -33.5644507086962 +737000 ekin = 16.518605610539 | erot = 17.489586803014 | epot = -67.5726431258992 | etot = -33.5644507123462 +738000 ekin = 16.8458492119022 | erot = 17.9860152352149 | epot = -68.396315162061 | etot = -33.5644507149439 +739000 ekin = 17.110149866212 | erot = 18.4929848438385 | epot = -69.1675854260346 | etot = -33.5644507159841 +740000 ekin = 17.3014321683493 | erot = 18.9830167808933 | epot = -69.8488996814749 | etot = -33.5644507322323 +741000 ekin = 17.3865900134394 | erot = 19.3806296464369 | epot = -70.3316703915551 | etot = -33.5644507316788 +742000 ekin = 17.3696644724057 | erot = 19.6766235522529 | epot = -70.6107387544097 | etot = -33.564450729751 +743000 ekin = 17.2668900438488 | erot = 19.8790967510142 | epot = -70.7104375221209 | etot = -33.564450727258 +744000 ekin = 17.0976280300632 | erot = 20.0010316334553 | epot = -70.6631103882319 | etot = -33.5644507247133 +745000 ekin = 16.8806625311108 | erot = 20.0570550573562 | epot = -70.5021683107691 | etot = -33.5644507223021 +746000 ekin = 16.6327129020178 | erot = 20.0624105084052 | epot = -70.2595741304376 | etot = -33.5644507200146 +747000 ekin = 16.3685004966554 | erot = 20.0330168533934 | epot = -69.9659680678506 | etot = -33.5644507178018 +748000 ekin = 16.1014104014477 | erot = 19.9854814624586 | epot = -69.6513425795718 | etot = -33.5644507156654 +749000 ekin = 15.844098014715 | erot = 19.9365592282997 | epot = -69.3451079566726 | etot = -33.5644507136579 +750000 ekin = 15.6090531926207 | erot = 19.9038963443694 | epot = -69.0774002481408 | etot = -33.5644507111507 +751000 ekin = 15.4083916161874 | erot = 19.9047162304915 | epot = -68.8775585564482 | etot = -33.5644507097693 +752000 ekin = 15.2531866593796 | erot = 19.9485427659139 | epot = -68.7661801340112 | etot = -33.5644507087177 +753000 ekin = 15.1543901567613 | erot = 20.0407526950507 | epot = -68.7595935598495 | etot = -33.5644507080375 +754000 ekin = 15.1228286573332 | erot = 20.1821712297509 | epot = -68.8694505948499 | etot = -33.5644507077658 +755000 ekin = 15.1688994243523 | erot = 20.3687544713836 | epot = -69.1021046037276 | etot = -33.5644507079917 +756000 ekin = 15.301499551776 | erot = 20.5913112854955 | epot = -69.4572615461957 | etot = -33.5644507089241 +757000 ekin = 15.5255754913897 | erot = 20.834949244045 | epot = -69.9249754463701 | etot = -33.5644507109354 +758000 ekin = 15.8381446961138 | erot = 21.0780442684797 | epot = -70.4806396790109 | etot = -33.5644507144174 +759000 ekin = 16.2241238953416 | erot = 21.2913511033439 | epot = -71.0799257180851 | etot = -33.5644507193996 +760000 ekin = 16.6551901645912 | erot = 21.4392176773412 | epot = -71.6588585670209 | etot = -33.5644507250884 +761000 ekin = 17.0950183931786 | erot = 21.4853061088372 | epot = -72.1447752318667 | etot = -33.5644507298509 +762000 ekin = 17.5106763998012 | erot = 21.4029539232004 | epot = -72.4780810549596 | etot = -33.564450731958 +763000 ekin = 17.8846255672732 | erot = 21.1859145459706 | epot = -72.6349908439064 | etot = -33.5644507306625 +764000 ekin = 18.2201199376956 | erot = 20.8529192934954 | epot = -72.6374899578081 | etot = -33.5644507266171 +765000 ekin = 18.5372583937382 | erot = 20.4430950169541 | epot = -72.5448041320924 | etot = -33.5644507214001 +766000 ekin = 18.8630996339146 | erot = 20.0050052439806 | epot = -72.4325555942986 | etot = -33.5644507164034 +767000 ekin = 19.2212066800029 | erot = 19.5864803390503 | epot = -72.3721377317783 | etot = -33.5644507127251 +768000 ekin = 19.624511669093 | erot = 19.2265552411511 | epot = -72.4155176211004 | etot = -33.5644507108563 +769000 ekin = 20.0721792333795 | erot = 18.9509745480761 | epot = -72.5876044923609 | etot = -33.5644507109054 +770000 ekin = 20.5498086023516 | erot = 18.7702787047077 | epot = -72.8845380197874 | etot = -33.5644507127281 +771000 ekin = 21.0321028878714 | erot = 18.6794354396568 | epot = -73.2759890434179 | etot = -33.5644507158897 +772000 ekin = 21.4851799442024 | erot = 18.6615620368978 | epot = -73.7111927013751 | etot = -33.564450720275 +773000 ekin = 21.8752230488093 | erot = 18.6848228554718 | epot = -74.1244966289812 | etot = -33.5644507247 +774000 ekin = 22.1763496480937 | erot = 18.7081814115977 | epot = -74.4489817879453 | etot = -33.5644507282539 +775000 ekin = 22.374571784792 | erot = 18.6931201256992 | epot = -74.6321426404729 | etot = -33.5644507299816 +776000 ekin = 22.4709552283027 | erot = 18.6135457380045 | epot = -74.6489516957821 | etot = -33.564450729475 +777000 ekin = 22.4798367644303 | erot = 18.4639882142466 | epot = -74.5082757050196 | etot = -33.5644507263427 +778000 ekin = 22.4355420397867 | erot = 18.2585534576689 | epot = -74.2585462185365 | etot = -33.5644507210809 +779000 ekin = 22.384352941304 | erot = 18.0309205348412 | epot = -73.9797241910754 | etot = -33.5644507149302 +780000 ekin = 22.3744386500498 | erot = 17.8258066858555 | epot = -73.7646960454756 | etot = -33.5644507095703 +781000 ekin = 22.1317599687537 | erot = 17.6891439264797 | epot = -73.385354726192 | etot = -33.5644508309586 +782000 ekin = 21.1592753698204 | erot = 17.9407979475159 | epot = -72.6645240371034 | etot = -33.5644507197671 +783000 ekin = 20.4598020696467 | erot = 19.0285770890208 | epot = -73.0528298813537 | etot = -33.5644507226862 +784000 ekin = 20.520561149809 | erot = 20.4251817114889 | epot = -74.510193700403 | etot = -33.5644508391051 +785000 ekin = 20.9642653603784 | erot = 20.9633174839005 | epot = -75.4920336718239 | etot = -33.564450827545 +786000 ekin = 21.4400765994876 | erot = 21.0615830961954 | epot = -76.0661105274379 | etot = -33.5644508317549 +787000 ekin = 21.883066887488 | erot = 21.057450682238 | epot = -76.5049684031488 | etot = -33.5644508334227 +788000 ekin = 22.267324375569 | erot = 20.946432607028 | epot = -76.7782078151899 | etot = -33.5644508325928 +789000 ekin = 22.5826671479872 | erot = 20.7432248288687 | epot = -76.8903428068424 | etot = -33.5644508299865 +790000 ekin = 22.8323066878114 | erot = 20.4741989858865 | epot = -76.8709565003754 | etot = -33.5644508266776 +791000 ekin = 23.0272356230926 | erot = 20.1684030022638 | epot = -76.7600894489801 | etot = -33.5644508236236 +792000 ekin = 23.1800436946629 | erot = 19.8507212207542 | epot = -76.5952157367535 | etot = -33.5644508213364 +793000 ekin = 23.300603133177 | erot = 19.5391467370145 | epot = -76.4042006900797 | etot = -33.5644508198882 +794000 ekin = 23.3943971219697 | erot = 19.2453890945191 | epot = -76.2042370356008 | etot = -33.564450819112 +795000 ekin = 23.4629811569471 | erot = 18.9772359529009 | epot = -76.0046679285239 | etot = -33.564450818676 +796000 ekin = 23.5050545268219 | erot = 18.7401074069536 | epot = -75.8096127523991 | etot = -33.5644508186236 +797000 ekin = 23.5179235638906 | erot = 18.5376020867796 | epot = -75.6199764693832 | etot = -33.564450818713 +798000 ekin = 23.499309548325 | erot = 18.3721088685451 | epot = -75.4358692357089 | etot = -33.5644508188388 +799000 ekin = 23.448939556091 | erot = 18.2446734452746 | epot = -75.2580638202457 | etot = -33.5644508188801 +800000 ekin = 23.3700597274441 | erot = 18.1549836136211 | epot = -75.0894941597633 | etot = -33.5644508186981 +801000 ekin = 23.2706429278156 | erot = 18.1018392108953 | epot = -74.9369329568679 | etot = -33.564450818157 +802000 ekin = 23.1638659210079 | erot = 18.0841621459371 | epot = -74.8124788841352 | etot = -33.5644508171902 +803000 ekin = 23.0673439612512 | erot = 18.1021655968283 | epot = -74.7339603739616 | etot = -33.564450815882 +804000 ekin = 23.0007989366371 | erot = 18.1579717461939 | epot = -74.7232214973418 | etot = -33.5644508145108 +805000 ekin = 22.9823371343768 | erot = 18.2549251687085 | epot = -74.8017131166306 | etot = -33.5644508135453 +806000 ekin = 23.0241641600763 | erot = 18.3954330803544 | epot = -74.984048053792 | etot = -33.5644508133613 +807000 ekin = 23.128964625391 | erot = 18.5785443285981 | epot = -75.2719597683222 | etot = -33.5644508143331 +808000 ekin = 23.2881607694889 | erot = 18.7969609338812 | epot = -75.649572519887 | etot = -33.5644508165169 +809000 ekin = 23.4826910129567 | erot = 19.0356597598736 | epot = -76.0828015925039 | etot = -33.5644508196735 +810000 ekin = 23.6859311924953 | erot = 19.2727961953261 | epot = -76.5231782111275 | etot = -33.5644508233061 +811000 ekin = 23.8683330202879 | erot = 19.4824424692605 | epot = -76.915226316337 | etot = -33.5644508267886 +812000 ekin = 24.0021280346815 | erot = 19.6390320774525 | epot = -77.2056109410892 | etot = -33.5644508289552 +813000 ekin = 24.0705831557699 | erot = 19.722021914086 | epot = -77.3570559012067 | etot = -33.5644508313508 +814000 ekin = 24.055601152459 | erot = 19.7197957986886 | epot = -77.3398477832757 | etot = -33.5644508321281 +815000 ekin = 23.9426529226646 | erot = 19.6314238617512 | epot = -77.1385276156708 | etot = -33.564450831255 +816000 ekin = 23.7311336934088 | erot = 19.466072034162 | epot = -76.7616565565296 | etot = -33.5644508289587 +817000 ekin = 23.433668535019 | erot = 19.2405112285024 | epot = -76.2386305891648 | etot = -33.5644508256434 +818000 ekin = 23.0739945644854 | erot = 18.9755381767493 | epot = -75.6139835630208 | etot = -33.5644508217861 +819000 ekin = 22.6837324023522 | erot = 18.6923648013821 | epot = -74.940548021756 | etot = -33.5644508180217 +820000 ekin = 22.2835291274414 | erot = 18.4096381970061 | epot = -74.2576181403381 | etot = -33.5644508158905 +821000 ekin = 21.8822278930458 | erot = 18.1412914989096 | epot = -73.5879702064574 | etot = -33.564450814502 +822000 ekin = 21.4884880522555 | erot = 17.8956786284863 | epot = -72.9486174945866 | etot = -33.5644508138448 +823000 ekin = 21.1064787913954 | erot = 17.6755757489858 | epot = -72.3465053541674 | etot = -33.5644508137862 +824000 ekin = 20.7370980684377 | erot = 17.4789023739902 | epot = -71.7804512565368 | etot = -33.5644508141088 +825000 ekin = 20.3797998907961 | erot = 17.3000855971742 | epot = -71.2443363025092 | etot = -33.5644508145388 +826000 ekin = 20.0346218830748 | erot = 17.1319532561702 | epot = -70.7310259540458 | etot = -33.5644508148008 +827000 ekin = 19.7039740634311 | erot = 16.9679189203112 | epot = -70.2363437984045 | etot = -33.5644508146622 +828000 ekin = 19.3938011067031 | erot = 16.8040573698201 | epot = -69.7623092905205 | etot = -33.5644508139974 +829000 ekin = 19.11384865599 | erot = 16.6405709794189 | epot = -69.3188704482339 | etot = -33.564450812825 +830000 ekin = 18.8769326775077 | erot = 16.4822216024693 | epot = -68.9236050912778 | etot = -33.5644508113007 +831000 ekin = 18.6973117703808 | erot = 16.3375582428127 | epot = -68.5993208228909 | etot = -33.5644508096974 +832000 ekin = 18.5884699003301 | erot = 16.2171194687507 | epot = -68.3700401774137 | etot = -33.564450808333 +833000 ekin = 18.560779595016 | erot = 16.1310793366086 | epot = -68.2563097391195 | etot = -33.5644508074948 +834000 ekin = 18.61956558581 | erot = 16.0869173735029 | epot = -68.2709337666952 | etot = -33.5644508073822 +835000 ekin = 18.7639745649932 | erot = 16.0875916865537 | epot = -68.4160170596156 | etot = -33.5644508080686 +836000 ekin = 18.9868442865092 | erot = 16.1305192433203 | epot = -68.6818143393361 | etot = -33.5644508095065 +837000 ekin = 19.2754657671378 | erot = 16.2074384784975 | epot = -69.0473550571903 | etot = -33.564450811555 +838000 ekin = 19.6129197626542 | erot = 16.305100324473 | epot = -69.4824709011417 | etot = -33.5644508140144 +839000 ekin = 19.9795904905589 | erot = 16.4066730035615 | epot = -69.9507143107794 | etot = -33.564450816659 +840000 ekin = 20.3545159446157 | erot = 16.4936833394318 | epot = -70.4126501033158 | etot = -33.5644508192683 +841000 ekin = 20.7164052638984 | erot = 16.548246931381 | epot = -70.8291030169287 | etot = -33.5644508216493 +842000 ekin = 21.0443277172268 | erot = 16.5552492676569 | epot = -71.1640278085398 | etot = -33.5644508236561 +843000 ekin = 21.3182343499603 | erot = 16.5040987153204 | epot = -71.3867838904675 | etot = -33.5644508251868 +844000 ekin = 21.5195641367703 | erot = 16.3898128596529 | epot = -71.4738278225867 | etot = -33.5644508261635 +845000 ekin = 21.6321888565554 | erot = 16.2134452981662 | epot = -71.410084981231 | etot = -33.5644508265094 +846000 ekin = 21.6437998325842 | erot = 15.9820204390976 | epot = -71.1902710978237 | etot = -33.5644508261419 +847000 ekin = 21.5475782493693 | erot = 15.7081282849394 | epot = -70.8201573593162 | etot = -33.5644508250075 +848000 ekin = 21.3436927775388 | erot = 15.4091281501661 | epot = -70.3172717508461 | etot = -33.5644508231412 +849000 ekin = 21.0400180651421 | erot = 15.1057456316713 | epot = -69.7102145175199 | etot = -33.5644508207064 +850000 ekin = 20.651624144221 | erot = 14.819982121726 | epot = -69.0360570839323 | etot = -33.5644508179853 +851000 ekin = 20.1989966727791 | erot = 14.5725796374539 | epot = -68.3360271255451 | etot = -33.5644508153122 +852000 ekin = 19.705405223643 | erot = 14.3805531626584 | epot = -67.650409199298 | etot = -33.5644508129966 +853000 ekin = 19.1940724610505 | erot = 14.25530818557 | epot = -67.0138314578818 | etot = -33.5644508112614 +854000 ekin = 18.6857524015881 | erot = 14.2015962971835 | epot = -66.4517995089979 | etot = -33.5644508102263 +855000 ekin = 18.1970763744836 | erot = 14.2172634276327 | epot = -65.9787906120352 | etot = -33.5644508099189 +856000 ekin = 17.7397499707612 | erot = 14.2936050918535 | epot = -65.5978058729028 | etot = -33.5644508102882 +857000 ekin = 17.3205057782524 | erot = 14.4162007388387 | epot = -65.3011573283104 | etot = -33.5644508112193 +858000 ekin = 16.9416544278078 | erot = 14.5662556875881 | epot = -65.0723609279221 | etot = -33.5644508125262 +859000 ekin = 16.6020780488435 | erot = 14.7225727576944 | epot = -64.8891016204952 | etot = -33.5644508139574 +860000 ekin = 16.2985125162571 | erot = 14.8641879517113 | epot = -64.7271512831937 | etot = -33.5644508152253 +861000 ekin = 16.0269335765221 | erot = 14.9734306263673 | epot = -64.5648150189461 | etot = -33.5644508160567 +862000 ekin = 15.7838145493149 | erot = 15.0388248736918 | epot = -64.3870902392667 | etot = -33.56445081626 +863000 ekin = 15.5670277401482 | erot = 15.0570872004078 | epot = -64.1885657563379 | etot = -33.5644508157819 +864000 ekin = 15.3762443264478 | erot = 15.033644902431 | epot = -63.9743400435875 | etot = -33.5644508147087 +865000 ekin = 15.2131876544491 | erot = 14.9816007278775 | epot = -63.7592391954458 | etot = -33.5644508131193 +866000 ekin = 15.0809818287742 | erot = 14.9194630000228 | epot = -63.5648956402705 | etot = -33.5644508114735 +867000 ekin = 14.9827726501217 | erot = 14.8683323276467 | epot = -63.4155557876376 | etot = -33.5644508098692 +868000 ekin = 14.92180112433 | erot = 14.8493296988562 | epot = -63.3355816316708 | etot = -33.5644508084847 +869000 ekin = 14.9010185116834 | erot = 14.8813223016375 | epot = -63.3467916207947 | etot = -33.5644508074738 +870000 ekin = 14.9227801761236 | erot = 14.9789108660607 | epot = -63.4661418491954 | etot = -33.5644508070111 +871000 ekin = 14.9884139356745 | erot = 15.1503817842349 | epot = -63.7032465271887 | etot = -33.5644508072793 +872000 ekin = 15.0976914319707 | erot = 15.3955923654522 | epot = -64.0577346058697 | etot = -33.5644508084468 +873000 ekin = 15.2480781387988 | erot = 15.7042636439283 | epot = -64.5167925933356 | etot = -33.5644508106085 +874000 ekin = 15.4340038873847 | erot = 16.0553561021191 | epot = -65.053810803158 | etot = -33.5644508136542 +875000 ekin = 15.6465534573556 | erot = 16.4187317070787 | epot = -65.6297359816455 | etot = -33.5644508172112 +876000 ekin = 15.8739222018982 | erot = 16.7595446909201 | epot = -66.1979177135255 | etot = -33.5644508207072 +877000 ekin = 16.1027155795467 | erot = 17.044494341634 | epot = -66.7116607447368 | etot = -33.5644508235561 +878000 ekin = 16.3197910454644 | erot = 17.2478151625915 | epot = -67.1320570334198 | etot = -33.5644508253639 +879000 ekin = 16.5138521394505 | erot = 17.3548092079704 | epot = -67.4331121735215 | etot = -33.5644508261006 +880000 ekin = 16.6772706623824 | erot = 17.3624918569347 | epot = -67.6042133449038 | etot = -33.5644508255867 +881000 ekin = 16.8080553798836 | erot = 17.278452226898 | epot = -67.6509584308199 | etot = -33.5644508240383 +882000 ekin = 16.9100399112771 | erot = 17.119022231693 | epot = -67.5935129646031 | etot = -33.564450821633 +883000 ekin = 16.9925721974834 | erot = 16.9073416506224 | epot = -67.4643646668128 | etot = -33.564450818707 +884000 ekin = 17.0687034065889 | erot = 16.6704808211346 | epot = -67.3036350435126 | etot = -33.5644508157892 +885000 ekin = 17.1519974191521 | erot = 16.4352378677741 | epot = -67.1516861003877 | etot = -33.5644508134615 +886000 ekin = 17.2529390367253 | erot = 16.2234313385346 | epot = -67.040821187416 | etot = -33.564450812156 +887000 ekin = 17.3762921605589 | erot = 16.0482363267111 | epot = -66.9889792992713 | etot = -33.5644508120014 +888000 ekin = 17.5203620939499 | erot = 15.912713009727 | epot = -66.9975259165121 | etot = -33.5644508128352 +889000 ekin = 17.6781644417429 | erot = 15.8105908033725 | epot = -67.0532060594389 | etot = -33.5644508143236 +890000 ekin = 17.8397117311843 | erot = 15.728545074795 | epot = -67.1327076214795 | etot = -33.5644508155002 +891000 ekin = 17.9946822356163 | erot = 15.6526652128514 | epot = -67.2117982661653 | etot = -33.5644508176976 +892000 ekin = 18.1331274108613 | erot = 15.5631846536331 | epot = -67.2607628839469 | etot = -33.5644508194524 +893000 ekin = 18.2472194923555 | erot = 15.4391901233243 | epot = -67.2508604363308 | etot = -33.5644508206509 +894000 ekin = 18.3321686592099 | erot = 15.2648175287635 | epot = -67.1614370091493 | etot = -33.5644508211759 +895000 ekin = 18.3862908731384 | erot = 15.0310128799806 | epot = -66.9817545740828 | etot = -33.5644508209639 +896000 ekin = 18.4109116125628 | erot = 14.7366844064177 | epot = -66.7120468390301 | etot = -33.5644508200496 +897000 ekin = 18.4100489982307 | erot = 14.38859264232 | epot = -66.3630924591407 | etot = -33.56445081859 +898000 ekin = 18.3898281603967 | erot = 13.9998000546359 | epot = -65.954079031856 | etot = -33.5644508168234 +899000 ekin = 18.3577139224559 | erot = 13.5871378078456 | epot = -65.5093025452924 | etot = -33.5644508149909 +900000 ekin = 18.3217786244971 | erot = 13.1685630401998 | epot = -65.0547924779573 | etot = -33.5644508132604 +901000 ekin = 18.2902589888584 | erot = 12.7612484281998 | epot = -64.6159582287385 | etot = -33.5644508116803 +902000 ekin = 18.2715810670069 | erot = 12.3808553817479 | epot = -64.2168872589334 | etot = -33.5644508101785 +903000 ekin = 18.2748902554657 | erot = 12.0419799131758 | epot = -63.8813209772404 | etot = -33.5644508085989 +904000 ekin = 18.310946079998 | erot = 11.759427353884 | epot = -63.6348242406376 | etot = -33.5644508067556 +905000 ekin = 18.3930925503139 | erot = 11.5498594883528 | epot = -63.5074028431725 | etot = -33.5644508045058 +906000 ekin = 18.5347341843358 | erot = 11.429567327747 | epot = -63.5287523170652 | etot = -33.5644508049824 +907000 ekin = 18.7414362451913 | erot = 11.4045037508022 | epot = -63.7103908004036 | etot = -33.5644508044102 +908000 ekin = 19.0194889718029 | erot = 11.4807236813719 | epot = -64.064663457795 | etot = -33.5644508046201 +909000 ekin = 19.3700614262796 | erot = 11.658960594413 | epot = -64.5934728263738 | etot = -33.5644508056812 +910000 ekin = 19.7882105287017 | erot = 11.9333322709223 | epot = -65.2859936069509 | etot = -33.5644508073268 +911000 ekin = 20.2647618472542 | erot = 12.2921701432016 | epot = -66.1213827995986 | etot = -33.5644508091428 +912000 ekin = 20.7894338989449 | erot = 12.7195983435702 | epot = -67.0734830529977 | etot = -33.5644508104826 +913000 ekin = 21.354185735415 | erot = 13.1939380972622 | epot = -68.1125746463993 | etot = -33.564450813722 +914000 ekin = 21.9410171539269 | erot = 13.6876167580563 | epot = -69.1930847298951 | etot = -33.564450817912 +915000 ekin = 22.5188846328755 | erot = 14.1693256791945 | epot = -70.2526611349299 | etot = -33.5644508228598 +916000 ekin = 23.0495496145354 | erot = 14.6035757237462 | epot = -71.2175761670584 | etot = -33.5644508287768 +917000 ekin = 23.4897289759918 | erot = 14.9539952313724 | epot = -72.008175040674 | etot = -33.5644508333098 +918000 ekin = 23.7939185234148 | erot = 15.197647321232 | epot = -72.5560167286604 | etot = -33.5644508840135 +919000 ekin = 23.6168045074412 | erot = 15.3655091430202 | epot = -72.5467644924926 | etot = -33.5644508420312 +920000 ekin = 23.165531585878 | erot = 15.5814764955082 | epot = -72.311458892293 | etot = -33.5644508109067 +921000 ekin = 22.8561009730671 | erot = 15.8041631721062 | epot = -72.2247150051872 | etot = -33.5644508600138 +922000 ekin = 22.440617199678 | erot = 15.7102388661218 | epot = -71.7153069039719 | etot = -33.5644508381722 +923000 ekin = 21.8145072438246 | erot = 15.4204628466349 | epot = -70.7994209206915 | etot = -33.564450830232 +924000 ekin = 21.089710612231 | erot = 15.1252102241701 | epot = -69.7793716556892 | etot = -33.5644508192881 +925000 ekin = 20.3778961082158 | erot = 14.899059611937 | epot = -68.8414065283879 | etot = -33.5644508082351 +926000 ekin = 19.7497733146689 | erot = 14.7841436062358 | epot = -68.0983677263129 | etot = -33.5644508054082 +927000 ekin = 19.2202389452663 | erot = 14.8057849810623 | epot = -67.590474728778 | etot = -33.5644508024493 +928000 ekin = 18.8098178358059 | erot = 14.9862994051908 | epot = -67.3605680408844 | etot = -33.5644507998878 +929000 ekin = 18.5263530322086 | erot = 15.3189513314309 | epot = -67.4097551810462 | etot = -33.5644508174067 +930000 ekin = 18.303158247999 | erot = 15.7144845731335 | epot = -67.5820936492334 | etot = -33.564450828101 +931000 ekin = 18.0528353467031 | erot = 16.092098150507 | epot = -67.7093843340348 | etot = -33.5644508368247 +932000 ekin = 17.7015072493782 | erot = 16.3874716011874 | epot = -67.6534296917457 | etot = -33.5644508411801 +933000 ekin = 17.2115757804696 | erot = 16.5716045694095 | epot = -67.3476311886972 | etot = -33.5644508388181 +934000 ekin = 16.5514003203334 | erot = 16.6395832223659 | epot = -66.755434444527 | etot = -33.5644509018278 +935000 ekin = 15.4338978862408 | erot = 16.4795973505328 | epot = -65.4779460700676 | etot = -33.564450833294 +936000 ekin = 14.2992444275143 | erot = 16.4524645705128 | epot = -64.3161597798994 | etot = -33.5644507818723 +937000 ekin = 13.59487740504 | erot = 16.8307081996587 | epot = -63.9900364163686 | etot = -33.5644508116699 +938000 ekin = 13.1600926964079 | erot = 17.3617572930203 | epot = -64.0863008623788 | etot = -33.5644508729506 +939000 ekin = 12.6302856058614 | erot = 17.6616475284688 | epot = -63.8563839239186 | etot = -33.5644507895884 +940000 ekin = 12.1844103645063 | erot = 17.9750890236239 | epot = -63.7239501782487 | etot = -33.5644507901185 +941000 ekin = 11.8736812756091 | erot = 18.3544207679051 | epot = -63.7925528359821 | etot = -33.5644507924678 +942000 ekin = 11.6856910076193 | erot = 18.7737996767542 | epot = -64.0239414802086 | etot = -33.5644507958351 +943000 ekin = 11.5993719915505 | erot = 19.1997647093009 | epot = -64.3635875002877 | etot = -33.5644507994363 +944000 ekin = 11.591116393097 | erot = 19.5969000254167 | epot = -64.7524672211801 | etot = -33.5644508026663 +945000 ekin = 11.6394594916683 | erot = 19.9326030632592 | epot = -65.1365133600576 | etot = -33.56445080513 +946000 ekin = 11.7278293647869 | erot = 20.1807231613466 | epot = -65.4730033327469 | etot = -33.5644508066135 +947000 ekin = 11.8456010910349 | erot = 20.3241537585671 | epot = -65.7342056566312 | etot = -33.5644508070293 +948000 ekin = 11.9879925905891 | erot = 20.3564922444528 | epot = -65.9089356414658 | etot = -33.564450806424 +949000 ekin = 12.1551997706618 | erot = 20.2822908926568 | epot = -66.0019414683021 | etot = -33.5644508049834 +950000 ekin = 12.3510408582428 | erot = 20.1156595852263 | epot = -66.0311512464897 | etot = -33.5644508030205 +951000 ekin = 12.5812930342184 | erot = 19.8773156458908 | epot = -66.0230594810216 | etot = -33.5644508009124 +952000 ekin = 12.8471183992429 | erot = 19.5848425527081 | epot = -65.9964117535253 | etot = -33.5644508015743 +953000 ekin = 13.1479143766235 | erot = 19.2558560123375 | epot = -65.9682211888452 | etot = -33.5644507998843 +954000 ekin = 13.4859607016749 | erot = 18.9116613752366 | epot = -65.9620728756609 | etot = -33.5644507987494 +955000 ekin = 13.8607396886139 | erot = 18.5688220608356 | epot = -65.9940125476709 | etot = -33.5644507982214 +956000 ekin = 14.2684790839254 | erot = 18.2386766853017 | epot = -66.0716065674655 | etot = -33.5644507982384 +957000 ekin = 14.7022261502645 | erot = 17.9280211817306 | epot = -66.1946981306621 | etot = -33.5644507986669 +958000 ekin = 15.1523557015762 | erot = 17.6404101744164 | epot = -66.3572166753395 | etot = -33.5644507993469 +959000 ekin = 15.6074014601803 | erot = 17.3776018534993 | epot = -66.5494541137976 | etot = -33.5644508001179 +960000 ekin = 16.0551055261351 | erot = 17.1408213325793 | epot = -66.7603776595324 | etot = -33.5644508008181 +961000 ekin = 16.483819511843 | erot = 16.9315994951715 | epot = -66.9798698083909 | etot = -33.5644508013764 +962000 ekin = 16.8831178337395 | erot = 16.7524507837121 | epot = -67.2000194191554 | etot = -33.5644508017038 +963000 ekin = 17.2446402411808 | erot = 16.6070592916238 | epot = -67.4161503345794 | etot = -33.5644508017749 +964000 ekin = 17.5626944186329 | erot = 16.5001400673231 | epot = -67.6272852875597 | etot = -33.5644508016037 +965000 ekin = 17.8343164080137 | erot = 16.4370960223934 | epot = -67.8358632316613 | etot = -33.5644508012542 +966000 ekin = 18.058881794858 | erot = 16.4234839407457 | epot = -68.0468165364294 | etot = -33.5644508008257 +967000 ekin = 18.2373393553309 | erot = 16.4643418581003 | epot = -68.2661320138667 | etot = -33.5644508004355 +968000 ekin = 18.3712253334182 | erot = 16.5634469055311 | epot = -68.4991230391516 | etot = -33.5644508002023 +969000 ekin = 18.4616731642916 | erot = 16.7225928674224 | epot = -68.748716831933 | etot = -33.564450800219 +970000 ekin = 18.508642391898 | erot = 16.9409874226402 | epot = -69.014080615083 | etot = -33.5644508005448 +971000 ekin = 18.5105217351456 | erot = 17.2148322274807 | epot = -69.2898047638157 | etot = -33.5644508011893 +972000 ekin = 18.4641879057989 | erot = 17.5371342370508 | epot = -69.5657729449732 | etot = -33.5644508021236 +973000 ekin = 18.3654967925945 | erot = 17.8977436591339 | epot = -69.8276912550097 | etot = -33.5644508032813 +974000 ekin = 18.2101154179932 | erot = 18.2835968472234 | epot = -70.0581630697874 | etot = -33.5644508045708 +975000 ekin = 17.9945660115437 | erot = 18.6791515809232 | epot = -70.2381683983514 | etot = -33.5644508058845 +976000 ekin = 17.7173305275788 | erot = 19.0670257035496 | epot = -70.3488070382366 | etot = -33.5644508071083 +977000 ekin = 17.3798453157079 | erot = 19.4288693588492 | epot = -70.3731654826817 | etot = -33.5644508081246 +978000 ekin = 16.9872046651528 | erot = 19.7465105308244 | epot = -70.2981660048043 | etot = -33.5644508088271 +979000 ekin = 16.5484156632796 | erot = 20.0033999568713 | epot = -70.1162664292717 | etot = -33.5644508091207 +980000 ekin = 16.0760394561679 | erot = 20.1863036337654 | epot = -69.8267938958194 | etot = -33.5644508058861 +981000 ekin = 15.5958799206067 | erot = 20.2892058118436 | epot = -69.4495365390975 | etot = -33.5644508066472 +982000 ekin = 15.0884229209118 | erot = 20.3042917721005 | epot = -68.9571655433623 | etot = -33.56445085035 +983000 ekin = 14.6278058930741 | erot = 20.1974254363095 | epot = -68.3896821374305 | etot = -33.5644508080469 +984000 ekin = 14.4857180537849 | erot = 20.0570072753869 | epot = -68.1071761999148 | etot = -33.5644508707431 +985000 ekin = 14.2080884745897 | erot = 19.919276344842 | epot = -67.6918156218487 | etot = -33.564450802417 +986000 ekin = 13.9758844712272 | erot = 19.8429645358536 | epot = -67.3832998071099 | etot = -33.5644508000291 +987000 ekin = 13.8444879396752 | erot = 19.8435554330973 | epot = -67.2524941798934 | etot = -33.5644508071209 +988000 ekin = 13.7899575635179 | erot = 19.8765535654025 | epot = -67.2309619340325 | etot = -33.5644508051121 +989000 ekin = 13.7826987510727 | erot = 19.9896359806756 | epot = -67.3367855381806 | etot = -33.5644508064323 +990000 ekin = 13.8064597723693 | erot = 20.1866383120656 | epot = -67.5575488929868 | etot = -33.5644508085519 +991000 ekin = 13.844476200064 | erot = 20.4553568023019 | epot = -67.8642838132361 | etot = -33.5644508108702 +992000 ekin = 13.8831356334462 | erot = 20.7777558499506 | epot = -68.2253422960729 | etot = -33.5644508126761 +993000 ekin = 13.9170731635836 | erot = 21.135407615501 | epot = -68.6169315925055 | etot = -33.564450813421 +994000 ekin = 13.9526839660428 | erot = 21.5142214171928 | epot = -69.0313561961371 | etot = -33.5644508129016 +995000 ekin = 14.0087176813023 | erot = 21.9069609070435 | epot = -69.480129399738 | etot = -33.5644508113922 +996000 ekin = 14.1134296875285 | erot = 22.3130050689718 | epot = -69.9908855656615 | etot = -33.5644508091613 +997000 ekin = 14.3000196822843 | erot = 22.7364207784144 | epot = -70.6008912675636 | etot = -33.5644508068649 +998000 ekin = 14.6010980656079 | erot = 23.1830420844189 | epot = -71.3485909550456 | etot = -33.5644508050188 +999000 ekin = 15.0427312776222 | erot = 23.657392608768 | epot = -72.2645746968681 | etot = -33.5644508104779 +1000000 ekin = 15.613660129969 | erot = 24.1382006023969 | epot = -73.3163115458147 | etot = -33.5644508134487 + 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160068 39304000 +Loop time of 19.2077 on 1 procs for 1000000 steps with 16 atoms + +Performance: 76.739 ns/day, 0.313 hours/ns, 52062.405 timesteps/s, 832.998 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 16.095 | 16.095 | 16.095 | 0.0 | 83.79 +Bond | 0.6748 | 0.6748 | 0.6748 | 0.0 | 3.51 +Neigh | 0.007855 | 0.007855 | 0.007855 | 0.0 | 0.04 +Comm | 0.27635 | 0.27635 | 0.27635 | 0.0 | 1.44 +Output | 0.15161 | 0.15161 | 0.15161 | 0.0 | 0.79 +Modify | 1.7313 | 1.7313 | 1.7313 | 0.0 | 9.01 +Other | | 0.2709 | | | 1.41 + +Nlocal: 16 ave 16 max 16 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 107 ave 107 max 107 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:19 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 new file mode 100644 index 0000000000..794ac22a91 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 @@ -0,0 +1,1111 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 +Per MPI rank memory allocation (min/avg/max) = 7.577 | 7.606 | 7.69 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -69.627742 3.2447172 -50.262701 0.034084814 39304000 +1000 ekin = 16.3558183649387 | erot = 16.6323090455317 | epot = -66.5525771041998 | etot = -33.5644496937295 +2000 ekin = 16.6191649168147 | erot = 16.5684372137643 | epot = -66.7520518221219 | etot = -33.5644496915429 +3000 ekin = 16.9230904408654 | erot = 16.5204480451832 | epot = -67.0079881759691 | etot = -33.5644496899204 +4000 ekin = 17.2772162612591 | erot = 16.49867929322 | epot = -67.3403452437715 | etot = -33.5644496892924 +5000 ekin = 17.6866959075726 | erot = 16.5050138456572 | epot = -67.7561594428204 | etot = -33.5644496895906 +6000 ekin = 18.1531343302964 | erot = 16.5325161302815 | epot = -68.2501001506509 | etot = -33.564449690073 +7000 ekin = 18.680653493314 | erot = 16.5738535187235 | epot = -68.8189567014344 | etot = -33.5644496893969 +8000 ekin = 19.2766528199695 | erot = 16.6261515879628 | epot = -69.4672540969553 | etot = -33.564449689023 +9000 ekin = 19.9461490397319 | erot = 16.6908475985738 | epot = -70.201446326231 | etot = -33.5644496879253 +10000 ekin = 20.6973181248474 | erot = 16.7772960438528 | epot = -71.039063854854 | etot = -33.5644496861538 +11000 ekin = 21.539522624792 | erot = 16.9014209971989 | epot = -72.0053933083053 | etot = -33.5644496863144 +12000 ekin = 22.4717498465051 | erot = 17.0791755563662 | epot = -73.1153750880493 | etot = -33.5644496851781 +13000 ekin = 23.493621609947 | erot = 17.3228520870333 | epot = -74.3809233816828 | etot = -33.5644496847026 +14000 ekin = 24.6044210071246 | erot = 17.6425688028838 | epot = -75.8114394947881 | etot = -33.5644496847798 +15000 ekin = 25.7999389267744 | erot = 18.0453525578634 | epot = -77.4097411694886 | etot = -33.5644496848508 +16000 ekin = 27.0739775537123 | erot = 18.5361142332912 | epot = -79.1745414730767 | etot = -33.5644496860731 +17000 ekin = 28.4119581304118 | erot = 19.1137262760959 | epot = -81.0901340949635 | etot = -33.5644496884557 +18000 ekin = 29.7909545183303 | erot = 19.7704759932755 | epot = -83.1258802031785 | etot = -33.5644496915727 +19000 ekin = 31.1831510307732 | erot = 20.4915974540495 | epot = -85.2391981805601 | etot = -33.5644496957374 +20000 ekin = 32.5560965367943 | erot = 21.2528351748734 | epot = -87.3733814125724 | etot = -33.5644497009047 +21000 ekin = 33.868330987566 | erot = 22.0156446407476 | epot = -89.4484253379455 | etot = -33.5644497096318 +22000 ekin = 35.0747510230858 | erot = 22.7306302808711 | epot = -91.3698310187509 | etot = -33.564449714794 +23000 ekin = 36.1427935644227 | erot = 23.3543658008634 | epot = -93.0616090845426 | etot = -33.5644497192564 +24000 ekin = 37.0484240543211 | erot = 23.8536351256838 | epot = -94.4665089004161 | etot = -33.5644497204113 +25000 ekin = 37.7873483857427 | erot = 24.2156130941775 | epot = -95.5674111990494 | etot = -33.5644497191292 +26000 ekin = 38.3695951222899 | erot = 24.4472028227103 | epot = -96.3812476612834 | etot = -33.5644497162832 +27000 ekin = 38.8142451991145 | erot = 24.5696496438673 | epot = -96.9483445558084 | etot = -33.5644497128266 +28000 ekin = 39.1436511594781 | erot = 24.6108705414904 | epot = -97.3189714104584 | etot = -33.5644497094899 +29000 ekin = 39.3799077053091 | erot = 24.5987493007977 | epot = -97.5431067127119 | etot = -33.5644497066052 +30000 ekin = 39.5437187767927 | erot = 24.5572061990977 | epot = -97.6653746802842 | etot = -33.5644497043938 +31000 ekin = 39.6556538792225 | erot = 24.5025482878245 | epot = -97.7226518696582 | etot = -33.5644497026112 +32000 ekin = 39.7376908979144 | erot = 24.4447365565287 | epot = -97.7468771552201 | etot = -33.5644497007771 +33000 ekin = 39.8178410436037 | erot = 24.3917276701332 | epot = -97.7740184125884 | etot = -33.5644496988515 +34000 ekin = 39.927618714488 | erot = 24.3494773308408 | epot = -97.8415457422131 | etot = -33.5644496968843 +35000 ekin = 40.0972017271435 | erot = 24.3220925820223 | epot = -97.9837440042509 | etot = -33.564449695085 +36000 ekin = 40.3554758289768 | erot = 24.3121132861349 | epot = -98.2320388089531 | etot = -33.5644496938414 +37000 ekin = 40.7253172241835 | erot = 24.319453116459 | epot = -98.6092200342501 | etot = -33.5644496936077 +38000 ekin = 41.2184614577313 | erot = 24.3399425110989 | epot = -99.1228536635565 | etot = -33.5644496947263 +39000 ekin = 41.8315835745705 | erot = 24.3642621379391 | epot = -99.7602954097928 | etot = -33.5644496972833 +40000 ekin = 42.5444333388241 | erot = 24.3777906096182 | epot = -100.486673649662 | etot = -33.5644497012195 +41000 ekin = 43.3221534386097 | erot = 24.3619359806971 | epot = -101.248539124814 | etot = -33.5644497055069 +42000 ekin = 44.1232219530953 | erot = 24.2968159626988 | epot = -101.984487625362 | etot = -33.564449709568 +43000 ekin = 44.904300844132 | erot = 24.1647850477408 | epot = -102.633535604778 | etot = -33.5644497129052 +44000 ekin = 45.6258073685734 | erot = 23.9537754776322 | epot = -103.144032561023 | etot = -33.5644497148173 +45000 ekin = 46.2557013508695 | erot = 23.6596129163771 | epot = -103.479763983876 | etot = -33.5644497166297 +46000 ekin = 46.7711396854538 | erot = 23.2746461161496 | epot = -103.610235519163 | etot = -33.5644497175596 +47000 ekin = 47.1576706465393 | erot = 22.7983985986729 | epot = -103.520518961432 | etot = -33.5644497162194 +48000 ekin = 47.4067411848207 | erot = 22.2418927069086 | epot = -103.213083606725 | etot = -33.5644497149953 +49000 ekin = 47.5134307536654 | erot = 21.6212608371917 | epot = -102.69914130377 | etot = -33.564449712913 +50000 ekin = 47.4750496002015 | erot = 20.9637753825402 | epot = -102.0032746914 | etot = -33.5644497086583 +51000 ekin = 47.2893433305643 | erot = 20.3140174296325 | epot = -101.167810469159 | etot = -33.5644497089619 +52000 ekin = 46.9527474071891 | erot = 19.6808685522296 | epot = -100.198065668178 | etot = -33.5644497087591 +53000 ekin = 46.4669221029446 | erot = 19.0628634962124 | epot = -99.0942353064246 | etot = -33.5644497072675 +54000 ekin = 45.8347987943741 | erot = 18.4752794596828 | epot = -97.8745279599047 | etot = -33.5644497058478 +55000 ekin = 45.0590316628642 | erot = 17.9341671577877 | epot = -96.5576485255772 | etot = -33.5644497049254 +56000 ekin = 44.1409291390466 | erot = 17.4520797326575 | epot = -95.1574585762252 | etot = -33.5644497045211 +57000 ekin = 43.0792908324229 | erot = 17.0373342694525 | epot = -93.6810748066133 | etot = -33.5644497047379 +58000 ekin = 41.8704923540616 | erot = 16.6939394056078 | epot = -92.1288814650828 | etot = -33.5644497054134 +59000 ekin = 40.5509408803243 | erot = 16.4316140927963 | epot = -90.5470046657502 | etot = -33.5644496926296 +60000 ekin = 39.1975830612683 | erot = 16.2583411314117 | epot = -89.0203738856281 | etot = -33.564449692948 +61000 ekin = 35.7114984384268 | erot = 15.7928074869535 | epot = -85.0687559055495 | etot = -33.5644499801692 +62000 ekin = 34.7372517506983 | erot = 15.8094409096042 | epot = -84.1111427027985 | etot = -33.564450042496 +63000 ekin = 35.8178089566995 | erot = 16.1653492511937 | epot = -85.5476088513059 | etot = -33.5644506434127 +64000 ekin = 34.8692363703958 | erot = 16.1670101597179 | epot = -84.6006971860838 | etot = -33.5644506559701 +65000 ekin = 33.846449455545 | erot = 16.1402632189654 | epot = -83.5511633293456 | etot = -33.5644506548352 +66000 ekin = 32.7636419796978 | erot = 16.0751240440806 | epot = -82.4032166770508 | etot = -33.5644506532724 +67000 ekin = 31.6420680628897 | erot = 15.970564295673 | epot = -81.1770830093356 | etot = -33.5644506507729 +68000 ekin = 30.5061166759974 | erot = 15.8342590047108 | epot = -79.904826328435 | etot = -33.5644506477268 +69000 ekin = 29.3793899831146 | erot = 15.6784092891742 | epot = -78.6222499180456 | etot = -33.5644506457568 +70000 ekin = 28.2842777970645 | erot = 15.5192251789786 | epot = -77.3679536187083 | etot = -33.5644506426651 +71000 ekin = 27.2428007223146 | erot = 15.3775924468384 | epot = -76.1848438089721 | etot = -33.5644506398192 +72000 ekin = 26.2738583640503 | erot = 15.2738682128135 | epot = -75.1121772142993 | etot = -33.5644506374354 +73000 ekin = 25.3929266243352 | erot = 15.2252389252993 | epot = -74.1826161852624 | etot = -33.5644506356278 +74000 ekin = 24.6118800235924 | erot = 15.2440811522979 | epot = -73.4204118109397 | etot = -33.5644506350493 +75000 ekin = 23.9285421197386 | erot = 15.2937064902862 | epot = -72.7866996078894 | etot = -33.5644509978646 +76000 ekin = 23.6014258497366 | erot = 14.5530249139085 | epot = -71.7189013877723 | etot = -33.5644506241273 +77000 ekin = 24.0021186681998 | erot = 14.6672556253499 | epot = -72.2338249120015 | etot = -33.5644506184517 +78000 ekin = 23.7667117018473 | erot = 14.8821032755388 | epot = -72.2132655967964 | etot = -33.5644506194103 +79000 ekin = 23.6362408803455 | erot = 15.1573231058556 | epot = -72.3580146069965 | etot = -33.5644506207955 +80000 ekin = 23.6008292998183 | erot = 15.4801164769237 | epot = -72.6453963992505 | etot = -33.5644506225085 +81000 ekin = 23.6479278988512 | erot = 15.8366782045229 | epot = -73.0490567276813 | etot = -33.5644506243072 +82000 ekin = 23.763195852744 | erot = 16.2135577483195 | epot = -73.541204227137 | etot = -33.5644506260735 +83000 ekin = 23.93133805131 | erot = 16.5989137528028 | epot = -74.0947024318273 | etot = -33.5644506277145 +84000 ekin = 24.1405337461498 | erot = 16.9832739889214 | epot = -74.6882583637893 | etot = -33.5644506287181 +85000 ekin = 24.3851366362468 | erot = 17.3594190811792 | epot = -75.3090063475356 | etot = -33.5644506301095 +86000 ekin = 24.6499622429188 | erot = 17.7229731863038 | epot = -75.937386060464 | etot = -33.5644506312414 +87000 ekin = 24.9195866966175 | erot = 18.0734917202536 | epot = -76.5575290489239 | etot = -33.5644506320529 +88000 ekin = 25.1793742014134 | erot = 18.4146339772087 | epot = -77.1584588111687 | etot = -33.5644506325466 +89000 ekin = 25.4156568494637 | erot = 18.753968669385 | epot = -77.7340761514942 | etot = -33.5644506326455 +90000 ekin = 25.6096840035671 | erot = 19.1040901404621 | epot = -78.2782247770918 | etot = -33.5644506330626 +91000 ekin = 25.7348417969792 | erot = 19.4865010462193 | epot = -78.7857934757851 | etot = -33.5644506325866 +92000 ekin = 25.7824117490222 | erot = 19.9168308436387 | epot = -79.2636932257648 | etot = -33.5644506331039 +93000 ekin = 25.7436484203088 | erot = 20.4015276208854 | epot = -79.7096266744372 | etot = -33.564450633243 +94000 ekin = 25.6107487399104 | erot = 20.949881961115 | epot = -80.1250813341981 | etot = -33.5644506331727 +95000 ekin = 25.3788454256131 | erot = 21.5718811146881 | epot = -80.5151771730697 | etot = -33.5644506327685 +96000 ekin = 25.0476635684687 | erot = 22.2778886106639 | epot = -80.8900028110571 | etot = -33.5644506319245 +97000 ekin = 24.6228037012584 | erot = 23.0785820232847 | epot = -81.2658363557742 | etot = -33.564450631231 +98000 ekin = 24.1163650303316 | erot = 23.980262455687 | epot = -81.6610781157268 | etot = -33.5644506297082 +99000 ekin = 23.5467601995482 | erot = 24.9897227937605 | epot = -82.1009336213136 | etot = -33.5644506280048 +100000 ekin = 22.9377076830221 | erot = 26.112544428779 | epot = -82.6147027382293 | etot = -33.5644506264282 +101000 ekin = 22.3162402354096 | erot = 27.3495277986626 | epot = -83.2302186594371 | etot = -33.5644506253649 +102000 ekin = 21.7099673799529 | erot = 28.6941289887159 | epot = -83.9685469938564 | etot = -33.5644506251876 +103000 ekin = 21.1440927333112 | erot = 30.1304131051784 | epot = -84.8389564645821 | etot = -33.5644506260925 +104000 ekin = 20.639036073264 | erot = 31.6318076720505 | epot = -85.8352943737208 | etot = -33.5644506284063 +105000 ekin = 20.2097356177992 | erot = 33.155951127779 | epot = -86.9301373769384 | etot = -33.5644506313601 +106000 ekin = 19.8659962936204 | erot = 34.6591523175009 | epot = -88.0895992441982 | etot = -33.5644506330769 +107000 ekin = 19.6196926152642 | erot = 36.1003389899193 | epot = -89.2844822415487 | etot = -33.5644506363652 +108000 ekin = 19.4737764770437 | erot = 37.4404659122968 | epot = -90.4786930287769 | etot = -33.5644506394364 +109000 ekin = 19.4257211237998 | erot = 38.6395727467532 | epot = -91.6297445157463 | etot = -33.5644506451932 +110000 ekin = 19.4643317381198 | erot = 39.6495422786743 | epot = -92.6783246653681 | etot = -33.564450648574 +111000 ekin = 19.5812097010477 | erot = 40.4340503208624 | epot = -93.5797106732505 | etot = -33.5644506513404 +112000 ekin = 19.7688752467926 | erot = 40.9641614007962 | epot = -94.297487301236 | etot = -33.5644506536472 +113000 ekin = 20.0199352606443 | erot = 41.2235617686336 | epot = -94.8079476827577 | etot = -33.5644506534798 +114000 ekin = 20.3316783135453 | erot = 41.2208106095024 | epot = -95.1169395739077 | etot = -33.56445065086 +115000 ekin = 20.7092934859803 | erot = 40.9902193450322 | epot = -95.2639634785888 | etot = -33.5644506475763 +116000 ekin = 21.1584070130043 | erot = 40.5711692188877 | epot = -95.2940268780899 | etot = -33.5644506461979 +117000 ekin = 21.6717401642267 | erot = 40.0068194492192 | epot = -95.2430102574592 | etot = -33.5644506440133 +118000 ekin = 22.2304498749665 | erot = 39.3449170916981 | epot = -95.1398176087205 | etot = -33.5644506420559 +119000 ekin = 22.8040322747498 | erot = 38.6279078104772 | epot = -94.9963907285437 | etot = -33.5644506433167 +120000 ekin = 23.3636455910773 | erot = 37.8733163419346 | epot = -94.8014125775743 | etot = -33.5644506445623 +121000 ekin = 23.8883342479557 | erot = 37.0853024873734 | epot = -94.5380873807793 | etot = -33.5644506454502 +122000 ekin = 24.3628295450724 | erot = 36.2617521254169 | epot = -94.1890323184744 | etot = -33.5644506479851 +123000 ekin = 24.7728939422973 | erot = 35.3896441641822 | epot = -93.7269887541634 | etot = -33.564450647684 +124000 ekin = 25.1206142173503 | erot = 34.4655545655721 | epot = -93.1506194284831 | etot = -33.5644506455608 +125000 ekin = 25.4216604350096 | erot = 33.503516320942 | epot = -92.4896273979272 | etot = -33.5644506419756 +126000 ekin = 25.6927735129487 | erot = 32.5281184075612 | epot = -91.7853425611144 | etot = -33.5644506406046 +127000 ekin = 25.9460883081157 | erot = 31.5650113724921 | epot = -91.0755503181686 | etot = -33.5644506375608 +128000 ekin = 26.1993872383113 | erot = 30.6366650539312 | epot = -90.4005029275328 | etot = -33.5644506352904 +129000 ekin = 26.4652741312988 | erot = 29.761033950875 | epot = -89.790758715097 | etot = -33.5644506329232 +130000 ekin = 26.7486727551143 | erot = 28.9506137583675 | epot = -89.2637371464425 | etot = -33.5644506329608 +131000 ekin = 27.0469092028967 | erot = 28.2034442942545 | epot = -88.8148041302784 | etot = -33.5644506331273 +132000 ekin = 27.354287486523 | erot = 27.516081388701 | epot = -88.4348195084624 | etot = -33.5644506332384 +133000 ekin = 27.6627378161327 | erot = 26.888810791231 | epot = -88.1159992405597 | etot = -33.564450633196 +134000 ekin = 27.967292318186 | erot = 26.3214524159643 | epot = -87.8531953671446 | etot = -33.5644506329943 +135000 ekin = 28.2641150378973 | erot = 25.8141340320123 | epot = -87.6426997025848 | etot = -33.5644506326751 +136000 ekin = 28.5509978141275 | erot = 25.3673179322137 | epot = -87.4827663786045 | etot = -33.5644506322633 +137000 ekin = 28.8259159092095 | erot = 24.9801644637669 | epot = -87.3705310053013 | etot = -33.5644506323249 +138000 ekin = 29.0842610649225 | erot = 24.6492546073972 | epot = -87.2979663044031 | etot = -33.5644506320834 +139000 ekin = 29.3272222877147 | erot = 24.3700782380114 | epot = -87.2617511574221 | etot = -33.5644506316961 +140000 ekin = 29.5579798491409 | erot = 24.1376580585839 | epot = -87.2600885391577 | etot = -33.5644506314329 +141000 ekin = 29.7799846346147 | erot = 23.946242993064 | epot = -87.2906782589293 | etot = -33.5644506312505 +142000 ekin = 29.9959841884821 | erot = 23.7899704636108 | epot = -87.3504052832972 | etot = -33.5644506312043 +143000 ekin = 30.20703491277 | erot = 23.6632996950733 | epot = -87.4347852391637 | etot = -33.5644506313204 +144000 ekin = 30.411884002902 | erot = 23.5613798569439 | epot = -87.537714491437 | etot = -33.564450631591 +145000 ekin = 30.606845687222 | erot = 23.4803656669174 | epot = -87.6516619861197 | etot = -33.5644506319804 +146000 ekin = 30.786123077816 | erot = 23.4176420010831 | epot = -87.7682157113377 | etot = -33.5644506324387 +147000 ekin = 30.9424364770354 | erot = 23.3719366394343 | epot = -87.878823749381 | etot = -33.5644506329113 +148000 ekin = 31.0677916134895 | erot = 23.343321608025 | epot = -87.9755638548643 | etot = -33.5644506333498 +149000 ekin = 31.1542520331538 | erot = 23.3331254537238 | epot = -88.0518281205882 | etot = -33.5644506337106 +150000 ekin = 31.1946418128191 | erot = 23.3437996409618 | epot = -88.1028920877408 | etot = -33.5644506339599 +151000 ekin = 31.183806383935 | erot = 23.3785936220274 | epot = -88.1268506398047 | etot = -33.5644506338423 +152000 ekin = 31.1202290278342 | erot = 23.4412183836801 | epot = -88.1258980452558 | etot = -33.5644506337415 +153000 ekin = 31.0032553217694 | erot = 23.5372189789098 | epot = -88.1049249338573 | etot = -33.5644506331782 +154000 ekin = 30.8354559406818 | erot = 23.6729952127027 | epot = -88.0729017863056 | etot = -33.5644506329211 +155000 ekin = 30.6186135870613 | erot = 23.8551009557717 | epot = -88.0381651751801 | etot = -33.564450632347 +156000 ekin = 30.3571457582689 | erot = 24.0914721103803 | epot = -88.0130685002393 | etot = -33.5644506315902 +157000 ekin = 30.057410850046 | erot = 24.3907046676107 | epot = -88.012566148493 | etot = -33.5644506308362 +158000 ekin = 29.7256756923437 | erot = 24.762556719639 | epot = -88.0526830421884 | etot = -33.5644506302057 +159000 ekin = 29.3667041508031 | erot = 25.2124449846246 | epot = -88.1435997656418 | etot = -33.5644506302141 +160000 ekin = 28.9829375848383 | erot = 25.7406189361283 | epot = -88.2880071520223 | etot = -33.5644506310558 +161000 ekin = 28.5708031098758 | erot = 26.3449808633592 | epot = -88.4802346049617 | etot = -33.5644506317267 +162000 ekin = 28.1278607476191 | erot = 27.0188065006254 | epot = -88.7111178809976 | etot = -33.564450632753 +163000 ekin = 27.6515523776561 | erot = 27.7508923428494 | epot = -88.9668953542198 | etot = -33.5644506337143 +164000 ekin = 27.1398166575548 | erot = 28.5265897115537 | epot = -89.2308570046245 | etot = -33.564450635516 +165000 ekin = 26.59018012942 | erot = 29.3236809534503 | epot = -89.4783117201368 | etot = -33.5644506372666 +166000 ekin = 26.0027550424038 | erot = 30.1148491025895 | epot = -89.6820547838353 | etot = -33.564450638842 +167000 ekin = 25.3815734826451 | erot = 30.8714146428701 | epot = -89.8174387656406 | etot = -33.5644506401255 +168000 ekin = 24.7338280126237 | erot = 31.5656853660197 | epot = -89.8639640196521 | etot = -33.5644506410087 +169000 ekin = 24.0691061638315 | erot = 32.1733410341242 | epot = -89.8068978394117 | etot = -33.564450641456 +170000 ekin = 23.3986380903856 | erot = 32.6761770397929 | epot = -89.6392657713649 | etot = -33.5644506411864 +171000 ekin = 22.7350947047576 | erot = 33.0649339609238 | epot = -89.3644793058787 | etot = -33.5644506401972 +172000 ekin = 22.0927595064345 | erot = 33.3397459263048 | epot = -88.9969560711814 | etot = -33.5644506384421 +173000 ekin = 21.4881436133131 | erot = 33.5098602953131 | epot = -88.5624545444177 | etot = -33.5644506357915 +174000 ekin = 20.9424106184029 | erot = 33.5950638981387 | epot = -88.1019251458152 | etot = -33.5644506292736 +175000 ekin = 20.4887725385188 | erot = 33.6332952588445 | epot = -87.6865184248663 | etot = -33.5644506275031 +176000 ekin = 20.1459992745576 | erot = 33.6413286939825 | epot = -87.351778594707 | etot = -33.564450626167 +177000 ekin = 19.9273952403355 | erot = 33.6264319072463 | epot = -87.1182777732003 | etot = -33.5644506256185 +178000 ekin = 19.8405268115202 | erot = 33.5862782738567 | epot = -86.9912557124967 | etot = -33.5644506271198 +179000 ekin = 19.8828425829329 | erot = 33.5043404166444 | epot = -86.9516336276337 | etot = -33.5644506280564 +180000 ekin = 20.0524881206169 | erot = 33.3671042345424 | epot = -86.9840429849014 | etot = -33.5644506297421 +181000 ekin = 20.3414841297263 | erot = 33.1581782006462 | epot = -87.0641129622371 | etot = -33.5644506318646 +182000 ekin = 20.7352057198159 | erot = 32.8612622822523 | epot = -87.1609186361345 | etot = -33.5644506340663 +183000 ekin = 21.2137106223586 | erot = 32.4647477949406 | epot = -87.2429090531987 | etot = -33.5644506358994 +184000 ekin = 21.7537587720613 | erot = 31.9655803613327 | epot = -87.2837897705835 | etot = -33.5644506371895 +185000 ekin = 22.3286746031838 | erot = 31.3708022039154 | epot = -87.263927444786 | etot = -33.5644506376868 +186000 ekin = 22.9115100132845 | erot = 30.6990331536428 | epot = -87.1749938042474 | etot = -33.5644506373201 +187000 ekin = 23.4775030152572 | erot = 29.9792070479707 | epot = -87.0211606994407 | etot = -33.5644506362127 +188000 ekin = 24.0059463479901 | erot = 29.2469949106332 | epot = -86.8173918933289 | etot = -33.5644506347057 +189000 ekin = 24.4809955944174 | erot = 28.5392131436642 | epot = -86.5846593713795 | etot = -33.5644506332979 +190000 ekin = 24.8911658073071 | erot = 27.8871249849441 | epot = -86.3427414247871 | etot = -33.5644506325359 +191000 ekin = 25.2275609419512 | erot = 27.3101259966536 | epot = -86.1021375715765 | etot = -33.5644506329717 +192000 ekin = 25.4831011426741 | erot = 26.8121375634346 | epot = -85.8596893403555 | etot = -33.5644506342468 +193000 ekin = 25.2930335715097 | erot = 26.641089195829 | epot = -85.4985734034392 | etot = -33.5644506361005 +194000 ekin = 25.0352601614021 | erot = 26.652526548361 | epot = -85.2522373921847 | etot = -33.5644506824216 +195000 ekin = 25.0363508840831 | erot = 26.2378500699574 | epot = -84.838651623646 | etot = -33.5644506696055 +196000 ekin = 24.9648942549683 | erot = 25.7868302418778 | epot = -84.3161751669049 | etot = -33.5644506700588 +197000 ekin = 24.8200850732436 | erot = 25.3002719383815 | epot = -83.684807680627 | etot = -33.5644506690019 +198000 ekin = 24.6172884588533 | erot = 24.7762496503829 | epot = -82.957988775829 | etot = -33.5644506665928 +199000 ekin = 24.3770483830299 | erot = 24.2259949153857 | epot = -82.1674939619529 | etot = -33.5644506635372 +200000 ekin = 24.122436002035 | erot = 23.6691820640912 | epot = -81.3560687261623 | etot = -33.5644506600361 +201000 ekin = 23.8775516468524 | erot = 23.129174398578 | epot = -80.5711767022531 | etot = -33.5644506568227 +202000 ekin = 23.6646103059802 | erot = 22.6276096876317 | epot = -79.856670647895 | etot = -33.5644506542831 +203000 ekin = 23.5017139925634 | erot = 22.1809863327408 | epot = -79.2471509779163 | etot = -33.5644506526121 +204000 ekin = 23.4012931943709 | erot = 21.7992926193403 | epot = -78.7650364652273 | etot = -33.564450651516 +205000 ekin = 23.3698442687857 | erot = 21.4883950765935 | epot = -78.4226899967305 | etot = -33.5644506513513 +206000 ekin = 23.4080277663952 | erot = 21.2503388252223 | epot = -78.222817243383 | etot = -33.5644506517654 +207000 ekin = 23.510672424505 | erot = 21.0828853352514 | epot = -78.1580084122941 | etot = -33.5644506525377 +208000 ekin = 23.668353418069 | erot = 20.9827921925506 | epot = -78.2155962640904 | etot = -33.5644506534708 +209000 ekin = 23.8319531636404 | erot = 20.8686960092894 | epot = -78.2650998050505 | etot = -33.5644506321207 +210000 ekin = 24.1634900876545 | erot = 20.8246815259943 | epot = -78.5526222834943 | etot = -33.5644506698455 +211000 ekin = 24.4545474929207 | erot = 20.8320949387518 | epot = -78.8510930934304 | etot = -33.564450661758 +212000 ekin = 24.7210588847004 | erot = 20.8889178093638 | epot = -79.1744273565512 | etot = -33.564450662487 +213000 ekin = 24.9762555918736 | erot = 20.995657067092 | epot = -79.5363633251364 | etot = -33.5644506661708 +214000 ekin = 25.2054830046564 | erot = 21.1345527593257 | epot = -79.904486431005 | etot = -33.5644506670229 +215000 ekin = 25.4055444850595 | erot = 21.2948000239986 | epot = -80.2647951766001 | etot = -33.564450667542 +216000 ekin = 25.5773395550173 | erot = 21.4659469017842 | epot = -80.6077371248694 | etot = -33.5644506680679 +217000 ekin = 25.7224226234168 | erot = 21.6383314527717 | epot = -80.9252047446809 | etot = -33.5644506684925 +218000 ekin = 25.8456307141236 | erot = 21.7996006617657 | epot = -81.2096820449196 | etot = -33.5644506690303 +219000 ekin = 25.9524523541736 | erot = 21.9358336225136 | epot = -81.4527366463228 | etot = -33.5644506696356 +220000 ekin = 26.0480501371294 | erot = 22.0331400323276 | epot = -81.6456408394172 | etot = -33.5644506699602 +221000 ekin = 26.1377559921142 | erot = 22.0801399062462 | epot = -81.7823465685532 | etot = -33.5644506701928 +222000 ekin = 26.2262421157048 | erot = 22.0692633440543 | epot = -81.859956129764 | etot = -33.564450670005 +223000 ekin = 26.3184403630266 | erot = 21.9982474658049 | epot = -81.8811384982253 | etot = -33.5644506693938 +224000 ekin = 26.4171271373519 | erot = 21.8710288815675 | epot = -81.8526066880913 | etot = -33.5644506691719 +225000 ekin = 26.5225389104719 | erot = 21.6965423523057 | epot = -81.7835319309085 | etot = -33.5644506681309 +226000 ekin = 26.7157923548783 | erot = 21.3119214437842 | epot = -81.5921644821736 | etot = -33.5644506835112 +227000 ekin = 27.2484396437764 | erot = 20.6374955149859 | epot = -81.4503858460509 | etot = -33.5644506872886 +228000 ekin = 27.5078528971482 | erot = 20.2748179574152 | epot = -81.3471215226765 | etot = -33.564450668113 +229000 ekin = 27.6312830550944 | erot = 19.9858964954709 | epot = -81.1816302175473 | etot = -33.564450666982 +230000 ekin = 27.7676058404246 | erot = 19.7189438600613 | epot = -81.0510003675302 | etot = -33.5644506670444 +231000 ekin = 27.9171898995783 | erot = 19.4851196432287 | epot = -80.9667602108582 | etot = -33.5644506680513 +232000 ekin = 28.075807909498 | erot = 19.2892055600519 | epot = -80.9294641380373 | etot = -33.5644506684874 +233000 ekin = 28.2354888581722 | erot = 19.1284398309988 | epot = -80.9283793559407 | etot = -33.5644506667697 +234000 ekin = 28.3953039485459 | erot = 19.0132859353609 | epot = -80.9730405513788 | etot = -33.564450667472 +235000 ekin = 28.5569493494506 | erot = 18.9585387746691 | epot = -81.0799387921407 | etot = -33.564450668021 +236000 ekin = 28.7166448189613 | erot = 18.9671002034186 | epot = -81.2481956905202 | etot = -33.5644506681403 +237000 ekin = 28.8725023819759 | erot = 19.0433381874627 | epot = -81.4802912374047 | etot = -33.5644506679661 +238000 ekin = 29.0257746255977 | erot = 19.1916941122354 | epot = -81.781919405367 | etot = -33.5644506675339 +239000 ekin = 29.1795842186893 | erot = 19.4168064167824 | epot = -82.1608413029194 | etot = -33.5644506674477 +240000 ekin = 29.3337146102013 | erot = 19.7090725309664 | epot = -82.6072378098102 | etot = -33.5644506686425 +241000 ekin = 29.4868078967125 | erot = 20.0596352268188 | epot = -83.1108937928375 | etot = -33.5644506693062 +242000 ekin = 29.6351003169461 | erot = 20.4605457842952 | epot = -83.6600967717312 | etot = -33.5644506704898 +243000 ekin = 29.8921802425375 | erot = 20.6958964400281 | epot = -84.1525273495514 | etot = -33.5644506669859 +244000 ekin = 30.2594419587798 | erot = 20.964961730853 | epot = -84.7888543939581 | etot = -33.5644507043253 +245000 ekin = 30.3074620328625 | erot = 21.308999500704 | epot = -85.1809122847658 | etot = -33.5644507511994 +246000 ekin = 30.6998172933751 | erot = 21.0861202554954 | epot = -85.3503880690886 | etot = -33.5644505202181 +247000 ekin = 31.2652124059134 | erot = 21.7433599271938 | epot = -86.5730230770323 | etot = -33.5644507439251 +248000 ekin = 31.2039013197185 | erot = 22.3578318778188 | epot = -87.1261839420136 | etot = -33.5644507444763 +249000 ekin = 31.0628965882796 | erot = 22.9361503364912 | epot = -87.5634976683527 | etot = -33.5644507435818 +250000 ekin = 30.8544219835667 | erot = 23.4738999845995 | epot = -87.8927727106867 | etot = -33.5644507425205 +251000 ekin = 30.5979929542448 | erot = 23.973249537305 | epot = -88.1356932313339 | etot = -33.5644507397841 +252000 ekin = 30.3186084933224 | erot = 24.447023432737 | epot = -88.3300826628831 | etot = -33.5644507368237 +253000 ekin = 30.0416328683412 | erot = 24.9117142614702 | epot = -88.5177978640591 | etot = -33.5644507342476 +254000 ekin = 29.6651322242409 | erot = 25.3352238225117 | epot = -88.5648072260424 | etot = -33.5644511792898 +255000 ekin = 27.9972596304248 | erot = 25.3436445664535 | epot = -86.9053550133662 | etot = -33.5644508164878 +256000 ekin = 27.4480536507435 | erot = 26.2038023388295 | epot = -87.2163067908443 | etot = -33.5644508012713 +257000 ekin = 28.5107044681316 | erot = 27.5793602338718 | epot = -89.6545158781981 | etot = -33.5644511761947 +258000 ekin = 28.9485040029364 | erot = 27.9141399631527 | epot = -90.4270947740165 | etot = -33.5644508079275 +259000 ekin = 29.1923898090981 | erot = 28.2760336628793 | epot = -91.0328742826499 | etot = -33.5644508106724 +260000 ekin = 29.442065950696 | erot = 28.6795119903338 | epot = -91.6860287571124 | etot = -33.5644508160826 +261000 ekin = 29.6845039883694 | erot = 29.1068404637727 | epot = -92.3557952702589 | etot = -33.5644508181168 +262000 ekin = 29.8834680797453 | erot = 29.5461970803508 | epot = -92.9941159814699 | etot = -33.5644508213738 +263000 ekin = 30.0159351907403 | erot = 29.9649097381375 | epot = -93.5452957538687 | etot = -33.5644508249909 +264000 ekin = 30.0524877646951 | erot = 30.3384906869752 | epot = -93.9554292802054 | etot = -33.5644508285351 +265000 ekin = 29.9659450397006 | erot = 30.6431999053458 | epot = -94.1735957767029 | etot = -33.5644508316564 +266000 ekin = 29.7355380957043 | erot = 30.8554934503359 | epot = -94.1554823800756 | etot = -33.5644508340354 +267000 ekin = 29.350217253122 | erot = 30.9531552650632 | epot = -93.8678233536458 | etot = -33.5644508354606 +268000 ekin = 28.8109215599824 | erot = 30.9159121160793 | epot = -93.2912845119104 | etot = -33.5644508358487 +269000 ekin = 28.1312299025676 | erot = 30.72588001067 | epot = -92.4215607498475 | etot = -33.5644508366099 +270000 ekin = 27.3365120330892 | erot = 30.3685462543054 | epot = -91.2695091419232 | etot = -33.5644508545286 +271000 ekin = 26.4621552466015 | erot = 29.8348321072944 | epot = -89.8614382054951 | etot = -33.5644508515991 +272000 ekin = 25.5514537840266 | erot = 29.1238715109503 | epot = -88.2397761424711 | etot = -33.5644508474942 +273000 ekin = 24.6528090192241 | erot = 28.2453291639337 | epot = -86.4625890255924 | etot = -33.5644508424347 +274000 ekin = 23.821234650199 | erot = 27.2200000603148 | epot = -84.6056855414306 | etot = -33.5644508309167 +275000 ekin = 22.972977788893 | erot = 26.0804823635616 | epot = -82.6179111120453 | etot = -33.5644509595907 +276000 ekin = 22.0549791970788 | erot = 24.8883860441621 | epot = -80.507816055329 | etot = -33.564450814088 +277000 ekin = 22.2918454486476 | erot = 23.6844629884912 | epot = -79.5407594438925 | etot = -33.5644510067537 +278000 ekin = 22.2933944834357 | erot = 22.3796695906513 | epot = -78.237514901963 | etot = -33.5644508278759 +279000 ekin = 22.3659748249692 | erot = 21.1183819744112 | epot = -77.0488076286914 | etot = -33.5644508293109 +280000 ekin = 22.5183002078395 | erot = 19.9334324614475 | epot = -76.0161834966364 | etot = -33.5644508273493 +281000 ekin = 22.7529481191282 | erot = 18.8478601493533 | epot = -75.1652590940401 | etot = -33.5644508255585 +282000 ekin = 23.0795879184844 | erot = 17.877696647541 | epot = -74.5217353872615 | etot = -33.5644508212361 +283000 ekin = 23.5210121271395 | erot = 17.0345324476772 | epot = -74.1199953957519 | etot = -33.5644508209352 +284000 ekin = 24.0799247559117 | erot = 16.3233784659049 | epot = -73.9677540517901 | etot = -33.5644508299735 +285000 ekin = 24.7785446246702 | erot = 15.7478244913859 | epot = -74.0908199422723 | etot = -33.5644508262162 +286000 ekin = 25.6368387345602 | erot = 15.3047487828053 | epot = -74.5060383422943 | etot = -33.5644508249288 +287000 ekin = 26.6214548224918 | erot = 14.9922504829504 | epot = -75.1781561309387 | etot = -33.5644508254965 +288000 ekin = 27.7267158888742 | erot = 14.8012865017222 | epot = -76.092453221868 | etot = -33.5644508312716 +289000 ekin = 28.8920167227402 | erot = 14.7169892845884 | epot = -77.1734568439709 | etot = -33.5644508366423 +290000 ekin = 30.0553666648459 | erot = 14.7251675417739 | epot = -78.3449850482838 | etot = -33.5644508416639 +291000 ekin = 31.1595769632409 | erot = 14.8119291202727 | epot = -79.5359569291001 | etot = -33.5644508455866 +292000 ekin = 32.1608216689788 | erot = 14.9640713088948 | epot = -80.6893438261594 | etot = -33.5644508482858 +293000 ekin = 33.0319319380116 | erot = 15.1681739054538 | epot = -81.7645566935981 | etot = -33.5644508501327 +294000 ekin = 33.7599421346893 | erot = 15.408810677985 | epot = -82.7332036642727 | etot = -33.5644508515984 +295000 ekin = 34.3413485939618 | erot = 15.6673943342359 | epot = -83.5731937811138 | etot = -33.5644508529161 +296000 ekin = 34.7782829446679 | erot = 15.9229210434156 | epot = -84.2656548420787 | etot = -33.5644508539951 +297000 ekin = 35.0767101392297 | erot = 16.1546669536392 | epot = -84.7958279474613 | etot = -33.5644508545924 +298000 ekin = 35.2457989813398 | erot = 16.3457320030263 | epot = -85.1559818388994 | etot = -33.5644508545332 +299000 ekin = 35.2970066855107 | erot = 16.4859983979418 | epot = -85.3474559372914 | etot = -33.5644508538389 +300000 ekin = 35.2422237261552 | erot = 16.573594168153 | epot = -85.380268746981 | etot = -33.5644508526728 +301000 ekin = 35.0916597610679 | erot = 16.6147820199689 | epot = -85.2708926322436 | etot = -33.5644508512068 +302000 ekin = 34.8528128910437 | erot = 16.6227287108284 | epot = -85.0399924513857 | etot = -33.5644508495136 +303000 ekin = 34.5312597670471 | erot = 16.6156181966321 | epot = -84.7113288112829 | etot = -33.5644508476037 +304000 ekin = 34.131367434132 | erot = 16.6227567332235 | epot = -84.3185750111405 | etot = -33.5644508437849 +305000 ekin = 33.6571822643369 | erot = 16.6720234605658 | epot = -83.8936565670678 | etot = -33.5644508421651 +306000 ekin = 33.1151986332002 | erot = 16.7769746117295 | epot = -83.4566240858641 | etot = -33.5644508409344 +307000 ekin = 32.5134330702729 | erot = 16.9437629168019 | epot = -83.0216468273944 | etot = -33.5644508403197 +308000 ekin = 31.8601474906691 | erot = 17.1694637372836 | epot = -82.5940620683869 | etot = -33.5644508404342 +309000 ekin = 31.1628016434418 | erot = 17.4420089824945 | epot = -82.1692614669022 | etot = -33.5644508409659 +310000 ekin = 30.4284939703051 | erot = 17.7430091432334 | epot = -81.7359539560319 | etot = -33.5644508424934 +311000 ekin = 29.6636970636957 | erot = 18.0450727085003 | epot = -81.2732206157428 | etot = -33.5644508435468 +312000 ekin = 28.8763119838117 | erot = 18.3211026917138 | epot = -80.7618655199236 | etot = -33.5644508443981 +313000 ekin = 28.0757317031842 | erot = 18.5482322979291 | epot = -80.1884148456634 | etot = -33.5644508445501 +314000 ekin = 27.2754576014843 | erot = 18.7102692133756 | epot = -79.5501776586764 | etot = -33.5644508438165 +315000 ekin = 26.4927512875096 | erot = 18.8002978244007 | epot = -78.8574999542301 | etot = -33.5644508423198 +316000 ekin = 25.747682520664 | erot = 18.8201859999041 | epot = -78.132319360867 | etot = -33.564450840299 +317000 ekin = 25.0614905058277 | erot = 18.7788964667723 | epot = -77.4048378106377 | etot = -33.5644508380377 +318000 ekin = 24.4546904068649 | erot = 18.6903703700934 | epot = -76.7095116127357 | etot = -33.5644508357774 +319000 ekin = 23.9454326766056 | erot = 18.5716676910418 | epot = -76.0815512013104 | etot = -33.564450833663 +320000 ekin = 23.5484361618332 | erot = 18.4417359442004 | epot = -75.5546229377731 | etot = -33.5644508317395 +321000 ekin = 23.2745454666142 | erot = 18.3209670206188 | epot = -75.159963317225 | etot = -33.5644508299921 +322000 ekin = 23.1307065450427 | erot = 18.2311244116958 | epot = -74.9262817851812 | etot = -33.5644508284427 +323000 ekin = 23.1199305195539 | erot = 18.1948729378857 | epot = -74.8792542846864 | etot = -33.5644508272467 +324000 ekin = 23.2402241371604 | erot = 18.2346442880494 | epot = -75.0393192519605 | etot = -33.5644508267507 +325000 ekin = 23.4710021372648 | erot = 18.3668956954565 | epot = -75.4023486640661 | etot = -33.5644508313448 +326000 ekin = 23.7795455090648 | erot = 18.5932769386575 | epot = -75.9372732822622 | etot = -33.5644508345399 +327000 ekin = 24.1343713308685 | erot = 18.9009306659146 | epot = -76.5997528363167 | etot = -33.5644508395337 +328000 ekin = 24.4953646019599 | erot = 19.2611055950044 | epot = -77.3209210428185 | etot = -33.5644508458542 +329000 ekin = 24.8184483226243 | erot = 19.6309716494425 | epot = -78.0138708244921 | etot = -33.5644508524254 +330000 ekin = 25.0648153577033 | erot = 19.9600875039469 | epot = -78.5893537191492 | etot = -33.564450857499 +331000 ekin = 25.2101383722027 | erot = 20.2008919381154 | epot = -78.9754811706424 | etot = -33.5644508603242 +332000 ekin = 25.2457706638964 | erot = 20.3248269291664 | epot = -79.1350484526804 | etot = -33.5644508596175 +333000 ekin = 25.1861890029755 | erot = 20.3296166389972 | epot = -79.080256497531 | etot = -33.5644508555582 +334000 ekin = 25.06621909807 | erot = 20.2399843242203 | epot = -78.8706542714784 | etot = -33.5644508491881 +335000 ekin = 24.9333683336748 | erot = 20.1009816218885 | epot = -78.5988007975495 | etot = -33.5644508419862 +336000 ekin = 24.8381114575746 | erot = 19.9670256544153 | epot = -78.3695879473404 | etot = -33.5644508353505 +337000 ekin = 24.8247545151604 | erot = 19.8908557635149 | epot = -78.2800611094823 | etot = -33.564450830807 +338000 ekin = 24.9246805342402 | erot = 19.9088859975838 | epot = -78.3980173598233 | etot = -33.5644508279992 +339000 ekin = 25.1522743470225 | erot = 20.043365846569 | epot = -78.7600910209592 | etot = -33.5644508273677 +340000 ekin = 25.5040328015065 | erot = 20.3063243572631 | epot = -79.3748079874543 | etot = -33.5644508286847 +341000 ekin = 25.9593882032928 | erot = 20.6972938179576 | epot = -80.2211328527409 | etot = -33.5644508314906 +342000 ekin = 26.4842114255991 | erot = 21.206040618102 | epot = -81.2547028790046 | etot = -33.5644508353035 +343000 ekin = 27.0356929913546 | erot = 21.8153279723555 | epot = -82.4154718032949 | etot = -33.5644508395848 +344000 ekin = 27.567697334587 | erot = 22.5033872894653 | epot = -83.6355354678824 | etot = -33.5644508438302 +345000 ekin = 28.0359749647809 | erot = 23.2463366467822 | epot = -84.846762459203 | etot = -33.5644508476399 +346000 ekin = 28.4026013553742 | erot = 24.0201112992316 | epot = -85.9871635053201 | etot = -33.5644508507143 +347000 ekin = 28.6398915195253 | erot = 24.8020103746405 | epot = -87.0063527468454 | etot = -33.5644508526796 +348000 ekin = 28.7326075378057 | erot = 25.5714490943132 | epot = -87.8685074861033 | etot = -33.5644508539845 +349000 ekin = 28.6752584344467 | erot = 26.310018084166 | epot = -88.54972737313 | etot = -33.5644508545173 +350000 ekin = 28.4730637357388 | erot = 27.0009502159403 | epot = -89.038464806251 | etot = -33.5644508545719 +351000 ekin = 28.139537848467 | erot = 27.6270646737408 | epot = -89.3310533768684 | etot = -33.5644508546605 +352000 ekin = 27.6929580738718 | erot = 28.1676652362932 | epot = -89.4250741654184 | etot = -33.5644508552534 +353000 ekin = 27.1526950366655 | erot = 28.5958100265632 | epot = -89.3129559197891 | etot = -33.5644508565604 +354000 ekin = 26.5365141387242 | erot = 28.8781341172769 | epot = -88.9790991143028 | etot = -33.5644508583017 +355000 ekin = 25.859879983625 | erot = 28.979303109793 | epot = -88.4036339530082 | etot = -33.5644508595902 +356000 ekin = 25.1375717946349 | erot = 28.8722956886234 | epot = -87.5743183425605 | etot = -33.5644508593022 +357000 ekin = 24.3868741548746 | erot = 28.5495289602174 | epot = -86.5008539717697 | etot = -33.5644508566778 +358000 ekin = 23.6300778926847 | erot = 28.0297879777441 | epot = -85.2243167222827 | etot = -33.5644508518539 +359000 ekin = 22.8939201469121 | erot = 27.3556770360709 | epot = -83.8140480289405 | etot = -33.5644508459575 +360000 ekin = 22.2065780073029 | erot = 26.5834479667625 | epot = -82.3544768140978 | etot = -33.5644508400324 +361000 ekin = 21.5986345635183 | erot = 25.7744654427431 | epot = -80.9375508371388 | etot = -33.5644508308774 +362000 ekin = 21.1083260621098 | erot = 24.989507840873 | epot = -79.6622847318363 | etot = -33.5644508288535 +363000 ekin = 20.7375100619861 | erot = 24.2576398933005 | epot = -78.5596007834792 | etot = -33.5644508281925 +364000 ekin = 20.4760033679782 | erot = 23.5946470164008 | epot = -77.6351012127697 | etot = -33.5644508283907 +365000 ekin = 20.3079089893774 | erot = 23.0095138965374 | epot = -76.8818737148743 | etot = -33.5644508289595 +366000 ekin = 20.2147979336069 | erot = 22.5083719357563 | epot = -76.2876206988662 | etot = -33.564450829503 +367000 ekin = 20.1786185360507 | erot = 22.0973297017962 | epot = -75.8403990676676 | etot = -33.5644508298207 +368000 ekin = 20.1837486799377 | erot = 21.783527063494 | epot = -75.5317265732851 | etot = -33.5644508298534 +369000 ekin = 20.2182310118496 | erot = 21.5747388187329 | epot = -75.3574206602588 | etot = -33.5644508296764 +370000 ekin = 20.2742556079346 | erot = 21.4781104693601 | epot = -75.3168169068273 | etot = -33.5644508295326 +371000 ekin = 20.3477066126786 | erot = 21.4982876397919 | epot = -75.4104450816055 | etot = -33.5644508291351 +372000 ekin = 20.4391769085933 | erot = 21.6370751258538 | epot = -75.6407028633516 | etot = -33.5644508289045 +373000 ekin = 20.5523906694389 | erot = 21.8921389377654 | epot = -76.0089804360871 | etot = -33.5644508288828 +374000 ekin = 20.6947607299073 | erot = 22.2561865203728 | epot = -76.5153980789369 | etot = -33.5644508286568 +375000 ekin = 20.8734352290091 | erot = 22.7176361068752 | epot = -77.1555221653772 | etot = -33.5644508294929 +376000 ekin = 21.0894935045173 | erot = 23.2620769849342 | epot = -77.9160213200335 | etot = -33.564450830582 +377000 ekin = 21.3446674637595 | erot = 23.8720082856019 | epot = -78.7811265808815 | etot = -33.5644508315201 +378000 ekin = 21.6424854229658 | erot = 24.5275644041121 | epot = -79.7345006599212 | etot = -33.5644508328433 +379000 ekin = 21.9906215821683 | erot = 25.2058289792437 | epot = -80.7609013956721 | etot = -33.5644508342601 +380000 ekin = 22.3975872845819 | erot = 25.8799316876613 | epot = -81.8419698101057 | etot = -33.5644508378624 +381000 ekin = 22.8474625365151 | erot = 26.5196756830445 | epot = -82.9315890609908 | etot = -33.5644508414312 +382000 ekin = 23.3214968285656 | erot = 27.0935868815677 | epot = -83.9795345554676 | etot = -33.5644508453342 +383000 ekin = 23.798948647365 | erot = 27.5682880228108 | epot = -84.9316875192928 | etot = -33.564450849117 +384000 ekin = 24.2602946691393 | erot = 27.9101784191673 | epot = -85.7349239406047 | etot = -33.5644508522981 +385000 ekin = 24.6909701695335 | erot = 28.0892515731785 | epot = -86.3446725968127 | etot = -33.5644508541008 +386000 ekin = 25.0758089634755 | erot = 28.0812872789521 | epot = -86.7215471013172 | etot = -33.5644508588896 +387000 ekin = 25.3886917944527 | erot = 27.8683599139988 | epot = -86.8215025663126 | etot = -33.5644508578612 +388000 ekin = 25.6321888109058 | erot = 27.4567876604357 | epot = -86.6534273265843 | etot = -33.5644508552428 +389000 ekin = 25.8173007945418 | erot = 26.8690369421787 | epot = -86.2507885888255 | etot = -33.564450852105 +390000 ekin = 25.9562629244047 | erot = 26.1386991558076 | epot = -85.6594129283773 | etot = -33.5644508481649 +391000 ekin = 26.0625510047816 | erot = 25.3050096520618 | epot = -84.9320115013513 | etot = -33.5644508445078 +392000 ekin = 26.1477279258083 | erot = 24.4077754075857 | epot = -84.1199541748157 | etot = -33.5644508414217 +393000 ekin = 26.2207009125763 | erot = 23.4862823970573 | epot = -83.2714341485498 | etot = -33.5644508389163 +394000 ekin = 26.2880235522712 | erot = 22.5776047858261 | epot = -82.4300791761996 | etot = -33.5644508381023 +395000 ekin = 26.3461327830412 | erot = 21.6992206105417 | epot = -81.6098042309749 | etot = -33.5644508373921 +396000 ekin = 26.3925769143341 | erot = 20.8648963380243 | epot = -80.8219240889404 | etot = -33.564450836582 +397000 ekin = 26.4280357588778 | erot = 20.0875980485136 | epot = -80.0800846429448 | etot = -33.5644508355533 +398000 ekin = 26.4568264159667 | erot = 19.3805747697846 | epot = -79.4018520200129 | etot = -33.5644508342616 +399000 ekin = 26.4863910840118 | erot = 18.7576183808216 | epot = -78.8084602983166 | etot = -33.5644508334833 +400000 ekin = 26.5240355653115 | erot = 18.2309165846171 | epot = -78.3194029820772 | etot = -33.5644508321487 +401000 ekin = 26.5785515874174 | erot = 17.8133011773559 | epot = -77.9563035961333 | etot = -33.56445083136 +402000 ekin = 26.655331687452 | erot = 17.5146324371175 | epot = -77.7344149563074 | etot = -33.564450831738 +403000 ekin = 26.750844144417 | erot = 17.3369800815745 | epot = -77.6522750599618 | etot = -33.5644508339703 +404000 ekin = 26.847889984664 | erot = 17.270366441038 | epot = -77.6827072640007 | etot = -33.5644508382987 +405000 ekin = 26.9136481513682 | erot = 17.290640983477 | epot = -77.7687399796861 | etot = -33.5644508448409 +406000 ekin = 26.9026743980023 | erot = 17.3519919762782 | epot = -77.8191172252627 | etot = -33.5644508509822 +407000 ekin = 26.7697793191984 | erot = 17.4151352559464 | epot = -77.7493654298542 | etot = -33.5644508547094 +408000 ekin = 26.4852107131098 | erot = 17.4599310844412 | epot = -77.50959265223 | etot = -33.564450854679 +409000 ekin = 26.0447937746191 | erot = 17.489715636672 | epot = -77.0989602628005 | etot = -33.5644508515094 +410000 ekin = 25.4686689663916 | erot = 17.525308599911 | epot = -76.5584284132955 | etot = -33.564450846993 +411000 ekin = 24.7901856102895 | erot = 17.5925678633025 | epot = -75.9472043165596 | etot = -33.5644508429676 +412000 ekin = 24.0429450721768 | erot = 17.7112262985626 | epot = -75.3186222110808 | etot = -33.5644508403414 +413000 ekin = 23.2530709441322 | erot = 17.8904894599544 | epot = -74.7080112431157 | etot = -33.5644508390292 +414000 ekin = 22.4380957569814 | erot = 18.1309089880911 | epot = -74.1334555836084 | etot = -33.5644508385359 +415000 ekin = 21.6095002972743 | erot = 18.4284521146042 | epot = -73.6024032502431 | etot = -33.5644508383646 +416000 ekin = 20.7759703154786 | erot = 18.7780315272693 | epot = -73.1184526809416 | etot = -33.5644508381937 +417000 ekin = 19.9459219944617 | erot = 19.1754390644637 | epot = -72.6858118967971 | etot = -33.5644508378717 +418000 ekin = 19.1290603144219 | erot = 19.6178812357862 | epot = -72.3113923875522 | etot = -33.5644508373441 +419000 ekin = 18.337241174533 | erot = 20.1037315121921 | epot = -72.005423523335 | etot = -33.5644508366099 +420000 ekin = 17.5848708565925 | erot = 20.6319495843217 | epot = -71.7812712766207 | etot = -33.5644508357065 +421000 ekin = 16.8888669765948 | erot = 21.2012508781818 | epot = -71.654568689525 | etot = -33.5644508347484 +422000 ekin = 16.2680311852926 | erot = 21.8088345392229 | epot = -71.6413165584697 | etot = -33.5644508339541 +423000 ekin = 15.7416423465874 | erot = 22.4484657015901 | epot = -71.754558881829 | etot = -33.5644508336516 +424000 ekin = 15.3271568809885 | erot = 23.1079611163195 | epot = -71.9995688315673 | etot = -33.5644508342592 +425000 ekin = 15.0370245442154 | erot = 23.7664993129421 | epot = -72.3679746933712 | etot = -33.5644508362137 +426000 ekin = 14.8748792452246 | erot = 24.3924933232269 | epot = -72.8318234082835 | etot = -33.564450839832 +427000 ekin = 14.8320398098318 | erot = 24.9432466996428 | epot = -73.3397373544817 | etot = -33.5644508450071 +428000 ekin = 14.8863924965225 | erot = 25.3682827942598 | epot = -73.8191261416323 | etot = -33.56445085085 +429000 ekin = 15.0062259694751 | erot = 25.6182665545283 | epot = -74.1889433796421 | etot = -33.5644508556387 +430000 ekin = 15.1595389321474 | erot = 25.6590201133498 | epot = -74.3830099030104 | etot = -33.5644508575131 +431000 ekin = 15.3249133699162 | erot = 25.4851984009302 | epot = -74.3745626264769 | etot = -33.5644508556305 +432000 ekin = 15.4974987577243 | erot = 25.1253113467255 | epot = -74.1872609552084 | etot = -33.5644508507585 +433000 ekin = 15.6867402477162 | erot = 24.6339851580146 | epot = -73.8851762504474 | etot = -33.5644508447166 +434000 ekin = 15.908478952494 | erot = 24.0759117528824 | epot = -73.5488415446164 | etot = -33.56445083924 +435000 ekin = 16.1769022059532 | erot = 23.5103596607956 | epot = -73.2517127020391 | etot = -33.5644508352903 +436000 ekin = 16.4997173059431 | erot = 22.9822765166324 | epot = -73.0464446556921 | etot = -33.5644508331166 +437000 ekin = 16.8769806268047 | erot = 22.5199344327298 | epot = -72.9613658919567 | etot = -33.5644508324222 +438000 ekin = 17.3021259571554 | erot = 22.1372453983087 | epot = -73.0038221882772 | etot = -33.5644508328131 +439000 ekin = 17.7637229039241 | erot = 21.8373393625943 | epot = -73.1655131004615 | etot = -33.5644508339431 +440000 ekin = 18.2471223979911 | erot = 21.6157595595468 | epot = -73.4273327930896 | etot = -33.5644508355518 +441000 ekin = 18.7357201395364 | erot = 21.4628710845581 | epot = -73.7630420615727 | etot = -33.5644508374783 +442000 ekin = 19.2118878212778 | erot = 21.365451542122 | epot = -74.1417902029878 | etot = -33.564450839588 +443000 ekin = 19.6577318124694 | erot = 21.3079015376941 | epot = -74.530084191929 | etot = -33.5644508417655 +444000 ekin = 20.0558238633166 | erot = 21.2733344148721 | epot = -74.8936091220801 | etot = -33.5644508438914 +445000 ekin = 20.389989391221 | erot = 21.2445884062662 | epot = -75.1990286433164 | etot = -33.5644508458292 +446000 ekin = 20.6461236043855 | erot = 21.2052857367663 | epot = -75.41586018866 | etot = -33.5644508475082 +447000 ekin = 20.8131102287267 | erot = 21.1405154512044 | epot = -75.5180765280277 | etot = -33.5644508480966 +448000 ekin = 20.8836321565114 | erot = 21.0415726580595 | epot = -75.4896556635799 | etot = -33.5644508490089 +449000 ekin = 20.8549766396171 | erot = 20.9006105485411 | epot = -75.3200380376018 | etot = -33.5644508494435 +450000 ekin = 20.7289995988534 | erot = 20.7094982244521 | epot = -75.0029486726748 | etot = -33.5644508493693 +451000 ekin = 20.5121237020311 | erot = 20.4634057687252 | epot = -74.5399803195251 | etot = -33.5644508487688 +452000 ekin = 20.2152499007445 | erot = 20.1611428754572 | epot = -73.9408436238401 | etot = -33.5644508476384 +453000 ekin = 19.8534700764778 | erot = 19.8054562088345 | epot = -73.2233771313103 | etot = -33.564450845998 +454000 ekin = 19.4456214291213 | erot = 19.4031472753593 | epot = -72.4132195483806 | etot = -33.5644508439 +455000 ekin = 19.0137205227782 | erot = 18.964872313207 | epot = -71.5430436774017 | etot = -33.5644508414165 +456000 ekin = 18.5823093299359 | erot = 18.5046119868878 | epot = -70.6513721554908 | etot = -33.5644508386671 +457000 ekin = 18.1775784949196 | erot = 18.0385547552735 | epot = -69.7805840860522 | etot = -33.5644508358591 +458000 ekin = 17.8262193052027 | erot = 17.5834820270569 | epot = -68.9741521652289 | etot = -33.5644508329693 +459000 ekin = 17.5544328314126 | erot = 17.1574115033566 | epot = -68.2762951651265 | etot = -33.5644508303572 +460000 ekin = 17.3857834993165 | erot = 16.7769882364293 | epot = -67.7272225639932 | etot = -33.5644508282474 +461000 ekin = 17.3389537756698 | erot = 16.4559737247112 | epot = -67.3593783272464 | etot = -33.5644508268654 +462000 ekin = 17.4254421541111 | erot = 16.2041333991429 | epot = -67.1940263796471 | etot = -33.5644508263932 +463000 ekin = 17.6475549837678 | erot = 16.0264214062831 | epot = -67.2384272169901 | etot = -33.5644508269392 +464000 ekin = 17.9971528391479 | erot = 15.9226257282762 | epot = -67.4842293959134 | etot = -33.5644508284893 +465000 ekin = 18.4555654855751 | erot = 15.8876205731988 | epot = -67.9076368896734 | etot = -33.5644508308995 +466000 ekin = 18.9948338162462 | erot = 15.9122553307032 | epot = -68.4715399808675 | etot = -33.5644508339181 +467000 ekin = 19.5800987880483 | erot = 15.9847161183743 | epot = -69.1292657436643 | etot = -33.5644508372418 +468000 ekin = 20.1726645576182 | erot = 16.0920334747517 | epot = -69.8291488729546 | etot = -33.5644508405847 +469000 ekin = 20.7331520538985 | erot = 16.2213910259127 | epot = -70.5189939235296 | etot = -33.5644508437184 +470000 ekin = 21.2242791251678 | erot = 16.3610502014337 | epot = -71.1497801730816 | etot = -33.5644508464802 +471000 ekin = 21.6130740294769 | erot = 16.5009517691198 | epot = -71.6784766473461 | etot = -33.5644508487495 +472000 ekin = 21.8725913830144 | erot = 16.6332178545353 | epot = -72.0702600879624 | etot = -33.5644508504127 +473000 ekin = 21.9833185471274 | erot = 16.7527436323183 | epot = -72.3005130308005 | etot = -33.5644508513548 +474000 ekin = 21.9344099205846 | erot = 16.8578720764489 | epot = -72.3567328485068 | etot = -33.5644508514733 +475000 ekin = 21.7247480853885 | erot = 16.9509439425814 | epot = -72.2401428786726 | etot = -33.5644508507026 +476000 ekin = 21.3637036554054 | erot = 17.0384540155504 | epot = -71.9666085200057 | etot = -33.5644508490499 +477000 ekin = 20.8713853162837 | erot = 17.130593864283 | epot = -71.5664300271643 | etot = -33.5644508465976 +478000 ekin = 20.2781056158348 | erot = 17.2401904856494 | epot = -71.082746945061 | etot = -33.5644508435769 +479000 ekin = 19.6228148922352 | erot = 17.3807417057109 | epot = -70.568007438244 | etot = -33.5644508402978 +480000 ekin = 18.9501924819871 | erot = 17.5641098023629 | epot = -70.078753121549 | etot = -33.5644508371989 +481000 ekin = 18.3063999207698 | erot = 17.7978626900194 | epot = -69.6687134455753 | etot = -33.5644508347861 +482000 ekin = 17.7338800308527 | erot = 18.0826185787009 | epot = -69.3809494430906 | etot = -33.564450833537 +483000 ekin = 17.2661333869729 | erot = 18.4098565340996 | epot = -69.2404407548555 | etot = -33.564450833783 +484000 ekin = 16.9123469726303 | erot = 18.5839236848227 | epot = -69.0607216150868 | etot = -33.5644509576338 +485000 ekin = 17.2473052119872 | erot = 17.4463141948379 | epot = -68.2580700315476 | etot = -33.5644506247225 +486000 ekin = 18.3155143093133 | erot = 17.18327309766 | epot = -69.0632384227249 | etot = -33.5644510157516 +487000 ekin = 18.1324826615341 | erot = 17.2801627137401 | epot = -68.9770961534278 | etot = -33.5644507781536 +488000 ekin = 18.0650666711476 | erot = 17.4264266856646 | epot = -69.0559441348375 | etot = -33.5644507780252 +489000 ekin = 18.1230207573334 | erot = 17.6201369927127 | epot = -69.3076085291276 | etot = -33.5644507790815 +490000 ekin = 18.2959502061969 | erot = 17.8551924365584 | epot = -69.7155934235351 | etot = -33.5644507807797 +491000 ekin = 18.5602651981851 | erot = 18.1239992625136 | epot = -70.2487152441586 | etot = -33.5644507834599 +492000 ekin = 18.8855238701042 | erot = 18.4159985148053 | epot = -70.8659731705823 | etot = -33.5644507856728 +493000 ekin = 19.2395352567771 | erot = 18.728264479211 | epot = -71.5322505229547 | etot = -33.5644507869666 +494000 ekin = 19.5921246703129 | erot = 19.0689157919769 | epot = -72.2254912502075 | etot = -33.5644507879177 +495000 ekin = 19.0728202099565 | erot = 18.9158482412593 | epot = -71.5531189784044 | etot = -33.5644505271886 +496000 ekin = 19.8797920560791 | erot = 18.7380967908761 | epot = -72.1823393790591 | etot = -33.564450532104 +497000 ekin = 21.3129327568523 | erot = 19.22085969099 | epot = -74.0982428020236 | etot = -33.5644503541812 +498000 ekin = 21.3264694813384 | erot = 19.7980335585312 | epot = -74.6889533938341 | etot = -33.5644503539645 +499000 ekin = 21.2778907743885 | erot = 20.4793064457547 | epot = -75.3216475744249 | etot = -33.5644503542817 +500000 ekin = 21.1661916284258 | erot = 21.258178122324 | epot = -75.9888201058597 | etot = -33.5644503551099 +501000 ekin = 20.9926825376647 | erot = 22.1178388254974 | epot = -76.6749717196181 | etot = -33.564450356456 +502000 ekin = 20.7610606942179 | erot = 23.0317414652511 | epot = -77.3572525175369 | etot = -33.5644503580679 +503000 ekin = 20.4798770188891 | erot = 23.9650377706427 | epot = -78.0093651496444 | etot = -33.5644503601125 +504000 ekin = 20.1546807720134 | erot = 24.8789199644612 | epot = -78.5980510988455 | etot = -33.5644503623709 +505000 ekin = 19.7897861053101 | erot = 25.7326258922808 | epot = -79.0868623624028 | etot = -33.5644503648119 +506000 ekin = 19.3875459003948 | erot = 26.488233736964 | epot = -79.4402300037047 | etot = -33.5644503663459 +507000 ekin = 18.9527707504281 | erot = 27.1161379583516 | epot = -79.6333590755957 | etot = -33.564450366816 +508000 ekin = 18.4930541128453 | erot = 27.6003825989619 | epot = -79.6578870777028 | etot = -33.5644503658955 +509000 ekin = 18.0182547167277 | erot = 27.9414911094103 | epot = -79.5241961902249 | etot = -33.5644503640869 +510000 ekin = 17.523965944791 | erot = 28.1499521522236 | epot = -79.2383684583665 | etot = -33.564450361352 +511000 ekin = 17.0202767589766 | erot = 28.2490270329564 | epot = -78.8337541500052 | etot = -33.5644503580722 +512000 ekin = 16.524571800827 | erot = 28.2698315418588 | epot = -78.3588536975498 | etot = -33.564450354864 +513000 ekin = 16.0539184298501 | erot = 28.2435719404605 | epot = -77.8619407225297 | etot = -33.564450352219 +514000 ekin = 15.622953975357 | erot = 28.1963871949976 | epot = -77.3837915207595 | etot = -33.5644503504049 +515000 ekin = 15.2424792422371 | erot = 28.1464443104744 | epot = -76.953373902264 | etot = -33.5644503495525 +516000 ekin = 14.9188926058558 | erot = 28.1027540351543 | epot = -76.5860969904231 | etot = -33.564450349413 +517000 ekin = 14.6543809153874 | erot = 28.0678237289542 | epot = -76.2866549941532 | etot = -33.5644503498116 +518000 ekin = 14.4476572457691 | erot = 28.0395642673969 | epot = -76.0516718636457 | etot = -33.5644503504797 +519000 ekin = 14.2950490441428 | erot = 28.0138489407524 | epot = -75.8733483360399 | etot = -33.5644503511447 +520000 ekin = 14.1917488338634 | erot = 27.9870813582064 | epot = -75.7432805436532 | etot = -33.5644503515833 +521000 ekin = 14.1329830511805 | erot = 27.9581295476446 | epot = -75.6555629505058 | etot = -33.5644503516806 +522000 ekin = 14.1002586404053 | erot = 27.7732671759151 | epot = -75.4379761959062 | etot = -33.5644503795858 +523000 ekin = 14.1969588162511 | erot = 27.1027118573523 | epot = -74.8641209744559 | etot = -33.5644503008525 +524000 ekin = 14.7378402619219 | erot = 26.6164089140764 | epot = -74.9186994724817 | etot = -33.5644502964834 +525000 ekin = 15.5068672854449 | erot = 26.5883544531684 | epot = -75.6596721109621 | etot = -33.5644503723487 +526000 ekin = 15.8574449977267 | erot = 26.6724957236415 | epot = -76.0943910939928 | etot = -33.5644503726246 +527000 ekin = 16.0112069682283 | erot = 26.7355098948156 | epot = -76.311167236341 | etot = -33.5644503732972 +528000 ekin = 16.1641744090515 | erot = 26.7947978809934 | epot = -76.5234226639649 | etot = -33.5644503739199 +529000 ekin = 16.3159009760756 | erot = 26.8380825379191 | epot = -76.7184338883076 | etot = -33.5644503743128 +530000 ekin = 16.466747721028 | erot = 26.8553312024403 | epot = -76.886529297879 | etot = -33.5644503744108 +531000 ekin = 16.6177352354996 | erot = 26.8400251084993 | epot = -77.022210718254 | etot = -33.564450374255 +532000 ekin = 16.7702150675957 | erot = 26.7891084872752 | epot = -77.1237739287798 | etot = -33.5644503739089 +533000 ekin = 16.9253640366974 | erot = 26.7024973872853 | epot = -77.1923117974439 | etot = -33.5644503734612 +534000 ekin = 17.0836447866564 | erot = 26.5822176528732 | epot = -77.230312812567 | etot = -33.5644503730375 +535000 ekin = 17.2444487915268 | erot = 26.4310079588786 | epot = -77.2399071231478 | etot = -33.5644503727425 +536000 ekin = 17.4060591053815 | erot = 26.2510049057206 | epot = -77.2215143837103 | etot = -33.5644503726081 +537000 ekin = 17.5658991981726 | erot = 26.0431264909246 | epot = -77.1734760616575 | etot = -33.5644503725604 +538000 ekin = 17.7209415436652 | erot = 25.8074441218956 | epot = -77.0928360381795 | etot = -33.5644503726186 +539000 ekin = 17.8681497078889 | erot = 25.5433035299955 | epot = -76.9759036105368 | etot = -33.5644503726524 +540000 ekin = 18.004863156336 | erot = 25.2502517039518 | epot = -76.8195652328856 | etot = -33.5644503725978 +541000 ekin = 18.129064826942 | erot = 24.9288645878186 | epot = -76.6223797871797 | etot = -33.564450372419 +542000 ekin = 18.2395164936781 | erot = 24.5811691616713 | epot = -76.3851360274362 | etot = -33.5644503720867 +543000 ekin = 18.335770007785 | erot = 24.2108468343436 | epot = -76.1110672137948 | etot = -33.5644503716662 +544000 ekin = 18.4180615071781 | erot = 23.8229131244954 | epot = -75.805425002847 | etot = -33.5644503711735 +545000 ekin = 18.4870901297785 | erot = 23.4236993424443 | epot = -75.4752398423761 | etot = -33.5644503701532 +546000 ekin = 18.54361047059 | erot = 23.0232726205026 | epot = -75.1313334608523 | etot = -33.5644503697597 +547000 ekin = 18.5881260725922 | erot = 22.6282216103021 | epot = -74.7807980523833 | etot = -33.564450369489 +548000 ekin = 18.6206521537359 | erot = 22.2431161970553 | epot = -74.4282187197494 | etot = -33.5644503689582 +549000 ekin = 18.6395328550285 | erot = 21.8731131588192 | epot = -74.0770963831711 | etot = -33.5644503693234 +550000 ekin = 18.6420012523706 | erot = 21.5194517196355 | epot = -73.7259033419334 | etot = -33.5644503699273 +551000 ekin = 18.624921029005 | erot = 21.1784779029538 | epot = -73.3678493026868 | etot = -33.564450370728 +552000 ekin = 18.5841928766033 | erot = 20.8452278496576 | epot = -72.9938710978566 | etot = -33.5644503715957 +553000 ekin = 18.5152127054113 | erot = 20.5148731369798 | epot = -72.5945362147189 | etot = -33.5644503723278 +554000 ekin = 18.4136816906652 | erot = 20.1848933332903 | epot = -72.1630253966383 | etot = -33.5644503726828 +555000 ekin = 18.2766906397711 | erot = 19.8574769328349 | epot = -71.6986179450508 | etot = -33.5644503724447 +556000 ekin = 18.1040115045293 | erot = 19.5406874738217 | epot = -71.2091493500419 | etot = -33.5644503716909 +557000 ekin = 17.89923096435 | erot = 19.24972262904 | epot = -70.7134039633246 | etot = -33.5644503699346 +558000 ekin = 17.6705778370294 | erot = 19.0080857255953 | epot = -70.2431139301013 | etot = -33.5644503674766 +559000 ekin = 17.4315653923217 | erot = 18.8444628125886 | epot = -69.8404785693936 | etot = -33.5644503644833 +560000 ekin = 17.2006230343926 | erot = 18.7901643785407 | epot = -69.5552377742619 | etot = -33.5644503613287 +561000 ekin = 16.9995569155364 | erot = 18.8749610240394 | epot = -69.4389682979995 | etot = -33.5644503584237 +562000 ekin = 16.8505251054351 | erot = 19.1232120103355 | epot = -69.5381874720851 | etot = -33.5644503563145 +563000 ekin = 16.771816019379 | erot = 19.5498137338075 | epot = -69.8860801087492 | etot = -33.5644503555627 +564000 ekin = 16.7730284247952 | erot = 20.1561760614947 | epot = -70.4936548432322 | etot = -33.5644503569423 +565000 ekin = 16.8503463811215 | erot = 20.9261148984733 | epot = -71.3409116397428 | etot = -33.564450360148 +566000 ekin = 16.9881817946884 | erot = 21.8252877511548 | epot = -72.3779199111064 | etot = -33.5644503652632 +567000 ekin = 17.1597730186738 | erot = 22.8021750342622 | epot = -73.5263984248048 | etot = -33.5644503718688 +568000 ekin = 17.3309908958581 | erot = 23.7909429899681 | epot = -74.6863842651206 | etot = -33.5644503792944 +569000 ekin = 17.4658946009928 | erot = 24.7167318454134 | epot = -75.7470768330927 | etot = -33.5644503866865 +570000 ekin = 17.5327796649247 | erot = 25.503072445778 | epot = -76.60030250379 | etot = -33.5644503930873 +571000 ekin = 17.5098280193733 | erot = 26.0808668138774 | epot = -77.1551452308085 | etot = -33.5644503975578 +572000 ekin = 17.3896134292035 | erot = 26.3976580233915 | epot = -77.3517218519472 | etot = -33.5644503993522 +573000 ekin = 17.1817696514795 | erot = 26.4252545064828 | epot = -77.1714745560827 | etot = -33.5644503981204 +574000 ekin = 16.91320121502 | erot = 26.1636856783704 | epot = -76.6413372874423 | etot = -33.5644503940519 +575000 ekin = 16.6253831475483 | erot = 25.640183136325 | epot = -75.8300166717811 | etot = -33.5644503879079 +576000 ekin = 16.3805854482806 | erot = 24.9437607565116 | epot = -74.8887965735951 | etot = -33.5644503688028 +577000 ekin = 16.23092958843 | erot = 24.1552332193367 | epot = -73.950613173759 | etot = -33.5644503659923 +578000 ekin = 16.2003426787873 | erot = 23.2996785345128 | epot = -73.0644715773449 | etot = -33.5644503640447 +579000 ekin = 16.298393825657 | erot = 22.4032685645682 | epot = -72.2661127534473 | etot = -33.5644503632221 +580000 ekin = 16.5164282813868 | erot = 21.4889399507426 | epot = -71.569818597847 | etot = -33.5644503657176 +581000 ekin = 16.829413172556 | erot = 20.5770732256226 | epot = -70.9709367637454 | etot = -33.5644503655668 +582000 ekin = 17.2014342862117 | erot = 19.7085617425621 | epot = -70.4744463946194 | etot = -33.5644503658456 +583000 ekin = 17.5894541375884 | erot = 18.925166774833 | epot = -70.0790712785306 | etot = -33.5644503661092 +584000 ekin = 17.9521233668095 | erot = 18.2657373647565 | epot = -69.7823110976562 | etot = -33.5644503660902 +585000 ekin = 18.2577014581518 | erot = 17.762756656003 | epot = -69.5849084798605 | etot = -33.5644503657057 +586000 ekin = 18.48903732181 | erot = 17.4391816026807 | epot = -69.4926692894528 | etot = -33.5644503649621 +587000 ekin = 18.6451700995223 | erot = 17.3070654480135 | epot = -69.5166859114209 | etot = -33.5644503638852 +588000 ekin = 18.7400423387256 | erot = 17.3682960794961 | epot = -69.6727887807878 | etot = -33.5644503625662 +589000 ekin = 18.7988289994632 | erot = 17.6163757903472 | epot = -69.9796551510921 | etot = -33.5644503612817 +590000 ekin = 18.8521852510563 | erot = 18.03770774159 | epot = -70.4543433531448 | etot = -33.5644503604985 +591000 ekin = 18.9335216732476 | erot = 18.6145318736687 | epot = -71.1125039063923 | etot = -33.564450359476 +592000 ekin = 19.0736372364623 | erot = 19.3273958984734 | epot = -71.9654834953563 | etot = -33.5644503604206 +593000 ekin = 19.2836835994718 | erot = 20.1464047122411 | epot = -72.9945386745438 | etot = -33.5644503628309 +594000 ekin = 19.5596584178685 | erot = 21.034123237208 | epot = -74.1582320215033 | etot = -33.5644503664268 +595000 ekin = 19.8847224284612 | erot = 21.9477887873151 | epot = -75.3969615864514 | etot = -33.5644503706751 +596000 ekin = 20.2229995975395 | erot = 22.8321032475601 | epot = -76.6195532302897 | etot = -33.56445038519 +597000 ekin = 20.5134057742179 | erot = 23.6125551256778 | epot = -77.6904112894541 | etot = -33.5644503895585 +598000 ekin = 20.7238255182392 | erot = 24.2466753984176 | epot = -78.5349513088604 | etot = -33.5644503922037 +599000 ekin = 20.8326105236303 | erot = 24.7094660554427 | epot = -79.1065269720019 | etot = -33.5644503929288 +600000 ekin = 20.828192883276 | erot = 24.9942677722285 | epot = -79.3869110474472 | etot = -33.5644503919427 +601000 ekin = 20.7081769096798 | erot = 25.11085155755 | epot = -79.3834788569396 | etot = -33.5644503897098 +602000 ekin = 20.4770754640505 | erot = 25.0812117058382 | epot = -79.1227375566785 | etot = -33.5644503867898 +603000 ekin = 20.1436196141802 | erot = 24.9343592764579 | epot = -78.6424292743164 | etot = -33.5644503836784 +604000 ekin = 19.7184185863195 | erot = 24.7015463486128 | epot = -77.9844153156502 | etot = -33.564450380718 +605000 ekin = 19.2123955082262 | erot = 24.4128183898753 | epot = -77.1896642761826 | etot = -33.5644503780811 +606000 ekin = 18.6360571566313 | erot = 24.0951290260324 | epot = -76.2956365584618 | etot = -33.5644503757982 +607000 ekin = 17.9994317314224 | erot = 23.7717793956126 | epot = -75.3356615008433 | etot = -33.5644503738083 +608000 ekin = 17.3124228754604 | erot = 23.4627525846719 | epot = -74.3396258321416 | etot = -33.5644503720093 +609000 ekin = 16.5853412867629 | erot = 23.1855122472229 | epot = -73.3353039042776 | etot = -33.5644503702918 +610000 ekin = 15.8294285553984 | erot = 22.9559130653051 | epot = -72.3497919892683 | etot = -33.5644503685648 +611000 ekin = 15.0572484571768 | erot = 22.7889597199825 | epot = -71.4106585439383 | etot = -33.564450366779 +612000 ekin = 14.2829782528012 | erot = 22.6991649591093 | epot = -70.5465935768327 | etot = -33.5644503649222 +613000 ekin = 13.5233158611292 | erot = 22.7018063026035 | epot = -69.7895725256479 | etot = -33.5644503619153 +614000 ekin = 12.7974443556917 | erot = 22.8128628316047 | epot = -69.1747575476346 | etot = -33.5644503603383 +615000 ekin = 12.1222485232213 | erot = 23.0409824252133 | epot = -68.7276813075076 | etot = -33.564450359073 +616000 ekin = 11.5143476718002 | erot = 23.3894333501644 | epot = -68.4682313804871 | etot = -33.5644503585225 +617000 ekin = 10.9895105321831 | erot = 23.8529820636908 | epot = -68.4069429545483 | etot = -33.5644503586744 +618000 ekin = 10.5621427379082 | erot = 24.4166592376929 | epot = -68.5432523353739 | etot = -33.5644503597728 +619000 ekin = 10.2447233168846 | erot = 25.0539361238965 | epot = -68.8631098026496 | etot = -33.5644503618684 +620000 ekin = 10.0473729681852 | erot = 25.726395813846 | epot = -69.3382191468432 | etot = -33.564450364812 +621000 ekin = 9.97770919335943 | erot = 26.3860294543558 | epot = -69.9281890159394 | etot = -33.5644503682242 +622000 ekin = 10.0410058293406 | erot = 26.9805251338807 | epot = -70.5859813347549 | etot = -33.5644503715336 +623000 ekin = 10.2405907646719 | erot = 27.4608678071822 | epot = -71.2659089459993 | etot = -33.5644503741453 +624000 ekin = 10.5781077609575 | erot = 27.789174960007 | epot = -71.9317330966645 | etot = -33.5644503757 +625000 ekin = 11.0534790497405 | erot = 27.9443540028375 | epot = -72.5622834286287 | etot = -33.5644503760506 +626000 ekin = 11.6650239614417 | erot = 27.9236660631623 | epot = -73.1531404000459 | etot = -33.5644503754418 +627000 ekin = 12.4090657081618 | erot = 27.7401487508296 | epot = -73.713664833205 | etot = -33.5644503742135 +628000 ekin = 13.2797303336247 | erot = 27.4180442690277 | epot = -74.2622249753901 | etot = -33.5644503727378 +629000 ekin = 14.2227247808597 | erot = 26.9288523652634 | epot = -74.7160277925057 | etot = -33.5644506463826 +630000 ekin = 14.6371369646358 | erot = 25.6849986217032 | epot = -73.8865860618273 | etot = -33.5644504754884 +631000 ekin = 15.1932748232492 | erot = 24.8015291118369 | epot = -73.5592542921839 | etot = -33.5644503570978 +632000 ekin = 16.5842231811831 | erot = 25.1927867337753 | epot = -75.3414603985266 | etot = -33.5644504835681 +633000 ekin = 18.1129981057209 | erot = 25.8399990860739 | epot = -77.5174478422231 | etot = -33.5644506504283 +634000 ekin = 19.1483265833795 | erot = 25.7387528538212 | epot = -78.4515299869786 | etot = -33.5644505497779 +635000 ekin = 20.1638306083842 | erot = 25.6154971451023 | epot = -79.3437783074232 | etot = -33.5644505539367 +636000 ekin = 21.1529452192774 | erot = 25.4927802227977 | epot = -80.210176001065 | etot = -33.5644505589899 +637000 ekin = 22.0768404119804 | erot = 25.3376757556836 | epot = -80.9789667313978 | etot = -33.5644505637338 +638000 ekin = 22.8998086493368 | erot = 25.1175243540521 | epot = -81.581783570336 | etot = -33.5644505669471 +639000 ekin = 23.5958452405688 | erot = 24.8103240278057 | epot = -81.9706198363764 | etot = -33.5644505680019 +640000 ekin = 24.1448393944085 | erot = 24.4104070782069 | epot = -82.1196970406963 | etot = -33.5644505680809 +641000 ekin = 24.5337741515846 | erot = 23.9290519078285 | epot = -82.0272766241422 | etot = -33.5644505647291 +642000 ekin = 24.7698696442131 | erot = 23.3958020420911 | epot = -81.7301222479835 | etot = -33.5644505616793 +643000 ekin = 24.8669267979412 | erot = 22.8392829414695 | epot = -81.2706602981471 | etot = -33.5644505587364 +644000 ekin = 24.8431155053321 | erot = 22.2830723087654 | epot = -80.6906383703371 | etot = -33.5644505562396 +645000 ekin = 24.7193046979064 | erot = 21.7428697630937 | epot = -80.0266250151886 | etot = -33.5644505541885 +646000 ekin = 24.5180931831024 | erot = 21.2270132553 | epot = -79.3095569908572 | etot = -33.5644505524548 +647000 ekin = 24.2628521138149 | erot = 20.7388201346271 | epot = -78.5661227994122 | etot = -33.5644505509702 +648000 ekin = 23.9761808148133 | erot = 20.2787945273933 | epot = -77.8194258919934 | etot = -33.5644505497868 +649000 ekin = 23.6778736566609 | erot = 19.8458221794067 | epot = -77.0881463850653 | etot = -33.5644505489977 +650000 ekin = 23.3831896156548 | erot = 19.4375683305137 | epot = -76.3852084947824 | etot = -33.5644505486139 +651000 ekin = 23.1045251412741 | erot = 19.0455994386574 | epot = -75.7145751292058 | etot = -33.5644505492743 +652000 ekin = 22.8525540925228 | erot = 18.6600582438882 | epot = -75.0770628853385 | etot = -33.5644505489275 +653000 ekin = 22.6343633058236 | erot = 18.2797742485017 | epot = -74.4785881025892 | etot = -33.564450548264 +654000 ekin = 22.4577061635195 | erot = 17.9066943674651 | epot = -73.9288510781073 | etot = -33.5644505471227 +655000 ekin = 22.3323244924946 | erot = 17.5466477594773 | epot = -73.4434227975466 | etot = -33.5644505455747 +656000 ekin = 22.2694639419047 | erot = 17.2090068004228 | epot = -73.0429212862265 | etot = -33.5644505438989 +657000 ekin = 22.2796962966157 | erot = 16.9050137467998 | epot = -72.7491605859738 | etot = -33.5644505425584 +658000 ekin = 22.369639071293 | erot = 16.6447644948982 | epot = -72.5788541082823 | etot = -33.5644505420911 +659000 ekin = 22.5385894789304 | erot = 16.4332539533158 | epot = -72.5362939752044 | etot = -33.5644505429582 +660000 ekin = 22.7761662594052 | erot = 16.2664693850933 | epot = -72.6070861898631 | etot = -33.5644505453646 +661000 ekin = 23.0623022457157 | erot = 16.1290340495213 | epot = -72.7557868419576 | etot = -33.5644505467205 +662000 ekin = 23.3837240382632 | erot = 15.9907831573615 | epot = -72.9389579063317 | etot = -33.564450710707 +663000 ekin = 23.054148007274 | erot = 16.1177804827538 | epot = -72.7363790499092 | etot = -33.5644505598814 +664000 ekin = 22.9781515350229 | erot = 16.5698259294712 | epot = -73.112428112566 | etot = -33.5644506480719 +665000 ekin = 23.3749786895457 | erot = 16.411782739857 | epot = -73.3512119977732 | etot = -33.5644505683704 +666000 ekin = 23.723950183745 | erot = 16.0357448193694 | epot = -73.3241455698056 | etot = -33.5644505666911 +667000 ekin = 24.0215049432174 | erot = 15.6311856367398 | epot = -73.2171411428858 | etot = -33.5644505629285 +668000 ekin = 24.2720292261732 | erot = 15.2431977236565 | epot = -73.0796775091056 | etot = -33.5644505592759 +669000 ekin = 24.4823401830215 | erot = 14.9164487057936 | epot = -72.9632394451725 | etot = -33.5644505563574 +670000 ekin = 24.6591929157758 | erot = 14.6865199575477 | epot = -72.9101634276307 | etot = -33.5644505543073 +671000 ekin = 24.7891522537242 | erot = 14.5781166474215 | epot = -72.9317194571598 | etot = -33.5644505560141 +672000 ekin = 24.8512867490322 | erot = 14.6015183441379 | epot = -73.0172556484841 | etot = -33.564450555314 +673000 ekin = 24.8569569351995 | erot = 14.7562217139438 | epot = -73.1776292037397 | etot = -33.5644505545965 +674000 ekin = 24.8222537578926 | erot = 15.0373554089786 | epot = -73.4240597206982 | etot = -33.564450553827 +675000 ekin = 24.7663204261064 | erot = 15.4372951197778 | epot = -73.7680660991378 | etot = -33.5644505532536 +676000 ekin = 24.7079731413268 | erot = 15.9453732717859 | epot = -74.217796966472 | etot = -33.5644505533592 +677000 ekin = 24.6606038390545 | erot = 16.5455776363011 | epot = -74.7706320301637 | etot = -33.5644505548081 +678000 ekin = 24.6267378751708 | erot = 17.2129758022366 | epot = -75.4041642354332 | etot = -33.5644505580258 +679000 ekin = 24.5940505555973 | erot = 17.9117017671719 | epot = -76.0702028857369 | etot = -33.5644505629677 +680000 ekin = 24.5356055102642 | erot = 18.5957689118677 | epot = -76.6958249909574 | etot = -33.5644505688256 +681000 ekin = 24.4156570901708 | erot = 19.2149559866325 | epot = -77.1950636509461 | etot = -33.5644505741429 +682000 ekin = 24.1989519856416 | erot = 19.7242966851149 | epot = -77.487699248418 | etot = -33.5644505776614 +683000 ekin = 23.8604728484841 | erot = 20.0938581680861 | epot = -77.5187815945976 | etot = -33.5644505780274 +684000 ekin = 23.3975557793202 | erot = 20.3180971821174 | epot = -77.2801035368968 | etot = -33.5644505754592 +685000 ekin = 22.8290459842939 | erot = 20.4129669401602 | epot = -76.8064634953545 | etot = -33.5644505709004 +686000 ekin = 22.1833688830902 | erot = 20.3969948298234 | epot = -76.1448143090756 | etot = -33.564450596162 +687000 ekin = 21.4529188825682 | erot = 20.1567338484389 | epot = -75.1741032961385 | etot = -33.5644505651314 +688000 ekin = 20.8420414150976 | erot = 19.8330340944162 | epot = -74.2395260509536 | etot = -33.5644505414398 +689000 ekin = 20.485045480985 | erot = 19.6177759067974 | epot = -73.667271944758 | etot = -33.5644505569757 +690000 ekin = 20.22367052676 | erot = 19.4736760217004 | epot = -73.2617971257719 | etot = -33.5644505773115 +691000 ekin = 19.9277329716986 | erot = 19.3525548976992 | epot = -72.8447384077161 | etot = -33.5644505383183 +692000 ekin = 19.7615779528863 | erot = 19.3271485942255 | epot = -72.6531770849096 | etot = -33.5644505377978 +693000 ekin = 19.7317397131701 | erot = 19.4147876349782 | epot = -72.7109778869691 | etot = -33.5644505388208 +694000 ekin = 19.8186070325659 | erot = 19.6208277623457 | epot = -73.0038853361764 | etot = -33.5644505412647 +695000 ekin = 19.9894250230478 | erot = 19.941877147877 | epot = -73.4957527156739 | etot = -33.5644505447491 +696000 ekin = 20.2029739943976 | erot = 20.3669312863332 | epot = -74.1343558293723 | etot = -33.5644505486415 +697000 ekin = 20.4154400727664 | erot = 20.880919300581 | epot = -74.8608099257857 | etot = -33.5644505524382 +698000 ekin = 20.5862067302191 | erot = 21.4669039242718 | epot = -75.6175612102066 | etot = -33.5644505557157 +699000 ekin = 20.6825995314592 | erot = 22.1076466744899 | epot = -76.3546967641855 | etot = -33.5644505582364 +700000 ekin = 20.6830084841778 | erot = 22.7863311593422 | epot = -77.0337902034447 | etot = -33.5644505599247 +701000 ekin = 20.578193148326 | erot = 23.4865818235912 | epot = -77.629225532724 | etot = -33.5644505608068 +702000 ekin = 20.3710754301549 | erot = 24.1923776458902 | epot = -78.1279036369795 | etot = -33.5644505609343 +703000 ekin = 20.0753347575173 | erot = 24.888467252762 | epot = -78.528252570647 | etot = -33.5644505603677 +704000 ekin = 19.7130379610838 | erot = 25.5614200023189 | epot = -78.838908522607 | etot = -33.5644505592043 +705000 ekin = 19.3114467602167 | erot = 26.2008176281874 | epot = -79.0767149460512 | etot = -33.564450557647 +706000 ekin = 18.8991937919881 | erot = 26.7996687691974 | epot = -79.2633131172258 | etot = -33.5644505560403 +707000 ekin = 18.5022273016031 | erot = 27.3532672566161 | epot = -79.4199451130548 | etot = -33.5644505548355 +708000 ekin = 18.1401729300363 | erot = 27.8564306963449 | epot = -79.5610541808569 | etot = -33.5644505544757 +709000 ekin = 17.8234464200403 | erot = 28.2999901805008 | epot = -79.6878871558114 | etot = -33.5644505552703 +710000 ekin = 17.5523632022352 | erot = 28.66784646393 | epot = -79.7846602233792 | etot = -33.564450557214 +711000 ekin = 17.319410981167 | erot = 28.9359249877842 | epot = -79.8197865289555 | etot = -33.5644505600043 +712000 ekin = 17.1112174759792 | erot = 29.0741670939005 | epot = -79.7498351329345 | etot = -33.5644505630547 +713000 ekin = 16.9121266207384 | erot = 29.0513180252372 | epot = -79.5278952115921 | etot = -33.5644505656165 +714000 ekin = 16.7079630671362 | erot = 28.8416092685853 | epot = -79.1140229027166 | etot = -33.564450566995 +715000 ekin = 16.4890214415111 | erot = 28.4313561606375 | epot = -78.4848281689488 | etot = -33.5644505668002 +716000 ekin = 16.2513970083694 | erot = 27.8230898675347 | epot = -77.6389374409925 | etot = -33.5644505650884 +717000 ekin = 15.9963403731169 | erot = 27.0356716312561 | epot = -76.5964625666635 | etot = -33.5644505622904 +718000 ekin = 15.7361303250895 | erot = 26.1105494914754 | epot = -75.4111303728763 | etot = -33.5644505563113 +719000 ekin = 15.4991442332756 | erot = 25.1078869435359 | epot = -74.1714817315667 | etot = -33.5644505547552 +720000 ekin = 15.2869109984327 | erot = 24.051118277072 | epot = -72.9024798285824 | etot = -33.5644505530778 +721000 ekin = 15.0983958368563 | erot = 22.9636187921636 | epot = -71.6264651803974 | etot = -33.5644505513775 +722000 ekin = 14.9325120658119 | erot = 21.8688846316655 | epot = -70.3658472497603 | etot = -33.5644505522828 +723000 ekin = 14.7807572560571 | erot = 20.783177409075 | epot = -69.1283852152817 | etot = -33.5644505501496 +724000 ekin = 14.6422909698242 | erot = 19.7295658973655 | epot = -67.9363074154255 | etot = -33.5644505482357 +725000 ekin = 14.5216204992091 | erot = 18.7315290225185 | epot = -66.8176000682293 | etot = -33.5644505465018 +726000 ekin = 14.4243651447271 | erot = 17.8092496646936 | epot = -65.7980653543268 | etot = -33.5644505449061 +727000 ekin = 14.3569475465798 | erot = 16.9804196385917 | epot = -64.9018177285995 | etot = -33.564450543428 +728000 ekin = 14.2536930559593 | erot = 16.2469828282715 | epot = -64.0651265345919 | etot = -33.5644506503612 +729000 ekin = 13.8457257235901 | erot = 15.9222518581098 | epot = -63.3324280824188 | etot = -33.5644505007189 +730000 ekin = 14.0260810331572 | erot = 15.9641149780232 | epot = -63.5546467085729 | etot = -33.5644506973925 +731000 ekin = 14.2598526174267 | erot = 15.8407237779026 | epot = -63.6650270928699 | etot = -33.5644506975406 +732000 ekin = 14.5606957082 | erot = 15.8547631025675 | epot = -63.9799095095013 | etot = -33.5644506987338 +733000 ekin = 14.9193813420873 | erot = 16.0002143198209 | epot = -64.4840463630918 | etot = -33.5644507011835 +734000 ekin = 15.3191392217664 | erot = 16.2611439998487 | epot = -65.1447339265492 | etot = -33.5644507049341 +735000 ekin = 15.7356018991576 | erot = 16.6113471097583 | epot = -65.9113997186633 | etot = -33.5644507097475 +736000 ekin = 16.1415246377564 | erot = 17.0234641328674 | epot = -66.7294394793124 | etot = -33.5644507086886 +737000 ekin = 16.5186056071986 | erot = 17.4895868028313 | epot = -67.5726431223686 | etot = -33.5644507123387 +738000 ekin = 16.8458492085384 | erot = 17.9860152350135 | epot = -68.396315158488 | etot = -33.5644507149361 +739000 ekin = 17.1101498629012 | erot = 18.4929848437288 | epot = -69.167585422606 | etot = -33.5644507159759 +740000 ekin = 17.3014321651814 | erot = 18.9830167810243 | epot = -69.8488996784293 | etot = -33.5644507322236 +741000 ekin = 17.386590010487 | erot = 19.3806296469325 | epot = -70.3316703890898 | etot = -33.5644507316703 +742000 ekin = 17.3696644696972 | erot = 19.6766235531722 | epot = -70.6107387526117 | etot = -33.5644507297423 +743000 ekin = 17.2668900413887 | erot = 19.8790967523848 | epot = -70.7104375210217 | etot = -33.5644507272482 +744000 ekin = 17.0976280278394 | erot = 20.0010316352814 | epot = -70.6631103878251 | etot = -33.5644507247043 +745000 ekin = 16.8806625291024 | erot = 20.057055059626 | epot = -70.5021683110215 | etot = -33.5644507222932 +746000 ekin = 16.6327129002015 | erot = 20.0624105110988 | epot = -70.2595741313054 | etot = -33.5644507200051 +747000 ekin = 16.3685004950096 | erot = 20.033016856487 | epot = -69.9659680692887 | etot = -33.5644507177921 +748000 ekin = 16.1014103999543 | erot = 19.9854814659263 | epot = -69.6513425815366 | etot = -33.564450715656 +749000 ekin = 15.8440980133595 | erot = 19.9365592321122 | epot = -69.345107959121 | etot = -33.5644507136493 +750000 ekin = 15.6090531913871 | erot = 19.903896348463 | epot = -69.0774002509923 | etot = -33.5644507111422 +751000 ekin = 15.408391615066 | erot = 19.9047162348154 | epot = -68.8775585596421 | etot = -33.5644507097607 +752000 ekin = 15.2531866583631 | erot = 19.9485427704181 | epot = -68.7661801374899 | etot = -33.5644507087087 +753000 ekin = 15.1543901558436 | erot = 20.0407526996777 | epot = -68.7595935635481 | etot = -33.5644507080268 +754000 ekin = 15.1228286565093 | erot = 20.1821712344388 | epot = -68.8694505987027 | etot = -33.5644507077546 +755000 ekin = 15.1688994236201 | erot = 20.3687544760721 | epot = -69.1021046076738 | etot = -33.5644507079815 +756000 ekin = 15.3014995511365 | erot = 20.5913112901341 | epot = -69.4572615501853 | etot = -33.5644507089146 +757000 ekin = 15.5255754908458 | erot = 20.8349492485987 | epot = -69.9249754503695 | etot = -33.564450710925 +758000 ekin = 15.8381446956662 | erot = 21.0780442729328 | epot = -70.4806396830074 | etot = -33.5644507144084 +759000 ekin = 16.2241238949829 | erot = 21.291351107698 | epot = -71.0799257220707 | etot = -33.5644507193898 +760000 ekin = 16.6551901643007 | erot = 21.4392176816081 | epot = -71.6588585709879 | etot = -33.5644507250792 +761000 ekin = 17.0950183929184 | erot = 21.4853061130269 | epot = -72.1447752357869 | etot = -33.5644507298415 +762000 ekin = 17.5106763995147 | erot = 21.4029539273073 | epot = -72.4780810587706 | etot = -33.5644507319486 +763000 ekin = 17.8846255668858 | erot = 21.185914549962 | epot = -72.6349908475012 | etot = -33.5644507306534 +764000 ekin = 18.2201199371193 | erot = 20.8529192973068 | epot = -72.6374899610343 | etot = -33.5644507266082 +765000 ekin = 18.5372583928787 | erot = 20.4430950204984 | epot = -72.544804134769 | etot = -33.564450721392 +766000 ekin = 18.86309963268 | erot = 20.0050052471612 | epot = -72.4325555962364 | etot = -33.5644507163952 +767000 ekin = 19.2212066783145 | erot = 19.5864803417602 | epot = -72.3721377327923 | etot = -33.5644507127176 +768000 ekin = 19.6245116668901 | erot = 19.2265552432954 | epot = -72.4155176210351 | etot = -33.5644507108497 +769000 ekin = 20.0721792306237 | erot = 18.9509745495803 | epot = -72.5876044911024 | etot = -33.5644507108984 +770000 ekin = 20.5498085990298 | erot = 18.7702787055214 | epot = -72.884538017272 | etot = -33.5644507127209 +771000 ekin = 21.0321028839958 | erot = 18.679435439756 | epot = -73.2759890396338 | etot = -33.5644507158821 +772000 ekin = 21.4851799397904 | erot = 18.6615620363116 | epot = -73.7111926963688 | etot = -33.5644507202668 +773000 ekin = 21.8752230439093 | erot = 18.6848228542269 | epot = -74.1244966228291 | etot = -33.5644507246929 +774000 ekin = 22.1763496427708 | erot = 18.7081814097347 | epot = -74.4489817807521 | etot = -33.5644507282467 +775000 ekin = 22.3745717791238 | erot = 18.6931201232722 | epot = -74.6321426323703 | etot = -33.5644507299744 +776000 ekin = 22.4709552224375 | erot = 18.6135457350496 | epot = -74.648951686955 | etot = -33.564450729468 +777000 ekin = 22.4798367585086 | erot = 18.4639882108411 | epot = -74.5082756956863 | etot = -33.5644507263366 +778000 ekin = 22.4355420339161 | erot = 18.2585534539139 | epot = -74.2585462089044 | etot = -33.5644507210745 +779000 ekin = 22.3843529355789 | erot = 18.0309205308365 | epot = -73.9797241813393 | etot = -33.5644507149239 +780000 ekin = 22.3744386445496 | erot = 17.8258066816941 | epot = -73.7646960358077 | etot = -33.5644507095641 +781000 ekin = 22.1317599829093 | erot = 17.6891439214798 | epot = -73.3853547353444 | etot = -33.5644508309553 +782000 ekin = 21.1592753937775 | erot = 17.9407979297457 | epot = -72.6645240432862 | etot = -33.564450719763 +783000 ekin = 20.4598020812476 | erot = 19.0285770550549 | epot = -73.052829858984 | etot = -33.5644507226814 +784000 ekin = 20.5205611486876 | erot = 20.4251816834892 | epot = -74.5101936712772 | etot = -33.5644508391004 +785000 ekin = 20.9642653572837 | erot = 20.9633174771005 | epot = -75.4920336619114 | etot = -33.5644508275272 +786000 ekin = 21.4400765968759 | erot = 21.061583090539 | epot = -76.0661105191519 | etot = -33.5644508317371 +787000 ekin = 21.8830668853208 | erot = 21.0574506776045 | epot = -76.5049683963306 | etot = -33.5644508334054 +788000 ekin = 22.2673243737814 | erot = 20.9464326031856 | epot = -76.7782078095427 | etot = -33.5644508325756 +789000 ekin = 22.5826671465141 | erot = 20.7432248255376 | epot = -76.8903428020209 | etot = -33.5644508299692 +790000 ekin = 22.8323066866154 | erot = 20.4741989828028 | epot = -76.8709564960782 | etot = -33.56445082666 +791000 ekin = 23.0272356221831 | erot = 20.1684029992233 | epot = -76.7600894450125 | etot = -33.5644508236061 +792000 ekin = 23.1800436940963 | erot = 19.8507212176288 | epot = -76.5952157330443 | etot = -33.5644508213191 +793000 ekin = 23.300603133044 | erot = 19.5391467337423 | epot = -76.404200686658 | etot = -33.5644508198717 +794000 ekin = 23.3943971223733 | erot = 19.2453890910844 | epot = -76.2042370325532 | etot = -33.5644508190955 +795000 ekin = 23.4629811579683 | erot = 18.9772359492812 | epot = -76.0046679259086 | etot = -33.5644508186592 +796000 ekin = 23.5050545285291 | erot = 18.7401074031681 | epot = -75.8096127503046 | etot = -33.5644508186073 +797000 ekin = 23.5179235663088 | erot = 18.5376020828532 | epot = -75.6199764678595 | etot = -33.5644508186975 +798000 ekin = 23.4993095514253 | erot = 18.3721088645044 | epot = -75.4358692347521 | etot = -33.5644508188224 +799000 ekin = 23.4489395597834 | erot = 18.2446734411486 | epot = -75.258063819795 | etot = -33.564450818863 +800000 ekin = 23.3700597315759 | erot = 18.1549836094423 | epot = -75.0894941596996 | etot = -33.5644508186813 +801000 ekin = 23.2706429321765 | erot = 18.1018392066988 | epot = -74.9369329570152 | etot = -33.5644508181399 +802000 ekin = 23.1638659253445 | erot = 18.0841621417591 | epot = -74.8124788842758 | etot = -33.5644508171722 +803000 ekin = 23.0673439652931 | erot = 18.1021655927045 | epot = -74.7339603738614 | etot = -33.5644508158639 +804000 ekin = 23.0007989401313 | erot = 18.1579717421609 | epot = -74.7232214967841 | etot = -33.564450814492 +805000 ekin = 22.9823371371263 | erot = 18.2549251648251 | epot = -74.8017131154778 | etot = -33.5644508135264 +806000 ekin = 23.0241641619703 | erot = 18.3954330766867 | epot = -74.984048052 | etot = -33.5644508133431 +807000 ekin = 23.1289646264206 | erot = 18.5785443252248 | epot = -75.2719597659602 | etot = -33.5644508143147 +808000 ekin = 23.2881607697434 | erot = 18.7969609309069 | epot = -75.6495725171493 | etot = -33.5644508164989 +809000 ekin = 23.4826910126068 | erot = 19.0356597574091 | epot = -76.0828015896723 | etot = -33.5644508196564 +810000 ekin = 23.6859311917307 | erot = 19.2727961935001 | epot = -76.5231782085194 | etot = -33.5644508232885 +811000 ekin = 23.8683330193095 | erot = 19.4824424681752 | epot = -76.9152263142569 | etot = -33.5644508267723 +812000 ekin = 24.0021280336694 | erot = 19.6390320771543 | epot = -77.2056109397628 | etot = -33.5644508289391 +813000 ekin = 24.0705831548813 | erot = 19.7220219145477 | epot = -77.3570559007636 | etot = -33.5644508313346 +814000 ekin = 24.0556011517812 | erot = 19.7197957998033 | epot = -77.3398477836966 | etot = -33.5644508321121 +815000 ekin = 23.9426529222313 | erot = 19.6314238633418 | epot = -77.1385276168128 | etot = -33.5644508312396 +816000 ekin = 23.731133693213 | erot = 19.466072036005 | epot = -76.7616565581624 | etot = -33.5644508289444 +817000 ekin = 23.4336685350294 | erot = 19.2405112303572 | epot = -76.2386305910159 | etot = -33.5644508256293 +818000 ekin = 23.0739945646645 | erot = 18.9755381783867 | epot = -75.6139835648237 | etot = -33.5644508217725 +819000 ekin = 22.6837324026765 | erot = 18.6923648026043 | epot = -74.9405480232895 | etot = -33.5644508180087 +820000 ekin = 22.2835291279714 | erot = 18.4096381976571 | epot = -74.2576181415066 | etot = -33.5644508158781 +821000 ekin = 21.8822278938176 | erot = 18.141291498877 | epot = -73.5879702071845 | etot = -33.5644508144899 +822000 ekin = 21.4884880533111 | erot = 17.8956786276998 | epot = -72.9486174948433 | etot = -33.5644508138324 +823000 ekin = 21.1064787927768 | erot = 17.6755757474125 | epot = -72.3465053539623 | etot = -33.564450813773 +824000 ekin = 20.7370980701816 | erot = 17.4789023716297 | epot = -71.7804512559058 | etot = -33.5644508140945 +825000 ekin = 20.3797998929284 | erot = 17.3000855940531 | epot = -71.2443363015056 | etot = -33.5644508145241 +826000 ekin = 20.0346218856065 | erot = 17.1319532523354 | epot = -70.7310259527282 | etot = -33.5644508147862 +827000 ekin = 19.7039740663547 | erot = 16.9679189158217 | epot = -70.2363437968243 | etot = -33.5644508146479 +828000 ekin = 19.3938011099896 | erot = 16.8040573647366 | epot = -69.7623092887102 | etot = -33.5644508139841 +829000 ekin = 19.1138486595862 | erot = 16.6405709737945 | epot = -69.3188704461918 | etot = -33.5644508128111 +830000 ekin = 18.8769326813353 | erot = 16.4822215963422 | epot = -68.9236050889638 | etot = -33.5644508112863 +831000 ekin = 18.697311774337 | erot = 16.3375582362052 | epot = -68.5993208202243 | etot = -33.5644508096821 +832000 ekin = 18.5884699042913 | erot = 16.2171194616771 | epot = -68.3700401742869 | etot = -33.5644508083185 +833000 ekin = 18.5607795988464 | erot = 16.131079329091 | epot = -68.2563097354189 | etot = -33.5644508074815 +834000 ekin = 18.6195655893721 | erot = 16.0869173655938 | epot = -68.2709337623352 | etot = -33.5644508073693 +835000 ekin = 18.7639745681618 | erot = 16.0875916783619 | epot = -68.4160170545793 | etot = -33.5644508080557 +836000 ekin = 18.9868442891856 | erot = 16.130519235032 | epot = -68.6818143337116 | etot = -33.5644508094941 +837000 ekin = 19.2754657692627 | erot = 16.207438470387 | epot = -69.0473550511925 | etot = -33.5644508115428 +838000 ekin = 19.6129197642166 | erot = 16.3051003168942 | epot = -69.4824708951133 | etot = -33.5644508140025 +839000 ekin = 19.9795904915988 | erot = 16.4066729969167 | epot = -69.9507143051619 | etot = -33.5644508166465 +840000 ekin = 20.3545159452212 | erot = 16.4936833341199 | epot = -70.4126500985958 | etot = -33.5644508192548 +841000 ekin = 20.7164052641964 | erot = 16.548246927735 | epot = -70.829103013567 | etot = -33.5644508216356 +842000 ekin = 21.0443277173709 | erot = 16.5552492658878 | epot = -71.1640278069013 | etot = -33.5644508236425 +843000 ekin = 21.3182343501173 | erot = 16.504098715485 | epot = -71.3867838907757 | etot = -33.5644508251735 +844000 ekin = 21.5195641371082 | erot = 16.3898128616543 | epot = -71.4738278249128 | etot = -33.5644508261503 +845000 ekin = 21.6321888572324 | erot = 16.2134453017857 | epot = -71.4100849855142 | etot = -33.5644508264961 +846000 ekin = 21.6437998337389 | erot = 15.9820204440426 | epot = -71.1902711039102 | etot = -33.5644508261287 +847000 ekin = 21.5475782511098 | erot = 15.7081282908899 | epot = -70.8201573669942 | etot = -33.5644508249945 +848000 ekin = 21.3436927799336 | erot = 15.4091281568063 | epot = -70.3172717598687 | etot = -33.5644508231288 +849000 ekin = 21.040018068204 | erot = 15.1057456387123 | epot = -69.7102145276103 | etot = -33.564450820694 +850000 ekin = 20.6516241479064 | erot = 14.8199821289072 | epot = -69.0360570947859 | etot = -33.5644508179724 +851000 ekin = 20.1989966769928 | erot = 14.5725796445398 | epot = -68.3360271368306 | etot = -33.5644508152979 +852000 ekin = 19.7054052282539 | erot = 14.3805531694316 | epot = -67.6504092106676 | etot = -33.5644508129822 +853000 ekin = 19.1940724659069 | erot = 14.2553081918317 | epot = -67.013831468985 | etot = -33.5644508112464 +854000 ekin = 18.685752406539 | erot = 14.2015963027567 | epot = -66.4517995195066 | etot = -33.5644508102108 +855000 ekin = 18.1970763793973 | erot = 14.217263432367 | epot = -65.9787906216679 | etot = -33.5644508099036 +856000 ekin = 17.7397499755394 | erot = 14.293605095631 | epot = -65.597805881444 | etot = -33.5644508102736 +857000 ekin = 17.3205057828376 | erot = 14.4162007415788 | epot = -65.3011573356223 | etot = -33.5644508112059 +858000 ekin = 16.9416544321828 | erot = 14.5662556892476 | epot = -65.0723609339437 | etot = -33.5644508125133 +859000 ekin = 16.6020780530239 | erot = 14.7225727582617 | epot = -64.8891016252306 | etot = -33.5644508139451 +860000 ekin = 16.2985125202782 | erot = 14.8641879511938 | epot = -64.7271512866837 | etot = -33.5644508152118 +861000 ekin = 16.0269335804234 | erot = 14.9734306247742 | epot = -64.5648150212404 | etot = -33.5644508160429 +862000 ekin = 15.7838145531257 | erot = 15.0388248710163 | epot = -64.3870902403884 | etot = -33.5644508162464 +863000 ekin = 15.5670277438764 | erot = 15.0570871966147 | epot = -64.1885657562588 | etot = -33.5644508157676 +864000 ekin = 15.3762443300744 | erot = 15.0336448974535 | epot = -63.9743400422222 | etot = -33.5644508146943 +865000 ekin = 15.2131876579387 | erot = 14.9816007216251 | epot = -63.7592391926681 | etot = -33.5644508131043 +866000 ekin = 15.0809818320607 | erot = 14.9194629923979 | epot = -63.5648956359166 | etot = -33.5644508114581 +867000 ekin = 14.9827726531226 | erot = 14.8683323185733 | epot = -63.4155557815486 | etot = -33.5644508098527 +868000 ekin = 14.9218011269598 | erot = 14.8493296883198 | epot = -63.3355816237487 | etot = -33.5644508084691 +869000 ekin = 14.9010185138682 | erot = 14.8813222897364 | epot = -63.3467916110622 | etot = -33.5644508074576 +870000 ekin = 14.9227801778206 | erot = 14.9789108530707 | epot = -63.4661418378863 | etot = -33.5644508069951 +871000 ekin = 14.9884139368942 | erot = 15.1503817706812 | epot = -63.703246514838 | etot = -33.5644508072627 +872000 ekin = 15.0976914328012 | erot = 15.3955923521635 | epot = -64.0577345933959 | etot = -33.5644508084312 +873000 ekin = 15.2480781394194 | erot = 15.7042636320403 | epot = -64.5167925820518 | etot = -33.5644508105921 +874000 ekin = 15.4340038880574 | erot = 16.055356092982 | epot = -65.053810794677 | etot = -33.5644508136376 +875000 ekin = 15.6465534583829 | erot = 16.4187317020441 | epot = -65.6297359776216 | etot = -33.5644508171946 +876000 ekin = 15.8739222035519 | erot = 16.7595446910416 | epot = -66.1979177152847 | etot = -33.5644508206912 +877000 ekin = 16.1027155819911 | erot = 17.0444943473801 | epot = -66.7116607529112 | etot = -33.5644508235401 +878000 ekin = 16.319791048708 | erot = 17.2478151737007 | epot = -67.1320570477561 | etot = -33.5644508253474 +879000 ekin = 16.513852143331 | erot = 17.3548092235238 | epot = -67.4331121929392 | etot = -33.5644508260845 +880000 ekin = 16.6772706666643 | erot = 17.3624918756169 | epot = -67.6042133678519 | etot = -33.5644508255706 +881000 ekin = 16.8080553843206 | erot = 17.2784522473064 | epot = -67.6509584556495 | etot = -33.5644508240226 +882000 ekin = 16.9100399156744 | erot = 17.1190222525855 | epot = -67.5935129898763 | etot = -33.5644508216164 +883000 ekin = 16.9925722017344 | erot = 16.9073416710475 | epot = -67.4643646914728 | etot = -33.5644508186909 +884000 ekin = 17.0687034106809 | erot = 16.6704808404549 | epot = -67.3036350669103 | etot = -33.5644508157744 +885000 ekin = 17.1519974231529 | erot = 16.4352378856248 | epot = -67.1516861222243 | etot = -33.5644508134466 +886000 ekin = 17.2529390407585 | erot = 16.2234313547558 | epot = -67.0408212076545 | etot = -33.5644508121402 +887000 ekin = 17.3762921647762 | erot = 16.0482363412789 | epot = -66.9889793180409 | etot = -33.5644508119859 +888000 ekin = 17.520362098505 | erot = 15.9127130226943 | epot = -66.9975259340197 | etot = -33.5644508128205 +889000 ekin = 17.6781644467692 | erot = 15.8105908148255 | epot = -67.053206075905 | etot = -33.5644508143103 +890000 ekin = 17.8397117367786 | erot = 15.7285450848103 | epot = -67.1327076370755 | etot = -33.5644508154865 +891000 ekin = 17.9946822418325 | erot = 15.6526652214473 | epot = -67.2117982809621 | etot = -33.5644508176823 +892000 ekin = 18.1331274177217 | erot = 15.563184660984 | epot = -67.2607628981432 | etot = -33.5644508194375 +893000 ekin = 18.2472194998205 | erot = 15.4391901295465 | epot = -67.2508604500035 | etot = -33.5644508206365 +894000 ekin = 18.3321686671843 | erot = 15.2648175339455 | epot = -67.1614370222908 | etot = -33.564450821161 +895000 ekin = 18.3862908814765 | erot = 15.0310128841995 | epot = -66.9817545866243 | etot = -33.5644508209484 +896000 ekin = 18.4109116210726 | erot = 14.7366844097439 | epot = -66.7120468508501 | etot = -33.5644508200336 +897000 ekin = 18.4100490066795 | erot = 14.3885926448155 | epot = -66.3630924700693 | etot = -33.5644508185744 +898000 ekin = 18.3898281685202 | erot = 13.9998000563491 | epot = -65.9540790416773 | etot = -33.5644508168081 +899000 ekin = 18.3577139299705 | erot = 13.5871378088075 | epot = -65.509302553754 | etot = -33.564450814976 +900000 ekin = 18.3217786311141 | erot = 13.1685630404219 | epot = -65.054792484781 | etot = -33.5644508132449 +901000 ekin = 18.2902589942974 | erot = 12.7612484276711 | epot = -64.6159582336337 | etot = -33.5644508116652 +902000 ekin = 18.2715810710039 | erot = 12.3808553804282 | epot = -64.2168872615955 | etot = -33.5644508101635 +903000 ekin = 18.2748902577742 | erot = 12.04197991098 | epot = -63.8813209773376 | etot = -33.5644508085834 +904000 ekin = 18.3109460803817 | erot = 11.7594273506552 | epot = -63.6348242377774 | etot = -33.5644508067406 +905000 ekin = 18.393092548532 | erot = 11.5498594838196 | epot = -63.507402836842 | etot = -33.5644508044905 +906000 ekin = 18.5347341805732 | erot = 11.4295673220289 | epot = -63.5287523075689 | etot = -33.5644508049669 +907000 ekin = 18.7414362397562 | erot = 11.4045037441698 | epot = -63.7103907883216 | etot = -33.5644508043955 +908000 ekin = 19.01948896505 | erot = 11.4807236741048 | epot = -64.064663443761 | etot = -33.5644508046062 +909000 ekin = 19.370061418707 | erot = 11.6589605869467 | epot = -64.5934728113217 | etot = -33.5644508056681 +910000 ekin = 19.788210520863 | erot = 11.9333322638151 | epot = -65.2859935919935 | etot = -33.5644508073154 +911000 ekin = 20.2647618396155 | erot = 12.2921701370539 | epot = -66.1213827858005 | etot = -33.5644508091311 +912000 ekin = 20.7894338917871 | erot = 12.7195983389508 | epot = -67.0734830412077 | etot = -33.5644508104698 +913000 ekin = 21.3541857291101 | erot = 13.1939380946156 | epot = -68.1125746374356 | etot = -33.5644508137099 +914000 ekin = 21.9410171487178 | erot = 13.6876167577927 | epot = -69.1930847244104 | etot = -33.5644508179 +915000 ekin = 22.518884629029 | erot = 14.1693256816077 | epot = -70.252661133485 | etot = -33.5644508228483 +916000 ekin = 23.0495496122886 | erot = 14.6035757293001 | epot = -71.2175761703539 | etot = -33.5644508287652 +917000 ekin = 23.4897289756407 | erot = 14.9539952399446 | epot = -72.0081750488837 | etot = -33.5644508332984 +918000 ekin = 23.793918530387 | erot = 15.1976473317576 | epot = -72.5560167461632 | etot = -33.5644508840185 +919000 ekin = 23.6168045559219 | erot = 15.3655091451681 | epot = -72.546764543126 | etot = -33.564450842036 +920000 ekin = 23.1655316155466 | erot = 15.5814764778541 | epot = -72.3114589043119 | etot = -33.5644508109111 +921000 ekin = 22.8561009763955 | erot = 15.8041631554327 | epot = -72.2247149918464 | etot = -33.5644508600183 +922000 ekin = 22.4406172099256 | erot = 15.7102388759533 | epot = -71.7153069240717 | etot = -33.5644508381928 +923000 ekin = 21.8145072543786 | erot = 15.4204628569532 | epot = -70.7994209415843 | etot = -33.5644508302526 +924000 ekin = 21.0897106221477 | erot = 15.1252102346463 | epot = -69.7793716761032 | etot = -33.5644508193092 +925000 ekin = 20.3778961154116 | erot = 14.8990596223701 | epot = -68.8414065460385 | etot = -33.5644508082568 +926000 ekin = 19.7497733196884 | erot = 14.7841436172023 | epot = -68.0983677423196 | etot = -33.5644508054289 +927000 ekin = 19.2202389486492 | erot = 14.8057849928954 | epot = -67.5904747440152 | etot = -33.5644508024706 +928000 ekin = 18.8098178378655 | erot = 14.9862994179362 | epot = -67.3605680557094 | etot = -33.5644507999077 +929000 ekin = 18.5263530330417 | erot = 15.3189513447801 | epot = -67.4097551952486 | etot = -33.5644508174268 +930000 ekin = 18.3031582479208 | erot = 15.7144845870462 | epot = -67.5820936630876 | etot = -33.5644508281205 +931000 ekin = 18.0528353461445 | erot = 16.0920981649876 | epot = -67.7093843479757 | etot = -33.5644508368436 +932000 ekin = 17.7015072487275 | erot = 16.3874716161786 | epot = -67.6534297061045 | etot = -33.5644508411985 +933000 ekin = 17.211575779812 | erot = 16.5716045845824 | epot = -67.3476312032304 | etot = -33.5644508388361 +934000 ekin = 16.5514003367762 | erot = 16.6395832467501 | epot = -66.7554344853522 | etot = -33.564450901826 +935000 ekin = 15.4338979248173 | erot = 16.4795973814032 | epot = -65.4779461395113 | etot = -33.5644508332907 +936000 ekin = 14.2992444440305 | erot = 16.4524645769609 | epot = -64.3161598028593 | etot = -33.564450781868 +937000 ekin = 13.594877389297 | erot = 16.8307081817066 | epot = -63.9900363826699 | etot = -33.5644508116663 +938000 ekin = 13.1600926819737 | erot = 17.3617572865251 | epot = -64.0863008414443 | etot = -33.5644508729455 +939000 ekin = 12.6302856042602 | erot = 17.6616475412764 | epot = -63.8563839351059 | etot = -33.5644507895693 +940000 ekin = 12.1844103621837 | erot = 17.9750890379595 | epot = -63.7239501902423 | etot = -33.5644507900991 +941000 ekin = 11.8736812724101 | erot = 18.3544207840917 | epot = -63.79255284895 | etot = -33.5644507924482 +942000 ekin = 11.6856910034444 | erot = 18.7737996951239 | epot = -64.0239414943836 | etot = -33.5644507958152 +943000 ekin = 11.5993719863631 | erot = 19.1997647301752 | epot = -64.3635875159553 | etot = -33.564450799417 +944000 ekin = 11.5911163869142 | erot = 19.5969000490703 | epot = -64.7524672386315 | etot = -33.564450802647 +945000 ekin = 11.639459484541 | erot = 19.9326030898694 | epot = -65.1365133795222 | etot = -33.5644508051117 +946000 ekin = 11.7278293567757 | erot = 20.1807231909362 | epot = -65.4730033543077 | etot = -33.5644508065958 +947000 ekin = 11.8456010821895 | erot = 20.324153790967 | epot = -65.7342056801685 | etot = -33.5644508070121 +948000 ekin = 11.9879925809402 | erot = 20.3564922792948 | epot = -65.9089356666417 | etot = -33.5644508064067 +949000 ekin = 12.1551997602243 | erot = 20.2822909293999 | epot = -66.0019414945905 | etot = -33.5644508049663 +950000 ekin = 12.3510408470325 | erot = 20.115659623218 | epot = -66.0311512732532 | etot = -33.5644508030028 +951000 ekin = 12.5812930222758 | erot = 19.8773156844474 | epot = -66.0230595076182 | etot = -33.5644508008949 +952000 ekin = 12.8471183866925 | erot = 19.5848425912166 | epot = -65.9964117794652 | etot = -33.564450801556 +953000 ekin = 13.1479143636503 | erot = 19.2558560502527 | epot = -65.9682212137687 | etot = -33.5644507998657 +954000 ekin = 13.4859606885364 | erot = 18.9116614121342 | epot = -65.9620728994014 | etot = -33.5644507987308 +955000 ekin = 13.8607396756392 | erot = 18.5688220964155 | epot = -65.994012570258 | etot = -33.5644507982032 +956000 ekin = 14.2684790715045 | erot = 18.23867671937 | epot = -66.0716065890947 | etot = -33.5644507982202 +957000 ekin = 14.7022261388303 | erot = 17.9280212141735 | epot = -66.1946981516521 | etot = -33.5644507986483 +958000 ekin = 15.1523556915809 | erot = 17.6404102051721 | epot = -66.3572166960802 | etot = -33.5644507993272 +959000 ekin = 15.6074014520696 | erot = 17.3776018825342 | epot = -66.5494541347015 | etot = -33.5644508000977 +960000 ekin = 16.055105520303 | erot = 17.1408213598753 | epot = -66.760377680976 | etot = -33.5644508007977 +961000 ekin = 16.4838195085816 | erot = 16.9315995207268 | epot = -66.979869830664 | etot = -33.5644508013556 +962000 ekin = 16.8831178333153 | erot = 16.752450807508 | epot = -67.2000194425075 | etot = -33.5644508016842 +963000 ekin = 17.2446402437768 | erot = 16.6070593136442 | epot = -67.4161503591765 | etot = -33.5644508017555 +964000 ekin = 17.562694424349 | erot = 16.5001400875647 | epot = -67.6272853134984 | etot = -33.5644508015847 +965000 ekin = 17.8343164168747 | erot = 16.437096040881 | epot = -67.8358632589921 | etot = -33.5644508012364 +966000 ekin = 18.0588818068295 | erot = 16.4234839575503 | epot = -68.0468165651874 | etot = -33.5644508008075 +967000 ekin = 18.2373393703384 | erot = 16.4643418733569 | epot = -68.2661320441123 | etot = -33.5644508004171 +968000 ekin = 18.3712253513644 | erot = 16.5634469194537 | epot = -68.4991230710021 | etot = -33.5644508001841 +969000 ekin = 18.4616731850683 | erot = 16.7225928803125 | epot = -68.7487168655807 | etot = -33.5644508001999 +970000 ekin = 18.5086424153895 | erot = 16.9409874348876 | epot = -69.0140806508028 | etot = -33.5644508005257 +971000 ekin = 18.5105217612239 | erot = 17.214832239555 | epot = -69.2898048019491 | etot = -33.5644508011701 +972000 ekin = 18.4641879343137 | erot = 17.5371342494854 | epot = -69.5657729859032 | etot = -33.5644508021041 +973000 ekin = 18.3654968233623 | erot = 17.8977436725043 | epot = -69.8276912991286 | etot = -33.5644508032619 +974000 ekin = 18.2101154507905 | erot = 18.2835968621238 | epot = -70.0581631174661 | etot = -33.5644508045518 +975000 ekin = 17.9945660461061 | erot = 18.679151597941 | epot = -70.2381684499127 | etot = -33.5644508058656 +976000 ekin = 17.717330563609 | erot = 19.0670257232443 | epot = -70.3488070939419 | etot = -33.5644508070885 +977000 ekin = 17.3798453528906 | erot = 19.4288693817331 | epot = -70.3731655427282 | etot = -33.5644508081045 +978000 ekin = 16.9872047031722 | erot = 19.7465105573489 | epot = -70.2981660693277 | etot = -33.5644508088066 +979000 ekin = 16.5484157018381 | erot = 20.0033999874178 | epot = -70.116266498357 | etot = -33.5644508091011 +980000 ekin = 16.0760394950274 | erot = 20.1863036686509 | epot = -69.8267939695453 | etot = -33.5644508058671 +981000 ekin = 15.5958799597593 | erot = 20.2892058513337 | epot = -69.4495366177224 | etot = -33.5644508066295 +982000 ekin = 15.0884229586249 | erot = 20.3042918160036 | epot = -68.9571656249607 | etot = -33.5644508503322 +983000 ekin = 14.6278059338707 | erot = 20.1974254855586 | epot = -68.3896822274588 | etot = -33.5644508080295 +984000 ekin = 14.485718093269 | erot = 20.0570073304459 | epot = -68.1071762944406 | etot = -33.5644508707257 +985000 ekin = 14.2080885116351 | erot = 19.9192764069441 | epot = -67.6918157209786 | etot = -33.5644508023994 +986000 ekin = 13.9758845112991 | erot = 19.8429646049279 | epot = -67.3832999162394 | etot = -33.5644508000123 +987000 ekin = 13.8444879807334 | erot = 19.8435555011179 | epot = -67.2524942889555 | etot = -33.5644508071042 +988000 ekin = 13.7899576039149 | erot = 19.876553633637 | epot = -67.2309620426443 | etot = -33.5644508050923 +989000 ekin = 13.7826987903072 | erot = 19.9896360515821 | epot = -67.3367856483026 | etot = -33.5644508064133 +990000 ekin = 13.8064598100946 | erot = 20.1866383843989 | epot = -67.5575490030266 | etot = -33.5644508085331 +991000 ekin = 13.8444762357552 | erot = 20.455356874306 | epot = -67.8642839209134 | etot = -33.5644508108522 +992000 ekin = 13.8831356664543 | erot = 20.7777559193191 | epot = -68.2253423984327 | etot = -33.5644508126593 +993000 ekin = 13.9170731932667 | erot = 21.1354076794003 | epot = -68.6169316860712 | etot = -33.5644508134042 +994000 ekin = 13.9526839919551 | erot = 21.5142214723578 | epot = -69.0313562771973 | etot = -33.5644508128844 +995000 ekin = 14.0087177033998 | erot = 21.9069609499345 | epot = -69.4801294647094 | etot = -33.5644508113751 +996000 ekin = 14.1134297061039 | erot = 22.3130050958893 | epot = -69.9908856111372 | etot = -33.564450809144 +997000 ekin = 14.3000196986382 | erot = 22.73642078599 | epot = -70.6008912914758 | etot = -33.5644508068476 +998000 ekin = 14.6010980818731 | erot = 23.1830420697638 | epot = -71.3485909566375 | etot = -33.5644508050006 +999000 ekin = 15.04273129669 | erot = 23.6573925697404 | epot = -72.2645746768899 | etot = -33.5644508104595 +1000000 ekin = 15.6136601549948 | erot = 24.1382005377538 | epot = -73.31631150618 | etot = -33.5644508134314 + 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160018 39304000 +Loop time of 14.7322 on 4 procs for 1000000 steps with 16 atoms + +Performance: 100.052 ns/day, 0.240 hours/ns, 67878.359 timesteps/s, 1.086 Matom-step/s +99.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.9563 | 7.0753 | 8.4914 | 52.5 | 48.03 +Bond | 0.16693 | 0.26884 | 0.34644 | 12.5 | 1.82 +Neigh | 0.004684 | 0.00475 | 0.004817 | 0.1 | 0.03 +Comm | 3.9378 | 5.5096 | 7.8538 | 63.4 | 37.40 +Output | 0.065585 | 0.069947 | 0.079293 | 2.1 | 0.47 +Modify | 0.59102 | 0.65384 | 0.71706 | 6.6 | 4.44 +Other | | 1.15 | | | 7.81 + +Nlocal: 4 ave 4 max 4 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 12 ave 12 max 12 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 26.75 ave 47 max 9 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:14 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/data.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/data.duplex2 new file mode 100644 index 0000000000..78a6fdd51a --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/data.duplex2 @@ -0,0 +1,91 @@ +LAMMPS data file in real units via oxdna lj2real.py, date 2024-05-19 + +16 atoms +4 atom types +13 bonds +1 bond types +16 ellipsoids + +-170 170 xlo xhi +-170 170 ylo yhi +-170 170 zlo zhi + +Masses + +1 315.8376 +2 315.8376 +3 315.8376 +4 315.8376 + +Atoms # hybrid + +1 1 -5.224492277936935 -5.6003990662830665 3.072035980595378 1 1 1.0016462505133576 0 0 0 +2 2 -3.855482258589815 -8.54410812515585 6.182955020430966 1 1 1.0016462505133576 0 0 0 +3 3 -0.8418698080395857 -10.56041032511679 9.10967975032824 1 1 1.0016462505133576 0 0 0 +4 4 2.502394065492512 -10.715431837829685 12.145744722571814 1 1 1.0016462505133576 0 0 0 +5 1 5.355178690564601 -8.674171903962998 15.067785212133312 1 1 1.0016462505133576 0 0 0 +6 2 6.7305169669220595 -5.763569949980494 18.347908888941284 1 1 1.0016462505133576 0 0 0 +7 3 6.061219006086631 -3.4238594469157198 21.88758604427721 1 1 1.0016462505133576 0 0 0 +8 4 4.001186577913306 -2.576839632838177 26.12300846270287 1 1 1.0016462505133576 0 0 0 +9 1 3.454997351061381 -12.298079702286948 26.05718083554597 2 1 1.0016462505133576 0 0 0 +10 2 -0.2728181587270111 -11.028698363238112 23.169872406755868 2 1 1.0016462505133576 0 0 0 +11 3 -2.692868178466912 -7.73787195036868 20.549852065183913 2 1 1.0016462505133576 0 0 0 +12 4 -3.316857346830113 -4.145374554885233 17.08862230448963 2 1 1.0016462505133576 0 0 0 +13 1 -0.5308965342198838 -0.6095451431748122 13.28229291571604 3 1 1.0016462505133576 0 0 0 +14 2 1.5233668194980015 -0.46991432454420656 8.699204689407908 3 1 1.0016462505133576 0 0 0 +15 3 3.844548159551531 -2.026909836907328 5.074452450044903 3 1 1.0016462505133576 0 0 0 +16 4 4.325141724684425 -4.740799489595668 1.4104749932020408 3 1 1.0016462505133576 0 0 0 + +Velocities + +1 0.00026896558742537556 0.00011298695236274073 0.001242364337461123 0.7538466533118467 -1.2587520584415195 -1.1163576881067447 +2 -0.00019946914535880285 0.0013465785184092233 -0.0009479872206420321 -0.13024003640483983 -0.5006975787807386 0.17048535791572514 +3 -0.0010377647810347322 -0.0006804774738725614 -0.000302697462953215 -0.15638545864527348 -0.2683843524758034 -0.6295604792026762 +4 -0.0011968051721949484 -0.002808404437492725 0.00016214368951061121 -0.7029471277015998 1.2169631204234201 1.42700472482703 +5 -0.0008046113463391788 -0.001142874812754601 -0.0006767129075723855 0.304218367349499 -0.4005571162913614 0.5710347488390389 +6 -0.00023475461149269044 0.000959484075931813 0.0007283860029089665 0.3921776444343422 -2.399417440979843 0.3950910265578085 +7 0.0002545632912247854 -0.00019202725318668095 -0.0007112078778547229 1.4800522749729792 1.8058703404340948 -0.5778414965351256 +8 0.0018887377488028885 -0.0002473511615838234 0.0008120520191337178 0.18841278062652408 0.3347372075847072 -0.5408605905745774 +9 0.0002452564077667799 0.00020601300929708606 6.1033299095680186e-05 0.13966147753401867 -0.0005390290197378453 0.6635632318913824 +10 0.000968244047328249 0.0005529827424647325 -0.00020224034557198784 -0.7235582069719148 -1.9412262416735993 -1.289806869224333 +11 -0.0017543321990246556 -0.000939796984860897 0.0018048542648271923 -1.5775475529872025 -2.0891633737315023 0.40142307521789933 +12 -0.0005934853675296159 0.001116191652783757 4.626275649966328e-05 -1.200961814632207 0.4371811217355096 0.43287366246768927 +13 -0.0007222905985558083 -0.0005767904238661645 0.0006648020330562531 -1.084763819731394 1.1718860080947717 0.2470159472481526 +14 0.0002573730178578412 -0.00182797610679242 -0.00033107273492769625 -0.510496177490122 0.29118940603730814 0.9195837620128926 +15 -0.0010092903785878923 0.0011654195253227475 4.0609661125969864e-05 -0.723803934131871 0.07956576746268508 -1.1413793944128399 +16 -0.0009587558806876301 -0.0004046946607553641 -0.0002343452641922075 0.07373406158203998 -1.3986322243084912 0.4617216556119086 + +Bonds + +1 1 1 2 +2 1 2 3 +3 1 3 4 +4 1 4 5 +5 1 5 6 +6 1 6 7 +7 1 7 8 +8 1 9 10 +9 1 10 11 +10 1 11 12 +11 1 13 14 +12 1 14 15 +13 1 15 16 + +Ellipsoids + +1 9.999999997766462 9.999999997766462 9.999999997766462 0.9964752158482045 -0.053253555733239796 0.011391163807102514 -0.06380787090289707 +2 9.999999997766462 9.999999997766462 9.999999997766462 0.9369923833143513 0.11220716044648564 0.06732538499716349 0.3239168400846305 +3 9.999999997766462 9.999999997766462 9.999999997766462 0.797964932091827 0.14473096354527873 0.18374142699366386 0.5554673737937029 +4 9.999999997766462 9.999999997766462 9.999999997766462 0.5660864821344559 0.14688275499481052 0.09873742533340191 0.8051226439917721 +5 9.999999997766462 9.999999997766462 9.999999997766462 0.2533023785125306 0.12062313161679827 0.08583012223905846 0.9559922359911086 +6 9.999999997766462 9.999999997766462 9.999999997766462 -0.03855807343534716 0.08405913137017908 0.02236505169306371 0.9954632800204194 +7 9.999999997766462 9.999999997766462 9.999999997766462 -0.45592844330248017 0.1004550065061007 -0.052524745294758785 0.8827679181910482 +8 9.999999997766462 9.999999997766462 9.999999997766462 0.768021221540491 -0.009582139884533599 0.03658677589040892 -0.63930665074644 +9 9.999999997766462 9.999999997766462 9.999999997766462 -0.23299975754512345 0.688686395231341 0.6747873944883376 -0.12682324016841584 +10 9.999999997766462 9.999999997766462 9.999999997766462 -0.24662061871907232 0.8744456399178389 0.39370836087823996 -0.13970261209395163 +11 9.999999997766462 9.999999997766462 9.999999997766462 -0.087475900850909 0.977367602388229 0.14493549113095577 -0.12686307572668784 +12 9.999999997766462 9.999999997766462 9.999999997766462 -0.03181169300779214 0.9634374984140112 -0.2442360692534371 -0.10547485630879185 +13 9.999999997766462 9.999999997766462 9.999999997766462 -0.032786070696572266 0.7922941528811777 -0.6084214170523915 -0.03191282109962717 +14 9.999999997766462 9.999999997766462 9.999999997766462 0.047188686288341455 0.6316396208287698 -0.7737349519945348 0.011783095844627799 +15 9.999999997766462 9.999999997766462 9.999999997766462 -0.05869980642620335 -0.34229358203414423 0.9376740835056508 0.012519965878508689 +16 9.999999997766462 9.999999997766462 9.999999997766462 -0.08582818143150042 0.0008707732197394232 0.9939540921464659 -0.0684691735853161 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 new file mode 100644 index 0000000000..2d5936a3bd --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 @@ -0,0 +1,74 @@ +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.5 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 + +set atom * mass 315.8376 + +group all type 1 4 + +# oxRNA2 bond interactions - FENE backbone +bond_style oxrna2/fene +bond_coeff * oxrna2.real +special_bonds lj 0 1 1 + +# oxRNA2 pair interactions +pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh +pair_coeff * * oxrna2/excv oxrna2.real +pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2.real +pair_coeff * * oxrna2/hbond seqdep oxrna2.real +pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.real +pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.real +pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.real +pair_coeff * * oxrna2/xstk oxrna2.real +pair_coeff * * oxrna2/coaxstk oxrna2.real +pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2.real + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 + +write_data last_config.${number}.* nocoeff +#write_restart last_config.${number}.* diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 new file mode 100644 index 0000000000..29558cf7b4 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.1 @@ -0,0 +1,1121 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 1 by 1 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.006 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Reading oxdna potential (fene) file oxrna2.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (dh) file oxrna2.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 +Per MPI rank memory allocation (min/avg/max) = 7.592 | 7.592 | 7.592 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -69.627742 3.2447172 -50.262701 0.034084814 39304000 +1000 ekin = 16.3558183649387 | erot = 16.6323090455317 | epot = -66.5525771041996 | etot = -33.5644496937292 +2000 ekin = 16.6191649168148 | erot = 16.5684372137643 | epot = -66.7520518221218 | etot = -33.5644496915427 +3000 ekin = 16.9230904408655 | erot = 16.5204480451833 | epot = -67.0079881759689 | etot = -33.5644496899201 +4000 ekin = 17.2772162612592 | erot = 16.4986792932201 | epot = -67.3403452437718 | etot = -33.5644496892925 +5000 ekin = 17.6866959075726 | erot = 16.5050138456573 | epot = -67.7561594428213 | etot = -33.5644496895913 +6000 ekin = 18.1531343302965 | erot = 16.5325161302816 | epot = -68.2501001506517 | etot = -33.5644496900737 +7000 ekin = 18.6806534933141 | erot = 16.5738535187237 | epot = -68.818956701435 | etot = -33.5644496893973 +8000 ekin = 19.2766528199697 | erot = 16.626151587963 | epot = -69.4672540969566 | etot = -33.5644496890239 +9000 ekin = 19.946149039732 | erot = 16.690847598574 | epot = -70.2014463262322 | etot = -33.5644496879261 +10000 ekin = 20.6973181248475 | erot = 16.777296043853 | epot = -71.039063854855 | etot = -33.5644496861545 +11000 ekin = 21.5395226247921 | erot = 16.901420997199 | epot = -72.0053933083061 | etot = -33.564449686315 +12000 ekin = 22.4717498465051 | erot = 17.0791755563663 | epot = -73.1153750880499 | etot = -33.5644496851785 +13000 ekin = 23.493621609947 | erot = 17.3228520870333 | epot = -74.3809233816827 | etot = -33.5644496847025 +14000 ekin = 24.6044210071245 | erot = 17.6425688028836 | epot = -75.8114394947882 | etot = -33.56444968478 +15000 ekin = 25.7999389267744 | erot = 18.0453525578632 | epot = -77.4097411694883 | etot = -33.5644496848507 +16000 ekin = 27.0739775537122 | erot = 18.536114233291 | epot = -79.1745414730759 | etot = -33.5644496860726 +17000 ekin = 28.4119581304117 | erot = 19.1137262760957 | epot = -81.0901340949627 | etot = -33.5644496884552 +18000 ekin = 29.7909545183301 | erot = 19.7704759932753 | epot = -83.1258802031779 | etot = -33.5644496915724 +19000 ekin = 31.1831510307731 | erot = 20.4915974540493 | epot = -85.2391981805602 | etot = -33.5644496957377 +20000 ekin = 32.5560965367941 | erot = 21.2528351748732 | epot = -87.373381412572 | etot = -33.5644497009046 +21000 ekin = 33.8683309875658 | erot = 22.0156446407475 | epot = -89.4484253379449 | etot = -33.5644497096315 +22000 ekin = 35.0747510230856 | erot = 22.7306302808711 | epot = -91.3698310187507 | etot = -33.5644497147941 +23000 ekin = 36.1427935644225 | erot = 23.3543658008635 | epot = -93.0616090845418 | etot = -33.5644497192558 +24000 ekin = 37.0484240543208 | erot = 23.8536351256839 | epot = -94.4665089004153 | etot = -33.5644497204106 +25000 ekin = 37.7873483857424 | erot = 24.2156130941778 | epot = -95.567411199049 | etot = -33.5644497191288 +26000 ekin = 38.3695951222895 | erot = 24.4472028227108 | epot = -96.381247661283 | etot = -33.5644497162827 +27000 ekin = 38.814245199114 | erot = 24.569649643868 | epot = -96.948344555808 | etot = -33.564449712826 +28000 ekin = 39.1436511594776 | erot = 24.6108705414912 | epot = -97.318971410458 | etot = -33.5644497094892 +29000 ekin = 39.3799077053085 | erot = 24.5987493007987 | epot = -97.5431067127119 | etot = -33.5644497066047 +30000 ekin = 39.543718776792 | erot = 24.5572061990989 | epot = -97.6653746802846 | etot = -33.5644497043937 +31000 ekin = 39.6556538792218 | erot = 24.5025482878259 | epot = -97.7226518696589 | etot = -33.5644497026113 +32000 ekin = 39.7376908979138 | erot = 24.4447365565301 | epot = -97.7468771552206 | etot = -33.5644497007767 +33000 ekin = 39.8178410436032 | erot = 24.3917276701347 | epot = -97.7740184125893 | etot = -33.5644496988513 +34000 ekin = 39.9276187144877 | erot = 24.3494773308424 | epot = -97.8415457422145 | etot = -33.5644496968845 +35000 ekin = 40.0972017271435 | erot = 24.3220925820239 | epot = -97.9837440042528 | etot = -33.5644496950853 +36000 ekin = 40.3554758289771 | erot = 24.3121132861365 | epot = -98.2320388089549 | etot = -33.5644496938413 +37000 ekin = 40.725317224184 | erot = 24.3194531164605 | epot = -98.609220034252 | etot = -33.5644496936075 +38000 ekin = 41.218461457732 | erot = 24.3399425111004 | epot = -99.1228536635587 | etot = -33.5644496947263 +39000 ekin = 41.8315835745714 | erot = 24.3642621379406 | epot = -99.7602954097942 | etot = -33.5644496972823 +40000 ekin = 42.5444333388251 | erot = 24.3777906096196 | epot = -100.486673649663 | etot = -33.5644497012185 +41000 ekin = 43.3221534386109 | erot = 24.3619359806986 | epot = -101.248539124816 | etot = -33.5644497055066 +42000 ekin = 44.1232219530967 | erot = 24.2968159627003 | epot = -101.984487625365 | etot = -33.5644497095679 +43000 ekin = 44.9043008441337 | erot = 24.1647850477424 | epot = -102.633535604781 | etot = -33.5644497129045 +44000 ekin = 45.6258073685752 | erot = 23.953775477634 | epot = -103.144032561026 | etot = -33.5644497148168 +45000 ekin = 46.2557013508714 | erot = 23.6596129163789 | epot = -103.47976398388 | etot = -33.5644497166297 +46000 ekin = 46.7711396854557 | erot = 23.2746461161514 | epot = -103.610235519167 | etot = -33.5644497175602 +47000 ekin = 47.1576706465411 | erot = 22.7983985986745 | epot = -103.520518961436 | etot = -33.5644497162202 +48000 ekin = 47.4067411848222 | erot = 22.24189270691 | epot = -103.213083606728 | etot = -33.5644497149961 +49000 ekin = 47.5134307536666 | erot = 21.6212608371929 | epot = -102.699141303773 | etot = -33.5644497129138 +50000 ekin = 47.4750496002024 | erot = 20.9637753825411 | epot = -102.003274691403 | etot = -33.5644497086593 +51000 ekin = 47.2893433305646 | erot = 20.3140174296332 | epot = -101.16781046916 | etot = -33.5644497089623 +52000 ekin = 46.9527474071891 | erot = 19.68086855223 | epot = -100.198065668178 | etot = -33.5644497087592 +53000 ekin = 46.4669221029442 | erot = 19.0628634962126 | epot = -99.0942353064246 | etot = -33.5644497072679 +54000 ekin = 45.8347987943733 | erot = 18.4752794596827 | epot = -97.8745279599043 | etot = -33.5644497058483 +55000 ekin = 45.059031662863 | erot = 17.9341671577873 | epot = -96.5576485255764 | etot = -33.5644497049261 +56000 ekin = 44.1409291390452 | erot = 17.4520797326571 | epot = -95.1574585762239 | etot = -33.5644497045216 +57000 ekin = 43.0792908324212 | erot = 17.037334269452 | epot = -93.6810748066111 | etot = -33.5644497047379 +58000 ekin = 41.8704923540597 | erot = 16.6939394056073 | epot = -92.1288814650802 | etot = -33.5644497054133 +59000 ekin = 40.5509408803223 | erot = 16.4316140927959 | epot = -90.5470046657477 | etot = -33.5644496926295 +60000 ekin = 39.1975830612663 | erot = 16.2583411314114 | epot = -89.0203738856257 | etot = -33.5644496929479 +61000 ekin = 35.7114984384222 | erot = 15.7928074869524 | epot = -85.0687559055441 | etot = -33.5644499801694 +62000 ekin = 34.7372517507007 | erot = 15.809440909604 | epot = -84.1111427028021 | etot = -33.5644500424973 +63000 ekin = 35.8178089566977 | erot = 16.1653492511931 | epot = -85.5476088513045 | etot = -33.5644506434137 +64000 ekin = 34.869236370394 | erot = 16.1670101597177 | epot = -84.6006971860832 | etot = -33.5644506559716 +65000 ekin = 33.846449455543 | erot = 16.1402632189656 | epot = -83.5511633293454 | etot = -33.5644506548368 +66000 ekin = 32.7636419796955 | erot = 16.0751240440813 | epot = -82.4032166770506 | etot = -33.5644506532738 +67000 ekin = 31.6420680628872 | erot = 15.9705642956741 | epot = -81.1770830093356 | etot = -33.5644506507743 +68000 ekin = 30.5061166759946 | erot = 15.8342590047122 | epot = -79.9048263284351 | etot = -33.5644506477283 +69000 ekin = 29.3793899831114 | erot = 15.678409289176 | epot = -78.6222499180454 | etot = -33.564450645758 +70000 ekin = 28.284277797061 | erot = 15.5192251789805 | epot = -77.367953618708 | etot = -33.5644506426665 +71000 ekin = 27.2428007223107 | erot = 15.3775924468402 | epot = -76.1848438089708 | etot = -33.5644506398198 +72000 ekin = 26.2738583640461 | erot = 15.2738682128153 | epot = -75.1121772142973 | etot = -33.5644506374359 +73000 ekin = 25.3929266243307 | erot = 15.225238925301 | epot = -74.1826161852592 | etot = -33.5644506356275 +74000 ekin = 24.6118800235875 | erot = 15.2440811522995 | epot = -73.4204118109363 | etot = -33.5644506350493 +75000 ekin = 23.9285421197333 | erot = 15.2937064902868 | epot = -72.7866996078847 | etot = -33.5644509978647 +76000 ekin = 23.6014258497327 | erot = 14.5530249139084 | epot = -71.7189013877706 | etot = -33.5644506241296 +77000 ekin = 24.0021186681933 | erot = 14.66725562535 | epot = -72.2338249119969 | etot = -33.5644506184536 +78000 ekin = 23.7667117018407 | erot = 14.8821032755388 | epot = -72.2132655967916 | etot = -33.5644506194121 +79000 ekin = 23.6362408803388 | erot = 15.1573231058555 | epot = -72.3580146069914 | etot = -33.5644506207971 +80000 ekin = 23.6008292998118 | erot = 15.4801164769236 | epot = -72.6453963992449 | etot = -33.5644506225096 +81000 ekin = 23.6479278988449 | erot = 15.8366782045229 | epot = -73.0490567276759 | etot = -33.5644506243081 +82000 ekin = 23.7631958527379 | erot = 16.2135577483199 | epot = -73.5412042271318 | etot = -33.564450626074 +83000 ekin = 23.9313380513044 | erot = 16.5989137528036 | epot = -74.0947024318235 | etot = -33.5644506277155 +84000 ekin = 24.1405337461447 | erot = 16.9832739889227 | epot = -74.6882583637861 | etot = -33.5644506287187 +85000 ekin = 24.3851366362422 | erot = 17.3594190811811 | epot = -75.3090063475336 | etot = -33.5644506301102 +86000 ekin = 24.6499622429148 | erot = 17.7229731863063 | epot = -75.9373860604631 | etot = -33.5644506312419 +87000 ekin = 24.9195866966142 | erot = 18.0734917202568 | epot = -76.5575290489246 | etot = -33.5644506320536 +88000 ekin = 25.1793742014108 | erot = 18.4146339772126 | epot = -77.158458811171 | etot = -33.5644506325475 +89000 ekin = 25.4156568494618 | erot = 18.7539686693896 | epot = -77.7340761514978 | etot = -33.5644506326463 +90000 ekin = 25.609684003566 | erot = 19.1040901404673 | epot = -78.2782247770974 | etot = -33.564450633064 +91000 ekin = 25.7348417969789 | erot = 19.4865010462251 | epot = -78.7857934757922 | etot = -33.5644506325881 +92000 ekin = 25.7824117490226 | erot = 19.9168308436453 | epot = -79.2636932257737 | etot = -33.5644506331059 +93000 ekin = 25.7436484203098 | erot = 20.4015276208925 | epot = -79.7096266744475 | etot = -33.5644506332451 +94000 ekin = 25.610748739912 | erot = 20.9498819611228 | epot = -80.1250813342097 | etot = -33.564450633175 +95000 ekin = 25.3788454256151 | erot = 21.5718811146967 | epot = -80.5151771730825 | etot = -33.5644506327707 +96000 ekin = 25.0476635684712 | erot = 22.2778886106733 | epot = -80.8900028110714 | etot = -33.5644506319269 +97000 ekin = 24.6228037012614 | erot = 23.0785820232949 | epot = -81.2658363557903 | etot = -33.5644506312341 +98000 ekin = 24.116365030335 | erot = 23.980262455698 | epot = -81.6610781157446 | etot = -33.5644506297116 +99000 ekin = 23.5467601995519 | erot = 24.9897227937723 | epot = -82.1009336213321 | etot = -33.5644506280079 +100000 ekin = 22.9377076830261 | erot = 26.1125444287915 | epot = -82.6147027382494 | etot = -33.5644506264317 +101000 ekin = 22.3162402354139 | erot = 27.3495277986758 | epot = -83.2302186594579 | etot = -33.5644506253682 +102000 ekin = 21.7099673799574 | erot = 28.6941289887295 | epot = -83.9685469938778 | etot = -33.5644506251909 +103000 ekin = 21.1440927333159 | erot = 30.130413105192 | epot = -84.8389564646036 | etot = -33.5644506260957 +104000 ekin = 20.6390360732686 | erot = 31.6318076720637 | epot = -85.8352943737421 | etot = -33.5644506284097 +105000 ekin = 20.2097356178038 | erot = 33.1559511277913 | epot = -86.9301373769589 | etot = -33.5644506313638 +106000 ekin = 19.8659962936248 | erot = 34.6591523175119 | epot = -88.0895992442174 | etot = -33.5644506330807 +107000 ekin = 19.6196926152683 | erot = 36.100338989929 | epot = -89.2844822415662 | etot = -33.5644506363689 +108000 ekin = 19.4737764770476 | erot = 37.4404659123052 | epot = -90.4786930287931 | etot = -33.5644506394402 +109000 ekin = 19.4257211238038 | erot = 38.6395727467607 | epot = -91.629744515762 | etot = -33.5644506451975 +110000 ekin = 19.4643317381238 | erot = 39.6495422786812 | epot = -92.6783246653831 | etot = -33.5644506485781 +111000 ekin = 19.5812097010519 | erot = 40.4340503208693 | epot = -93.5797106732657 | etot = -33.5644506513445 +112000 ekin = 19.7688752467972 | erot = 40.9641614008033 | epot = -94.2974873012517 | etot = -33.5644506536512 +113000 ekin = 20.0199352606492 | erot = 41.223561768641 | epot = -94.8079476827741 | etot = -33.5644506534839 +114000 ekin = 20.3316783135505 | erot = 41.2208106095099 | epot = -95.1169395739246 | etot = -33.5644506508641 +115000 ekin = 20.7092934859859 | erot = 40.9902193450394 | epot = -95.2639634786059 | etot = -33.5644506475807 +116000 ekin = 21.1584070130099 | erot = 40.5711692188944 | epot = -95.2940268781066 | etot = -33.5644506462023 +117000 ekin = 21.6717401642325 | erot = 40.0068194492249 | epot = -95.2430102574753 | etot = -33.5644506440179 +118000 ekin = 22.2304498749719 | erot = 39.3449170917023 | epot = -95.1398176087352 | etot = -33.5644506420609 +119000 ekin = 22.8040322747547 | erot = 38.6279078104798 | epot = -94.9963907285559 | etot = -33.5644506433214 +120000 ekin = 23.3636455910815 | erot = 37.8733163419356 | epot = -94.801412577584 | etot = -33.564450644567 +121000 ekin = 23.888334247959 | erot = 37.0853024873726 | epot = -94.5380873807864 | etot = -33.5644506454549 +122000 ekin = 24.3628295450746 | erot = 36.261752125414 | epot = -94.1890323184781 | etot = -33.5644506479895 +123000 ekin = 24.7728939422985 | erot = 35.3896441641771 | epot = -93.7269887541641 | etot = -33.5644506476884 +124000 ekin = 25.1206142173508 | erot = 34.4655545655651 | epot = -93.1506194284814 | etot = -33.5644506455655 +125000 ekin = 25.4216604350097 | erot = 33.5035163209335 | epot = -92.4896273979244 | etot = -33.5644506419812 +126000 ekin = 25.6927735129491 | erot = 32.5281184075519 | epot = -91.785342561111 | etot = -33.56445064061 +127000 ekin = 25.9460883081172 | erot = 31.5650113724827 | epot = -91.0755503181662 | etot = -33.5644506375663 +128000 ekin = 26.1993872383141 | erot = 30.6366650539223 | epot = -90.4005029275325 | etot = -33.5644506352961 +129000 ekin = 26.4652741313034 | erot = 29.7610339508673 | epot = -89.7907587151 | etot = -33.5644506329293 +130000 ekin = 26.7486727551205 | erot = 28.9506137583613 | epot = -89.2637371464484 | etot = -33.5644506329667 +131000 ekin = 27.0469092029044 | erot = 28.2034442942497 | epot = -88.8148041302872 | etot = -33.5644506331331 +132000 ekin = 27.3542874865317 | erot = 27.5160813886976 | epot = -88.4348195084739 | etot = -33.5644506332445 +133000 ekin = 27.6627378161423 | erot = 26.8888107912285 | epot = -88.115999240573 | etot = -33.5644506332022 +134000 ekin = 27.9672923181963 | erot = 26.3214524159622 | epot = -87.8531953671591 | etot = -33.5644506330005 +135000 ekin = 28.2641150379083 | erot = 25.8141340320102 | epot = -87.6426997025991 | etot = -33.5644506326806 +136000 ekin = 28.5509978141388 | erot = 25.3673179322113 | epot = -87.4827663786189 | etot = -33.5644506322688 +137000 ekin = 28.825915909221 | erot = 24.9801644637638 | epot = -87.3705310053152 | etot = -33.5644506323304 +138000 ekin = 29.0842610649339 | erot = 24.6492546073933 | epot = -87.2979663044158 | etot = -33.5644506320886 +139000 ekin = 29.3272222877258 | erot = 24.3700782380065 | epot = -87.2617511574337 | etot = -33.5644506317014 +140000 ekin = 29.5579798491516 | erot = 24.1376580585779 | epot = -87.2600885391681 | etot = -33.5644506314386 +141000 ekin = 29.7799846346249 | erot = 23.9462429930569 | epot = -87.2906782589382 | etot = -33.5644506312564 +142000 ekin = 29.9959841884915 | erot = 23.7899704636026 | epot = -87.3504052833039 | etot = -33.5644506312098 +143000 ekin = 30.2070349127784 | erot = 23.6632996950641 | epot = -87.4347852391688 | etot = -33.5644506313262 +144000 ekin = 30.4118840029093 | erot = 23.5613798569338 | epot = -87.5377144914396 | etot = -33.5644506315964 +145000 ekin = 30.6068456872279 | erot = 23.4803656669067 | epot = -87.6516619861204 | etot = -33.5644506319858 +146000 ekin = 30.7861230778205 | erot = 23.4176420010718 | epot = -87.7682157113363 | etot = -33.564450632444 +147000 ekin = 30.9424364770385 | erot = 23.3719366394227 | epot = -87.8788237493778 | etot = -33.5644506329166 +148000 ekin = 31.0677916134912 | erot = 23.3433216080134 | epot = -87.9755638548586 | etot = -33.564450633354 +149000 ekin = 31.1542520331539 | erot = 23.3331254537123 | epot = -88.0518281205811 | etot = -33.5644506337149 +150000 ekin = 31.1946418128177 | erot = 23.3437996409507 | epot = -88.1028920877325 | etot = -33.5644506339642 +151000 ekin = 31.1838063839322 | erot = 23.3785936220168 | epot = -88.1268506397958 | etot = -33.5644506338469 +152000 ekin = 31.1202290278299 | erot = 23.4412183836703 | epot = -88.125898045246 | etot = -33.5644506337458 +153000 ekin = 31.0032553217637 | erot = 23.5372189789008 | epot = -88.1049249338467 | etot = -33.5644506331823 +154000 ekin = 30.8354559406746 | erot = 23.6729952126947 | epot = -88.072901786295 | etot = -33.5644506329257 +155000 ekin = 30.6186135870526 | erot = 23.8551009557647 | epot = -88.0381651751689 | etot = -33.5644506323515 +156000 ekin = 30.3571457582588 | erot = 24.0914721103742 | epot = -88.0130685002276 | etot = -33.5644506315946 +157000 ekin = 30.0574108500346 | erot = 24.3907046676056 | epot = -88.0125661484805 | etot = -33.5644506308403 +158000 ekin = 29.725675692331 | erot = 24.7625567196346 | epot = -88.0526830421764 | etot = -33.5644506302108 +159000 ekin = 29.3667041507893 | erot = 25.2124449846207 | epot = -88.1435997656297 | etot = -33.5644506302196 +160000 ekin = 28.9829375848235 | erot = 25.7406189361246 | epot = -88.2880071520098 | etot = -33.5644506310616 +161000 ekin = 28.5708031098605 | erot = 26.3449808633556 | epot = -88.4802346049489 | etot = -33.5644506317328 +162000 ekin = 28.1278607476035 | erot = 27.0188065006218 | epot = -88.7111178809852 | etot = -33.5644506327599 +163000 ekin = 27.6515523776407 | erot = 27.7508923428456 | epot = -88.9668953542076 | etot = -33.5644506337213 +164000 ekin = 27.1398166575402 | erot = 28.5265897115496 | epot = -89.2308570046128 | etot = -33.5644506355231 +165000 ekin = 26.5901801294065 | erot = 29.3236809534458 | epot = -89.478311720126 | etot = -33.5644506372737 +166000 ekin = 26.0027550423919 | erot = 30.1148491025849 | epot = -89.6820547838262 | etot = -33.5644506388494 +167000 ekin = 25.3815734826352 | erot = 30.8714146428653 | epot = -89.8174387656332 | etot = -33.5644506401327 +168000 ekin = 24.7338280126162 | erot = 31.5656853660149 | epot = -89.8639640196475 | etot = -33.5644506410165 +169000 ekin = 24.0691061638267 | erot = 32.1733410341194 | epot = -89.8068978394102 | etot = -33.5644506414641 +170000 ekin = 23.3986380903836 | erot = 32.6761770397884 | epot = -89.6392657713668 | etot = -33.5644506411948 +171000 ekin = 22.7350947047584 | erot = 33.0649339609198 | epot = -89.3644793058835 | etot = -33.5644506402053 +172000 ekin = 22.0927595064379 | erot = 33.3397459263013 | epot = -88.9969560711893 | etot = -33.5644506384501 +173000 ekin = 21.4881436133187 | erot = 33.5098602953101 | epot = -88.5624545444277 | etot = -33.5644506357989 +174000 ekin = 20.9424106184102 | erot = 33.5950638981363 | epot = -88.1019251458272 | etot = -33.5644506292807 +175000 ekin = 20.4887725385275 | erot = 33.6332952588425 | epot = -87.6865184248803 | etot = -33.5644506275103 +176000 ekin = 20.1459992745671 | erot = 33.6413286939806 | epot = -87.3517785947221 | etot = -33.5644506261744 +177000 ekin = 19.9273952403454 | erot = 33.6264319072445 | epot = -87.1182777732156 | etot = -33.5644506256257 +178000 ekin = 19.84052681153 | erot = 33.5862782738547 | epot = -86.9912557125122 | etot = -33.5644506271275 +179000 ekin = 19.8828425829422 | erot = 33.5043404166422 | epot = -86.9516336276486 | etot = -33.5644506280643 +180000 ekin = 20.0524881206256 | erot = 33.3671042345402 | epot = -86.9840429849155 | etot = -33.5644506297498 +181000 ekin = 20.3414841297343 | erot = 33.1581782006442 | epot = -87.0641129622508 | etot = -33.5644506318723 +182000 ekin = 20.7352057198233 | erot = 32.8612622822509 | epot = -87.1609186361483 | etot = -33.5644506340741 +183000 ekin = 21.2137106223656 | erot = 32.4647477949401 | epot = -87.2429090532129 | etot = -33.5644506359073 +184000 ekin = 21.753758772068 | erot = 31.9655803613331 | epot = -87.2837897705988 | etot = -33.5644506371977 +185000 ekin = 22.3286746031905 | erot = 31.370802203917 | epot = -87.2639274448021 | etot = -33.5644506376946 +186000 ekin = 22.9115100132914 | erot = 30.6990331536457 | epot = -87.1749938042645 | etot = -33.5644506373275 +187000 ekin = 23.4775030152646 | erot = 29.9792070479746 | epot = -87.0211606994591 | etot = -33.5644506362199 +188000 ekin = 24.0059463479979 | erot = 29.2469949106376 | epot = -86.8173918933481 | etot = -33.5644506347127 +189000 ekin = 24.4809955944256 | erot = 28.5392131436686 | epot = -86.5846593713985 | etot = -33.5644506333043 +190000 ekin = 24.8911658073154 | erot = 27.8871249849478 | epot = -86.3427414248055 | etot = -33.5644506325423 +191000 ekin = 25.2275609419593 | erot = 27.3101259966561 | epot = -86.1021375715933 | etot = -33.5644506329779 +192000 ekin = 25.4831011426815 | erot = 26.8121375634353 | epot = -85.8596893403699 | etot = -33.564450634253 +193000 ekin = 25.2930335715005 | erot = 26.6410891958414 | epot = -85.4985734034485 | etot = -33.5644506361066 +194000 ekin = 25.0352601614032 | erot = 26.6525265483622 | epot = -85.2522373921937 | etot = -33.5644506824282 +195000 ekin = 25.0363508840855 | erot = 26.2378500699517 | epot = -84.8386516236489 | etot = -33.5644506696116 +196000 ekin = 24.9648942549692 | erot = 25.78683024187 | epot = -84.3161751669041 | etot = -33.5644506700649 +197000 ekin = 24.820085073243 | erot = 25.3002719383723 | epot = -83.684807680623 | etot = -33.5644506690076 +198000 ekin = 24.617288458851 | erot = 24.7762496503728 | epot = -82.9579887758224 | etot = -33.5644506665986 +199000 ekin = 24.377048383026 | erot = 24.2259949153754 | epot = -82.1674939619447 | etot = -33.5644506635433 +200000 ekin = 24.1224360020296 | erot = 23.6691820640811 | epot = -81.3560687261525 | etot = -33.5644506600419 +201000 ekin = 23.8775516468454 | erot = 23.1291743985682 | epot = -80.5711767022417 | etot = -33.5644506568281 +202000 ekin = 23.6646103059715 | erot = 22.6276096876224 | epot = -79.8566706478819 | etot = -33.5644506542881 +203000 ekin = 23.5017139925529 | erot = 22.1809863327317 | epot = -79.2471509779019 | etot = -33.5644506526173 +204000 ekin = 23.4012931943585 | erot = 21.7992926193315 | epot = -78.7650364652111 | etot = -33.5644506515211 +205000 ekin = 23.3698442687714 | erot = 21.4883950765849 | epot = -78.4226899967129 | etot = -33.5644506513567 +206000 ekin = 23.4080277663789 | erot = 21.2503388252137 | epot = -78.2228172433636 | etot = -33.5644506517709 +207000 ekin = 23.510672424487 | erot = 21.0828853352428 | epot = -78.1580084122739 | etot = -33.564450652544 +208000 ekin = 23.6683534180495 | erot = 20.982792192542 | epot = -78.2155962640683 | etot = -33.5644506534769 +209000 ekin = 23.8319531636201 | erot = 20.8686960092813 | epot = -78.2650998050279 | etot = -33.5644506321265 +210000 ekin = 24.1634900876329 | erot = 20.8246815259854 | epot = -78.5526222834702 | etot = -33.5644506698519 +211000 ekin = 24.4545474928994 | erot = 20.8320949387436 | epot = -78.851093093408 | etot = -33.564450661765 +212000 ekin = 24.7210588846791 | erot = 20.8889178093565 | epot = -79.1744273565292 | etot = -33.5644506624935 +213000 ekin = 24.9762555918523 | erot = 20.9956570670851 | epot = -79.5363633251146 | etot = -33.5644506661772 +214000 ekin = 25.205483004635 | erot = 21.1345527593194 | epot = -79.904486430984 | etot = -33.5644506670296 +215000 ekin = 25.4055444850383 | erot = 21.2948000239929 | epot = -80.2647951765804 | etot = -33.5644506675491 +216000 ekin = 25.5773395549964 | erot = 21.4659469017795 | epot = -80.6077371248515 | etot = -33.5644506680756 +217000 ekin = 25.7224226233962 | erot = 21.6383314527683 | epot = -80.925204744665 | etot = -33.5644506685004 +218000 ekin = 25.8456307141035 | erot = 21.7996006617643 | epot = -81.2096820449061 | etot = -33.5644506690382 +219000 ekin = 25.952452354154 | erot = 21.9358336225146 | epot = -81.4527366463123 | etot = -33.5644506696437 +220000 ekin = 26.0480501371105 | erot = 22.0331400323315 | epot = -81.6456408394103 | etot = -33.5644506699683 +221000 ekin = 26.1377559920962 | erot = 22.0801399062532 | epot = -81.7823465685503 | etot = -33.5644506702008 +222000 ekin = 26.2262421156876 | erot = 22.0692633440645 | epot = -81.8599561297652 | etot = -33.5644506700131 +223000 ekin = 26.3184403630104 | erot = 21.9982474658179 | epot = -81.8811384982303 | etot = -33.564450669402 +224000 ekin = 26.4171271373366 | erot = 21.8710288815827 | epot = -81.8526066880995 | etot = -33.5644506691801 +225000 ekin = 26.5225389104573 | erot = 21.6965423523224 | epot = -81.7835319309186 | etot = -33.5644506681389 +226000 ekin = 26.7157923548661 | erot = 21.3119214437974 | epot = -81.5921644821821 | etot = -33.5644506835186 +227000 ekin = 27.2484396437667 | erot = 20.6374955150002 | epot = -81.4503858460625 | etot = -33.5644506872956 +228000 ekin = 27.5078528971351 | erot = 20.2748179574298 | epot = -81.3471215226841 | etot = -33.5644506681192 +229000 ekin = 27.631283055081 | erot = 19.9858964954828 | epot = -81.1816302175522 | etot = -33.5644506669884 +230000 ekin = 27.7676058404106 | erot = 19.7189438600699 | epot = -81.0510003675314 | etot = -33.5644506670509 +231000 ekin = 27.917189899564 | erot = 19.4851196432342 | epot = -80.9667602108556 | etot = -33.5644506680573 +232000 ekin = 28.075807909483 | erot = 19.2892055600532 | epot = -80.9294641380291 | etot = -33.5644506684929 +233000 ekin = 28.2354888581566 | erot = 19.1284398309955 | epot = -80.9283793559269 | etot = -33.5644506667748 +234000 ekin = 28.3953039485291 | erot = 19.0132859353528 | epot = -80.973040551359 | etot = -33.564450667477 +235000 ekin = 28.5569493494324 | erot = 18.9585387746561 | epot = -81.0799387921139 | etot = -33.5644506680254 +236000 ekin = 28.7166448189416 | erot = 18.9671002034007 | epot = -81.2481956904871 | etot = -33.5644506681447 +237000 ekin = 28.872502381955 | erot = 19.0433381874402 | epot = -81.4802912373653 | etot = -33.5644506679701 +238000 ekin = 29.0257746255756 | erot = 19.1916941122086 | epot = -81.7819194053224 | etot = -33.5644506675381 +239000 ekin = 29.1795842186668 | erot = 19.4168064167523 | epot = -82.1608413028715 | etot = -33.5644506674523 +240000 ekin = 29.3337146101792 | erot = 19.7090725309346 | epot = -82.6072378097604 | etot = -33.5644506686467 +241000 ekin = 29.4868078966917 | erot = 20.0596352267871 | epot = -83.1108937927889 | etot = -33.5644506693101 +242000 ekin = 29.6351003169272 | erot = 20.4605457842645 | epot = -83.6600967716849 | etot = -33.5644506704932 +243000 ekin = 29.8921802425096 | erot = 20.6958964400126 | epot = -84.1525273495103 | etot = -33.564450666988 +244000 ekin = 30.2594419587612 | erot = 20.9649617308285 | epot = -84.788854393917 | etot = -33.5644507043273 +245000 ekin = 30.3074620328552 | erot = 21.3089995007004 | epot = -85.1809122847552 | etot = -33.5644507511996 +246000 ekin = 30.6998172933386 | erot = 21.0861202554748 | epot = -85.3503880690327 | etot = -33.5644505202193 +247000 ekin = 31.265212405902 | erot = 21.7433599271637 | epot = -86.5730230769931 | etot = -33.5644507439274 +248000 ekin = 31.2039013197071 | erot = 22.3578318777868 | epot = -87.1261839419724 | etot = -33.5644507444785 +249000 ekin = 31.0628965882674 | erot = 22.9361503364564 | epot = -87.563497668308 | etot = -33.5644507435842 +250000 ekin = 30.8544219835531 | erot = 23.4738999845616 | epot = -87.8927727106375 | etot = -33.5644507425228 +251000 ekin = 30.5979929542296 | erot = 23.9732495372637 | epot = -88.1356932312788 | etot = -33.5644507397854 +252000 ekin = 30.3186084933056 | erot = 24.4470234326924 | epot = -88.3300826628224 | etot = -33.5644507368245 +253000 ekin = 30.041632868323 | erot = 24.9117142614227 | epot = -88.5177978639943 | etot = -33.5644507342486 +254000 ekin = 29.6651322242815 | erot = 25.3352238224839 | epot = -88.5648072260565 | etot = -33.5644511792912 +255000 ekin = 27.9972596305184 | erot = 25.343644566417 | epot = -86.9053550134241 | etot = -33.5644508164887 +256000 ekin = 27.4480536506913 | erot = 26.2038023386853 | epot = -87.216306790649 | etot = -33.5644508012725 +257000 ekin = 28.5107044680624 | erot = 27.5793602337782 | epot = -89.6545158780358 | etot = -33.5644511761952 +258000 ekin = 28.9485040029259 | erot = 27.9141399630899 | epot = -90.4270947739431 | etot = -33.5644508079274 +259000 ekin = 29.1923898091059 | erot = 28.2760336628035 | epot = -91.0328742825817 | etot = -33.5644508106723 +260000 ekin = 29.442065950707 | erot = 28.6795119902558 | epot = -91.6860287570451 | etot = -33.5644508160824 +261000 ekin = 29.6845039883856 | erot = 29.1068404636931 | epot = -92.3557952701953 | etot = -33.5644508181166 +262000 ekin = 29.8834680797666 | erot = 29.5461970802723 | epot = -92.9941159814128 | etot = -33.5644508213739 +263000 ekin = 30.015935190767 | erot = 29.964909738063 | epot = -93.545295753821 | etot = -33.5644508249909 +264000 ekin = 30.0524877647281 | erot = 30.3384906869061 | epot = -93.9554292801698 | etot = -33.5644508285355 +265000 ekin = 29.9659450397407 | erot = 30.6431999052832 | epot = -94.1735957766809 | etot = -33.564450831657 +266000 ekin = 29.7355380957518 | erot = 30.8554934502802 | epot = -94.1554823800682 | etot = -33.5644508340362 +267000 ekin = 29.350217253177 | erot = 30.9531552650149 | epot = -93.8678233536528 | etot = -33.564450835461 +268000 ekin = 28.8109215600445 | erot = 30.9159121160384 | epot = -93.2912845119314 | etot = -33.5644508358484 +269000 ekin = 28.131229902636 | erot = 30.7258800106364 | epot = -92.4215607498827 | etot = -33.5644508366102 +270000 ekin = 27.3365120331628 | erot = 30.3685462542785 | epot = -91.26950914197 | etot = -33.5644508545286 +271000 ekin = 26.4621552466787 | erot = 29.8348321072734 | epot = -89.8614382055512 | etot = -33.5644508515991 +272000 ekin = 25.5514537841055 | erot = 29.123871510934 | epot = -88.2397761425329 | etot = -33.5644508474934 +273000 ekin = 24.6528090193024 | erot = 28.2453291639207 | epot = -86.4625890256565 | etot = -33.5644508424334 +274000 ekin = 23.8212346502742 | erot = 27.2200000603037 | epot = -84.6056855414942 | etot = -33.5644508309163 +275000 ekin = 22.9729777889705 | erot = 26.0804823635512 | epot = -82.6179111121121 | etot = -33.5644509595905 +276000 ekin = 22.0549791971374 | erot = 24.8883860441513 | epot = -80.5078160553758 | etot = -33.5644508140871 +277000 ekin = 22.291845448694 | erot = 23.6844629884807 | epot = -79.540759443928 | etot = -33.5644510067533 +278000 ekin = 22.2933944834771 | erot = 22.3796695906392 | epot = -78.2375149019929 | etot = -33.5644508278766 +279000 ekin = 22.3659748250016 | erot = 21.1183819743967 | epot = -77.0488076287097 | etot = -33.5644508293114 +280000 ekin = 22.5183002078625 | erot = 19.9334324614308 | epot = -76.0161834966431 | etot = -33.5644508273498 +281000 ekin = 22.7529481191411 | erot = 18.8478601493348 | epot = -75.1652590940351 | etot = -33.5644508255591 +282000 ekin = 23.0795879184867 | erot = 17.8776966475211 | epot = -74.5217353872447 | etot = -33.564450821237 +283000 ekin = 23.5210121271307 | erot = 17.0345324476566 | epot = -74.1199953957228 | etot = -33.5644508209355 +284000 ekin = 24.07992475589 | erot = 16.3233784658841 | epot = -73.9677540517476 | etot = -33.5644508299736 +285000 ekin = 24.7785446246423 | erot = 15.7478244913642 | epot = -74.0908199422233 | etot = -33.5644508262167 +286000 ekin = 25.636838734536 | erot = 15.3047487827835 | epot = -74.5060383422483 | etot = -33.5644508249288 +287000 ekin = 26.6214548224706 | erot = 14.9922504829288 | epot = -75.1781561308958 | etot = -33.5644508254964 +288000 ekin = 27.7267158888572 | erot = 14.8012865017013 | epot = -76.0924532218297 | etot = -33.5644508312711 +289000 ekin = 28.8920167227279 | erot = 14.7169892845691 | epot = -77.1734568439386 | etot = -33.5644508366416 +290000 ekin = 30.0553666648387 | erot = 14.7251675417572 | epot = -78.3449850482589 | etot = -33.5644508416631 +291000 ekin = 31.1595769632387 | erot = 14.811929120259 | epot = -79.5359569290839 | etot = -33.5644508455862 +292000 ekin = 32.1608216689813 | erot = 14.9640713088845 | epot = -80.6893438261509 | etot = -33.564450848285 +293000 ekin = 33.0319319380177 | erot = 15.168173905447 | epot = -81.7645566935966 | etot = -33.5644508501319 +294000 ekin = 33.7599421346976 | erot = 15.4088106779812 | epot = -82.7332036642767 | etot = -33.5644508515979 +295000 ekin = 34.3413485939712 | erot = 15.667394334235 | epot = -83.5731937811218 | etot = -33.5644508529156 +296000 ekin = 34.7782829446776 | erot = 15.9229210434175 | epot = -84.26565484209 | etot = -33.5644508539949 +297000 ekin = 35.0767101392392 | erot = 16.1546669536439 | epot = -84.7958279474754 | etot = -33.5644508545923 +298000 ekin = 35.2457989813493 | erot = 16.3457320030339 | epot = -85.1559818389166 | etot = -33.5644508545334 +299000 ekin = 35.2970066855207 | erot = 16.4859983979522 | epot = -85.347455937312 | etot = -33.564450853839 +300000 ekin = 35.2422237261662 | erot = 16.5735941681655 | epot = -85.3802687470049 | etot = -33.5644508526733 +301000 ekin = 35.0916597610801 | erot = 16.6147820199824 | epot = -85.2708926322694 | etot = -33.5644508512069 +302000 ekin = 34.8528128910573 | erot = 16.6227287108408 | epot = -85.0399924514116 | etot = -33.5644508495135 +303000 ekin = 34.5312597670619 | erot = 16.6156181966414 | epot = -84.7113288113064 | etot = -33.5644508476031 +304000 ekin = 34.1313674341479 | erot = 16.6227567332271 | epot = -84.3185750111593 | etot = -33.5644508437843 +305000 ekin = 33.6571822643538 | erot = 16.6720234605616 | epot = -83.8936565670797 | etot = -33.5644508421643 +306000 ekin = 33.1151986332185 | erot = 16.7769746117161 | epot = -83.4566240858681 | etot = -33.5644508409335 +307000 ekin = 32.5134330702932 | erot = 16.9437629167783 | epot = -83.02164682739 | etot = -33.5644508403184 +308000 ekin = 31.8601474906921 | erot = 17.1694637372502 | epot = -82.5940620683754 | etot = -33.564450840433 +309000 ekin = 31.1628016434689 | erot = 17.4420089824522 | epot = -82.169261466886 | etot = -33.564450840965 +310000 ekin = 30.4284939703374 | erot = 17.7430091431839 | epot = -81.7359539560138 | etot = -33.5644508424925 +311000 ekin = 29.6636970637345 | erot = 18.0450727084457 | epot = -81.2732206157263 | etot = -33.5644508435461 +312000 ekin = 28.8763119838581 | erot = 18.3211026916569 | epot = -80.7618655199121 | etot = -33.5644508443971 +313000 ekin = 28.0757317032389 | erot = 18.5482322978723 | epot = -80.18841484566 | etot = -33.5644508445488 +314000 ekin = 27.2754576015478 | erot = 18.7102692133214 | epot = -79.5501776586848 | etot = -33.5644508438156 +315000 ekin = 26.492751287582 | erot = 18.8002978243514 | epot = -78.8574999542526 | etot = -33.5644508423192 +316000 ekin = 25.7476825207451 | erot = 18.8201859998617 | epot = -78.1323193609057 | etot = -33.5644508402989 +317000 ekin = 25.061490505917 | erot = 18.7788964667389 | epot = -77.4048378106934 | etot = -33.5644508380374 +318000 ekin = 24.4546904069621 | erot = 18.6903703700711 | epot = -76.70951161281 | etot = -33.5644508357768 +319000 ekin = 23.9454326767099 | erot = 18.5716676910327 | epot = -76.0815512014053 | etot = -33.5644508336627 +320000 ekin = 23.5484361619436 | erot = 18.4417359442066 | epot = -75.5546229378898 | etot = -33.5644508317396 +321000 ekin = 23.2745454667293 | erot = 18.3209670206422 | epot = -75.1599633173638 | etot = -33.5644508299923 +322000 ekin = 23.1307065451601 | erot = 18.2311244117378 | epot = -74.9262817853413 | etot = -33.5644508284434 +323000 ekin = 23.1199305196705 | erot = 18.1948729379475 | epot = -74.8792542848651 | etot = -33.5644508272471 +324000 ekin = 23.2402241372721 | erot = 18.2346442881315 | epot = -75.0393192521543 | etot = -33.5644508267507 +325000 ekin = 23.4710021373605 | erot = 18.3668956955574 | epot = -75.4023486642627 | etot = -33.5644508313448 +326000 ekin = 23.7795455091373 | erot = 18.5932769387736 | epot = -75.9372732824513 | etot = -33.5644508345405 +327000 ekin = 24.1343713309104 | erot = 18.9009306660405 | epot = -76.5997528364855 | etot = -33.5644508395347 +328000 ekin = 24.4953646019651 | erot = 19.2611055951325 | epot = -77.3209210429526 | etot = -33.564450845855 +329000 ekin = 24.8184483225885 | erot = 19.6309716495633 | epot = -78.0138708245784 | etot = -33.5644508524265 +330000 ekin = 25.064815357625 | erot = 19.9600875040515 | epot = -78.5893537191764 | etot = -33.5644508574999 +331000 ekin = 25.210138372085 | erot = 20.2008919381964 | epot = -78.9754811706065 | etot = -33.5644508603252 +332000 ekin = 25.2457706637465 | erot = 20.3248269292201 | epot = -79.1350484525863 | etot = -33.5644508596197 +333000 ekin = 25.1861890028038 | erot = 20.3296166390246 | epot = -79.0802564973891 | etot = -33.5644508555607 +334000 ekin = 25.0662190978875 | erot = 20.2399843242263 | epot = -78.8706542713047 | etot = -33.5644508491909 +335000 ekin = 24.9333683334916 | erot = 20.10098162188 | epot = -78.5988007973609 | etot = -33.5644508419894 +336000 ekin = 24.838111457398 | erot = 19.9670256543986 | epot = -78.3695879471494 | etot = -33.5644508353528 +337000 ekin = 24.8247545149941 | erot = 19.8908557634947 | epot = -78.2800611092981 | etot = -33.5644508308092 +338000 ekin = 24.9246805340852 | erot = 19.9088859975653 | epot = -78.3980173596517 | etot = -33.5644508280012 +339000 ekin = 25.1522743468773 | erot = 20.043365846553 | epot = -78.7600910207995 | etot = -33.5644508273693 +340000 ekin = 25.5040328013693 | erot = 20.306324357249 | epot = -79.3748079873049 | etot = -33.5644508286866 +341000 ekin = 25.9593882031618 | erot = 20.6972938179444 | epot = -80.2211328525995 | etot = -33.5644508314932 +342000 ekin = 26.4842114254738 | erot = 21.2060406180888 | epot = -81.2547028788679 | etot = -33.5644508353053 +343000 ekin = 27.0356929912357 | erot = 21.815327972342 | epot = -82.4154718031651 | etot = -33.5644508395875 +344000 ekin = 27.5676973344761 | erot = 22.5033872894512 | epot = -83.6355354677601 | etot = -33.5644508438328 +345000 ekin = 28.0359749646807 | erot = 23.2463366467675 | epot = -84.8467624590903 | etot = -33.5644508476421 +346000 ekin = 28.4026013552871 | erot = 24.0201112992161 | epot = -85.9871635052192 | etot = -33.564450850716 +347000 ekin = 28.6398915194528 | erot = 24.8020103746231 | epot = -87.0063527467572 | etot = -33.5644508526813 +348000 ekin = 28.7326075377482 | erot = 25.5714490942921 | epot = -87.8685074860267 | etot = -33.5644508539863 +349000 ekin = 28.6752584344036 | erot = 26.3100180841384 | epot = -88.549727373061 | etot = -33.564450854519 +350000 ekin = 28.4730637357079 | erot = 27.0009502159031 | epot = -89.038464806185 | etot = -33.564450854574 +351000 ekin = 28.1395378484453 | erot = 27.6270646736909 | epot = -89.3310533767997 | etot = -33.5644508546635 +352000 ekin = 27.692958073856 | erot = 28.1676652362281 | epot = -89.4250741653402 | etot = -33.5644508552561 +353000 ekin = 27.1526950366525 | erot = 28.5958100264823 | epot = -89.3129559196985 | etot = -33.5644508565636 +354000 ekin = 26.5365141387121 | erot = 28.8781341171817 | epot = -88.9790991141991 | etot = -33.5644508583052 +355000 ekin = 25.8598799836129 | erot = 28.9793031096872 | epot = -88.4036339528938 | etot = -33.5644508595937 +356000 ekin = 25.1375717946229 | erot = 28.8722956885124 | epot = -87.5743183424417 | etot = -33.5644508593064 +357000 ekin = 24.3868741548633 | erot = 28.5495289601074 | epot = -86.5008539716514 | etot = -33.5644508566807 +358000 ekin = 23.6300778926751 | erot = 28.0297879776407 | epot = -85.2243167221727 | etot = -33.5644508518569 +359000 ekin = 22.8939201469052 | erot = 27.355677035979 | epot = -83.8140480288444 | etot = -33.5644508459602 +360000 ekin = 22.206578007299 | erot = 26.5834479666855 | epot = -82.3544768140201 | etot = -33.5644508400356 +361000 ekin = 21.5986345635157 | erot = 25.7744654426823 | epot = -80.9375508370781 | etot = -33.5644508308802 +362000 ekin = 21.1083260621075 | erot = 24.989507840829 | epot = -79.6622847317925 | etot = -33.564450828856 +363000 ekin = 20.7375100619836 | erot = 24.2576398932737 | epot = -78.5596007834521 | etot = -33.5644508281948 +364000 ekin = 20.476003367975 | erot = 23.5946470163905 | epot = -77.635101212758 | etot = -33.5644508283926 +365000 ekin = 20.3079089893725 | erot = 23.009513896542 | epot = -76.8818737148766 | etot = -33.5644508289621 +366000 ekin = 20.2147979335995 | erot = 22.508371935773 | epot = -76.2876206988782 | etot = -33.5644508295058 +367000 ekin = 20.1786185360397 | erot = 22.0973297018217 | epot = -75.8403990676851 | etot = -33.5644508298237 +368000 ekin = 20.1837486799222 | erot = 21.7835270635243 | epot = -75.5317265733032 | etot = -33.5644508298567 +369000 ekin = 20.2182310118282 | erot = 21.574738818764 | epot = -75.3574206602716 | etot = -33.5644508296795 +370000 ekin = 20.2742556079065 | erot = 21.4781104693876 | epot = -75.3168169068296 | etot = -33.5644508295354 +371000 ekin = 20.3477066126427 | erot = 21.4982876398118 | epot = -75.4104450815928 | etot = -33.5644508291383 +372000 ekin = 20.4391769085492 | erot = 21.6370751258624 | epot = -75.6407028633193 | etot = -33.5644508289077 +373000 ekin = 20.5523906693865 | erot = 21.8921389377599 | epot = -76.0089804360328 | etot = -33.5644508288864 +374000 ekin = 20.6947607298497 | erot = 22.2561865203504 | epot = -76.5153980788613 | etot = -33.5644508286612 +375000 ekin = 20.8734352289465 | erot = 22.7176361068345 | epot = -77.1555221652783 | etot = -33.5644508294973 +376000 ekin = 21.089493504449 | erot = 23.2620769848747 | epot = -77.9160213199094 | etot = -33.5644508305857 +377000 ekin = 21.3446674636834 | erot = 23.8720082855239 | epot = -78.7811265807323 | etot = -33.5644508315251 +378000 ekin = 21.64248542288 | erot = 24.5275644040167 | epot = -79.7345006597438 | etot = -33.5644508328471 +379000 ekin = 21.9906215820674 | erot = 25.2058289791334 | epot = -80.760901395464 | etot = -33.5644508342632 +380000 ekin = 22.3975872844685 | erot = 25.8799316875408 | epot = -81.8419698098752 | etot = -33.5644508378659 +381000 ekin = 22.8474625363943 | erot = 26.5196756829191 | epot = -82.9315890607488 | etot = -33.5644508414354 +382000 ekin = 23.3214968284424 | erot = 27.0935868814443 | epot = -83.9795345552253 | etot = -33.5644508453386 +383000 ekin = 23.7989486472446 | erot = 27.5682880226977 | epot = -84.9316875190629 | etot = -33.5644508491206 +384000 ekin = 24.2602946690265 | erot = 27.9101784190738 | epot = -85.7349239404018 | etot = -33.5644508523015 +385000 ekin = 24.6909701694311 | erot = 28.0892515731128 | epot = -86.3446725966466 | etot = -33.5644508541027 +386000 ekin = 25.0758089633983 | erot = 28.0812872789257 | epot = -86.7215471012156 | etot = -33.5644508588916 +387000 ekin = 25.3886917944075 | erot = 27.8683599140167 | epot = -86.8215025662873 | etot = -33.5644508578631 +388000 ekin = 25.6321888108903 | erot = 27.4567876604955 | epot = -86.6534273266304 | etot = -33.5644508552446 +389000 ekin = 25.8173007945516 | erot = 26.8690369422729 | epot = -86.2507885889323 | etot = -33.5644508521078 +390000 ekin = 25.9562629244357 | erot = 26.1386991559259 | epot = -85.6594129285287 | etot = -33.5644508481671 +391000 ekin = 26.0625510048269 | erot = 25.3050096521924 | epot = -84.9320115015289 | etot = -33.5644508445096 +392000 ekin = 26.1477279258622 | erot = 24.4077754077168 | epot = -84.1199541750021 | etot = -33.5644508414231 +393000 ekin = 26.2207009126332 | erot = 23.4862823971765 | epot = -83.2714341487272 | etot = -33.5644508389175 +394000 ekin = 26.2880235523287 | erot = 22.5776047859249 | epot = -82.4300791763575 | etot = -33.5644508381039 +395000 ekin = 26.3461327830984 | erot = 21.6992206106144 | epot = -81.6098042311068 | etot = -33.564450837394 +396000 ekin = 26.3925769143903 | erot = 20.8648963380663 | epot = -80.8219240890407 | etot = -33.5644508365841 +397000 ekin = 26.428035758933 | erot = 20.0875980485209 | epot = -80.0800846430096 | etot = -33.5644508355556 +398000 ekin = 26.456826416021 | erot = 19.3805747697538 | epot = -79.4018520200386 | etot = -33.5644508342638 +399000 ekin = 26.486391084066 | erot = 18.7576183807505 | epot = -78.8084602983018 | etot = -33.5644508334853 +400000 ekin = 26.5240355653678 | erot = 18.2309165845048 | epot = -78.3194029820227 | etot = -33.5644508321501 +401000 ekin = 26.5785515874793 | erot = 17.8133011772033 | epot = -77.9563035960443 | etot = -33.5644508313617 +402000 ekin = 26.6553316875252 | erot = 17.514632436928 | epot = -77.734414956193 | etot = -33.5644508317398 +403000 ekin = 26.7508441445099 | erot = 17.3369800813554 | epot = -77.652275059838 | etot = -33.5644508339727 +404000 ekin = 26.847889984788 | erot = 17.2703664407998 | epot = -77.6827072638883 | etot = -33.5644508383005 +405000 ekin = 26.913648151536 | erot = 17.2906409832311 | epot = -77.7687399796104 | etot = -33.5644508448433 +406000 ekin = 26.902674398225 | erot = 17.3519919760325 | epot = -77.8191172252429 | etot = -33.5644508509854 +407000 ekin = 26.7697793194821 | erot = 17.4151352557073 | epot = -77.7493654299019 | etot = -33.5644508547125 +408000 ekin = 26.4852107134516 | erot = 17.4599310842078 | epot = -77.5095926523416 | etot = -33.5644508546822 +409000 ekin = 26.0447937750069 | erot = 17.489715636437 | epot = -77.0989602629569 | etot = -33.5644508515129 +410000 ekin = 25.4686689668068 | erot = 17.525308599665 | epot = -76.5584284134685 | etot = -33.5644508469967 +411000 ekin = 24.7901856107123 | erot = 17.5925678630378 | epot = -75.9472043167211 | etot = -33.5644508429709 +412000 ekin = 24.0429450725907 | erot = 17.7112262982761 | epot = -75.3186222112118 | etot = -33.5644508403449 +413000 ekin = 23.2530709445256 | erot = 17.8904894596477 | epot = -74.7080112432066 | etot = -33.5644508390334 +414000 ekin = 22.4380957573478 | erot = 18.1309089877695 | epot = -74.1334555836572 | etot = -33.5644508385398 +415000 ekin = 21.6095002976116 | erot = 18.4284521142751 | epot = -73.602403250255 | etot = -33.5644508383683 +416000 ekin = 20.7759703157875 | erot = 18.7780315269414 | epot = -73.1184526809263 | etot = -33.5644508381974 +417000 ekin = 19.9459219947443 | erot = 19.1754390641456 | epot = -72.6858118967654 | etot = -33.5644508378755 +418000 ekin = 19.1290603146812 | erot = 19.6178812354861 | epot = -72.3113923875162 | etot = -33.5644508373488 +419000 ekin = 18.337241174772 | erot = 20.1037315119174 | epot = -72.0054235233031 | etot = -33.5644508366137 +420000 ekin = 17.5848708568132 | erot = 20.6319495840779 | epot = -71.7812712766011 | etot = -33.56445083571 +421000 ekin = 16.8888669767983 | erot = 21.2012508779721 | epot = -71.654568689522 | etot = -33.5644508347516 +422000 ekin = 16.2680311854784 | erot = 21.8088345390476 | epot = -71.6413165584825 | etot = -33.5644508339565 +423000 ekin = 15.7416423467535 | erot = 22.4484657014465 | epot = -71.7545588818543 | etot = -33.5644508336543 +424000 ekin = 15.3271568811325 | erot = 23.1079611162026 | epot = -71.9995688315969 | etot = -33.5644508342617 +425000 ekin = 15.0370245443348 | erot = 23.7664993128454 | epot = -72.3679746933972 | etot = -33.564450836217 +426000 ekin = 14.8748792453187 | erot = 24.3924933231442 | epot = -72.8318234082976 | etot = -33.5644508398346 +427000 ekin = 14.832039809902 | erot = 24.9432466995696 | epot = -73.3397373544821 | etot = -33.5644508450105 +428000 ekin = 14.8863924965724 | erot = 25.3682827941945 | epot = -73.8191261416202 | etot = -33.5644508508533 +429000 ekin = 15.0062259695096 | erot = 25.6182665544711 | epot = -74.1889433796231 | etot = -33.5644508556425 +430000 ekin = 15.1595389321706 | erot = 25.6590201133014 | epot = -74.3830099029893 | etot = -33.5644508575173 +431000 ekin = 15.3249133699301 | erot = 25.4851984008896 | epot = -74.3745626264541 | etot = -33.5644508556344 +432000 ekin = 15.4974987577291 | erot = 25.1253113466907 | epot = -74.1872609551818 | etot = -33.564450850762 +433000 ekin = 15.6867402477113 | erot = 24.6339851579825 | epot = -73.8851762504141 | etot = -33.5644508447203 +434000 ekin = 15.9084789524794 | erot = 24.0759117528502 | epot = -73.5488415445721 | etot = -33.5644508392426 +435000 ekin = 16.1769022059295 | erot = 23.5103596607615 | epot = -73.2517127019844 | etot = -33.5644508352934 +436000 ekin = 16.4997173059121 | erot = 22.982276516596 | epot = -73.0464446556282 | etot = -33.5644508331201 +437000 ekin = 16.8769806267692 | erot = 22.5199344326914 | epot = -72.9613658918858 | etot = -33.5644508324252 +438000 ekin = 17.3021259571189 | erot = 22.1372453982692 | epot = -73.0038221882045 | etot = -33.5644508328165 +439000 ekin = 17.7637229038904 | erot = 21.8373393625555 | epot = -73.1655131003915 | etot = -33.5644508339456 +440000 ekin = 18.2471223979642 | erot = 21.6157595595105 | epot = -73.4273327930288 | etot = -33.5644508355542 +441000 ekin = 18.7357201395202 | erot = 21.4628710845264 | epot = -73.7630420615274 | etot = -33.5644508374808 +442000 ekin = 19.2118878212758 | erot = 21.3654515420967 | epot = -74.1417902029639 | etot = -33.5644508395913 +443000 ekin = 19.6577318124847 | erot = 21.3079015376766 | epot = -74.53008419193 | etot = -33.5644508417687 +444000 ekin = 20.0558238633514 | erot = 21.2733344148632 | epot = -74.8936091221088 | etot = -33.5644508438943 +445000 ekin = 20.3899893912765 | erot = 21.2445884062657 | epot = -75.1990286433742 | etot = -33.564450845832 +446000 ekin = 20.6461236044623 | erot = 21.2052857367731 | epot = -75.4158601887455 | etot = -33.5644508475101 +447000 ekin = 20.8131102288242 | erot = 21.1405154512163 | epot = -75.5180765281394 | etot = -33.5644508480989 +448000 ekin = 20.8836321566285 | erot = 21.0415726580739 | epot = -75.4896556637134 | etot = -33.564450849011 +449000 ekin = 20.8549766397521 | erot = 20.9006105485552 | epot = -75.3200380377527 | etot = -33.5644508494454 +450000 ekin = 20.7289995990038 | erot = 20.7094982244637 | epot = -75.0029486728388 | etot = -33.5644508493713 +451000 ekin = 20.5121237021944 | erot = 20.4634057687326 | epot = -74.5399803196977 | etot = -33.5644508487708 +452000 ekin = 20.2152499009175 | erot = 20.1611428754593 | epot = -73.9408436240171 | etot = -33.5644508476403 +453000 ekin = 19.8534700766569 | erot = 19.8054562088314 | epot = -73.2233771314871 | etot = -33.5644508459988 +454000 ekin = 19.4456214293028 | erot = 19.4031472753521 | epot = -72.4132195485558 | etot = -33.5644508439009 +455000 ekin = 19.013720522958 | erot = 18.9648723131976 | epot = -71.5430436775731 | etot = -33.5644508414174 +456000 ekin = 18.5823093301098 | erot = 18.5046119868785 | epot = -70.6513721556565 | etot = -33.5644508386682 +457000 ekin = 18.1775784950835 | erot = 18.0385547552667 | epot = -69.78058408621 | etot = -33.5644508358598 +458000 ekin = 17.8262193053526 | erot = 17.5834820270548 | epot = -68.9741521653779 | etot = -33.5644508329705 +459000 ekin = 17.5544328315452 | erot = 17.1574115033618 | epot = -68.2762951652654 | etot = -33.5644508303584 +460000 ekin = 17.3857834994296 | erot = 16.7769882364438 | epot = -67.7272225641225 | etot = -33.5644508282491 +461000 ekin = 17.3389537757626 | erot = 16.455973724737 | epot = -67.3593783273661 | etot = -33.5644508268665 +462000 ekin = 17.4254421541841 | erot = 16.2041333991817 | epot = -67.1940263797602 | etot = -33.5644508263943 +463000 ekin = 17.6475549838229 | erot = 16.0264214063364 | epot = -67.2384272171003 | etot = -33.564450826941 +464000 ekin = 17.9971528391881 | erot = 15.9226257283447 | epot = -67.4842293960243 | etot = -33.5644508284914 +465000 ekin = 18.4555654856042 | erot = 15.8876205732821 | epot = -67.9076368897882 | etot = -33.5644508309019 +466000 ekin = 18.994833816268 | erot = 15.9122553308001 | epot = -68.4715399809881 | etot = -33.56445083392 +467000 ekin = 19.5800987880665 | erot = 15.9847161184822 | epot = -69.1292657437925 | etot = -33.5644508372437 +468000 ekin = 20.1726645576357 | erot = 16.092033474867 | epot = -69.8291488730892 | etot = -33.5644508405865 +469000 ekin = 20.7331520539173 | erot = 16.2213910260308 | epot = -70.5189939236682 | etot = -33.5644508437201 +470000 ekin = 21.2242791251891 | erot = 16.3610502015494 | epot = -71.1497801732201 | etot = -33.5644508464816 +471000 ekin = 21.6130740295016 | erot = 16.5009517692281 | epot = -71.6784766474807 | etot = -33.5644508487511 +472000 ekin = 21.8725913830426 | erot = 16.6332178546314 | epot = -72.0702600880887 | etot = -33.5644508504148 +473000 ekin = 21.9833185471591 | erot = 16.7527436323979 | epot = -72.3005130309141 | etot = -33.5644508513571 +474000 ekin = 21.9344099206197 | erot = 16.8578720765084 | epot = -72.3567328486035 | etot = -33.5644508514753 +475000 ekin = 21.7247480854268 | erot = 16.9509439426178 | epot = -72.2401428787492 | etot = -33.5644508507046 +476000 ekin = 21.3637036554458 | erot = 17.0384540155613 | epot = -71.9666085200589 | etot = -33.5644508490518 +477000 ekin = 20.8713853163245 | erot = 17.1305938642667 | epot = -71.5664300271903 | etot = -33.5644508465991 +478000 ekin = 20.278105615873 | erot = 17.2401904856046 | epot = -71.0827469450555 | etot = -33.5644508435779 +479000 ekin = 19.6228148922665 | erot = 17.3807417056378 | epot = -70.568007438203 | etot = -33.5644508402987 +480000 ekin = 18.9501924820064 | erot = 17.5641098022629 | epot = -70.0787531214702 | etot = -33.5644508372009 +481000 ekin = 18.3063999207717 | erot = 17.7978626898958 | epot = -69.6687134454551 | etot = -33.5644508347876 +482000 ekin = 17.7338800308325 | erot = 18.0826185785594 | epot = -69.3809494429303 | etot = -33.5644508335384 +483000 ekin = 17.2661333869276 | erot = 18.4098565339483 | epot = -69.240440754661 | etot = -33.5644508337851 +484000 ekin = 16.9123469725788 | erot = 18.5839236849874 | epot = -69.0607216152016 | etot = -33.5644509576354 +485000 ekin = 17.2473052114824 | erot = 17.4463141951386 | epot = -68.2580700313457 | etot = -33.5644506247246 +486000 ekin = 18.3155143091698 | erot = 17.1832730976792 | epot = -69.0632384225994 | etot = -33.5644510157505 +487000 ekin = 18.1324826614411 | erot = 17.2801627137661 | epot = -68.97709615336 | etot = -33.5644507781527 +488000 ekin = 18.065066671032 | erot = 17.4264266856946 | epot = -69.0559441347504 | etot = -33.5644507780238 +489000 ekin = 18.1230207571896 | erot = 17.62013699274 | epot = -69.3076085290087 | etot = -33.5644507790791 +490000 ekin = 18.2959502060246 | erot = 17.8551924365762 | epot = -69.7155934233775 | etot = -33.5644507807768 +491000 ekin = 18.5602651979885 | erot = 18.1239992625185 | epot = -70.2487152439638 | etot = -33.5644507834568 +492000 ekin = 18.8855238698909 | erot = 18.4159985147992 | epot = -70.8659731703599 | etot = -33.5644507856698 +493000 ekin = 19.2395352565568 | erot = 18.728264479198 | epot = -71.5322505227183 | etot = -33.5644507869634 +494000 ekin = 19.5921246700955 | erot = 19.0689157919617 | epot = -72.2254912499723 | etot = -33.564450787915 +495000 ekin = 19.0728202093635 | erot = 18.9158482409358 | epot = -71.553118977483 | etot = -33.5644505271837 +496000 ekin = 19.8797920565295 | erot = 18.7380967908333 | epot = -72.1823393794609 | etot = -33.5644505320982 +497000 ekin = 21.3129327566087 | erot = 19.2208596910155 | epot = -74.0982428018017 | etot = -33.5644503541775 +498000 ekin = 21.3264694811286 | erot = 19.7980335585692 | epot = -74.6889533936585 | etot = -33.5644503539607 +499000 ekin = 21.2778907742156 | erot = 20.4793064458065 | epot = -75.3216475743002 | etot = -33.5644503542781 +500000 ekin = 21.1661916282903 | erot = 21.2581781223902 | epot = -75.988820105787 | etot = -33.5644503551065 +501000 ekin = 20.9926825375652 | erot = 22.1178388255783 | epot = -76.6749717195959 | etot = -33.5644503564525 +502000 ekin = 20.7610606941479 | erot = 23.0317414653473 | epot = -77.3572525175607 | etot = -33.5644503580655 +503000 ekin = 20.4798770188399 | erot = 23.9650377707536 | epot = -78.0093651497042 | etot = -33.5644503601106 +504000 ekin = 20.1546807719764 | erot = 24.8789199645846 | epot = -78.5980510989298 | etot = -33.5644503623688 +505000 ekin = 19.7897861052766 | erot = 25.7326258924132 | epot = -79.0868623624994 | etot = -33.5644503648096 +506000 ekin = 19.3875459003549 | erot = 26.4882337371013 | epot = -79.4402300038003 | etot = -33.564450366344 +507000 ekin = 18.9527707503713 | erot = 27.1161379584882 | epot = -79.6333590756734 | etot = -33.5644503668138 +508000 ekin = 18.4930541127617 | erot = 27.6003825990922 | epot = -79.6578870777478 | etot = -33.5644503658939 +509000 ekin = 18.0182547166152 | erot = 27.9414911095304 | epot = -79.5241961902308 | etot = -33.5644503640852 +510000 ekin = 17.5239659446583 | erot = 28.1499521523349 | epot = -79.2383684583427 | etot = -33.5644503613495 +511000 ekin = 17.0202767588224 | erot = 28.2490270330593 | epot = -78.8337541499512 | etot = -33.5644503580695 +512000 ekin = 16.5245718006517 | erot = 28.2698315419544 | epot = -78.3588536974674 | etot = -33.5644503548613 +513000 ekin = 16.0539184296555 | erot = 28.2435719405511 | epot = -77.8619407224233 | etot = -33.5644503522167 +514000 ekin = 15.6229539751463 | erot = 28.1963871950865 | epot = -77.3837915206358 | etot = -33.564450350403 +515000 ekin = 15.2424792420144 | erot = 28.1464443105655 | epot = -76.9533739021307 | etot = -33.5644503495508 +516000 ekin = 14.9188926056263 | erot = 28.102754035252 | epot = -76.5860969902898 | etot = -33.5644503494115 +517000 ekin = 14.6543809151572 | erot = 28.0678237290645 | epot = -76.286654994032 | etot = -33.5644503498102 +518000 ekin = 14.4476572455448 | erot = 28.0395642675265 | epot = -76.0516718635495 | etot = -33.5644503504781 +519000 ekin = 14.2950490439313 | erot = 28.0138489409074 | epot = -75.8733483359815 | etot = -33.5644503511427 +520000 ekin = 14.1917488336712 | erot = 27.9870813583917 | epot = -75.7432805436438 | etot = -33.564450351581 +521000 ekin = 14.1329830510129 | erot = 27.9581295478616 | epot = -75.6555629505529 | etot = -33.5644503516784 +522000 ekin = 14.1002586402904 | erot = 27.7732671764717 | epot = -75.4379761963452 | etot = -33.5644503795831 +523000 ekin = 14.1969588160089 | erot = 27.1027118580652 | epot = -74.8641209749246 | etot = -33.5644503008506 +524000 ekin = 14.7378402614501 | erot = 26.616408914504 | epot = -74.9186994724366 | etot = -33.5644502964825 +525000 ekin = 15.506867285083 | erot = 26.5883544533635 | epot = -75.6596721107952 | etot = -33.5644503723486 +526000 ekin = 15.8574449977295 | erot = 26.6724957238465 | epot = -76.0943910941999 | etot = -33.5644503726239 +527000 ekin = 16.0112069682755 | erot = 26.735509894999 | epot = -76.3111672365705 | etot = -33.5644503732961 +528000 ekin = 16.1641744091399 | erot = 26.794797881151 | epot = -76.5234226642097 | etot = -33.5644503739187 +529000 ekin = 16.3159009762014 | erot = 26.8380825380496 | epot = -76.7184338885631 | etot = -33.564450374312 +530000 ekin = 16.4667477211871 | erot = 26.8553312025443 | epot = -76.8865292981414 | etot = -33.5644503744099 +531000 ekin = 16.6177352356877 | erot = 26.8400251085783 | epot = -77.0222107185202 | etot = -33.5644503742542 +532000 ekin = 16.770215067808 | erot = 26.7891084873303 | epot = -77.1237739290464 | etot = -33.5644503739081 +533000 ekin = 16.9253640369286 | erot = 26.7024973873184 | epot = -77.1923117977069 | etot = -33.5644503734599 +534000 ekin = 17.083644786901 | erot = 26.5822176528864 | epot = -77.2303128128235 | etot = -33.5644503730361 +535000 ekin = 17.2444487917795 | erot = 26.4310079588738 | epot = -77.2399071233944 | etot = -33.5644503727411 +536000 ekin = 17.4060591056372 | erot = 26.2510049056998 | epot = -77.2215143839431 | etot = -33.5644503726061 +537000 ekin = 17.565899198427 | erot = 26.0431264908893 | epot = -77.1734760618753 | etot = -33.5644503725589 +538000 ekin = 17.7209415439151 | erot = 25.807444121848 | epot = -77.0928360383798 | etot = -33.5644503726168 +539000 ekin = 17.8681497081321 | erot = 25.5433035299374 | epot = -76.9759036107203 | etot = -33.5644503726507 +540000 ekin = 18.0048631565718 | erot = 25.2502517038857 | epot = -76.8195652330541 | etot = -33.5644503725966 +541000 ekin = 18.129064827171 | erot = 24.9288645877469 | epot = -76.6223797873357 | etot = -33.5644503724178 +542000 ekin = 18.2395164939016 | erot = 24.5811691615965 | epot = -76.3851360275838 | etot = -33.5644503720856 +543000 ekin = 18.3357700080052 | erot = 24.210846834268 | epot = -76.1110672139389 | etot = -33.5644503716657 +544000 ekin = 18.4180615073977 | erot = 23.8229131244208 | epot = -75.8054250029922 | etot = -33.5644503711738 +545000 ekin = 18.48709013 | erot = 23.4236993423704 | epot = -75.475239842524 | etot = -33.5644503701536 +546000 ekin = 18.5436104708162 | erot = 23.023272620427 | epot = -75.1313334610026 | etot = -33.5644503697594 +547000 ekin = 18.5881260728255 | erot = 22.6282216102247 | epot = -74.780798052539 | etot = -33.5644503694888 +548000 ekin = 18.6206521539779 | erot = 22.2431161969749 | epot = -74.4282187199115 | etot = -33.5644503689587 +549000 ekin = 18.6395328552822 | erot = 21.8731131587291 | epot = -74.0770963833356 | etot = -33.5644503693243 +550000 ekin = 18.6420012526372 | erot = 21.5194517195331 | epot = -73.7259033420982 | etot = -33.5644503699279 +551000 ekin = 18.6249210292856 | erot = 21.1784779028361 | epot = -73.3678493028498 | etot = -33.5644503707282 +552000 ekin = 18.5841928768992 | erot = 20.8452278495212 | epot = -72.9938710980166 | etot = -33.5644503715962 +553000 ekin = 18.515212705724 | erot = 20.5148731368217 | epot = -72.5945362148738 | etot = -33.5644503723281 +554000 ekin = 18.4136816909966 | erot = 20.1848933331084 | epot = -72.1630253967881 | etot = -33.5644503726831 +555000 ekin = 18.2766906401233 | erot = 19.857476932628 | epot = -71.6986179451961 | etot = -33.5644503724447 +556000 ekin = 18.1040115049041 | erot = 19.5406874735951 | epot = -71.20914935019 | etot = -33.5644503716908 +557000 ekin = 17.8992309647499 | erot = 19.2497226287959 | epot = -70.7134039634794 | etot = -33.5644503699335 +558000 ekin = 17.6705778374572 | erot = 19.0080857253366 | epot = -70.2431139302706 | etot = -33.5644503674768 +559000 ekin = 17.4315653927809 | erot = 18.8444628123191 | epot = -69.8404785695829 | etot = -33.5644503644829 +560000 ekin = 17.2006230348878 | erot = 18.7901643782654 | epot = -69.5552377744807 | etot = -33.5644503613275 +561000 ekin = 16.9995569160732 | erot = 18.8749610237664 | epot = -69.438968298262 | etot = -33.5644503584223 +562000 ekin = 16.8505251060201 | erot = 19.1232120100743 | epot = -69.538187472407 | etot = -33.5644503563126 +563000 ekin = 16.7718160200182 | erot = 19.5498137335684 | epot = -69.8860801091477 | etot = -33.5644503555612 +564000 ekin = 16.7730284254869 | erot = 20.1561760612857 | epot = -70.4936548437135 | etot = -33.564450356941 +565000 ekin = 16.8503463818591 | erot = 20.9261148982968 | epot = -71.3409116403028 | etot = -33.5644503601468 +566000 ekin = 16.9881817954648 | erot = 21.8252877510101 | epot = -72.3779199117371 | etot = -33.5644503652621 +567000 ekin = 17.1597730194767 | erot = 22.8021750341433 | epot = -73.5263984254872 | etot = -33.5644503718672 +568000 ekin = 17.3309908966704 | erot = 23.7909429898642 | epot = -74.6863842658269 | etot = -33.5644503792923 +569000 ekin = 17.4658946017947 | erot = 24.7167318453097 | epot = -75.7470768337898 | etot = -33.5644503866854 +570000 ekin = 17.5327796656957 | erot = 25.5030724456584 | epot = -76.6003025044407 | etot = -33.5644503930867 +571000 ekin = 17.5098280200956 | erot = 26.0808668137263 | epot = -77.1551452313793 | etot = -33.5644503975575 +572000 ekin = 17.3896134298641 | erot = 26.3976580231972 | epot = -77.3517218524132 | etot = -33.5644503993519 +573000 ekin = 17.1817696520727 | erot = 26.4252545062395 | epot = -77.1714745564325 | etot = -33.5644503981203 +574000 ekin = 16.9132012155478 | erot = 26.1636856780794 | epot = -76.6413372876784 | etot = -33.5644503940512 +575000 ekin = 16.6253831480204 | erot = 25.6401831359933 | epot = -75.8300166719201 | etot = -33.5644503879064 +576000 ekin = 16.380585448721 | erot = 24.9437607561783 | epot = -74.8887965737009 | etot = -33.5644503688016 +577000 ekin = 16.2309295888517 | erot = 24.1552332190076 | epot = -73.9506131738505 | etot = -33.5644503659912 +578000 ekin = 16.2003426792014 | erot = 23.2996785341935 | epot = -73.0644715774378 | etot = -33.5644503640429 +579000 ekin = 16.2983938260692 | erot = 22.403268564264 | epot = -72.2661127535552 | etot = -33.564450363222 +580000 ekin = 16.5164282817949 | erot = 21.4889399504527 | epot = -71.5698185979652 | etot = -33.5644503657176 +581000 ekin = 16.8294131729517 | erot = 20.5770732253488 | epot = -70.9709367638666 | etot = -33.5644503655661 +582000 ekin = 17.2014342865815 | erot = 19.7085617423075 | epot = -70.4744463947337 | etot = -33.5644503658447 +583000 ekin = 17.5894541379175 | erot = 18.9251667746001 | epot = -70.0790712786264 | etot = -33.5644503661089 +584000 ekin = 17.9521233670864 | erot = 18.2657373645481 | epot = -69.7823110977226 | etot = -33.5644503660881 +585000 ekin = 18.2577014583726 | erot = 17.7627566558239 | epot = -69.5849084798981 | etot = -33.5644503657016 +586000 ekin = 18.4890373219802 | erot = 17.4391816025382 | epot = -69.4926692894764 | etot = -33.564450364958 +587000 ekin = 18.6451700996557 | erot = 17.3070654479175 | epot = -69.5166859114532 | etot = -33.56445036388 +588000 ekin = 18.7400423388426 | erot = 17.3682960794591 | epot = -69.6727887808625 | etot = -33.5644503625608 +589000 ekin = 18.7988289995881 | erot = 17.6163757903826 | epot = -69.9796551512482 | etot = -33.5644503612775 +590000 ekin = 18.8521852512136 | erot = 18.0377077417099 | epot = -70.4543433534176 | etot = -33.5644503604942 +591000 ekin = 18.9335216734591 | erot = 18.6145318738827 | epot = -71.1125039068147 | etot = -33.5644503594728 +592000 ekin = 19.0736372367424 | erot = 19.3273958987853 | epot = -71.9654834959436 | etot = -33.5644503604159 +593000 ekin = 19.2836835998251 | erot = 20.1464047126482 | epot = -72.9945386752994 | etot = -33.5644503628261 +594000 ekin = 19.5596584182911 | erot = 21.034123237702 | epot = -74.1582320224138 | etot = -33.5644503664207 +595000 ekin = 19.8847224289421 | erot = 21.9477887878841 | epot = -75.3969615874945 | etot = -33.5644503706683 +596000 ekin = 20.2229995980596 | erot = 22.8321032481879 | epot = -76.6195532314308 | etot = -33.5644503851833 +597000 ekin = 20.5134057747578 | erot = 23.6125551263639 | epot = -77.690411290674 | etot = -33.5644503895523 +598000 ekin = 20.7238255187825 | erot = 24.2466753991533 | epot = -78.5349513101318 | etot = -33.564450392196 +599000 ekin = 20.8326105241634 | erot = 24.7094660562249 | epot = -79.1065269733091 | etot = -33.5644503929208 +600000 ekin = 20.8281928837872 | erot = 24.9942677730575 | epot = -79.3869110487785 | etot = -33.5644503919338 +601000 ekin = 20.7081769101586 | erot = 25.1108515584272 | epot = -79.3834788582876 | etot = -33.5644503897018 +602000 ekin = 20.4770754644872 | erot = 25.0812117067637 | epot = -79.1227375580319 | etot = -33.564450386781 +603000 ekin = 20.1436196145649 | erot = 24.9343592774281 | epot = -78.642429275663 | etot = -33.5644503836701 +604000 ekin = 19.718418586643 | erot = 24.7015463496202 | epot = -77.9844153169741 | etot = -33.5644503807109 +605000 ekin = 19.2123955084805 | erot = 24.4128183909086 | epot = -77.1896642774627 | etot = -33.5644503780737 +606000 ekin = 18.6360571568103 | erot = 24.0951290270779 | epot = -76.2956365596783 | etot = -33.5644503757901 +607000 ekin = 17.9994317315232 | erot = 23.7717793966555 | epot = -75.3356615019793 | etot = -33.5644503738006 +608000 ekin = 17.3124228754835 | erot = 23.4627525856982 | epot = -74.3396258331827 | etot = -33.5644503720009 +609000 ekin = 16.5853412867126 | erot = 23.1855122482213 | epot = -73.3353039052169 | etot = -33.5644503702829 +610000 ekin = 15.8294285552829 | erot = 22.9559130662675 | epot = -72.349791990107 | etot = -33.5644503685566 +611000 ekin = 15.0572484570073 | erot = 22.7889597209054 | epot = -71.4106585446845 | etot = -33.5644503667718 +612000 ekin = 14.2829782525896 | erot = 22.6991649599953 | epot = -70.5465935774999 | etot = -33.564450364915 +613000 ekin = 13.5233158608979 | erot = 22.7018063034666 | epot = -69.789572526273 | etot = -33.5644503619085 +614000 ekin = 12.7974443554635 | erot = 22.8128628324568 | epot = -69.1747575482518 | etot = -33.5644503603315 +615000 ekin = 12.1222485230176 | erot = 23.0409824260638 | epot = -68.727681308147 | etot = -33.5644503590656 +616000 ekin = 11.5143476716423 | erot = 23.3894333510186 | epot = -68.468231381177 | etot = -33.5644503585161 +617000 ekin = 10.9895105320919 | erot = 23.8529820645469 | epot = -68.4069429553071 | etot = -33.5644503586684 +618000 ekin = 10.562142737904 | erot = 24.4166592385434 | epot = -68.5432523362142 | etot = -33.5644503597668 +619000 ekin = 10.2447233169864 | erot = 25.053936124725 | epot = -68.8631098035728 | etot = -33.5644503618614 +620000 ekin = 10.0473729684105 | erot = 25.7263958146269 | epot = -69.3382191478437 | etot = -33.5644503648063 +621000 ekin = 9.97770919372447 | erot = 26.386029455057 | epot = -69.9281890170002 | etot = -33.5644503682187 +622000 ekin = 10.0410058298604 | erot = 26.9805251344677 | epot = -70.5859813358563 | etot = -33.5644503715282 +623000 ekin = 10.2405907653606 | erot = 27.4608678076243 | epot = -71.265908947125 | etot = -33.5644503741401 +624000 ekin = 10.5781077618222 | erot = 27.789174960281 | epot = -71.9317330977985 | etot = -33.5644503756953 +625000 ekin = 11.0534790507876 | erot = 27.9443540029372 | epot = -72.5622834297716 | etot = -33.5644503760469 +626000 ekin = 11.665023962676 | erot = 27.9236660630966 | epot = -73.153140401212 | etot = -33.5644503754394 +627000 ekin = 12.4090657095855 | erot = 27.7401487506199 | epot = -73.7136648344174 | etot = -33.564450374212 +628000 ekin = 13.2797303352362 | erot = 27.4180442687031 | epot = -74.2622249766746 | etot = -33.5644503727353 +629000 ekin = 14.2227247828091 | erot = 26.9288523650796 | epot = -74.716027794269 | etot = -33.5644506463803 +630000 ekin = 14.6371369670079 | erot = 25.6849986219067 | epot = -73.8865860644015 | etot = -33.5644504754868 +631000 ekin = 15.1932748253831 | erot = 24.8015291116418 | epot = -73.5592542941192 | etot = -33.5644503570943 +632000 ekin = 16.584223183011 | erot = 25.1927867331162 | epot = -75.341460399694 | etot = -33.5644504835668 +633000 ekin = 18.1129981078216 | erot = 25.8399990857076 | epot = -77.5174478439555 | etot = -33.5644506504263 +634000 ekin = 19.1483265856614 | erot = 25.7387528535892 | epot = -78.4515299890265 | etot = -33.564450549776 +635000 ekin = 20.1638306106813 | erot = 25.6154971447985 | epot = -79.3437783094146 | etot = -33.5644505539348 +636000 ekin = 21.1529452215294 | erot = 25.4927802223992 | epot = -80.2101760029174 | etot = -33.5644505589887 +637000 ekin = 22.076840414127 | erot = 25.3376757551748 | epot = -80.9789667330327 | etot = -33.5644505637309 +638000 ekin = 22.8998086513204 | erot = 25.1175243534268 | epot = -81.5817835716912 | etot = -33.564450566944 +639000 ekin = 23.5958452423371 | erot = 24.810324027069 | epot = -81.970619837404 | etot = -33.5644505679979 +640000 ekin = 24.1448393959509 | erot = 24.4104070773779 | epot = -82.1196970414061 | etot = -33.5644505680774 +641000 ekin = 24.5337741528747 | erot = 23.9290519069577 | epot = -82.0272766245586 | etot = -33.5644505647262 +642000 ekin = 24.7698696452211 | erot = 23.3958020412245 | epot = -81.7301222481214 | etot = -33.5644505616758 +643000 ekin = 24.8669267986387 | erot = 22.8392829406438 | epot = -81.270660298016 | etot = -33.5644505587335 +644000 ekin = 24.8431155056926 | erot = 22.2830723080152 | epot = -80.6906383699449 | etot = -33.5644505562371 +645000 ekin = 24.7193046979039 | erot = 21.7428697624476 | epot = -80.0266250145381 | etot = -33.5644505541866 +646000 ekin = 24.5180931827109 | erot = 21.2270132547761 | epot = -79.3095569899392 | etot = -33.5644505524521 +647000 ekin = 24.2628521130092 | erot = 20.7388201342314 | epot = -78.5661227982078 | etot = -33.5644505509672 +648000 ekin = 23.9761808135735 | erot = 20.2787945271196 | epot = -77.8194258904783 | etot = -33.5644505497851 +649000 ekin = 23.67787365498 | erot = 19.8458221792402 | epot = -77.0881463832164 | etot = -33.5644505489962 +650000 ekin = 23.3831896135476 | erot = 19.4375683304372 | epot = -76.3852084925965 | etot = -33.5644505486117 +651000 ekin = 23.1045251387838 | erot = 19.0455994386645 | epot = -75.714575126721 | etot = -33.5644505492727 +652000 ekin = 22.852554089729 | erot = 18.660058243978 | epot = -75.0770628826327 | etot = -33.5644505489257 +653000 ekin = 22.6343633028422 | erot = 18.2797742486811 | epot = -74.4785880997844 | etot = -33.5644505482611 +654000 ekin = 22.457706160496 | erot = 17.9066943677479 | epot = -73.9288510753647 | etot = -33.5644505471209 +655000 ekin = 22.3323244895908 | erot = 17.5466477598824 | epot = -73.4434227950449 | etot = -33.5644505455717 +656000 ekin = 22.2694639392795 | erot = 17.2090068009683 | epot = -73.0429212841433 | etot = -33.5644505438955 +657000 ekin = 22.2796962944035 | erot = 16.9050137475 | epot = -72.7491605844585 | etot = -33.564450542555 +658000 ekin = 22.3696390695847 | erot = 16.644764495761 | epot = -72.578854107433 | etot = -33.5644505420873 +659000 ekin = 22.538589477759 | erot = 16.4332539543396 | epot = -72.5362939750541 | etot = -33.5644505429556 +660000 ekin = 22.7761662587416 | erot = 16.2664693862647 | epot = -72.6070861903694 | etot = -33.5644505453631 +661000 ekin = 23.06230224551 | erot = 16.1290340508052 | epot = -72.7557868430349 | etot = -33.5644505467196 +662000 ekin = 23.3837240385233 | erot = 15.9907831586697 | epot = -72.9389579078995 | etot = -33.5644507107065 +663000 ekin = 23.0541480011267 | erot = 16.1177804885964 | epot = -72.7363790496029 | etot = -33.5644505598799 +664000 ekin = 22.9781515363897 | erot = 16.5698259347579 | epot = -73.1124281192206 | etot = -33.5644506480731 +665000 ekin = 23.374978691534 | erot = 16.4117827405633 | epot = -73.3512120004714 | etot = -33.5644505683742 +666000 ekin = 23.7239501856893 | erot = 16.0357448198421 | epot = -73.3241455722274 | etot = -33.5644505666959 +667000 ekin = 24.0215049450261 | erot = 15.6311856369932 | epot = -73.2171411449521 | etot = -33.5644505629329 +668000 ekin = 24.2720292277934 | erot = 15.2431977237525 | epot = -73.0796775108255 | etot = -33.5644505592796 +669000 ekin = 24.4823401844299 | erot = 14.9164487057863 | epot = -72.9632394465769 | etot = -33.5644505563607 +670000 ekin = 24.6591929169718 | erot = 14.6865199574777 | epot = -72.9101634287588 | etot = -33.5644505543093 +671000 ekin = 24.7891522546301 | erot = 14.5781166473157 | epot = -72.9317194579636 | etot = -33.5644505560177 +672000 ekin = 24.8512867496603 | erot = 14.6015183439962 | epot = -73.0172556489739 | etot = -33.5644505553173 +673000 ekin = 24.8569569355798 | erot = 14.7562217137542 | epot = -73.1776292039339 | etot = -33.5644505545999 +674000 ekin = 24.8222537580567 | erot = 15.0373554087232 | epot = -73.4240597206098 | etot = -33.5644505538298 +675000 ekin = 24.7663204260849 | erot = 15.437295119434 | epot = -73.7680660987755 | etot = -33.5644505532566 +676000 ekin = 24.707973141147 | erot = 15.9453732713287 | epot = -74.2177969658379 | etot = -33.5644505533623 +677000 ekin = 24.660603838739 | erot = 16.5455776357113 | epot = -74.7706320292609 | etot = -33.5644505548106 +678000 ekin = 24.6267378747401 | erot = 17.2129758015017 | epot = -75.4041642342705 | etot = -33.5644505580287 +679000 ekin = 24.5940505550725 | erot = 17.9117017662871 | epot = -76.07020288433 | etot = -33.5644505629703 +680000 ekin = 24.5356055096688 | erot = 18.5957689108381 | epot = -76.6958249893355 | etot = -33.5644505688286 +681000 ekin = 24.4156570895309 | erot = 19.2149559854727 | epot = -77.1950636491504 | etot = -33.5644505741468 +682000 ekin = 24.1989519849675 | erot = 19.7242966838354 | epot = -77.4876992464688 | etot = -33.564450577666 +683000 ekin = 23.8604728477913 | erot = 20.0938581667108 | epot = -77.5187815925336 | etot = -33.5644505780315 +684000 ekin = 23.3975557786275 | erot = 20.3180971806807 | epot = -77.2801035347717 | etot = -33.5644505754635 +685000 ekin = 22.8290459836148 | erot = 20.4129669387004 | epot = -76.80646349322 | etot = -33.5644505709048 +686000 ekin = 22.1833688822011 | erot = 20.3969948279682 | epot = -76.1448143063362 | etot = -33.5644505961669 +687000 ekin = 21.4529188815913 | erot = 20.156733845752 | epot = -75.1741032924797 | etot = -33.5644505651364 +688000 ekin = 20.8420414151281 | erot = 19.8330340922101 | epot = -74.2395260487824 | etot = -33.5644505414442 +689000 ekin = 20.4850454817099 | erot = 19.6177759053663 | epot = -73.6672719440564 | etot = -33.5644505569803 +690000 ekin = 20.2236705266713 | erot = 19.4736760202794 | epot = -73.2617971242667 | etot = -33.564450577316 +691000 ekin = 19.9277329712649 | erot = 19.3525548964651 | epot = -72.8447384060534 | etot = -33.5644505383235 +692000 ekin = 19.7615779525566 | erot = 19.3271485933787 | epot = -72.6531770837385 | etot = -33.5644505378033 +693000 ekin = 19.7317397129722 | erot = 19.4147876345959 | epot = -72.7109778863946 | etot = -33.5644505388264 +694000 ekin = 19.8186070325243 | erot = 19.6208277624943 | epot = -73.0038853362896 | etot = -33.564450541271 +695000 ekin = 19.9894250231729 | erot = 19.9418771486032 | epot = -73.4957527165321 | etot = -33.564450544756 +696000 ekin = 20.2029739946799 | erot = 20.3669312876596 | epot = -74.1343558309875 | etot = -33.564450548648 +697000 ekin = 20.4154400731731 | erot = 20.8809193025054 | epot = -74.8608099281222 | etot = -33.5644505524438 +698000 ekin = 20.586206730696 | erot = 21.4669039267717 | epot = -75.6175612131891 | etot = -33.5644505557214 +699000 ekin = 20.6825995319384 | erot = 22.1076466775274 | epot = -76.3546967677076 | etot = -33.5644505582417 +700000 ekin = 20.6830084845855 | erot = 22.7863311628684 | epot = -77.0337902073835 | etot = -33.5644505599297 +701000 ekin = 20.5781931485901 | erot = 23.4865818275485 | epot = -77.6292255369506 | etot = -33.564450560812 +702000 ekin = 20.371075430213 | erot = 24.1923776502136 | epot = -78.1279036413659 | etot = -33.5644505609394 +703000 ekin = 20.0753347573217 | erot = 24.8884672573789 | epot = -78.5282525750727 | etot = -33.5644505603721 +704000 ekin = 19.7130379606064 | erot = 25.5614200071491 | epot = -78.8389085269638 | etot = -33.5644505592083 +705000 ekin = 19.3114467594506 | erot = 26.2008176331446 | epot = -79.0767149502457 | etot = -33.5644505576504 +706000 ekin = 18.8991937909467 | erot = 26.7996687741907 | epot = -79.2633131211814 | etot = -33.564450556044 +707000 ekin = 18.5022273003166 | erot = 27.3532672615511 | epot = -79.4199451167072 | etot = -33.5644505548395 +708000 ekin = 18.1401729285463 | erot = 27.8564307011234 | epot = -79.5610541841487 | etot = -33.5644505544791 +709000 ekin = 17.8234464183816 | erot = 28.2999901850205 | epot = -79.6878871586751 | etot = -33.564450555273 +710000 ekin = 17.5523632004475 | erot = 28.6678464680811 | epot = -79.7846602257444 | etot = -33.5644505572158 +711000 ekin = 17.3194109792864 | erot = 28.9359249914519 | epot = -79.8197865307446 | etot = -33.5644505600063 +712000 ekin = 17.111217474036 | erot = 29.0741670969728 | epot = -79.7498351340657 | etot = -33.5644505630569 +713000 ekin = 16.9121266187594 | erot = 29.0513180276171 | epot = -79.5278952119951 | etot = -33.5644505656186 +714000 ekin = 16.7079630651497 | erot = 28.8416092702073 | epot = -79.1140229023543 | etot = -33.5644505669974 +715000 ekin = 16.4890214395501 | erot = 28.4313561614791 | epot = -78.4848281678324 | etot = -33.5644505668032 +716000 ekin = 16.2513970064722 | erot = 27.8230898676209 | epot = -77.6389374391847 | etot = -33.5644505650916 +717000 ekin = 15.9963403713229 | erot = 27.0356716306523 | epot = -76.596462564269 | etot = -33.5644505622939 +718000 ekin = 15.736130323464 | erot = 26.1105494903108 | epot = -75.4111303700896 | etot = -33.5644505563148 +719000 ekin = 15.4991442318496 | erot = 25.1078869419086 | epot = -74.1714817285169 | etot = -33.5644505547587 +720000 ekin = 15.2869109972121 | erot = 24.0511182750597 | epot = -72.9024798253532 | etot = -33.5644505530814 +721000 ekin = 15.0983958358413 | erot = 22.9636187898412 | epot = -71.626465177062 | etot = -33.5644505513795 +722000 ekin = 14.9325120649955 | erot = 21.8688846290998 | epot = -70.3658472463797 | etot = -33.5644505522845 +723000 ekin = 14.7807572554272 | erot = 20.7831774063264 | epot = -69.1283852119052 | etot = -33.5644505501515 +724000 ekin = 14.6422909693862 | erot = 19.7295658945069 | epot = -67.9363074121321 | etot = -33.5644505482389 +725000 ekin = 14.5216204989736 | erot = 18.7315290196227 | epot = -66.8176000651018 | etot = -33.5644505465054 +726000 ekin = 14.4243651447115 | erot = 17.809249661836 | epot = -65.7980653514567 | etot = -33.5644505449092 +727000 ekin = 14.3569475468078 | erot = 16.9804196358499 | epot = -64.9018177260886 | etot = -33.5644505434309 +728000 ekin = 14.2536930560822 | erot = 16.2469828256636 | epot = -64.0651265321117 | etot = -33.5644506503659 +729000 ekin = 13.8457257245456 | erot = 15.9222518563763 | epot = -63.3324280816472 | etot = -33.5644505007253 +730000 ekin = 14.0260810346084 | erot = 15.9641149760264 | epot = -63.5546467080333 | etot = -33.5644506973986 +731000 ekin = 14.2598526192304 | erot = 15.8407237762752 | epot = -63.6650270930514 | etot = -33.5644506975458 +732000 ekin = 14.5606957103586 | erot = 15.8547631013359 | epot = -63.9799095104338 | etot = -33.5644506987393 +733000 ekin = 14.9193813445856 | erot = 16.0002143189837 | epot = -64.4840463647582 | etot = -33.5644507011889 +734000 ekin = 15.3191392245689 | erot = 16.2611439993741 | epot = -65.1447339288827 | etot = -33.5644507049397 +735000 ekin = 15.7356019022088 | erot = 16.6113471095831 | epot = -65.911399721546 | etot = -33.5644507097541 +736000 ekin = 16.1415246409903 | erot = 17.0234641329184 | epot = -66.7294394826049 | etot = -33.5644507086962 +737000 ekin = 16.518605610539 | erot = 17.489586803014 | epot = -67.5726431258992 | etot = -33.5644507123462 +738000 ekin = 16.8458492119022 | erot = 17.9860152352149 | epot = -68.396315162061 | etot = -33.5644507149439 +739000 ekin = 17.110149866212 | erot = 18.4929848438385 | epot = -69.1675854260346 | etot = -33.5644507159841 +740000 ekin = 17.3014321683493 | erot = 18.9830167808933 | epot = -69.8488996814749 | etot = -33.5644507322323 +741000 ekin = 17.3865900134394 | erot = 19.3806296464369 | epot = -70.3316703915551 | etot = -33.5644507316788 +742000 ekin = 17.3696644724057 | erot = 19.6766235522529 | epot = -70.6107387544097 | etot = -33.564450729751 +743000 ekin = 17.2668900438488 | erot = 19.8790967510142 | epot = -70.7104375221209 | etot = -33.564450727258 +744000 ekin = 17.0976280300632 | erot = 20.0010316334553 | epot = -70.6631103882319 | etot = -33.5644507247133 +745000 ekin = 16.8806625311108 | erot = 20.0570550573562 | epot = -70.5021683107691 | etot = -33.5644507223021 +746000 ekin = 16.6327129020178 | erot = 20.0624105084052 | epot = -70.2595741304376 | etot = -33.5644507200146 +747000 ekin = 16.3685004966554 | erot = 20.0330168533934 | epot = -69.9659680678506 | etot = -33.5644507178018 +748000 ekin = 16.1014104014477 | erot = 19.9854814624586 | epot = -69.6513425795718 | etot = -33.5644507156654 +749000 ekin = 15.844098014715 | erot = 19.9365592282997 | epot = -69.3451079566726 | etot = -33.5644507136579 +750000 ekin = 15.6090531926207 | erot = 19.9038963443694 | epot = -69.0774002481408 | etot = -33.5644507111507 +751000 ekin = 15.4083916161874 | erot = 19.9047162304915 | epot = -68.8775585564482 | etot = -33.5644507097693 +752000 ekin = 15.2531866593796 | erot = 19.9485427659139 | epot = -68.7661801340112 | etot = -33.5644507087177 +753000 ekin = 15.1543901567613 | erot = 20.0407526950507 | epot = -68.7595935598495 | etot = -33.5644507080375 +754000 ekin = 15.1228286573332 | erot = 20.1821712297509 | epot = -68.8694505948499 | etot = -33.5644507077658 +755000 ekin = 15.1688994243523 | erot = 20.3687544713836 | epot = -69.1021046037276 | etot = -33.5644507079917 +756000 ekin = 15.301499551776 | erot = 20.5913112854955 | epot = -69.4572615461957 | etot = -33.5644507089241 +757000 ekin = 15.5255754913897 | erot = 20.834949244045 | epot = -69.9249754463701 | etot = -33.5644507109354 +758000 ekin = 15.8381446961138 | erot = 21.0780442684797 | epot = -70.4806396790109 | etot = -33.5644507144174 +759000 ekin = 16.2241238953416 | erot = 21.2913511033439 | epot = -71.0799257180851 | etot = -33.5644507193996 +760000 ekin = 16.6551901645912 | erot = 21.4392176773412 | epot = -71.6588585670209 | etot = -33.5644507250884 +761000 ekin = 17.0950183931786 | erot = 21.4853061088372 | epot = -72.1447752318667 | etot = -33.5644507298509 +762000 ekin = 17.5106763998012 | erot = 21.4029539232004 | epot = -72.4780810549596 | etot = -33.564450731958 +763000 ekin = 17.8846255672732 | erot = 21.1859145459706 | epot = -72.6349908439064 | etot = -33.5644507306625 +764000 ekin = 18.2201199376956 | erot = 20.8529192934954 | epot = -72.6374899578081 | etot = -33.5644507266171 +765000 ekin = 18.5372583937382 | erot = 20.4430950169541 | epot = -72.5448041320924 | etot = -33.5644507214001 +766000 ekin = 18.8630996339146 | erot = 20.0050052439806 | epot = -72.4325555942986 | etot = -33.5644507164034 +767000 ekin = 19.2212066800029 | erot = 19.5864803390503 | epot = -72.3721377317783 | etot = -33.5644507127251 +768000 ekin = 19.624511669093 | erot = 19.2265552411511 | epot = -72.4155176211004 | etot = -33.5644507108563 +769000 ekin = 20.0721792333795 | erot = 18.9509745480761 | epot = -72.5876044923609 | etot = -33.5644507109054 +770000 ekin = 20.5498086023516 | erot = 18.7702787047077 | epot = -72.8845380197874 | etot = -33.5644507127281 +771000 ekin = 21.0321028878714 | erot = 18.6794354396568 | epot = -73.2759890434179 | etot = -33.5644507158897 +772000 ekin = 21.4851799442024 | erot = 18.6615620368978 | epot = -73.7111927013751 | etot = -33.564450720275 +773000 ekin = 21.8752230488093 | erot = 18.6848228554718 | epot = -74.1244966289812 | etot = -33.5644507247 +774000 ekin = 22.1763496480937 | erot = 18.7081814115977 | epot = -74.4489817879453 | etot = -33.5644507282539 +775000 ekin = 22.374571784792 | erot = 18.6931201256992 | epot = -74.6321426404729 | etot = -33.5644507299816 +776000 ekin = 22.4709552283027 | erot = 18.6135457380045 | epot = -74.6489516957821 | etot = -33.564450729475 +777000 ekin = 22.4798367644303 | erot = 18.4639882142466 | epot = -74.5082757050196 | etot = -33.5644507263427 +778000 ekin = 22.4355420397867 | erot = 18.2585534576689 | epot = -74.2585462185365 | etot = -33.5644507210809 +779000 ekin = 22.384352941304 | erot = 18.0309205348412 | epot = -73.9797241910754 | etot = -33.5644507149302 +780000 ekin = 22.3744386500498 | erot = 17.8258066858555 | epot = -73.7646960454756 | etot = -33.5644507095703 +781000 ekin = 22.1317599687537 | erot = 17.6891439264797 | epot = -73.385354726192 | etot = -33.5644508309586 +782000 ekin = 21.1592753698204 | erot = 17.9407979475159 | epot = -72.6645240371034 | etot = -33.5644507197671 +783000 ekin = 20.4598020696467 | erot = 19.0285770890208 | epot = -73.0528298813537 | etot = -33.5644507226862 +784000 ekin = 20.520561149809 | erot = 20.4251817114889 | epot = -74.510193700403 | etot = -33.5644508391051 +785000 ekin = 20.9642653603784 | erot = 20.9633174839005 | epot = -75.4920336718239 | etot = -33.564450827545 +786000 ekin = 21.4400765994876 | erot = 21.0615830961954 | epot = -76.0661105274379 | etot = -33.5644508317549 +787000 ekin = 21.883066887488 | erot = 21.057450682238 | epot = -76.5049684031488 | etot = -33.5644508334227 +788000 ekin = 22.267324375569 | erot = 20.946432607028 | epot = -76.7782078151899 | etot = -33.5644508325928 +789000 ekin = 22.5826671479872 | erot = 20.7432248288687 | epot = -76.8903428068424 | etot = -33.5644508299865 +790000 ekin = 22.8323066878114 | erot = 20.4741989858865 | epot = -76.8709565003754 | etot = -33.5644508266776 +791000 ekin = 23.0272356230926 | erot = 20.1684030022638 | epot = -76.7600894489801 | etot = -33.5644508236236 +792000 ekin = 23.1800436946629 | erot = 19.8507212207542 | epot = -76.5952157367535 | etot = -33.5644508213364 +793000 ekin = 23.300603133177 | erot = 19.5391467370145 | epot = -76.4042006900797 | etot = -33.5644508198882 +794000 ekin = 23.3943971219697 | erot = 19.2453890945191 | epot = -76.2042370356008 | etot = -33.564450819112 +795000 ekin = 23.4629811569471 | erot = 18.9772359529009 | epot = -76.0046679285239 | etot = -33.564450818676 +796000 ekin = 23.5050545268219 | erot = 18.7401074069536 | epot = -75.8096127523991 | etot = -33.5644508186236 +797000 ekin = 23.5179235638906 | erot = 18.5376020867796 | epot = -75.6199764693832 | etot = -33.564450818713 +798000 ekin = 23.499309548325 | erot = 18.3721088685451 | epot = -75.4358692357089 | etot = -33.5644508188388 +799000 ekin = 23.448939556091 | erot = 18.2446734452746 | epot = -75.2580638202457 | etot = -33.5644508188801 +800000 ekin = 23.3700597274441 | erot = 18.1549836136211 | epot = -75.0894941597633 | etot = -33.5644508186981 +801000 ekin = 23.2706429278156 | erot = 18.1018392108953 | epot = -74.9369329568679 | etot = -33.564450818157 +802000 ekin = 23.1638659210079 | erot = 18.0841621459371 | epot = -74.8124788841352 | etot = -33.5644508171902 +803000 ekin = 23.0673439612512 | erot = 18.1021655968283 | epot = -74.7339603739616 | etot = -33.564450815882 +804000 ekin = 23.0007989366371 | erot = 18.1579717461939 | epot = -74.7232214973418 | etot = -33.5644508145108 +805000 ekin = 22.9823371343768 | erot = 18.2549251687085 | epot = -74.8017131166306 | etot = -33.5644508135453 +806000 ekin = 23.0241641600763 | erot = 18.3954330803544 | epot = -74.984048053792 | etot = -33.5644508133613 +807000 ekin = 23.128964625391 | erot = 18.5785443285981 | epot = -75.2719597683222 | etot = -33.5644508143331 +808000 ekin = 23.2881607694889 | erot = 18.7969609338812 | epot = -75.649572519887 | etot = -33.5644508165169 +809000 ekin = 23.4826910129567 | erot = 19.0356597598736 | epot = -76.0828015925039 | etot = -33.5644508196735 +810000 ekin = 23.6859311924953 | erot = 19.2727961953261 | epot = -76.5231782111275 | etot = -33.5644508233061 +811000 ekin = 23.8683330202879 | erot = 19.4824424692605 | epot = -76.915226316337 | etot = -33.5644508267886 +812000 ekin = 24.0021280346815 | erot = 19.6390320774525 | epot = -77.2056109410892 | etot = -33.5644508289552 +813000 ekin = 24.0705831557699 | erot = 19.722021914086 | epot = -77.3570559012067 | etot = -33.5644508313508 +814000 ekin = 24.055601152459 | erot = 19.7197957986886 | epot = -77.3398477832757 | etot = -33.5644508321281 +815000 ekin = 23.9426529226646 | erot = 19.6314238617512 | epot = -77.1385276156708 | etot = -33.564450831255 +816000 ekin = 23.7311336934088 | erot = 19.466072034162 | epot = -76.7616565565296 | etot = -33.5644508289587 +817000 ekin = 23.433668535019 | erot = 19.2405112285024 | epot = -76.2386305891648 | etot = -33.5644508256434 +818000 ekin = 23.0739945644854 | erot = 18.9755381767493 | epot = -75.6139835630208 | etot = -33.5644508217861 +819000 ekin = 22.6837324023522 | erot = 18.6923648013821 | epot = -74.940548021756 | etot = -33.5644508180217 +820000 ekin = 22.2835291274414 | erot = 18.4096381970061 | epot = -74.2576181403381 | etot = -33.5644508158905 +821000 ekin = 21.8822278930458 | erot = 18.1412914989096 | epot = -73.5879702064574 | etot = -33.564450814502 +822000 ekin = 21.4884880522555 | erot = 17.8956786284863 | epot = -72.9486174945866 | etot = -33.5644508138448 +823000 ekin = 21.1064787913954 | erot = 17.6755757489858 | epot = -72.3465053541674 | etot = -33.5644508137862 +824000 ekin = 20.7370980684377 | erot = 17.4789023739902 | epot = -71.7804512565368 | etot = -33.5644508141088 +825000 ekin = 20.3797998907961 | erot = 17.3000855971742 | epot = -71.2443363025092 | etot = -33.5644508145388 +826000 ekin = 20.0346218830748 | erot = 17.1319532561702 | epot = -70.7310259540458 | etot = -33.5644508148008 +827000 ekin = 19.7039740634311 | erot = 16.9679189203112 | epot = -70.2363437984045 | etot = -33.5644508146622 +828000 ekin = 19.3938011067031 | erot = 16.8040573698201 | epot = -69.7623092905205 | etot = -33.5644508139974 +829000 ekin = 19.11384865599 | erot = 16.6405709794189 | epot = -69.3188704482339 | etot = -33.564450812825 +830000 ekin = 18.8769326775077 | erot = 16.4822216024693 | epot = -68.9236050912778 | etot = -33.5644508113007 +831000 ekin = 18.6973117703808 | erot = 16.3375582428127 | epot = -68.5993208228909 | etot = -33.5644508096974 +832000 ekin = 18.5884699003301 | erot = 16.2171194687507 | epot = -68.3700401774137 | etot = -33.564450808333 +833000 ekin = 18.560779595016 | erot = 16.1310793366086 | epot = -68.2563097391195 | etot = -33.5644508074948 +834000 ekin = 18.61956558581 | erot = 16.0869173735029 | epot = -68.2709337666952 | etot = -33.5644508073822 +835000 ekin = 18.7639745649932 | erot = 16.0875916865537 | epot = -68.4160170596156 | etot = -33.5644508080686 +836000 ekin = 18.9868442865092 | erot = 16.1305192433203 | epot = -68.6818143393361 | etot = -33.5644508095065 +837000 ekin = 19.2754657671378 | erot = 16.2074384784975 | epot = -69.0473550571903 | etot = -33.564450811555 +838000 ekin = 19.6129197626542 | erot = 16.305100324473 | epot = -69.4824709011417 | etot = -33.5644508140144 +839000 ekin = 19.9795904905589 | erot = 16.4066730035615 | epot = -69.9507143107794 | etot = -33.564450816659 +840000 ekin = 20.3545159446157 | erot = 16.4936833394318 | epot = -70.4126501033158 | etot = -33.5644508192683 +841000 ekin = 20.7164052638984 | erot = 16.548246931381 | epot = -70.8291030169287 | etot = -33.5644508216493 +842000 ekin = 21.0443277172268 | erot = 16.5552492676569 | epot = -71.1640278085398 | etot = -33.5644508236561 +843000 ekin = 21.3182343499603 | erot = 16.5040987153204 | epot = -71.3867838904675 | etot = -33.5644508251868 +844000 ekin = 21.5195641367703 | erot = 16.3898128596529 | epot = -71.4738278225867 | etot = -33.5644508261635 +845000 ekin = 21.6321888565554 | erot = 16.2134452981662 | epot = -71.410084981231 | etot = -33.5644508265094 +846000 ekin = 21.6437998325842 | erot = 15.9820204390976 | epot = -71.1902710978237 | etot = -33.5644508261419 +847000 ekin = 21.5475782493693 | erot = 15.7081282849394 | epot = -70.8201573593162 | etot = -33.5644508250075 +848000 ekin = 21.3436927775388 | erot = 15.4091281501661 | epot = -70.3172717508461 | etot = -33.5644508231412 +849000 ekin = 21.0400180651421 | erot = 15.1057456316713 | epot = -69.7102145175199 | etot = -33.5644508207064 +850000 ekin = 20.651624144221 | erot = 14.819982121726 | epot = -69.0360570839323 | etot = -33.5644508179853 +851000 ekin = 20.1989966727791 | erot = 14.5725796374539 | epot = -68.3360271255451 | etot = -33.5644508153122 +852000 ekin = 19.705405223643 | erot = 14.3805531626584 | epot = -67.650409199298 | etot = -33.5644508129966 +853000 ekin = 19.1940724610505 | erot = 14.25530818557 | epot = -67.0138314578818 | etot = -33.5644508112614 +854000 ekin = 18.6857524015881 | erot = 14.2015962971835 | epot = -66.4517995089979 | etot = -33.5644508102263 +855000 ekin = 18.1970763744836 | erot = 14.2172634276327 | epot = -65.9787906120352 | etot = -33.5644508099189 +856000 ekin = 17.7397499707612 | erot = 14.2936050918535 | epot = -65.5978058729028 | etot = -33.5644508102882 +857000 ekin = 17.3205057782524 | erot = 14.4162007388387 | epot = -65.3011573283104 | etot = -33.5644508112193 +858000 ekin = 16.9416544278078 | erot = 14.5662556875881 | epot = -65.0723609279221 | etot = -33.5644508125262 +859000 ekin = 16.6020780488435 | erot = 14.7225727576944 | epot = -64.8891016204952 | etot = -33.5644508139574 +860000 ekin = 16.2985125162571 | erot = 14.8641879517113 | epot = -64.7271512831937 | etot = -33.5644508152253 +861000 ekin = 16.0269335765221 | erot = 14.9734306263673 | epot = -64.5648150189461 | etot = -33.5644508160567 +862000 ekin = 15.7838145493149 | erot = 15.0388248736918 | epot = -64.3870902392667 | etot = -33.56445081626 +863000 ekin = 15.5670277401482 | erot = 15.0570872004078 | epot = -64.1885657563379 | etot = -33.5644508157819 +864000 ekin = 15.3762443264478 | erot = 15.033644902431 | epot = -63.9743400435875 | etot = -33.5644508147087 +865000 ekin = 15.2131876544491 | erot = 14.9816007278775 | epot = -63.7592391954458 | etot = -33.5644508131193 +866000 ekin = 15.0809818287742 | erot = 14.9194630000228 | epot = -63.5648956402705 | etot = -33.5644508114735 +867000 ekin = 14.9827726501217 | erot = 14.8683323276467 | epot = -63.4155557876376 | etot = -33.5644508098692 +868000 ekin = 14.92180112433 | erot = 14.8493296988562 | epot = -63.3355816316708 | etot = -33.5644508084847 +869000 ekin = 14.9010185116834 | erot = 14.8813223016375 | epot = -63.3467916207947 | etot = -33.5644508074738 +870000 ekin = 14.9227801761236 | erot = 14.9789108660607 | epot = -63.4661418491954 | etot = -33.5644508070111 +871000 ekin = 14.9884139356745 | erot = 15.1503817842349 | epot = -63.7032465271887 | etot = -33.5644508072793 +872000 ekin = 15.0976914319707 | erot = 15.3955923654522 | epot = -64.0577346058697 | etot = -33.5644508084468 +873000 ekin = 15.2480781387988 | erot = 15.7042636439283 | epot = -64.5167925933356 | etot = -33.5644508106085 +874000 ekin = 15.4340038873847 | erot = 16.0553561021191 | epot = -65.053810803158 | etot = -33.5644508136542 +875000 ekin = 15.6465534573556 | erot = 16.4187317070787 | epot = -65.6297359816455 | etot = -33.5644508172112 +876000 ekin = 15.8739222018982 | erot = 16.7595446909201 | epot = -66.1979177135255 | etot = -33.5644508207072 +877000 ekin = 16.1027155795467 | erot = 17.044494341634 | epot = -66.7116607447368 | etot = -33.5644508235561 +878000 ekin = 16.3197910454644 | erot = 17.2478151625915 | epot = -67.1320570334198 | etot = -33.5644508253639 +879000 ekin = 16.5138521394505 | erot = 17.3548092079704 | epot = -67.4331121735215 | etot = -33.5644508261006 +880000 ekin = 16.6772706623824 | erot = 17.3624918569347 | epot = -67.6042133449038 | etot = -33.5644508255867 +881000 ekin = 16.8080553798836 | erot = 17.278452226898 | epot = -67.6509584308199 | etot = -33.5644508240383 +882000 ekin = 16.9100399112771 | erot = 17.119022231693 | epot = -67.5935129646031 | etot = -33.564450821633 +883000 ekin = 16.9925721974834 | erot = 16.9073416506224 | epot = -67.4643646668128 | etot = -33.564450818707 +884000 ekin = 17.0687034065889 | erot = 16.6704808211346 | epot = -67.3036350435126 | etot = -33.5644508157892 +885000 ekin = 17.1519974191521 | erot = 16.4352378677741 | epot = -67.1516861003877 | etot = -33.5644508134615 +886000 ekin = 17.2529390367253 | erot = 16.2234313385346 | epot = -67.040821187416 | etot = -33.564450812156 +887000 ekin = 17.3762921605589 | erot = 16.0482363267111 | epot = -66.9889792992713 | etot = -33.5644508120014 +888000 ekin = 17.5203620939499 | erot = 15.912713009727 | epot = -66.9975259165121 | etot = -33.5644508128352 +889000 ekin = 17.6781644417429 | erot = 15.8105908033725 | epot = -67.0532060594389 | etot = -33.5644508143236 +890000 ekin = 17.8397117311843 | erot = 15.728545074795 | epot = -67.1327076214795 | etot = -33.5644508155002 +891000 ekin = 17.9946822356163 | erot = 15.6526652128514 | epot = -67.2117982661653 | etot = -33.5644508176976 +892000 ekin = 18.1331274108613 | erot = 15.5631846536331 | epot = -67.2607628839469 | etot = -33.5644508194524 +893000 ekin = 18.2472194923555 | erot = 15.4391901233243 | epot = -67.2508604363308 | etot = -33.5644508206509 +894000 ekin = 18.3321686592099 | erot = 15.2648175287635 | epot = -67.1614370091493 | etot = -33.5644508211759 +895000 ekin = 18.3862908731384 | erot = 15.0310128799806 | epot = -66.9817545740828 | etot = -33.5644508209639 +896000 ekin = 18.4109116125628 | erot = 14.7366844064177 | epot = -66.7120468390301 | etot = -33.5644508200496 +897000 ekin = 18.4100489982307 | erot = 14.38859264232 | epot = -66.3630924591407 | etot = -33.56445081859 +898000 ekin = 18.3898281603967 | erot = 13.9998000546359 | epot = -65.954079031856 | etot = -33.5644508168234 +899000 ekin = 18.3577139224559 | erot = 13.5871378078456 | epot = -65.5093025452924 | etot = -33.5644508149909 +900000 ekin = 18.3217786244971 | erot = 13.1685630401998 | epot = -65.0547924779573 | etot = -33.5644508132604 +901000 ekin = 18.2902589888584 | erot = 12.7612484281998 | epot = -64.6159582287385 | etot = -33.5644508116803 +902000 ekin = 18.2715810670069 | erot = 12.3808553817479 | epot = -64.2168872589334 | etot = -33.5644508101785 +903000 ekin = 18.2748902554657 | erot = 12.0419799131758 | epot = -63.8813209772404 | etot = -33.5644508085989 +904000 ekin = 18.310946079998 | erot = 11.759427353884 | epot = -63.6348242406376 | etot = -33.5644508067556 +905000 ekin = 18.3930925503139 | erot = 11.5498594883528 | epot = -63.5074028431725 | etot = -33.5644508045058 +906000 ekin = 18.5347341843358 | erot = 11.429567327747 | epot = -63.5287523170652 | etot = -33.5644508049824 +907000 ekin = 18.7414362451913 | erot = 11.4045037508022 | epot = -63.7103908004036 | etot = -33.5644508044102 +908000 ekin = 19.0194889718029 | erot = 11.4807236813719 | epot = -64.064663457795 | etot = -33.5644508046201 +909000 ekin = 19.3700614262796 | erot = 11.658960594413 | epot = -64.5934728263738 | etot = -33.5644508056812 +910000 ekin = 19.7882105287017 | erot = 11.9333322709223 | epot = -65.2859936069509 | etot = -33.5644508073268 +911000 ekin = 20.2647618472542 | erot = 12.2921701432016 | epot = -66.1213827995986 | etot = -33.5644508091428 +912000 ekin = 20.7894338989449 | erot = 12.7195983435702 | epot = -67.0734830529977 | etot = -33.5644508104826 +913000 ekin = 21.354185735415 | erot = 13.1939380972622 | epot = -68.1125746463993 | etot = -33.564450813722 +914000 ekin = 21.9410171539269 | erot = 13.6876167580563 | epot = -69.1930847298951 | etot = -33.564450817912 +915000 ekin = 22.5188846328755 | erot = 14.1693256791945 | epot = -70.2526611349299 | etot = -33.5644508228598 +916000 ekin = 23.0495496145354 | erot = 14.6035757237462 | epot = -71.2175761670584 | etot = -33.5644508287768 +917000 ekin = 23.4897289759918 | erot = 14.9539952313724 | epot = -72.008175040674 | etot = -33.5644508333098 +918000 ekin = 23.7939185234148 | erot = 15.197647321232 | epot = -72.5560167286604 | etot = -33.5644508840135 +919000 ekin = 23.6168045074412 | erot = 15.3655091430202 | epot = -72.5467644924926 | etot = -33.5644508420312 +920000 ekin = 23.165531585878 | erot = 15.5814764955082 | epot = -72.311458892293 | etot = -33.5644508109067 +921000 ekin = 22.8561009730671 | erot = 15.8041631721062 | epot = -72.2247150051872 | etot = -33.5644508600138 +922000 ekin = 22.440617199678 | erot = 15.7102388661218 | epot = -71.7153069039719 | etot = -33.5644508381722 +923000 ekin = 21.8145072438246 | erot = 15.4204628466349 | epot = -70.7994209206915 | etot = -33.564450830232 +924000 ekin = 21.089710612231 | erot = 15.1252102241701 | epot = -69.7793716556892 | etot = -33.5644508192881 +925000 ekin = 20.3778961082158 | erot = 14.899059611937 | epot = -68.8414065283879 | etot = -33.5644508082351 +926000 ekin = 19.7497733146689 | erot = 14.7841436062358 | epot = -68.0983677263129 | etot = -33.5644508054082 +927000 ekin = 19.2202389452663 | erot = 14.8057849810623 | epot = -67.590474728778 | etot = -33.5644508024493 +928000 ekin = 18.8098178358059 | erot = 14.9862994051908 | epot = -67.3605680408844 | etot = -33.5644507998878 +929000 ekin = 18.5263530322086 | erot = 15.3189513314309 | epot = -67.4097551810462 | etot = -33.5644508174067 +930000 ekin = 18.303158247999 | erot = 15.7144845731335 | epot = -67.5820936492334 | etot = -33.564450828101 +931000 ekin = 18.0528353467031 | erot = 16.092098150507 | epot = -67.7093843340348 | etot = -33.5644508368247 +932000 ekin = 17.7015072493782 | erot = 16.3874716011874 | epot = -67.6534296917457 | etot = -33.5644508411801 +933000 ekin = 17.2115757804696 | erot = 16.5716045694095 | epot = -67.3476311886972 | etot = -33.5644508388181 +934000 ekin = 16.5514003203334 | erot = 16.6395832223659 | epot = -66.755434444527 | etot = -33.5644509018278 +935000 ekin = 15.4338978862408 | erot = 16.4795973505328 | epot = -65.4779460700676 | etot = -33.564450833294 +936000 ekin = 14.2992444275143 | erot = 16.4524645705128 | epot = -64.3161597798994 | etot = -33.5644507818723 +937000 ekin = 13.59487740504 | erot = 16.8307081996587 | epot = -63.9900364163686 | etot = -33.5644508116699 +938000 ekin = 13.1600926964079 | erot = 17.3617572930203 | epot = -64.0863008623788 | etot = -33.5644508729506 +939000 ekin = 12.6302856058614 | erot = 17.6616475284688 | epot = -63.8563839239186 | etot = -33.5644507895884 +940000 ekin = 12.1844103645063 | erot = 17.9750890236239 | epot = -63.7239501782487 | etot = -33.5644507901185 +941000 ekin = 11.8736812756091 | erot = 18.3544207679051 | epot = -63.7925528359821 | etot = -33.5644507924678 +942000 ekin = 11.6856910076193 | erot = 18.7737996767542 | epot = -64.0239414802086 | etot = -33.5644507958351 +943000 ekin = 11.5993719915505 | erot = 19.1997647093009 | epot = -64.3635875002877 | etot = -33.5644507994363 +944000 ekin = 11.591116393097 | erot = 19.5969000254167 | epot = -64.7524672211801 | etot = -33.5644508026663 +945000 ekin = 11.6394594916683 | erot = 19.9326030632592 | epot = -65.1365133600576 | etot = -33.56445080513 +946000 ekin = 11.7278293647869 | erot = 20.1807231613466 | epot = -65.4730033327469 | etot = -33.5644508066135 +947000 ekin = 11.8456010910349 | erot = 20.3241537585671 | epot = -65.7342056566312 | etot = -33.5644508070293 +948000 ekin = 11.9879925905891 | erot = 20.3564922444528 | epot = -65.9089356414658 | etot = -33.564450806424 +949000 ekin = 12.1551997706618 | erot = 20.2822908926568 | epot = -66.0019414683021 | etot = -33.5644508049834 +950000 ekin = 12.3510408582428 | erot = 20.1156595852263 | epot = -66.0311512464897 | etot = -33.5644508030205 +951000 ekin = 12.5812930342184 | erot = 19.8773156458908 | epot = -66.0230594810216 | etot = -33.5644508009124 +952000 ekin = 12.8471183992429 | erot = 19.5848425527081 | epot = -65.9964117535253 | etot = -33.5644508015743 +953000 ekin = 13.1479143766235 | erot = 19.2558560123375 | epot = -65.9682211888452 | etot = -33.5644507998843 +954000 ekin = 13.4859607016749 | erot = 18.9116613752366 | epot = -65.9620728756609 | etot = -33.5644507987494 +955000 ekin = 13.8607396886139 | erot = 18.5688220608356 | epot = -65.9940125476709 | etot = -33.5644507982214 +956000 ekin = 14.2684790839254 | erot = 18.2386766853017 | epot = -66.0716065674655 | etot = -33.5644507982384 +957000 ekin = 14.7022261502645 | erot = 17.9280211817306 | epot = -66.1946981306621 | etot = -33.5644507986669 +958000 ekin = 15.1523557015762 | erot = 17.6404101744164 | epot = -66.3572166753395 | etot = -33.5644507993469 +959000 ekin = 15.6074014601803 | erot = 17.3776018534993 | epot = -66.5494541137976 | etot = -33.5644508001179 +960000 ekin = 16.0551055261351 | erot = 17.1408213325793 | epot = -66.7603776595324 | etot = -33.5644508008181 +961000 ekin = 16.483819511843 | erot = 16.9315994951715 | epot = -66.9798698083909 | etot = -33.5644508013764 +962000 ekin = 16.8831178337395 | erot = 16.7524507837121 | epot = -67.2000194191554 | etot = -33.5644508017038 +963000 ekin = 17.2446402411808 | erot = 16.6070592916238 | epot = -67.4161503345794 | etot = -33.5644508017749 +964000 ekin = 17.5626944186329 | erot = 16.5001400673231 | epot = -67.6272852875597 | etot = -33.5644508016037 +965000 ekin = 17.8343164080137 | erot = 16.4370960223934 | epot = -67.8358632316613 | etot = -33.5644508012542 +966000 ekin = 18.058881794858 | erot = 16.4234839407457 | epot = -68.0468165364294 | etot = -33.5644508008257 +967000 ekin = 18.2373393553309 | erot = 16.4643418581003 | epot = -68.2661320138667 | etot = -33.5644508004355 +968000 ekin = 18.3712253334182 | erot = 16.5634469055311 | epot = -68.4991230391516 | etot = -33.5644508002023 +969000 ekin = 18.4616731642916 | erot = 16.7225928674224 | epot = -68.748716831933 | etot = -33.564450800219 +970000 ekin = 18.508642391898 | erot = 16.9409874226402 | epot = -69.014080615083 | etot = -33.5644508005448 +971000 ekin = 18.5105217351456 | erot = 17.2148322274807 | epot = -69.2898047638157 | etot = -33.5644508011893 +972000 ekin = 18.4641879057989 | erot = 17.5371342370508 | epot = -69.5657729449732 | etot = -33.5644508021236 +973000 ekin = 18.3654967925945 | erot = 17.8977436591339 | epot = -69.8276912550097 | etot = -33.5644508032813 +974000 ekin = 18.2101154179932 | erot = 18.2835968472234 | epot = -70.0581630697874 | etot = -33.5644508045708 +975000 ekin = 17.9945660115437 | erot = 18.6791515809232 | epot = -70.2381683983514 | etot = -33.5644508058845 +976000 ekin = 17.7173305275788 | erot = 19.0670257035496 | epot = -70.3488070382366 | etot = -33.5644508071083 +977000 ekin = 17.3798453157079 | erot = 19.4288693588492 | epot = -70.3731654826817 | etot = -33.5644508081246 +978000 ekin = 16.9872046651528 | erot = 19.7465105308244 | epot = -70.2981660048043 | etot = -33.5644508088271 +979000 ekin = 16.5484156632796 | erot = 20.0033999568713 | epot = -70.1162664292717 | etot = -33.5644508091207 +980000 ekin = 16.0760394561679 | erot = 20.1863036337654 | epot = -69.8267938958194 | etot = -33.5644508058861 +981000 ekin = 15.5958799206067 | erot = 20.2892058118436 | epot = -69.4495365390975 | etot = -33.5644508066472 +982000 ekin = 15.0884229209118 | erot = 20.3042917721005 | epot = -68.9571655433623 | etot = -33.56445085035 +983000 ekin = 14.6278058930741 | erot = 20.1974254363095 | epot = -68.3896821374305 | etot = -33.5644508080469 +984000 ekin = 14.4857180537849 | erot = 20.0570072753869 | epot = -68.1071761999148 | etot = -33.5644508707431 +985000 ekin = 14.2080884745897 | erot = 19.919276344842 | epot = -67.6918156218487 | etot = -33.564450802417 +986000 ekin = 13.9758844712272 | erot = 19.8429645358536 | epot = -67.3832998071099 | etot = -33.5644508000291 +987000 ekin = 13.8444879396752 | erot = 19.8435554330973 | epot = -67.2524941798934 | etot = -33.5644508071209 +988000 ekin = 13.7899575635179 | erot = 19.8765535654025 | epot = -67.2309619340325 | etot = -33.5644508051121 +989000 ekin = 13.7826987510727 | erot = 19.9896359806756 | epot = -67.3367855381806 | etot = -33.5644508064323 +990000 ekin = 13.8064597723693 | erot = 20.1866383120656 | epot = -67.5575488929868 | etot = -33.5644508085519 +991000 ekin = 13.844476200064 | erot = 20.4553568023019 | epot = -67.8642838132361 | etot = -33.5644508108702 +992000 ekin = 13.8831356334462 | erot = 20.7777558499506 | epot = -68.2253422960729 | etot = -33.5644508126761 +993000 ekin = 13.9170731635836 | erot = 21.135407615501 | epot = -68.6169315925055 | etot = -33.564450813421 +994000 ekin = 13.9526839660428 | erot = 21.5142214171928 | epot = -69.0313561961371 | etot = -33.5644508129016 +995000 ekin = 14.0087176813023 | erot = 21.9069609070435 | epot = -69.480129399738 | etot = -33.5644508113922 +996000 ekin = 14.1134296875285 | erot = 22.3130050689718 | epot = -69.9908855656615 | etot = -33.5644508091613 +997000 ekin = 14.3000196822843 | erot = 22.7364207784144 | epot = -70.6008912675636 | etot = -33.5644508068649 +998000 ekin = 14.6010980656079 | erot = 23.1830420844189 | epot = -71.3485909550456 | etot = -33.5644508050188 +999000 ekin = 15.0427312776222 | erot = 23.657392608768 | epot = -72.2645746968681 | etot = -33.5644508104779 +1000000 ekin = 15.613660129969 | erot = 24.1382006023969 | epot = -73.3163115458147 | etot = -33.5644508134487 + 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160068 39304000 +Loop time of 17.9925 on 1 procs for 1000000 steps with 16 atoms + +Performance: 81.922 ns/day, 0.293 hours/ns, 55578.741 timesteps/s, 889.260 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 14.919 | 14.919 | 14.919 | 0.0 | 82.92 +Bond | 0.66748 | 0.66748 | 0.66748 | 0.0 | 3.71 +Neigh | 0.007146 | 0.007146 | 0.007146 | 0.0 | 0.04 +Comm | 0.24907 | 0.24907 | 0.24907 | 0.0 | 1.38 +Output | 0.173 | 0.173 | 0.173 | 0.0 | 0.96 +Modify | 1.6962 | 1.6962 | 1.6962 | 0.0 | 9.43 +Other | | 0.2809 | | | 1.56 + +Nlocal: 16 ave 16 max 16 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 0 ave 0 max 0 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 107 ave 107 max 107 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:18 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 new file mode 100644 index 0000000000..7f5a424467 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/log.19May24.duplex2.g++.4 @@ -0,0 +1,1121 @@ +LAMMPS (17 Apr 2024) + using 1 OpenMP thread(s) per MPI task +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +Reading data file ... + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 16 atoms + reading velocities ... + 16 velocities + scanning bonds ... + 1 = max bonds/atom + 16 ellipsoids + orthogonal box = (-170 -170 -170) to (170 170 170) + 1 by 2 by 2 MPI processor grid + reading bonds ... + 13 bonds +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.001 seconds + read_data CPU = 0.008 seconds +Setting atom values ... + 16 settings made for mass +16 atoms in group all +Reading oxdna potential (fene) file oxrna2.real with DATE: 2024-04-26 +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 1 1 + special bond factors coul: 0 0 0 + 2 = max # of 1-2 neighbors + 2 = max # of 1-3 neighbors + 4 = max # of 1-4 neighbors + 6 = max # of special neighbors + special bonds CPU = 0.000 seconds +Reading oxdna potential (excv) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (stk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (hbond) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (xstk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (coaxstk) file oxrna2.real with DATE: 2024-04-26 +Reading oxdna potential (dh) file oxrna2.real with DATE: 2024-04-26 +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 36.640032 + ghost atom cutoff = 36.640032 + binsize = 18.320016, bins = 19 19 19 + 5 neighbor lists, perpetual/occasional/extra = 5 0 0 + (1) pair oxrna2/excv, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard + (2) pair oxrna2/hbond, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (3) pair oxrna2/xstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (4) pair oxrna2/coaxstk, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none + (5) pair oxrna2/dh, perpetual, copy from (1) + attributes: half, newton on + pair build: copy + stencil: none + bin: none +Setting up Verlet run ... + Unit style : real + Current step : 0 + Time step : 0.01706 +WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 +Per MPI rank memory allocation (min/avg/max) = 7.577 | 7.606 | 7.69 Mbytes + Step Temp E_pair E_mol TotEng Press Volume + 0 360.53565 -69.627742 3.2447172 -50.262701 0.034084814 39304000 +1000 ekin = 16.3558183649387 | erot = 16.6323090455317 | epot = -66.5525771041998 | etot = -33.5644496937295 +2000 ekin = 16.6191649168147 | erot = 16.5684372137643 | epot = -66.7520518221219 | etot = -33.5644496915429 +3000 ekin = 16.9230904408654 | erot = 16.5204480451832 | epot = -67.0079881759691 | etot = -33.5644496899204 +4000 ekin = 17.2772162612591 | erot = 16.49867929322 | epot = -67.3403452437715 | etot = -33.5644496892924 +5000 ekin = 17.6866959075726 | erot = 16.5050138456572 | epot = -67.7561594428204 | etot = -33.5644496895906 +6000 ekin = 18.1531343302964 | erot = 16.5325161302815 | epot = -68.2501001506509 | etot = -33.564449690073 +7000 ekin = 18.680653493314 | erot = 16.5738535187235 | epot = -68.8189567014344 | etot = -33.5644496893969 +8000 ekin = 19.2766528199695 | erot = 16.6261515879628 | epot = -69.4672540969553 | etot = -33.564449689023 +9000 ekin = 19.9461490397319 | erot = 16.6908475985738 | epot = -70.201446326231 | etot = -33.5644496879253 +10000 ekin = 20.6973181248474 | erot = 16.7772960438528 | epot = -71.039063854854 | etot = -33.5644496861538 +11000 ekin = 21.539522624792 | erot = 16.9014209971989 | epot = -72.0053933083053 | etot = -33.5644496863144 +12000 ekin = 22.4717498465051 | erot = 17.0791755563662 | epot = -73.1153750880493 | etot = -33.5644496851781 +13000 ekin = 23.493621609947 | erot = 17.3228520870333 | epot = -74.3809233816828 | etot = -33.5644496847026 +14000 ekin = 24.6044210071246 | erot = 17.6425688028838 | epot = -75.8114394947881 | etot = -33.5644496847798 +15000 ekin = 25.7999389267744 | erot = 18.0453525578634 | epot = -77.4097411694886 | etot = -33.5644496848508 +16000 ekin = 27.0739775537123 | erot = 18.5361142332912 | epot = -79.1745414730767 | etot = -33.5644496860731 +17000 ekin = 28.4119581304118 | erot = 19.1137262760959 | epot = -81.0901340949635 | etot = -33.5644496884557 +18000 ekin = 29.7909545183303 | erot = 19.7704759932755 | epot = -83.1258802031785 | etot = -33.5644496915727 +19000 ekin = 31.1831510307732 | erot = 20.4915974540495 | epot = -85.2391981805601 | etot = -33.5644496957374 +20000 ekin = 32.5560965367943 | erot = 21.2528351748734 | epot = -87.3733814125724 | etot = -33.5644497009047 +21000 ekin = 33.868330987566 | erot = 22.0156446407476 | epot = -89.4484253379455 | etot = -33.5644497096318 +22000 ekin = 35.0747510230858 | erot = 22.7306302808711 | epot = -91.3698310187509 | etot = -33.564449714794 +23000 ekin = 36.1427935644227 | erot = 23.3543658008634 | epot = -93.0616090845426 | etot = -33.5644497192564 +24000 ekin = 37.0484240543211 | erot = 23.8536351256838 | epot = -94.4665089004161 | etot = -33.5644497204113 +25000 ekin = 37.7873483857427 | erot = 24.2156130941775 | epot = -95.5674111990494 | etot = -33.5644497191292 +26000 ekin = 38.3695951222899 | erot = 24.4472028227103 | epot = -96.3812476612834 | etot = -33.5644497162832 +27000 ekin = 38.8142451991145 | erot = 24.5696496438673 | epot = -96.9483445558084 | etot = -33.5644497128266 +28000 ekin = 39.1436511594781 | erot = 24.6108705414904 | epot = -97.3189714104584 | etot = -33.5644497094899 +29000 ekin = 39.3799077053091 | erot = 24.5987493007977 | epot = -97.5431067127119 | etot = -33.5644497066052 +30000 ekin = 39.5437187767927 | erot = 24.5572061990977 | epot = -97.6653746802842 | etot = -33.5644497043938 +31000 ekin = 39.6556538792225 | erot = 24.5025482878245 | epot = -97.7226518696582 | etot = -33.5644497026112 +32000 ekin = 39.7376908979144 | erot = 24.4447365565287 | epot = -97.7468771552201 | etot = -33.5644497007771 +33000 ekin = 39.8178410436037 | erot = 24.3917276701332 | epot = -97.7740184125884 | etot = -33.5644496988515 +34000 ekin = 39.927618714488 | erot = 24.3494773308408 | epot = -97.8415457422131 | etot = -33.5644496968843 +35000 ekin = 40.0972017271435 | erot = 24.3220925820223 | epot = -97.9837440042509 | etot = -33.564449695085 +36000 ekin = 40.3554758289768 | erot = 24.3121132861349 | epot = -98.2320388089531 | etot = -33.5644496938414 +37000 ekin = 40.7253172241835 | erot = 24.319453116459 | epot = -98.6092200342501 | etot = -33.5644496936077 +38000 ekin = 41.2184614577313 | erot = 24.3399425110989 | epot = -99.1228536635565 | etot = -33.5644496947263 +39000 ekin = 41.8315835745705 | erot = 24.3642621379391 | epot = -99.7602954097928 | etot = -33.5644496972833 +40000 ekin = 42.5444333388241 | erot = 24.3777906096182 | epot = -100.486673649662 | etot = -33.5644497012195 +41000 ekin = 43.3221534386097 | erot = 24.3619359806971 | epot = -101.248539124814 | etot = -33.5644497055069 +42000 ekin = 44.1232219530953 | erot = 24.2968159626988 | epot = -101.984487625362 | etot = -33.564449709568 +43000 ekin = 44.904300844132 | erot = 24.1647850477408 | epot = -102.633535604778 | etot = -33.5644497129052 +44000 ekin = 45.6258073685734 | erot = 23.9537754776322 | epot = -103.144032561023 | etot = -33.5644497148173 +45000 ekin = 46.2557013508695 | erot = 23.6596129163771 | epot = -103.479763983876 | etot = -33.5644497166297 +46000 ekin = 46.7711396854538 | erot = 23.2746461161496 | epot = -103.610235519163 | etot = -33.5644497175596 +47000 ekin = 47.1576706465393 | erot = 22.7983985986729 | epot = -103.520518961432 | etot = -33.5644497162194 +48000 ekin = 47.4067411848207 | erot = 22.2418927069086 | epot = -103.213083606725 | etot = -33.5644497149953 +49000 ekin = 47.5134307536654 | erot = 21.6212608371917 | epot = -102.69914130377 | etot = -33.564449712913 +50000 ekin = 47.4750496002015 | erot = 20.9637753825402 | epot = -102.0032746914 | etot = -33.5644497086583 +51000 ekin = 47.2893433305643 | erot = 20.3140174296325 | epot = -101.167810469159 | etot = -33.5644497089619 +52000 ekin = 46.9527474071891 | erot = 19.6808685522296 | epot = -100.198065668178 | etot = -33.5644497087591 +53000 ekin = 46.4669221029446 | erot = 19.0628634962124 | epot = -99.0942353064246 | etot = -33.5644497072675 +54000 ekin = 45.8347987943741 | erot = 18.4752794596828 | epot = -97.8745279599047 | etot = -33.5644497058478 +55000 ekin = 45.0590316628642 | erot = 17.9341671577877 | epot = -96.5576485255772 | etot = -33.5644497049254 +56000 ekin = 44.1409291390466 | erot = 17.4520797326575 | epot = -95.1574585762252 | etot = -33.5644497045211 +57000 ekin = 43.0792908324229 | erot = 17.0373342694525 | epot = -93.6810748066133 | etot = -33.5644497047379 +58000 ekin = 41.8704923540616 | erot = 16.6939394056078 | epot = -92.1288814650828 | etot = -33.5644497054134 +59000 ekin = 40.5509408803243 | erot = 16.4316140927963 | epot = -90.5470046657502 | etot = -33.5644496926296 +60000 ekin = 39.1975830612683 | erot = 16.2583411314117 | epot = -89.0203738856281 | etot = -33.564449692948 +61000 ekin = 35.7114984384268 | erot = 15.7928074869535 | epot = -85.0687559055495 | etot = -33.5644499801692 +62000 ekin = 34.7372517506983 | erot = 15.8094409096042 | epot = -84.1111427027985 | etot = -33.564450042496 +63000 ekin = 35.8178089566995 | erot = 16.1653492511937 | epot = -85.5476088513059 | etot = -33.5644506434127 +64000 ekin = 34.8692363703958 | erot = 16.1670101597179 | epot = -84.6006971860838 | etot = -33.5644506559701 +65000 ekin = 33.846449455545 | erot = 16.1402632189654 | epot = -83.5511633293456 | etot = -33.5644506548352 +66000 ekin = 32.7636419796978 | erot = 16.0751240440806 | epot = -82.4032166770508 | etot = -33.5644506532724 +67000 ekin = 31.6420680628897 | erot = 15.970564295673 | epot = -81.1770830093356 | etot = -33.5644506507729 +68000 ekin = 30.5061166759974 | erot = 15.8342590047108 | epot = -79.904826328435 | etot = -33.5644506477268 +69000 ekin = 29.3793899831146 | erot = 15.6784092891742 | epot = -78.6222499180456 | etot = -33.5644506457568 +70000 ekin = 28.2842777970645 | erot = 15.5192251789786 | epot = -77.3679536187083 | etot = -33.5644506426651 +71000 ekin = 27.2428007223146 | erot = 15.3775924468384 | epot = -76.1848438089721 | etot = -33.5644506398192 +72000 ekin = 26.2738583640503 | erot = 15.2738682128135 | epot = -75.1121772142993 | etot = -33.5644506374354 +73000 ekin = 25.3929266243352 | erot = 15.2252389252993 | epot = -74.1826161852624 | etot = -33.5644506356278 +74000 ekin = 24.6118800235924 | erot = 15.2440811522979 | epot = -73.4204118109397 | etot = -33.5644506350493 +75000 ekin = 23.9285421197386 | erot = 15.2937064902862 | epot = -72.7866996078894 | etot = -33.5644509978646 +76000 ekin = 23.6014258497366 | erot = 14.5530249139085 | epot = -71.7189013877723 | etot = -33.5644506241273 +77000 ekin = 24.0021186681998 | erot = 14.6672556253499 | epot = -72.2338249120015 | etot = -33.5644506184517 +78000 ekin = 23.7667117018473 | erot = 14.8821032755388 | epot = -72.2132655967964 | etot = -33.5644506194103 +79000 ekin = 23.6362408803455 | erot = 15.1573231058556 | epot = -72.3580146069965 | etot = -33.5644506207955 +80000 ekin = 23.6008292998183 | erot = 15.4801164769237 | epot = -72.6453963992505 | etot = -33.5644506225085 +81000 ekin = 23.6479278988512 | erot = 15.8366782045229 | epot = -73.0490567276813 | etot = -33.5644506243072 +82000 ekin = 23.763195852744 | erot = 16.2135577483195 | epot = -73.541204227137 | etot = -33.5644506260735 +83000 ekin = 23.93133805131 | erot = 16.5989137528028 | epot = -74.0947024318273 | etot = -33.5644506277145 +84000 ekin = 24.1405337461498 | erot = 16.9832739889214 | epot = -74.6882583637893 | etot = -33.5644506287181 +85000 ekin = 24.3851366362468 | erot = 17.3594190811792 | epot = -75.3090063475356 | etot = -33.5644506301095 +86000 ekin = 24.6499622429188 | erot = 17.7229731863038 | epot = -75.937386060464 | etot = -33.5644506312414 +87000 ekin = 24.9195866966175 | erot = 18.0734917202536 | epot = -76.5575290489239 | etot = -33.5644506320529 +88000 ekin = 25.1793742014134 | erot = 18.4146339772087 | epot = -77.1584588111687 | etot = -33.5644506325466 +89000 ekin = 25.4156568494637 | erot = 18.753968669385 | epot = -77.7340761514942 | etot = -33.5644506326455 +90000 ekin = 25.6096840035671 | erot = 19.1040901404621 | epot = -78.2782247770918 | etot = -33.5644506330626 +91000 ekin = 25.7348417969792 | erot = 19.4865010462193 | epot = -78.7857934757851 | etot = -33.5644506325866 +92000 ekin = 25.7824117490222 | erot = 19.9168308436387 | epot = -79.2636932257648 | etot = -33.5644506331039 +93000 ekin = 25.7436484203088 | erot = 20.4015276208854 | epot = -79.7096266744372 | etot = -33.564450633243 +94000 ekin = 25.6107487399104 | erot = 20.949881961115 | epot = -80.1250813341981 | etot = -33.5644506331727 +95000 ekin = 25.3788454256131 | erot = 21.5718811146881 | epot = -80.5151771730697 | etot = -33.5644506327685 +96000 ekin = 25.0476635684687 | erot = 22.2778886106639 | epot = -80.8900028110571 | etot = -33.5644506319245 +97000 ekin = 24.6228037012584 | erot = 23.0785820232847 | epot = -81.2658363557742 | etot = -33.564450631231 +98000 ekin = 24.1163650303316 | erot = 23.980262455687 | epot = -81.6610781157268 | etot = -33.5644506297082 +99000 ekin = 23.5467601995482 | erot = 24.9897227937605 | epot = -82.1009336213136 | etot = -33.5644506280048 +100000 ekin = 22.9377076830221 | erot = 26.112544428779 | epot = -82.6147027382293 | etot = -33.5644506264282 +101000 ekin = 22.3162402354096 | erot = 27.3495277986626 | epot = -83.2302186594371 | etot = -33.5644506253649 +102000 ekin = 21.7099673799529 | erot = 28.6941289887159 | epot = -83.9685469938564 | etot = -33.5644506251876 +103000 ekin = 21.1440927333112 | erot = 30.1304131051784 | epot = -84.8389564645821 | etot = -33.5644506260925 +104000 ekin = 20.639036073264 | erot = 31.6318076720505 | epot = -85.8352943737208 | etot = -33.5644506284063 +105000 ekin = 20.2097356177992 | erot = 33.155951127779 | epot = -86.9301373769384 | etot = -33.5644506313601 +106000 ekin = 19.8659962936204 | erot = 34.6591523175009 | epot = -88.0895992441982 | etot = -33.5644506330769 +107000 ekin = 19.6196926152642 | erot = 36.1003389899193 | epot = -89.2844822415487 | etot = -33.5644506363652 +108000 ekin = 19.4737764770437 | erot = 37.4404659122968 | epot = -90.4786930287769 | etot = -33.5644506394364 +109000 ekin = 19.4257211237998 | erot = 38.6395727467532 | epot = -91.6297445157463 | etot = -33.5644506451932 +110000 ekin = 19.4643317381198 | erot = 39.6495422786743 | epot = -92.6783246653681 | etot = -33.564450648574 +111000 ekin = 19.5812097010477 | erot = 40.4340503208624 | epot = -93.5797106732505 | etot = -33.5644506513404 +112000 ekin = 19.7688752467926 | erot = 40.9641614007962 | epot = -94.297487301236 | etot = -33.5644506536472 +113000 ekin = 20.0199352606443 | erot = 41.2235617686336 | epot = -94.8079476827577 | etot = -33.5644506534798 +114000 ekin = 20.3316783135453 | erot = 41.2208106095024 | epot = -95.1169395739077 | etot = -33.56445065086 +115000 ekin = 20.7092934859803 | erot = 40.9902193450322 | epot = -95.2639634785888 | etot = -33.5644506475763 +116000 ekin = 21.1584070130043 | erot = 40.5711692188877 | epot = -95.2940268780899 | etot = -33.5644506461979 +117000 ekin = 21.6717401642267 | erot = 40.0068194492192 | epot = -95.2430102574592 | etot = -33.5644506440133 +118000 ekin = 22.2304498749665 | erot = 39.3449170916981 | epot = -95.1398176087205 | etot = -33.5644506420559 +119000 ekin = 22.8040322747498 | erot = 38.6279078104772 | epot = -94.9963907285437 | etot = -33.5644506433167 +120000 ekin = 23.3636455910773 | erot = 37.8733163419346 | epot = -94.8014125775743 | etot = -33.5644506445623 +121000 ekin = 23.8883342479557 | erot = 37.0853024873734 | epot = -94.5380873807793 | etot = -33.5644506454502 +122000 ekin = 24.3628295450724 | erot = 36.2617521254169 | epot = -94.1890323184744 | etot = -33.5644506479851 +123000 ekin = 24.7728939422973 | erot = 35.3896441641822 | epot = -93.7269887541634 | etot = -33.564450647684 +124000 ekin = 25.1206142173503 | erot = 34.4655545655721 | epot = -93.1506194284831 | etot = -33.5644506455608 +125000 ekin = 25.4216604350096 | erot = 33.503516320942 | epot = -92.4896273979272 | etot = -33.5644506419756 +126000 ekin = 25.6927735129487 | erot = 32.5281184075612 | epot = -91.7853425611144 | etot = -33.5644506406046 +127000 ekin = 25.9460883081157 | erot = 31.5650113724921 | epot = -91.0755503181686 | etot = -33.5644506375608 +128000 ekin = 26.1993872383113 | erot = 30.6366650539312 | epot = -90.4005029275328 | etot = -33.5644506352904 +129000 ekin = 26.4652741312988 | erot = 29.761033950875 | epot = -89.790758715097 | etot = -33.5644506329232 +130000 ekin = 26.7486727551143 | erot = 28.9506137583675 | epot = -89.2637371464425 | etot = -33.5644506329608 +131000 ekin = 27.0469092028967 | erot = 28.2034442942545 | epot = -88.8148041302784 | etot = -33.5644506331273 +132000 ekin = 27.354287486523 | erot = 27.516081388701 | epot = -88.4348195084624 | etot = -33.5644506332384 +133000 ekin = 27.6627378161327 | erot = 26.888810791231 | epot = -88.1159992405597 | etot = -33.564450633196 +134000 ekin = 27.967292318186 | erot = 26.3214524159643 | epot = -87.8531953671446 | etot = -33.5644506329943 +135000 ekin = 28.2641150378973 | erot = 25.8141340320123 | epot = -87.6426997025848 | etot = -33.5644506326751 +136000 ekin = 28.5509978141275 | erot = 25.3673179322137 | epot = -87.4827663786045 | etot = -33.5644506322633 +137000 ekin = 28.8259159092095 | erot = 24.9801644637669 | epot = -87.3705310053013 | etot = -33.5644506323249 +138000 ekin = 29.0842610649225 | erot = 24.6492546073972 | epot = -87.2979663044031 | etot = -33.5644506320834 +139000 ekin = 29.3272222877147 | erot = 24.3700782380114 | epot = -87.2617511574221 | etot = -33.5644506316961 +140000 ekin = 29.5579798491409 | erot = 24.1376580585839 | epot = -87.2600885391577 | etot = -33.5644506314329 +141000 ekin = 29.7799846346147 | erot = 23.946242993064 | epot = -87.2906782589293 | etot = -33.5644506312505 +142000 ekin = 29.9959841884821 | erot = 23.7899704636108 | epot = -87.3504052832972 | etot = -33.5644506312043 +143000 ekin = 30.20703491277 | erot = 23.6632996950733 | epot = -87.4347852391637 | etot = -33.5644506313204 +144000 ekin = 30.411884002902 | erot = 23.5613798569439 | epot = -87.537714491437 | etot = -33.564450631591 +145000 ekin = 30.606845687222 | erot = 23.4803656669174 | epot = -87.6516619861197 | etot = -33.5644506319804 +146000 ekin = 30.786123077816 | erot = 23.4176420010831 | epot = -87.7682157113377 | etot = -33.5644506324387 +147000 ekin = 30.9424364770354 | erot = 23.3719366394343 | epot = -87.878823749381 | etot = -33.5644506329113 +148000 ekin = 31.0677916134895 | erot = 23.343321608025 | epot = -87.9755638548643 | etot = -33.5644506333498 +149000 ekin = 31.1542520331538 | erot = 23.3331254537238 | epot = -88.0518281205882 | etot = -33.5644506337106 +150000 ekin = 31.1946418128191 | erot = 23.3437996409618 | epot = -88.1028920877408 | etot = -33.5644506339599 +151000 ekin = 31.183806383935 | erot = 23.3785936220274 | epot = -88.1268506398047 | etot = -33.5644506338423 +152000 ekin = 31.1202290278342 | erot = 23.4412183836801 | epot = -88.1258980452558 | etot = -33.5644506337415 +153000 ekin = 31.0032553217694 | erot = 23.5372189789098 | epot = -88.1049249338573 | etot = -33.5644506331782 +154000 ekin = 30.8354559406818 | erot = 23.6729952127027 | epot = -88.0729017863056 | etot = -33.5644506329211 +155000 ekin = 30.6186135870613 | erot = 23.8551009557717 | epot = -88.0381651751801 | etot = -33.564450632347 +156000 ekin = 30.3571457582689 | erot = 24.0914721103803 | epot = -88.0130685002393 | etot = -33.5644506315902 +157000 ekin = 30.057410850046 | erot = 24.3907046676107 | epot = -88.012566148493 | etot = -33.5644506308362 +158000 ekin = 29.7256756923437 | erot = 24.762556719639 | epot = -88.0526830421884 | etot = -33.5644506302057 +159000 ekin = 29.3667041508031 | erot = 25.2124449846246 | epot = -88.1435997656418 | etot = -33.5644506302141 +160000 ekin = 28.9829375848383 | erot = 25.7406189361283 | epot = -88.2880071520223 | etot = -33.5644506310558 +161000 ekin = 28.5708031098758 | erot = 26.3449808633592 | epot = -88.4802346049617 | etot = -33.5644506317267 +162000 ekin = 28.1278607476191 | erot = 27.0188065006254 | epot = -88.7111178809976 | etot = -33.564450632753 +163000 ekin = 27.6515523776561 | erot = 27.7508923428494 | epot = -88.9668953542198 | etot = -33.5644506337143 +164000 ekin = 27.1398166575548 | erot = 28.5265897115537 | epot = -89.2308570046245 | etot = -33.564450635516 +165000 ekin = 26.59018012942 | erot = 29.3236809534503 | epot = -89.4783117201368 | etot = -33.5644506372666 +166000 ekin = 26.0027550424038 | erot = 30.1148491025895 | epot = -89.6820547838353 | etot = -33.564450638842 +167000 ekin = 25.3815734826451 | erot = 30.8714146428701 | epot = -89.8174387656406 | etot = -33.5644506401255 +168000 ekin = 24.7338280126237 | erot = 31.5656853660197 | epot = -89.8639640196521 | etot = -33.5644506410087 +169000 ekin = 24.0691061638315 | erot = 32.1733410341242 | epot = -89.8068978394117 | etot = -33.564450641456 +170000 ekin = 23.3986380903856 | erot = 32.6761770397929 | epot = -89.6392657713649 | etot = -33.5644506411864 +171000 ekin = 22.7350947047576 | erot = 33.0649339609238 | epot = -89.3644793058787 | etot = -33.5644506401972 +172000 ekin = 22.0927595064345 | erot = 33.3397459263048 | epot = -88.9969560711814 | etot = -33.5644506384421 +173000 ekin = 21.4881436133131 | erot = 33.5098602953131 | epot = -88.5624545444177 | etot = -33.5644506357915 +174000 ekin = 20.9424106184029 | erot = 33.5950638981387 | epot = -88.1019251458152 | etot = -33.5644506292736 +175000 ekin = 20.4887725385188 | erot = 33.6332952588445 | epot = -87.6865184248663 | etot = -33.5644506275031 +176000 ekin = 20.1459992745576 | erot = 33.6413286939825 | epot = -87.351778594707 | etot = -33.564450626167 +177000 ekin = 19.9273952403355 | erot = 33.6264319072463 | epot = -87.1182777732003 | etot = -33.5644506256185 +178000 ekin = 19.8405268115202 | erot = 33.5862782738567 | epot = -86.9912557124967 | etot = -33.5644506271198 +179000 ekin = 19.8828425829329 | erot = 33.5043404166444 | epot = -86.9516336276337 | etot = -33.5644506280564 +180000 ekin = 20.0524881206169 | erot = 33.3671042345424 | epot = -86.9840429849014 | etot = -33.5644506297421 +181000 ekin = 20.3414841297263 | erot = 33.1581782006462 | epot = -87.0641129622371 | etot = -33.5644506318646 +182000 ekin = 20.7352057198159 | erot = 32.8612622822523 | epot = -87.1609186361345 | etot = -33.5644506340663 +183000 ekin = 21.2137106223586 | erot = 32.4647477949406 | epot = -87.2429090531987 | etot = -33.5644506358994 +184000 ekin = 21.7537587720613 | erot = 31.9655803613327 | epot = -87.2837897705835 | etot = -33.5644506371895 +185000 ekin = 22.3286746031838 | erot = 31.3708022039154 | epot = -87.263927444786 | etot = -33.5644506376868 +186000 ekin = 22.9115100132845 | erot = 30.6990331536428 | epot = -87.1749938042474 | etot = -33.5644506373201 +187000 ekin = 23.4775030152572 | erot = 29.9792070479707 | epot = -87.0211606994407 | etot = -33.5644506362127 +188000 ekin = 24.0059463479901 | erot = 29.2469949106332 | epot = -86.8173918933289 | etot = -33.5644506347057 +189000 ekin = 24.4809955944174 | erot = 28.5392131436642 | epot = -86.5846593713795 | etot = -33.5644506332979 +190000 ekin = 24.8911658073071 | erot = 27.8871249849441 | epot = -86.3427414247871 | etot = -33.5644506325359 +191000 ekin = 25.2275609419512 | erot = 27.3101259966536 | epot = -86.1021375715765 | etot = -33.5644506329717 +192000 ekin = 25.4831011426741 | erot = 26.8121375634346 | epot = -85.8596893403555 | etot = -33.5644506342468 +193000 ekin = 25.2930335715097 | erot = 26.641089195829 | epot = -85.4985734034392 | etot = -33.5644506361005 +194000 ekin = 25.0352601614021 | erot = 26.652526548361 | epot = -85.2522373921847 | etot = -33.5644506824216 +195000 ekin = 25.0363508840831 | erot = 26.2378500699574 | epot = -84.838651623646 | etot = -33.5644506696055 +196000 ekin = 24.9648942549683 | erot = 25.7868302418778 | epot = -84.3161751669049 | etot = -33.5644506700588 +197000 ekin = 24.8200850732436 | erot = 25.3002719383815 | epot = -83.684807680627 | etot = -33.5644506690019 +198000 ekin = 24.6172884588533 | erot = 24.7762496503829 | epot = -82.957988775829 | etot = -33.5644506665928 +199000 ekin = 24.3770483830299 | erot = 24.2259949153857 | epot = -82.1674939619529 | etot = -33.5644506635372 +200000 ekin = 24.122436002035 | erot = 23.6691820640912 | epot = -81.3560687261623 | etot = -33.5644506600361 +201000 ekin = 23.8775516468524 | erot = 23.129174398578 | epot = -80.5711767022531 | etot = -33.5644506568227 +202000 ekin = 23.6646103059802 | erot = 22.6276096876317 | epot = -79.856670647895 | etot = -33.5644506542831 +203000 ekin = 23.5017139925634 | erot = 22.1809863327408 | epot = -79.2471509779163 | etot = -33.5644506526121 +204000 ekin = 23.4012931943709 | erot = 21.7992926193403 | epot = -78.7650364652273 | etot = -33.564450651516 +205000 ekin = 23.3698442687857 | erot = 21.4883950765935 | epot = -78.4226899967305 | etot = -33.5644506513513 +206000 ekin = 23.4080277663952 | erot = 21.2503388252223 | epot = -78.222817243383 | etot = -33.5644506517654 +207000 ekin = 23.510672424505 | erot = 21.0828853352514 | epot = -78.1580084122941 | etot = -33.5644506525377 +208000 ekin = 23.668353418069 | erot = 20.9827921925506 | epot = -78.2155962640904 | etot = -33.5644506534708 +209000 ekin = 23.8319531636404 | erot = 20.8686960092894 | epot = -78.2650998050505 | etot = -33.5644506321207 +210000 ekin = 24.1634900876545 | erot = 20.8246815259943 | epot = -78.5526222834943 | etot = -33.5644506698455 +211000 ekin = 24.4545474929207 | erot = 20.8320949387518 | epot = -78.8510930934304 | etot = -33.564450661758 +212000 ekin = 24.7210588847004 | erot = 20.8889178093638 | epot = -79.1744273565512 | etot = -33.564450662487 +213000 ekin = 24.9762555918736 | erot = 20.995657067092 | epot = -79.5363633251364 | etot = -33.5644506661708 +214000 ekin = 25.2054830046564 | erot = 21.1345527593257 | epot = -79.904486431005 | etot = -33.5644506670229 +215000 ekin = 25.4055444850595 | erot = 21.2948000239986 | epot = -80.2647951766001 | etot = -33.564450667542 +216000 ekin = 25.5773395550173 | erot = 21.4659469017842 | epot = -80.6077371248694 | etot = -33.5644506680679 +217000 ekin = 25.7224226234168 | erot = 21.6383314527717 | epot = -80.9252047446809 | etot = -33.5644506684925 +218000 ekin = 25.8456307141236 | erot = 21.7996006617657 | epot = -81.2096820449196 | etot = -33.5644506690303 +219000 ekin = 25.9524523541736 | erot = 21.9358336225136 | epot = -81.4527366463228 | etot = -33.5644506696356 +220000 ekin = 26.0480501371294 | erot = 22.0331400323276 | epot = -81.6456408394172 | etot = -33.5644506699602 +221000 ekin = 26.1377559921142 | erot = 22.0801399062462 | epot = -81.7823465685532 | etot = -33.5644506701928 +222000 ekin = 26.2262421157048 | erot = 22.0692633440543 | epot = -81.859956129764 | etot = -33.564450670005 +223000 ekin = 26.3184403630266 | erot = 21.9982474658049 | epot = -81.8811384982253 | etot = -33.5644506693938 +224000 ekin = 26.4171271373519 | erot = 21.8710288815675 | epot = -81.8526066880913 | etot = -33.5644506691719 +225000 ekin = 26.5225389104719 | erot = 21.6965423523057 | epot = -81.7835319309085 | etot = -33.5644506681309 +226000 ekin = 26.7157923548783 | erot = 21.3119214437842 | epot = -81.5921644821736 | etot = -33.5644506835112 +227000 ekin = 27.2484396437764 | erot = 20.6374955149859 | epot = -81.4503858460509 | etot = -33.5644506872886 +228000 ekin = 27.5078528971482 | erot = 20.2748179574152 | epot = -81.3471215226765 | etot = -33.564450668113 +229000 ekin = 27.6312830550944 | erot = 19.9858964954709 | epot = -81.1816302175473 | etot = -33.564450666982 +230000 ekin = 27.7676058404246 | erot = 19.7189438600613 | epot = -81.0510003675302 | etot = -33.5644506670444 +231000 ekin = 27.9171898995783 | erot = 19.4851196432287 | epot = -80.9667602108582 | etot = -33.5644506680513 +232000 ekin = 28.075807909498 | erot = 19.2892055600519 | epot = -80.9294641380373 | etot = -33.5644506684874 +233000 ekin = 28.2354888581722 | erot = 19.1284398309988 | epot = -80.9283793559407 | etot = -33.5644506667697 +234000 ekin = 28.3953039485459 | erot = 19.0132859353609 | epot = -80.9730405513788 | etot = -33.564450667472 +235000 ekin = 28.5569493494506 | erot = 18.9585387746691 | epot = -81.0799387921407 | etot = -33.564450668021 +236000 ekin = 28.7166448189613 | erot = 18.9671002034186 | epot = -81.2481956905202 | etot = -33.5644506681403 +237000 ekin = 28.8725023819759 | erot = 19.0433381874627 | epot = -81.4802912374047 | etot = -33.5644506679661 +238000 ekin = 29.0257746255977 | erot = 19.1916941122354 | epot = -81.781919405367 | etot = -33.5644506675339 +239000 ekin = 29.1795842186893 | erot = 19.4168064167824 | epot = -82.1608413029194 | etot = -33.5644506674477 +240000 ekin = 29.3337146102013 | erot = 19.7090725309664 | epot = -82.6072378098102 | etot = -33.5644506686425 +241000 ekin = 29.4868078967125 | erot = 20.0596352268188 | epot = -83.1108937928375 | etot = -33.5644506693062 +242000 ekin = 29.6351003169461 | erot = 20.4605457842952 | epot = -83.6600967717312 | etot = -33.5644506704898 +243000 ekin = 29.8921802425375 | erot = 20.6958964400281 | epot = -84.1525273495514 | etot = -33.5644506669859 +244000 ekin = 30.2594419587798 | erot = 20.964961730853 | epot = -84.7888543939581 | etot = -33.5644507043253 +245000 ekin = 30.3074620328625 | erot = 21.308999500704 | epot = -85.1809122847658 | etot = -33.5644507511994 +246000 ekin = 30.6998172933751 | erot = 21.0861202554954 | epot = -85.3503880690886 | etot = -33.5644505202181 +247000 ekin = 31.2652124059134 | erot = 21.7433599271938 | epot = -86.5730230770323 | etot = -33.5644507439251 +248000 ekin = 31.2039013197185 | erot = 22.3578318778188 | epot = -87.1261839420136 | etot = -33.5644507444763 +249000 ekin = 31.0628965882796 | erot = 22.9361503364912 | epot = -87.5634976683527 | etot = -33.5644507435818 +250000 ekin = 30.8544219835667 | erot = 23.4738999845995 | epot = -87.8927727106867 | etot = -33.5644507425205 +251000 ekin = 30.5979929542448 | erot = 23.973249537305 | epot = -88.1356932313339 | etot = -33.5644507397841 +252000 ekin = 30.3186084933224 | erot = 24.447023432737 | epot = -88.3300826628831 | etot = -33.5644507368237 +253000 ekin = 30.0416328683412 | erot = 24.9117142614702 | epot = -88.5177978640591 | etot = -33.5644507342476 +254000 ekin = 29.6651322242409 | erot = 25.3352238225117 | epot = -88.5648072260424 | etot = -33.5644511792898 +255000 ekin = 27.9972596304248 | erot = 25.3436445664535 | epot = -86.9053550133662 | etot = -33.5644508164878 +256000 ekin = 27.4480536507435 | erot = 26.2038023388295 | epot = -87.2163067908443 | etot = -33.5644508012713 +257000 ekin = 28.5107044681316 | erot = 27.5793602338718 | epot = -89.6545158781981 | etot = -33.5644511761947 +258000 ekin = 28.9485040029364 | erot = 27.9141399631527 | epot = -90.4270947740165 | etot = -33.5644508079275 +259000 ekin = 29.1923898090981 | erot = 28.2760336628793 | epot = -91.0328742826499 | etot = -33.5644508106724 +260000 ekin = 29.442065950696 | erot = 28.6795119903338 | epot = -91.6860287571124 | etot = -33.5644508160826 +261000 ekin = 29.6845039883694 | erot = 29.1068404637727 | epot = -92.3557952702589 | etot = -33.5644508181168 +262000 ekin = 29.8834680797453 | erot = 29.5461970803508 | epot = -92.9941159814699 | etot = -33.5644508213738 +263000 ekin = 30.0159351907403 | erot = 29.9649097381375 | epot = -93.5452957538687 | etot = -33.5644508249909 +264000 ekin = 30.0524877646951 | erot = 30.3384906869752 | epot = -93.9554292802054 | etot = -33.5644508285351 +265000 ekin = 29.9659450397006 | erot = 30.6431999053458 | epot = -94.1735957767029 | etot = -33.5644508316564 +266000 ekin = 29.7355380957043 | erot = 30.8554934503359 | epot = -94.1554823800756 | etot = -33.5644508340354 +267000 ekin = 29.350217253122 | erot = 30.9531552650632 | epot = -93.8678233536458 | etot = -33.5644508354606 +268000 ekin = 28.8109215599824 | erot = 30.9159121160793 | epot = -93.2912845119104 | etot = -33.5644508358487 +269000 ekin = 28.1312299025676 | erot = 30.72588001067 | epot = -92.4215607498475 | etot = -33.5644508366099 +270000 ekin = 27.3365120330892 | erot = 30.3685462543054 | epot = -91.2695091419232 | etot = -33.5644508545286 +271000 ekin = 26.4621552466015 | erot = 29.8348321072944 | epot = -89.8614382054951 | etot = -33.5644508515991 +272000 ekin = 25.5514537840266 | erot = 29.1238715109503 | epot = -88.2397761424711 | etot = -33.5644508474942 +273000 ekin = 24.6528090192241 | erot = 28.2453291639337 | epot = -86.4625890255924 | etot = -33.5644508424347 +274000 ekin = 23.821234650199 | erot = 27.2200000603148 | epot = -84.6056855414306 | etot = -33.5644508309167 +275000 ekin = 22.972977788893 | erot = 26.0804823635616 | epot = -82.6179111120453 | etot = -33.5644509595907 +276000 ekin = 22.0549791970788 | erot = 24.8883860441621 | epot = -80.507816055329 | etot = -33.564450814088 +277000 ekin = 22.2918454486476 | erot = 23.6844629884912 | epot = -79.5407594438925 | etot = -33.5644510067537 +278000 ekin = 22.2933944834357 | erot = 22.3796695906513 | epot = -78.237514901963 | etot = -33.5644508278759 +279000 ekin = 22.3659748249692 | erot = 21.1183819744112 | epot = -77.0488076286914 | etot = -33.5644508293109 +280000 ekin = 22.5183002078395 | erot = 19.9334324614475 | epot = -76.0161834966364 | etot = -33.5644508273493 +281000 ekin = 22.7529481191282 | erot = 18.8478601493533 | epot = -75.1652590940401 | etot = -33.5644508255585 +282000 ekin = 23.0795879184844 | erot = 17.877696647541 | epot = -74.5217353872615 | etot = -33.5644508212361 +283000 ekin = 23.5210121271395 | erot = 17.0345324476772 | epot = -74.1199953957519 | etot = -33.5644508209352 +284000 ekin = 24.0799247559117 | erot = 16.3233784659049 | epot = -73.9677540517901 | etot = -33.5644508299735 +285000 ekin = 24.7785446246702 | erot = 15.7478244913859 | epot = -74.0908199422723 | etot = -33.5644508262162 +286000 ekin = 25.6368387345602 | erot = 15.3047487828053 | epot = -74.5060383422943 | etot = -33.5644508249288 +287000 ekin = 26.6214548224918 | erot = 14.9922504829504 | epot = -75.1781561309387 | etot = -33.5644508254965 +288000 ekin = 27.7267158888742 | erot = 14.8012865017222 | epot = -76.092453221868 | etot = -33.5644508312716 +289000 ekin = 28.8920167227402 | erot = 14.7169892845884 | epot = -77.1734568439709 | etot = -33.5644508366423 +290000 ekin = 30.0553666648459 | erot = 14.7251675417739 | epot = -78.3449850482838 | etot = -33.5644508416639 +291000 ekin = 31.1595769632409 | erot = 14.8119291202727 | epot = -79.5359569291001 | etot = -33.5644508455866 +292000 ekin = 32.1608216689788 | erot = 14.9640713088948 | epot = -80.6893438261594 | etot = -33.5644508482858 +293000 ekin = 33.0319319380116 | erot = 15.1681739054538 | epot = -81.7645566935981 | etot = -33.5644508501327 +294000 ekin = 33.7599421346893 | erot = 15.408810677985 | epot = -82.7332036642727 | etot = -33.5644508515984 +295000 ekin = 34.3413485939618 | erot = 15.6673943342359 | epot = -83.5731937811138 | etot = -33.5644508529161 +296000 ekin = 34.7782829446679 | erot = 15.9229210434156 | epot = -84.2656548420787 | etot = -33.5644508539951 +297000 ekin = 35.0767101392297 | erot = 16.1546669536392 | epot = -84.7958279474613 | etot = -33.5644508545924 +298000 ekin = 35.2457989813398 | erot = 16.3457320030263 | epot = -85.1559818388994 | etot = -33.5644508545332 +299000 ekin = 35.2970066855107 | erot = 16.4859983979418 | epot = -85.3474559372914 | etot = -33.5644508538389 +300000 ekin = 35.2422237261552 | erot = 16.573594168153 | epot = -85.380268746981 | etot = -33.5644508526728 +301000 ekin = 35.0916597610679 | erot = 16.6147820199689 | epot = -85.2708926322436 | etot = -33.5644508512068 +302000 ekin = 34.8528128910437 | erot = 16.6227287108284 | epot = -85.0399924513857 | etot = -33.5644508495136 +303000 ekin = 34.5312597670471 | erot = 16.6156181966321 | epot = -84.7113288112829 | etot = -33.5644508476037 +304000 ekin = 34.131367434132 | erot = 16.6227567332235 | epot = -84.3185750111405 | etot = -33.5644508437849 +305000 ekin = 33.6571822643369 | erot = 16.6720234605658 | epot = -83.8936565670678 | etot = -33.5644508421651 +306000 ekin = 33.1151986332002 | erot = 16.7769746117295 | epot = -83.4566240858641 | etot = -33.5644508409344 +307000 ekin = 32.5134330702729 | erot = 16.9437629168019 | epot = -83.0216468273944 | etot = -33.5644508403197 +308000 ekin = 31.8601474906691 | erot = 17.1694637372836 | epot = -82.5940620683869 | etot = -33.5644508404342 +309000 ekin = 31.1628016434418 | erot = 17.4420089824945 | epot = -82.1692614669022 | etot = -33.5644508409659 +310000 ekin = 30.4284939703051 | erot = 17.7430091432334 | epot = -81.7359539560319 | etot = -33.5644508424934 +311000 ekin = 29.6636970636957 | erot = 18.0450727085003 | epot = -81.2732206157428 | etot = -33.5644508435468 +312000 ekin = 28.8763119838117 | erot = 18.3211026917138 | epot = -80.7618655199236 | etot = -33.5644508443981 +313000 ekin = 28.0757317031842 | erot = 18.5482322979291 | epot = -80.1884148456634 | etot = -33.5644508445501 +314000 ekin = 27.2754576014843 | erot = 18.7102692133756 | epot = -79.5501776586764 | etot = -33.5644508438165 +315000 ekin = 26.4927512875096 | erot = 18.8002978244007 | epot = -78.8574999542301 | etot = -33.5644508423198 +316000 ekin = 25.747682520664 | erot = 18.8201859999041 | epot = -78.132319360867 | etot = -33.564450840299 +317000 ekin = 25.0614905058277 | erot = 18.7788964667723 | epot = -77.4048378106377 | etot = -33.5644508380377 +318000 ekin = 24.4546904068649 | erot = 18.6903703700934 | epot = -76.7095116127357 | etot = -33.5644508357774 +319000 ekin = 23.9454326766056 | erot = 18.5716676910418 | epot = -76.0815512013104 | etot = -33.564450833663 +320000 ekin = 23.5484361618332 | erot = 18.4417359442004 | epot = -75.5546229377731 | etot = -33.5644508317395 +321000 ekin = 23.2745454666142 | erot = 18.3209670206188 | epot = -75.159963317225 | etot = -33.5644508299921 +322000 ekin = 23.1307065450427 | erot = 18.2311244116958 | epot = -74.9262817851812 | etot = -33.5644508284427 +323000 ekin = 23.1199305195539 | erot = 18.1948729378857 | epot = -74.8792542846864 | etot = -33.5644508272467 +324000 ekin = 23.2402241371604 | erot = 18.2346442880494 | epot = -75.0393192519605 | etot = -33.5644508267507 +325000 ekin = 23.4710021372648 | erot = 18.3668956954565 | epot = -75.4023486640661 | etot = -33.5644508313448 +326000 ekin = 23.7795455090648 | erot = 18.5932769386575 | epot = -75.9372732822622 | etot = -33.5644508345399 +327000 ekin = 24.1343713308685 | erot = 18.9009306659146 | epot = -76.5997528363167 | etot = -33.5644508395337 +328000 ekin = 24.4953646019599 | erot = 19.2611055950044 | epot = -77.3209210428185 | etot = -33.5644508458542 +329000 ekin = 24.8184483226243 | erot = 19.6309716494425 | epot = -78.0138708244921 | etot = -33.5644508524254 +330000 ekin = 25.0648153577033 | erot = 19.9600875039469 | epot = -78.5893537191492 | etot = -33.564450857499 +331000 ekin = 25.2101383722027 | erot = 20.2008919381154 | epot = -78.9754811706424 | etot = -33.5644508603242 +332000 ekin = 25.2457706638964 | erot = 20.3248269291664 | epot = -79.1350484526804 | etot = -33.5644508596175 +333000 ekin = 25.1861890029755 | erot = 20.3296166389972 | epot = -79.080256497531 | etot = -33.5644508555582 +334000 ekin = 25.06621909807 | erot = 20.2399843242203 | epot = -78.8706542714784 | etot = -33.5644508491881 +335000 ekin = 24.9333683336748 | erot = 20.1009816218885 | epot = -78.5988007975495 | etot = -33.5644508419862 +336000 ekin = 24.8381114575746 | erot = 19.9670256544153 | epot = -78.3695879473404 | etot = -33.5644508353505 +337000 ekin = 24.8247545151604 | erot = 19.8908557635149 | epot = -78.2800611094823 | etot = -33.564450830807 +338000 ekin = 24.9246805342402 | erot = 19.9088859975838 | epot = -78.3980173598233 | etot = -33.5644508279992 +339000 ekin = 25.1522743470225 | erot = 20.043365846569 | epot = -78.7600910209592 | etot = -33.5644508273677 +340000 ekin = 25.5040328015065 | erot = 20.3063243572631 | epot = -79.3748079874543 | etot = -33.5644508286847 +341000 ekin = 25.9593882032928 | erot = 20.6972938179576 | epot = -80.2211328527409 | etot = -33.5644508314906 +342000 ekin = 26.4842114255991 | erot = 21.206040618102 | epot = -81.2547028790046 | etot = -33.5644508353035 +343000 ekin = 27.0356929913546 | erot = 21.8153279723555 | epot = -82.4154718032949 | etot = -33.5644508395848 +344000 ekin = 27.567697334587 | erot = 22.5033872894653 | epot = -83.6355354678824 | etot = -33.5644508438302 +345000 ekin = 28.0359749647809 | erot = 23.2463366467822 | epot = -84.846762459203 | etot = -33.5644508476399 +346000 ekin = 28.4026013553742 | erot = 24.0201112992316 | epot = -85.9871635053201 | etot = -33.5644508507143 +347000 ekin = 28.6398915195253 | erot = 24.8020103746405 | epot = -87.0063527468454 | etot = -33.5644508526796 +348000 ekin = 28.7326075378057 | erot = 25.5714490943132 | epot = -87.8685074861033 | etot = -33.5644508539845 +349000 ekin = 28.6752584344467 | erot = 26.310018084166 | epot = -88.54972737313 | etot = -33.5644508545173 +350000 ekin = 28.4730637357388 | erot = 27.0009502159403 | epot = -89.038464806251 | etot = -33.5644508545719 +351000 ekin = 28.139537848467 | erot = 27.6270646737408 | epot = -89.3310533768684 | etot = -33.5644508546605 +352000 ekin = 27.6929580738718 | erot = 28.1676652362932 | epot = -89.4250741654184 | etot = -33.5644508552534 +353000 ekin = 27.1526950366655 | erot = 28.5958100265632 | epot = -89.3129559197891 | etot = -33.5644508565604 +354000 ekin = 26.5365141387242 | erot = 28.8781341172769 | epot = -88.9790991143028 | etot = -33.5644508583017 +355000 ekin = 25.859879983625 | erot = 28.979303109793 | epot = -88.4036339530082 | etot = -33.5644508595902 +356000 ekin = 25.1375717946349 | erot = 28.8722956886234 | epot = -87.5743183425605 | etot = -33.5644508593022 +357000 ekin = 24.3868741548746 | erot = 28.5495289602174 | epot = -86.5008539717697 | etot = -33.5644508566778 +358000 ekin = 23.6300778926847 | erot = 28.0297879777441 | epot = -85.2243167222827 | etot = -33.5644508518539 +359000 ekin = 22.8939201469121 | erot = 27.3556770360709 | epot = -83.8140480289405 | etot = -33.5644508459575 +360000 ekin = 22.2065780073029 | erot = 26.5834479667625 | epot = -82.3544768140978 | etot = -33.5644508400324 +361000 ekin = 21.5986345635183 | erot = 25.7744654427431 | epot = -80.9375508371388 | etot = -33.5644508308774 +362000 ekin = 21.1083260621098 | erot = 24.989507840873 | epot = -79.6622847318363 | etot = -33.5644508288535 +363000 ekin = 20.7375100619861 | erot = 24.2576398933005 | epot = -78.5596007834792 | etot = -33.5644508281925 +364000 ekin = 20.4760033679782 | erot = 23.5946470164008 | epot = -77.6351012127697 | etot = -33.5644508283907 +365000 ekin = 20.3079089893774 | erot = 23.0095138965374 | epot = -76.8818737148743 | etot = -33.5644508289595 +366000 ekin = 20.2147979336069 | erot = 22.5083719357563 | epot = -76.2876206988662 | etot = -33.564450829503 +367000 ekin = 20.1786185360507 | erot = 22.0973297017962 | epot = -75.8403990676676 | etot = -33.5644508298207 +368000 ekin = 20.1837486799377 | erot = 21.783527063494 | epot = -75.5317265732851 | etot = -33.5644508298534 +369000 ekin = 20.2182310118496 | erot = 21.5747388187329 | epot = -75.3574206602588 | etot = -33.5644508296764 +370000 ekin = 20.2742556079346 | erot = 21.4781104693601 | epot = -75.3168169068273 | etot = -33.5644508295326 +371000 ekin = 20.3477066126786 | erot = 21.4982876397919 | epot = -75.4104450816055 | etot = -33.5644508291351 +372000 ekin = 20.4391769085933 | erot = 21.6370751258538 | epot = -75.6407028633516 | etot = -33.5644508289045 +373000 ekin = 20.5523906694389 | erot = 21.8921389377654 | epot = -76.0089804360871 | etot = -33.5644508288828 +374000 ekin = 20.6947607299073 | erot = 22.2561865203728 | epot = -76.5153980789369 | etot = -33.5644508286568 +375000 ekin = 20.8734352290091 | erot = 22.7176361068752 | epot = -77.1555221653772 | etot = -33.5644508294929 +376000 ekin = 21.0894935045173 | erot = 23.2620769849342 | epot = -77.9160213200335 | etot = -33.564450830582 +377000 ekin = 21.3446674637595 | erot = 23.8720082856019 | epot = -78.7811265808815 | etot = -33.5644508315201 +378000 ekin = 21.6424854229658 | erot = 24.5275644041121 | epot = -79.7345006599212 | etot = -33.5644508328433 +379000 ekin = 21.9906215821683 | erot = 25.2058289792437 | epot = -80.7609013956721 | etot = -33.5644508342601 +380000 ekin = 22.3975872845819 | erot = 25.8799316876613 | epot = -81.8419698101057 | etot = -33.5644508378624 +381000 ekin = 22.8474625365151 | erot = 26.5196756830445 | epot = -82.9315890609908 | etot = -33.5644508414312 +382000 ekin = 23.3214968285656 | erot = 27.0935868815677 | epot = -83.9795345554676 | etot = -33.5644508453342 +383000 ekin = 23.798948647365 | erot = 27.5682880228108 | epot = -84.9316875192928 | etot = -33.564450849117 +384000 ekin = 24.2602946691393 | erot = 27.9101784191673 | epot = -85.7349239406047 | etot = -33.5644508522981 +385000 ekin = 24.6909701695335 | erot = 28.0892515731785 | epot = -86.3446725968127 | etot = -33.5644508541008 +386000 ekin = 25.0758089634755 | erot = 28.0812872789521 | epot = -86.7215471013172 | etot = -33.5644508588896 +387000 ekin = 25.3886917944527 | erot = 27.8683599139988 | epot = -86.8215025663126 | etot = -33.5644508578612 +388000 ekin = 25.6321888109058 | erot = 27.4567876604357 | epot = -86.6534273265843 | etot = -33.5644508552428 +389000 ekin = 25.8173007945418 | erot = 26.8690369421787 | epot = -86.2507885888255 | etot = -33.564450852105 +390000 ekin = 25.9562629244047 | erot = 26.1386991558076 | epot = -85.6594129283773 | etot = -33.5644508481649 +391000 ekin = 26.0625510047816 | erot = 25.3050096520618 | epot = -84.9320115013513 | etot = -33.5644508445078 +392000 ekin = 26.1477279258083 | erot = 24.4077754075857 | epot = -84.1199541748157 | etot = -33.5644508414217 +393000 ekin = 26.2207009125763 | erot = 23.4862823970573 | epot = -83.2714341485498 | etot = -33.5644508389163 +394000 ekin = 26.2880235522712 | erot = 22.5776047858261 | epot = -82.4300791761996 | etot = -33.5644508381023 +395000 ekin = 26.3461327830412 | erot = 21.6992206105417 | epot = -81.6098042309749 | etot = -33.5644508373921 +396000 ekin = 26.3925769143341 | erot = 20.8648963380243 | epot = -80.8219240889404 | etot = -33.564450836582 +397000 ekin = 26.4280357588778 | erot = 20.0875980485136 | epot = -80.0800846429448 | etot = -33.5644508355533 +398000 ekin = 26.4568264159667 | erot = 19.3805747697846 | epot = -79.4018520200129 | etot = -33.5644508342616 +399000 ekin = 26.4863910840118 | erot = 18.7576183808216 | epot = -78.8084602983166 | etot = -33.5644508334833 +400000 ekin = 26.5240355653115 | erot = 18.2309165846171 | epot = -78.3194029820772 | etot = -33.5644508321487 +401000 ekin = 26.5785515874174 | erot = 17.8133011773559 | epot = -77.9563035961333 | etot = -33.56445083136 +402000 ekin = 26.655331687452 | erot = 17.5146324371175 | epot = -77.7344149563074 | etot = -33.564450831738 +403000 ekin = 26.750844144417 | erot = 17.3369800815745 | epot = -77.6522750599618 | etot = -33.5644508339703 +404000 ekin = 26.847889984664 | erot = 17.270366441038 | epot = -77.6827072640007 | etot = -33.5644508382987 +405000 ekin = 26.9136481513682 | erot = 17.290640983477 | epot = -77.7687399796861 | etot = -33.5644508448409 +406000 ekin = 26.9026743980023 | erot = 17.3519919762782 | epot = -77.8191172252627 | etot = -33.5644508509822 +407000 ekin = 26.7697793191984 | erot = 17.4151352559464 | epot = -77.7493654298542 | etot = -33.5644508547094 +408000 ekin = 26.4852107131098 | erot = 17.4599310844412 | epot = -77.50959265223 | etot = -33.564450854679 +409000 ekin = 26.0447937746191 | erot = 17.489715636672 | epot = -77.0989602628005 | etot = -33.5644508515094 +410000 ekin = 25.4686689663916 | erot = 17.525308599911 | epot = -76.5584284132955 | etot = -33.564450846993 +411000 ekin = 24.7901856102895 | erot = 17.5925678633025 | epot = -75.9472043165596 | etot = -33.5644508429676 +412000 ekin = 24.0429450721768 | erot = 17.7112262985626 | epot = -75.3186222110808 | etot = -33.5644508403414 +413000 ekin = 23.2530709441322 | erot = 17.8904894599544 | epot = -74.7080112431157 | etot = -33.5644508390292 +414000 ekin = 22.4380957569814 | erot = 18.1309089880911 | epot = -74.1334555836084 | etot = -33.5644508385359 +415000 ekin = 21.6095002972743 | erot = 18.4284521146042 | epot = -73.6024032502431 | etot = -33.5644508383646 +416000 ekin = 20.7759703154786 | erot = 18.7780315272693 | epot = -73.1184526809416 | etot = -33.5644508381937 +417000 ekin = 19.9459219944617 | erot = 19.1754390644637 | epot = -72.6858118967971 | etot = -33.5644508378717 +418000 ekin = 19.1290603144219 | erot = 19.6178812357862 | epot = -72.3113923875522 | etot = -33.5644508373441 +419000 ekin = 18.337241174533 | erot = 20.1037315121921 | epot = -72.005423523335 | etot = -33.5644508366099 +420000 ekin = 17.5848708565925 | erot = 20.6319495843217 | epot = -71.7812712766207 | etot = -33.5644508357065 +421000 ekin = 16.8888669765948 | erot = 21.2012508781818 | epot = -71.654568689525 | etot = -33.5644508347484 +422000 ekin = 16.2680311852926 | erot = 21.8088345392229 | epot = -71.6413165584697 | etot = -33.5644508339541 +423000 ekin = 15.7416423465874 | erot = 22.4484657015901 | epot = -71.754558881829 | etot = -33.5644508336516 +424000 ekin = 15.3271568809885 | erot = 23.1079611163195 | epot = -71.9995688315673 | etot = -33.5644508342592 +425000 ekin = 15.0370245442154 | erot = 23.7664993129421 | epot = -72.3679746933712 | etot = -33.5644508362137 +426000 ekin = 14.8748792452246 | erot = 24.3924933232269 | epot = -72.8318234082835 | etot = -33.564450839832 +427000 ekin = 14.8320398098318 | erot = 24.9432466996428 | epot = -73.3397373544817 | etot = -33.5644508450071 +428000 ekin = 14.8863924965225 | erot = 25.3682827942598 | epot = -73.8191261416323 | etot = -33.56445085085 +429000 ekin = 15.0062259694751 | erot = 25.6182665545283 | epot = -74.1889433796421 | etot = -33.5644508556387 +430000 ekin = 15.1595389321474 | erot = 25.6590201133498 | epot = -74.3830099030104 | etot = -33.5644508575131 +431000 ekin = 15.3249133699162 | erot = 25.4851984009302 | epot = -74.3745626264769 | etot = -33.5644508556305 +432000 ekin = 15.4974987577243 | erot = 25.1253113467255 | epot = -74.1872609552084 | etot = -33.5644508507585 +433000 ekin = 15.6867402477162 | erot = 24.6339851580146 | epot = -73.8851762504474 | etot = -33.5644508447166 +434000 ekin = 15.908478952494 | erot = 24.0759117528824 | epot = -73.5488415446164 | etot = -33.56445083924 +435000 ekin = 16.1769022059532 | erot = 23.5103596607956 | epot = -73.2517127020391 | etot = -33.5644508352903 +436000 ekin = 16.4997173059431 | erot = 22.9822765166324 | epot = -73.0464446556921 | etot = -33.5644508331166 +437000 ekin = 16.8769806268047 | erot = 22.5199344327298 | epot = -72.9613658919567 | etot = -33.5644508324222 +438000 ekin = 17.3021259571554 | erot = 22.1372453983087 | epot = -73.0038221882772 | etot = -33.5644508328131 +439000 ekin = 17.7637229039241 | erot = 21.8373393625943 | epot = -73.1655131004615 | etot = -33.5644508339431 +440000 ekin = 18.2471223979911 | erot = 21.6157595595468 | epot = -73.4273327930896 | etot = -33.5644508355518 +441000 ekin = 18.7357201395364 | erot = 21.4628710845581 | epot = -73.7630420615727 | etot = -33.5644508374783 +442000 ekin = 19.2118878212778 | erot = 21.365451542122 | epot = -74.1417902029878 | etot = -33.564450839588 +443000 ekin = 19.6577318124694 | erot = 21.3079015376941 | epot = -74.530084191929 | etot = -33.5644508417655 +444000 ekin = 20.0558238633166 | erot = 21.2733344148721 | epot = -74.8936091220801 | etot = -33.5644508438914 +445000 ekin = 20.389989391221 | erot = 21.2445884062662 | epot = -75.1990286433164 | etot = -33.5644508458292 +446000 ekin = 20.6461236043855 | erot = 21.2052857367663 | epot = -75.41586018866 | etot = -33.5644508475082 +447000 ekin = 20.8131102287267 | erot = 21.1405154512044 | epot = -75.5180765280277 | etot = -33.5644508480966 +448000 ekin = 20.8836321565114 | erot = 21.0415726580595 | epot = -75.4896556635799 | etot = -33.5644508490089 +449000 ekin = 20.8549766396171 | erot = 20.9006105485411 | epot = -75.3200380376018 | etot = -33.5644508494435 +450000 ekin = 20.7289995988534 | erot = 20.7094982244521 | epot = -75.0029486726748 | etot = -33.5644508493693 +451000 ekin = 20.5121237020311 | erot = 20.4634057687252 | epot = -74.5399803195251 | etot = -33.5644508487688 +452000 ekin = 20.2152499007445 | erot = 20.1611428754572 | epot = -73.9408436238401 | etot = -33.5644508476384 +453000 ekin = 19.8534700764778 | erot = 19.8054562088345 | epot = -73.2233771313103 | etot = -33.564450845998 +454000 ekin = 19.4456214291213 | erot = 19.4031472753593 | epot = -72.4132195483806 | etot = -33.5644508439 +455000 ekin = 19.0137205227782 | erot = 18.964872313207 | epot = -71.5430436774017 | etot = -33.5644508414165 +456000 ekin = 18.5823093299359 | erot = 18.5046119868878 | epot = -70.6513721554908 | etot = -33.5644508386671 +457000 ekin = 18.1775784949196 | erot = 18.0385547552735 | epot = -69.7805840860522 | etot = -33.5644508358591 +458000 ekin = 17.8262193052027 | erot = 17.5834820270569 | epot = -68.9741521652289 | etot = -33.5644508329693 +459000 ekin = 17.5544328314126 | erot = 17.1574115033566 | epot = -68.2762951651265 | etot = -33.5644508303572 +460000 ekin = 17.3857834993165 | erot = 16.7769882364293 | epot = -67.7272225639932 | etot = -33.5644508282474 +461000 ekin = 17.3389537756698 | erot = 16.4559737247112 | epot = -67.3593783272464 | etot = -33.5644508268654 +462000 ekin = 17.4254421541111 | erot = 16.2041333991429 | epot = -67.1940263796471 | etot = -33.5644508263932 +463000 ekin = 17.6475549837678 | erot = 16.0264214062831 | epot = -67.2384272169901 | etot = -33.5644508269392 +464000 ekin = 17.9971528391479 | erot = 15.9226257282762 | epot = -67.4842293959134 | etot = -33.5644508284893 +465000 ekin = 18.4555654855751 | erot = 15.8876205731988 | epot = -67.9076368896734 | etot = -33.5644508308995 +466000 ekin = 18.9948338162462 | erot = 15.9122553307032 | epot = -68.4715399808675 | etot = -33.5644508339181 +467000 ekin = 19.5800987880483 | erot = 15.9847161183743 | epot = -69.1292657436643 | etot = -33.5644508372418 +468000 ekin = 20.1726645576182 | erot = 16.0920334747517 | epot = -69.8291488729546 | etot = -33.5644508405847 +469000 ekin = 20.7331520538985 | erot = 16.2213910259127 | epot = -70.5189939235296 | etot = -33.5644508437184 +470000 ekin = 21.2242791251678 | erot = 16.3610502014337 | epot = -71.1497801730816 | etot = -33.5644508464802 +471000 ekin = 21.6130740294769 | erot = 16.5009517691198 | epot = -71.6784766473461 | etot = -33.5644508487495 +472000 ekin = 21.8725913830144 | erot = 16.6332178545353 | epot = -72.0702600879624 | etot = -33.5644508504127 +473000 ekin = 21.9833185471274 | erot = 16.7527436323183 | epot = -72.3005130308005 | etot = -33.5644508513548 +474000 ekin = 21.9344099205846 | erot = 16.8578720764489 | epot = -72.3567328485068 | etot = -33.5644508514733 +475000 ekin = 21.7247480853885 | erot = 16.9509439425814 | epot = -72.2401428786726 | etot = -33.5644508507026 +476000 ekin = 21.3637036554054 | erot = 17.0384540155504 | epot = -71.9666085200057 | etot = -33.5644508490499 +477000 ekin = 20.8713853162837 | erot = 17.130593864283 | epot = -71.5664300271643 | etot = -33.5644508465976 +478000 ekin = 20.2781056158348 | erot = 17.2401904856494 | epot = -71.082746945061 | etot = -33.5644508435769 +479000 ekin = 19.6228148922352 | erot = 17.3807417057109 | epot = -70.568007438244 | etot = -33.5644508402978 +480000 ekin = 18.9501924819871 | erot = 17.5641098023629 | epot = -70.078753121549 | etot = -33.5644508371989 +481000 ekin = 18.3063999207698 | erot = 17.7978626900194 | epot = -69.6687134455753 | etot = -33.5644508347861 +482000 ekin = 17.7338800308527 | erot = 18.0826185787009 | epot = -69.3809494430906 | etot = -33.564450833537 +483000 ekin = 17.2661333869729 | erot = 18.4098565340996 | epot = -69.2404407548555 | etot = -33.564450833783 +484000 ekin = 16.9123469726303 | erot = 18.5839236848227 | epot = -69.0607216150868 | etot = -33.5644509576338 +485000 ekin = 17.2473052119872 | erot = 17.4463141948379 | epot = -68.2580700315476 | etot = -33.5644506247225 +486000 ekin = 18.3155143093133 | erot = 17.18327309766 | epot = -69.0632384227249 | etot = -33.5644510157516 +487000 ekin = 18.1324826615341 | erot = 17.2801627137401 | epot = -68.9770961534278 | etot = -33.5644507781536 +488000 ekin = 18.0650666711476 | erot = 17.4264266856646 | epot = -69.0559441348375 | etot = -33.5644507780252 +489000 ekin = 18.1230207573334 | erot = 17.6201369927127 | epot = -69.3076085291276 | etot = -33.5644507790815 +490000 ekin = 18.2959502061969 | erot = 17.8551924365584 | epot = -69.7155934235351 | etot = -33.5644507807797 +491000 ekin = 18.5602651981851 | erot = 18.1239992625136 | epot = -70.2487152441586 | etot = -33.5644507834599 +492000 ekin = 18.8855238701042 | erot = 18.4159985148053 | epot = -70.8659731705823 | etot = -33.5644507856728 +493000 ekin = 19.2395352567771 | erot = 18.728264479211 | epot = -71.5322505229547 | etot = -33.5644507869666 +494000 ekin = 19.5921246703129 | erot = 19.0689157919769 | epot = -72.2254912502075 | etot = -33.5644507879177 +495000 ekin = 19.0728202099565 | erot = 18.9158482412593 | epot = -71.5531189784044 | etot = -33.5644505271886 +496000 ekin = 19.8797920560791 | erot = 18.7380967908761 | epot = -72.1823393790591 | etot = -33.564450532104 +497000 ekin = 21.3129327568523 | erot = 19.22085969099 | epot = -74.0982428020236 | etot = -33.5644503541812 +498000 ekin = 21.3264694813384 | erot = 19.7980335585312 | epot = -74.6889533938341 | etot = -33.5644503539645 +499000 ekin = 21.2778907743885 | erot = 20.4793064457547 | epot = -75.3216475744249 | etot = -33.5644503542817 +500000 ekin = 21.1661916284258 | erot = 21.258178122324 | epot = -75.9888201058597 | etot = -33.5644503551099 +501000 ekin = 20.9926825376647 | erot = 22.1178388254974 | epot = -76.6749717196181 | etot = -33.564450356456 +502000 ekin = 20.7610606942179 | erot = 23.0317414652511 | epot = -77.3572525175369 | etot = -33.5644503580679 +503000 ekin = 20.4798770188891 | erot = 23.9650377706427 | epot = -78.0093651496444 | etot = -33.5644503601125 +504000 ekin = 20.1546807720134 | erot = 24.8789199644612 | epot = -78.5980510988455 | etot = -33.5644503623709 +505000 ekin = 19.7897861053101 | erot = 25.7326258922808 | epot = -79.0868623624028 | etot = -33.5644503648119 +506000 ekin = 19.3875459003948 | erot = 26.488233736964 | epot = -79.4402300037047 | etot = -33.5644503663459 +507000 ekin = 18.9527707504281 | erot = 27.1161379583516 | epot = -79.6333590755957 | etot = -33.564450366816 +508000 ekin = 18.4930541128453 | erot = 27.6003825989619 | epot = -79.6578870777028 | etot = -33.5644503658955 +509000 ekin = 18.0182547167277 | erot = 27.9414911094103 | epot = -79.5241961902249 | etot = -33.5644503640869 +510000 ekin = 17.523965944791 | erot = 28.1499521522236 | epot = -79.2383684583665 | etot = -33.564450361352 +511000 ekin = 17.0202767589766 | erot = 28.2490270329564 | epot = -78.8337541500052 | etot = -33.5644503580722 +512000 ekin = 16.524571800827 | erot = 28.2698315418588 | epot = -78.3588536975498 | etot = -33.564450354864 +513000 ekin = 16.0539184298501 | erot = 28.2435719404605 | epot = -77.8619407225297 | etot = -33.564450352219 +514000 ekin = 15.622953975357 | erot = 28.1963871949976 | epot = -77.3837915207595 | etot = -33.5644503504049 +515000 ekin = 15.2424792422371 | erot = 28.1464443104744 | epot = -76.953373902264 | etot = -33.5644503495525 +516000 ekin = 14.9188926058558 | erot = 28.1027540351543 | epot = -76.5860969904231 | etot = -33.564450349413 +517000 ekin = 14.6543809153874 | erot = 28.0678237289542 | epot = -76.2866549941532 | etot = -33.5644503498116 +518000 ekin = 14.4476572457691 | erot = 28.0395642673969 | epot = -76.0516718636457 | etot = -33.5644503504797 +519000 ekin = 14.2950490441428 | erot = 28.0138489407524 | epot = -75.8733483360399 | etot = -33.5644503511447 +520000 ekin = 14.1917488338634 | erot = 27.9870813582064 | epot = -75.7432805436532 | etot = -33.5644503515833 +521000 ekin = 14.1329830511805 | erot = 27.9581295476446 | epot = -75.6555629505058 | etot = -33.5644503516806 +522000 ekin = 14.1002586404053 | erot = 27.7732671759151 | epot = -75.4379761959062 | etot = -33.5644503795858 +523000 ekin = 14.1969588162511 | erot = 27.1027118573523 | epot = -74.8641209744559 | etot = -33.5644503008525 +524000 ekin = 14.7378402619219 | erot = 26.6164089140764 | epot = -74.9186994724817 | etot = -33.5644502964834 +525000 ekin = 15.5068672854449 | erot = 26.5883544531684 | epot = -75.6596721109621 | etot = -33.5644503723487 +526000 ekin = 15.8574449977267 | erot = 26.6724957236415 | epot = -76.0943910939928 | etot = -33.5644503726246 +527000 ekin = 16.0112069682283 | erot = 26.7355098948156 | epot = -76.311167236341 | etot = -33.5644503732972 +528000 ekin = 16.1641744090515 | erot = 26.7947978809934 | epot = -76.5234226639649 | etot = -33.5644503739199 +529000 ekin = 16.3159009760756 | erot = 26.8380825379191 | epot = -76.7184338883076 | etot = -33.5644503743128 +530000 ekin = 16.466747721028 | erot = 26.8553312024403 | epot = -76.886529297879 | etot = -33.5644503744108 +531000 ekin = 16.6177352354996 | erot = 26.8400251084993 | epot = -77.022210718254 | etot = -33.564450374255 +532000 ekin = 16.7702150675957 | erot = 26.7891084872752 | epot = -77.1237739287798 | etot = -33.5644503739089 +533000 ekin = 16.9253640366974 | erot = 26.7024973872853 | epot = -77.1923117974439 | etot = -33.5644503734612 +534000 ekin = 17.0836447866564 | erot = 26.5822176528732 | epot = -77.230312812567 | etot = -33.5644503730375 +535000 ekin = 17.2444487915268 | erot = 26.4310079588786 | epot = -77.2399071231478 | etot = -33.5644503727425 +536000 ekin = 17.4060591053815 | erot = 26.2510049057206 | epot = -77.2215143837103 | etot = -33.5644503726081 +537000 ekin = 17.5658991981726 | erot = 26.0431264909246 | epot = -77.1734760616575 | etot = -33.5644503725604 +538000 ekin = 17.7209415436652 | erot = 25.8074441218956 | epot = -77.0928360381795 | etot = -33.5644503726186 +539000 ekin = 17.8681497078889 | erot = 25.5433035299955 | epot = -76.9759036105368 | etot = -33.5644503726524 +540000 ekin = 18.004863156336 | erot = 25.2502517039518 | epot = -76.8195652328856 | etot = -33.5644503725978 +541000 ekin = 18.129064826942 | erot = 24.9288645878186 | epot = -76.6223797871797 | etot = -33.564450372419 +542000 ekin = 18.2395164936781 | erot = 24.5811691616713 | epot = -76.3851360274362 | etot = -33.5644503720867 +543000 ekin = 18.335770007785 | erot = 24.2108468343436 | epot = -76.1110672137948 | etot = -33.5644503716662 +544000 ekin = 18.4180615071781 | erot = 23.8229131244954 | epot = -75.805425002847 | etot = -33.5644503711735 +545000 ekin = 18.4870901297785 | erot = 23.4236993424443 | epot = -75.4752398423761 | etot = -33.5644503701532 +546000 ekin = 18.54361047059 | erot = 23.0232726205026 | epot = -75.1313334608523 | etot = -33.5644503697597 +547000 ekin = 18.5881260725922 | erot = 22.6282216103021 | epot = -74.7807980523833 | etot = -33.564450369489 +548000 ekin = 18.6206521537359 | erot = 22.2431161970553 | epot = -74.4282187197494 | etot = -33.5644503689582 +549000 ekin = 18.6395328550285 | erot = 21.8731131588192 | epot = -74.0770963831711 | etot = -33.5644503693234 +550000 ekin = 18.6420012523706 | erot = 21.5194517196355 | epot = -73.7259033419334 | etot = -33.5644503699273 +551000 ekin = 18.624921029005 | erot = 21.1784779029538 | epot = -73.3678493026868 | etot = -33.564450370728 +552000 ekin = 18.5841928766033 | erot = 20.8452278496576 | epot = -72.9938710978566 | etot = -33.5644503715957 +553000 ekin = 18.5152127054113 | erot = 20.5148731369798 | epot = -72.5945362147189 | etot = -33.5644503723278 +554000 ekin = 18.4136816906652 | erot = 20.1848933332903 | epot = -72.1630253966383 | etot = -33.5644503726828 +555000 ekin = 18.2766906397711 | erot = 19.8574769328349 | epot = -71.6986179450508 | etot = -33.5644503724447 +556000 ekin = 18.1040115045293 | erot = 19.5406874738217 | epot = -71.2091493500419 | etot = -33.5644503716909 +557000 ekin = 17.89923096435 | erot = 19.24972262904 | epot = -70.7134039633246 | etot = -33.5644503699346 +558000 ekin = 17.6705778370294 | erot = 19.0080857255953 | epot = -70.2431139301013 | etot = -33.5644503674766 +559000 ekin = 17.4315653923217 | erot = 18.8444628125886 | epot = -69.8404785693936 | etot = -33.5644503644833 +560000 ekin = 17.2006230343926 | erot = 18.7901643785407 | epot = -69.5552377742619 | etot = -33.5644503613287 +561000 ekin = 16.9995569155364 | erot = 18.8749610240394 | epot = -69.4389682979995 | etot = -33.5644503584237 +562000 ekin = 16.8505251054351 | erot = 19.1232120103355 | epot = -69.5381874720851 | etot = -33.5644503563145 +563000 ekin = 16.771816019379 | erot = 19.5498137338075 | epot = -69.8860801087492 | etot = -33.5644503555627 +564000 ekin = 16.7730284247952 | erot = 20.1561760614947 | epot = -70.4936548432322 | etot = -33.5644503569423 +565000 ekin = 16.8503463811215 | erot = 20.9261148984733 | epot = -71.3409116397428 | etot = -33.564450360148 +566000 ekin = 16.9881817946884 | erot = 21.8252877511548 | epot = -72.3779199111064 | etot = -33.5644503652632 +567000 ekin = 17.1597730186738 | erot = 22.8021750342622 | epot = -73.5263984248048 | etot = -33.5644503718688 +568000 ekin = 17.3309908958581 | erot = 23.7909429899681 | epot = -74.6863842651206 | etot = -33.5644503792944 +569000 ekin = 17.4658946009928 | erot = 24.7167318454134 | epot = -75.7470768330927 | etot = -33.5644503866865 +570000 ekin = 17.5327796649247 | erot = 25.503072445778 | epot = -76.60030250379 | etot = -33.5644503930873 +571000 ekin = 17.5098280193733 | erot = 26.0808668138774 | epot = -77.1551452308085 | etot = -33.5644503975578 +572000 ekin = 17.3896134292035 | erot = 26.3976580233915 | epot = -77.3517218519472 | etot = -33.5644503993522 +573000 ekin = 17.1817696514795 | erot = 26.4252545064828 | epot = -77.1714745560827 | etot = -33.5644503981204 +574000 ekin = 16.91320121502 | erot = 26.1636856783704 | epot = -76.6413372874423 | etot = -33.5644503940519 +575000 ekin = 16.6253831475483 | erot = 25.640183136325 | epot = -75.8300166717811 | etot = -33.5644503879079 +576000 ekin = 16.3805854482806 | erot = 24.9437607565116 | epot = -74.8887965735951 | etot = -33.5644503688028 +577000 ekin = 16.23092958843 | erot = 24.1552332193367 | epot = -73.950613173759 | etot = -33.5644503659923 +578000 ekin = 16.2003426787873 | erot = 23.2996785345128 | epot = -73.0644715773449 | etot = -33.5644503640447 +579000 ekin = 16.298393825657 | erot = 22.4032685645682 | epot = -72.2661127534473 | etot = -33.5644503632221 +580000 ekin = 16.5164282813868 | erot = 21.4889399507426 | epot = -71.569818597847 | etot = -33.5644503657176 +581000 ekin = 16.829413172556 | erot = 20.5770732256226 | epot = -70.9709367637454 | etot = -33.5644503655668 +582000 ekin = 17.2014342862117 | erot = 19.7085617425621 | epot = -70.4744463946194 | etot = -33.5644503658456 +583000 ekin = 17.5894541375884 | erot = 18.925166774833 | epot = -70.0790712785306 | etot = -33.5644503661092 +584000 ekin = 17.9521233668095 | erot = 18.2657373647565 | epot = -69.7823110976562 | etot = -33.5644503660902 +585000 ekin = 18.2577014581518 | erot = 17.762756656003 | epot = -69.5849084798605 | etot = -33.5644503657057 +586000 ekin = 18.48903732181 | erot = 17.4391816026807 | epot = -69.4926692894528 | etot = -33.5644503649621 +587000 ekin = 18.6451700995223 | erot = 17.3070654480135 | epot = -69.5166859114209 | etot = -33.5644503638852 +588000 ekin = 18.7400423387256 | erot = 17.3682960794961 | epot = -69.6727887807878 | etot = -33.5644503625662 +589000 ekin = 18.7988289994632 | erot = 17.6163757903472 | epot = -69.9796551510921 | etot = -33.5644503612817 +590000 ekin = 18.8521852510563 | erot = 18.03770774159 | epot = -70.4543433531448 | etot = -33.5644503604985 +591000 ekin = 18.9335216732476 | erot = 18.6145318736687 | epot = -71.1125039063923 | etot = -33.564450359476 +592000 ekin = 19.0736372364623 | erot = 19.3273958984734 | epot = -71.9654834953563 | etot = -33.5644503604206 +593000 ekin = 19.2836835994718 | erot = 20.1464047122411 | epot = -72.9945386745438 | etot = -33.5644503628309 +594000 ekin = 19.5596584178685 | erot = 21.034123237208 | epot = -74.1582320215033 | etot = -33.5644503664268 +595000 ekin = 19.8847224284612 | erot = 21.9477887873151 | epot = -75.3969615864514 | etot = -33.5644503706751 +596000 ekin = 20.2229995975395 | erot = 22.8321032475601 | epot = -76.6195532302897 | etot = -33.56445038519 +597000 ekin = 20.5134057742179 | erot = 23.6125551256778 | epot = -77.6904112894541 | etot = -33.5644503895585 +598000 ekin = 20.7238255182392 | erot = 24.2466753984176 | epot = -78.5349513088604 | etot = -33.5644503922037 +599000 ekin = 20.8326105236303 | erot = 24.7094660554427 | epot = -79.1065269720019 | etot = -33.5644503929288 +600000 ekin = 20.828192883276 | erot = 24.9942677722285 | epot = -79.3869110474472 | etot = -33.5644503919427 +601000 ekin = 20.7081769096798 | erot = 25.11085155755 | epot = -79.3834788569396 | etot = -33.5644503897098 +602000 ekin = 20.4770754640505 | erot = 25.0812117058382 | epot = -79.1227375566785 | etot = -33.5644503867898 +603000 ekin = 20.1436196141802 | erot = 24.9343592764579 | epot = -78.6424292743164 | etot = -33.5644503836784 +604000 ekin = 19.7184185863195 | erot = 24.7015463486128 | epot = -77.9844153156502 | etot = -33.564450380718 +605000 ekin = 19.2123955082262 | erot = 24.4128183898753 | epot = -77.1896642761826 | etot = -33.5644503780811 +606000 ekin = 18.6360571566313 | erot = 24.0951290260324 | epot = -76.2956365584618 | etot = -33.5644503757982 +607000 ekin = 17.9994317314224 | erot = 23.7717793956126 | epot = -75.3356615008433 | etot = -33.5644503738083 +608000 ekin = 17.3124228754604 | erot = 23.4627525846719 | epot = -74.3396258321416 | etot = -33.5644503720093 +609000 ekin = 16.5853412867629 | erot = 23.1855122472229 | epot = -73.3353039042776 | etot = -33.5644503702918 +610000 ekin = 15.8294285553984 | erot = 22.9559130653051 | epot = -72.3497919892683 | etot = -33.5644503685648 +611000 ekin = 15.0572484571768 | erot = 22.7889597199825 | epot = -71.4106585439383 | etot = -33.564450366779 +612000 ekin = 14.2829782528012 | erot = 22.6991649591093 | epot = -70.5465935768327 | etot = -33.5644503649222 +613000 ekin = 13.5233158611292 | erot = 22.7018063026035 | epot = -69.7895725256479 | etot = -33.5644503619153 +614000 ekin = 12.7974443556917 | erot = 22.8128628316047 | epot = -69.1747575476346 | etot = -33.5644503603383 +615000 ekin = 12.1222485232213 | erot = 23.0409824252133 | epot = -68.7276813075076 | etot = -33.564450359073 +616000 ekin = 11.5143476718002 | erot = 23.3894333501644 | epot = -68.4682313804871 | etot = -33.5644503585225 +617000 ekin = 10.9895105321831 | erot = 23.8529820636908 | epot = -68.4069429545483 | etot = -33.5644503586744 +618000 ekin = 10.5621427379082 | erot = 24.4166592376929 | epot = -68.5432523353739 | etot = -33.5644503597728 +619000 ekin = 10.2447233168846 | erot = 25.0539361238965 | epot = -68.8631098026496 | etot = -33.5644503618684 +620000 ekin = 10.0473729681852 | erot = 25.726395813846 | epot = -69.3382191468432 | etot = -33.564450364812 +621000 ekin = 9.97770919335943 | erot = 26.3860294543558 | epot = -69.9281890159394 | etot = -33.5644503682242 +622000 ekin = 10.0410058293406 | erot = 26.9805251338807 | epot = -70.5859813347549 | etot = -33.5644503715336 +623000 ekin = 10.2405907646719 | erot = 27.4608678071822 | epot = -71.2659089459993 | etot = -33.5644503741453 +624000 ekin = 10.5781077609575 | erot = 27.789174960007 | epot = -71.9317330966645 | etot = -33.5644503757 +625000 ekin = 11.0534790497405 | erot = 27.9443540028375 | epot = -72.5622834286287 | etot = -33.5644503760506 +626000 ekin = 11.6650239614417 | erot = 27.9236660631623 | epot = -73.1531404000459 | etot = -33.5644503754418 +627000 ekin = 12.4090657081618 | erot = 27.7401487508296 | epot = -73.713664833205 | etot = -33.5644503742135 +628000 ekin = 13.2797303336247 | erot = 27.4180442690277 | epot = -74.2622249753901 | etot = -33.5644503727378 +629000 ekin = 14.2227247808597 | erot = 26.9288523652634 | epot = -74.7160277925057 | etot = -33.5644506463826 +630000 ekin = 14.6371369646358 | erot = 25.6849986217032 | epot = -73.8865860618273 | etot = -33.5644504754884 +631000 ekin = 15.1932748232492 | erot = 24.8015291118369 | epot = -73.5592542921839 | etot = -33.5644503570978 +632000 ekin = 16.5842231811831 | erot = 25.1927867337753 | epot = -75.3414603985266 | etot = -33.5644504835681 +633000 ekin = 18.1129981057209 | erot = 25.8399990860739 | epot = -77.5174478422231 | etot = -33.5644506504283 +634000 ekin = 19.1483265833795 | erot = 25.7387528538212 | epot = -78.4515299869786 | etot = -33.5644505497779 +635000 ekin = 20.1638306083842 | erot = 25.6154971451023 | epot = -79.3437783074232 | etot = -33.5644505539367 +636000 ekin = 21.1529452192774 | erot = 25.4927802227977 | epot = -80.210176001065 | etot = -33.5644505589899 +637000 ekin = 22.0768404119804 | erot = 25.3376757556836 | epot = -80.9789667313978 | etot = -33.5644505637338 +638000 ekin = 22.8998086493368 | erot = 25.1175243540521 | epot = -81.581783570336 | etot = -33.5644505669471 +639000 ekin = 23.5958452405688 | erot = 24.8103240278057 | epot = -81.9706198363764 | etot = -33.5644505680019 +640000 ekin = 24.1448393944085 | erot = 24.4104070782069 | epot = -82.1196970406963 | etot = -33.5644505680809 +641000 ekin = 24.5337741515846 | erot = 23.9290519078285 | epot = -82.0272766241422 | etot = -33.5644505647291 +642000 ekin = 24.7698696442131 | erot = 23.3958020420911 | epot = -81.7301222479835 | etot = -33.5644505616793 +643000 ekin = 24.8669267979412 | erot = 22.8392829414695 | epot = -81.2706602981471 | etot = -33.5644505587364 +644000 ekin = 24.8431155053321 | erot = 22.2830723087654 | epot = -80.6906383703371 | etot = -33.5644505562396 +645000 ekin = 24.7193046979064 | erot = 21.7428697630937 | epot = -80.0266250151886 | etot = -33.5644505541885 +646000 ekin = 24.5180931831024 | erot = 21.2270132553 | epot = -79.3095569908572 | etot = -33.5644505524548 +647000 ekin = 24.2628521138149 | erot = 20.7388201346271 | epot = -78.5661227994122 | etot = -33.5644505509702 +648000 ekin = 23.9761808148133 | erot = 20.2787945273933 | epot = -77.8194258919934 | etot = -33.5644505497868 +649000 ekin = 23.6778736566609 | erot = 19.8458221794067 | epot = -77.0881463850653 | etot = -33.5644505489977 +650000 ekin = 23.3831896156548 | erot = 19.4375683305137 | epot = -76.3852084947824 | etot = -33.5644505486139 +651000 ekin = 23.1045251412741 | erot = 19.0455994386574 | epot = -75.7145751292058 | etot = -33.5644505492743 +652000 ekin = 22.8525540925228 | erot = 18.6600582438882 | epot = -75.0770628853385 | etot = -33.5644505489275 +653000 ekin = 22.6343633058236 | erot = 18.2797742485017 | epot = -74.4785881025892 | etot = -33.564450548264 +654000 ekin = 22.4577061635195 | erot = 17.9066943674651 | epot = -73.9288510781073 | etot = -33.5644505471227 +655000 ekin = 22.3323244924946 | erot = 17.5466477594773 | epot = -73.4434227975466 | etot = -33.5644505455747 +656000 ekin = 22.2694639419047 | erot = 17.2090068004228 | epot = -73.0429212862265 | etot = -33.5644505438989 +657000 ekin = 22.2796962966157 | erot = 16.9050137467998 | epot = -72.7491605859738 | etot = -33.5644505425584 +658000 ekin = 22.369639071293 | erot = 16.6447644948982 | epot = -72.5788541082823 | etot = -33.5644505420911 +659000 ekin = 22.5385894789304 | erot = 16.4332539533158 | epot = -72.5362939752044 | etot = -33.5644505429582 +660000 ekin = 22.7761662594052 | erot = 16.2664693850933 | epot = -72.6070861898631 | etot = -33.5644505453646 +661000 ekin = 23.0623022457157 | erot = 16.1290340495213 | epot = -72.7557868419576 | etot = -33.5644505467205 +662000 ekin = 23.3837240382632 | erot = 15.9907831573615 | epot = -72.9389579063317 | etot = -33.564450710707 +663000 ekin = 23.054148007274 | erot = 16.1177804827538 | epot = -72.7363790499092 | etot = -33.5644505598814 +664000 ekin = 22.9781515350229 | erot = 16.5698259294712 | epot = -73.112428112566 | etot = -33.5644506480719 +665000 ekin = 23.3749786895457 | erot = 16.411782739857 | epot = -73.3512119977732 | etot = -33.5644505683704 +666000 ekin = 23.723950183745 | erot = 16.0357448193694 | epot = -73.3241455698056 | etot = -33.5644505666911 +667000 ekin = 24.0215049432174 | erot = 15.6311856367398 | epot = -73.2171411428858 | etot = -33.5644505629285 +668000 ekin = 24.2720292261732 | erot = 15.2431977236565 | epot = -73.0796775091056 | etot = -33.5644505592759 +669000 ekin = 24.4823401830215 | erot = 14.9164487057936 | epot = -72.9632394451725 | etot = -33.5644505563574 +670000 ekin = 24.6591929157758 | erot = 14.6865199575477 | epot = -72.9101634276307 | etot = -33.5644505543073 +671000 ekin = 24.7891522537242 | erot = 14.5781166474215 | epot = -72.9317194571598 | etot = -33.5644505560141 +672000 ekin = 24.8512867490322 | erot = 14.6015183441379 | epot = -73.0172556484841 | etot = -33.564450555314 +673000 ekin = 24.8569569351995 | erot = 14.7562217139438 | epot = -73.1776292037397 | etot = -33.5644505545965 +674000 ekin = 24.8222537578926 | erot = 15.0373554089786 | epot = -73.4240597206982 | etot = -33.564450553827 +675000 ekin = 24.7663204261064 | erot = 15.4372951197778 | epot = -73.7680660991378 | etot = -33.5644505532536 +676000 ekin = 24.7079731413268 | erot = 15.9453732717859 | epot = -74.217796966472 | etot = -33.5644505533592 +677000 ekin = 24.6606038390545 | erot = 16.5455776363011 | epot = -74.7706320301637 | etot = -33.5644505548081 +678000 ekin = 24.6267378751708 | erot = 17.2129758022366 | epot = -75.4041642354332 | etot = -33.5644505580258 +679000 ekin = 24.5940505555973 | erot = 17.9117017671719 | epot = -76.0702028857369 | etot = -33.5644505629677 +680000 ekin = 24.5356055102642 | erot = 18.5957689118677 | epot = -76.6958249909574 | etot = -33.5644505688256 +681000 ekin = 24.4156570901708 | erot = 19.2149559866325 | epot = -77.1950636509461 | etot = -33.5644505741429 +682000 ekin = 24.1989519856416 | erot = 19.7242966851149 | epot = -77.487699248418 | etot = -33.5644505776614 +683000 ekin = 23.8604728484841 | erot = 20.0938581680861 | epot = -77.5187815945976 | etot = -33.5644505780274 +684000 ekin = 23.3975557793202 | erot = 20.3180971821174 | epot = -77.2801035368968 | etot = -33.5644505754592 +685000 ekin = 22.8290459842939 | erot = 20.4129669401602 | epot = -76.8064634953545 | etot = -33.5644505709004 +686000 ekin = 22.1833688830902 | erot = 20.3969948298234 | epot = -76.1448143090756 | etot = -33.564450596162 +687000 ekin = 21.4529188825682 | erot = 20.1567338484389 | epot = -75.1741032961385 | etot = -33.5644505651314 +688000 ekin = 20.8420414150976 | erot = 19.8330340944162 | epot = -74.2395260509536 | etot = -33.5644505414398 +689000 ekin = 20.485045480985 | erot = 19.6177759067974 | epot = -73.667271944758 | etot = -33.5644505569757 +690000 ekin = 20.22367052676 | erot = 19.4736760217004 | epot = -73.2617971257719 | etot = -33.5644505773115 +691000 ekin = 19.9277329716986 | erot = 19.3525548976992 | epot = -72.8447384077161 | etot = -33.5644505383183 +692000 ekin = 19.7615779528863 | erot = 19.3271485942255 | epot = -72.6531770849096 | etot = -33.5644505377978 +693000 ekin = 19.7317397131701 | erot = 19.4147876349782 | epot = -72.7109778869691 | etot = -33.5644505388208 +694000 ekin = 19.8186070325659 | erot = 19.6208277623457 | epot = -73.0038853361764 | etot = -33.5644505412647 +695000 ekin = 19.9894250230478 | erot = 19.941877147877 | epot = -73.4957527156739 | etot = -33.5644505447491 +696000 ekin = 20.2029739943976 | erot = 20.3669312863332 | epot = -74.1343558293723 | etot = -33.5644505486415 +697000 ekin = 20.4154400727664 | erot = 20.880919300581 | epot = -74.8608099257857 | etot = -33.5644505524382 +698000 ekin = 20.5862067302191 | erot = 21.4669039242718 | epot = -75.6175612102066 | etot = -33.5644505557157 +699000 ekin = 20.6825995314592 | erot = 22.1076466744899 | epot = -76.3546967641855 | etot = -33.5644505582364 +700000 ekin = 20.6830084841778 | erot = 22.7863311593422 | epot = -77.0337902034447 | etot = -33.5644505599247 +701000 ekin = 20.578193148326 | erot = 23.4865818235912 | epot = -77.629225532724 | etot = -33.5644505608068 +702000 ekin = 20.3710754301549 | erot = 24.1923776458902 | epot = -78.1279036369795 | etot = -33.5644505609343 +703000 ekin = 20.0753347575173 | erot = 24.888467252762 | epot = -78.528252570647 | etot = -33.5644505603677 +704000 ekin = 19.7130379610838 | erot = 25.5614200023189 | epot = -78.838908522607 | etot = -33.5644505592043 +705000 ekin = 19.3114467602167 | erot = 26.2008176281874 | epot = -79.0767149460512 | etot = -33.564450557647 +706000 ekin = 18.8991937919881 | erot = 26.7996687691974 | epot = -79.2633131172258 | etot = -33.5644505560403 +707000 ekin = 18.5022273016031 | erot = 27.3532672566161 | epot = -79.4199451130548 | etot = -33.5644505548355 +708000 ekin = 18.1401729300363 | erot = 27.8564306963449 | epot = -79.5610541808569 | etot = -33.5644505544757 +709000 ekin = 17.8234464200403 | erot = 28.2999901805008 | epot = -79.6878871558114 | etot = -33.5644505552703 +710000 ekin = 17.5523632022352 | erot = 28.66784646393 | epot = -79.7846602233792 | etot = -33.564450557214 +711000 ekin = 17.319410981167 | erot = 28.9359249877842 | epot = -79.8197865289555 | etot = -33.5644505600043 +712000 ekin = 17.1112174759792 | erot = 29.0741670939005 | epot = -79.7498351329345 | etot = -33.5644505630547 +713000 ekin = 16.9121266207384 | erot = 29.0513180252372 | epot = -79.5278952115921 | etot = -33.5644505656165 +714000 ekin = 16.7079630671362 | erot = 28.8416092685853 | epot = -79.1140229027166 | etot = -33.564450566995 +715000 ekin = 16.4890214415111 | erot = 28.4313561606375 | epot = -78.4848281689488 | etot = -33.5644505668002 +716000 ekin = 16.2513970083694 | erot = 27.8230898675347 | epot = -77.6389374409925 | etot = -33.5644505650884 +717000 ekin = 15.9963403731169 | erot = 27.0356716312561 | epot = -76.5964625666635 | etot = -33.5644505622904 +718000 ekin = 15.7361303250895 | erot = 26.1105494914754 | epot = -75.4111303728763 | etot = -33.5644505563113 +719000 ekin = 15.4991442332756 | erot = 25.1078869435359 | epot = -74.1714817315667 | etot = -33.5644505547552 +720000 ekin = 15.2869109984327 | erot = 24.051118277072 | epot = -72.9024798285824 | etot = -33.5644505530778 +721000 ekin = 15.0983958368563 | erot = 22.9636187921636 | epot = -71.6264651803974 | etot = -33.5644505513775 +722000 ekin = 14.9325120658119 | erot = 21.8688846316655 | epot = -70.3658472497603 | etot = -33.5644505522828 +723000 ekin = 14.7807572560571 | erot = 20.783177409075 | epot = -69.1283852152817 | etot = -33.5644505501496 +724000 ekin = 14.6422909698242 | erot = 19.7295658973655 | epot = -67.9363074154255 | etot = -33.5644505482357 +725000 ekin = 14.5216204992091 | erot = 18.7315290225185 | epot = -66.8176000682293 | etot = -33.5644505465018 +726000 ekin = 14.4243651447271 | erot = 17.8092496646936 | epot = -65.7980653543268 | etot = -33.5644505449061 +727000 ekin = 14.3569475465798 | erot = 16.9804196385917 | epot = -64.9018177285995 | etot = -33.564450543428 +728000 ekin = 14.2536930559593 | erot = 16.2469828282715 | epot = -64.0651265345919 | etot = -33.5644506503612 +729000 ekin = 13.8457257235901 | erot = 15.9222518581098 | epot = -63.3324280824188 | etot = -33.5644505007189 +730000 ekin = 14.0260810331572 | erot = 15.9641149780232 | epot = -63.5546467085729 | etot = -33.5644506973925 +731000 ekin = 14.2598526174267 | erot = 15.8407237779026 | epot = -63.6650270928699 | etot = -33.5644506975406 +732000 ekin = 14.5606957082 | erot = 15.8547631025675 | epot = -63.9799095095013 | etot = -33.5644506987338 +733000 ekin = 14.9193813420873 | erot = 16.0002143198209 | epot = -64.4840463630918 | etot = -33.5644507011835 +734000 ekin = 15.3191392217664 | erot = 16.2611439998487 | epot = -65.1447339265492 | etot = -33.5644507049341 +735000 ekin = 15.7356018991576 | erot = 16.6113471097583 | epot = -65.9113997186633 | etot = -33.5644507097475 +736000 ekin = 16.1415246377564 | erot = 17.0234641328674 | epot = -66.7294394793124 | etot = -33.5644507086886 +737000 ekin = 16.5186056071986 | erot = 17.4895868028313 | epot = -67.5726431223686 | etot = -33.5644507123387 +738000 ekin = 16.8458492085384 | erot = 17.9860152350135 | epot = -68.396315158488 | etot = -33.5644507149361 +739000 ekin = 17.1101498629012 | erot = 18.4929848437288 | epot = -69.167585422606 | etot = -33.5644507159759 +740000 ekin = 17.3014321651814 | erot = 18.9830167810243 | epot = -69.8488996784293 | etot = -33.5644507322236 +741000 ekin = 17.386590010487 | erot = 19.3806296469325 | epot = -70.3316703890898 | etot = -33.5644507316703 +742000 ekin = 17.3696644696972 | erot = 19.6766235531722 | epot = -70.6107387526117 | etot = -33.5644507297423 +743000 ekin = 17.2668900413887 | erot = 19.8790967523848 | epot = -70.7104375210217 | etot = -33.5644507272482 +744000 ekin = 17.0976280278394 | erot = 20.0010316352814 | epot = -70.6631103878251 | etot = -33.5644507247043 +745000 ekin = 16.8806625291024 | erot = 20.057055059626 | epot = -70.5021683110215 | etot = -33.5644507222932 +746000 ekin = 16.6327129002015 | erot = 20.0624105110988 | epot = -70.2595741313054 | etot = -33.5644507200051 +747000 ekin = 16.3685004950096 | erot = 20.033016856487 | epot = -69.9659680692887 | etot = -33.5644507177921 +748000 ekin = 16.1014103999543 | erot = 19.9854814659263 | epot = -69.6513425815366 | etot = -33.564450715656 +749000 ekin = 15.8440980133595 | erot = 19.9365592321122 | epot = -69.345107959121 | etot = -33.5644507136493 +750000 ekin = 15.6090531913871 | erot = 19.903896348463 | epot = -69.0774002509923 | etot = -33.5644507111422 +751000 ekin = 15.408391615066 | erot = 19.9047162348154 | epot = -68.8775585596421 | etot = -33.5644507097607 +752000 ekin = 15.2531866583631 | erot = 19.9485427704181 | epot = -68.7661801374899 | etot = -33.5644507087087 +753000 ekin = 15.1543901558436 | erot = 20.0407526996777 | epot = -68.7595935635481 | etot = -33.5644507080268 +754000 ekin = 15.1228286565093 | erot = 20.1821712344388 | epot = -68.8694505987027 | etot = -33.5644507077546 +755000 ekin = 15.1688994236201 | erot = 20.3687544760721 | epot = -69.1021046076738 | etot = -33.5644507079815 +756000 ekin = 15.3014995511365 | erot = 20.5913112901341 | epot = -69.4572615501853 | etot = -33.5644507089146 +757000 ekin = 15.5255754908458 | erot = 20.8349492485987 | epot = -69.9249754503695 | etot = -33.564450710925 +758000 ekin = 15.8381446956662 | erot = 21.0780442729328 | epot = -70.4806396830074 | etot = -33.5644507144084 +759000 ekin = 16.2241238949829 | erot = 21.291351107698 | epot = -71.0799257220707 | etot = -33.5644507193898 +760000 ekin = 16.6551901643007 | erot = 21.4392176816081 | epot = -71.6588585709879 | etot = -33.5644507250792 +761000 ekin = 17.0950183929184 | erot = 21.4853061130269 | epot = -72.1447752357869 | etot = -33.5644507298415 +762000 ekin = 17.5106763995147 | erot = 21.4029539273073 | epot = -72.4780810587706 | etot = -33.5644507319486 +763000 ekin = 17.8846255668858 | erot = 21.185914549962 | epot = -72.6349908475012 | etot = -33.5644507306534 +764000 ekin = 18.2201199371193 | erot = 20.8529192973068 | epot = -72.6374899610343 | etot = -33.5644507266082 +765000 ekin = 18.5372583928787 | erot = 20.4430950204984 | epot = -72.544804134769 | etot = -33.564450721392 +766000 ekin = 18.86309963268 | erot = 20.0050052471612 | epot = -72.4325555962364 | etot = -33.5644507163952 +767000 ekin = 19.2212066783145 | erot = 19.5864803417602 | epot = -72.3721377327923 | etot = -33.5644507127176 +768000 ekin = 19.6245116668901 | erot = 19.2265552432954 | epot = -72.4155176210351 | etot = -33.5644507108497 +769000 ekin = 20.0721792306237 | erot = 18.9509745495803 | epot = -72.5876044911024 | etot = -33.5644507108984 +770000 ekin = 20.5498085990298 | erot = 18.7702787055214 | epot = -72.884538017272 | etot = -33.5644507127209 +771000 ekin = 21.0321028839958 | erot = 18.679435439756 | epot = -73.2759890396338 | etot = -33.5644507158821 +772000 ekin = 21.4851799397904 | erot = 18.6615620363116 | epot = -73.7111926963688 | etot = -33.5644507202668 +773000 ekin = 21.8752230439093 | erot = 18.6848228542269 | epot = -74.1244966228291 | etot = -33.5644507246929 +774000 ekin = 22.1763496427708 | erot = 18.7081814097347 | epot = -74.4489817807521 | etot = -33.5644507282467 +775000 ekin = 22.3745717791238 | erot = 18.6931201232722 | epot = -74.6321426323703 | etot = -33.5644507299744 +776000 ekin = 22.4709552224375 | erot = 18.6135457350496 | epot = -74.648951686955 | etot = -33.564450729468 +777000 ekin = 22.4798367585086 | erot = 18.4639882108411 | epot = -74.5082756956863 | etot = -33.5644507263366 +778000 ekin = 22.4355420339161 | erot = 18.2585534539139 | epot = -74.2585462089044 | etot = -33.5644507210745 +779000 ekin = 22.3843529355789 | erot = 18.0309205308365 | epot = -73.9797241813393 | etot = -33.5644507149239 +780000 ekin = 22.3744386445496 | erot = 17.8258066816941 | epot = -73.7646960358077 | etot = -33.5644507095641 +781000 ekin = 22.1317599829093 | erot = 17.6891439214798 | epot = -73.3853547353444 | etot = -33.5644508309553 +782000 ekin = 21.1592753937775 | erot = 17.9407979297457 | epot = -72.6645240432862 | etot = -33.564450719763 +783000 ekin = 20.4598020812476 | erot = 19.0285770550549 | epot = -73.052829858984 | etot = -33.5644507226814 +784000 ekin = 20.5205611486876 | erot = 20.4251816834892 | epot = -74.5101936712772 | etot = -33.5644508391004 +785000 ekin = 20.9642653572837 | erot = 20.9633174771005 | epot = -75.4920336619114 | etot = -33.5644508275272 +786000 ekin = 21.4400765968759 | erot = 21.061583090539 | epot = -76.0661105191519 | etot = -33.5644508317371 +787000 ekin = 21.8830668853208 | erot = 21.0574506776045 | epot = -76.5049683963306 | etot = -33.5644508334054 +788000 ekin = 22.2673243737814 | erot = 20.9464326031856 | epot = -76.7782078095427 | etot = -33.5644508325756 +789000 ekin = 22.5826671465141 | erot = 20.7432248255376 | epot = -76.8903428020209 | etot = -33.5644508299692 +790000 ekin = 22.8323066866154 | erot = 20.4741989828028 | epot = -76.8709564960782 | etot = -33.56445082666 +791000 ekin = 23.0272356221831 | erot = 20.1684029992233 | epot = -76.7600894450125 | etot = -33.5644508236061 +792000 ekin = 23.1800436940963 | erot = 19.8507212176288 | epot = -76.5952157330443 | etot = -33.5644508213191 +793000 ekin = 23.300603133044 | erot = 19.5391467337423 | epot = -76.404200686658 | etot = -33.5644508198717 +794000 ekin = 23.3943971223733 | erot = 19.2453890910844 | epot = -76.2042370325532 | etot = -33.5644508190955 +795000 ekin = 23.4629811579683 | erot = 18.9772359492812 | epot = -76.0046679259086 | etot = -33.5644508186592 +796000 ekin = 23.5050545285291 | erot = 18.7401074031681 | epot = -75.8096127503046 | etot = -33.5644508186073 +797000 ekin = 23.5179235663088 | erot = 18.5376020828532 | epot = -75.6199764678595 | etot = -33.5644508186975 +798000 ekin = 23.4993095514253 | erot = 18.3721088645044 | epot = -75.4358692347521 | etot = -33.5644508188224 +799000 ekin = 23.4489395597834 | erot = 18.2446734411486 | epot = -75.258063819795 | etot = -33.564450818863 +800000 ekin = 23.3700597315759 | erot = 18.1549836094423 | epot = -75.0894941596996 | etot = -33.5644508186813 +801000 ekin = 23.2706429321765 | erot = 18.1018392066988 | epot = -74.9369329570152 | etot = -33.5644508181399 +802000 ekin = 23.1638659253445 | erot = 18.0841621417591 | epot = -74.8124788842758 | etot = -33.5644508171722 +803000 ekin = 23.0673439652931 | erot = 18.1021655927045 | epot = -74.7339603738614 | etot = -33.5644508158639 +804000 ekin = 23.0007989401313 | erot = 18.1579717421609 | epot = -74.7232214967841 | etot = -33.564450814492 +805000 ekin = 22.9823371371263 | erot = 18.2549251648251 | epot = -74.8017131154778 | etot = -33.5644508135264 +806000 ekin = 23.0241641619703 | erot = 18.3954330766867 | epot = -74.984048052 | etot = -33.5644508133431 +807000 ekin = 23.1289646264206 | erot = 18.5785443252248 | epot = -75.2719597659602 | etot = -33.5644508143147 +808000 ekin = 23.2881607697434 | erot = 18.7969609309069 | epot = -75.6495725171493 | etot = -33.5644508164989 +809000 ekin = 23.4826910126068 | erot = 19.0356597574091 | epot = -76.0828015896723 | etot = -33.5644508196564 +810000 ekin = 23.6859311917307 | erot = 19.2727961935001 | epot = -76.5231782085194 | etot = -33.5644508232885 +811000 ekin = 23.8683330193095 | erot = 19.4824424681752 | epot = -76.9152263142569 | etot = -33.5644508267723 +812000 ekin = 24.0021280336694 | erot = 19.6390320771543 | epot = -77.2056109397628 | etot = -33.5644508289391 +813000 ekin = 24.0705831548813 | erot = 19.7220219145477 | epot = -77.3570559007636 | etot = -33.5644508313346 +814000 ekin = 24.0556011517812 | erot = 19.7197957998033 | epot = -77.3398477836966 | etot = -33.5644508321121 +815000 ekin = 23.9426529222313 | erot = 19.6314238633418 | epot = -77.1385276168128 | etot = -33.5644508312396 +816000 ekin = 23.731133693213 | erot = 19.466072036005 | epot = -76.7616565581624 | etot = -33.5644508289444 +817000 ekin = 23.4336685350294 | erot = 19.2405112303572 | epot = -76.2386305910159 | etot = -33.5644508256293 +818000 ekin = 23.0739945646645 | erot = 18.9755381783867 | epot = -75.6139835648237 | etot = -33.5644508217725 +819000 ekin = 22.6837324026765 | erot = 18.6923648026043 | epot = -74.9405480232895 | etot = -33.5644508180087 +820000 ekin = 22.2835291279714 | erot = 18.4096381976571 | epot = -74.2576181415066 | etot = -33.5644508158781 +821000 ekin = 21.8822278938176 | erot = 18.141291498877 | epot = -73.5879702071845 | etot = -33.5644508144899 +822000 ekin = 21.4884880533111 | erot = 17.8956786276998 | epot = -72.9486174948433 | etot = -33.5644508138324 +823000 ekin = 21.1064787927768 | erot = 17.6755757474125 | epot = -72.3465053539623 | etot = -33.564450813773 +824000 ekin = 20.7370980701816 | erot = 17.4789023716297 | epot = -71.7804512559058 | etot = -33.5644508140945 +825000 ekin = 20.3797998929284 | erot = 17.3000855940531 | epot = -71.2443363015056 | etot = -33.5644508145241 +826000 ekin = 20.0346218856065 | erot = 17.1319532523354 | epot = -70.7310259527282 | etot = -33.5644508147862 +827000 ekin = 19.7039740663547 | erot = 16.9679189158217 | epot = -70.2363437968243 | etot = -33.5644508146479 +828000 ekin = 19.3938011099896 | erot = 16.8040573647366 | epot = -69.7623092887102 | etot = -33.5644508139841 +829000 ekin = 19.1138486595862 | erot = 16.6405709737945 | epot = -69.3188704461918 | etot = -33.5644508128111 +830000 ekin = 18.8769326813353 | erot = 16.4822215963422 | epot = -68.9236050889638 | etot = -33.5644508112863 +831000 ekin = 18.697311774337 | erot = 16.3375582362052 | epot = -68.5993208202243 | etot = -33.5644508096821 +832000 ekin = 18.5884699042913 | erot = 16.2171194616771 | epot = -68.3700401742869 | etot = -33.5644508083185 +833000 ekin = 18.5607795988464 | erot = 16.131079329091 | epot = -68.2563097354189 | etot = -33.5644508074815 +834000 ekin = 18.6195655893721 | erot = 16.0869173655938 | epot = -68.2709337623352 | etot = -33.5644508073693 +835000 ekin = 18.7639745681618 | erot = 16.0875916783619 | epot = -68.4160170545793 | etot = -33.5644508080557 +836000 ekin = 18.9868442891856 | erot = 16.130519235032 | epot = -68.6818143337116 | etot = -33.5644508094941 +837000 ekin = 19.2754657692627 | erot = 16.207438470387 | epot = -69.0473550511925 | etot = -33.5644508115428 +838000 ekin = 19.6129197642166 | erot = 16.3051003168942 | epot = -69.4824708951133 | etot = -33.5644508140025 +839000 ekin = 19.9795904915988 | erot = 16.4066729969167 | epot = -69.9507143051619 | etot = -33.5644508166465 +840000 ekin = 20.3545159452212 | erot = 16.4936833341199 | epot = -70.4126500985958 | etot = -33.5644508192548 +841000 ekin = 20.7164052641964 | erot = 16.548246927735 | epot = -70.829103013567 | etot = -33.5644508216356 +842000 ekin = 21.0443277173709 | erot = 16.5552492658878 | epot = -71.1640278069013 | etot = -33.5644508236425 +843000 ekin = 21.3182343501173 | erot = 16.504098715485 | epot = -71.3867838907757 | etot = -33.5644508251735 +844000 ekin = 21.5195641371082 | erot = 16.3898128616543 | epot = -71.4738278249128 | etot = -33.5644508261503 +845000 ekin = 21.6321888572324 | erot = 16.2134453017857 | epot = -71.4100849855142 | etot = -33.5644508264961 +846000 ekin = 21.6437998337389 | erot = 15.9820204440426 | epot = -71.1902711039102 | etot = -33.5644508261287 +847000 ekin = 21.5475782511098 | erot = 15.7081282908899 | epot = -70.8201573669942 | etot = -33.5644508249945 +848000 ekin = 21.3436927799336 | erot = 15.4091281568063 | epot = -70.3172717598687 | etot = -33.5644508231288 +849000 ekin = 21.040018068204 | erot = 15.1057456387123 | epot = -69.7102145276103 | etot = -33.564450820694 +850000 ekin = 20.6516241479064 | erot = 14.8199821289072 | epot = -69.0360570947859 | etot = -33.5644508179724 +851000 ekin = 20.1989966769928 | erot = 14.5725796445398 | epot = -68.3360271368306 | etot = -33.5644508152979 +852000 ekin = 19.7054052282539 | erot = 14.3805531694316 | epot = -67.6504092106676 | etot = -33.5644508129822 +853000 ekin = 19.1940724659069 | erot = 14.2553081918317 | epot = -67.013831468985 | etot = -33.5644508112464 +854000 ekin = 18.685752406539 | erot = 14.2015963027567 | epot = -66.4517995195066 | etot = -33.5644508102108 +855000 ekin = 18.1970763793973 | erot = 14.217263432367 | epot = -65.9787906216679 | etot = -33.5644508099036 +856000 ekin = 17.7397499755394 | erot = 14.293605095631 | epot = -65.597805881444 | etot = -33.5644508102736 +857000 ekin = 17.3205057828376 | erot = 14.4162007415788 | epot = -65.3011573356223 | etot = -33.5644508112059 +858000 ekin = 16.9416544321828 | erot = 14.5662556892476 | epot = -65.0723609339437 | etot = -33.5644508125133 +859000 ekin = 16.6020780530239 | erot = 14.7225727582617 | epot = -64.8891016252306 | etot = -33.5644508139451 +860000 ekin = 16.2985125202782 | erot = 14.8641879511938 | epot = -64.7271512866837 | etot = -33.5644508152118 +861000 ekin = 16.0269335804234 | erot = 14.9734306247742 | epot = -64.5648150212404 | etot = -33.5644508160429 +862000 ekin = 15.7838145531257 | erot = 15.0388248710163 | epot = -64.3870902403884 | etot = -33.5644508162464 +863000 ekin = 15.5670277438764 | erot = 15.0570871966147 | epot = -64.1885657562588 | etot = -33.5644508157676 +864000 ekin = 15.3762443300744 | erot = 15.0336448974535 | epot = -63.9743400422222 | etot = -33.5644508146943 +865000 ekin = 15.2131876579387 | erot = 14.9816007216251 | epot = -63.7592391926681 | etot = -33.5644508131043 +866000 ekin = 15.0809818320607 | erot = 14.9194629923979 | epot = -63.5648956359166 | etot = -33.5644508114581 +867000 ekin = 14.9827726531226 | erot = 14.8683323185733 | epot = -63.4155557815486 | etot = -33.5644508098527 +868000 ekin = 14.9218011269598 | erot = 14.8493296883198 | epot = -63.3355816237487 | etot = -33.5644508084691 +869000 ekin = 14.9010185138682 | erot = 14.8813222897364 | epot = -63.3467916110622 | etot = -33.5644508074576 +870000 ekin = 14.9227801778206 | erot = 14.9789108530707 | epot = -63.4661418378863 | etot = -33.5644508069951 +871000 ekin = 14.9884139368942 | erot = 15.1503817706812 | epot = -63.703246514838 | etot = -33.5644508072627 +872000 ekin = 15.0976914328012 | erot = 15.3955923521635 | epot = -64.0577345933959 | etot = -33.5644508084312 +873000 ekin = 15.2480781394194 | erot = 15.7042636320403 | epot = -64.5167925820518 | etot = -33.5644508105921 +874000 ekin = 15.4340038880574 | erot = 16.055356092982 | epot = -65.053810794677 | etot = -33.5644508136376 +875000 ekin = 15.6465534583829 | erot = 16.4187317020441 | epot = -65.6297359776216 | etot = -33.5644508171946 +876000 ekin = 15.8739222035519 | erot = 16.7595446910416 | epot = -66.1979177152847 | etot = -33.5644508206912 +877000 ekin = 16.1027155819911 | erot = 17.0444943473801 | epot = -66.7116607529112 | etot = -33.5644508235401 +878000 ekin = 16.319791048708 | erot = 17.2478151737007 | epot = -67.1320570477561 | etot = -33.5644508253474 +879000 ekin = 16.513852143331 | erot = 17.3548092235238 | epot = -67.4331121929392 | etot = -33.5644508260845 +880000 ekin = 16.6772706666643 | erot = 17.3624918756169 | epot = -67.6042133678519 | etot = -33.5644508255706 +881000 ekin = 16.8080553843206 | erot = 17.2784522473064 | epot = -67.6509584556495 | etot = -33.5644508240226 +882000 ekin = 16.9100399156744 | erot = 17.1190222525855 | epot = -67.5935129898763 | etot = -33.5644508216164 +883000 ekin = 16.9925722017344 | erot = 16.9073416710475 | epot = -67.4643646914728 | etot = -33.5644508186909 +884000 ekin = 17.0687034106809 | erot = 16.6704808404549 | epot = -67.3036350669103 | etot = -33.5644508157744 +885000 ekin = 17.1519974231529 | erot = 16.4352378856248 | epot = -67.1516861222243 | etot = -33.5644508134466 +886000 ekin = 17.2529390407585 | erot = 16.2234313547558 | epot = -67.0408212076545 | etot = -33.5644508121402 +887000 ekin = 17.3762921647762 | erot = 16.0482363412789 | epot = -66.9889793180409 | etot = -33.5644508119859 +888000 ekin = 17.520362098505 | erot = 15.9127130226943 | epot = -66.9975259340197 | etot = -33.5644508128205 +889000 ekin = 17.6781644467692 | erot = 15.8105908148255 | epot = -67.053206075905 | etot = -33.5644508143103 +890000 ekin = 17.8397117367786 | erot = 15.7285450848103 | epot = -67.1327076370755 | etot = -33.5644508154865 +891000 ekin = 17.9946822418325 | erot = 15.6526652214473 | epot = -67.2117982809621 | etot = -33.5644508176823 +892000 ekin = 18.1331274177217 | erot = 15.563184660984 | epot = -67.2607628981432 | etot = -33.5644508194375 +893000 ekin = 18.2472194998205 | erot = 15.4391901295465 | epot = -67.2508604500035 | etot = -33.5644508206365 +894000 ekin = 18.3321686671843 | erot = 15.2648175339455 | epot = -67.1614370222908 | etot = -33.564450821161 +895000 ekin = 18.3862908814765 | erot = 15.0310128841995 | epot = -66.9817545866243 | etot = -33.5644508209484 +896000 ekin = 18.4109116210726 | erot = 14.7366844097439 | epot = -66.7120468508501 | etot = -33.5644508200336 +897000 ekin = 18.4100490066795 | erot = 14.3885926448155 | epot = -66.3630924700693 | etot = -33.5644508185744 +898000 ekin = 18.3898281685202 | erot = 13.9998000563491 | epot = -65.9540790416773 | etot = -33.5644508168081 +899000 ekin = 18.3577139299705 | erot = 13.5871378088075 | epot = -65.509302553754 | etot = -33.564450814976 +900000 ekin = 18.3217786311141 | erot = 13.1685630404219 | epot = -65.054792484781 | etot = -33.5644508132449 +901000 ekin = 18.2902589942974 | erot = 12.7612484276711 | epot = -64.6159582336337 | etot = -33.5644508116652 +902000 ekin = 18.2715810710039 | erot = 12.3808553804282 | epot = -64.2168872615955 | etot = -33.5644508101635 +903000 ekin = 18.2748902577742 | erot = 12.04197991098 | epot = -63.8813209773376 | etot = -33.5644508085834 +904000 ekin = 18.3109460803817 | erot = 11.7594273506552 | epot = -63.6348242377774 | etot = -33.5644508067406 +905000 ekin = 18.393092548532 | erot = 11.5498594838196 | epot = -63.507402836842 | etot = -33.5644508044905 +906000 ekin = 18.5347341805732 | erot = 11.4295673220289 | epot = -63.5287523075689 | etot = -33.5644508049669 +907000 ekin = 18.7414362397562 | erot = 11.4045037441698 | epot = -63.7103907883216 | etot = -33.5644508043955 +908000 ekin = 19.01948896505 | erot = 11.4807236741048 | epot = -64.064663443761 | etot = -33.5644508046062 +909000 ekin = 19.370061418707 | erot = 11.6589605869467 | epot = -64.5934728113217 | etot = -33.5644508056681 +910000 ekin = 19.788210520863 | erot = 11.9333322638151 | epot = -65.2859935919935 | etot = -33.5644508073154 +911000 ekin = 20.2647618396155 | erot = 12.2921701370539 | epot = -66.1213827858005 | etot = -33.5644508091311 +912000 ekin = 20.7894338917871 | erot = 12.7195983389508 | epot = -67.0734830412077 | etot = -33.5644508104698 +913000 ekin = 21.3541857291101 | erot = 13.1939380946156 | epot = -68.1125746374356 | etot = -33.5644508137099 +914000 ekin = 21.9410171487178 | erot = 13.6876167577927 | epot = -69.1930847244104 | etot = -33.5644508179 +915000 ekin = 22.518884629029 | erot = 14.1693256816077 | epot = -70.252661133485 | etot = -33.5644508228483 +916000 ekin = 23.0495496122886 | erot = 14.6035757293001 | epot = -71.2175761703539 | etot = -33.5644508287652 +917000 ekin = 23.4897289756407 | erot = 14.9539952399446 | epot = -72.0081750488837 | etot = -33.5644508332984 +918000 ekin = 23.793918530387 | erot = 15.1976473317576 | epot = -72.5560167461632 | etot = -33.5644508840185 +919000 ekin = 23.6168045559219 | erot = 15.3655091451681 | epot = -72.546764543126 | etot = -33.564450842036 +920000 ekin = 23.1655316155466 | erot = 15.5814764778541 | epot = -72.3114589043119 | etot = -33.5644508109111 +921000 ekin = 22.8561009763955 | erot = 15.8041631554327 | epot = -72.2247149918464 | etot = -33.5644508600183 +922000 ekin = 22.4406172099256 | erot = 15.7102388759533 | epot = -71.7153069240717 | etot = -33.5644508381928 +923000 ekin = 21.8145072543786 | erot = 15.4204628569532 | epot = -70.7994209415843 | etot = -33.5644508302526 +924000 ekin = 21.0897106221477 | erot = 15.1252102346463 | epot = -69.7793716761032 | etot = -33.5644508193092 +925000 ekin = 20.3778961154116 | erot = 14.8990596223701 | epot = -68.8414065460385 | etot = -33.5644508082568 +926000 ekin = 19.7497733196884 | erot = 14.7841436172023 | epot = -68.0983677423196 | etot = -33.5644508054289 +927000 ekin = 19.2202389486492 | erot = 14.8057849928954 | epot = -67.5904747440152 | etot = -33.5644508024706 +928000 ekin = 18.8098178378655 | erot = 14.9862994179362 | epot = -67.3605680557094 | etot = -33.5644507999077 +929000 ekin = 18.5263530330417 | erot = 15.3189513447801 | epot = -67.4097551952486 | etot = -33.5644508174268 +930000 ekin = 18.3031582479208 | erot = 15.7144845870462 | epot = -67.5820936630876 | etot = -33.5644508281205 +931000 ekin = 18.0528353461445 | erot = 16.0920981649876 | epot = -67.7093843479757 | etot = -33.5644508368436 +932000 ekin = 17.7015072487275 | erot = 16.3874716161786 | epot = -67.6534297061045 | etot = -33.5644508411985 +933000 ekin = 17.211575779812 | erot = 16.5716045845824 | epot = -67.3476312032304 | etot = -33.5644508388361 +934000 ekin = 16.5514003367762 | erot = 16.6395832467501 | epot = -66.7554344853522 | etot = -33.564450901826 +935000 ekin = 15.4338979248173 | erot = 16.4795973814032 | epot = -65.4779461395113 | etot = -33.5644508332907 +936000 ekin = 14.2992444440305 | erot = 16.4524645769609 | epot = -64.3161598028593 | etot = -33.564450781868 +937000 ekin = 13.594877389297 | erot = 16.8307081817066 | epot = -63.9900363826699 | etot = -33.5644508116663 +938000 ekin = 13.1600926819737 | erot = 17.3617572865251 | epot = -64.0863008414443 | etot = -33.5644508729455 +939000 ekin = 12.6302856042602 | erot = 17.6616475412764 | epot = -63.8563839351059 | etot = -33.5644507895693 +940000 ekin = 12.1844103621837 | erot = 17.9750890379595 | epot = -63.7239501902423 | etot = -33.5644507900991 +941000 ekin = 11.8736812724101 | erot = 18.3544207840917 | epot = -63.79255284895 | etot = -33.5644507924482 +942000 ekin = 11.6856910034444 | erot = 18.7737996951239 | epot = -64.0239414943836 | etot = -33.5644507958152 +943000 ekin = 11.5993719863631 | erot = 19.1997647301752 | epot = -64.3635875159553 | etot = -33.564450799417 +944000 ekin = 11.5911163869142 | erot = 19.5969000490703 | epot = -64.7524672386315 | etot = -33.564450802647 +945000 ekin = 11.639459484541 | erot = 19.9326030898694 | epot = -65.1365133795222 | etot = -33.5644508051117 +946000 ekin = 11.7278293567757 | erot = 20.1807231909362 | epot = -65.4730033543077 | etot = -33.5644508065958 +947000 ekin = 11.8456010821895 | erot = 20.324153790967 | epot = -65.7342056801685 | etot = -33.5644508070121 +948000 ekin = 11.9879925809402 | erot = 20.3564922792948 | epot = -65.9089356666417 | etot = -33.5644508064067 +949000 ekin = 12.1551997602243 | erot = 20.2822909293999 | epot = -66.0019414945905 | etot = -33.5644508049663 +950000 ekin = 12.3510408470325 | erot = 20.115659623218 | epot = -66.0311512732532 | etot = -33.5644508030028 +951000 ekin = 12.5812930222758 | erot = 19.8773156844474 | epot = -66.0230595076182 | etot = -33.5644508008949 +952000 ekin = 12.8471183866925 | erot = 19.5848425912166 | epot = -65.9964117794652 | etot = -33.564450801556 +953000 ekin = 13.1479143636503 | erot = 19.2558560502527 | epot = -65.9682212137687 | etot = -33.5644507998657 +954000 ekin = 13.4859606885364 | erot = 18.9116614121342 | epot = -65.9620728994014 | etot = -33.5644507987308 +955000 ekin = 13.8607396756392 | erot = 18.5688220964155 | epot = -65.994012570258 | etot = -33.5644507982032 +956000 ekin = 14.2684790715045 | erot = 18.23867671937 | epot = -66.0716065890947 | etot = -33.5644507982202 +957000 ekin = 14.7022261388303 | erot = 17.9280212141735 | epot = -66.1946981516521 | etot = -33.5644507986483 +958000 ekin = 15.1523556915809 | erot = 17.6404102051721 | epot = -66.3572166960802 | etot = -33.5644507993272 +959000 ekin = 15.6074014520696 | erot = 17.3776018825342 | epot = -66.5494541347015 | etot = -33.5644508000977 +960000 ekin = 16.055105520303 | erot = 17.1408213598753 | epot = -66.760377680976 | etot = -33.5644508007977 +961000 ekin = 16.4838195085816 | erot = 16.9315995207268 | epot = -66.979869830664 | etot = -33.5644508013556 +962000 ekin = 16.8831178333153 | erot = 16.752450807508 | epot = -67.2000194425075 | etot = -33.5644508016842 +963000 ekin = 17.2446402437768 | erot = 16.6070593136442 | epot = -67.4161503591765 | etot = -33.5644508017555 +964000 ekin = 17.562694424349 | erot = 16.5001400875647 | epot = -67.6272853134984 | etot = -33.5644508015847 +965000 ekin = 17.8343164168747 | erot = 16.437096040881 | epot = -67.8358632589921 | etot = -33.5644508012364 +966000 ekin = 18.0588818068295 | erot = 16.4234839575503 | epot = -68.0468165651874 | etot = -33.5644508008075 +967000 ekin = 18.2373393703384 | erot = 16.4643418733569 | epot = -68.2661320441123 | etot = -33.5644508004171 +968000 ekin = 18.3712253513644 | erot = 16.5634469194537 | epot = -68.4991230710021 | etot = -33.5644508001841 +969000 ekin = 18.4616731850683 | erot = 16.7225928803125 | epot = -68.7487168655807 | etot = -33.5644508001999 +970000 ekin = 18.5086424153895 | erot = 16.9409874348876 | epot = -69.0140806508028 | etot = -33.5644508005257 +971000 ekin = 18.5105217612239 | erot = 17.214832239555 | epot = -69.2898048019491 | etot = -33.5644508011701 +972000 ekin = 18.4641879343137 | erot = 17.5371342494854 | epot = -69.5657729859032 | etot = -33.5644508021041 +973000 ekin = 18.3654968233623 | erot = 17.8977436725043 | epot = -69.8276912991286 | etot = -33.5644508032619 +974000 ekin = 18.2101154507905 | erot = 18.2835968621238 | epot = -70.0581631174661 | etot = -33.5644508045518 +975000 ekin = 17.9945660461061 | erot = 18.679151597941 | epot = -70.2381684499127 | etot = -33.5644508058656 +976000 ekin = 17.717330563609 | erot = 19.0670257232443 | epot = -70.3488070939419 | etot = -33.5644508070885 +977000 ekin = 17.3798453528906 | erot = 19.4288693817331 | epot = -70.3731655427282 | etot = -33.5644508081045 +978000 ekin = 16.9872047031722 | erot = 19.7465105573489 | epot = -70.2981660693277 | etot = -33.5644508088066 +979000 ekin = 16.5484157018381 | erot = 20.0033999874178 | epot = -70.116266498357 | etot = -33.5644508091011 +980000 ekin = 16.0760394950274 | erot = 20.1863036686509 | epot = -69.8267939695453 | etot = -33.5644508058671 +981000 ekin = 15.5958799597593 | erot = 20.2892058513337 | epot = -69.4495366177224 | etot = -33.5644508066295 +982000 ekin = 15.0884229586249 | erot = 20.3042918160036 | epot = -68.9571656249607 | etot = -33.5644508503322 +983000 ekin = 14.6278059338707 | erot = 20.1974254855586 | epot = -68.3896822274588 | etot = -33.5644508080295 +984000 ekin = 14.485718093269 | erot = 20.0570073304459 | epot = -68.1071762944406 | etot = -33.5644508707257 +985000 ekin = 14.2080885116351 | erot = 19.9192764069441 | epot = -67.6918157209786 | etot = -33.5644508023994 +986000 ekin = 13.9758845112991 | erot = 19.8429646049279 | epot = -67.3832999162394 | etot = -33.5644508000123 +987000 ekin = 13.8444879807334 | erot = 19.8435555011179 | epot = -67.2524942889555 | etot = -33.5644508071042 +988000 ekin = 13.7899576039149 | erot = 19.876553633637 | epot = -67.2309620426443 | etot = -33.5644508050923 +989000 ekin = 13.7826987903072 | erot = 19.9896360515821 | epot = -67.3367856483026 | etot = -33.5644508064133 +990000 ekin = 13.8064598100946 | erot = 20.1866383843989 | epot = -67.5575490030266 | etot = -33.5644508085331 +991000 ekin = 13.8444762357552 | erot = 20.455356874306 | epot = -67.8642839209134 | etot = -33.5644508108522 +992000 ekin = 13.8831356664543 | erot = 20.7777559193191 | epot = -68.2253423984327 | etot = -33.5644508126593 +993000 ekin = 13.9170731932667 | erot = 21.1354076794003 | epot = -68.6169316860712 | etot = -33.5644508134042 +994000 ekin = 13.9526839919551 | erot = 21.5142214723578 | epot = -69.0313562771973 | etot = -33.5644508128844 +995000 ekin = 14.0087177033998 | erot = 21.9069609499345 | epot = -69.4801294647094 | etot = -33.5644508113751 +996000 ekin = 14.1134297061039 | erot = 22.3130050958893 | epot = -69.9908856111372 | etot = -33.564450809144 +997000 ekin = 14.3000196986382 | erot = 22.73642078599 | epot = -70.6008912914758 | etot = -33.5644508068476 +998000 ekin = 14.6010980818731 | erot = 23.1830420697638 | epot = -71.3485909566375 | etot = -33.5644508050006 +999000 ekin = 15.04273129669 | erot = 23.6573925697404 | epot = -72.2645746768899 | etot = -33.5644508104595 +1000000 ekin = 15.6136601549948 | erot = 24.1382005377538 | epot = -73.31631150618 | etot = -33.5644508134314 + 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160018 39304000 +Loop time of 15.1991 on 4 procs for 1000000 steps with 16 atoms + +Performance: 96.978 ns/day, 0.247 hours/ns, 65793.330 timesteps/s, 1.053 Matom-step/s +99.8% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5 | 7.3219 | 8.7863 | 57.6 | 48.17 +Bond | 0.16729 | 0.27802 | 0.36232 | 13.4 | 1.83 +Neigh | 0.004996 | 0.0050565 | 0.005082 | 0.0 | 0.03 +Comm | 4.2246 | 5.7942 | 8.2783 | 66.3 | 38.12 +Output | 0.065594 | 0.07006 | 0.079338 | 2.1 | 0.46 +Modify | 0.59597 | 0.6588 | 0.74343 | 7.9 | 4.33 +Other | | 1.071 | | | 7.05 + +Nlocal: 4 ave 4 max 4 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 12 ave 12 max 12 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 26.75 ave 47 max 9 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 107 +Ave neighs/atom = 6.6875 +Ave special neighs/atom = 3.75 +Neighbor list builds = 1000 +Dangerous builds = 0 +System init for write_data ... +Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule +Total wall time: 0:00:15 From c55901f8ce2cdcf512b92e421035ce111902bf1c Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 20 May 2024 14:28:31 -0600 Subject: [PATCH 135/313] Port hybrid topology (bond/angle/dihedral/improper) styles to Kokkos --- src/KOKKOS/Install.sh | 2 + src/KOKKOS/bond_class2_kokkos.cpp | 22 +-- src/KOKKOS/bond_class2_kokkos.h | 7 +- src/KOKKOS/bond_fene_kokkos.cpp | 22 +-- src/KOKKOS/bond_fene_kokkos.h | 5 +- src/KOKKOS/bond_harmonic_kokkos.cpp | 25 ++-- src/KOKKOS/bond_harmonic_kokkos.h | 2 +- src/KOKKOS/bond_hybrid_kokkos.cpp | 214 ++++++++++++++++++++++++++++ src/KOKKOS/bond_hybrid_kokkos.h | 58 ++++++++ src/KOKKOS/kokkos_type.h | 1 + src/KOKKOS/pair_hybrid_kokkos.cpp | 4 +- src/bond.cpp | 3 +- src/bond.h | 2 +- src/bond_hybrid.cpp | 37 ++--- src/bond_hybrid.h | 5 +- 15 files changed, 344 insertions(+), 65 deletions(-) create mode 100644 src/KOKKOS/bond_hybrid_kokkos.cpp create mode 100644 src/KOKKOS/bond_hybrid_kokkos.h diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 75949c35d8..86acbe97b2 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -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 diff --git a/src/KOKKOS/bond_class2_kokkos.cpp b/src/KOKKOS/bond_class2_kokkos.cpp index eeecc385b0..2cf113ec00 100644 --- a/src/KOKKOS/bond_class2_kokkos.cpp +++ b/src/KOKKOS/bond_class2_kokkos.cpp @@ -34,6 +34,8 @@ using namespace LAMMPS_NS; template BondClass2Kokkos::BondClass2Kokkos(LAMMPS *lmp) : BondClass2(lmp) { + kokkosable = 1; + atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -122,12 +124,12 @@ void BondClass2Kokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -227,13 +229,13 @@ void BondClass2Kokkos::coeff(int narg, char **arg) k_r0.h_view[i] = r0[i]; } - k_k2.template modify(); + k_k2.modify_host(); k_k2.template sync(); - k_k3.template modify(); + k_k3.modify_host(); k_k3.template sync(); - k_k4.template modify(); + k_k4.modify_host(); k_k4.template sync(); - k_r0.template modify(); + k_r0.modify_host(); k_r0.template sync(); } @@ -264,13 +266,13 @@ void BondClass2Kokkos::read_restart(FILE *fp) k_r0.h_view[i] = r0[i]; } - k_k2.template modify(); + k_k2.modify_host(); k_k2.template sync(); - k_k3.template modify(); + k_k3.modify_host(); k_k3.template sync(); - k_k4.template modify(); + k_k4.modify_host(); k_k4.template sync(); - k_r0.template modify(); + k_r0.modify_host(); k_r0.template sync(); } diff --git a/src/KOKKOS/bond_class2_kokkos.h b/src/KOKKOS/bond_class2_kokkos.h index 0eb3c4d39a..1056bf021d 100644 --- a/src/KOKKOS/bond_class2_kokkos.h +++ b/src/KOKKOS/bond_class2_kokkos.h @@ -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::value KKDeviceType; + Kokkos::DualView k_eatom; + Kokkos::DualView k_vatom; + protected: class NeighborKokkos *neighborKK; @@ -67,9 +71,6 @@ class BondClass2Kokkos : public BondClass2 { typename Kokkos::View::value,Kokkos::MemoryTraits > f; typename AT::t_int_2d bondlist; - typedef typename KKDevice::value KKDeviceType; - Kokkos::DualView k_eatom; - Kokkos::DualView k_vatom; Kokkos::View > d_eatom; Kokkos::View > d_vatom; diff --git a/src/KOKKOS/bond_fene_kokkos.cpp b/src/KOKKOS/bond_fene_kokkos.cpp index a6bbb1edde..a056f35fde 100644 --- a/src/KOKKOS/bond_fene_kokkos.cpp +++ b/src/KOKKOS/bond_fene_kokkos.cpp @@ -37,6 +37,8 @@ using MathConst::MY_CUBEROOT2; template BondFENEKokkos::BondFENEKokkos(LAMMPS *lmp) : BondFENE(lmp) { + kokkosable = 1; + atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -135,12 +137,12 @@ void BondFENEKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -267,10 +269,10 @@ void BondFENEKokkos::coeff(int narg, char **arg) k_sigma.h_view[i] = sigma[i]; } - k_k.template modify(); - k_r0.template modify(); - k_epsilon.template modify(); - k_sigma.template modify(); + k_k.modify_host(); + k_r0.modify_host(); + k_epsilon.modify_host(); + k_sigma.modify_host(); } @@ -291,10 +293,10 @@ void BondFENEKokkos::read_restart(FILE *fp) k_sigma.h_view[i] = sigma[i]; } - k_k.template modify(); - k_r0.template modify(); - k_epsilon.template modify(); - k_sigma.template modify(); + k_k.modify_host(); + k_r0.modify_host(); + k_epsilon.modify_host(); + k_sigma.modify_host(); } /* ---------------------------------------------------------------------- diff --git a/src/KOKKOS/bond_fene_kokkos.h b/src/KOKKOS/bond_fene_kokkos.h index 18f8d87b6a..450490d6a9 100644 --- a/src/KOKKOS/bond_fene_kokkos.h +++ b/src/KOKKOS/bond_fene_kokkos.h @@ -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::t_f_array f; typename ArrayTypes::t_int_2d bondlist; - DAT::tdual_efloat_1d k_eatom; - DAT::tdual_virial_array k_vatom; typename ArrayTypes::t_efloat_1d d_eatom; typename ArrayTypes::t_virial_array d_vatom; diff --git a/src/KOKKOS/bond_harmonic_kokkos.cpp b/src/KOKKOS/bond_harmonic_kokkos.cpp index 7dcdf24c66..7e12400c9b 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.cpp +++ b/src/KOKKOS/bond_harmonic_kokkos.cpp @@ -34,6 +34,8 @@ using namespace LAMMPS_NS; template BondHarmonicKokkos::BondHarmonicKokkos(LAMMPS *lmp) : BondHarmonic(lmp) { + kokkosable = 1; + atomKK = (AtomKokkos *) atom; neighborKK = (NeighborKokkos *) neighbor; execution_space = ExecutionSpaceFromDevice::space; @@ -65,23 +67,20 @@ void BondHarmonicKokkos::compute(int eflag_in, int vflag_in) // reallocate per-atom arrays if necessary if (eflag_atom) { - //if(k_eatom.extent(0)destroy_kokkos(k_eatom,eatom); memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom"); d_eatom = k_eatom.template view(); - //} + } else Kokkos::deep_copy(d_eatom,0.0); } if (vflag_atom) { - //if(k_vatom.extent(0)destroy_kokkos(k_vatom,vatom); memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"improper:vatom"); d_vatom = k_vatom.template view(); - //} + } 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(); f = atomKK->k_f.template view(); neighborKK->k_bondlist.template sync(); @@ -122,12 +121,12 @@ void BondHarmonicKokkos::compute(int eflag_in, int vflag_in) if (eflag_atom) { k_eatom.template modify(); - k_eatom.template sync(); + k_eatom.sync_host(); } if (vflag_atom) { k_vatom.template modify(); - k_vatom.template sync(); + k_vatom.sync_host(); } copymode = 0; @@ -214,8 +213,8 @@ void BondHarmonicKokkos::coeff(int narg, char **arg) k_r0.h_view[i] = r0[i]; } - k_k.template modify(); - k_r0.template modify(); + k_k.modify_host(); + k_r0.modify_host(); k_k.template sync(); k_r0.template sync(); } @@ -241,8 +240,8 @@ void BondHarmonicKokkos::read_restart(FILE *fp) k_r0.h_view[i] = r0[i]; } - k_k.template modify(); - k_r0.template modify(); + k_k.modify_host(); + k_r0.modify_host(); k_k.template sync(); k_r0.template sync(); } diff --git a/src/KOKKOS/bond_harmonic_kokkos.h b/src/KOKKOS/bond_harmonic_kokkos.h index 837e669b98..b613dbc310 100644 --- a/src/KOKKOS/bond_harmonic_kokkos.h +++ b/src/KOKKOS/bond_harmonic_kokkos.h @@ -37,6 +37,7 @@ class BondHarmonicKokkos : public BondHarmonic { public: typedef DeviceType device_type; typedef EV_FLOAT value_type; + typedef ArrayTypes AT; BondHarmonicKokkos(class LAMMPS *); ~BondHarmonicKokkos() override; @@ -62,7 +63,6 @@ class BondHarmonicKokkos : public BondHarmonic { class NeighborKokkos *neighborKK; - typedef ArrayTypes AT; typename AT::t_x_array_randomread x; typename Kokkos::View::value,Kokkos::MemoryTraits > f; typename AT::t_int_2d bondlist; diff --git a/src/KOKKOS/bond_hybrid_kokkos.cpp b/src/KOKKOS/bond_hybrid_kokkos.cpp new file mode 100644 index 0000000000..65208f8d8c --- /dev/null +++ b/src/KOKKOS/bond_hybrid_kokkos.cpp @@ -0,0 +1,214 @@ +/* ---------------------------------------------------------------------- + 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 + +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(); + + 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; +} diff --git a/src/KOKKOS/bond_hybrid_kokkos.h b/src/KOKKOS/bond_hybrid_kokkos.h new file mode 100644 index 0000000000..217beaca5f --- /dev/null +++ b/src/KOKKOS/bond_hybrid_kokkos.h @@ -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 diff --git a/src/KOKKOS/kokkos_type.h b/src/KOKKOS/kokkos_type.h index 6e3cb2a1d9..7f0eb5c105 100644 --- a/src/KOKKOS/kokkos_type.h +++ b/src/KOKKOS/kokkos_type.h @@ -1408,6 +1408,7 @@ typedef SNAComplex 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__ diff --git a/src/KOKKOS/pair_hybrid_kokkos.cpp b/src/KOKKOS/pair_hybrid_kokkos.cpp index 84d43bcec8..353998a950 100644 --- a/src/KOKKOS/pair_hybrid_kokkos.cpp +++ b/src/KOKKOS/pair_hybrid_kokkos.cpp @@ -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; diff --git a/src/bond.cpp b/src/bond.cpp index 943784427a..b414ddbdca 100644 --- a/src/bond.cpp +++ b/src/bond.cpp @@ -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; } /* ---------------------------------------------------------------------- */ diff --git a/src/bond.h b/src/bond.h index be6d737597..f52204662c 100644 --- a/src/bond.h +++ b/src/bond.h @@ -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; diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index 6e5ae8d5e7..2fb5882e9a 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -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); } } diff --git a/src/bond_hybrid.h b/src/bond_hybrid.h index df1437c038..d2496b8297 100644 --- a/src/bond_hybrid.h +++ b/src/bond_hybrid.h @@ -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(); From ea3bd6043f5820c4ab89897156489b7a34e6c03a Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Mon, 20 May 2024 14:36:01 -0600 Subject: [PATCH 136/313] whitespace --- src/KOKKOS/bond_hybrid_kokkos.cpp | 2 +- src/bond_hybrid.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/KOKKOS/bond_hybrid_kokkos.cpp b/src/KOKKOS/bond_hybrid_kokkos.cpp index 65208f8d8c..6bf4786a34 100644 --- a/src/KOKKOS/bond_hybrid_kokkos.cpp +++ b/src/KOKKOS/bond_hybrid_kokkos.cpp @@ -38,7 +38,7 @@ BondHybridKokkos::BondHybridKokkos(LAMMPS *lmp) : BondHybrid(lmp) neighborKK = (NeighborKokkos *) neighbor; execution_space = Device; - + datamask_read = EMPTY_MASK; datamask_modify = EMPTY_MASK; } diff --git a/src/bond_hybrid.cpp b/src/bond_hybrid.cpp index 2fb5882e9a..7df4f31455 100644 --- a/src/bond_hybrid.cpp +++ b/src/bond_hybrid.cpp @@ -162,11 +162,11 @@ void BondHybrid::allocate() /* ---------------------------------------------------------------------- */ void BondHybrid::deallocate() -{ +{ if (!allocated) return; - + allocated = 0; - + memory->destroy(setflag); memory->destroy(map); delete[] nbondlist; From 3b091c0bd44c1aa9bede54004e8ec361dee65fa5 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 21 May 2024 19:35:04 -0400 Subject: [PATCH 137/313] type label support for dump xyz --- doc/src/dump.rst | 5 +++-- doc/src/dump_modify.rst | 14 +++++++++++--- src/dump_xyz.cpp | 27 +++++++++++++++++++++++++++ src/label_map.h | 1 + 4 files changed, 42 insertions(+), 5 deletions(-) diff --git a/doc/src/dump.rst b/doc/src/dump.rst index 2e61ad9921..9f2be8c129 100644 --- a/doc/src/dump.rst +++ b/doc/src/dump.rst @@ -470,8 +470,9 @@ followed by one line per atom with the atom type and the :math:`x`-, :math:`y`-, and :math:`z`-coordinate of that atom. You can use the :doc:`dump_modify element ` option to change the output from using the (numerical) atom type to an element name (or some other -label). This will help many visualization programs to guess bonds and -colors. +label). This option will help many visualization programs to guess bonds +and colors. You can use the :doc:`dump_modify types labels ` +option to replace numeric atom types with :doc:`type labels `. .. versionadded:: 22Dec2022 diff --git a/doc/src/dump_modify.rst b/doc/src/dump_modify.rst index a9b71a98e2..79fdf2cc3e 100644 --- a/doc/src/dump_modify.rst +++ b/doc/src/dump_modify.rst @@ -17,7 +17,7 @@ Syntax * one or more keyword/value pairs may be appended * these keywords apply to various dump styles -* keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *skip* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *triclinic/general* or *units* or *unwrap* +* keyword = *append* or *at* or *balance* or *buffer* or *colname* or *delay* or *element* or *every* or *every/time* or *fileper* or *first* or *flush* or *format* or *header* or *image* or *label* or *maxfiles* or *nfile* or *pad* or *pbc* or *precision* or *region* or *refresh* or *scale* or *sfactor* or *skip* or *sort* or *tfactor* or *thermo* or *thresh* or *time* or *triclinic/general* or *types* or *units* or *unwrap* .. parsed-literal:: @@ -81,6 +81,7 @@ Syntax these 3 args can be replaced by the word "none" to turn off thresholding *time* arg = *yes* or *no* *triclinic/general* arg = *yes* or *no* + *types* value = *numeric* or *labels* *units* arg = *yes* or *no* *unwrap* arg = *yes* or *no* @@ -849,6 +850,13 @@ The default setting is *no*\ . ---------- +The *types* keyword applies only to the dump xyz style. If this keyword is +used with a value of *numeric*, then numeric atom types are printed in the +xyz file (default). If the value *labels* is specified, then +:doc:`type labels ` are printed for atom types. + +---------- + The *triclinic/general* keyword only applies to the dump *atom* and *custom* styles. It can only be used with a value of *yes* if the simulation box was created as a general triclinic box. See the @@ -960,11 +968,11 @@ The option defaults are * sort = id for dump styles *dcd*, *xtc*, and *xyz* * thresh = none * time = no -* triclinic/general no +* triclinic/general = no +* types = numeric * units = no * unwrap = no * compression_level = 9 (gz variants) * compression_level = 0 (zstd variants) * checksum = yes (zstd variants) - diff --git a/src/dump_xyz.cpp b/src/dump_xyz.cpp index f7ab77b2bf..c424a98feb 100644 --- a/src/dump_xyz.cpp +++ b/src/dump_xyz.cpp @@ -16,6 +16,7 @@ #include "atom.h" #include "error.h" +#include "label_map.h" #include "memory.h" #include "update.h" @@ -122,6 +123,32 @@ int DumpXYZ::modify_param(int narg, char **arg) return ntypes+1; } + if (strcmp(arg[0],"types") == 0) { + if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); + if (strcmp(arg[1],"numeric") == 0) { + return 2; + } else if (strcmp(arg[1],"labels") == 0) { + if (!atom->labelmapflag) + error->all(FLERR, "Label map must be defined when using 'types labels'"); + } else error->all(FLERR, "Illegal option for dump_modify 'types' keyword"); + + + if (typenames) { + for (int i = 1; i <= ntypes; i++) + delete [] typenames[i]; + + delete [] typenames; + typenames = nullptr; + } + + typenames = new char*[ntypes+1]; + for (int itype = 1; itype <= ntypes; itype++) { + typenames[itype] = utils::strdup(atom->lmap->typelabel[itype-1]); + } + + return 2; + } + return 0; } diff --git a/src/label_map.h b/src/label_map.h index a96fcc255c..0dfc42c9b5 100644 --- a/src/label_map.h +++ b/src/label_map.h @@ -22,6 +22,7 @@ namespace LAMMPS_NS { class LabelMap : protected Pointers { friend class AtomVec; + friend class DumpXYZ; friend class ReadData; public: From d42b8ebb6c689f33e9b2133d9f4ce6f4ad04b896 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Tue, 21 May 2024 19:40:28 -0400 Subject: [PATCH 138/313] make use of new dump_modify in examples --- examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt | 1 + examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized | 1 + examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized | 1 + .../tiny_nylon/in.tiny_nylon.stabilized_variable_probability | 1 + examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized | 1 + .../reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized | 1 + 6 files changed, 6 insertions(+) diff --git a/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt b/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt index 635b2c9750..fb0324cabe 100644 --- a/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt +++ b/examples/PACKAGES/reaction/nylon,6-6_melt/in.large_nylon_melt @@ -38,6 +38,7 @@ molecule mol4 rxn1_stp2_reacted.molecule_template thermo 50 # dump 1 all xyz 100 test_vis.xyz +# dump_modify 1 types labels fix myrxns all bond/react stabilization yes statted_grp .03 & react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map & diff --git a/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized b/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized index 7e0350cdb0..4c23143474 100644 --- a/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized +++ b/examples/PACKAGES/reaction/tiny_epoxy/in.tiny_epoxy.stabilized @@ -35,6 +35,7 @@ molecule mol6 rxn2_stp2_post.molecule_template thermo 50 # dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels fix rxns all bond/react stabilization yes statted_grp .03 & react rxn1_stp1 all 1 0.0 5 mol1 mol2 rxn1_stp1.map & diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized index 853bc45f1e..60d33aa351 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized @@ -39,6 +39,7 @@ molecule mol4 rxn1_stp2_reacted.molecule_template thermo 50 # dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels fix myrxns all bond/react stabilization yes statted_grp .03 & react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map & diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability index f3c32f3cbd..770f4fc3b1 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.stabilized_variable_probability @@ -43,6 +43,7 @@ molecule mol4 rxn1_stp2_reacted.molecule_template thermo 50 # dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels fix myrxns all bond/react stabilization yes statted_grp .03 & react rxn1 all 1 0.0 5.0 mol1 mol2 rxn1_stp1_map prob v_prob1 1234 & diff --git a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized index e5cbaaaf86..4ade3f8b99 100644 --- a/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized +++ b/examples/PACKAGES/reaction/tiny_nylon/in.tiny_nylon.unstabilized @@ -40,6 +40,7 @@ molecule mol4 rxn1_stp2_reacted.molecule_template thermo 50 # dump 1 all xyz 1 test_vis.xyz +# dump_modify 1 types labels fix myrxns all bond/react stabilization no & react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map & diff --git a/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized b/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized index 230998fcd3..34346d9ef7 100644 --- a/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized +++ b/examples/PACKAGES/reaction/tiny_polystyrene/in.tiny_polystyrene.stabilized @@ -41,6 +41,7 @@ molecule mol6 chain_chain_reacted.molecule_template thermo 100 # dump 1 all xyz 5 test_vis.xyz +# dump_modify 1 types labels fix rxn1 all bond/react stabilization yes statted_grp .03 & react rxn1 all 1 0 3.0 mol1 mol2 2styrene_map stabilize_steps 100 & From 8f61bc57d2b46cb90f6c34a090ed73a0f4406a3a Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Wed, 22 May 2024 10:02:52 +0200 Subject: [PATCH 139/313] move xhold checks caller-side this also allows it to fall-back on do-nothing rather than crash --- src/MISC/fix_ipi.cpp | 21 +++++++++++---------- src/neighbor.cpp | 8 +++----- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/MISC/fix_ipi.cpp b/src/MISC/fix_ipi.cpp index fcb3ed8246..87668b9192 100644 --- a/src/MISC/fix_ipi.cpp +++ b/src/MISC/fix_ipi.cpp @@ -379,20 +379,21 @@ void FixIPI::initial_integrate(int /*vflag*/) // snapshot at neighbor list creation, minimizing the // number of neighbor list updates auto xhold = neighbor->get_xhold(); - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) { - auto delx = x[i][0] - xhold[i][0]; - auto dely = x[i][1] - xhold[i][1]; - auto delz = x[i][2] - xhold[i][2]; + if (xhold != NULL) { // don't wrap if xhold is not used in the NL + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + auto delx = x[i][0] - xhold[i][0]; + auto dely = x[i][1] - xhold[i][1]; + auto delz = x[i][2] - xhold[i][2]; - domain->minimum_image(delx, dely, delz); + domain->minimum_image(delx, dely, delz); - x[i][0] = xhold[i][0] + delx; - x[i][1] = xhold[i][1] + dely; - x[i][2] = xhold[i][2] + delz; + x[i][0] = xhold[i][0] + delx; + x[i][1] = xhold[i][1] + dely; + x[i][2] = xhold[i][2] + delz; + } } } - // move atoms to new processors via irregular() // only needed if migrate_check() says an atom moves to far if (domain->triclinic) domain->x2lamda(atom->nlocal); diff --git a/src/neighbor.cpp b/src/neighbor.cpp index f3390b49fe..63d14acb9a 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2976,13 +2976,11 @@ bigint Neighbor::get_nneigh_half() return nneighhalf; } +/* ---------------------------------------------------------------------- + return the pointer containing the last positions stored by the NL builder +------------------------------------------------------------------------- */ double **Neighbor::get_xhold() { - // Returns the pointer containing the last positions stored by the NL builder, - // checking it has actually been initialized - if (maxhold == 0) { - error->all(FLERR, "trying to access uninitialized xhold list"); - } return xhold; } From 749e259294274670637677869fa17dae711a6240 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 22 May 2024 14:15:48 +0100 Subject: [PATCH 140/313] Moved test script --- examples/PACKAGES/cgdna/examples/{lj_units => }/test.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/PACKAGES/cgdna/examples/{lj_units => }/test.sh (100%) diff --git a/examples/PACKAGES/cgdna/examples/lj_units/test.sh b/examples/PACKAGES/cgdna/examples/test.sh similarity index 100% rename from examples/PACKAGES/cgdna/examples/lj_units/test.sh rename to examples/PACKAGES/cgdna/examples/test.sh From 938d1178905aa3ea9068e9f7e39becfc3f017d78 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 22 May 2024 15:53:09 +0100 Subject: [PATCH 141/313] Updated tests to contain full stdout --- ...uplex1.g++.1 => log.22May24.duplex1.g++.1} | 109 ++++++++-- ...uplex1.g++.4 => log.22May24.duplex1.g++.4} | 109 ++++++++-- ...uplex1.g++.1 => log.22May24.duplex2.g++.1} | 111 ++++++++-- ...uplex1.g++.4 => log.22May24.duplex2.g++.4} | 111 ++++++++-- ....dsring.g++.1 => log.22May24.dsring.g++.1} | 115 ++++++++-- ....dsring.g++.4 => log.22May24.dsring.g++.4} | 115 ++++++++-- ...uplex1.g++.1 => log.22May24.duplex1.g++.1} | 115 ++++++++-- ...uplex1.g++.4 => log.22May24.duplex1.g++.4} | 115 ++++++++-- ...uplex2.g++.1 => log.22May24.duplex2.g++.1} | 117 ++++++++-- ...uplex2.g++.4 => log.22May24.duplex2.g++.4} | 117 ++++++++-- ...uplex3.g++.1 => log.22May24.duplex3.g++.1} | 115 ++++++++-- ...uplex3.g++.4 => log.22May24.duplex3.g++.4} | 115 ++++++++-- ....g++.1 => log.22May24.duplex4.4type.g++.1} | 163 ++++++++++++-- ....g++.4 => log.22May24.duplex4.4type.g++.4} | 163 ++++++++++++-- ....g++.1 => log.22May24.duplex4.8type.g++.1} | 205 ++++++++++++++++-- ....g++.4 => log.22May24.duplex4.8type.g++.4} | 205 ++++++++++++++++-- ...uplex2.g++.1 => log.22May24.duplex2.g++.1} | 116 ++++++++-- ...uplex2.g++.4 => log.22May24.duplex2.g++.4} | 116 ++++++++-- examples/PACKAGES/cgdna/examples/test.sh | 4 +- 19 files changed, 1978 insertions(+), 358 deletions(-) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/{log.19May24.duplex1.g++.1 => log.22May24.duplex1.g++.1} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/{log.19May24.duplex1.g++.4 => log.22May24.duplex1.g++.4} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/{log.19May24.duplex1.g++.1 => log.22May24.duplex2.g++.1} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/{log.19May24.duplex1.g++.4 => log.22May24.duplex2.g++.4} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/{log.19May24.dsring.g++.1 => log.22May24.dsring.g++.1} (76%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/{log.19May24.dsring.g++.4 => log.22May24.dsring.g++.4} (76%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/{log.19May24.duplex1.g++.1 => log.22May24.duplex1.g++.1} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/{log.19May24.duplex1.g++.4 => log.22May24.duplex1.g++.4} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/{log.19May24.duplex2.g++.1 => log.22May24.duplex2.g++.1} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/{log.19May24.duplex2.g++.4 => log.22May24.duplex2.g++.4} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/{log.19May24.duplex3.g++.1 => log.22May24.duplex3.g++.1} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/{log.19May24.duplex3.g++.4 => log.22May24.duplex3.g++.4} (96%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/{log.19May24.duplex4.4type.g++.1 => log.22May24.duplex4.4type.g++.1} (93%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/{log.19May24.duplex4.4type.g++.4 => log.22May24.duplex4.4type.g++.4} (93%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/{log.19May24.duplex4.8type.g++.1 => log.22May24.duplex4.8type.g++.1} (90%) rename examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/{log.19May24.duplex4.8type.g++.4 => log.22May24.duplex4.8type.g++.4} (90%) rename examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/{log.19May24.duplex2.g++.1 => log.22May24.duplex2.g++.1} (95%) rename examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/{log.19May24.duplex2.g++.4 => log.22May24.duplex2.g++.4} (95%) diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.1 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.1 index 2b84f7c3ac..a8cb9b5d68 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.1 @@ -1,6 +1,27 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +44,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +set atom * mass 315.8376 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +65,47 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/stk seqav 300 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.1.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -63,10 +134,6 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8453746587949 | etot = -54.4567170072638 Per MPI rank memory allocation (min/avg/max) = 7.196 | 7.196 | 7.196 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1072,21 +1139,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.196 | 7.196 | 7.196 Mbytes 999000 ekin = 9.43365149698941 | erot = 9.73053828894017 | epot = -73.6209070698904 | etot = -54.4567172839608 1000000 ekin = 9.45092723111945 | erot = 9.62486149925983 | epot = -73.532506015067 | etot = -54.4567172846877 1000000 352.2878 -75.545604 2.0130979 -64.081579 -0.0098473389 39304000 -Loop time of 9.76856 on 1 procs for 1000000 steps with 10 atoms +Loop time of 16.8981 on 1 procs for 1000000 steps with 10 atoms -Performance: 150.891 ns/day, 0.159 hours/ns, 102369.234 timesteps/s, 1.024 Matom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 87.228 ns/day, 0.275 hours/ns, 59178.314 timesteps/s, 591.783 katom-step/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 7.5788 | 7.5788 | 7.5788 | 0.0 | 77.58 -Bond | 0.42182 | 0.42182 | 0.42182 | 0.0 | 4.32 -Neigh | 0.012447 | 0.012447 | 0.012447 | 0.0 | 0.13 -Comm | 0.24821 | 0.24821 | 0.24821 | 0.0 | 2.54 -Output | 0.10868 | 0.10868 | 0.10868 | 0.0 | 1.11 -Modify | 1.1076 | 1.1076 | 1.1076 | 0.0 | 11.34 -Other | | 0.291 | | | 2.98 +Pair | 13.505 | 13.505 | 13.505 | 0.0 | 79.92 +Bond | 0.61276 | 0.61276 | 0.61276 | 0.0 | 3.63 +Neigh | 0.038787 | 0.038787 | 0.038787 | 0.0 | 0.23 +Comm | 0.46975 | 0.46975 | 0.46975 | 0.0 | 2.78 +Output | 0.12918 | 0.12918 | 0.12918 | 0.0 | 0.76 +Modify | 1.6798 | 1.6798 | 1.6798 | 0.0 | 9.94 +Other | | 0.4627 | | | 2.74 Nlocal: 10 ave 10 max 10 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1100,6 +1167,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.1.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:09 +#write_restart last_config.${number}.* +Total wall time: 0:00:16 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.4 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.4 index b5766accaf..929e921b16 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.19May24.duplex1.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex1/log.22May24.duplex1.g++.4 @@ -1,6 +1,27 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +44,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.011 seconds + +set atom * mass 315.8376 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +65,47 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/stk seqav 300 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.1.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -63,10 +134,6 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -77.8453746587951 | etot = -54.456717007264 Per MPI rank memory allocation (min/avg/max) = 7.105 | 7.11 | 7.116 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1072,21 +1139,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.105 | 7.11 | 7.116 Mbytes 999000 ekin = 9.43365149694049 | erot = 9.73053828900897 | epot = -73.620907069925 | etot = -54.4567172839756 1000000 ekin = 9.45092723106241 | erot = 9.62486149933323 | epot = -73.5325060150984 | etot = -54.4567172847028 1000000 352.2878 -75.545604 2.0130979 -64.081579 -0.0098473389 39304000 -Loop time of 10.0925 on 4 procs for 1000000 steps with 10 atoms +Loop time of 16.7951 on 4 procs for 1000000 steps with 10 atoms -Performance: 146.047 ns/day, 0.164 hours/ns, 99083.127 timesteps/s, 990.831 katom-step/s -99.8% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 87.763 ns/day, 0.273 hours/ns, 59541.025 timesteps/s, 595.410 katom-step/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 3.3362 | 4.003 | 5.7128 | 49.6 | 39.66 -Bond | 0.12031 | 0.17704 | 0.23635 | 10.9 | 1.75 -Neigh | 0.00676 | 0.006813 | 0.006854 | 0.0 | 0.07 -Comm | 2.2652 | 4.2367 | 5.0428 | 55.8 | 41.98 -Output | 0.062416 | 0.073606 | 0.1045 | 6.6 | 0.73 -Modify | 0.36934 | 0.44375 | 0.5325 | 11.1 | 4.40 -Other | | 1.152 | | | 11.41 +Pair | 5.5941 | 6.7707 | 9.5516 | 62.7 | 40.31 +Bond | 0.2092 | 0.2872 | 0.38189 | 13.0 | 1.71 +Neigh | 0.018433 | 0.018502 | 0.018552 | 0.0 | 0.11 +Comm | 3.8835 | 7.1053 | 8.5337 | 70.8 | 42.31 +Output | 0.073525 | 0.077664 | 0.085514 | 1.7 | 0.46 +Modify | 0.58013 | 0.70982 | 0.8931 | 15.7 | 4.23 +Other | | 1.826 | | | 10.87 Nlocal: 2.5 ave 4 max 1 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1100,6 +1167,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.1.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:10 +#write_restart last_config.${number}.* +Total wall time: 0:00:16 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.1 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.1 index caee1b298f..8254a5535a 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.1 @@ -1,6 +1,27 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +44,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.010 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +65,49 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/stk seqav 300 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -63,10 +136,6 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -131.137679785989 | etot = -98.3191045555159 Per MPI rank memory allocation (min/avg/max) = 7.322 | 7.322 | 7.322 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1072,21 +1141,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.322 | 7.322 | 7.322 Mbytes 999000 ekin = 18.7341404690777 | erot = 19.3234540065288 | epot = -128.842851529638 | etot = -90.7852570540318 1000000 ekin = 18.6583620145008 | erot = 16.6848586754118 | epot = -128.346967556883 | etot = -93.0037468669704 1000000 417.29959 -129.94144 1.5944718 -109.68861 0.062656806 39304000 -Loop time of 22.0444 on 1 procs for 1000000 steps with 16 atoms +Loop time of 34.4889 on 1 procs for 1000000 steps with 16 atoms -Performance: 66.864 ns/day, 0.359 hours/ns, 45363.046 timesteps/s, 725.809 katom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 42.738 ns/day, 0.562 hours/ns, 28994.847 timesteps/s, 463.918 katom-step/s +99.2% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 17.105 | 17.105 | 17.105 | 0.0 | 77.59 -Bond | 0.67238 | 0.67238 | 0.67238 | 0.0 | 3.05 -Neigh | 0.016373 | 0.016373 | 0.016373 | 0.0 | 0.07 -Comm | 0.29298 | 0.29298 | 0.29298 | 0.0 | 1.33 -Output | 0.12608 | 0.12608 | 0.12608 | 0.0 | 0.57 -Modify | 3.5001 | 3.5001 | 3.5001 | 0.0 | 15.88 -Other | | 0.3318 | | | 1.51 +Pair | 27.385 | 27.385 | 27.385 | 0.0 | 79.40 +Bond | 0.89821 | 0.89821 | 0.89821 | 0.0 | 2.60 +Neigh | 0.043138 | 0.043138 | 0.043138 | 0.0 | 0.13 +Comm | 0.47566 | 0.47566 | 0.47566 | 0.0 | 1.38 +Output | 0.20876 | 0.20876 | 0.20876 | 0.0 | 0.61 +Modify | 5.0059 | 5.0059 | 5.0059 | 0.0 | 14.51 +Other | | 0.4721 | | | 1.37 Nlocal: 16 ave 16 max 16 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1100,6 +1169,10 @@ Ave neighs/atom = 6.5625 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:22 +#write_restart last_config.${number}.* +Total wall time: 0:00:34 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.4 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.4 index 206baf6975..2397997895 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.19May24.duplex1.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/duplex2/log.22May24.duplex2.g++.4 @@ -1,6 +1,27 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +44,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.013 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxDNA bond interactions - FENE backbone +bond_style oxdna/fene +bond_coeff * 11.92337812042065 2.1295 6.409795 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +65,49 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk +pair_coeff * * oxdna/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/stk seqav 300 8.01727944817084 0.005279604 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna/hbond seqav 6.42073911784652 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2 -0.65 2 -0.65 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -63,10 +136,6 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -131.137679785989 | etot = -98.3191045555159 Per MPI rank memory allocation (min/avg/max) = 7.232 | 7.264 | 7.344 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1072,21 +1141,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.232 | 7.264 | 7.344 Mbytes 999000 ekin = 17.0511128282761 | erot = 11.8922913066054 | epot = -130.533301683943 | etot = -101.589897549061 1000000 ekin = 16.4176868113516 | erot = 10.505891115617 | epot = -130.086633390017 | etot = -103.163055463049 1000000 367.18625 -134.96443 4.8777959 -113.66895 -0.029625089 39304000 -Loop time of 17.8373 on 4 procs for 1000000 steps with 16 atoms +Loop time of 26.4037 on 4 procs for 1000000 steps with 16 atoms -Performance: 82.635 ns/day, 0.290 hours/ns, 56062.259 timesteps/s, 896.996 katom-step/s -99.8% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 55.825 ns/day, 0.430 hours/ns, 37873.477 timesteps/s, 605.976 katom-step/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 5.4709 | 7.3456 | 10.788 | 75.7 | 41.18 -Bond | 0.25222 | 0.29369 | 0.34982 | 7.2 | 1.65 -Neigh | 0.009763 | 0.0099055 | 0.010039 | 0.1 | 0.06 -Comm | 3.6693 | 7.3401 | 9.3552 | 81.3 | 41.15 -Output | 0.074481 | 0.079893 | 0.09183 | 2.5 | 0.45 -Modify | 1.0375 | 1.2928 | 1.4979 | 18.1 | 7.25 -Other | | 1.475 | | | 8.27 +Pair | 8.0347 | 10.957 | 16.143 | 93.9 | 41.50 +Bond | 0.3256 | 0.38079 | 0.42679 | 6.8 | 1.44 +Neigh | 0.021142 | 0.021313 | 0.021466 | 0.1 | 0.08 +Comm | 5.5113 | 11.003 | 14.141 | 100.0 | 41.67 +Output | 0.091898 | 0.097995 | 0.11134 | 2.5 | 0.37 +Modify | 1.3872 | 1.6961 | 1.9792 | 21.0 | 6.42 +Other | | 2.247 | | | 8.51 Nlocal: 4 ave 6 max 2 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1100,6 +1169,10 @@ Ave neighs/atom = 6.5625 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:17 +#write_restart last_config.${number}.* +Total wall time: 0:00:26 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.1 similarity index 76% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.1 index bfc6e85a5a..e605409b1f 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.1 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 5 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.dsring Reading data file ... orthogonal box = (0 0 0) to (851 851 851) 1 by 1 by 1 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.012 seconds + +set atom * mass 315.8376 Setting atom values ... 148 settings made for mass + +group all type 1 4 148 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.5.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 100000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 122.015812851425 | erot = 125.402528675609 | epot = -1325.18559882055 | etot = -1077.76725729351 Per MPI rank memory allocation (min/avg/max) = 7.806 | 7.806 | 7.806 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -178,21 +249,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.806 | 7.806 | 7.806 Mbytes 99000 ekin = 137.752624159367 | erot = 134.99210077777 | epot = -1350.51198237554 | etot = -1077.7672574384 100000 ekin = 138.392477025647 | erot = 134.944608034508 | epot = -1351.10434250636 | etot = -1077.76725744621 100000 315.83543 -1390.6819 39.577599 -1212.7119 -0.012722464 6.1629505e+08 -Loop time of 54.6153 on 1 procs for 100000 steps with 148 atoms +Loop time of 85.2132 on 1 procs for 100000 steps with 148 atoms -Performance: 2.699 ns/day, 8.893 hours/ns, 1830.989 timesteps/s, 270.986 katom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 1.730 ns/day, 13.875 hours/ns, 1173.528 timesteps/s, 173.682 katom-step/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 52.073 | 52.073 | 52.073 | 0.0 | 95.35 -Bond | 0.74079 | 0.74079 | 0.74079 | 0.0 | 1.36 -Neigh | 0.010107 | 0.010107 | 0.010107 | 0.0 | 0.02 -Comm | 0.040371 | 0.040371 | 0.040371 | 0.0 | 0.07 -Output | 0.097636 | 0.097636 | 0.097636 | 0.0 | 0.18 -Modify | 1.5841 | 1.5841 | 1.5841 | 0.0 | 2.90 -Other | | 0.06901 | | | 0.13 +Pair | 81.71 | 81.71 | 81.71 | 0.0 | 95.89 +Bond | 1.103 | 1.103 | 1.103 | 0.0 | 1.29 +Neigh | 0.017589 | 0.017589 | 0.017589 | 0.0 | 0.02 +Comm | 0.055508 | 0.055508 | 0.055508 | 0.0 | 0.07 +Output | 0.1581 | 0.1581 | 0.1581 | 0.0 | 0.19 +Modify | 2.0369 | 2.0369 | 2.0369 | 0.0 | 2.39 +Other | | 0.132 | | | 0.15 Nlocal: 148 ave 148 max 148 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -206,6 +277,10 @@ Ave neighs/atom = 28.371622 Ave special neighs/atom = 6 Neighbor list builds = 100 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.5.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:54 +#write_restart last_config.${number}.* +Total wall time: 0:01:25 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.4 similarity index 76% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.4 index fa68fac2c2..4701412063 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.19May24.dsring.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/dsring/log.22May24.dsring.g++.4 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 5 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.dsring Reading data file ... orthogonal box = (0 0 0) to (851 851 851) 1 by 2 by 2 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.011 seconds + read_data CPU = 0.015 seconds + +set atom * mass 315.8376 Setting atom values ... 148 settings made for mass + +group all type 1 4 148 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.5.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 100000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 122.015812851425 | erot = 125.402528675609 | epot = -1325.18559882055 | etot = -1077.76725729351 Per MPI rank memory allocation (min/avg/max) = 7.619 | 7.668 | 7.742 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -178,21 +249,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.619 | 7.668 | 7.742 Mbytes 99000 ekin = 137.752624159367 | erot = 134.99210077777 | epot = -1350.51198237554 | etot = -1077.7672574384 100000 ekin = 138.392477025646 | erot = 134.94460803451 | epot = -1351.10434250636 | etot = -1077.76725744621 100000 315.83543 -1390.6819 39.577599 -1212.7119 -0.012722464 6.1629505e+08 -Loop time of 20.8885 on 4 procs for 100000 steps with 148 atoms +Loop time of 30.2255 on 4 procs for 100000 steps with 148 atoms -Performance: 7.056 ns/day, 3.401 hours/ns, 4787.333 timesteps/s, 708.525 katom-step/s -99.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 4.877 ns/day, 4.921 hours/ns, 3308.461 timesteps/s, 489.652 katom-step/s +99.6% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 11.553 | 15.593 | 18.744 | 74.9 | 74.65 -Bond | 0.22099 | 0.22585 | 0.22864 | 0.6 | 1.08 -Neigh | 0.004397 | 0.0044708 | 0.004533 | 0.1 | 0.02 -Comm | 1.2201 | 4.3856 | 8.4421 | 141.8 | 21.00 -Output | 0.035571 | 0.037478 | 0.038787 | 0.7 | 0.18 -Modify | 0.45808 | 0.46752 | 0.47581 | 1.0 | 2.24 -Other | | 0.1748 | | | 0.84 +Pair | 16.766 | 22.691 | 26.962 | 89.3 | 75.07 +Bond | 0.28821 | 0.30757 | 0.32075 | 2.3 | 1.02 +Neigh | 0.008451 | 0.008527 | 0.008607 | 0.1 | 0.03 +Comm | 2.0101 | 6.3007 | 12.277 | 170.6 | 20.85 +Output | 0.051655 | 0.054646 | 0.056776 | 0.9 | 0.18 +Modify | 0.53953 | 0.56983 | 0.63795 | 5.3 | 1.89 +Other | | 0.2934 | | | 0.97 Nlocal: 37 ave 38 max 36 min Histogram: 1 0 0 0 0 2 0 0 0 1 @@ -206,6 +277,10 @@ Ave neighs/atom = 28.371622 Ave special neighs/atom = 6 Neighbor list builds = 100 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.5.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:20 +#write_restart last_config.${number}.* +Total wall time: 0:00:30 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.1 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.1 index a01079b1ec..031081bbc4 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.1 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +set atom * mass 315.8376 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqav 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.1.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.3220946463642 | etot = -49.9334369948331 Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1149,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes 999000 ekin = 9.41957302295624 | erot = 13.2537863500049 | epot = -72.6067960815235 | etot = -49.9334367085624 1000000 ekin = 9.30950418584537 | erot = 13.3558388696135 | epot = -72.5987797643175 | etot = -49.9334367088586 1000000 347.01619 -80.374455 7.7756755 -63.289276 0.11518501 39304000 -Loop time of 12.9786 on 1 procs for 1000000 steps with 10 atoms +Loop time of 19.3079 on 1 procs for 1000000 steps with 10 atoms -Performance: 113.570 ns/day, 0.211 hours/ns, 77050.020 timesteps/s, 770.500 katom-step/s -99.5% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 76.341 ns/day, 0.314 hours/ns, 51792.277 timesteps/s, 517.923 katom-step/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 10.471 | 10.471 | 10.471 | 0.0 | 80.68 -Bond | 0.50292 | 0.50292 | 0.50292 | 0.0 | 3.88 -Neigh | 0.005498 | 0.005498 | 0.005498 | 0.0 | 0.04 -Comm | 0.29263 | 0.29263 | 0.29263 | 0.0 | 2.25 -Output | 0.10128 | 0.10128 | 0.10128 | 0.0 | 0.78 -Modify | 1.2697 | 1.2697 | 1.2697 | 0.0 | 9.78 -Other | | 0.3353 | | | 2.58 +Pair | 15.904 | 15.904 | 15.904 | 0.0 | 82.37 +Bond | 0.68326 | 0.68326 | 0.68326 | 0.0 | 3.54 +Neigh | 0.011182 | 0.011182 | 0.011182 | 0.0 | 0.06 +Comm | 0.45393 | 0.45393 | 0.45393 | 0.0 | 2.35 +Output | 0.12567 | 0.12567 | 0.12567 | 0.0 | 0.65 +Modify | 1.6705 | 1.6705 | 1.6705 | 0.0 | 8.65 +Other | | 0.459 | | | 2.38 Nlocal: 10 ave 10 max 10 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1177,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.1.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:12 +#write_restart last_config.${number}.* +Total wall time: 0:00:19 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.4 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.4 index f9e95ed27a..36678a7103 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.19May24.duplex1.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex1/log.22May24.duplex1.g++.4 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex1 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.008 seconds + read_data CPU = 0.011 seconds + +set atom * mass 315.8376 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqav 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.1.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 6.60687273927977 | erot = 16.7817849122513 | epot = -73.3220946463646 | etot = -49.9334369948335 Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1149,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes 999000 ekin = 9.4195730226422 | erot = 13.2537863498268 | epot = -72.6067960810353 | etot = -49.9334367085663 1000000 ekin = 9.30950418557169 | erot = 13.3558388695471 | epot = -72.5987797639821 | etot = -49.9334367088633 1000000 347.01619 -80.374455 7.7756755 -63.289276 0.11518501 39304000 -Loop time of 12.3789 on 4 procs for 1000000 steps with 10 atoms +Loop time of 17.7764 on 4 procs for 1000000 steps with 10 atoms -Performance: 119.072 ns/day, 0.202 hours/ns, 80782.753 timesteps/s, 807.828 katom-step/s -99.8% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 82.918 ns/day, 0.289 hours/ns, 56254.421 timesteps/s, 562.544 katom-step/s +99.7% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.1126 | 5.281 | 7.0829 | 48.1 | 42.66 -Bond | 0.14793 | 0.22282 | 0.2978 | 11.7 | 1.80 -Neigh | 0.00393 | 0.0039655 | 0.004021 | 0.1 | 0.03 -Comm | 2.762 | 4.8726 | 6.048 | 56.9 | 39.36 -Output | 0.063777 | 0.070646 | 0.088161 | 3.8 | 0.57 -Modify | 0.44561 | 0.5346 | 0.64233 | 11.9 | 4.32 -Other | | 1.393 | | | 11.26 +Pair | 6.0475 | 7.6302 | 10.252 | 57.4 | 42.92 +Bond | 0.22588 | 0.32246 | 0.42602 | 12.9 | 1.81 +Neigh | 0.007601 | 0.007642 | 0.007702 | 0.0 | 0.04 +Comm | 3.9938 | 7.0574 | 8.7017 | 68.2 | 39.70 +Output | 0.07165 | 0.07691 | 0.088092 | 2.4 | 0.43 +Modify | 0.60223 | 0.70805 | 0.84637 | 11.9 | 3.98 +Other | | 1.974 | | | 11.10 Nlocal: 2.5 ave 3 max 2 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1106,6 +1177,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.1.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:12 +#write_restart last_config.${number}.* +Total wall time: 0:00:17 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.1 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.1 index c070e4eaca..a0e4dabd93 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.1 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,52 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqav 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +145,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -125.483166681887 | etot = -92.6645914514141 Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1151,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes 999000 ekin = 17.3864595030106 | erot = 19.031153747846 | epot = -122.410040365131 | etot = -85.9924271142742 1000000 ekin = 17.4266501863313 | erot = 15.93443523795 | epot = -121.571786609929 | etot = -88.2107011856477 1000000 389.752 -124.64554 3.0737557 -104.14514 0.13705163 39304000 -Loop time of 26.5237 on 1 procs for 1000000 steps with 16 atoms +Loop time of 40.2662 on 1 procs for 1000000 steps with 16 atoms -Performance: 55.572 ns/day, 0.432 hours/ns, 37702.162 timesteps/s, 603.235 katom-step/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 36.606 ns/day, 0.656 hours/ns, 24834.718 timesteps/s, 397.355 katom-step/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 21.515 | 21.515 | 21.515 | 0.0 | 81.12 -Bond | 0.75114 | 0.75114 | 0.75114 | 0.0 | 2.83 -Neigh | 0.007053 | 0.007053 | 0.007053 | 0.0 | 0.03 -Comm | 0.28128 | 0.28128 | 0.28128 | 0.0 | 1.06 -Output | 0.13963 | 0.13963 | 0.13963 | 0.0 | 0.53 -Modify | 3.4968 | 3.4968 | 3.4968 | 0.0 | 13.18 -Other | | 0.3331 | | | 1.26 +Pair | 33.133 | 33.133 | 33.133 | 0.0 | 82.29 +Bond | 1.0208 | 1.0208 | 1.0208 | 0.0 | 2.54 +Neigh | 0.014956 | 0.014956 | 0.014956 | 0.0 | 0.04 +Comm | 0.45341 | 0.45341 | 0.45341 | 0.0 | 1.13 +Output | 0.19799 | 0.19799 | 0.19799 | 0.0 | 0.49 +Modify | 4.9747 | 4.9747 | 4.9747 | 0.0 | 12.35 +Other | | 0.4711 | | | 1.17 Nlocal: 16 ave 16 max 16 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1179,10 @@ Ave neighs/atom = 6.6875 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:26 +#write_restart last_config.${number}.* +Total wall time: 0:00:40 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.4 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.4 index cd89d65300..3233f455ba 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.19May24.duplex2.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex2/log.22May24.duplex2.g++.4 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.008 seconds + read_data CPU = 0.011 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,52 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqav ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqav 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqav 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqav 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +145,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -125.483166681887 | etot = -92.6645914514142 Per MPI rank memory allocation (min/avg/max) = 7.569 | 7.598 | 7.682 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1151,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.569 | 7.598 | 7.682 Mbytes 999000 ekin = 16.492584210326 | erot = 13.0108008173606 | epot = -129.709400513234 | etot = -100.206015485547 1000000 ekin = 17.097105825142 | erot = 12.6179942372262 | epot = -129.692482442335 | etot = -99.977382379967 1000000 382.38165 -132.06191 2.3694293 -112.59538 0.043662828 39304000 -Loop time of 18.875 on 4 procs for 1000000 steps with 16 atoms +Loop time of 27.2476 on 4 procs for 1000000 steps with 16 atoms -Performance: 78.092 ns/day, 0.307 hours/ns, 52980.236 timesteps/s, 847.684 katom-step/s -99.8% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 54.096 ns/day, 0.444 hours/ns, 36700.437 timesteps/s, 587.207 katom-step/s +99.8% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 6.6389 | 9.0272 | 11.733 | 63.0 | 47.83 -Bond | 0.25991 | 0.31216 | 0.34826 | 6.1 | 1.65 -Neigh | 0.005375 | 0.0054547 | 0.005558 | 0.1 | 0.03 -Comm | 3.8623 | 6.7331 | 8.8907 | 72.9 | 35.67 -Output | 0.066898 | 0.071666 | 0.082232 | 2.3 | 0.38 -Modify | 1.173 | 1.3132 | 1.4562 | 9.6 | 6.96 -Other | | 1.412 | | | 7.48 +Pair | 9.5219 | 13.077 | 17.034 | 78.2 | 47.99 +Bond | 0.38282 | 0.43293 | 0.48144 | 5.8 | 1.59 +Neigh | 0.00956 | 0.0096418 | 0.009729 | 0.1 | 0.04 +Comm | 5.6548 | 9.754 | 12.913 | 88.2 | 35.80 +Output | 0.086221 | 0.091692 | 0.10328 | 2.2 | 0.34 +Modify | 1.4663 | 1.6512 | 1.8474 | 13.1 | 6.06 +Other | | 2.231 | | | 8.19 Nlocal: 4 ave 5 max 3 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1106,6 +1179,10 @@ Ave neighs/atom = 6.6875 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:18 +#write_restart last_config.${number}.* +Total wall time: 0:00:27 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.1 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.1 index d78834f085..9db73c4b2d 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.1 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 3 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex3 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +set atom * mass 100.0278 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.3.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 7.03429942525144 | erot = 12.9873344362494 | epot = -68.5183064451292 | etot = -48.4966725836283 Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1149,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.445 | 7.445 | 7.445 Mbytes 999000 ekin = 7.06575293322294 | erot = 13.1250004085097 | epot = -68.6874256472216 | etot = -48.496672305489 1000000 ekin = 6.56133020088365 | erot = 13.4950386916226 | epot = -68.5530411962168 | etot = -48.4966723037105 1000000 244.5767 -69.23317 0.68012891 -61.991711 -0.012778323 39304000 -Loop time of 11.1904 on 1 procs for 1000000 steps with 10 atoms +Loop time of 18.8316 on 1 procs for 1000000 steps with 10 atoms -Performance: 131.719 ns/day, 0.182 hours/ns, 89362.622 timesteps/s, 893.626 katom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 78.272 ns/day, 0.307 hours/ns, 53102.168 timesteps/s, 531.022 katom-step/s +99.7% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 8.9766 | 8.9766 | 8.9766 | 0.0 | 80.22 -Bond | 0.44821 | 0.44821 | 0.44821 | 0.0 | 4.01 -Neigh | 0.004031 | 0.004031 | 0.004031 | 0.0 | 0.04 -Comm | 0.24442 | 0.24442 | 0.24442 | 0.0 | 2.18 -Output | 0.11136 | 0.11136 | 0.11136 | 0.0 | 1.00 -Modify | 1.1158 | 1.1158 | 1.1158 | 0.0 | 9.97 -Other | | 0.29 | | | 2.59 +Pair | 15.43 | 15.43 | 15.43 | 0.0 | 81.93 +Bond | 0.69466 | 0.69466 | 0.69466 | 0.0 | 3.69 +Neigh | 0.011044 | 0.011044 | 0.011044 | 0.0 | 0.06 +Comm | 0.4431 | 0.4431 | 0.4431 | 0.0 | 2.35 +Output | 0.12591 | 0.12591 | 0.12591 | 0.0 | 0.67 +Modify | 1.6795 | 1.6795 | 1.6795 | 0.0 | 8.92 +Other | | 0.4478 | | | 2.38 Nlocal: 10 ave 10 max 10 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1177,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.3.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:11 +#write_restart last_config.${number}.* +Total wall time: 0:00:18 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.4 similarity index 96% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.4 index a2ae24af6b..669a86a110 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.19May24.duplex3.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/duplex3/log.22May24.duplex3.g++.4 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 3 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex3 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.011 seconds + +set atom * mass 100.0278 Setting atom values ... 10 settings made for mass + +group all type 1 4 10 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,50 @@ Finding 1-2 1-3 1-4 neighbors ... 2 = max # of 1-4 neighbors 4 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA2 pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.3.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +143,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 7.03429942525144 | erot = 12.9873344362494 | epot = -68.5183064451292 | etot = -48.4966725836283 Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1149,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.443 | 7.444 | 7.445 Mbytes 999000 ekin = 7.06575290471557 | erot = 13.1250004270275 | epot = -68.6874256372488 | etot = -48.4966723055057 1000000 ekin = 6.56133017801672 | erot = 13.4950387121477 | epot = -68.5530411938935 | etot = -48.4966723037291 1000000 244.5767 -69.23317 0.68012891 -61.991711 -0.012778323 39304000 -Loop time of 11.4095 on 4 procs for 1000000 steps with 10 atoms +Loop time of 18.2788 on 4 procs for 1000000 steps with 10 atoms -Performance: 129.189 ns/day, 0.186 hours/ns, 87646.083 timesteps/s, 876.461 katom-step/s -99.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 80.639 ns/day, 0.298 hours/ns, 54708.327 timesteps/s, 547.083 katom-step/s +99.7% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 2.9984 | 4.6915 | 6.6489 | 59.9 | 41.12 -Bond | 0.15743 | 0.20489 | 0.24566 | 8.9 | 1.80 -Neigh | 0.003395 | 0.0034335 | 0.003477 | 0.1 | 0.03 -Comm | 2.5981 | 4.8289 | 6.5413 | 64.5 | 42.32 -Output | 0.054733 | 0.058039 | 0.065343 | 1.8 | 0.51 -Modify | 0.4272 | 0.49029 | 0.54447 | 6.4 | 4.30 -Other | | 1.132 | | | 9.93 +Pair | 4.7489 | 7.413 | 10.648 | 77.4 | 40.56 +Bond | 0.2292 | 0.30345 | 0.37909 | 12.0 | 1.66 +Neigh | 0.00759 | 0.0076525 | 0.007698 | 0.0 | 0.04 +Comm | 4.13 | 7.779 | 10.46 | 82.1 | 42.56 +Output | 0.072271 | 0.076746 | 0.085815 | 1.9 | 0.42 +Modify | 0.63917 | 0.69264 | 0.75378 | 6.3 | 3.79 +Other | | 2.006 | | | 10.98 Nlocal: 2.5 ave 3 max 2 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1106,6 +1177,10 @@ Ave neighs/atom = 3.7 Ave special neighs/atom = 3.6 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.3.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:11 +#write_restart last_config.${number}.* +Total wall time: 0:00:18 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.1 similarity index 93% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.1 index c468ee24ff..f454f2d2bf 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.1 @@ -1,6 +1,30 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +variable number equal 4 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 4 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.4type Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +47,20 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass Setting atom values ... 26 settings made for mass + +group all type 1 4 26 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +69,95 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 1%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 1+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 2%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 2+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 3%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 4%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.4.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 10 steps, delay = 0 steps, check = yes @@ -68,11 +191,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1197,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes 999000 ekin = 22.5781778653751 | erot = 21.7041052467461 | epot = -221.511725171924 | etot = -177.229442059803 1000000 ekin = 22.8867994582225 | erot = 20.7015166614267 | epot = -222.040127669769 | etot = -178.45181155012 1000000 307.12188 -227.88356 5.8434328 -199.15333 0.033370746 39304000 -Loop time of 49.9988 on 1 procs for 1000000 steps with 26 atoms +Loop time of 85.9592 on 1 procs for 1000000 steps with 26 atoms -Performance: 29.480 ns/day, 0.814 hours/ns, 20000.476 timesteps/s, 520.012 katom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 17.147 ns/day, 1.400 hours/ns, 11633.421 timesteps/s, 302.469 katom-step/s +99.8% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 42.93 | 42.93 | 42.93 | 0.0 | 85.86 -Bond | 1.1736 | 1.1736 | 1.1736 | 0.0 | 2.35 -Neigh | 0.010656 | 0.010656 | 0.010656 | 0.0 | 0.02 -Comm | 0.2842 | 0.2842 | 0.2842 | 0.0 | 0.57 -Output | 0.22398 | 0.22398 | 0.22398 | 0.0 | 0.45 -Modify | 5.1366 | 5.1366 | 5.1366 | 0.0 | 10.27 -Other | | 0.2401 | | | 0.48 +Pair | 75.127 | 75.127 | 75.127 | 0.0 | 87.40 +Bond | 1.8597 | 1.8597 | 1.8597 | 0.0 | 2.16 +Neigh | 0.023421 | 0.023421 | 0.023421 | 0.0 | 0.03 +Comm | 0.47775 | 0.47775 | 0.47775 | 0.0 | 0.56 +Output | 0.31455 | 0.31455 | 0.31455 | 0.0 | 0.37 +Modify | 7.8261 | 7.8261 | 7.8261 | 0.0 | 9.10 +Other | | 0.3311 | | | 0.39 Nlocal: 26 ave 26 max 26 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1225,10 @@ Ave neighs/atom = 11.576923 Ave special neighs/atom = 5.0769231 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.4.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:50 +#write_restart last_config.${number}.* +Total wall time: 0:01:25 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.4 similarity index 93% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.4 index 17269a0e91..4c158da526 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.4type.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.4type.g++.4 @@ -1,6 +1,30 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +variable number equal 4 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 4 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.4type Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +47,20 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.011 seconds + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass Setting atom values ... 26 settings made for mass + +group all type 1 4 26 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +69,95 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 1%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 1+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 2%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 2+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 3%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop +variable base loop ${ntype} +variable base loop 4 + variable basemod equal ${base}%4 + variable basemod equal 4%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.4type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.4.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 10 steps, delay = 0 steps, check = yes @@ -68,11 +191,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1197,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes 999000 ekin = 22.1968344281123 | erot = 22.7999859685056 | epot = -216.784980184639 | etot = -171.788159788021 1000000 ekin = 22.6406306102505 | erot = 22.5936369544571 | epot = -217.43832313152 | etot = -172.204055566812 1000000 303.8185 -221.63969 4.201369 -194.79769 -0.0039208577 39304000 -Loop time of 33.2292 on 4 procs for 1000000 steps with 26 atoms +Loop time of 52.1772 on 4 procs for 1000000 steps with 26 atoms -Performance: 44.358 ns/day, 0.541 hours/ns, 30094.016 timesteps/s, 782.444 katom-step/s -99.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 28.250 ns/day, 0.850 hours/ns, 19165.450 timesteps/s, 498.302 katom-step/s +99.7% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 10.626 | 15.644 | 25.979 | 154.5 | 47.08 -Bond | 0.33928 | 0.43429 | 0.52964 | 14.4 | 1.31 -Neigh | 0.007773 | 0.0079158 | 0.008061 | 0.1 | 0.02 -Comm | 4.0659 | 14.948 | 19.566 | 164.9 | 44.99 -Output | 0.089356 | 0.10217 | 0.10917 | 2.4 | 0.31 -Modify | 1.2889 | 1.7411 | 2.1956 | 31.1 | 5.24 -Other | | 0.3515 | | | 1.06 +Pair | 16.653 | 24.637 | 41.068 | 196.4 | 47.22 +Bond | 0.48356 | 0.63927 | 0.80015 | 17.6 | 1.23 +Neigh | 0.014011 | 0.014287 | 0.01458 | 0.2 | 0.03 +Comm | 6.7344 | 23.772 | 31.096 | 205.7 | 45.56 +Output | 0.12082 | 0.13899 | 0.14687 | 2.8 | 0.27 +Modify | 1.8628 | 2.4412 | 3.0041 | 33.6 | 4.68 +Other | | 0.5347 | | | 1.02 Nlocal: 6.5 ave 10 max 3 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1106,6 +1225,10 @@ Ave neighs/atom = 11.576923 Ave special neighs/atom = 5.0769231 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.4.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:33 +#write_restart last_config.${number}.* +Total wall time: 0:00:52 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.1 similarity index 90% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.1 index 29d38ba865..f812593d4d 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.1 @@ -1,6 +1,30 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +variable number equal 8 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 8 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.8type Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +47,20 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass Setting atom values ... 26 settings made for mass + +group all type 1 4 26 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +69,137 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 1%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 1+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 2%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 2+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 3%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 4%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 5%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 5+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 5 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 5 8 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 6%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 6+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 6 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 6 7 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 7%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 8%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.8.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 10 steps, delay = 0 steps, check = yes @@ -68,11 +233,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1239,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.57 | 7.57 | 7.57 Mbytes 999000 ekin = 22.5781778653751 | erot = 21.7041052467461 | epot = -221.511725171924 | etot = -177.229442059803 1000000 ekin = 22.8867994582225 | erot = 20.7015166614267 | epot = -222.040127669769 | etot = -178.45181155012 1000000 307.12188 -227.88356 5.8434328 -199.15333 0.033370746 39304000 -Loop time of 51.9408 on 1 procs for 1000000 steps with 26 atoms +Loop time of 85.8602 on 1 procs for 1000000 steps with 26 atoms -Performance: 28.378 ns/day, 0.846 hours/ns, 19252.681 timesteps/s, 500.570 katom-step/s -99.9% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 17.167 ns/day, 1.398 hours/ns, 11646.839 timesteps/s, 302.818 katom-step/s +99.7% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 44.649 | 44.649 | 44.649 | 0.0 | 85.96 -Bond | 1.2217 | 1.2217 | 1.2217 | 0.0 | 2.35 -Neigh | 0.011591 | 0.011591 | 0.011591 | 0.0 | 0.02 -Comm | 0.31411 | 0.31411 | 0.31411 | 0.0 | 0.60 -Output | 0.2259 | 0.2259 | 0.2259 | 0.0 | 0.43 -Modify | 5.2451 | 5.2451 | 5.2451 | 0.0 | 10.10 -Other | | 0.2734 | | | 0.53 +Pair | 75.033 | 75.033 | 75.033 | 0.0 | 87.39 +Bond | 1.7719 | 1.7719 | 1.7719 | 0.0 | 2.06 +Neigh | 0.023059 | 0.023059 | 0.023059 | 0.0 | 0.03 +Comm | 0.51625 | 0.51625 | 0.51625 | 0.0 | 0.60 +Output | 0.31488 | 0.31488 | 0.31488 | 0.0 | 0.37 +Modify | 7.8149 | 7.8149 | 7.8149 | 0.0 | 9.10 +Other | | 0.3861 | | | 0.45 Nlocal: 26 ave 26 max 26 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1267,10 @@ Ave neighs/atom = 11.576923 Ave special neighs/atom = 5.0769231 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.8.* nocoeff System init for write_data ... Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:51 +#write_restart last_config.${number}.* +Total wall time: 0:01:25 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.4 similarity index 90% rename from examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.4 index 14e1c35e27..184462d373 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.19May24.duplex4.8type.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/unique_bp/log.22May24.duplex4.8type.g++.4 @@ -1,6 +1,30 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +variable number equal 8 +variable ofreq equal 1000 +variable efreq equal 1000 + +variable ntype equal 8 + +variable T equal 300.0 +variable rhos equal 0.2 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 10 delay 0 check yes + +read_data data.duplex4.8type Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +47,20 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.007 seconds + read_data CPU = 0.011 seconds + +mass * 315.8376 # sets per-type mass if not in data file +set atom * mass 315.8376 # sets per-atom mass Setting atom values ... 26 settings made for mass + +group all type 1 4 26 atoms in group all + +# oxDNA2 bond interactions - FENE backbone +bond_style oxdna2/fene +bond_coeff * 11.92337812042065 2.1295 6.4430152 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +69,137 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxDNA pair interactions +pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh +pair_coeff * * oxdna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxdna2/stk seqdep ${T} 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/stk seqdep 300 8.06199211612242 0.005309213 0.70439070204273 3.4072 7.6662 2.72576 6.3885 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 0.65 2.0 0.65 +pair_coeff * * oxdna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + +label loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 1%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 1+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 1 4 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 2%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 2+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 2 3 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 3%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 4%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 5%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+3 +variable comp equal 5+3 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 5 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 5 8 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 6%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +variable comp equal ${base}+1 +variable comp equal 6+1 +pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 6 ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +pair_coeff 6 7 oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45 +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 7%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop +variable base loop ${ntype} +variable base loop 8 + variable basemod equal ${base}%4 + variable basemod equal 8%4 + if "${basemod} == 1" then "variable comp equal ${base}+3" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" + if "${basemod} == 2" then "variable comp equal ${base}+1" "pair_coeff ${base} ${comp} oxdna2/hbond seqdep 6.36589157849259 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0 0.7 1.5 0.0 0.7 1.5 0 0.7 0.46 3.141592654 0.7 4.0 1.570796327 0.45 4.0 1.570796327 0.45" +next base +jump in.duplex4.8type loop + +pair_coeff * * oxdna2/xstk 3.9029021145006 4.89785 5.74965 4.21641 5.57929 2.25 0.791592654 0.58 1.7 1.0 0.68 1.7 1.0 0.68 1.5 0 0.65 1.7 0.875 0.68 1.7 0.875 0.68 +pair_coeff * * oxdna2/coaxstk 4.80673207785863 3.4072 5.1108 1.87396 4.94044 2.0 2.891592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 40.0 3.116592653589793 +pair_coeff * * oxdna2/dh ${T} ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 ${rhos} 0.815 +pair_coeff * * oxdna2/dh 300 0.2 0.815 + +# Langevin dynamics +fix 1 all nve/asphere +fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 ${T} 4265.0 457145 angmom 10 +fix 2 all langevin 300 300 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.8.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 10 steps, delay = 0 steps, check = yes @@ -68,11 +233,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 48.03269686950012 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 48.03269686950012 (../comm.cpp:739) 0 ekin = 22.349486974586 | erot = 20.578245994282 | epot = -222.813067990178 | etot = -179.88533502131 Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1239,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.568 | 7.569 | 7.57 Mbytes 999000 ekin = 22.1968344281123 | erot = 22.7999859685056 | epot = -216.784980184639 | etot = -171.788159788021 1000000 ekin = 22.6406306102505 | erot = 22.5936369544571 | epot = -217.43832313152 | etot = -172.204055566812 1000000 303.8185 -221.63969 4.201369 -194.79769 -0.0039208577 39304000 -Loop time of 34.5573 on 4 procs for 1000000 steps with 26 atoms +Loop time of 53.157 on 4 procs for 1000000 steps with 26 atoms -Performance: 42.653 ns/day, 0.563 hours/ns, 28937.471 timesteps/s, 752.374 katom-step/s -99.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 27.729 ns/day, 0.866 hours/ns, 18812.191 timesteps/s, 489.117 katom-step/s +99.6% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 11.103 | 15.989 | 27.026 | 161.4 | 46.27 -Bond | 0.3534 | 0.44646 | 0.54636 | 13.5 | 1.29 -Neigh | 0.007879 | 0.0080685 | 0.008218 | 0.1 | 0.02 -Comm | 4.2767 | 15.803 | 20.415 | 168.6 | 45.73 -Output | 0.084582 | 0.13406 | 0.15369 | 7.8 | 0.39 -Modify | 1.354 | 1.7988 | 2.2537 | 32.6 | 5.21 -Other | | 0.378 | | | 1.09 +Pair | 17.443 | 25.085 | 41.565 | 193.9 | 47.19 +Bond | 0.47799 | 0.65467 | 0.81319 | 18.1 | 1.23 +Neigh | 0.014771 | 0.014974 | 0.015145 | 0.1 | 0.03 +Comm | 7.0561 | 24.213 | 31.359 | 204.1 | 45.55 +Output | 0.12434 | 0.14455 | 0.15308 | 3.1 | 0.27 +Modify | 1.8662 | 2.4548 | 3.0502 | 36.3 | 4.62 +Other | | 0.5899 | | | 1.11 Nlocal: 6.5 ave 10 max 3 min Histogram: 2 0 0 0 0 0 0 0 0 2 @@ -1106,6 +1267,10 @@ Ave neighs/atom = 11.576923 Ave special neighs/atom = 5.0769231 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.8.* nocoeff System init for write_data ... Generated 0 of 28 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:34 +#write_restart last_config.${number}.* +Total wall time: 0:00:53 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.1 similarity index 95% rename from examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 rename to examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.1 index 4b03446769..1368ee307a 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.1 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.5 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 1 by 1 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds - read_data CPU = 0.005 seconds + read_data CPU = 0.009 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxRNA2 bond interactions - FENE backbone +bond_style oxrna2/fene +bond_coeff * 11.92337812042065 2.1295 6.482800913 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,51 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxRNA2 pair interactions +pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh +pair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxrna2/stk seqdep ${T} 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +pair_coeff * * oxrna2/stk seqdep 300 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +pair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 +pair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 +pair_coeff * * oxrna2/dh ${T} ${rhos} 1.02455 +pair_coeff * * oxrna2/dh 300 ${rhos} 1.02455 +pair_coeff * * oxrna2/dh 300 0.5 1.02455 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +144,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 36.640032409886274 (../comm.cpp:739) 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 Per MPI rank memory allocation (min/avg/max) = 7.592 | 7.592 | 7.592 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1150,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.592 | 7.592 | 7.592 Mbytes 999000 ekin = 15.0427312776222 | erot = 23.657392608768 | epot = -72.2645746968681 | etot = -33.5644508104779 1000000 ekin = 15.613660129969 | erot = 24.1382006023969 | epot = -73.3163115458147 | etot = -33.5644508134487 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160068 39304000 -Loop time of 19.2077 on 1 procs for 1000000 steps with 16 atoms +Loop time of 31.1467 on 1 procs for 1000000 steps with 16 atoms -Performance: 76.739 ns/day, 0.313 hours/ns, 52062.405 timesteps/s, 832.998 katom-step/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads +Performance: 47.324 ns/day, 0.507 hours/ns, 32106.084 timesteps/s, 513.697 katom-step/s +99.6% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 16.095 | 16.095 | 16.095 | 0.0 | 83.79 -Bond | 0.6748 | 0.6748 | 0.6748 | 0.0 | 3.51 -Neigh | 0.007855 | 0.007855 | 0.007855 | 0.0 | 0.04 -Comm | 0.27635 | 0.27635 | 0.27635 | 0.0 | 1.44 -Output | 0.15161 | 0.15161 | 0.15161 | 0.0 | 0.79 -Modify | 1.7313 | 1.7313 | 1.7313 | 0.0 | 9.01 -Other | | 0.2709 | | | 1.41 +Pair | 26.515 | 26.515 | 26.515 | 0.0 | 85.13 +Bond | 1.0244 | 1.0244 | 1.0244 | 0.0 | 3.29 +Neigh | 0.019506 | 0.019506 | 0.019506 | 0.0 | 0.06 +Comm | 0.45429 | 0.45429 | 0.45429 | 0.0 | 1.46 +Output | 0.22043 | 0.22043 | 0.22043 | 0.0 | 0.71 +Modify | 2.4659 | 2.4659 | 2.4659 | 0.0 | 7.92 +Other | | 0.4469 | | | 1.43 Nlocal: 16 ave 16 max 16 min Histogram: 1 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1178,10 @@ Ave neighs/atom = 6.6875 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:19 +#write_restart last_config.${number}.* +Total wall time: 0:00:31 diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.4 similarity index 95% rename from examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 rename to examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.4 index 794ac22a91..81f7f1cafc 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.19May24.duplex2.g++.4 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/duplex2/log.22May24.duplex2.g++.4 @@ -1,6 +1,28 @@ -LAMMPS (17 Apr 2024) - using 1 OpenMP thread(s) per MPI task -WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (src/atom_vec_hybrid.cpp:132) +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-174-g749e259294-modified) +# LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 +variable T equal 300.0 +variable rhos equal 0.5 + +units real + +dimension 3 + +newton on + +boundary p p p + +atom_style hybrid bond ellipsoid oxdna +WARNING: Atom style hybrid defines both, per-type and per-atom masses; both must be set, but only per-atom masses will be used (../atom_vec_hybrid.cpp:132) +atom_modify sort 0 8.518 + +# Pair interactions require lists of neighbours to be calculated +neighbor 17.036 bin +neigh_modify every 1 delay 0 check yes + +read_data data.duplex2 Reading data file ... orthogonal box = (-170 -170 -170) to (170 170 170) 1 by 2 by 2 MPI processor grid @@ -23,10 +45,19 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.001 seconds - read_data CPU = 0.008 seconds + read_data CPU = 0.011 seconds + +set atom * mass 315.8376 Setting atom values ... 16 settings made for mass + +group all type 1 4 16 atoms in group all + +# oxRNA2 bond interactions - FENE backbone +bond_style oxrna2/fene +bond_coeff * 11.92337812042065 2.1295 6.482800913 +special_bonds lj 0 1 1 Finding 1-2 1-3 1-4 neighbors ... special bond factors lj: 0 1 1 special bond factors coul: 0 0 0 @@ -35,6 +66,51 @@ Finding 1-2 1-3 1-4 neighbors ... 4 = max # of 1-4 neighbors 6 = max # of special neighbors special bonds CPU = 0.000 seconds + +# oxRNA2 pair interactions +pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh +pair_coeff * * oxrna2/excv 11.92337812042065 5.9626 5.74965 11.92337812042065 4.38677 4.259 11.92337812042065 2.81094 2.72576 +pair_coeff * * oxrna2/stk seqdep ${T} 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +pair_coeff * * oxrna2/stk seqdep 300 8.35864576375849 0.005504556 0.70439070204273 3.66274 7.92174 2.9813 6.64404 0.9 0.0 0.95 0.9 0.0 0.95 1.3 0.0 0.8 1.3 0.0 0.8 2.0 0.65 2.0 0.65 +pair_coeff * * oxrna2/hbond seqdep 0.0 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 1 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 2 3 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff 3 4 oxrna2/hbond seqdep 5.18928666388042 0.93918760272364 3.4072 6.3885 2.89612 5.9626 1.5 0.0 0.7 1.5 0.0 0.7 1.5 0.0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 +pair_coeff * * oxrna2/xstk 4.92690859644113 4.259 5.1108 3.57756 4.94044 2.25 0.505 0.58 1.7 1.266 0.68 1.7 1.266 0.68 1.7 0.309 0.68 1.7 0.309 0.68 +pair_coeff * * oxrna2/coaxstk 6.57330882442206 4.259 5.1108 3.57756 4.94044 2.0 2.592 0.65 1.3 0.151 0.8 0.9 0.685 0.95 0.9 0.685 0.95 2.0 -0.65 2.0 -0.65 +pair_coeff * * oxrna2/dh ${T} ${rhos} 1.02455 +pair_coeff * * oxrna2/dh 300 ${rhos} 1.02455 +pair_coeff * * oxrna2/dh 300 0.5 1.02455 + +# NVE ensemble +fix 1 all nve/asphere +#fix 2 all langevin ${T} ${T} 4265.0 457145 angmom 10 + +timestep 0.01706 + +#comm_style tiled +fix 3 all balance 1000 1.03 shift xyz 10 1.03 +comm_modify cutoff 32.4 + +compute quat all property/atom quatw quati quatj quatk + +compute erot all erotate/asphere +compute ekin all ke +compute epot all pe +variable erot equal c_erot +variable ekin equal c_ekin +variable epot equal c_epot +variable etot equal c_erot+c_ekin+c_epot +fix 5 all print ${efreq} "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes +fix 5 all print 1000 "$(step) ekin = ${ekin} | erot = ${erot} | epot = ${epot} | etot = ${etot}" screen yes + +dump out all custom ${ofreq} out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.${number}.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump out all custom 1000 out.2.lammpstrj id mol type x y z ix iy iz vx vy vz c_quat[1] c_quat[2] c_quat[3] c_quat[4] angmomx angmomy angmomz +dump_modify out sort id +dump_modify out format line "%d %d %d %22.15le %22.15le %22.15le %d %d %d %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le %22.15le" + +run 1000000 Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes @@ -68,11 +144,7 @@ Neighbor list info ... pair build: copy stencil: none bin: none -Setting up Verlet run ... - Unit style : real - Current step : 0 - Time step : 0.01706 -WARNING: Communication cutoff adjusted to 36.640032409886274 (src/comm.cpp:739) +WARNING: Communication cutoff adjusted to 36.640032409886274 (../comm.cpp:739) 0 ekin = 16.1203242878408 | erot = 16.6982509426318 | epot = -66.3830249260541 | etot = -33.5644496955815 Per MPI rank memory allocation (min/avg/max) = 7.577 | 7.606 | 7.69 Mbytes Step Temp E_pair E_mol TotEng Press Volume @@ -1078,21 +1150,21 @@ Per MPI rank memory allocation (min/avg/max) = 7.577 | 7.606 | 7.69 Mbytes 999000 ekin = 15.04273129669 | erot = 23.6573925697404 | epot = -72.2645746768899 | etot = -33.5644508104595 1000000 ekin = 15.6136601549948 | erot = 24.1382005377538 | epot = -73.31631150618 | etot = -33.5644508134314 1000000 349.20396 -76.691733 3.375421 -57.702651 -0.00024160018 39304000 -Loop time of 14.7322 on 4 procs for 1000000 steps with 16 atoms +Loop time of 24.0071 on 4 procs for 1000000 steps with 16 atoms -Performance: 100.052 ns/day, 0.240 hours/ns, 67878.359 timesteps/s, 1.086 Matom-step/s -99.9% CPU use with 4 MPI tasks x 1 OpenMP threads +Performance: 61.398 ns/day, 0.391 hours/ns, 41654.420 timesteps/s, 666.471 katom-step/s +99.4% CPU use with 4 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- -Pair | 4.9563 | 7.0753 | 8.4914 | 52.5 | 48.03 -Bond | 0.16693 | 0.26884 | 0.34644 | 12.5 | 1.82 -Neigh | 0.004684 | 0.00475 | 0.004817 | 0.1 | 0.03 -Comm | 3.9378 | 5.5096 | 7.8538 | 63.4 | 37.40 -Output | 0.065585 | 0.069947 | 0.079293 | 2.1 | 0.47 -Modify | 0.59102 | 0.65384 | 0.71706 | 6.6 | 4.44 -Other | | 1.15 | | | 7.81 +Pair | 8.0729 | 11.462 | 13.699 | 68.6 | 47.74 +Bond | 0.30957 | 0.43359 | 0.52757 | 12.0 | 1.81 +Neigh | 0.011335 | 0.011428 | 0.011526 | 0.1 | 0.05 +Comm | 6.994 | 9.2216 | 12.853 | 77.8 | 38.41 +Output | 0.090149 | 0.096079 | 0.10876 | 2.4 | 0.40 +Modify | 0.843 | 0.94516 | 1.0713 | 9.1 | 3.94 +Other | | 1.838 | | | 7.65 Nlocal: 4 ave 4 max 4 min Histogram: 4 0 0 0 0 0 0 0 0 0 @@ -1106,6 +1178,10 @@ Ave neighs/atom = 6.6875 Ave special neighs/atom = 3.75 Neighbor list builds = 1000 Dangerous builds = 0 + +write_data last_config.${number}.* nocoeff +write_data last_config.2.* nocoeff System init for write_data ... Generated 0 of 6 mixed pair_coeff terms from geometric mixing rule -Total wall time: 0:00:14 +#write_restart last_config.${number}.* +Total wall time: 0:00:24 diff --git a/examples/PACKAGES/cgdna/examples/test.sh b/examples/PACKAGES/cgdna/examples/test.sh index 2d03dd522b..11b02ac693 100755 --- a/examples/PACKAGES/cgdna/examples/test.sh +++ b/examples/PACKAGES/cgdna/examples/test.sh @@ -1,11 +1,11 @@ #! /bin/bash -DATE='15May24' +DATE='22May24' TOL=1e-8 LMPDIR=/Users/ohenrich/Work/code/lammps SRCDIR=$LMPDIR/src -EXDIR=$LMPDIR/examples/PACKAGES/cgdna/examples +EXDIR=$LMPDIR/examples/PACKAGES/cgdna/examples/lj_units if [ $# -eq 1 ] && [ $1 = run ]; then echo '# Compiling executable in' $SRCDIR | tee -a $EXDIR/test.log From ad81558fe05eb9885de680c546c31cf2c641f371 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Wed, 22 May 2024 16:00:58 +0100 Subject: [PATCH 142/313] Included values in real units --- doc/src/pair_oxdna.rst | 8 ++++---- doc/src/pair_oxdna2.rst | 10 +++++----- doc/src/pair_oxrna2.rst | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/doc/src/pair_oxdna.rst b/doc/src/pair_oxdna.rst index 2781cffab8..4a0ef0d168 100644 --- a/doc/src/pair_oxdna.rst +++ b/doc/src/pair_oxdna.rst @@ -37,12 +37,12 @@ Syntax *oxdna/stk* args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) - T = temperature (oxDNA units, 0.1 = 300 K) - xi = 1.3448 (temperature-independent coefficient in stacking strength) - kappa = 2.6568 (coefficient of linear temperature dependence in stacking strength) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) + xi = 1.3448 (LJ units) or 8.01727944817084 (real units), temperature-independent coefficient in stacking strength + kappa = 2.6568 (LJ units) or 0.005279604 (real units), coefficient of linear temperature dependence in stacking strength *oxdna/hbond* args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) - eps = 1.077 (between base pairs A-T and C-G) or 0 (all other pairs) + eps = 1.077 (LJ units) or 6.42073911784652 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs Examples """""""" diff --git a/doc/src/pair_oxdna2.rst b/doc/src/pair_oxdna2.rst index d1d9d741e2..38778edc09 100644 --- a/doc/src/pair_oxdna2.rst +++ b/doc/src/pair_oxdna2.rst @@ -41,14 +41,14 @@ Syntax *oxdna2/stk* args = seq T xi kappa 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) - T = temperature (oxDNA units, 0.1 = 300 K) - xi = 1.3523 (temperature-independent coefficient in stacking strength) - kappa = 2.6717 (coefficient of linear temperature dependence in stacking strength) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) + xi = 1.3523 (LJ units) or 8.06199211612242 (real units), temperature-independent coefficient in stacking strength + kappa = 2.6717 (LJ units) or 0.005309213 (real units), coefficient of linear temperature dependence in stacking strength *oxdna2/hbond* args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) - eps = 1.0678 (between base pairs A-T and C-G) or 0 (all other pairs) + eps = 1.0678 (LJ units) or 6.36589157849259 (real units), average hydrogen bonding strength between A-T and C-G Watson-Crick base pairs, 0 between all other pairs *oxdna2/dh* args = T rhos qeff - T = temperature (oxDNA units, 0.1 = 300 K) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) rhos = salt concentration (mole per litre) qeff = 0.815 (effective charge in elementary charges) diff --git a/doc/src/pair_oxrna2.rst b/doc/src/pair_oxrna2.rst index 1726e3cbff..0ea55c889e 100644 --- a/doc/src/pair_oxrna2.rst +++ b/doc/src/pair_oxrna2.rst @@ -41,14 +41,14 @@ Syntax *oxrna2/stk* args = seq T xi kappa 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) - T = temperature (oxDNA units, 0.1 = 300 K) - xi = 1.40206 (temperature-independent coefficient in stacking strength) - kappa = 2.77 (coefficient of linear temperature dependence in stacking strength) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) + xi = 1.40206 (LJ units) or 8.35864576375849 (real units), temperature-independent coefficient in stacking strength + kappa = 2.77 (LJ units) or 0.005504556 (real units), coefficient of linear temperature dependence in stacking strength *oxrna2/hbond* args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 seq = seqav (for average sequence base-pairing strength) or seqdep (for sequence-dependent base-pairing strength) - eps = 0.870439 (between base pairs A-T, C-G and G-T) or 0 (all other pairs) + eps = 0.870439 (LJ units) or 5.18928666388042 (real units), average hydrogen bonding strength between A-U and C-G Watson-Crick and G-U wobble base pairs, 0 between all other pairs *oxrna2/dh* args = T rhos qeff - T = temperature (oxDNA units, 0.1 = 300 K) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) rhos = salt concentration (mole per litre) qeff = 1.02455 (effective charge in elementary charges) From c1538c2f78429a69651ff6ed5bb970f6cd75ae91 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 May 2024 23:42:56 -0400 Subject: [PATCH 143/313] move varstyle array definition to Variable class so it can be used in a more general way --- src/info.cpp | 8 +------- src/variable.cpp | 6 ++++++ src/variable.h | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/info.cpp b/src/info.cpp index 2b87452d72..43409fca67 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -110,12 +110,6 @@ static const int STYLES = ATOM_STYLES | INTEGRATE_STYLES | MINIMIZE_STYLES using namespace LAMMPS_NS; -// must match enumerator in variable.h -static const char *varstyles[] = { - "index", "loop", "world", "universe", "uloop", "string", "getenv", - "file", "atomfile", "format", "equal", "atom", "vector", "python", - "timer", "internal", "(unknown)"}; - static const char *mapstyles[] = { "none", "array", "hash", "yes" }; static const char *commstyles[] = { "brick", "tiled" }; @@ -1401,7 +1395,7 @@ std::string Info::get_variable_info(int num) { std::string text; int ndata = 1; text = fmt::format("Variable[{:3d}]: {:16} style = {:16} def =", num, - std::string(names[num]) + ',', std::string(varstyles[style[num]]) + ','); + std::string(names[num]) + ',', Variable::varstyles[style[num]] + ','); if (style[num] == Variable::INTERNAL) { text += fmt::format("{:.8}\n",input->variable->dvalue[num]); return text; diff --git a/src/variable.cpp b/src/variable.cpp index be9239c027..032789f535 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -54,6 +54,12 @@ static constexpr int MAXLINE = 256; static constexpr int CHUNK = 1024; static constexpr int MAXFUNCARG = 6; +// must match enumerator in variable.h +const std::vector Variable::varstyles = { + "index", "loop", "world", "universe", "uloop", "string", "getenv", + "file", "atomfile", "format", "equal", "atom", "vector", "python", + "timer", "internal", "(unknown)"}; + static inline double MYROUND(double a) { return ((a - floor(a)) >= 0.5) ? ceil(a) : floor(a); } enum{ARG,OP}; diff --git a/src/variable.h b/src/variable.h index 8acfa5bcc7..aa2111aa6b 100644 --- a/src/variable.h +++ b/src/variable.h @@ -56,7 +56,7 @@ class Variable : protected Pointers { int nvar; // # of defined variables char **names; // name of each variable - // must match "varstyles" array in info.cpp + // must match "varstyles" array in variables.cpp, UNKNOWN must be last. enum { INDEX, LOOP, @@ -73,9 +73,11 @@ class Variable : protected Pointers { VECTOR, PYTHON, TIMER, - INTERNAL + INTERNAL, + UNKNOWN }; static constexpr int VALUELENGTH = 64; + static const std::vector varstyles; private: int me; From 5ffff255ea710ea4e87e3458b8a78a3141980da4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 May 2024 23:46:13 -0400 Subject: [PATCH 144/313] simplify with STL classes --- src/variable.cpp | 57 ++++++++++++++++++++++++------------------------ src/variable.h | 2 +- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/variable.cpp b/src/variable.cpp index 032789f535..fc61e6069e 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -44,6 +44,7 @@ #include #include #include +#include using namespace LAMMPS_NS; using namespace MathConst; @@ -2285,7 +2286,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (math_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); else if (group_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); - else if (special_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); + else if (special_function(std::string(word),contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); else if (feature_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); else print_var_error(FLERR,fmt::format("Invalid math/group/special/feature function '{}()' " "in variable formula", word),ivar); @@ -4267,32 +4268,29 @@ Region *Variable::region_function(char *id, int ivar) extract_setting(x),label2type(x,y),is_typelabel(x,y) ------------------------------------------------------------------------- */ -int Variable::special_function(char *word, char *contents, Tree **tree, Tree **treestack, +int Variable::special_function(const std::string &word, char *contents, Tree **tree, Tree **treestack, int &ntreestack, double *argstack, int &nargstack, int ivar) { double sx,sxx; double value,sy,sxy; // word is not a match to any special function + std::unordered_set functions = { + "sum", "min", "max", "ave", "trap", "slope", "sort", "rsort", "gmask", "rmask", "grmask", + "next", "is_file", "is_os", "extract_setting", "label2type", "is_typelabel" }; - if (strcmp(word,"sum") != 0 && strcmp(word,"min") && strcmp(word,"max") != 0 && - strcmp(word,"ave") != 0 && strcmp(word,"trap") != 0 && strcmp(word,"slope") != 0 && - strcmp(word,"gmask") != 0 && strcmp(word,"rmask") != 0 && strcmp(word,"grmask") != 0 && - strcmp(word,"next") != 0 && strcmp(word,"is_file") != 0 && strcmp(word,"is_os") != 0 && - strcmp(word,"extract_setting") != 0 && strcmp(word,"label2type") != 0 && - strcmp(word,"is_typelabel") != 0) - return 0; + if (functions.find(word) == functions.end()) return 0; // process label2type() separately b/c its label arg can have commas in it - if (strcmp(word,"label2type") == 0 || strcmp(word,"is_typelabel") == 0) { + if ((word == "label2type") || (word == "is_typelabel")) { if (!atom->labelmapflag) print_var_error(FLERR,fmt::format("Cannot use {}() function without a labelmap",word),ivar); std::string contents_copy(contents); auto pos = contents_copy.find_first_of(','); if (pos == std::string::npos) { - if (strcmp(word,"label2type") == 0) { + if (word == "label2type") { print_var_error(FLERR, fmt::format("Invalid label2type({}) function in variable formula", contents_copy), ivar); } else { @@ -4319,7 +4317,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t print_var_error(FLERR, fmt::format("Invalid kind {} in {}() in variable", kind, word),ivar); } - if (strcmp(word,"label2type") == 0) { + if (word == "label2type") { if (value == -1) print_var_error(FLERR, fmt::format("Invalid {} type label {} in label2type() in variable", kind, typestr), ivar); @@ -4348,20 +4346,21 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t // special functions that operate on global vectors - if (strcmp(word,"sum") == 0 || strcmp(word,"min") == 0 || - strcmp(word,"max") == 0 || strcmp(word,"ave") == 0 || - strcmp(word,"trap") == 0 || strcmp(word,"slope") == 0) { + if ((word == "sum") || (word == "min") || (word == "max") || (word == "ave") || + (word == "trap") || (word == "slope") || (word == "sort") || (word == "rsort")) { int method = 0; - if (strcmp(word,"sum") == 0) method = SUM; - else if (strcmp(word,"min") == 0) method = XMIN; - else if (strcmp(word,"max") == 0) method = XMAX; - else if (strcmp(word,"ave") == 0) method = AVE; - else if (strcmp(word,"trap") == 0) method = TRAP; - else if (strcmp(word,"slope") == 0) method = SLOPE; + if (word == "sum") method = SUM; + else if (word == "min") method = XMIN; + else if (word == "max") method = XMAX; + else if (word == "ave") method = AVE; + else if (word == "trap") method = TRAP; + else if (word == "slope") method = SLOPE; + else if (word == "sort") method = SORT; + else if (word == "rsort") method = RSORT; if (narg != 1) - print_var_error(FLERR,"Invalid special function in variable formula",ivar); + print_var_error(FLERR,fmt::format("Invalid special function {}() in variable formula", word),ivar); Compute *compute = nullptr; Fix *fix = nullptr; @@ -4570,7 +4569,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t // mask special functions - } else if (strcmp(word,"gmask") == 0) { + } else if (word == "gmask") { if (tree == nullptr) print_var_error(FLERR,"Gmask function in equal-style variable formula",ivar); if (narg != 1) @@ -4585,7 +4584,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t newtree->ivalue = group->bitmask[igroup]; treestack[ntreestack++] = newtree; - } else if (strcmp(word,"rmask") == 0) { + } else if (word == "rmask") { if (tree == nullptr) print_var_error(FLERR,"Rmask function in equal-style variable formula",ivar); if (narg != 1) @@ -4599,7 +4598,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t newtree->region = region; treestack[ntreestack++] = newtree; - } else if (strcmp(word,"grmask") == 0) { + } else if (word == "grmask") { if (tree == nullptr) print_var_error(FLERR,"Grmask function in equal-style variable formula",ivar); if (narg != 2) @@ -4619,7 +4618,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t // special function for file-style or atomfile-style variables - } else if (strcmp(word,"next") == 0) { + } else if (word == "next") { if (narg != 1) print_var_error(FLERR,"Invalid special function in variable formula",ivar); @@ -4670,7 +4669,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t } else print_var_error(FLERR,"Invalid variable style in special function next",ivar); - } else if (strcmp(word,"is_file") == 0) { + } else if (word == "is_file") { if (narg != 1) print_var_error(FLERR,"Invalid is_file() function in variable formula",ivar); @@ -4687,7 +4686,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t treestack[ntreestack++] = newtree; } else argstack[nargstack++] = value; - } else if (strcmp(word,"is_os") == 0) { + } else if (word == "is_os") { if (narg != 1) print_var_error(FLERR,"Invalid is_os() function in variable formula",ivar); value = utils::strmatch(platform::os_info(), args[0]) ? 1.0 : 0.0; @@ -4700,7 +4699,7 @@ int Variable::special_function(char *word, char *contents, Tree **tree, Tree **t treestack[ntreestack++] = newtree; } else argstack[nargstack++] = value; - } else if (strcmp(word,"extract_setting") == 0) { + } else if (word == "extract_setting") { if (narg != 1) print_var_error(FLERR,"Invalid extract_setting() function in variable formula",ivar); value = lammps_extract_setting(lmp, args[0]); diff --git a/src/variable.h b/src/variable.h index aa2111aa6b..fcc66461f6 100644 --- a/src/variable.h +++ b/src/variable.h @@ -143,7 +143,7 @@ class Variable : protected Pointers { int math_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); int group_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); Region *region_function(char *, int); - int special_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); + int special_function(const std::string &, char *, Tree **, Tree **, int &, double *, int &, int); int feature_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); void peratom2global(int, char *, double *, int, tagint, Tree **, Tree **, int &, double *, int &); void custom2global(int *, double *, int, tagint, Tree **, Tree **, int &, double *, int &); From 272ce6427297848432390f736fc16000280b3bcd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 May 2024 23:46:36 -0400 Subject: [PATCH 145/313] add special function for sorting vectors --- src/variable.cpp | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/src/variable.cpp b/src/variable.cpp index fc61e6069e..f499d7e6b1 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -40,9 +40,11 @@ #include "fmt/ranges.h" +#include #include #include #include +#include #include #include @@ -80,7 +82,7 @@ enum{DONE,ADD,SUBTRACT,MULTIPLY,DIVIDE,CARAT,MODULO,UNARY, // customize by adding a special function -enum{SUM,XMIN,XMAX,AVE,TRAP,SLOPE}; +enum{SUM,XMIN,XMAX,AVE,TRAP,SLOPE,SORT,RSORT}; static constexpr double BIG = 1.0e20; @@ -4478,6 +4480,7 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t if (method == SLOPE) sx = sxx = sy = sxy = 0.0; else if (method == XMIN) value = BIG; else if (method == XMAX) value = -BIG; + std::vector unsorted; if (compute) { double *vec; @@ -4486,6 +4489,7 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t else vec = nullptr; } else vec = compute->vector; + if ((method == SORT) || (method == RSORT)) unsorted.reserve(nvec); int j = 0; for (int i = 0; i < nvec; i++) { if (method == SUM) value += vec[j]; @@ -4493,6 +4497,7 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t else if (method == XMAX) value = MAX(value,vec[j]); else if (method == AVE) value += vec[j]; else if (method == TRAP) value += vec[j]; + else if ((method == SORT) || (method == RSORT)) unsorted.push_back(vec[j]); else if (method == SLOPE) { sx += (double)i; sy += vec[j]; @@ -4514,6 +4519,7 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t else if (method == XMAX) value = MAX(value,one); else if (method == AVE) value += one; else if (method == TRAP) value += one; + else if ((method == SORT) || (method == RSORT)) unsorted.push_back(one); else if (method == SLOPE) { sx += (double)i; sy += one; @@ -4539,6 +4545,7 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t else if (method == XMAX) value = MAX(value,one); else if (method == AVE) value += one; else if (method == TRAP) value += one; + else if ((method == SORT) || (method == RSORT)) unsorted.push_back(one); else if (method == SLOPE) { sx += (double) i; sy += one; @@ -4558,14 +4565,37 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t else value = BIG; } - // save value in tree or on argstack + if ((method == SORT) || (method == RSORT)) { + if (method == SORT) std::sort(unsorted.begin(), unsorted.end(), std::less()); + if (method == RSORT) std::sort(unsorted.begin(), unsorted.end(), std::greater()); - if (tree) { - auto newtree = new Tree(); - newtree->type = VALUE; - newtree->value = value; - treestack[ntreestack++] = newtree; - } else argstack[nargstack++] = value; + double *newvec; + memory->create(newvec,nvec,"variable:values"); + for (int m = 0; m < nvec; m++) + newvec[m] = unsorted[m]; + + if (tree) { + auto newtree = new Tree(); + newtree->type = VECTORARRAY; + newtree->array = newvec; + newtree->nvector = nvec; + newtree->nstride = 1; + newtree->selfalloc = 1; + treestack[ntreestack++] = newtree; + } else { + error->all(FLERR, "Cannot use argstack for sorted vector"); + } + } else { + + // save value in tree or on argstack + + if (tree) { + auto newtree = new Tree(); + newtree->type = VALUE; + newtree->value = value; + treestack[ntreestack++] = newtree; + } else argstack[nargstack++] = value; + } // mask special functions From c95389d58cf372fd7a29c089efb3d589b9b64b52 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 22 May 2024 23:57:13 -0400 Subject: [PATCH 146/313] add unit tests for sort() and rsort() special function --- unittest/commands/test_variables.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/unittest/commands/test_variables.cpp b/unittest/commands/test_variables.cpp index 6748867b4e..4a0abd1856 100644 --- a/unittest/commands/test_variables.cpp +++ b/unittest/commands/test_variables.cpp @@ -337,6 +337,10 @@ TEST_F(VariableTest, Expressions) command("variable vec1 vector \"[-2, 0, 1,2 ,3, 5 , 7\n]\""); command("variable vec2 vector v_vec1*0.5"); command("variable vec3 equal v_vec2[3]"); + command("variable vec4 vector '[1, 5, 2.5, -10, -5, 20, 120, 4, 3, 3]'"); + command("variable sort vector sort(v_vec4)"); + command("variable rsrt vector rsort(v_vec4)"); + command("variable isrt vector sort(v_one)"); variable->set("dummy index 1 2"); END_HIDE_OUTPUT(); @@ -366,6 +370,8 @@ TEST_F(VariableTest, Expressions) EXPECT_THAT(variable->retrieve("vec1"), StrEq("[-2,0,1,2,3,5,7]")); EXPECT_THAT(variable->retrieve("vec2"), StrEq("[-1,0,0.5,1,1.5,2.5,3.5]")); ASSERT_DOUBLE_EQ(variable->compute_equal("v_vec3"), 0.5); + EXPECT_THAT(variable->retrieve("sort"), StrEq("[-10,-5,1,2.5,3,3,4,5,20,120]")); + EXPECT_THAT(variable->retrieve("rsrt"), StrEq("[120,20,5,4,3,3,2.5,1,-5,-10]")); TEST_FAILURE(".*ERROR: Variable six: Invalid thermo keyword 'XXX' in variable formula.*", command("print \"${six}\"");); @@ -377,6 +383,8 @@ TEST_F(VariableTest, Expressions) command("print \"${err2}\"");); TEST_FAILURE(".*ERROR on proc 0: Variable err3: Invalid power expression in variable formula.*", command("print \"${err3}\"");); + TEST_FAILURE(".*ERROR: Variable one: Mis-matched special function variable in variable formula.*", + command("print \"${isrt}\"");); } TEST_F(VariableTest, Functions) From 4b81337b6a2d740db4eb5f9427d28096d0edd1f8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 May 2024 00:09:54 -0400 Subject: [PATCH 147/313] add documentation for new special variable functions --- doc/src/variable.rst | 44 ++++++++++++--------- doc/utils/sphinx-config/false_positives.txt | 1 + 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/doc/src/variable.rst b/doc/src/variable.rst index ba5e5efd39..1430664ed9 100644 --- a/doc/src/variable.rst +++ b/doc/src/variable.rst @@ -67,7 +67,7 @@ Syntax bound(group,dir,region), gyration(group,region), ke(group,reigon), angmom(group,dim,region), torque(group,dim,region), inertia(group,dimdim,region), omega(group,dim,region) - special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) + special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id) atom value = id[i], mass[i], type[i], mol[i], x[i], y[i], z[i], vx[i], vy[i], vz[i], fx[i], fy[i], fz[i], q[i] atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz @@ -547,7 +547,7 @@ variables. +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Region functions | count(ID,IDR), mass(ID,IDR), charge(ID,IDR), xcm(ID,dim,IDR), vcm(ID,dim,IDR), fcm(ID,dim,IDR), bound(ID,dir,IDR), gyration(ID,IDR), ke(ID,IDR), angmom(ID,dim,IDR), torque(ID,dim,IDR), inertia(ID,dimdim,IDR), omega(ID,dim,IDR) | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) | +| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), rsort(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label), is_typelabel(kind,label) | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -913,23 +913,27 @@ Special Functions Special functions take specific kinds of arguments, meaning their arguments cannot be formulas themselves. -The sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions -each take 1 argument which is of the form "c_ID" or "c_ID[N]" or -"f_ID" or "f_ID[N]" or "v_name". The first two are computes and the -second two are fixes; the ID in the reference should be replaced by -the ID of a compute or fix defined elsewhere in the input script. The -compute or fix must produce either a global vector or array. If it -produces a global vector, then the notation without "[N]" should be -used. If it produces a global array, then the notation with "[N]" -should be used, when N is an integer, to specify which column of the -global array is being referenced. The last form of argument "v_name" -is for a vector-style variable where "name" is replaced by the name of -the variable. +The sum(x), min(x), max(x), ave(x), trap(x), slope(x), sort(x), and +rsort(x) functions each take 1 argument which is of the form "c_ID" or +"c_ID[N]" or "f_ID" or "f_ID[N]" or "v_name". The first two are +computes and the second two are fixes; the ID in the reference should be +replaced by the ID of a compute or fix defined elsewhere in the input +script. The compute or fix must produce either a global vector or +array. If it produces a global vector, then the notation without "[N]" +should be used. If it produces a global array, then the notation with +"[N]" should be used, where N is an integer, to specify which column of +the global array is being referenced. The last form of argument +"v_name" is for a vector-style variable where "name" is replaced by the +name of the variable. -These functions operate on a global vector of inputs and reduce it to -a single scalar value. This is analogous to the operation of the -:doc:`compute reduce ` command, which performs similar -operations on per-atom and local vectors. +The sum(x), min(x), max(x), ave(x), trap(x), and slope(x) functions +operate on a global vector of inputs and reduce it to a single scalar +value. This is analogous to the operation of the :doc:`compute reduce +` command, which performs similar operations on per-atom +and local vectors. + +The sort(x) and rsort(x) functions operate on a global vector of inputs +and return a global vector of the same length. The sum() function calculates the sum of all the vector elements. The min() and max() functions find the minimum and maximum element @@ -953,6 +957,10 @@ of points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2), length N. The returned value is the slope of the line. If the line has a single point or is vertical, it returns 1.0e20. +The sort(x) and rsort(x) functions sort the data of the input vector by +their numeric value: sort(x) sorts in ascending order, rsort(x) sorts +in descending order. + The gmask(x) function takes 1 argument which is a group ID. It can only be used in atom-style variables. It returns a 1 for atoms that are in the group, and a 0 for atoms that are not. diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 5dfbe48ffa..550178991e 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -3252,6 +3252,7 @@ rRESPA Rsi Rso Rspace +rsort rsq rst rstyle From e18395cf6e40ab097e30163e2b7e8776a3344d98 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 May 2024 00:16:47 -0400 Subject: [PATCH 148/313] add versionadded marker --- doc/src/variable.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/variable.rst b/doc/src/variable.rst index 1430664ed9..4ac978e26d 100644 --- a/doc/src/variable.rst +++ b/doc/src/variable.rst @@ -957,6 +957,8 @@ of points, equally spaced by 1 in their x coordinate: (1,V1), (2,V2), length N. The returned value is the slope of the line. If the line has a single point or is vertical, it returns 1.0e20. +.. versionadded:: TBD + The sort(x) and rsort(x) functions sort the data of the input vector by their numeric value: sort(x) sorts in ascending order, rsort(x) sorts in descending order. From 371ec2036fa55d667612c07f46c8b391ed0cbad4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 23 May 2024 01:24:41 -0400 Subject: [PATCH 149/313] support trailing brackets for sort() and rsort() --- src/variable.cpp | 30 ++++++++++++++++++++-------- src/variable.h | 3 ++- unittest/commands/test_variables.cpp | 7 +++++++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/variable.cpp b/src/variable.cpp index f499d7e6b1..e2c77fc520 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -2288,7 +2288,7 @@ double Variable::evaluate(char *str, Tree **tree, int ivar) if (math_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); else if (group_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); - else if (special_function(std::string(word),contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); + else if (special_function(std::string(word),contents,tree,treestack,ntreestack,argstack,nargstack,ivar,str,i,ptr)); else if (feature_function(word,contents,tree,treestack,ntreestack,argstack,nargstack,ivar)); else print_var_error(FLERR,fmt::format("Invalid math/group/special/feature function '{}()' " "in variable formula", word),ivar); @@ -4271,7 +4271,7 @@ Region *Variable::region_function(char *id, int ivar) ------------------------------------------------------------------------- */ int Variable::special_function(const std::string &word, char *contents, Tree **tree, Tree **treestack, - int &ntreestack, double *argstack, int &nargstack, int ivar) + int &ntreestack, double *argstack, int &nargstack, int ivar, char *str, int &istr, char *&ptr) { double sx,sxx; double value,sy,sxy; @@ -4569,12 +4569,12 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t if (method == SORT) std::sort(unsorted.begin(), unsorted.end(), std::less()); if (method == RSORT) std::sort(unsorted.begin(), unsorted.end(), std::greater()); - double *newvec; - memory->create(newvec,nvec,"variable:values"); - for (int m = 0; m < nvec; m++) - newvec[m] = unsorted[m]; - if (tree) { + double *newvec; + memory->create(newvec,nvec,"variable:values"); + for (int m = 0; m < nvec; m++) + newvec[m] = unsorted[m]; + auto newtree = new Tree(); newtree->type = VECTORARRAY; newtree->array = newvec; @@ -4582,8 +4582,22 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t newtree->nstride = 1; newtree->selfalloc = 1; treestack[ntreestack++] = newtree; + } else { - error->all(FLERR, "Cannot use argstack for sorted vector"); + + // process one pair of trailing brackets + // point istr beyond last bracket + // nbracket = # of bracket pairs + // index = int inside each bracket pair, vector index + + if (str[istr] == '[') { + ptr = &str[istr]; + int index = int_between_brackets(ptr,1); + if (index > nvec) + print_var_error(FLERR, fmt::format("index {} exceeds vector size of {}\n", index, nvec),ivar); + istr = ptr-str+1; + argstack[nargstack++] = unsorted[index-1]; + } } } else { diff --git a/src/variable.h b/src/variable.h index fcc66461f6..f4a5e511c0 100644 --- a/src/variable.h +++ b/src/variable.h @@ -143,7 +143,8 @@ class Variable : protected Pointers { int math_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); int group_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); Region *region_function(char *, int); - int special_function(const std::string &, char *, Tree **, Tree **, int &, double *, int &, int); + int special_function(const std::string &, char *, Tree **, Tree **, int &, double *, int &, + int, char *, int &, char *&); int feature_function(char *, char *, Tree **, Tree **, int &, double *, int &, int); void peratom2global(int, char *, double *, int, tagint, Tree **, Tree **, int &, double *, int &); void custom2global(int *, double *, int, tagint, Tree **, Tree **, int &, double *, int &); diff --git a/unittest/commands/test_variables.cpp b/unittest/commands/test_variables.cpp index 4a0abd1856..1aa13ecf49 100644 --- a/unittest/commands/test_variables.cpp +++ b/unittest/commands/test_variables.cpp @@ -340,6 +340,9 @@ TEST_F(VariableTest, Expressions) command("variable vec4 vector '[1, 5, 2.5, -10, -5, 20, 120, 4, 3, 3]'"); command("variable sort vector sort(v_vec4)"); command("variable rsrt vector rsort(v_vec4)"); + command("variable max2 equal sort(v_vec4)[2]"); + command("variable rmax equal rsort(v_vec4)[1]"); + command("variable xxxl equal rsort(v_vec4)[11]"); command("variable isrt vector sort(v_one)"); variable->set("dummy index 1 2"); END_HIDE_OUTPUT(); @@ -372,6 +375,8 @@ TEST_F(VariableTest, Expressions) ASSERT_DOUBLE_EQ(variable->compute_equal("v_vec3"), 0.5); EXPECT_THAT(variable->retrieve("sort"), StrEq("[-10,-5,1,2.5,3,3,4,5,20,120]")); EXPECT_THAT(variable->retrieve("rsrt"), StrEq("[120,20,5,4,3,3,2.5,1,-5,-10]")); + ASSERT_DOUBLE_EQ(variable->compute_equal("v_max2"), -5); + ASSERT_DOUBLE_EQ(variable->compute_equal("v_rmax"), 120); TEST_FAILURE(".*ERROR: Variable six: Invalid thermo keyword 'XXX' in variable formula.*", command("print \"${six}\"");); @@ -385,6 +390,8 @@ TEST_F(VariableTest, Expressions) command("print \"${err3}\"");); TEST_FAILURE(".*ERROR: Variable one: Mis-matched special function variable in variable formula.*", command("print \"${isrt}\"");); + TEST_FAILURE(".*ERROR: Variable vec4: index 11 exceeds vector size of 10.*", + command("print \"${xxxl}\"");); } TEST_F(VariableTest, Functions) From 29e64748c02e1ff596c10fc77bd8f0bb201dbc7a Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Thu, 23 May 2024 12:18:18 -0600 Subject: [PATCH 150/313] Fix issue with virtual inheritance in Kokkos deallocate_topo function --- src/KOKKOS/atom_kokkos.h | 2 +- src/atom.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/KOKKOS/atom_kokkos.h b/src/KOKKOS/atom_kokkos.h index 669c8b510a..8501af2a24 100644 --- a/src/KOKKOS/atom_kokkos.h +++ b/src/KOKKOS/atom_kokkos.h @@ -168,7 +168,7 @@ class AtomKokkos : public Atom { virtual void grow(unsigned int mask); int add_custom(const char *, int, int, int border = 0) override; void remove_custom(int, int, int) override; - virtual void deallocate_topology(); + void deallocate_topology() override; void map_set_device(); void map_set_host(); diff --git a/src/atom.h b/src/atom.h index 86ec697dce..195c1b2cf9 100644 --- a/src/atom.h +++ b/src/atom.h @@ -327,7 +327,7 @@ class Atom : protected Pointers { int parse_data(const char *); - void deallocate_topology(); + virtual void deallocate_topology(); void data_atoms(int, char *, tagint, tagint, int, int, double *, int, int *, int); void data_vels(int, char *, tagint); From e53cc86622a769087aa8bd80e5e8d139e3a958f7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 24 May 2024 19:54:26 -0400 Subject: [PATCH 151/313] support extracting few more global properties and add interface to Atom::map() --- src/library.cpp | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ src/library.h | 2 ++ 2 files changed, 69 insertions(+) diff --git a/src/library.cpp b/src/library.cpp index 75d74f4bf8..e5c3021954 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -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 ` for Coulomb interactions (first element is always 1.0) + * - map_style + - int + - 1 + - :doc:`atom map setting `: 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 diff --git a/src/library.h b/src/library.h index 10cac6741a..0e579de2e9 100644 --- a/src/library.h +++ b/src/library.h @@ -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 * ---------------------------------------------------------------------- */ From 3701d330c4bc72eca2c067d1d42fbc284ba616cb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 24 May 2024 23:03:53 -0400 Subject: [PATCH 152/313] add unit test for new library function and settings --- .../c-library/test_library_properties.cpp | 67 ++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index 4f5cd97d1f..804853194b 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -1,7 +1,9 @@ // unit tests for checking and changing simulation properties through the library interface -#include "lammps.h" #include "library.h" + +#include "atom.h" +#include "lammps.h" #include "lmptype.h" #include "platform.h" #include @@ -14,6 +16,7 @@ #define STRINGIFY(val) XSTR(val) #define XSTR(val) #val +using ::LAMMPS_NS::Atom; using ::LAMMPS_NS::bigint; using ::LAMMPS_NS::tagint; using ::LAMMPS_NS::platform::path_join; @@ -400,6 +403,68 @@ TEST_F(LibraryProperties, global) EXPECT_DOUBLE_EQ(special_coul[1], 1.0); EXPECT_DOUBLE_EQ(special_coul[2], 1.0); EXPECT_DOUBLE_EQ(special_coul[3], 1.0); + + EXPECT_EQ(lammps_extract_global_datatype(lmp, "map_style"), LAMMPS_INT); +#if defined(LAMMPS_BIGBIG) + EXPECT_EQ(lammps_extract_global_datatype(lmp, "map_tag_max"), LAMMPS_BIGINT); +#else + EXPECT_EQ(lammps_extract_global_datatype(lmp, "map_tag_max"), LAMMPS_INT); +#endif + EXPECT_EQ(lammps_extract_global_datatype(lmp, "sametag"), LAMMPS_INT); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "sortfreq"), LAMMPS_INT); + EXPECT_EQ(lammps_extract_global_datatype(lmp, "nextsort"), LAMMPS_BIGINT); + int *sametag = (int *)lammps_extract_global(lmp, "sametag"); + int map_style = *(int *)lammps_extract_global(lmp, "map_style"); + EXPECT_EQ(map_style, Atom::MAP_ARRAY); + EXPECT_NE(sametag, nullptr); + + tagint *tags = (tagint *)lammps_extract_atom(lmp, "id"); + tagint sometags[] = {1, 5, 10, 15, 20}; + for (int i = 0; i < 5; ++i) { + int idx = lammps_map_atom(lmp, (const void *)&sometags[i]); + EXPECT_EQ(sometags[i], tags[idx]); + int nextidx = sametag[idx]; + if (nextidx >= 0) { + EXPECT_EQ(sometags[i], tags[nextidx]); + } + } + + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_command(lmp, "clear"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + map_style = *(int *)lammps_extract_global(lmp, "map_style"); + EXPECT_EQ(map_style, Atom::MAP_NONE); + sametag = (int *)lammps_extract_global(lmp, "sametag"); + EXPECT_EQ(sametag, nullptr); + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_command(lmp, "atom_modify map yes"); + lammps_command(lmp, "region box block 0 1 0 1 0 1"); + lammps_command(lmp, "create_box 1 box"); + lammps_command(lmp, "mass 1 1.0"); + lammps_command(lmp, "run 0 post no"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + map_style = *(int *)lammps_extract_global(lmp, "map_style"); + EXPECT_EQ(map_style, Atom::MAP_YES); + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_command(lmp, "clear"); + lammps_command(lmp, "atom_modify map hash"); + lammps_command(lmp, "region box block 0 1 0 1 0 1"); + lammps_command(lmp, "create_box 1 box"); + lammps_command(lmp, "mass 1 1.0"); + lammps_command(lmp, "run 0 post no"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + map_style = *(int *)lammps_extract_global(lmp, "map_style"); + EXPECT_EQ(map_style, Atom::MAP_HASH); + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_command(lmp, "clear"); + lammps_command(lmp, "atom_modify map array"); + lammps_command(lmp, "region box block 0 1 0 1 0 1"); + lammps_command(lmp, "create_box 1 box"); + lammps_command(lmp, "mass 1 1.0"); + lammps_command(lmp, "run 0 post no"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + map_style = *(int *)lammps_extract_global(lmp, "map_style"); + EXPECT_EQ(map_style, Atom::MAP_ARRAY); }; TEST_F(LibraryProperties, neighlist) From 0ec86181f21402ca6b1b2b7970e55de9053d3c4a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 24 May 2024 23:49:25 -0400 Subject: [PATCH 153/313] add support for 'sametag' array --- python/lammps/core.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/lammps/core.py b/python/lammps/core.py index 7bd22d62ed..9bf1f913a7 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -893,6 +893,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 From 9f0816c3ba5acd1bc5a0edded7aa60067d9234d3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 24 May 2024 23:50:11 -0400 Subject: [PATCH 154/313] add support for lammps_map_atom() in python module --- python/lammps/core.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/python/lammps/core.py b/python/lammps/core.py index 9bf1f913a7..2f253c6333 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -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 @@ -928,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 indx + + 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 From fdbaf6feff6a7c85e2d1f0c100fa67e4f1ca990b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 00:22:38 -0400 Subject: [PATCH 155/313] spelling fix and update false positives --- doc/utils/sphinx-config/false_positives.txt | 8 ++++++++ python/lammps/core.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 5dfbe48ffa..82d20e7700 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -992,6 +992,7 @@ emax Emax Embt emi +Emilie Emmrich emol eN @@ -1763,6 +1764,7 @@ keflag Keir Kelchner Kelkar +Kemppainen Kemper kepler keV @@ -2483,6 +2485,7 @@ Nevery newfile Newns newtype +nextsort Neyts Nf nfft @@ -2672,6 +2675,7 @@ nzlo ocl octahedral octants +Odegard Ohara O'Hearn ohenrich @@ -3287,6 +3291,7 @@ Saidi saip Salanne Salles +sametag sandia Sandia sandybrown @@ -3404,6 +3409,7 @@ sinh sinusoid sinusoidally SiO +Siochi Sirk Sival sizeI @@ -3451,6 +3457,7 @@ solvated solvation someuser Sorensen +sortfreq soundspeed sourceforge Souza @@ -4149,6 +4156,7 @@ yy yz Zagaceta Zannoni +Zavada Zavattieri zbl ZBL diff --git a/python/lammps/core.py b/python/lammps/core.py index 2f253c6333..9ab6661df5 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -935,7 +935,7 @@ class lammps(object): # map global atom ID to local atom index def map_atom(self, id): - """Map a global atom ID (aka tag) to the local atom indx + """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. From 694faf3235caa122eb0655c23ac30c588cdc9ad4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 00:31:01 -0400 Subject: [PATCH 156/313] register lammps_map_atom() with the documentation --- doc/src/Library_properties.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/src/Library_properties.rst b/doc/src/Library_properties.rst index 005bfaeea5..73abcbbe1b 100644 --- a/doc/src/Library_properties.rst +++ b/doc/src/Library_properties.rst @@ -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 + From 3bc367e0b00b8d82ec21b5cb633df7c0cc088bdd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 05:00:08 -0400 Subject: [PATCH 157/313] implement suggestions made by @rbberger --- src/variable.cpp | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/variable.cpp b/src/variable.cpp index e2c77fc520..1de4533267 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -46,7 +46,6 @@ #include #include #include -#include using namespace LAMMPS_NS; using namespace MathConst; @@ -82,7 +81,7 @@ enum{DONE,ADD,SUBTRACT,MULTIPLY,DIVIDE,CARAT,MODULO,UNARY, // customize by adding a special function -enum{SUM,XMIN,XMAX,AVE,TRAP,SLOPE,SORT,RSORT}; +enum{SUM,XMIN,XMAX,AVE,TRAP,SLOPE,SORT,RSORT,NOVECTOR}; static constexpr double BIG = 1.0e20; @@ -4270,18 +4269,23 @@ Region *Variable::region_function(char *id, int ivar) extract_setting(x),label2type(x,y),is_typelabel(x,y) ------------------------------------------------------------------------- */ -int Variable::special_function(const std::string &word, char *contents, Tree **tree, Tree **treestack, - int &ntreestack, double *argstack, int &nargstack, int ivar, char *str, int &istr, char *&ptr) +// to simplify finding matches and assigning constants for functions operating on vectors + +static const std::unordered_map special_function_map = { + {"sum", SUM}, {"min", XMIN}, {"max", XMAX}, {"ave", AVE}, {"trap", TRAP}, {"slope", SLOPE}, + {"sort", SORT}, {"rsort", RSORT}, {"gmask", NOVECTOR}, {"rmask", NOVECTOR}, {"grmask", NOVECTOR}, + {"next", NOVECTOR}, {"is_file", NOVECTOR}, {"is_os", NOVECTOR}, {"extract_setting", NOVECTOR}, + {"label2type", NOVECTOR}, {"is_typelabel", NOVECTOR} }; + +int Variable::special_function(const std::string &word, char *contents, Tree **tree, + Tree **treestack, int &ntreestack, double *argstack, + int &nargstack, int ivar, char *str, int &istr, char *&ptr) { double sx,sxx; double value,sy,sxy; - // word is not a match to any special function - std::unordered_set functions = { - "sum", "min", "max", "ave", "trap", "slope", "sort", "rsort", "gmask", "rmask", "grmask", - "next", "is_file", "is_os", "extract_setting", "label2type", "is_typelabel" }; - - if (functions.find(word) == functions.end()) return 0; + // return if "word" is not a match to any special function + if (special_function_map.find(word) == special_function_map.end()) return 0; // process label2type() separately b/c its label arg can have commas in it @@ -4346,20 +4350,10 @@ int Variable::special_function(const std::string &word, char *contents, Tree **t char *args[MAXFUNCARG]; int narg = parse_args(contents,args); - // special functions that operate on global vectors + // special functions that operate on global vectors are NOT mapped to NOVECTOR - if ((word == "sum") || (word == "min") || (word == "max") || (word == "ave") || - (word == "trap") || (word == "slope") || (word == "sort") || (word == "rsort")) { - - int method = 0; - if (word == "sum") method = SUM; - else if (word == "min") method = XMIN; - else if (word == "max") method = XMAX; - else if (word == "ave") method = AVE; - else if (word == "trap") method = TRAP; - else if (word == "slope") method = SLOPE; - else if (word == "sort") method = SORT; - else if (word == "rsort") method = RSORT; + int method = special_function_map.find(word)->second; + if (method != NOVECTOR) { if (narg != 1) print_var_error(FLERR,fmt::format("Invalid special function {}() in variable formula", word),ivar); From 8ea31bb5c8382c910ebc249739334250374a7821 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 05:59:25 -0400 Subject: [PATCH 158/313] add some unit tests for python wrapper of lammps_map_atom() --- unittest/python/python-commands.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index c9f16f6a71..f11ac11da9 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -609,6 +609,10 @@ create_atoms 1 single & self.lmp.command("special_bonds lj/coul 0.0 1.0 1.0") self.assertEqual(self.lmp.extract_global("special_lj"), [1.0, 0.0, 1.0, 1.0]) self.assertEqual(self.lmp.extract_global("special_coul"), [1.0, 0.0, 1.0, 1.0]) + self.assertEqual(self.lmp.extract_global("map_style"), 0) + self.assertEqual(self.lmp.extract_global("map_tag_max"), -1) + self.assertEqual(self.lmp.extract_global("sortfreq"), 1000) + self.assertEqual(self.lmp.extract_global("nextsort"), 0) # set and initialize r-RESPA self.lmp.command("run_style respa 3 5 2 pair 2 kspace 3") @@ -660,6 +664,19 @@ create_atoms 1 single & self.assertEqual(vel[i][0:3],result[i][3]) self.assertEqual(self.lmp.decode_image_flags(img[i]), result[i][4]) + def test_map_atom(self): + self.lmp.command('shell cd ' + os.environ['TEST_INPUT_DIR']) + self.lmp.command("newton on on") + self.lmp.file("in.fourmol") + self.lmp.command("run 4 post no") + sometags = [1, 10, 25, 29] + tags = self.lmp.extract_atom("id") + sametag = self.lmp.extract_global("sametag") + for mytag in sometags: + myidx = self.lmp.map_atom(mytag) + self.assertEqual(mytag, tags[myidx]) + if sametag[myidx] < 0: continue + self.assertEqual(mytag, tags[sametag[myidx]]) ############################## if __name__ == "__main__": From 75a325751e9d621abea436f8e06f846ba1d7b194 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 07:01:28 -0400 Subject: [PATCH 159/313] implement support for lammps_map_atom() to plugin loader, Fortran module, swig --- doc/src/Fortran.rst | 2 ++ examples/COUPLE/plugin/liblammpsplugin.c | 1 + examples/COUPLE/plugin/liblammpsplugin.h | 1 + fortran/lammps.f90 | 42 ++++++++++++++++++++++++ tools/swig/lammps.i | 2 ++ 5 files changed, 48 insertions(+) diff --git a/doc/src/Fortran.rst b/doc/src/Fortran.rst index e9976b9032..cea70dd3af 100644 --- a/doc/src/Fortran.rst +++ b/doc/src/Fortran.rst @@ -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` diff --git a/examples/COUPLE/plugin/liblammpsplugin.c b/examples/COUPLE/plugin/liblammpsplugin.c index 011c320254..81dcf2cd50 100644 --- a/examples/COUPLE/plugin/liblammpsplugin.c +++ b/examples/COUPLE/plugin/liblammpsplugin.c @@ -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); diff --git a/examples/COUPLE/plugin/liblammpsplugin.h b/examples/COUPLE/plugin/liblammpsplugin.h index 1d647e8e93..ea00277083 100644 --- a/examples/COUPLE/plugin/liblammpsplugin.h +++ b/examples/COUPLE/plugin/liblammpsplugin.h @@ -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 *); diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index c297bad2ef..5130b96676 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -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 diff --git a/tools/swig/lammps.i b/tools/swig/lammps.i index b0670b40a4..d350966c2a 100644 --- a/tools/swig/lammps.i +++ b/tools/swig/lammps.i @@ -125,6 +125,7 @@ extern int lammps_get_mpi_comm(void *handle); extern int lammps_extract_setting(void *handle, const char *keyword); extern int lammps_extract_global_datatype(void *handle, const char *name); extern void *lammps_extract_global(void *handle, const char *name); +extern int lammps_map_atom(void *handle, const void *id); extern int lammps_extract_atom_datatype(void *handle, const char *name); extern void *lammps_extract_atom(void *handle, const char *name); @@ -310,6 +311,7 @@ extern int lammps_get_mpi_comm(void *handle); extern int lammps_extract_setting(void *handle, const char *keyword); extern int lammps_extract_global_datatype(void *handle, const char *name); extern void *lammps_extract_global(void *handle, const char *name); +extern int lammps_map_atom(void *handle, const void *id); extern int lammps_extract_atom_datatype(void *handle, const char *name); extern void *lammps_extract_atom(void *handle, const char *name); From c2ce733d5dc60eda64f5f13fe071a997dcb24d19 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 25 May 2024 07:11:02 -0400 Subject: [PATCH 160/313] whitespace --- fortran/lammps.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index 5130b96676..083fcbe948 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -1364,7 +1364,7 @@ CONTAINS 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 From ed675cb306604c417d45b3ff313dbfd5685dae49 Mon Sep 17 00:00:00 2001 From: Gareth Aneurin Tribello Date: Sun, 26 May 2024 19:13:28 +0100 Subject: [PATCH 161/313] Added setting of extscalar in fix_plumed --- src/PLUMED/fix_plumed.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PLUMED/fix_plumed.cpp b/src/PLUMED/fix_plumed.cpp index 350a31b45d..14dcd15d91 100644 --- a/src/PLUMED/fix_plumed.cpp +++ b/src/PLUMED/fix_plumed.cpp @@ -205,6 +205,7 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : double dt=update->dt; p->cmd("setTimestep",&dt); + extscalar = 1; scalar_flag = 1; energy_global_flag = virial_global_flag = 1; thermo_energy = thermo_virial = 1; From 5685c5c74b737491393215d1eed0000fa3d77245 Mon Sep 17 00:00:00 2001 From: Gareth Aneurin Tribello Date: Sun, 26 May 2024 19:17:00 +0100 Subject: [PATCH 162/313] Fixed list of supported version of plumed --- src/PLUMED/fix_plumed.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PLUMED/fix_plumed.cpp b/src/PLUMED/fix_plumed.cpp index 14dcd15d91..4541fe3db6 100644 --- a/src/PLUMED/fix_plumed.cpp +++ b/src/PLUMED/fix_plumed.cpp @@ -79,7 +79,7 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : p->cmd("getApiVersion",&api_version); if ((api_version < 5) || (api_version > 10)) error->all(FLERR,"Incompatible API version for PLUMED in fix plumed. " - "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x are tested and supported."); + "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x 2.9.x are tested and supported."); #if !defined(MPI_STUBS) // If the -partition option is activated then enable From aa8cd7a4b9a728e7a8faf68234c04eb96a45b7a0 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Tue, 28 May 2024 00:07:07 +0200 Subject: [PATCH 163/313] Updated the documentation for i-PI --- doc/src/fix_ipi.rst | 48 +++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index 7705f211e8..15a2235b91 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -35,23 +35,24 @@ Description """"""""""" This fix enables LAMMPS to be run as a client for the i-PI Python -wrapper :ref:`(IPI) ` for performing a path integral molecular dynamics -(PIMD) simulation. The philosophy behind i-PI is described in the -following publication :ref:`(IPI-CPC) `. +wrapper :ref:`(IPI) `. i-PI is a universal force engine, +designed to perform advanced molecular simulations, with a special +focus on path integral molecular dynamics (PIMD) simulation. +The philosophy behind i-PI is to separate the evaluation of the +energy and forces, which is delegated to the client, and the evolution +of the dynamics, that is the responsibility of i-PI. This approach also +simplifies combining energies computed from different codes, which +can for instance be useful to mix first-principles calculations, +empirical force fields or machine-learning potentials. +The following publication :ref:`(IPI-CPC-2014) ` discusses the +overall implementation of i-PI, and focuses on path-integral techniques, +while a later release :ref:`(IPI-CPC-2019) ` introduces several +additional features and simulation schemes. -A version of the i-PI package, containing only files needed for use -with LAMMPS, is provided in the tools/i-pi directory. See the -tools/i-pi/manual.pdf for an introduction to i-PI. The -examples/PACKAGES/i-pi directory contains example scripts for using i-PI -with LAMMPS. - -In brief, the path integral molecular dynamics is performed by the -Python wrapper, while the client (LAMMPS in this case) simply computes -forces and energy for each configuration. The communication between -the two components takes place using sockets, and is reduced to the -bare minimum. All the parameters of the dynamics are specified in the -input of i-PI, and all the parameters of the force field must be -specified as LAMMPS inputs, preceding the *fix ipi* command. +The communication between i-PI and LAMMPS takes place using sockets, +and is reduced to the bare minimum. All the parameters of the dynamics +are specified in the input of i-PI, and all the parameters of the force +field must be specified as LAMMPS inputs, preceding the *fix ipi* command. The server address must be specified by the *address* argument, and can be either the IP address, the fully-qualified name of the server, @@ -75,6 +76,14 @@ If the cell varies too wildly, it may be advisable to re-initialize these interactions at each call. This behavior can be requested by 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. + Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -111,9 +120,14 @@ Related commands .. _IPICPC: -**(IPI-CPC)** Ceriotti, More and Manolopoulos, Comp Phys Comm, 185, +**(IPI-CPC-2014)** Ceriotti, More and Manolopoulos, Comp Phys Comm 185, 1019-1026 (2014). +.. _IPICPC2: + +**(IPI-CPC-2019)** Kapil et al., Comp Phys Comm 236, 214–223 (2019). + + .. _ipihome: **(IPI)** From 475cddfa3645855ae1d942b797dca3b40da7c962 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 27 May 2024 18:49:40 -0400 Subject: [PATCH 164/313] remore i-PI distribution from tools folder --- tools/i-pi/.vimrc | 4 - tools/i-pi/MANIFEST.in | 1 - tools/i-pi/README.md | 17 + tools/i-pi/README.rst | 49 - tools/i-pi/drivers/LJ.f90 | 215 --- tools/i-pi/drivers/Makefile | 42 - tools/i-pi/drivers/README | 14 - tools/i-pi/drivers/SG.f90 | 283 ---- tools/i-pi/drivers/distance.f90 | 174 --- tools/i-pi/drivers/driver.f90 | 309 ---- tools/i-pi/drivers/sockets.c | 147 -- tools/i-pi/examples/lammps/Makefile | 70 - tools/i-pi/examples/lammps/README | 70 - .../examples/lammps/h2o-piglet.2/data.water | 1331 ----------------- .../examples/lammps/h2o-piglet.2/in.water | 32 - .../examples/lammps/h2o-piglet.2/input.xml | 37 - .../lammps/h2o-piglet.2/water_298K.pdb | 650 -------- .../examples/lammps/h2o-piglet.4/data.water | 1331 ----------------- .../examples/lammps/h2o-piglet.4/in.water | 32 - .../examples/lammps/h2o-piglet.4/input.xml | 40 - .../lammps/h2o-piglet.4/water_298K.pdb | 650 -------- .../examples/lammps/h2o-piglet.8/data.water | 1331 ----------------- .../examples/lammps/h2o-piglet.8/in.water | 32 - .../examples/lammps/h2o-piglet.8/input.xml | 49 - .../lammps/h2o-piglet.8/water_298K.pdb | 650 -------- .../lammps/h2o-pimd-rpc/data.water_longrange | 1331 ----------------- .../lammps/h2o-pimd-rpc/data.water_shortrange | 1331 ----------------- .../lammps/h2o-pimd-rpc/in.water_longrange | 33 - .../lammps/h2o-pimd-rpc/in.water_shortrange | 34 - .../examples/lammps/h2o-pimd-rpc/input.xml | 27 - .../lammps/h2o-pimd-rpc/water_298K.pdb | 650 -------- .../i-pi/examples/lammps/h2o-pimd/data.water | 1331 ----------------- tools/i-pi/examples/lammps/h2o-pimd/in.water | 32 - tools/i-pi/examples/lammps/h2o-pimd/input.xml | 24 - .../examples/lammps/h2o-pimd/water_298K.pdb | 650 -------- tools/i-pi/examples/tutorial/README | 6 - .../examples/tutorial/tutorial-1/our_ref.pdb | 111 -- .../examples/tutorial/tutorial-1/our_ref.xyz | 110 -- .../tutorial/tutorial-1/tutorial-1.xml | 26 - .../tutorial/tutorial-2/tutorial-1_RESTART | 736 --------- .../tutorial/tutorial-2/tutorial-2a.xml | 742 --------- .../tutorial/tutorial-2/tutorial-2b.xml | 33 - .../examples/tutorial/tutorial-3/our_ref.pdb | 174 --- .../tutorial/tutorial-3/tutorial-3_npt.xml | 31 - .../tutorial/tutorial-3/tutorial-3_nvt.xml | 25 - tools/i-pi/i-pi | 60 - tools/i-pi/ipi/README | 14 - tools/i-pi/ipi/__init__.py | 1 - tools/i-pi/ipi/engine/README | 18 - tools/i-pi/ipi/engine/__init__.py | 3 - tools/i-pi/ipi/engine/atoms.py | 269 ---- tools/i-pi/ipi/engine/barostats.py | 450 ------ tools/i-pi/ipi/engine/beads.py | 323 ---- tools/i-pi/ipi/engine/cell.py | 140 -- tools/i-pi/ipi/engine/ensembles.py | 565 ------- tools/i-pi/ipi/engine/forces.py | 781 ---------- tools/i-pi/ipi/engine/initializer.py | 549 ------- tools/i-pi/ipi/engine/normalmodes.py | 400 ----- tools/i-pi/ipi/engine/outputs.py | 378 ----- tools/i-pi/ipi/engine/properties.py | 1273 ---------------- tools/i-pi/ipi/engine/simulation.py | 232 --- tools/i-pi/ipi/engine/thermostats.py | 884 ----------- tools/i-pi/ipi/inputs/README | 24 - tools/i-pi/ipi/inputs/__init__.py | 3 - tools/i-pi/ipi/inputs/atoms.py | 121 -- tools/i-pi/ipi/inputs/barostats.py | 107 -- tools/i-pi/ipi/inputs/beads.py | 137 -- tools/i-pi/ipi/inputs/cell.py | 77 - tools/i-pi/ipi/inputs/ensembles.py | 185 --- tools/i-pi/ipi/inputs/forces.py | 176 --- tools/i-pi/ipi/inputs/initializer.py | 406 ----- tools/i-pi/ipi/inputs/interface.py | 125 -- tools/i-pi/ipi/inputs/normalmodes.py | 84 -- tools/i-pi/ipi/inputs/outputs.py | 323 ---- tools/i-pi/ipi/inputs/prng.py | 101 -- tools/i-pi/ipi/inputs/simulation.py | 193 --- tools/i-pi/ipi/inputs/thermostats.py | 195 --- tools/i-pi/ipi/interfaces/README | 8 - tools/i-pi/ipi/interfaces/__init__.py | 1 - tools/i-pi/ipi/interfaces/sockets.py | 773 ---------- tools/i-pi/ipi/tests/README | 9 - tools/i-pi/ipi/tests/common.py | 96 -- tools/i-pi/ipi/tests/datest.py | 56 - tools/i-pi/ipi/tests/test.pos_0.pdb | 10 - tools/i-pi/ipi/tests/test.pos_0.xyz | 10 - tools/i-pi/ipi/tests/test_contraction.py | 127 -- tools/i-pi/ipi/tests/test_io.py | 96 -- tools/i-pi/ipi/tests/test_runs.py | 24 - tools/i-pi/ipi/utils/README | 21 - tools/i-pi/ipi/utils/__init__.py | 1 - tools/i-pi/ipi/utils/depend.py | 768 ---------- tools/i-pi/ipi/utils/inputvalue.py | 968 ------------ tools/i-pi/ipi/utils/io/README | 12 - tools/i-pi/ipi/utils/io/__init__.py | 1 - tools/i-pi/ipi/utils/io/io_binary.py | 47 - tools/i-pi/ipi/utils/io/io_pdb.py | 173 --- tools/i-pi/ipi/utils/io/io_xml.py | 520 ------- tools/i-pi/ipi/utils/io/io_xyz.py | 145 -- tools/i-pi/ipi/utils/mathtools.py | 343 ----- tools/i-pi/ipi/utils/messages.py | 155 -- tools/i-pi/ipi/utils/nmtransform.py | 283 ---- tools/i-pi/ipi/utils/prng.py | 129 -- tools/i-pi/ipi/utils/softexit.py | 73 - tools/i-pi/ipi/utils/units.py | 358 ----- tools/i-pi/licenses/license_GPL.txt | 675 --------- tools/i-pi/licenses/license_MIT.txt | 21 - tools/i-pi/manual.pdf | Bin 609105 -> 0 bytes 107 files changed, 17 insertions(+), 29480 deletions(-) delete mode 100644 tools/i-pi/.vimrc delete mode 100644 tools/i-pi/MANIFEST.in create mode 100644 tools/i-pi/README.md delete mode 100644 tools/i-pi/README.rst delete mode 100644 tools/i-pi/drivers/LJ.f90 delete mode 100644 tools/i-pi/drivers/Makefile delete mode 100644 tools/i-pi/drivers/README delete mode 100644 tools/i-pi/drivers/SG.f90 delete mode 100644 tools/i-pi/drivers/distance.f90 delete mode 100644 tools/i-pi/drivers/driver.f90 delete mode 100644 tools/i-pi/drivers/sockets.c delete mode 100644 tools/i-pi/examples/lammps/Makefile delete mode 100644 tools/i-pi/examples/lammps/README delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.2/data.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.2/in.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.2/input.xml delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.2/water_298K.pdb delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.4/data.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.4/in.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.4/input.xml delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.4/water_298K.pdb delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.8/data.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.8/in.water delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.8/input.xml delete mode 100644 tools/i-pi/examples/lammps/h2o-piglet.8/water_298K.pdb delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_longrange delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_shortrange delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_longrange delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_shortrange delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/input.xml delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd-rpc/water_298K.pdb delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd/data.water delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd/in.water delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd/input.xml delete mode 100644 tools/i-pi/examples/lammps/h2o-pimd/water_298K.pdb delete mode 100644 tools/i-pi/examples/tutorial/README delete mode 100755 tools/i-pi/examples/tutorial/tutorial-1/our_ref.pdb delete mode 100644 tools/i-pi/examples/tutorial/tutorial-1/our_ref.xyz delete mode 100755 tools/i-pi/examples/tutorial/tutorial-1/tutorial-1.xml delete mode 100755 tools/i-pi/examples/tutorial/tutorial-2/tutorial-1_RESTART delete mode 100755 tools/i-pi/examples/tutorial/tutorial-2/tutorial-2a.xml delete mode 100755 tools/i-pi/examples/tutorial/tutorial-2/tutorial-2b.xml delete mode 100755 tools/i-pi/examples/tutorial/tutorial-3/our_ref.pdb delete mode 100755 tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_npt.xml delete mode 100755 tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_nvt.xml delete mode 100755 tools/i-pi/i-pi delete mode 100644 tools/i-pi/ipi/README delete mode 100644 tools/i-pi/ipi/__init__.py delete mode 100644 tools/i-pi/ipi/engine/README delete mode 100644 tools/i-pi/ipi/engine/__init__.py delete mode 100644 tools/i-pi/ipi/engine/atoms.py delete mode 100644 tools/i-pi/ipi/engine/barostats.py delete mode 100644 tools/i-pi/ipi/engine/beads.py delete mode 100644 tools/i-pi/ipi/engine/cell.py delete mode 100644 tools/i-pi/ipi/engine/ensembles.py delete mode 100644 tools/i-pi/ipi/engine/forces.py delete mode 100644 tools/i-pi/ipi/engine/initializer.py delete mode 100644 tools/i-pi/ipi/engine/normalmodes.py delete mode 100644 tools/i-pi/ipi/engine/outputs.py delete mode 100644 tools/i-pi/ipi/engine/properties.py delete mode 100644 tools/i-pi/ipi/engine/simulation.py delete mode 100644 tools/i-pi/ipi/engine/thermostats.py delete mode 100644 tools/i-pi/ipi/inputs/README delete mode 100644 tools/i-pi/ipi/inputs/__init__.py delete mode 100644 tools/i-pi/ipi/inputs/atoms.py delete mode 100644 tools/i-pi/ipi/inputs/barostats.py delete mode 100644 tools/i-pi/ipi/inputs/beads.py delete mode 100644 tools/i-pi/ipi/inputs/cell.py delete mode 100644 tools/i-pi/ipi/inputs/ensembles.py delete mode 100644 tools/i-pi/ipi/inputs/forces.py delete mode 100644 tools/i-pi/ipi/inputs/initializer.py delete mode 100644 tools/i-pi/ipi/inputs/interface.py delete mode 100644 tools/i-pi/ipi/inputs/normalmodes.py delete mode 100644 tools/i-pi/ipi/inputs/outputs.py delete mode 100644 tools/i-pi/ipi/inputs/prng.py delete mode 100644 tools/i-pi/ipi/inputs/simulation.py delete mode 100644 tools/i-pi/ipi/inputs/thermostats.py delete mode 100644 tools/i-pi/ipi/interfaces/README delete mode 100644 tools/i-pi/ipi/interfaces/__init__.py delete mode 100644 tools/i-pi/ipi/interfaces/sockets.py delete mode 100644 tools/i-pi/ipi/tests/README delete mode 100644 tools/i-pi/ipi/tests/common.py delete mode 100644 tools/i-pi/ipi/tests/datest.py delete mode 100644 tools/i-pi/ipi/tests/test.pos_0.pdb delete mode 100644 tools/i-pi/ipi/tests/test.pos_0.xyz delete mode 100644 tools/i-pi/ipi/tests/test_contraction.py delete mode 100644 tools/i-pi/ipi/tests/test_io.py delete mode 100644 tools/i-pi/ipi/tests/test_runs.py delete mode 100644 tools/i-pi/ipi/utils/README delete mode 100644 tools/i-pi/ipi/utils/__init__.py delete mode 100644 tools/i-pi/ipi/utils/depend.py delete mode 100644 tools/i-pi/ipi/utils/inputvalue.py delete mode 100644 tools/i-pi/ipi/utils/io/README delete mode 100644 tools/i-pi/ipi/utils/io/__init__.py delete mode 100644 tools/i-pi/ipi/utils/io/io_binary.py delete mode 100644 tools/i-pi/ipi/utils/io/io_pdb.py delete mode 100644 tools/i-pi/ipi/utils/io/io_xml.py delete mode 100644 tools/i-pi/ipi/utils/io/io_xyz.py delete mode 100644 tools/i-pi/ipi/utils/mathtools.py delete mode 100644 tools/i-pi/ipi/utils/messages.py delete mode 100644 tools/i-pi/ipi/utils/nmtransform.py delete mode 100644 tools/i-pi/ipi/utils/prng.py delete mode 100644 tools/i-pi/ipi/utils/softexit.py delete mode 100644 tools/i-pi/ipi/utils/units.py delete mode 100644 tools/i-pi/licenses/license_GPL.txt delete mode 100644 tools/i-pi/licenses/license_MIT.txt delete mode 100644 tools/i-pi/manual.pdf diff --git a/tools/i-pi/.vimrc b/tools/i-pi/.vimrc deleted file mode 100644 index fd7d41af27..0000000000 --- a/tools/i-pi/.vimrc +++ /dev/null @@ -1,4 +0,0 @@ -set tabstop=3 -set softtabstop=3 -set shiftwidth=3 -set expandtab diff --git a/tools/i-pi/MANIFEST.in b/tools/i-pi/MANIFEST.in deleted file mode 100644 index 9561fb1061..0000000000 --- a/tools/i-pi/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -include README.rst diff --git a/tools/i-pi/README.md b/tools/i-pi/README.md new file mode 100644 index 0000000000..9fba2eeeb2 --- /dev/null +++ b/tools/i-pi/README.md @@ -0,0 +1,17 @@ +This folder used to contain a bundled version of [i-PI](https://ipi-code.org). +However, the bundled version was not updated and thus had become outdated. + +i-PI is now available via PyPi using the pip package manager at: +https://pypi.org/project/i-PI/ + +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 i-PI +``` + +For further information, please consult the [i-PI home page](https://ipi-code.org). diff --git a/tools/i-pi/README.rst b/tools/i-pi/README.rst deleted file mode 100644 index 8d10b343f8..0000000000 --- a/tools/i-pi/README.rst +++ /dev/null @@ -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) - diff --git a/tools/i-pi/drivers/LJ.f90 b/tools/i-pi/drivers/LJ.f90 deleted file mode 100644 index 8341c64be7..0000000000 --- a/tools/i-pi/drivers/LJ.f90 +++ /dev/null @@ -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 diff --git a/tools/i-pi/drivers/Makefile b/tools/i-pi/drivers/Makefile deleted file mode 100644 index ed0336f689..0000000000 --- a/tools/i-pi/drivers/Makefile +++ /dev/null @@ -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 diff --git a/tools/i-pi/drivers/README b/tools/i-pi/drivers/README deleted file mode 100644 index 563cbce9ce..0000000000 --- a/tools/i-pi/drivers/README +++ /dev/null @@ -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. diff --git a/tools/i-pi/drivers/SG.f90 b/tools/i-pi/drivers/SG.f90 deleted file mode 100644 index bb243b3469..0000000000 --- a/tools/i-pi/drivers/SG.f90 +++ /dev/null @@ -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 diff --git a/tools/i-pi/drivers/distance.f90 b/tools/i-pi/drivers/distance.f90 deleted file mode 100644 index aa9cde3217..0000000000 --- a/tools/i-pi/drivers/distance.f90 +++ /dev/null @@ -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 diff --git a/tools/i-pi/drivers/driver.f90 b/tools/i-pi/drivers/driver.f90 deleted file mode 100644 index 646f1e9add..0000000000 --- a/tools/i-pi/drivers/driver.f90 +++ /dev/null @@ -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 diff --git a/tools/i-pi/drivers/sockets.c b/tools/i-pi/drivers/sockets.c deleted file mode 100644 index 6fda1b64ec..0000000000 --- a/tools/i-pi/drivers/sockets.c +++ /dev/null @@ -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 -#include -#include -#include -#include -#include -#include -#include -#include - -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. - -.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 .. diff --git a/tools/i-pi/examples/lammps/README b/tools/i-pi/examples/lammps/README deleted file mode 100644 index 0bb5a74fa6..0000000000 --- a/tools/i-pi/examples/lammps/README +++ /dev/null @@ -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 - port_no - - 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. diff --git a/tools/i-pi/examples/lammps/h2o-piglet.2/data.water b/tools/i-pi/examples/lammps/h2o-piglet.2/data.water deleted file mode 100644 index 13c75e9933..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.2/data.water +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 1.78 0.2708585 -0.327738785 0.231328959 - -Angle Coeffs - - 1 0.0700 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-piglet.2/in.water b/tools/i-pi/examples/lammps/h2o-piglet.2/in.water deleted file mode 100644 index e810a02a75..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.2/in.water +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-piglet.2/input.xml b/tools/i-pi/examples/lammps/h2o-piglet.2/input.xml deleted file mode 100644 index 1dff8eb519..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.2/input.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - water_298K.pdb - 298 - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] - positions - - 500000 - 32344 - - -
piglet_2
-
-
- - - -[ - 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 -] - - -[ - 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 -] - - - - - 0.1 - 298 - -
diff --git a/tools/i-pi/examples/lammps/h2o-piglet.2/water_298K.pdb b/tools/i-pi/examples/lammps/h2o-piglet.2/water_298K.pdb deleted file mode 100644 index e8509c868e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.2/water_298K.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/lammps/h2o-piglet.4/data.water b/tools/i-pi/examples/lammps/h2o-piglet.4/data.water deleted file mode 100644 index 13c75e9933..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.4/data.water +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 1.78 0.2708585 -0.327738785 0.231328959 - -Angle Coeffs - - 1 0.0700 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-piglet.4/in.water b/tools/i-pi/examples/lammps/h2o-piglet.4/in.water deleted file mode 100644 index c43fe7c15c..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.4/in.water +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-piglet.4/input.xml b/tools/i-pi/examples/lammps/h2o-piglet.4/input.xml deleted file mode 100644 index af3b01a1d3..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.4/input.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - water_298K.pdb - 298 - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] - positions - - 500000 - 32343 - - -
piglet_4
-
-
- - - -[ - 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 -] - - -[ - 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 -] - - - - 0.1 - 298 - -
diff --git a/tools/i-pi/examples/lammps/h2o-piglet.4/water_298K.pdb b/tools/i-pi/examples/lammps/h2o-piglet.4/water_298K.pdb deleted file mode 100644 index e8509c868e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.4/water_298K.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/lammps/h2o-piglet.8/data.water b/tools/i-pi/examples/lammps/h2o-piglet.8/data.water deleted file mode 100644 index 13c75e9933..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.8/data.water +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 1.78 0.2708585 -0.327738785 0.231328959 - -Angle Coeffs - - 1 0.0700 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-piglet.8/in.water b/tools/i-pi/examples/lammps/h2o-piglet.8/in.water deleted file mode 100644 index 9592d112f5..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.8/in.water +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-piglet.8/input.xml b/tools/i-pi/examples/lammps/h2o-piglet.8/input.xml deleted file mode 100644 index ace4d7f3de..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.8/input.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - water_298K.pdb - 298 - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] - positions - - 500000 - 32342 - - -
piglet_8
-
-
- - - -[ - 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 -] - - -[ - 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 -] - - - - - 0.1 - 298 - -
diff --git a/tools/i-pi/examples/lammps/h2o-piglet.8/water_298K.pdb b/tools/i-pi/examples/lammps/h2o-piglet.8/water_298K.pdb deleted file mode 100644 index e8509c868e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-piglet.8/water_298K.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_longrange b/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_longrange deleted file mode 100644 index a08e2d741e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_longrange +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 0 1.78 - -Angle Coeffs - - 1 0 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_shortrange b/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_shortrange deleted file mode 100644 index 13c75e9933..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/data.water_shortrange +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 1.78 0.2708585 -0.327738785 0.231328959 - -Angle Coeffs - - 1 0.0700 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_longrange b/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_longrange deleted file mode 100644 index 0e0e09a5b8..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_longrange +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_shortrange b/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_shortrange deleted file mode 100644 index 6df6d16ee2..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/in.water_shortrange +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/input.xml b/tools/i-pi/examples/lammps/h2o-pimd-rpc/input.xml deleted file mode 100644 index fc7596d097..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/input.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - water_298K.pdb - 298 - - - [ step, time{picosecond}, conserved, temperature{kelvin}, kinetic_cv, potential, pressure_cv{megapascal}] - positions - - 500000 - 32346 - - -
rpc_short
-
- -
rpc_long
-
-
- - - 25 - - 0.25 - 298 - -
diff --git a/tools/i-pi/examples/lammps/h2o-pimd-rpc/water_298K.pdb b/tools/i-pi/examples/lammps/h2o-pimd-rpc/water_298K.pdb deleted file mode 100644 index e8509c868e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd-rpc/water_298K.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/lammps/h2o-pimd/data.water b/tools/i-pi/examples/lammps/h2o-pimd/data.water deleted file mode 100644 index 13c75e9933..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd/data.water +++ /dev/null @@ -1,1331 +0,0 @@ -LAMMPS Description - - 648 atoms - 432 bonds - 216 angles - - 2 atom types - 1 bond types - 1 angle types - - 0 35.233 xlo xhi - 0 35.233 ylo yhi - 0 35.233 zlo zhi - -Masses - - 1 15.9994 - 2 1.0080 - -Bond Coeffs - - 1 1.78 0.2708585 -0.327738785 0.231328959 - -Angle Coeffs - - 1 0.0700 107.400000 - -Atoms - - 1 1 1 -1.1128 3.84600000 5.67200001 1.32300000 - 2 1 2 0.5564 2.97900000 7.05400000 0.85700000 - 3 1 2 0.5564 5.52500001 5.69700001 0.45100000 - 4 2 1 -1.1128 34.55700001 34.34100000 3.07800000 - 5 2 2 0.5564 33.72200001 34.68900000 4.84000001 - 6 2 2 0.5564 36.02900000 33.22000001 3.71100001 - 7 3 1 -1.1128 5.59100000 1.96299999 13.47700000 - 8 3 2 0.5564 7.26500000 1.86400000 13.85100001 - 9 3 2 0.5564 5.00899999 3.55500000 13.91599999 - 10 4 1 -1.1128 1.06000000 2.06100000 21.71800001 - 11 4 2 0.5564 0.75700000 0.26100000 21.82000000 - 12 4 2 0.5564 0.21300001 3.01299999 23.04700000 - 13 5 1 -1.1128 1.20000000 1.33700000 29.00599999 - 14 5 2 0.5564 0.81800000 1.88399999 30.73200000 - 15 5 2 0.5564 2.88300001 1.82500000 29.01100000 - 16 6 1 -1.1128 1.33100001 1.38599999 34.30600001 - 17 6 2 0.5564 2.39200001 2.89799999 34.84600000 - 18 6 2 0.5564 0.81400000 0.53200001 35.83600000 - 19 7 1 -1.1128 31.45100000 10.20100000 0.72599999 - 20 7 2 0.5564 32.28199999 10.87699999 -0.75000000 - 21 7 2 0.5564 30.91999999 11.59399999 1.67700000 - 22 8 1 -1.1128 0.83600000 10.80800001 4.29800000 - 23 8 2 0.5564 0.30500000 10.64300001 2.79300000 - 24 8 2 0.5564 -0.35600001 10.33400000 5.52400000 - 25 9 1 -1.1128 34.38100001 5.97900000 9.19400000 - 26 9 2 0.5564 33.61600000 7.67300000 8.85700000 - 27 9 2 0.5564 35.11500000 5.25999999 7.61800001 - 28 10 1 -1.1128 33.21200000 6.48000000 24.27799999 - 29 10 2 0.5564 31.62400000 6.90800001 23.52100001 - 30 10 2 0.5564 32.54400000 4.99000000 24.98200000 - 31 11 1 -1.1128 1.99200000 9.00199999 26.86300000 - 32 11 2 0.5564 1.85600000 10.17500000 25.57899999 - 33 11 2 0.5564 0.51900000 8.09899999 26.38599999 - 34 12 1 -1.1128 2.05400000 8.66000000 32.51499999 - 35 12 2 0.5564 2.16699999 8.72700000 30.49400000 - 36 12 2 0.5564 2.37400001 10.51300000 33.03799999 - 37 13 1 -1.1128 3.40200000 16.63900001 3.00800000 - 38 13 2 0.5564 4.12700001 15.87200001 4.44600001 - 39 13 2 0.5564 2.90500001 18.33899999 3.15999999 - 40 14 1 -1.1128 4.22200000 15.44400000 8.07200000 - 41 14 2 0.5564 5.21100000 16.75600000 8.29900001 - 42 14 2 0.5564 2.56000000 15.49200001 8.86000000 - 43 15 1 -1.1128 2.83100000 9.24599999 16.48800000 - 44 15 2 0.5564 2.86900001 8.02300001 18.05000000 - 45 15 2 0.5564 3.96000000 8.46700001 15.15400000 - 46 16 1 -1.1128 5.56300000 6.00300000 20.90700000 - 47 16 2 0.5564 4.65300000 4.63800000 21.48000000 - 48 16 2 0.5564 6.40500000 6.20800000 22.52899999 - 49 17 1 -1.1128 2.08700001 13.37000000 22.91299999 - 50 17 2 0.5564 2.83200000 14.80400001 23.42200000 - 51 17 2 0.5564 1.43400000 13.50900000 21.19599999 - 52 18 1 -1.1128 3.36900000 17.88600000 25.10900001 - 53 18 2 0.5564 3.65500000 17.20000000 26.76599999 - 54 18 2 0.5564 4.77200001 18.97699999 24.49999999 - 55 19 1 -1.1128 34.76400000 20.80300000 0.94800001 - 56 19 2 0.5564 35.20999999 21.26700001 2.81599999 - 57 19 2 0.5564 35.96200001 21.72599999 0.13099999 - 58 20 1 -1.1128 2.83600000 24.17799999 15.22900000 - 59 20 2 0.5564 2.79500000 22.34599999 14.87600001 - 60 20 2 0.5564 2.41399999 24.11500000 17.13000001 - 61 21 1 -1.1128 33.00000000 24.48100000 15.23000000 - 62 21 2 0.5564 34.63999999 24.80400001 15.01299999 - 63 21 2 0.5564 32.40100000 25.76400000 14.29500001 - 64 22 1 -1.1128 0.40399999 26.77900001 23.39999999 - 65 22 2 0.5564 1.35300001 27.24800000 24.98700001 - 66 22 2 0.5564 1.54600001 28.05000000 22.31700001 - 67 23 1 -1.1128 34.22200000 21.38000000 25.41799999 - 68 23 2 0.5564 35.66899999 20.15100000 25.31700001 - 69 23 2 0.5564 32.96000000 21.18000000 23.99200000 - 70 24 1 -1.1128 33.25900000 17.43800000 32.48000000 - 71 24 2 0.5564 33.31399999 18.78200000 33.88300001 - 72 24 2 0.5564 32.74300001 18.18100001 30.87100000 - 73 25 1 -1.1128 4.46300000 21.97900000 3.93600000 - 74 25 2 0.5564 5.85600000 23.08400001 3.39999999 - 75 25 2 0.5564 3.98600000 22.18000000 5.60200000 - 76 26 1 -1.1128 6.25800000 25.85100001 8.52000000 - 77 26 2 0.5564 5.76700000 27.69300001 8.47600000 - 78 26 2 0.5564 7.20200001 25.50600000 10.18600000 - 79 27 1 -1.1128 0.60099999 29.73699999 12.74700001 - 80 27 2 0.5564 -0.68500000 30.84200000 12.34999999 - 81 27 2 0.5564 1.33600000 30.71600000 14.03099999 - 82 28 1 -1.1128 7.56300000 28.19100001 24.33300000 - 83 28 2 0.5564 9.20100000 28.82800000 24.68400000 - 84 28 2 0.5564 7.38100001 27.62100000 22.79900000 - 85 29 1 -1.1128 3.65300000 27.10900001 27.77200001 - 86 29 2 0.5564 5.12600000 27.01500000 26.77200001 - 87 29 2 0.5564 3.03099999 28.75600000 27.69800000 - 88 30 1 -1.1128 2.59600001 23.99100001 32.47600000 - 89 30 2 0.5564 2.87900000 24.79099999 30.85899999 - 90 30 2 0.5564 4.00300000 22.91299999 32.70099999 - 91 31 1 -1.1128 3.08300000 31.31700001 3.64399999 - 92 31 2 0.5564 4.13300000 30.58900001 2.53900001 - 93 31 2 0.5564 4.21800000 32.17300001 5.03700001 - 94 32 1 -1.1128 4.66100001 30.55500000 9.36799999 - 95 32 2 0.5564 3.18400001 29.84300000 10.13200000 - 96 32 2 0.5564 4.35800000 32.44800000 9.12600000 - 97 33 1 -1.1128 3.46499999 32.53700000 15.77800000 - 98 33 2 0.5564 5.07200000 31.81899999 15.90300000 - 99 33 2 0.5564 4.05500001 34.25699999 15.28400000 - 100 34 1 -1.1128 4.21500000 29.15299999 20.31700001 - 101 34 2 0.5564 3.65799999 30.17600000 18.84200000 - 102 34 2 0.5564 4.95899999 30.29100000 21.44900001 - 103 35 1 -1.1128 1.12600000 31.33300000 28.76800001 - 104 35 2 0.5564 2.39500000 31.12399999 29.92500000 - 105 35 2 0.5564 0.76800001 33.09199999 28.89799999 - 106 36 1 -1.1128 4.88100000 32.61600000 32.30200000 - 107 36 2 0.5564 6.58800000 32.91100000 31.72500001 - 108 36 2 0.5564 4.48599999 34.03700001 33.24900001 - 109 37 1 -1.1128 8.96200001 5.55600000 0.15100000 - 110 37 2 0.5564 9.65200000 6.99100001 0.85899999 - 111 37 2 0.5564 9.17300001 4.47700000 1.64500000 - 112 38 1 -1.1128 1.83300001 3.51799999 5.67900001 - 113 38 2 0.5564 2.88900000 2.73100000 6.78800000 - 114 38 2 0.5564 2.78900000 4.18700000 4.14700000 - 115 39 1 -1.1128 10.51000001 34.72599999 13.07300001 - 116 39 2 0.5564 11.91999999 34.11800000 11.91900001 - 117 39 2 0.5564 11.29500001 34.96800000 14.74100000 - 118 40 1 -1.1128 7.21200000 0.04199999 22.45399999 - 119 40 2 0.5564 6.92400000 0.47000000 24.17200000 - 120 40 2 0.5564 8.31900000 1.22799999 21.65300000 - 121 41 1 -1.1128 6.36500000 2.01000000 27.54400000 - 122 41 2 0.5564 5.95400000 3.58500000 26.85199999 - 123 41 2 0.5564 7.75800001 2.54900000 28.69600000 - 124 42 1 -1.1128 10.83300001 3.14000000 30.78699999 - 125 42 2 0.5564 12.69700001 2.97500000 30.86700000 - 126 42 2 0.5564 10.38899999 3.70000001 32.40399999 - 127 43 1 -1.1128 8.68400000 9.34200001 3.91200001 - 128 43 2 0.5564 6.98500000 9.25600001 4.77299999 - 129 43 2 0.5564 8.68400000 10.80899999 3.01100000 - 130 44 1 -1.1128 4.87299999 9.91900001 7.70700000 - 131 44 2 0.5564 3.69800000 9.77100000 6.19400000 - 132 44 2 0.5564 5.04700000 11.96100000 7.62400000 - 133 45 1 -1.1128 10.03099999 5.01800000 9.69900000 - 134 45 2 0.5564 9.67500001 3.38199999 10.34000000 - 135 45 2 0.5564 9.13200000 5.98700001 10.82500000 - 136 46 1 -1.1128 11.24599999 3.91800000 21.92900000 - 137 46 2 0.5564 12.61400001 2.77000000 22.34100000 - 138 46 2 0.5564 12.07300001 5.68600001 21.49699999 - 139 47 1 -1.1128 6.82500000 7.16400000 25.70799999 - 140 47 2 0.5564 8.03600000 8.37400001 25.98000001 - 141 47 2 0.5564 5.20600001 7.90000000 25.89099999 - 142 48 1 -1.1128 10.17099999 12.81100001 0.29500001 - 143 48 2 0.5564 10.03300000 12.81800000 -1.60900000 - 144 48 2 0.5564 9.87999999 14.49200001 0.48000000 - 145 49 1 -1.1128 8.19000000 17.40200000 1.25299999 - 146 49 2 0.5564 9.47199999 18.53100000 1.25299999 - 147 49 2 0.5564 6.35100000 17.81700000 1.56800001 - 148 50 1 -1.1128 11.23300000 16.18800001 8.29900001 - 149 50 2 0.5564 10.29100000 17.68900000 8.16600001 - 150 50 2 0.5564 12.76800001 17.12300001 8.73299999 - 151 51 1 -1.1128 6.38599999 8.00199999 12.84600000 - 152 51 2 0.5564 7.70099999 8.89600000 13.65500000 - 153 51 2 0.5564 5.59100000 8.87699999 11.51900000 - 154 52 1 -1.1128 8.18400001 10.41900000 18.84799999 - 155 52 2 0.5564 9.49800000 9.43400000 19.90500001 - 156 52 2 0.5564 6.88200000 9.02699999 18.94800001 - 157 53 1 -1.1128 10.80600000 14.43100000 21.32799999 - 158 53 2 0.5564 9.17700001 13.53100000 20.67000000 - 159 53 2 0.5564 11.34400000 15.69600000 20.44800000 - 160 54 1 -1.1128 9.23700000 13.92800000 30.34100000 - 161 54 2 0.5564 10.77900001 14.83900000 30.52199999 - 162 54 2 0.5564 9.96500000 13.19199999 28.89900000 - 163 55 1 -1.1128 10.91800000 21.70700000 1.86400000 - 164 55 2 0.5564 10.28000000 23.44900001 2.27900000 - 165 55 2 0.5564 12.70799999 21.45600000 1.74900000 - 166 56 1 -1.1128 9.35300001 16.12500000 13.92699999 - 167 56 2 0.5564 9.93799999 17.59399999 14.61800001 - 168 56 2 0.5564 9.51799999 16.36000001 12.24400000 - 169 57 1 -1.1128 10.37099999 11.10700000 14.26800000 - 170 57 2 0.5564 9.64399999 10.40600001 15.85899999 - 171 57 2 0.5564 9.43400000 12.52300000 14.11699999 - 172 58 1 -1.1128 3.35100000 22.76899999 20.19599999 - 173 58 2 0.5564 2.05500001 23.68600001 21.50300001 - 174 58 2 0.5564 2.45200000 21.40100000 19.41300000 - 175 59 1 -1.1128 6.83600000 21.32900000 23.19899999 - 176 59 2 0.5564 8.24900001 20.84799999 22.32000001 - 177 59 2 0.5564 5.66800001 21.84099999 21.88600000 - 178 60 1 -1.1128 4.60399999 15.64900000 30.04300000 - 179 60 2 0.5564 6.45300001 15.21699999 30.20700000 - 180 60 2 0.5564 3.82200001 14.76199999 31.56200000 - 181 61 1 -1.1128 7.12500000 19.97600001 9.42100001 - 182 61 2 0.5564 5.91800000 20.45300001 10.72999999 - 183 61 2 0.5564 8.09899999 21.49600001 9.49100000 - 184 62 1 -1.1128 9.06299999 25.91200001 13.18600000 - 185 62 2 0.5564 10.34999999 26.57199999 12.36700001 - 186 62 2 0.5564 9.67999999 24.36700001 13.69700001 - 187 63 1 -1.1128 8.02200000 22.34299999 17.04199999 - 188 63 2 0.5564 9.14400000 23.36700001 18.07399999 - 189 63 2 0.5564 6.56200000 23.46200000 16.85199999 - 190 64 1 -1.1128 10.76199999 26.28499999 19.96299999 - 191 64 2 0.5564 11.03600000 27.96599999 20.53800000 - 192 64 2 0.5564 11.07800000 25.40100000 21.45600000 - 193 65 1 -1.1128 9.15800000 22.90199999 28.39100000 - 194 65 2 0.5564 8.21900000 23.52800001 27.08499999 - 195 65 2 0.5564 8.08900000 21.76000000 29.50900000 - 196 66 1 -1.1128 6.21900000 20.15800000 31.92100000 - 197 66 2 0.5564 5.63500000 18.51099999 31.16100000 - 198 66 2 0.5564 7.53000000 19.62400000 33.07100000 - 199 67 1 -1.1128 11.19100001 31.50900000 2.61700000 - 200 67 2 0.5564 10.46000001 32.21399999 4.10800000 - 201 67 2 0.5564 13.17600000 31.75099999 2.57700000 - 202 68 1 -1.1128 4.74799999 0.05500001 8.60500000 - 203 68 2 0.5564 5.38000000 0.51700000 10.18300000 - 204 68 2 0.5564 6.05000000 -0.30600001 7.48000000 - 205 69 1 -1.1128 8.69500000 30.80899999 15.73100000 - 206 69 2 0.5564 9.18899999 32.10300000 14.49500000 - 207 69 2 0.5564 8.44699999 29.06900000 14.86800000 - 208 70 1 -1.1128 10.12799999 31.40200000 20.76599999 - 209 70 2 0.5564 9.45600000 30.90500001 19.15500000 - 210 70 2 0.5564 9.01999999 32.73100000 21.41500000 - 211 71 1 -1.1128 12.23800001 30.16200000 25.83699999 - 212 71 2 0.5564 11.41799999 30.90800001 27.10999999 - 213 71 2 0.5564 12.39600001 31.33100001 24.67800000 - 214 72 1 -1.1128 10.39500000 32.53700000 30.62400000 - 215 72 2 0.5564 11.04199999 34.33899999 30.75099999 - 216 72 2 0.5564 11.37800001 31.48599999 31.53800000 - 217 73 1 -1.1128 10.43800000 3.62599999 5.08700001 - 218 73 2 0.5564 12.43500001 4.08200000 5.13600000 - 219 73 2 0.5564 9.82200001 4.28400000 6.68100000 - 220 74 1 -1.1128 14.76199999 3.40100000 13.77599999 - 221 74 2 0.5564 16.51799999 3.82400000 13.37600000 - 222 74 2 0.5564 13.75200000 4.75700000 12.96400000 - 223 75 1 -1.1128 12.38199999 1.01200001 17.64300001 - 224 75 2 0.5564 13.34599999 1.99700000 16.44400000 - 225 75 2 0.5564 11.93100000 2.13300000 18.99800001 - 226 76 1 -1.1128 15.27799999 1.29300000 24.55900000 - 227 76 2 0.5564 16.07100000 0.94600000 26.36500000 - 228 76 2 0.5564 15.79399999 0.19899999 23.49900000 - 229 77 1 -1.1128 22.22600000 31.62700000 24.71199999 - 230 77 2 0.5564 23.33800001 32.59500000 23.87600001 - 231 77 2 0.5564 22.16100000 30.05300000 24.13200000 - 232 78 1 -1.1128 15.63999999 1.84700001 32.71700000 - 233 78 2 0.5564 17.48800000 2.47300000 31.87400000 - 234 78 2 0.5564 16.40300001 0.86900001 34.26700001 - 235 79 1 -1.1128 14.85800001 10.19899999 2.75400001 - 236 79 2 0.5564 13.36000001 10.71199999 2.28199999 - 237 79 2 0.5564 14.56000000 9.31600000 4.55900000 - 238 80 1 -1.1128 15.71700000 8.46900000 10.73900000 - 239 80 2 0.5564 17.32300000 9.58100000 10.87500000 - 240 80 2 0.5564 14.57400000 9.63100000 10.22099999 - 241 81 1 -1.1128 15.24800000 10.39800000 16.52500001 - 242 81 2 0.5564 16.32400001 9.18100001 16.14899999 - 243 81 2 0.5564 14.17200000 10.48800000 15.09800001 - 244 82 1 -1.1128 13.22600000 8.43800000 20.80100001 - 245 82 2 0.5564 14.04300000 8.99600000 19.29500001 - 246 82 2 0.5564 14.66100001 7.80200000 22.09300000 - 247 83 1 -1.1128 10.17300001 10.96100000 25.87500000 - 248 83 2 0.5564 11.47700000 10.22300000 26.94000000 - 249 83 2 0.5564 11.26900000 10.73800000 24.34299999 - 250 84 1 -1.1128 12.79200000 7.73699999 29.17300001 - 251 84 2 0.5564 12.19899999 6.03799999 29.47499999 - 252 84 2 0.5564 14.42700000 7.44999999 29.61700000 - 253 85 1 -1.1128 15.18000000 19.49800000 3.57800000 - 254 85 2 0.5564 14.88300001 17.59600001 4.08000001 - 255 85 2 0.5564 16.75400001 19.57899999 2.62599999 - 256 86 1 -1.1128 12.51700000 11.09300000 7.70099999 - 257 86 2 0.5564 12.22400001 12.77800000 7.55500000 - 258 86 2 0.5564 11.15000000 10.39299999 7.05700000 - 259 87 1 -1.1128 16.26600000 16.27099999 10.75800001 - 260 87 2 0.5564 16.50700001 15.79500000 12.76800001 - 261 87 2 0.5564 17.72500001 16.97699999 10.29200001 - 262 88 1 -1.1128 14.06900000 18.39900001 18.89700000 - 263 88 2 0.5564 15.51300000 17.52300000 18.15500000 - 264 88 2 0.5564 14.95800001 18.70900000 20.67300000 - 265 89 1 -1.1128 14.09899999 15.48000000 25.51000001 - 266 89 2 0.5564 13.69800000 16.87200001 26.93799999 - 267 89 2 0.5564 12.56700000 15.37900000 24.44400000 - 268 90 1 -1.1128 13.30900000 17.57400000 30.29200001 - 269 90 2 0.5564 14.93700001 16.93399999 30.81000000 - 270 90 2 0.5564 13.96900001 19.49400000 30.01200001 - 271 91 1 -1.1128 18.37099999 23.25699999 0.92500000 - 272 91 2 0.5564 19.47899999 23.48000000 2.32099999 - 273 91 2 0.5564 19.08700001 24.32499999 -0.36900000 - 274 92 1 -1.1128 12.10000000 21.72999999 11.35500000 - 275 92 2 0.5564 13.14100001 22.28700000 12.74300001 - 276 92 2 0.5564 13.46700001 22.23600000 10.24400000 - 277 93 1 -1.1128 12.16300001 23.29000000 23.59699999 - 278 93 2 0.5564 11.32400001 22.73600001 24.94900000 - 279 93 2 0.5564 13.88200000 22.87200001 23.84000001 - 280 94 1 -1.1128 20.17300001 26.76100001 22.62800000 - 281 94 2 0.5564 20.20600001 26.53200001 20.79200000 - 282 94 2 0.5564 21.55600000 25.74200000 23.38899999 - 283 95 1 -1.1128 16.70099999 21.16500000 22.60500000 - 284 95 2 0.5564 18.02800000 20.68600001 23.84799999 - 285 95 2 0.5564 17.10400000 22.86599999 21.94900000 - 286 96 1 -1.1128 11.39100000 26.46099999 33.70499999 - 287 96 2 0.5564 9.84099999 27.19199999 34.04800001 - 288 96 2 0.5564 11.77599999 25.53999999 35.24300000 - 289 97 1 -1.1128 9.89799999 25.98900000 4.55300001 - 290 97 2 0.5564 8.90199999 26.13099999 6.03900000 - 291 97 2 0.5564 10.28700000 27.80600000 4.37600000 - 292 98 1 -1.1128 14.30800000 26.96000000 10.87699999 - 293 98 2 0.5564 15.30200000 27.40500000 12.17300001 - 294 98 2 0.5564 15.46300000 26.15100000 9.63299999 - 295 99 1 -1.1128 13.43300000 22.96000000 16.90400000 - 296 99 2 0.5564 13.40900000 24.13099999 18.13200000 - 297 99 2 0.5564 13.62400000 21.19100001 17.52000000 - 298 100 1 -1.1128 16.40900000 26.76800001 26.87500000 - 299 100 2 0.5564 17.58999999 26.98700001 25.43100000 - 300 100 2 0.5564 14.75099999 27.70300000 26.23000000 - 301 101 1 -1.1128 14.40500000 22.73299999 29.89200000 - 302 101 2 0.5564 15.42300000 23.07900000 28.49400000 - 303 101 2 0.5564 12.82600001 23.25900000 29.41600000 - 304 102 1 -1.1128 6.90500001 29.40800000 0.74900000 - 305 102 2 0.5564 8.42800001 30.48300000 1.56700000 - 306 102 2 0.5564 6.35300001 30.81400000 -0.44400000 - 307 103 1 -1.1128 9.18899999 34.15900001 6.50900000 - 308 103 2 0.5564 10.19800000 34.19300000 8.00199999 - 309 103 2 0.5564 9.89000001 35.69200000 5.78500000 - 310 104 1 -1.1128 14.25600001 32.31600000 9.36900000 - 311 104 2 0.5564 15.73299999 32.86700000 9.48599999 - 312 104 2 0.5564 14.75400001 30.67000000 10.09000000 - 313 105 1 -1.1128 14.71400000 30.84099999 16.51600000 - 314 105 2 0.5564 13.74799999 29.55099999 17.27900000 - 315 105 2 0.5564 13.21800000 31.93300001 16.61400001 - 316 106 1 -1.1128 18.40900000 33.64100000 20.61100001 - 317 106 2 0.5564 19.60099999 32.27400001 21.11500000 - 318 106 2 0.5564 17.36000001 32.65500000 19.51799999 - 319 107 1 -1.1128 16.06200001 28.63800000 32.20700000 - 320 107 2 0.5564 14.64800000 27.95800001 33.25299999 - 321 107 2 0.5564 15.75200000 28.01400000 30.52199999 - 322 108 1 -1.1128 16.20000000 30.89499999 1.47300000 - 323 108 2 0.5564 16.62599999 29.96800000 -0.13000001 - 324 108 2 0.5564 17.16699999 29.83300001 2.92699999 - 325 109 1 -1.1128 20.27799999 3.52899999 6.04800001 - 326 109 2 0.5564 20.97699999 3.61100001 4.57500001 - 327 109 2 0.5564 21.31200000 4.51300000 7.25100000 - 328 110 1 -1.1128 23.07900000 5.77800000 10.40800000 - 329 110 2 0.5564 24.65000001 6.25900000 10.83800000 - 330 110 2 0.5564 22.34200001 7.60900000 10.17799999 - 331 111 1 -1.1128 19.58100000 2.03099999 12.10999999 - 332 111 2 0.5564 19.03900000 1.08200000 10.44000000 - 333 111 2 0.5564 21.14100001 2.99100001 11.85100001 - 334 112 1 -1.1128 22.00500001 3.22300000 23.17799999 - 335 112 2 0.5564 21.42899999 4.09000000 24.55399999 - 336 112 2 0.5564 20.65400001 1.79099999 22.71100001 - 337 113 1 -1.1128 16.63000000 6.42200000 23.79200000 - 338 113 2 0.5564 16.21900000 4.80400001 24.40600001 - 339 113 2 0.5564 17.06600001 7.12799999 25.28199999 - 340 114 1 -1.1128 21.67599999 5.56400001 28.15800000 - 341 114 2 0.5564 20.65799999 6.71700000 29.18499999 - 342 114 2 0.5564 23.41300000 5.82800000 28.99600000 - 343 115 1 -1.1128 15.25699999 5.26500000 5.62599999 - 344 115 2 0.5564 16.91400000 4.51900000 5.48999999 - 345 115 2 0.5564 15.14400000 6.15000000 6.97200000 - 346 116 1 -1.1128 20.13700000 11.08200000 10.43700000 - 347 116 2 0.5564 20.02100000 10.94700000 8.73299999 - 348 116 2 0.5564 21.02500000 12.55500000 10.85300000 - 349 117 1 -1.1128 23.08900000 14.62700000 12.43700000 - 350 117 2 0.5564 24.71600000 15.25400000 12.73600001 - 351 117 2 0.5564 23.28400000 13.22799999 13.65300000 - 352 118 1 -1.1128 24.08300000 12.64900000 22.56600000 - 353 118 2 0.5564 22.39700000 12.66300000 23.04199999 - 354 118 2 0.5564 24.90100001 13.85100001 23.56499999 - 355 119 1 -1.1128 17.86500001 7.90899999 30.03600000 - 356 119 2 0.5564 17.50900000 8.04499999 31.98200000 - 357 119 2 0.5564 18.07800000 9.58200001 29.31799999 - 358 120 1 -1.1128 18.82400000 8.48599999 0.10400000 - 359 120 2 0.5564 19.99700000 10.19100001 -0.05700000 - 360 120 2 0.5564 17.07700001 8.99800001 0.77900001 - 361 121 1 -1.1128 20.12200000 9.14300000 5.34299999 - 362 121 2 0.5564 19.37300000 8.81899999 3.82100000 - 363 121 2 0.5564 21.99800001 8.77599999 5.12799999 - 364 122 1 -1.1128 16.41300000 14.45900000 5.85499999 - 365 122 2 0.5564 15.53599999 13.00700000 5.23899999 - 366 122 2 0.5564 16.00599999 14.72500001 7.73699999 - 367 123 1 -1.1128 17.56099999 15.06600001 15.65400001 - 368 123 2 0.5564 17.57500001 13.39800000 16.05500001 - 369 123 2 0.5564 18.97800000 15.82800000 16.39999999 - 370 124 1 -1.1128 26.37400001 17.04700000 24.81700000 - 371 124 2 0.5564 27.98300000 17.09800001 25.63200001 - 372 124 2 0.5564 25.62900001 18.75099999 24.91900001 - 373 125 1 -1.1128 19.78400000 12.96000000 28.70600000 - 374 125 2 0.5564 21.66199999 13.05500001 28.87100000 - 375 125 2 0.5564 19.54500000 14.06999999 27.14300000 - 376 126 1 -1.1128 17.89099999 16.73299999 32.49900000 - 377 126 2 0.5564 18.32700000 15.24000000 31.27700001 - 378 126 2 0.5564 18.63299999 18.33500001 31.69300001 - 379 127 1 -1.1128 23.73299999 23.02399999 1.66300000 - 380 127 2 0.5564 24.80000000 24.05199999 2.77599999 - 381 127 2 0.5564 24.69300001 22.61800001 0.19800000 - 382 128 1 -1.1128 20.78900000 18.44000000 9.44299999 - 383 128 2 0.5564 20.76599999 17.25699999 7.88100000 - 384 128 2 0.5564 21.89600000 17.34500000 10.38500001 - 385 129 1 -1.1128 21.57400000 17.49299999 17.83800000 - 386 129 2 0.5564 20.59699999 18.95500001 17.21800000 - 387 129 2 0.5564 22.53800000 16.87400000 16.25100000 - 388 130 1 -1.1128 19.16800000 14.74799999 24.13099999 - 389 130 2 0.5564 19.71100001 16.39000000 23.71199999 - 390 130 2 0.5564 17.42899999 14.69500000 24.40300001 - 391 131 1 -1.1128 22.14899999 20.19800000 24.97699999 - 392 131 2 0.5564 21.63900001 20.92400000 26.48599999 - 393 131 2 0.5564 22.65600000 21.65700001 24.41099999 - 394 132 1 -1.1128 20.56499999 20.79200000 29.60000001 - 395 132 2 0.5564 22.26399999 20.40900000 30.21399999 - 396 132 2 0.5564 20.54800000 22.40800000 30.59699999 - 397 133 1 -1.1128 20.80200000 26.54699999 9.61499999 - 398 133 2 0.5564 20.09899999 27.98399999 8.33800001 - 399 133 2 0.5564 21.27700001 27.53900001 11.32499999 - 400 134 1 -1.1128 16.28300000 23.58900001 7.77900001 - 401 134 2 0.5564 16.09300000 21.97300001 6.71199999 - 402 134 2 0.5564 17.90100001 22.97100000 8.15400000 - 403 135 1 -1.1128 18.46900000 29.79799999 13.56800001 - 404 135 2 0.5564 19.71199999 31.21600000 13.50600000 - 405 135 2 0.5564 16.87200001 30.34299999 14.39600001 - 406 136 1 -1.1128 18.79000001 21.71199999 16.06000000 - 407 136 2 0.5564 19.87800000 23.09000000 16.48500001 - 408 136 2 0.5564 17.20100000 22.32600000 15.81899999 - 409 137 1 -1.1128 21.74700001 26.08400001 16.34900001 - 410 137 2 0.5564 20.78300001 27.02100000 15.29999999 - 411 137 2 0.5564 22.70499999 27.32799999 17.20600001 - 412 138 1 -1.1128 20.76899999 26.21100000 32.05000000 - 413 138 2 0.5564 21.48800000 27.40399999 33.32799999 - 414 138 2 0.5564 18.98900000 26.71000000 32.14500001 - 415 139 1 -1.1128 19.82000000 29.18100001 5.55900000 - 416 139 2 0.5564 20.99100001 29.50900000 4.10900001 - 417 139 2 0.5564 19.43100000 31.01800000 6.22099999 - 418 140 1 -1.1128 19.24000000 33.86700000 7.99300000 - 419 140 2 0.5564 19.10700000 35.03900000 6.60399999 - 420 140 2 0.5564 20.69700001 33.67100000 9.06299999 - 421 141 1 -1.1128 22.51099999 34.97600001 15.79300000 - 422 141 2 0.5564 23.71600000 36.16300001 16.60300000 - 423 141 2 0.5564 21.69900000 36.15000000 14.46700001 - 424 142 1 -1.1128 22.62199999 30.28400000 19.06900000 - 425 142 2 0.5564 22.04899999 31.35100000 17.72500001 - 426 142 2 0.5564 24.41099999 30.77299999 19.57599999 - 427 143 1 -1.1128 18.63900001 33.61100001 28.36900000 - 428 143 2 0.5564 18.22600000 32.15900001 29.10300000 - 429 143 2 0.5564 19.90600000 33.00800000 27.15800000 - 430 144 1 -1.1128 22.52000000 1.32499999 31.92600001 - 431 144 2 0.5564 22.80300000 2.66800001 30.79600000 - 432 144 2 0.5564 21.04499999 0.42499999 31.12200000 - 433 145 1 -1.1128 21.75400001 3.78900000 1.15900001 - 434 145 2 0.5564 22.08499999 2.78500000 -0.18000000 - 435 145 2 0.5564 20.85000000 5.17500000 0.61000000 - 436 146 1 -1.1128 28.45699999 5.53900001 12.13300000 - 437 146 2 0.5564 29.48900001 4.39000000 11.18200000 - 438 146 2 0.5564 29.16100000 7.13099999 12.58700000 - 439 147 1 -1.1128 22.49500000 5.96599999 17.32400001 - 440 147 2 0.5564 24.37700000 5.37900000 17.39299999 - 441 147 2 0.5564 21.90600000 5.49100000 18.85700000 - 442 148 1 -1.1128 28.12799999 3.30400000 22.28700000 - 443 148 2 0.5564 28.12300001 2.99899999 20.49100000 - 444 148 2 0.5564 26.53299999 3.35500000 22.87600001 - 445 149 1 -1.1128 28.37800001 10.45500000 27.26600000 - 446 149 2 0.5564 30.01900001 10.29200001 28.05100000 - 447 149 2 0.5564 28.63500000 10.03900000 25.46300000 - 448 150 1 -1.1128 27.03099999 8.35300001 34.80600000 - 449 150 2 0.5564 26.11600001 9.98399999 34.57100001 - 450 150 2 0.5564 28.68500000 8.95100001 34.73900000 - 451 151 1 -1.1128 24.95100001 8.15999999 4.45399999 - 452 151 2 0.5564 25.93000001 9.61600000 5.15999999 - 453 151 2 0.5564 25.94700000 7.99400001 2.72400000 - 454 152 1 -1.1128 26.93700001 12.43599999 6.86900001 - 455 152 2 0.5564 25.49200001 13.28400000 6.70799999 - 456 152 2 0.5564 27.68900000 13.33199999 8.26600000 - 457 153 1 -1.1128 23.36500000 11.21399999 16.93300001 - 458 153 2 0.5564 22.24700000 9.74399999 16.78900000 - 459 153 2 0.5564 23.26399999 12.03500000 18.53900001 - 460 154 1 -1.1128 28.32099999 8.75900000 22.15800000 - 461 154 2 0.5564 27.66199999 6.89499999 22.48200001 - 462 154 2 0.5564 26.97100000 9.71000000 21.90199999 - 463 155 1 -1.1128 27.07100000 6.10900001 29.55500000 - 464 155 2 0.5564 27.59100000 7.66300000 28.85700000 - 465 155 2 0.5564 27.30400000 6.32000001 31.26100000 - 466 156 1 -1.1128 22.47400000 11.70400001 34.63999999 - 467 156 2 0.5564 22.75200000 13.30400000 35.58400000 - 468 156 2 0.5564 22.84000001 12.09000000 33.03000001 - 469 157 1 -1.1128 21.65600000 14.97100000 5.61499999 - 470 157 2 0.5564 21.68999999 15.86000000 3.97699999 - 471 157 2 0.5564 19.96400000 14.22500000 5.77400000 - 472 158 1 -1.1128 28.53900001 21.49200001 9.82000000 - 473 158 2 0.5564 27.28800001 22.18100001 8.68800000 - 474 158 2 0.5564 28.06500000 22.42000000 11.60200000 - 475 159 1 -1.1128 28.36399999 16.01999999 11.10900001 - 476 159 2 0.5564 30.03300000 16.64900000 12.08900000 - 477 159 2 0.5564 28.45600000 17.44000000 10.08200000 - 478 160 1 -1.1128 0.05400000 13.68600001 18.10300000 - 479 160 2 0.5564 -1.71400000 12.92800000 18.84099999 - 480 160 2 0.5564 1.00800000 12.42899999 17.38300000 - 481 161 1 -1.1128 24.63600001 12.89400001 29.95700000 - 482 161 2 0.5564 25.90600000 13.91400000 31.18300000 - 483 161 2 0.5564 25.64100000 11.60900000 29.16200000 - 484 162 1 -1.1128 21.54800000 17.25000000 0.74900000 - 485 162 2 0.5564 21.84300000 19.02600000 0.90500001 - 486 162 2 0.5564 20.38500001 16.71600000 -0.69700001 - 487 163 1 -1.1128 26.09499999 27.27400001 4.52000000 - 488 163 2 0.5564 27.88900000 26.45800000 4.50500000 - 489 163 2 0.5564 25.64800000 26.96999999 6.16500000 - 490 164 1 -1.1128 23.61000000 22.51499999 8.00800000 - 491 164 2 0.5564 22.65300000 21.18700000 8.73900000 - 492 164 2 0.5564 22.28600000 24.09499999 8.44400000 - 493 165 1 -1.1128 27.35500000 18.92900000 18.18000000 - 494 165 2 0.5564 27.20000000 20.34900001 17.15500000 - 495 165 2 0.5564 25.57899999 18.32200000 18.77000000 - 496 166 1 -1.1128 26.76500001 23.63299999 14.44400000 - 497 166 2 0.5564 27.44100000 25.29800000 13.65099999 - 498 166 2 0.5564 25.08600000 24.25600001 14.74900000 - 499 167 1 -1.1128 31.47800001 20.76899999 20.98600000 - 500 167 2 0.5564 30.44000000 22.50900000 21.13499999 - 501 167 2 0.5564 30.56700000 19.65600000 20.04300000 - 502 168 1 -1.1128 24.81199999 20.41200000 32.66800001 - 503 168 2 0.5564 26.24199999 21.47800001 31.87400000 - 504 168 2 0.5564 25.78699999 19.02300001 33.15800000 - 505 169 1 -1.1128 22.10500001 29.07600000 0.92800000 - 506 169 2 0.5564 23.29599999 27.92299999 1.73900000 - 507 169 2 0.5564 22.62300000 30.99400001 0.88200000 - 508 170 1 -1.1128 29.57199999 31.25600001 8.62599999 - 509 170 2 0.5564 30.79500000 30.20299999 7.73600001 - 510 170 2 0.5564 28.27700001 31.51900000 7.25999999 - 511 171 1 -1.1128 31.81700000 34.84300000 18.28300000 - 512 171 2 0.5564 32.43800000 34.38899999 16.47400000 - 513 171 2 0.5564 32.74300001 36.42200000 18.34100000 - 514 172 1 -1.1128 27.91500001 25.60099999 19.03300000 - 515 172 2 0.5564 29.35800000 26.56099999 19.19000000 - 516 172 2 0.5564 28.14800001 24.42899999 17.53000000 - 517 173 1 -1.1128 24.54800000 24.65400001 24.02500000 - 518 173 2 0.5564 25.52800001 25.63500000 22.82400000 - 519 173 2 0.5564 25.29999999 25.20000000 25.64500000 - 520 174 1 -1.1128 28.53999999 22.92200000 30.37000000 - 521 174 2 0.5564 27.41399999 24.09600000 29.78100000 - 522 174 2 0.5564 29.67400000 23.91400000 31.87299999 - 523 175 1 -1.1128 24.96900001 33.62300000 1.01400000 - 524 175 2 0.5564 26.52100001 33.05800000 1.51799999 - 525 175 2 0.5564 24.99000000 34.32200000 -0.68299999 - 526 176 1 -1.1128 23.07500000 32.17099999 11.32400001 - 527 176 2 0.5564 23.31600000 32.77500000 13.09700000 - 528 176 2 0.5564 24.46000001 33.20299999 10.66199999 - 529 177 1 -1.1128 27.49699999 2.73600001 17.22400001 - 530 177 2 0.5564 28.39700000 3.41500000 15.71500001 - 531 177 2 0.5564 28.23400001 1.23300000 17.41200000 - 532 178 1 -1.1128 26.36900000 33.06000000 22.07700001 - 533 178 2 0.5564 26.17000001 34.74600000 22.26399999 - 534 178 2 0.5564 27.59200000 32.40399999 23.32099999 - 535 179 1 -1.1128 30.22099999 30.95000000 25.84300000 - 536 179 2 0.5564 30.30500000 29.03799999 26.20800000 - 537 179 2 0.5564 30.36300001 31.97900000 27.41399999 - 538 180 1 -1.1128 24.97300001 26.73200000 28.60700001 - 539 180 2 0.5564 25.38500001 28.36900000 29.24800000 - 540 180 2 0.5564 23.33000000 26.59699999 29.23400001 - 541 181 1 -1.1128 32.16500000 4.85700000 2.25800000 - 542 181 2 0.5564 32.41700001 6.19500001 1.15700000 - 543 181 2 0.5564 32.61499999 3.72700000 1.11200000 - 544 182 1 -1.1128 28.06699999 3.53299999 5.21699999 - 545 182 2 0.5564 26.96000000 4.44699999 4.15800000 - 546 182 2 0.5564 29.87500000 3.86300000 4.44800000 - 547 183 1 -1.1128 33.27900000 2.78200000 13.02800000 - 548 183 2 0.5564 33.70799999 3.95500001 11.81700000 - 549 183 2 0.5564 33.65600000 3.54500000 14.63100000 - 550 184 1 -1.1128 34.27799999 4.94400001 17.49200001 - 551 184 2 0.5564 33.43800000 6.56300000 17.87600001 - 552 184 2 0.5564 34.90600000 4.45200000 18.99499999 - 553 185 1 -1.1128 32.36300001 1.90800001 26.09199999 - 554 185 2 0.5564 31.94099999 1.68299999 24.26800000 - 555 185 2 0.5564 33.85000000 1.39000000 26.90400000 - 556 186 1 -1.1128 27.98200000 0.41799999 28.24100000 - 557 186 2 0.5564 27.51600000 2.08000001 28.30900000 - 558 186 2 0.5564 29.59300001 0.17600000 27.29900001 - 559 187 1 -1.1128 28.84500000 14.67200001 2.72400000 - 560 187 2 0.5564 27.96299999 13.93000001 4.13900000 - 561 187 2 0.5564 30.38599999 15.71400000 3.37900000 - 562 188 1 -1.1128 28.08300000 10.61800001 14.29800000 - 563 188 2 0.5564 28.62300000 12.15999999 13.29300000 - 564 188 2 0.5564 26.48599999 11.01500000 15.37900000 - 565 189 1 -1.1128 33.86700000 10.54500000 13.30600001 - 566 189 2 0.5564 35.16500000 9.61200000 13.81000000 - 567 189 2 0.5564 33.61499999 10.27000001 11.51300000 - 568 190 1 -1.1128 31.79000001 9.69600000 18.22300000 - 569 190 2 0.5564 30.48400000 9.33400000 19.42100001 - 570 190 2 0.5564 30.83399999 10.09600000 16.92900000 - 571 191 1 -1.1128 30.14100001 15.00599999 21.53200001 - 572 191 2 0.5564 28.56499999 15.59399999 22.09899999 - 573 191 2 0.5564 30.94200000 14.25299999 23.07700001 - 574 192 1 -1.1128 32.79799999 10.73200000 30.67999999 - 575 192 2 0.5564 34.07300001 9.52800001 30.79900000 - 576 192 2 0.5564 32.99100001 11.51200000 28.98300000 - 577 193 1 -1.1128 33.65200000 16.26500000 5.08600000 - 578 193 2 0.5564 35.39900001 16.23899999 4.72999999 - 579 193 2 0.5564 33.50300001 17.93900000 5.63100000 - 580 194 1 -1.1128 31.94700000 10.79900000 7.94300000 - 581 194 2 0.5564 29.89400001 10.54900000 7.61899999 - 582 194 2 0.5564 32.27099999 12.41399999 7.07500000 - 583 195 1 -1.1128 0.32900000 15.51600000 11.74600000 - 584 195 2 0.5564 -0.44600001 14.24900001 12.93900000 - 585 195 2 0.5564 -0.68500000 17.01800000 11.93500000 - 586 196 1 -1.1128 4.26200000 19.16500000 14.30800000 - 587 196 2 0.5564 3.57899999 17.69100000 14.91999999 - 588 196 2 0.5564 5.72299999 19.18300000 15.20400000 - 589 197 1 -1.1128 32.99499999 13.54600001 25.94800001 - 590 197 2 0.5564 32.16699999 15.06000000 26.78699999 - 591 197 2 0.5564 34.42499999 13.80000000 25.00700000 - 592 198 1 -1.1128 1.77299999 13.52400000 34.03700001 - 593 198 2 0.5564 0.22700001 14.40900000 33.44600001 - 594 198 2 0.5564 2.16699999 14.67000000 35.51099999 - 595 199 1 -1.1128 33.02900000 20.52899999 7.24700000 - 596 199 2 0.5564 34.38800000 21.41399999 8.00300000 - 597 199 2 0.5564 31.45100000 20.83100000 8.18200000 - 598 200 1 -1.1128 2.03700001 24.25000000 10.25100000 - 599 200 2 0.5564 3.74300001 25.00800000 9.87600001 - 600 200 2 0.5564 1.89400001 25.04300000 11.90300000 - 601 201 1 -1.1128 32.75300000 19.25900000 13.97600001 - 602 201 2 0.5564 32.79200000 20.88600000 13.79200000 - 603 201 2 0.5564 34.33400000 18.79900000 14.97600001 - 604 202 1 -1.1128 0.39600001 18.67300000 18.69900000 - 605 202 2 0.5564 -1.21100000 18.95000000 19.12700001 - 606 202 2 0.5564 0.46900000 16.97699999 18.43599999 - 607 203 1 -1.1128 30.85499999 18.37000000 27.95899999 - 608 203 2 0.5564 29.75900000 19.68100000 28.68999999 - 609 203 2 0.5564 32.10300000 19.47700000 26.76300000 - 610 204 1 -1.1128 27.72299999 15.99200000 33.09100001 - 611 204 2 0.5564 29.39000000 16.42300000 32.19199999 - 612 204 2 0.5564 27.80100001 15.85899999 34.80400001 - 613 205 1 -1.1128 31.06800000 27.89499999 3.34800000 - 614 205 2 0.5564 32.51700000 27.82500000 4.61000000 - 615 205 2 0.5564 31.52899999 29.45900000 2.32400001 - 616 206 1 -1.1128 35.03900000 28.00800000 6.66300000 - 617 206 2 0.5564 35.96599999 26.93399999 7.68299999 - 618 206 2 0.5564 36.05500001 28.33600000 5.33600000 - 619 207 1 -1.1128 29.35600001 28.19599999 13.02500000 - 620 207 2 0.5564 29.20999999 29.33500001 14.58900001 - 621 207 2 0.5564 28.87400000 29.62900001 11.86700000 - 622 208 1 -1.1128 32.38599999 28.43400000 18.96100000 - 623 208 2 0.5564 33.36799999 28.57400000 20.41099999 - 624 208 2 0.5564 33.41000001 27.40600001 17.94900000 - 625 209 1 -1.1128 30.89799999 25.39000000 25.79900000 - 626 209 2 0.5564 32.36900000 25.91299999 24.58000000 - 627 209 2 0.5564 31.31700001 24.07500000 27.02900000 - 628 210 1 -1.1128 32.25900000 25.61100001 33.10400000 - 629 210 2 0.5564 32.23800001 25.73600001 34.80600000 - 630 210 2 0.5564 33.91999999 25.04199999 32.77500000 - 631 211 1 -1.1128 30.29000000 32.64500000 1.34100000 - 632 211 2 0.5564 29.94900000 32.79300000 -0.43000000 - 633 211 2 0.5564 31.76199999 33.34000000 1.84700001 - 634 212 1 -1.1128 25.53599999 34.23499999 6.46900000 - 635 212 2 0.5564 25.71600000 36.05900001 6.65099999 - 636 212 2 0.5564 25.28300000 33.86599999 4.89499999 - 637 213 1 -1.1128 31.67400000 33.16100000 13.10599999 - 638 213 2 0.5564 31.79300000 34.86300000 13.28100001 - 639 213 2 0.5564 30.42499999 32.92800000 11.78300001 - 640 214 1 -1.1128 33.84400001 32.66800001 22.29599999 - 641 214 2 0.5564 32.75000000 32.23400001 23.52400000 - 642 214 2 0.5564 32.91700000 32.87500000 20.73600001 - 643 215 1 -1.1128 31.60300000 30.54200000 30.80499999 - 644 215 2 0.5564 33.45100000 30.80400001 30.46799999 - 645 215 2 0.5564 31.57500001 28.81599999 31.75600000 - 646 216 1 -1.1128 26.29500001 31.23499999 30.59900000 - 647 216 2 0.5564 27.83399999 30.51499999 30.60700001 - 648 216 2 0.5564 26.36200000 32.91999999 29.85600000 - -Bonds - - 1 1 1 2 - 2 1 1 3 - 3 1 4 5 - 4 1 4 6 - 5 1 7 8 - 6 1 7 9 - 7 1 10 11 - 8 1 10 12 - 9 1 13 14 - 10 1 13 15 - 11 1 16 17 - 12 1 16 18 - 13 1 19 20 - 14 1 19 21 - 15 1 22 23 - 16 1 22 24 - 17 1 25 26 - 18 1 25 27 - 19 1 28 29 - 20 1 28 30 - 21 1 31 32 - 22 1 31 33 - 23 1 34 35 - 24 1 34 36 - 25 1 37 38 - 26 1 37 39 - 27 1 40 41 - 28 1 40 42 - 29 1 43 44 - 30 1 43 45 - 31 1 46 47 - 32 1 46 48 - 33 1 49 50 - 34 1 49 51 - 35 1 52 53 - 36 1 52 54 - 37 1 55 56 - 38 1 55 57 - 39 1 58 59 - 40 1 58 60 - 41 1 61 62 - 42 1 61 63 - 43 1 64 65 - 44 1 64 66 - 45 1 67 68 - 46 1 67 69 - 47 1 70 71 - 48 1 70 72 - 49 1 73 74 - 50 1 73 75 - 51 1 76 77 - 52 1 76 78 - 53 1 79 80 - 54 1 79 81 - 55 1 82 83 - 56 1 82 84 - 57 1 85 86 - 58 1 85 87 - 59 1 88 89 - 60 1 88 90 - 61 1 91 92 - 62 1 91 93 - 63 1 94 95 - 64 1 94 96 - 65 1 97 98 - 66 1 97 99 - 67 1 100 101 - 68 1 100 102 - 69 1 103 104 - 70 1 103 105 - 71 1 106 107 - 72 1 106 108 - 73 1 109 110 - 74 1 109 111 - 75 1 112 113 - 76 1 112 114 - 77 1 115 116 - 78 1 115 117 - 79 1 118 119 - 80 1 118 120 - 81 1 121 122 - 82 1 121 123 - 83 1 124 125 - 84 1 124 126 - 85 1 127 128 - 86 1 127 129 - 87 1 130 131 - 88 1 130 132 - 89 1 133 134 - 90 1 133 135 - 91 1 136 137 - 92 1 136 138 - 93 1 139 140 - 94 1 139 141 - 95 1 142 143 - 96 1 142 144 - 97 1 145 146 - 98 1 145 147 - 99 1 148 149 - 100 1 148 150 - 101 1 151 152 - 102 1 151 153 - 103 1 154 155 - 104 1 154 156 - 105 1 157 158 - 106 1 157 159 - 107 1 160 161 - 108 1 160 162 - 109 1 163 164 - 110 1 163 165 - 111 1 166 167 - 112 1 166 168 - 113 1 169 170 - 114 1 169 171 - 115 1 172 173 - 116 1 172 174 - 117 1 175 176 - 118 1 175 177 - 119 1 178 179 - 120 1 178 180 - 121 1 181 182 - 122 1 181 183 - 123 1 184 185 - 124 1 184 186 - 125 1 187 188 - 126 1 187 189 - 127 1 190 191 - 128 1 190 192 - 129 1 193 194 - 130 1 193 195 - 131 1 196 197 - 132 1 196 198 - 133 1 199 200 - 134 1 199 201 - 135 1 202 203 - 136 1 202 204 - 137 1 205 206 - 138 1 205 207 - 139 1 208 209 - 140 1 208 210 - 141 1 211 212 - 142 1 211 213 - 143 1 214 215 - 144 1 214 216 - 145 1 217 218 - 146 1 217 219 - 147 1 220 221 - 148 1 220 222 - 149 1 223 224 - 150 1 223 225 - 151 1 226 227 - 152 1 226 228 - 153 1 229 230 - 154 1 229 231 - 155 1 232 233 - 156 1 232 234 - 157 1 235 236 - 158 1 235 237 - 159 1 238 239 - 160 1 238 240 - 161 1 241 242 - 162 1 241 243 - 163 1 244 245 - 164 1 244 246 - 165 1 247 248 - 166 1 247 249 - 167 1 250 251 - 168 1 250 252 - 169 1 253 254 - 170 1 253 255 - 171 1 256 257 - 172 1 256 258 - 173 1 259 260 - 174 1 259 261 - 175 1 262 263 - 176 1 262 264 - 177 1 265 266 - 178 1 265 267 - 179 1 268 269 - 180 1 268 270 - 181 1 271 272 - 182 1 271 273 - 183 1 274 275 - 184 1 274 276 - 185 1 277 278 - 186 1 277 279 - 187 1 280 281 - 188 1 280 282 - 189 1 283 284 - 190 1 283 285 - 191 1 286 287 - 192 1 286 288 - 193 1 289 290 - 194 1 289 291 - 195 1 292 293 - 196 1 292 294 - 197 1 295 296 - 198 1 295 297 - 199 1 298 299 - 200 1 298 300 - 201 1 301 302 - 202 1 301 303 - 203 1 304 305 - 204 1 304 306 - 205 1 307 308 - 206 1 307 309 - 207 1 310 311 - 208 1 310 312 - 209 1 313 314 - 210 1 313 315 - 211 1 316 317 - 212 1 316 318 - 213 1 319 320 - 214 1 319 321 - 215 1 322 323 - 216 1 322 324 - 217 1 325 326 - 218 1 325 327 - 219 1 328 329 - 220 1 328 330 - 221 1 331 332 - 222 1 331 333 - 223 1 334 335 - 224 1 334 336 - 225 1 337 338 - 226 1 337 339 - 227 1 340 341 - 228 1 340 342 - 229 1 343 344 - 230 1 343 345 - 231 1 346 347 - 232 1 346 348 - 233 1 349 350 - 234 1 349 351 - 235 1 352 353 - 236 1 352 354 - 237 1 355 356 - 238 1 355 357 - 239 1 358 359 - 240 1 358 360 - 241 1 361 362 - 242 1 361 363 - 243 1 364 365 - 244 1 364 366 - 245 1 367 368 - 246 1 367 369 - 247 1 370 371 - 248 1 370 372 - 249 1 373 374 - 250 1 373 375 - 251 1 376 377 - 252 1 376 378 - 253 1 379 380 - 254 1 379 381 - 255 1 382 383 - 256 1 382 384 - 257 1 385 386 - 258 1 385 387 - 259 1 388 389 - 260 1 388 390 - 261 1 391 392 - 262 1 391 393 - 263 1 394 395 - 264 1 394 396 - 265 1 397 398 - 266 1 397 399 - 267 1 400 401 - 268 1 400 402 - 269 1 403 404 - 270 1 403 405 - 271 1 406 407 - 272 1 406 408 - 273 1 409 410 - 274 1 409 411 - 275 1 412 413 - 276 1 412 414 - 277 1 415 416 - 278 1 415 417 - 279 1 418 419 - 280 1 418 420 - 281 1 421 422 - 282 1 421 423 - 283 1 424 425 - 284 1 424 426 - 285 1 427 428 - 286 1 427 429 - 287 1 430 431 - 288 1 430 432 - 289 1 433 434 - 290 1 433 435 - 291 1 436 437 - 292 1 436 438 - 293 1 439 440 - 294 1 439 441 - 295 1 442 443 - 296 1 442 444 - 297 1 445 446 - 298 1 445 447 - 299 1 448 449 - 300 1 448 450 - 301 1 451 452 - 302 1 451 453 - 303 1 454 455 - 304 1 454 456 - 305 1 457 458 - 306 1 457 459 - 307 1 460 461 - 308 1 460 462 - 309 1 463 464 - 310 1 463 465 - 311 1 466 467 - 312 1 466 468 - 313 1 469 470 - 314 1 469 471 - 315 1 472 473 - 316 1 472 474 - 317 1 475 476 - 318 1 475 477 - 319 1 478 479 - 320 1 478 480 - 321 1 481 482 - 322 1 481 483 - 323 1 484 485 - 324 1 484 486 - 325 1 487 488 - 326 1 487 489 - 327 1 490 491 - 328 1 490 492 - 329 1 493 494 - 330 1 493 495 - 331 1 496 497 - 332 1 496 498 - 333 1 499 500 - 334 1 499 501 - 335 1 502 503 - 336 1 502 504 - 337 1 505 506 - 338 1 505 507 - 339 1 508 509 - 340 1 508 510 - 341 1 511 512 - 342 1 511 513 - 343 1 514 515 - 344 1 514 516 - 345 1 517 518 - 346 1 517 519 - 347 1 520 521 - 348 1 520 522 - 349 1 523 524 - 350 1 523 525 - 351 1 526 527 - 352 1 526 528 - 353 1 529 530 - 354 1 529 531 - 355 1 532 533 - 356 1 532 534 - 357 1 535 536 - 358 1 535 537 - 359 1 538 539 - 360 1 538 540 - 361 1 541 542 - 362 1 541 543 - 363 1 544 545 - 364 1 544 546 - 365 1 547 548 - 366 1 547 549 - 367 1 550 551 - 368 1 550 552 - 369 1 553 554 - 370 1 553 555 - 371 1 556 557 - 372 1 556 558 - 373 1 559 560 - 374 1 559 561 - 375 1 562 563 - 376 1 562 564 - 377 1 565 566 - 378 1 565 567 - 379 1 568 569 - 380 1 568 570 - 381 1 571 572 - 382 1 571 573 - 383 1 574 575 - 384 1 574 576 - 385 1 577 578 - 386 1 577 579 - 387 1 580 581 - 388 1 580 582 - 389 1 583 584 - 390 1 583 585 - 391 1 586 587 - 392 1 586 588 - 393 1 589 590 - 394 1 589 591 - 395 1 592 593 - 396 1 592 594 - 397 1 595 596 - 398 1 595 597 - 399 1 598 599 - 400 1 598 600 - 401 1 601 602 - 402 1 601 603 - 403 1 604 605 - 404 1 604 606 - 405 1 607 608 - 406 1 607 609 - 407 1 610 611 - 408 1 610 612 - 409 1 613 614 - 410 1 613 615 - 411 1 616 617 - 412 1 616 618 - 413 1 619 620 - 414 1 619 621 - 415 1 622 623 - 416 1 622 624 - 417 1 625 626 - 418 1 625 627 - 419 1 628 629 - 420 1 628 630 - 421 1 631 632 - 422 1 631 633 - 423 1 634 635 - 424 1 634 636 - 425 1 637 638 - 426 1 637 639 - 427 1 640 641 - 428 1 640 642 - 429 1 643 644 - 430 1 643 645 - 431 1 646 647 - 432 1 646 648 - -Angles - - 1 1 2 1 3 - 2 1 5 4 6 - 3 1 8 7 9 - 4 1 11 10 12 - 5 1 14 13 15 - 6 1 17 16 18 - 7 1 20 19 21 - 8 1 23 22 24 - 9 1 26 25 27 - 10 1 29 28 30 - 11 1 32 31 33 - 12 1 35 34 36 - 13 1 38 37 39 - 14 1 41 40 42 - 15 1 44 43 45 - 16 1 47 46 48 - 17 1 50 49 51 - 18 1 53 52 54 - 19 1 56 55 57 - 20 1 59 58 60 - 21 1 62 61 63 - 22 1 65 64 66 - 23 1 68 67 69 - 24 1 71 70 72 - 25 1 74 73 75 - 26 1 77 76 78 - 27 1 80 79 81 - 28 1 83 82 84 - 29 1 86 85 87 - 30 1 89 88 90 - 31 1 92 91 93 - 32 1 95 94 96 - 33 1 98 97 99 - 34 1 101 100 102 - 35 1 104 103 105 - 36 1 107 106 108 - 37 1 110 109 111 - 38 1 113 112 114 - 39 1 116 115 117 - 40 1 119 118 120 - 41 1 122 121 123 - 42 1 125 124 126 - 43 1 128 127 129 - 44 1 131 130 132 - 45 1 134 133 135 - 46 1 137 136 138 - 47 1 140 139 141 - 48 1 143 142 144 - 49 1 146 145 147 - 50 1 149 148 150 - 51 1 152 151 153 - 52 1 155 154 156 - 53 1 158 157 159 - 54 1 161 160 162 - 55 1 164 163 165 - 56 1 167 166 168 - 57 1 170 169 171 - 58 1 173 172 174 - 59 1 176 175 177 - 60 1 179 178 180 - 61 1 182 181 183 - 62 1 185 184 186 - 63 1 188 187 189 - 64 1 191 190 192 - 65 1 194 193 195 - 66 1 197 196 198 - 67 1 200 199 201 - 68 1 203 202 204 - 69 1 206 205 207 - 70 1 209 208 210 - 71 1 212 211 213 - 72 1 215 214 216 - 73 1 218 217 219 - 74 1 221 220 222 - 75 1 224 223 225 - 76 1 227 226 228 - 77 1 230 229 231 - 78 1 233 232 234 - 79 1 236 235 237 - 80 1 239 238 240 - 81 1 242 241 243 - 82 1 245 244 246 - 83 1 248 247 249 - 84 1 251 250 252 - 85 1 254 253 255 - 86 1 257 256 258 - 87 1 260 259 261 - 88 1 263 262 264 - 89 1 266 265 267 - 90 1 269 268 270 - 91 1 272 271 273 - 92 1 275 274 276 - 93 1 278 277 279 - 94 1 281 280 282 - 95 1 284 283 285 - 96 1 287 286 288 - 97 1 290 289 291 - 98 1 293 292 294 - 99 1 296 295 297 - 100 1 299 298 300 - 101 1 302 301 303 - 102 1 305 304 306 - 103 1 308 307 309 - 104 1 311 310 312 - 105 1 314 313 315 - 106 1 317 316 318 - 107 1 320 319 321 - 108 1 323 322 324 - 109 1 326 325 327 - 110 1 329 328 330 - 111 1 332 331 333 - 112 1 335 334 336 - 113 1 338 337 339 - 114 1 341 340 342 - 115 1 344 343 345 - 116 1 347 346 348 - 117 1 350 349 351 - 118 1 353 352 354 - 119 1 356 355 357 - 120 1 359 358 360 - 121 1 362 361 363 - 122 1 365 364 366 - 123 1 368 367 369 - 124 1 371 370 372 - 125 1 374 373 375 - 126 1 377 376 378 - 127 1 380 379 381 - 128 1 383 382 384 - 129 1 386 385 387 - 130 1 389 388 390 - 131 1 392 391 393 - 132 1 395 394 396 - 133 1 398 397 399 - 134 1 401 400 402 - 135 1 404 403 405 - 136 1 407 406 408 - 137 1 410 409 411 - 138 1 413 412 414 - 139 1 416 415 417 - 140 1 419 418 420 - 141 1 422 421 423 - 142 1 425 424 426 - 143 1 428 427 429 - 144 1 431 430 432 - 145 1 434 433 435 - 146 1 437 436 438 - 147 1 440 439 441 - 148 1 443 442 444 - 149 1 446 445 447 - 150 1 449 448 450 - 151 1 452 451 453 - 152 1 455 454 456 - 153 1 458 457 459 - 154 1 461 460 462 - 155 1 464 463 465 - 156 1 467 466 468 - 157 1 470 469 471 - 158 1 473 472 474 - 159 1 476 475 477 - 160 1 479 478 480 - 161 1 482 481 483 - 162 1 485 484 486 - 163 1 488 487 489 - 164 1 491 490 492 - 165 1 494 493 495 - 166 1 497 496 498 - 167 1 500 499 501 - 168 1 503 502 504 - 169 1 506 505 507 - 170 1 509 508 510 - 171 1 512 511 513 - 172 1 515 514 516 - 173 1 518 517 519 - 174 1 521 520 522 - 175 1 524 523 525 - 176 1 527 526 528 - 177 1 530 529 531 - 178 1 533 532 534 - 179 1 536 535 537 - 180 1 539 538 540 - 181 1 542 541 543 - 182 1 545 544 546 - 183 1 548 547 549 - 184 1 551 550 552 - 185 1 554 553 555 - 186 1 557 556 558 - 187 1 560 559 561 - 188 1 563 562 564 - 189 1 566 565 567 - 190 1 569 568 570 - 191 1 572 571 573 - 192 1 575 574 576 - 193 1 578 577 579 - 194 1 581 580 582 - 195 1 584 583 585 - 196 1 587 586 588 - 197 1 590 589 591 - 198 1 593 592 594 - 199 1 596 595 597 - 200 1 599 598 600 - 201 1 602 601 603 - 202 1 605 604 606 - 203 1 608 607 609 - 204 1 611 610 612 - 205 1 614 613 615 - 206 1 617 616 618 - 207 1 620 619 621 - 208 1 623 622 624 - 209 1 626 625 627 - 210 1 629 628 630 - 211 1 632 631 633 - 212 1 635 634 636 - 213 1 638 637 639 - 214 1 641 640 642 - 215 1 644 643 645 - 216 1 647 646 648 diff --git a/tools/i-pi/examples/lammps/h2o-pimd/in.water b/tools/i-pi/examples/lammps/h2o-pimd/in.water deleted file mode 100644 index d1d9048cc8..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd/in.water +++ /dev/null @@ -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 - diff --git a/tools/i-pi/examples/lammps/h2o-pimd/input.xml b/tools/i-pi/examples/lammps/h2o-pimd/input.xml deleted file mode 100644 index 36bcd38d2e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd/input.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - water_298K.pdb - 298 - - - [ step, time{picosecond}, conserved, temperature{kelvin}, kinetic_cv, potential, pressure_cv{megapascal}] - positions - - 500000 - 32345 - - -
no_rpc
-
-
- - - 25 - - 0.25 - 298 - -
diff --git a/tools/i-pi/examples/lammps/h2o-pimd/water_298K.pdb b/tools/i-pi/examples/lammps/h2o-pimd/water_298K.pdb deleted file mode 100644 index e8509c868e..0000000000 --- a/tools/i-pi/examples/lammps/h2o-pimd/water_298K.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/tutorial/README b/tools/i-pi/examples/tutorial/README deleted file mode 100644 index 3062659bd0..0000000000 --- a/tools/i-pi/examples/tutorial/README +++ /dev/null @@ -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. diff --git a/tools/i-pi/examples/tutorial/tutorial-1/our_ref.pdb b/tools/i-pi/examples/tutorial/tutorial-1/our_ref.pdb deleted file mode 100755 index fbeba1afc9..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-1/our_ref.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/tutorial/tutorial-1/our_ref.xyz b/tools/i-pi/examples/tutorial/tutorial-1/our_ref.xyz deleted file mode 100644 index 46ecc5b5d9..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-1/our_ref.xyz +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/tutorial/tutorial-1/tutorial-1.xml b/tools/i-pi/examples/tutorial/tutorial-1/tutorial-1.xml deleted file mode 100755 index 713953fe46..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-1/tutorial-1.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - our_ref.pdb - 25 - - - [step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}] - [atom_f{piconewton}(atom=0;bead=0)] - positions{angstrom} - - - 5000 - - -
localhost
- 31415 -
-
- - - 25 - - 1 - 25 - -
diff --git a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-1_RESTART b/tools/i-pi/examples/tutorial/tutorial-2/tutorial-1_RESTART deleted file mode 100755 index 30912ef04a..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-1_RESTART +++ /dev/null @@ -1,736 +0,0 @@ - - 5000 - - - [ -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 ] - -

- [ 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 ] -

- - [ 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 ] - - - [ 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 ] - -
- 5000 - - [ 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 ] - - - - 31415 - - - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, - kinetic_cv{kelvin} ] - - [ atom_f{piconewton}(atom=0;bead=0) ] - positions{angstrom} - 6 - - - - [ 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 ] - - 12345 - 432 - -8.30560467e-01 - - - - 1.03353433e+03 - 2.24648494e-02 - - 4.13413730e+01 - 7.91703800e-05 - -
diff --git a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2a.xml b/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2a.xml deleted file mode 100755 index b6e6824637..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2a.xml +++ /dev/null @@ -1,742 +0,0 @@ - - - - [ -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 ] - -

- [ 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 ] -

- - [ 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 ] - - - [ 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 ] - -
- 100000 - - [ 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 ] - - - - 31415 - - - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, - kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ] - - [ atom_f{piconewton}(atom=0;bead=0) ] - positions{angstrom} - - - - - [ 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 ] - - 12345 - 432 - -8.30560467e-01 - - - 0 - - - 250 - - 250 - - - 1.03353433e+03 - 2.24648494e-02 - - 4.13413730e+01 - 7.91703800e-05 - -
diff --git a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2b.xml b/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2b.xml deleted file mode 100755 index d90bbc3e34..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-2/tutorial-2b.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - tutorial-1_RESTART - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ] - [atom_f{piconewton}(atom=0;bead=0)] - positions{angstrom} - - - 100000 - 31415 - - -
localhost
- 31415 -
-
- - - - 250 - - 250 - - - 25 - - 1 - 25 - 0 - -
diff --git a/tools/i-pi/examples/tutorial/tutorial-3/our_ref.pdb b/tools/i-pi/examples/tutorial/tutorial-3/our_ref.pdb deleted file mode 100755 index 4734f80613..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-3/our_ref.pdb +++ /dev/null @@ -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 diff --git a/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_npt.xml b/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_npt.xml deleted file mode 100755 index 2392797e01..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_npt.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - tutorial-3_RESTART - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal}, volume ] - positions{angstrom} - - - ??? - - -
localhost
- 31415 -
-
- - - - ??? - - ??? - - - ??? - - ??? - 25 - 0 - -
diff --git a/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_nvt.xml b/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_nvt.xml deleted file mode 100755 index 7a333be0f1..0000000000 --- a/tools/i-pi/examples/tutorial/tutorial-3/tutorial-3_nvt.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - our_ref.pdb - ??? - - - [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, potential{kelvin}, kinetic_cv{kelvin}, pressure_cv{megapascal} ] - positions{angstrom} - - - ??? - - -
localhost
- 31415 -
-
- - - ??? - - ??? - 25 - -
diff --git a/tools/i-pi/i-pi b/tools/i-pi/i-pi deleted file mode 100755 index fa6a1ae623..0000000000 --- a/tools/i-pi/i-pi +++ /dev/null @@ -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]) diff --git a/tools/i-pi/ipi/README b/tools/i-pi/ipi/README deleted file mode 100644 index a775b2066e..0000000000 --- a/tools/i-pi/ipi/README +++ /dev/null @@ -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. diff --git a/tools/i-pi/ipi/__init__.py b/tools/i-pi/ipi/__init__.py deleted file mode 100644 index 0ed5b4dbf5..0000000000 --- a/tools/i-pi/ipi/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["engine", "inputs", "interfaces", "utils"] diff --git a/tools/i-pi/ipi/engine/README b/tools/i-pi/ipi/engine/README deleted file mode 100644 index 0ce3661b35..0000000000 --- a/tools/i-pi/ipi/engine/README +++ /dev/null @@ -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. diff --git a/tools/i-pi/ipi/engine/__init__.py b/tools/i-pi/ipi/engine/__init__.py deleted file mode 100644 index 609556a5e0..0000000000 --- a/tools/i-pi/ipi/engine/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -__all__ = ["atoms", "cell", "simulation", "forces", "ensembles", "properties", - "thermostats", "barostats", "beads", "outputs", "normalmodes", - "initializer" ] diff --git a/tools/i-pi/ipi/engine/atoms.py b/tools/i-pi/ipi/engine/atoms.py deleted file mode 100644 index 9e6e2752f6..0000000000 --- a/tools/i-pi/ipi/engine/atoms.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/barostats.py b/tools/i-pi/ipi/engine/barostats.py deleted file mode 100644 index b65e62746c..0000000000 --- a/tools/i-pi/ipi/engine/barostats.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/beads.py b/tools/i-pi/ipi/engine/beads.py deleted file mode 100644 index 1a20574522..0000000000 --- a/tools/i-pi/ipi/engine/beads.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/cell.py b/tools/i-pi/ipi/engine/cell.py deleted file mode 100644 index f800773a23..0000000000 --- a/tools/i-pi/ipi/engine/cell.py +++ /dev/null @@ -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 . - - -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) diff --git a/tools/i-pi/ipi/engine/ensembles.py b/tools/i-pi/ipi/engine/ensembles.py deleted file mode 100644 index 23d88e436b..0000000000 --- a/tools/i-pi/ipi/engine/ensembles.py +++ /dev/null @@ -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 . - - -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() - - diff --git a/tools/i-pi/ipi/engine/forces.py b/tools/i-pi/ipi/engine/forces.py deleted file mode 100644 index 5e3dabf8db..0000000000 --- a/tools/i-pi/ipi/engine/forces.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/initializer.py b/tools/i-pi/ipi/engine/initializer.py deleted file mode 100644 index fd9bcfb9fa..0000000000 --- a/tools/i-pi/ipi/engine/initializer.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/normalmodes.py b/tools/i-pi/ipi/engine/normalmodes.py deleted file mode 100644 index 38566736f7..0000000000 --- a/tools/i-pi/ipi/engine/normalmodes.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/engine/outputs.py b/tools/i-pi/ipi/engine/outputs.py deleted file mode 100644 index 7d6e7587b5..0000000000 --- a/tools/i-pi/ipi/engine/outputs.py +++ /dev/null @@ -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 . - - -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() diff --git a/tools/i-pi/ipi/engine/properties.py b/tools/i-pi/ipi/engine/properties.py deleted file mode 100644 index 48b0c00ecc..0000000000 --- a/tools/i-pi/ipi/engine/properties.py +++ /dev/null @@ -1,1273 +0,0 @@ -"""Holds the class which computes important properties of the system, and -prepares them for output. - -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 . - - -Classes: - Properties: This is the class that holds all the algorithms to calculate - the important properties that should be output. - Trajectories: This class deals with outputting all position data in the - appropriate format. - -Functions: - getkey: This function strips the units and argument list specification - from a string specifying an output parameter. - getall: This function gives the keyword, units and argument list - specification from a string specifying an output parameter. - help_latex: This returns a string that can be used in the manual to - specify the different available outputs. -""" - -__all__ = ['Properties', 'Trajectories', 'getkey', 'getall', 'help_latex'] - -import os -import numpy as np -from ipi.utils.messages import verbosity, info, warning -from ipi.utils.depend import * -from ipi.utils.units import Constants, unit_to_internal, unit_to_user -from ipi.utils.mathtools import logsumlog, h2abc_deg -from ipi.utils.io import * -from ipi.engine.atoms import * -from ipi.engine.cell import * -from ipi.engine.ensembles import * -from ipi.engine.forces import * - -def getkey(pstring): - """Strips units and argument lists from a property/trajectory keyword. - - Args: - pstring: The string input by the user that specifies an output, - which in general will specify units and argument lists. - - Returns: A string giving the keyword for the property, stripped of the - argument lists and units key words. - """ - - pa = pstring.find('(') - if pa < 0: - pa = len(pstring) - pu = pstring.find('{') - if pu < 0: - pu = len(pstring) - return pstring[0:min(pa,pu)].strip() - -def getall(pstring): - """Returns the keyword, units and argument list separately. - - Args: - pstring: The string input by the user that specifies an output, - which in general will specify units and argument lists. - - Returns: A tuple giving the keyword for the property, and its units - argument list and key word argument list. - """ - - unit = "" - arglist = () - kwarglist = {} - unstart = len(pstring) - argstart = unstart - - if '}' in pstring: - # the property has a user-defined unit - unstart = pstring.find('{') - unstop = pstring.find('}', unstart) - if unstop == -1: - raise ValueError("Incorrect format in units specification " + pstring) - unit = pstring[unstart+1:unstop] - if '(' in pstring: - # If the property has additional arguments - argstart = pstring.find('(') - argstop = pstring.find(')', argstart) - if argstop == -1: - raise ValueError("Incorrect format in argument list " + pstring) - - argstr = pstring[argstart:argstop+1] - arglist = io_xml.read_tuple(argstr, delims="()", split=";", arg_type=str) - for arg in arglist: - # If a keyword argument is used - equals = arg.find('=') - if equals >= 0: - kwarglist[arg[0:equals].strip()] = arg[equals+1:].strip() - arglist = tuple(a for a in arglist if not a == arg) - - pstring = pstring[0:min(unstart,argstart)].strip() # strips the arguments from pstring name - - return (pstring, unit, arglist, kwarglist) - -def help_latex(idict, standalone=True): - """Function to generate a LaTeX formatted file. - - Args: - idict: Either property_dict or traj_dict, to be used to - generate the help file. - standalone: A boolean giving whether the latex file produced will be a - stand-alone document, or will be intended as a section of a larger - document with cross-references between the different sections. - - Returns: - A LaTeX formatted string. - """ - - rstr = "" - if standalone: - #assumes that it is a stand-alone document, so must have document - #options. - rstr += r"\documentclass[12pt,fleqn]{report}" - rstr += r""" -\usepackage{etoolbox} -\usepackage{suffix} - -\newcommand{\ipiitem}[3]{% -\ifblank{#1}{}{\ifstrequal{#1}{\underline{}}{}{ -{\noindent\textbf{#1}:\rule{0.0pt}{1.05\baselineskip}\quad}}}% uses a strut to add a bit of vertical space -{#2}\parskip=0pt\par -\ifblank{#3}{}% -{ {\hfill\raggedleft\textit{\small #3}\par} } -} -""" - rstr += "\n\\begin{document}\n" - rstr += "The following are the different allowable outputs:\n\\par" - - for out in sorted(idict): - rstr += "\\ipiitem{" + out + "}" - if "longhelp" in idict[out]: - rstr += "{" + idict[out]['longhelp'] +"}" - else: - rstr += "{" + idict[out]['help'] +"}" - - #see if there are additional attributes to print out - xstr = "" - if "dimension" in idict[out] and idict[out]['dimension'] != "undefined": #doesn't print out dimension if not necessary. - xstr += "dimension: " + idict[out]['dimension'] + '; ' - if "size" in idict[out]: - xstr += "size: " + str(idict[out]['size']) +"; " - rstr += "{" + xstr + "}" - - if standalone: - #ends the created document if it is not part of a larger document - rstr += "\\end{document}" - - # Some escape characters are necessary for the proper latex formatting - rstr = rstr.replace('_', '\\_') - rstr = rstr.replace('\\\\_', '\\_') - rstr = rstr.replace('...', '\\ldots ') - rstr = rstr.replace('<', '$<$') - rstr = rstr.replace('>', '$>$') - rstr = rstr.replace('[', '$[$') - rstr = rstr.replace(']', '$]$') - - return rstr - - -class Properties(dobject): - """A proxy to compute and output properties of the system. - - Takes the fundamental properties calculated during the simulation, and - prepares them for output. It also contains simple algorithms to calculate - other properties not calculated during the simulation itself, so that - these can also be output. - - Attributes: - fd_delta: A float giving the size of the finite difference - parameter used in the Yamamoto kinetic energy estimator. Defaults - to _DEFAULT_FINDIFF. - _DEFAULT_FDERROR: A float giving the size of the minimum precision - allowed for the finite difference calculation in the Yamamoto kinetic - energy estimator. - _DEFAULT_MINFID: A float giving the maximum displacement in the Yamamoto - kinetic energy estimator. - dbeads: A dummy Beads object used in the Yamamoto kinetic energy - estimator. - dforces: A dummy Forces object used in the Yamamoto kinetic energy - estimator. - simul: The Simulation object containing the data to be output. - ensemble: An ensemble object giving the objects necessary for producing - the correct ensemble. - beads: A beads object giving the atoms positions. - nm: A normal modes object giving the normal mode representation. - cell: A cell object giving the system box. - forces: A forcefield object giving the force calculator for each - replica of the system. - property_dict: A dictionary containing all the properties that can be - output. - """ - - _DEFAULT_FINDIFF = 1e-5 - _DEFAULT_FDERROR = 1e-9 - _DEFAULT_MINFID = 1e-12 - - def __init__(self): - """Initializes Properties.""" - - self.property_dict = { - "step": { "dimension" : "number", - "help" : "The current simulation time step.", - 'func': (lambda: (1 + self.simul.step))}, - "time": { "dimension": "time", - "help": "The elapsed simulation time.", - 'func': (lambda: (1 + self.simul.step)*self.ensemble.dt)}, - "temperature": {"dimension": "temperature", - "help": "The current temperature, as obtained from the MD kinetic energy.", - "longhelp" : """The current temperature, as obtained from the MD kinetic energy of the (extended) - ring polymer. Takes a single, optional argument 'atom', which can be either an - atom label or an index (zero-based) to specify which species or individual atom - to output the temperature of. If not specified, all atoms are used and averaged.""", - 'func': self.get_temp }, - "density": { "dimension": "density", - "help": "The mass density of the physical system.", - 'func': (lambda: self.beads.m.sum()/self.cell.V)}, - "volume": { "dimension": "volume", - "help": "The volume of the cell box.", - 'func': (lambda: self.cell.V) }, - "cell_h": { "dimension" : "length", - "help": "The simulation cell as a matrix. Returns the 6 non-zero components in the form [xx, yy, zz, xy, xz, yz].", - "size": 6, - "func": (lambda: self.tensor2vec(self.cell.h))}, - "cell_abcABC": {"dimension" : "undefined", - "help": "The lengths of the cell vectors and the angles between them in degrees as a list of the form [a, b, c, A, B, C]", - "longhelp": """The lengths of the cell vectors and the angles between them in degrees as a list of the - form [a, b, c, A, B, C], where A is the angle between the sides of length b and c in degrees, and B and C - are defined similarly. Since the output mixes different units, a, b and c can only be output in bohr.""", - "size": 6, - 'func': (lambda: np.asarray(h2abc_deg(self.cell.h)))}, - "conserved": { "dimension": "energy", - "help": "The value of the conserved energy quantity per bead.", - 'func': (lambda: self.ensemble.econs/float(self.beads.nbeads))}, - "potential": { "dimension" : "energy", - "help": "The physical system potential energy.", - 'func': (lambda: self.forces.pot/self.beads.nbeads)}, - "spring": { "dimension" : "energy", - "help": "The total spring potential energy between the beads of all the ring polymers in the system.", - 'func': (lambda: self.beads.vpath*self.nm.omegan2/self.beads.nbeads)}, - "kinetic_md": {"dimension" : "energy", - "help": "The kinetic energy of the (extended) classical system.", - "longhelp" : """The kinetic energy of the (extended) classical system. Takes an argument 'atom', - which can be either an atom label or index (zero based) to specify which species to find the - kinetic energy of. If not specified, all atoms are used.""", - 'func': self.get_kinmd}, - "kinetic_cv": {"dimension" : "energy", - "help": "The centroid-virial quantum kinetic energy of the physical system.", - "longhelp": """The centroid-virial quantum kinetic energy of the physical system. - Takes an argument 'atom', which can be either an atom label or index (zero based) - to specify which species to find the kinetic energy of. If not specified, all atoms are used.""", - 'func': self.get_kincv}, - "kinetic_tens":{"dimension" : "energy", - "help" : "The centroid-virial quantum kinetic energy tensor of the physical system.", - "longhelp" : """The centroid-virial quantum kinetic energy tensor of the physical system. - Returns the 6 independent components in the form [xx, yy, zz, xy, xz, yz]. Takes an - argument 'atom', which can be either an atom label or index (zero based) to specify - which species to find the kinetic tensor components of. If not specified, all atoms are used.""", - "size" : 6, - "func" : self.get_ktens}, - "kinetic_ij": {"dimension" : "energy", - "help" : "The centroid-virial off-diagonal quantum kinetic energy tensor of the physical system.", - "longhelp" : """The centroid-virial off-diagonal quantum kinetic energy tensor of the physical system. - This computes the cross terms between atoms i and atom j, whose average is . - Returns the 6 independent components in the form [xx, yy, zz, xy, xz, yz]. Takes arguments 'i' and 'j', - which give the indices of the two desired atoms.""", - "size" : 6, - "func" : self.get_kij}, - "r_gyration": { "dimension" : "length", - "help" : "The average radius of gyration of the selected ring polymers.", - "longhelp" : """The average radius of gyration of the selected ring polymers. Takes an - argument 'atom', which can be either an atom label or index (zero based) to specify which - species to find the radius of gyration of. If not specified, all atoms are used and averaged.""", - "func": self.get_rg}, - "atom_x": { "dimension" : "length", - "help": "The position (x,y,z) of a particle given its index.", - "longhelp" : """The position (x,y,z) of a particle given its index. Takes arguments index - and bead (both zero based). If bead is not specified, refers to the centroid.""", - "size" : 3, - "func" : (lambda atom="", bead="-1": self.get_atom_vec(self.beads.q, atom=atom, bead=bead))}, - "atom_v": { "dimension" : "velocity", - "help": "The velocity (x,y,z) of a particle given its index.", - "longhelp": """The velocity (x,y,z) of a particle given its index. Takes arguments index - and bead (both zero based). If bead is not specified, refers to the centroid.""", - "size" : 3, - "func" : (lambda atom="", bead="-1": self.get_atom_vec(self.beads.p/self.beads.m3, atom=atom, bead=bead))}, - "atom_p": { "dimension" : "momentum", - "help": "The momentum (x,y,z) of a particle given its index.", - "longhelp": """The momentum (x,y,z) of a particle given its index. Takes arguments index - and bead (both zero based). If bead is not specified, refers to the centroid.""", - "size" : 3, - "func" : (lambda atom="", bead="-1": self.get_atom_vec(self.beads.p, atom=atom, bead=bead))}, - "atom_f": { "dimension" : "force", - "help": "The force (x,y,z) acting on a particle given its index.", - "longhelp": """The force (x,y,z) acting on a particle given its index. Takes arguments index - and bead (both zero based). If bead is not specified, refers to the centroid.""", - "size" : 3, - "func" : (lambda atom="", bead="-1": self.get_atom_vec(self.forces.f, atom=atom, bead=bead))}, - "stress_md": { "dimension": "pressure", - "size" : 6, - "help": "The total stress tensor of the (extended) classical system.", - "longhelp": """The total stress tensor of the (extended) classical system. Returns the 6 - independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec((self.forces.vir + self.nm.kstress)/self.cell.V))}, - "pressure_md": {"dimension": "pressure", - "help": "The pressure of the (extended) classical system.", - "func": (lambda: np.trace((self.forces.vir + self.nm.kstress)/(3.0*self.cell.V)))}, - "kstress_md": {"dimension": "pressure", - "size" : 6, - "help": "The kinetic stress tensor of the (extended) classical system.", - "longhelp": """The kinetic stress tensor of the (extended) classical system. Returns the 6 - independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec(self.nm.kstress/self.cell.V))}, - "virial_md": { "dimension": "pressure", - "size" : 6, - "help": "The virial tensor of the (extended) classical system.", - "longhelp": """The virial tensor of the (extended) classical system. Returns the 6 - independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec(self.forces.vir/self.cell.V))}, - "stress_cv": { "dimension": "pressure", - "size" : 6, - "help": "The total quantum estimator for the stress tensor of the physical system.", - "longhelp": """The total quantum estimator for the stress tensor of the physical system. Returns the - 6 independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec(self.forces.vir + self.kstress_cv())/(self.cell.V*self.beads.nbeads))}, - "pressure_cv": {"dimension": "pressure", - "help": "The quantum estimator for pressure of the physical system.", - "func": (lambda: np.trace(self.forces.vir + self.kstress_cv())/(3.0*self.cell.V*self.beads.nbeads))}, - "kstress_cv": {"dimension": "pressure", - "size" : 6, - "help": "The quantum estimator for the kinetic stress tensor of the physical system.", - "longhelp": """The quantum estimator for the kinetic stress tensor of the physical system. - Returns the 6 independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec(self.kstress_cv()/(self.cell.V*self.beads.nbeads)))}, - "virial_cv": { "dimension": "pressure", - "size" : 6, - "help": "The quantum estimator for the virial stress tensor of the physical system.", - "longhelp": """The quantum estimator for the virial stress tensor of the physical system. - Returns the 6 independent components in the form [xx, yy, zz, xy, xz, yz].""", - "func": (lambda: self.tensor2vec(self.forces.vir/(self.cell.V*self.beads.nbeads)))}, - "displacedpath": { "dimension": "undefined", - "help": "The displaced path end-to-end distribution estimator", - "longhelp": """This is the estimator for the end-to-end distribution, that can be used to calculate the - particle momentum distribution as described in in L. Lin, J. A. Morrone, R. Car and M. Parrinello, - 105, 110602 (2010), Phys. Rev. Lett. Takes arguments 'ux', 'uy' and 'uz', which are the components of - the path opening vector. Also takes an argument 'atom', which can be either an atom label or index - (zero based) to specify which species to find the end-to-end distribution estimator for. If not - specified, all atoms are used. Note that one atom is computed at a time, and that each path opening - operation costs as much as a PIMD step. Returns the average over the selected atoms of the estimator of - exp(-U(u)) for each frame.""", - "func": self.get_linlin}, - "scaledcoords": { "dimension": "undefined", - "help" : "The scaled coordinates estimators that can be used to compute energy and heat capacity", - "longhelp": """Returns the estimators that are required to evaluate the scaled-coordinates estimators - for total energy and heat capacity, as described in T. M. Yamamoto, - J. Chem. Phys., 104101, 123 (2005). Returns eps_v and eps_v', as defined in that paper. - As the two estimators have a different dimensions, this can only be output in atomic units. - Takes one argument, 'fd_delta', which gives the value of the finite difference parameter used - - which defaults to """+ str(-self._DEFAULT_FINDIFF) + """. If the value of 'fd_delta' is negative, - then its magnitude will be reduced automatically by the code if the finite difference error - becomes too large.""", - 'func': self.get_yama_estimators, - "size": 2}, - "isotope_scfep": {"dimension": "undefined", - "size": 7, - 'func': self.get_isotope_yama, - "help": "The scaled-coordinates free energy perturbation scaled mass KE estimator.", - "longhelp" : """Returns the (many) terms needed to compute the scaled-coordinates free energy - perturbation scaled mass KE estimator (M. Ceriotti, T. Markland, J. Chem. Phys. 138, 014112 (2013)). - Takes two arguments, 'alpha' and 'atom', which give the - scaled mass parameter and the atom of interest respectively, and default to '1.0' and ''. The - 'atom' argument can either be the label of a particular kind of atom, or an index (zero based) - of a specific atom. This property computes, for each atom in the selection, an estimator for - the kinetic energy it would have had if it had the mass scaled by alpha. The 7 numbers output - are the average over the selected atoms of the log of the weights , the average of the - squares , the average of the un-weighted scaled-coordinates kinetic energies - and of the squares , the log sum of the weights LW=ln(sum(e**(-h))), the sum of the - re-weighted kinetic energies, stored as a log modulus and sign, LTW=ln(abs(sum(T_CV e**(-h)))) - STW=sign(sum(T_CV e**(-h))). In practice, the best estimate of the estimator can be computed - as [sum_i exp(LTW_i)*STW_i]/[sum_i exp(LW_i)]. The other terms can be used to compute diagnostics - for the statistical accuracy of the re-weighting process. Note that evaluating this estimator costs - as much as a PIMD step for each atom in the list. The elements that are output have different - units, so the output can be only in atomic units.""" }, - "isotope_tdfep": {"dimension" : "undefined", - "size" : 7, - 'func': self.get_isotope_thermo, - "help": "The thermodynamic free energy perturbation scaled mass KE estimator.", - "longhelp" : """Returns the (many) terms needed to compute the thermodynamic free energy - perturbation scaled mass KE estimator (M. Ceriotti, T. Markland, J. Chem. Phys. 138, 014112 (2013)). - Takes two arguments, 'alpha' and 'atom', which give the - scaled mass parameter and the atom of interest respectively, and default to '1.0' and ''. The - 'atom' argument can either be the label of a particular kind of atom, or an index (zero based) - of a specific atom. This property computes, for each atom in the selection, an estimator for - the kinetic energy it would have had if it had the mass scaled by alpha. The 7 numbers output - are the average over the selected atoms of the log of the weights , the average of the - squares , the average of the un-weighted scaled-coordinates kinetic energies - and of the squares , the log sum of the weights LW=ln(sum(e**(-h))), the sum of the - re-weighted kinetic energies, stored as a log modulus and sign, LTW=ln(abs(sum(T_CV e**(-h)))) - STW=sign(sum(T_CV e**(-h))). In practice, the best estimate of the estimator can be computed - as [sum_i exp(LTW_i)*STW_i]/[sum_i exp(LW_i)]. The other terms can be used to compute diagnostics - for the statistical accuracy of the re-weighting process. Evaluating this estimator is inexpensive, - but typically the statistical accuracy is worse than with the scaled coordinates estimator. - The elements that are output have different - units, so the output can be only in atomic units.""" } - } - - def bind(self, simul): - """Binds the necessary objects from the simulation to calculate the - required properties. - - Args: - simul: The Simulation object to be bound. - """ - - self.ensemble = simul.ensemble - self.beads = simul.beads - self.nm = simul.nm - self.cell = simul.cell - self.forces = simul.forces - self.simul = simul - # dummy beads and forcefield objects so that we can use scaled and - # displaced path estimators without changing the simulation bead - # coordinates - self.dbeads = simul.beads.copy() - self.dforces = Forces() - self.dforces.bind(self.dbeads, self.simul.cell, self.simul.flist) - - def __getitem__(self, key): - """Retrieves the item given by key. - - Note that if the key contains a string (arg1; arg2; ... ) - then it will pass the appropriate positional arguments to the - calculation function of the property. Note the brackets and - the semi-colon separators. If instead we have the syntax - (arg1=val1;arg2; ... ), then the keyword/value pair (arg1,val1) - will be added to the keyword argument list. The appropriate key word - arguments will then be passed to the calculation function instead. - - Similarly, if the key contains a string {unit}, then it will take - the string 'unit' and use it to define the units that the property - is output in. - - Args: - key: A string contained in property_dict. - - Returns: - The property labeled by the keyword key, along with its unit - keyword, and the argument lists for the function used to calculate - the property specified by the keyword key. - """ - - (key, unit, arglist, kwarglist) = getall(key) - pkey = self.property_dict[key] - - #pkey["func"](*arglist,**kwarglist) gives the value of the property - #in atomic units. unit_to_user() returns the value in the user - #specified units. - if "dimension" in pkey and unit != "": - return unit_to_user(pkey["dimension"], unit, pkey["func"](*arglist,**kwarglist)) - else: - return pkey["func"](*arglist,**kwarglist) - - def tensor2vec(self, tensor): - """Takes a 3*3 symmetric tensor and returns it as a 1D array, - containing the elements [xx, yy, zz, xy, xz, yz]. - """ - - return np.array([tensor[0,0], tensor[1,1], tensor[2,2], tensor[0,1], tensor[0,2], tensor[1,2]]) - - def get_atom_vec(self, prop_vec, atom="", bead="-1"): - """Gives a vector for one atom. - - Args: - prop_vec: An array from which to take the atomic vector from. - atom: The index of the atom for which the vector will - be output. - bead: The index of the replica of the atom for which the - vector will be output. If less than 0, then the centroid is used. - """ - - if atom == "": - raise IndexError("Must specify the index for atom_vec property") - atom = int(atom) - bead = int(bead) - if atom >= self.beads.natoms: - raise IndexError("Cannot output atom_vec property as atom index %d is larger than the number of atoms" % atom) - if bead >= self.beads.nbeads: - raise IndexError("Cannot output atom_vec property as bead index %d is larger than the number of beads" % bead) - - if bead < 0: - atom_vec = np.zeros(3) - for b in range(self.beads.nbeads): - atom_vec += prop_vec[b,3*atom:3*(atom+1)] - return atom_vec/float(self.beads.nbeads) - else: - return prop_vec[bead,3*atom:3*(atom+1)] - - def get_temp(self, atom=""): - """Calculates the MD kinetic temperature. - - Note that in the case that the centre of mass constraint there will be - 3 fewer degrees of freedom than without, so this has to be taken into - account when calculating the kinetic temperature. - - Args: - atom: If given, specifies the atom to give the temperature - for. If not, then the simulation temperature. - """ - - if self.ensemble.fixcom: - mdof = 3 - else: - mdof = 0 - - if atom == "": - # use the KE computed in the NM representation in order to avoid problems when mass scaling is used - kedof = self.get_kinmd()/(3*self.beads.natoms*self.beads.nbeads - mdof) - else: - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output temperature as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - ncount = 0 - for i in range(self.beads.natoms): - if (iatom == i or latom == self.beads.names[i]): - ncount += 1 - - if ncount == 0: - raise IndexError("Couldn't find an atom which matched the argument of temperature") - # "spreads" the COM removal correction evenly over all the atoms... - kedof = self.get_kinmd(atom)/ncount*(self.beads.natoms/(3.0*self.beads.natoms*self.beads.nbeads - mdof)) - - return kedof/(0.5*Constants.kb) - - def get_kincv(self, atom=""): - """Calculates the quantum centroid virial kinetic energy estimator. - - Args: - atom: If given, specifies the atom to give the kinetic energy - for. If not, the system kinetic energy is given. - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output kinetic energy as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - q = depstrip(self.beads.q) - qc = depstrip(self.beads.qc) - f = depstrip(self.forces.f) - - acv = 0.0 - ncount = 0 - for i in range(self.beads.natoms): - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - kcv = 0.0 - k = 3*i - for b in range(self.beads.nbeads): - kcv += (q[b,k] - qc[k])* f[b,k] + (q[b,k+1] - qc[k+1])* f[b,k+1] + (q[b,k+2] - qc[k+2])* f[b,k+2] - kcv *= -0.5/self.beads.nbeads - kcv += 1.5*Constants.kb*self.ensemble.temp - acv += kcv - ncount += 1 - - if ncount == 0: - warning("Couldn't find an atom which matched the argument of kinetic energy, setting to zero.", verbosity.medium) - - return acv - - def get_kinmd(self, atom=""): - """Calculates the classical kinetic energy of the simulation (p^2/2m) - - Args: - atom: If given, specifies the atom to give the kinetic energy - for. If not, the simulation kinetic energy is given. - """ - - if atom == "": - return self.nm.kin/self.beads.nbeads - else: - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output kinetic energy as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - pnm = depstrip(self.nm.pnm) - dm3 = depstrip(self.nm.dynm3) - kmd = 0.0 - ncount = 0 - for i in range(self.beads.natoms): - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - k = 3*i - for b in range(self.beads.nbeads): - kmd += (pnm[b,k]**2 + pnm[b,k+1]**2 + pnm[b,k+2]**2)/(2.0*dm3[b,k]) - ncount += 1 - - if ncount == 0: - warning("Couldn't find an atom which matched the argument of kinetic energy, setting to zero.", verbosity.medium) - - return kmd/self.beads.nbeads - - def get_ktens(self, atom=""): - """Calculates the quantum centroid virial kinetic energy - TENSOR estimator. - - Args: - atom: The index of the atom for which the kinetic energy tensor - is to be output, or the index of the type of atoms for which - it should be output. - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output kinetic tensor as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - tkcv = np.zeros((6),float) - ncount = 0 - for i in range(self.beads.natoms): - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - tkcv += self.get_kij(str(i), str(i)) - ncount += 1 - - if ncount == 0: - warning("Couldn't find an atom which matched the argument of kinetic tensor, setting to zero.", verbosity.medium) - - return tkcv - - def get_kij(self, ni="0", nj="0"): - """Calculates the quantum centroid virial kinetic energy - TENSOR estimator for two possibly different atom indices. - - Args: - ni: The index of atom i. - nj: The index of atom j. - - Returns: - The contribution to the kinetic energy tensor estimator from - the interactions between atom i and atom j. - """ - - i = int(ni) - j = int(nj) - if i >= self.beads.natoms: - raise IndexError("Cannot output kinetic_ij as atom index %d is larger than the number of atoms" % i) - if j >= self.beads.natoms: - raise IndexError("Cannot output kinetic_ij as atom index %d is larger than the number of atoms" % j) - mi = self.beads.m[i] - mj = self.beads.m[j] - ai = 3*i - aj = 3*j - - q = depstrip(self.beads.q) - qc = depstrip(self.beads.qc) - f = depstrip(self.forces.f) - - # I implement this for the most general case. In practice T_ij = /(2sqrt(m_i m_j)) - kcv = np.zeros((6),float) - for b in range(self.beads.nbeads): - kcv[0] += mi*(q[b,ai] - qc[ai]) *f[b,aj] + mj*(q[b,aj] - qc[aj]) *f[b,ai] #Txx - kcv[1] += mi*(q[b,ai+1] - qc[ai+1])*f[b,aj+1] + mj*(q[b,aj+1] - qc[aj+1])*f[b,ai+1] #Tyy - kcv[2] += mi*(q[b,ai+2] - qc[ai+2])*f[b,aj+2] + mj*(q[b,aj+2] - qc[aj+2])*f[b,ai+2] #Tzz - kcv[3] += mi*(q[b,ai] - qc[ai])* f[b,aj+1] + mj*(q[b,aj+1] - qc[aj+1])*f[b,ai] #Txy - kcv[4] += mi*(q[b,ai] - qc[ai])* f[b,aj+2] + mj*(q[b,aj+2] - qc[aj+2])*f[b,ai] #Txz - kcv[5] += mi*(q[b,ai+1] - qc[ai+1])*f[b,aj+2] + mj*(q[b,aj+2] - qc[aj+2])*f[b,ai+1] #Tyz - - kcv *= -0.5/(self.beads.nbeads*2*np.sqrt(mi*mj)) - if i == j: - kcv[0:3] += 0.5*Constants.kb*self.ensemble.temp - - return kcv - - def get_rg(self, atom=""): - """Calculates the radius of gyration of the ring polymers. - - Args: - atom: If given, specifies the atom to give the gyration radius - for. If not, the system average gyration radius is given. - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output gyration radius as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - q = depstrip(self.beads.q) - qc = depstrip(self.beads.qc) - nat = self.beads.natoms - nb = self.beads.nbeads - rg_tot = 0.0 - ncount = 0 - for i in range(nat): - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - rg_at = 0.0 - for j in range(nb): - dq = q[j,3*i:3*(i+1)] - qc[3*i:3*(i+1)] - rg_at += np.dot(dq, dq) - ncount += 1 - rg_tot += np.sqrt(rg_at/float(nb)) - - if ncount == 0: - raise IndexError("Couldn't find an atom which matched the argument of r_gyration") - - return rg_tot/float(ncount) - - def kstress_cv(self): - """Calculates the quantum centroid virial kinetic stress tensor - estimator. - - Note that this is not divided by the volume or the number of beads. - - Returns: - A 3*3 tensor with all the components of the tensor. - """ - - 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) - fall = depstrip(self.forces.f) - na3 = 3*self.beads.natoms - - 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]) - - # return the CV estimator MULTIPLIED BY NBEADS -- again for consistency with the virial, kstress_MD, etc... - for i in range(3): - kst[i,i] += self.beads.nbeads * ( np.dot(pc[i:na3:3],pc[i:na3:3]/m) ) - - return kst - - def opening(self, bead): - """Path opening function, used in linlin momentum distribution - estimator. - - Args: - bead: The index of the bead to shift. - """ - - return bead/float(self.beads.nbeads) + 0.5*(1.0/self.beads.nbeads - 1) - - def get_linlin(self, ux="0", uy="0", uz="0", atom=""): - """Calculates the end-to-end distribution for a particular path opening - vector. - - Args: - ux: The x-component of the path opening vector. - uy: The y-component of the path opening vector. - uz: The z-component of the path opening vector. - atom: If given, specifies the atom to give the kinetic energy - for. If not, the simulation kinetic energy is given. - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output linlin estimator as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - beta = 1.0/(self.ensemble.temp*Constants.kb) - - u = np.array([float(ux), float(uy), float(uz)]) - u_size = np.dot(u,u) - q = depstrip(self.beads.q) - nat = self.beads.natoms - nb = self.beads.nbeads - nx_tot = 0.0 - ncount = 0 - for i in range(nat): - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - mass = self.beads.m[i] - self.dbeads.q[:] = q - for b in range(nb): - self.dbeads.q[b,3*i:3*(i+1)] += self.opening(b)*u - dV = self.dforces.pot - self.forces.pot - - n0 = np.exp(-mass*u_size/(2.0*beta*Constants.hbar**2)) - nx_tot += n0*np.exp(-dV*beta/float(self.beads.nbeads)) - ncount += 1 - - if ncount == 0: - raise IndexError("Couldn't find an atom which matched the argument of linlin") - - return nx_tot/float(ncount) - - def get_yama_estimators(self, fd_delta= - _DEFAULT_FINDIFF): - """Calculates the quantum scaled coordinate kinetic energy estimator. - - Uses a finite difference method to calculate the estimators - needed to calculate the energy and heat capacity of the system, as - shown in Takeshi M. Yamamoto, Journal of Chemical Physics, - 104101, 123 (2005). Returns both eps_v and eps_v' as defined in - the above article. Note that heat capacity is calculated as - beta**2*kboltzmann*( - **2 - ), and the - energy of the system as . - - Args: - fd_delta: the relative finite difference in temperature to apply in - computing finite-difference quantities. If it is negative, will be - scaled down automatically to avoid discontinuities in the potential. - """ - - dbeta = abs(float(fd_delta)) - beta = 1.0/(Constants.kb*self.ensemble.temp) - - qc = depstrip(self.beads.centroid.q) - q = depstrip(self.beads.q) - v0 = self.forces.pot/self.beads.nbeads - while True: - splus = np.sqrt(1.0 + dbeta) - sminus = np.sqrt(1.0 - dbeta) - - for b in range(self.beads.nbeads): - self.dbeads[b].q = qc*(1.0 - splus) + splus*q[b,:] - vplus = self.dforces.pot/self.beads.nbeads - - for b in range(self.beads.nbeads): - self.dbeads[b].q = qc*(1.0 - sminus) + sminus*q[b,:] - vminus = self.dforces.pot/self.beads.nbeads - - if (fd_delta < 0 and abs((vplus + vminus)/(v0*2) - 1.0) > self._DEFAULT_FDERROR and dbeta > self._DEFAULT_MINFID): - dbeta *= 0.5 - info("Reducing displacement in Yamamoto kinetic estimator", verbosity.low) - continue - else: - eps = ((1.0 + dbeta)*vplus - (1.0 - dbeta)*vminus)/(2*dbeta) - eps += 0.5*(3*self.beads.natoms)/beta - - eps_prime = ((1.0 + dbeta)*vplus + (1.0 - dbeta)*vminus - 2*v0)/(dbeta**2*beta) - eps_prime -= 0.5*(3*self.beads.natoms)/beta**2 - - break - - return np.asarray([eps, eps_prime]) - - def get_isotope_yama(self, alpha="1.0", atom=""): - """Gives the components of the yamamoto scaled-mass KE estimator - for a given atom index. - - Args: - alpha: m'/m the mass ratio - atom: the index of the atom to compute the isotope fractionation - pair for, or a label - - Returns: - a tuple from which one can reconstruct all that is needed to - compute the SMKEE, and its statistical accuracy: - (sum_deltah, sum_ke, log(sum(weights)), log(sum(weight*ke)), - sign(sum(weight*ke)) ) - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output scaled-mass kinetic energy estimator as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - alpha = float(alpha) - - atcv = 0.0 - atcv2 = 0.0 - alogr = 0.0 - alogr2 = 0.0 - law = 0.0 - lawke = 0.0 - sawke = 1.0 - ni = 0 - - # strips dependency control since we are not gonna change the true beads in what follows - q = depstrip(self.beads.q) - f = depstrip(self.forces.f) - qc = depstrip(self.beads.qc) - - for i in range(self.beads.natoms): - # selects only the atoms we care about - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - ni += 1 - - # arranges coordinate-scaled beads in a auxiliary beads object - self.dbeads.q[:] = q[:] - for b in range(self.beads.nbeads): - self.dbeads.q[b,3*i:3*(i+1)] = ( qc[3*i:3*(i+1)]+ - np.sqrt(1.0/alpha)*(q[b,3*i:3*(i+1)]-qc[3*i:3*(i+1)]) ) - - tcv = 0.0 - for b in range(self.beads.nbeads): - tcv += np.dot( (self.dbeads.q[b,3*i:3*(i+1)]-self.dbeads.qc[3*i:3*(i+1)]), - self.dforces.f[b,3*i:3*(i+1)] ) - tcv *= -0.5/self.beads.nbeads - tcv += 1.5*Constants.kb*self.simul.ensemble.temp - - logr = (self.dforces.pot-self.forces.pot)/(Constants.kb*self.simul.ensemble.temp*self.beads.nbeads) - - atcv += tcv - atcv2 += tcv*tcv - - alogr += logr - alogr2 += logr*logr; - - #accumulates log averages in a way which preserves accuracy - if (ni == 1): - law = -logr - else: - (law, drop) = logsumlog( (law,1.0), (-logr,1.0)) - - #here we need to take care of the sign of tcv, which might as well be - #negative... almost never but... - if (ni == 1): - lawke = -logr + np.log(abs(tcv)) - sawke = np.sign(tcv); - else: - (lawke, sawke) = logsumlog( (lawke, sawke), (-logr+np.log(abs(tcv)), np.sign(tcv)) ) - - if ni == 0: - raise IndexError("Couldn't find an atom which matched the argument of isotope_y") - - return np.asarray([alogr/ni, alogr2/ni, atcv/ni, atcv2/ni, law, lawke, sawke]) - - def get_isotope_thermo(self, alpha="1.0", atom=""): - """Gives the components of the thermodynamic scaled-mass KE - estimator for a given atom index. - - Args: - alpha: m'/m the mass ratio - atom: the index of the atom to compute the isotope fractionation - pair for, or a label - - Returns: - a tuple from which one can reconstruct all that is needed to - compute the SMKEE: - (sum_deltah, sum_ke, log(sum(weights)), log(sum(weight*ke)), - sign(sum(weight*ke)) ) - """ - - try: - #iatom gives the index of the atom to be studied - iatom = int(atom) - latom = "" - if iatom >= self.beads.natoms: - raise IndexError("Cannot output scaled-mass kinetic energy estimator as atom index %d is larger than the number of atoms" % iatom) - except ValueError: - #here 'atom' is a label rather than an index which is stored in latom - iatom = -1 - latom = atom - - alpha = float(alpha) - - atcv = 0.0 - alogr = 0.0 - atcv2 = 0.0 - alogr2 = 0.0 - law = 0.0 - lawke = 0.0 - sawke = 1.0 - ni = 0 - - # strips dependency control since we are not gonna change the true beads in what follows - q = depstrip(self.beads.q) - f = depstrip(self.forces.f) - qc = depstrip(self.beads.qc) - - for i in range(self.beads.natoms): - # selects only the atoms we care about - if (atom != "" and iatom != i and latom != self.beads.names[i]): - continue - - ni += 1 - - spr = 0.0 - for b in range(1,self.beads.nbeads): - for j in range(3*i,3*(i+1)): - spr += (q[b,j]-q[b-1,j])**2 - for j in range(3*i,3*(i+1)): - spr += (q[self.beads.nbeads-1,j]-q[0,j])**2 - - spr *= 0.5*self.beads.m[i]*self.nm.omegan2 - - # centroid virial contribution from atom i - tcv = 0.0 - for b in range(self.beads.nbeads): - tcv += np.dot( (q[b,3*i:3*(i+1)]-qc[3*i:3*(i+1)]), f[b,3*i:3*(i+1)]) - tcv *= -0.5/self.beads.nbeads - tcv += 1.5*Constants.kb*self.simul.ensemble.temp - - logr = (alpha-1)*spr/(Constants.kb*self.simul.ensemble.temp*self.beads.nbeads) - - atcv += tcv - atcv2 += tcv*tcv - alogr += logr - alogr2 += logr*logr - - #accumulates log averages in a way which preserves accuracy - if (ni == 1): - law = -logr - else: - (law, drop) = logsumlog( (law,1.0), (-logr,1.0)) - - #here we need to take care of the sign of tcv, which might as well be - #negative... almost never but... - if (ni == 1): - lawke = -logr + np.log(abs(tcv)) - sawke = np.sign(tcv) - else: - (lawke, sawke) = logsumlog( (lawke, sawke), (-logr+np.log(abs(tcv)), np.sign(tcv)) ) - - if ni == 0: - raise IndexError("Couldn't find an atom which matched the argument of isotope_y") - - return np.asarray([alogr/ni, alogr2/ni, atcv/ni, atcv2/ni, law, lawke, sawke]) - - -class Trajectories(dobject): - """A simple class to take care of output of trajectory data. - - Attributes: - simul: The simulation object from which the position data will be - obtained. - fatom: A dummy beads object used so that individual replica trajectories - can be output. - traj_dict: A dictionary containing all the trajectories that can be - output. - """ - - def __init__(self): - """Initializes a Trajectories object.""" - - self.traj_dict = { - # Note that here we want to return COPIES of the different arrays, so we make sure to make an operation in order not to return a reference. - "positions": { "dimension" : "length", - "help": "The atomic coordinate trajectories. Will print out one file per bead, unless the bead attribute is set by the user.", - 'func': (lambda : 1.0*self.simul.beads.q)}, - "velocities": {"dimension" : "velocity", - "help": "The velocity trajectories. Will print out one file per bead, unless the bead attribute is set by the user.", - 'func': (lambda : self.simul.beads.p/self.simul.beads.m3)}, - "momenta": {"dimension" : "momentum", - "help": "The momentum trajectories. Will print out one file per bead, unless the bead attribute is set by the user.", - 'func': (lambda : 1.0*self.simul.beads.p)}, - "forces": { "dimension" : "force", - "help": "The force trajectories. Will print out one file per bead, unless the bead attribute is set by the user.", - 'func': (lambda : 1.0*self.simul.forces.f)}, - "x_centroid": {"dimension" : "length", - "help": "The centroid coordinates.", - 'func': (lambda : 1.0*self.simul.beads.qc)}, - "v_centroid": {"dimension" : "velocity", - "help": "The centroid velocity.", - 'func': (lambda : self.simul.beads.pc/self.simul.beads.m3[0])}, - "p_centroid": {"dimension" : "momentum", - "help": "The centroid momentum.", - 'func': (lambda : 1.0*self.simul.beads.pc)}, - "f_centroid": {"dimension" : "force", - "help": "The force acting on the centroid.", - 'func': (lambda : np.sum(self.simul.forces.f,0)/float(self.simul.beads.nbeads))}, - "kinetic_cv": {"dimension" : "energy", - "help": "The centroid virial quantum kinetic energy estimator for each atom, resolved into Cartesian components [xx, yy, zz]", - 'func': self.get_akcv}, - "kinetic_od": {"dimension" : "energy", - "help": "The off diagonal elements of the centroid virial quantum kinetic energy tensor [xy, xz, yz]", - 'func': self.get_akcv_od}, - "r_gyration": {"dimension" : "length", - "help": "The radius of gyration of the ring polymer, for each atom and resolved into Cartesian components [xx, yy, zz]", - 'func': self.get_rg}, - "extras": { "help": """The additional data returned by the client code, printed verbatim. Will print - out one file per bead, unless the bead attribute is set by the user.""", - 'func': (lambda : self.simul.forces.extras)} - } - - - def bind(self, simul): - """ Binds to a simulation object to fetch atomic and force data. - - Args: - simul: The simulation object that will be managed by this Trajectories. - """ - - self.simul = simul - self.fatom = simul.beads[0].copy() - - def get_akcv(self): - """Calculates the contribution to the kinetic energy due to each degree - of freedom. - """ - - rv = np.zeros(self.simul.beads.natoms*3) - for b in range(self.simul.beads.nbeads): - rv[:] += (self.simul.beads.q[b]-self.simul.beads.qc)*self.simul.forces.f[b] - rv *= -0.5/self.simul.beads.nbeads - rv += 0.5*Constants.kb*self.simul.ensemble.temp - return rv - - def get_akcv_od(self): - """Calculates the "off-diagonal" contribution to the kinetic energy tensor - due to each atom. - """ - - rv = np.zeros((self.simul.beads.natoms,3)) - # helper arrays to make it more obvious what we are computing - dq = np.zeros((self.simul.beads.natoms,3)) - f = np.zeros((self.simul.beads.natoms,3)) - for b in range(self.simul.beads.nbeads): - dq[:] = (self.simul.beads.q[b]-self.simul.beads.qc).reshape((self.simul.beads.natoms,3)) - f[:] = self.simul.forces.f[b].reshape((self.simul.beads.natoms,3)) - rv[:,0] += dq[:,0]*f[:,1] + dq[:,1]*f[:,0] - rv[:,1] += dq[:,0]*f[:,2] + dq[:,2]*f[:,0] - rv[:,2] += dq[:,1]*f[:,2] + dq[:,2]*f[:,1] - rv *= 0.5 - rv *= -0.5/self.simul.beads.nbeads - - return rv.reshape(self.simul.beads.natoms*3) - - def get_rg(self): - """Calculates the radius of gyration of the ring polymers. - - Computes separately the x, y, z contributions so that the actual - gyration radius can be recovered as sqrt(rx^2+ry^2+rz^2). - """ - - q = depstrip(self.simul.beads.q) - qc = depstrip(self.simul.beads.qc) - nat = self.simul.beads.natoms - nb = self.simul.beads.nbeads - rg = np.zeros(3*nat) - for i in range(nb): - for j in range(nat): - dq = q[i,3*j:3*(j+1)] - qc[3*j:3*(j+1)] - rg[3*j:3*(j+1)] += dq*dq - return np.sqrt(rg/float(nb)) - - def __getitem__(self, key): - """Retrieves the item given by key. - - Note that if the key contains a string (arg1; arg2; ... ) - then it will pass the appropriate positional arguments to the - calculation function of the property. Note the brackets and - the semi-colon separators. If instead we have the syntax - (arg1=val1;arg2; ... ), then the keyword/value pair (arg1,val1) - will be added to the keyword argument list. The appropriate key word - arguments will then be passed to the calculation function instead. - - Similarly, if the key contains a string {unit}, then it will take - the string 'unit' and use it to define the units that the trajectory - is output in. - - Args: - key: A string contained in trajectory_dict. - - Returns: - The trajectory labeled by the keyword key, along with its unit - keyword, and the argument lists for the function used to calculate - the trajectory specified by the keyword key. - """ - - (key, unit, arglist, kwarglist) = getall(key) - pkey = self.traj_dict[key] - - #pkey["func"](*arglist,**kwarglist) gives the value of the trajectory - #in atomic units. unit_to_user() returns the value in the user - #specified units. - if "dimension" in pkey and unit != "": - return unit_to_user(pkey["dimension"], unit, 1.0) * pkey["func"](*arglist,**kwarglist) - else: - return pkey["func"](*arglist,**kwarglist) - - def print_traj(self, what, stream, b=0, format="pdb", cell_units="atomic_unit", flush=True): - """Prints out a frame of a trajectory for the specified quantity and bead. - - Args: - what: A string specifying what to print. - b: The bead index. Defaults to 0. - stream: A reference to the stream on which data will be printed. - format: The output file format. - cell_units: The units used to specify the cell parameters. - flush: A boolean which specifies whether to flush the output buffer - after each write to file or not. - """ - - cq = self[what] - if getkey(what) in [ "extras" ] : - stream.write(" #*EXTRAS*# Step: %10d Bead: %5d \n" % (self.simul.step+1, b) ) - stream.write(cq[b]) - stream.write("\n") - if flush : - stream.flush() - os.fsync(stream) - return - elif getkey(what) in [ "positions", "velocities", "forces" ] : - self.fatom.q[:] = cq[b] - else: - self.fatom.q[:] = cq - - fcell = Cell() - fcell.h = self.simul.cell.h*unit_to_user("length", cell_units, 1.0) - - if format == "pdb": - io_pdb.print_pdb(self.fatom, fcell, stream, title=("Traj: %s Step: %10d Bead: %5d " % (what, self.simul.step+1, b) ) ) - elif format == "xyz": - io_xyz.print_xyz(self.fatom, fcell, stream, title=("Traj: %s Step: %10d Bead: %5d " % (what, self.simul.step+1, b) ) ) - elif format == "bin": - io_binary.print_bin(self.fatom, fcell, stream, title=("Traj: %s Step: %10d Bead: %5d " % (what, self.simul.step+1, b) ) ) - if flush : - stream.flush() - os.fsync(stream) diff --git a/tools/i-pi/ipi/engine/simulation.py b/tools/i-pi/ipi/engine/simulation.py deleted file mode 100644 index b1483de576..0000000000 --- a/tools/i-pi/ipi/engine/simulation.py +++ /dev/null @@ -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 . - - -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() diff --git a/tools/i-pi/ipi/engine/thermostats.py b/tools/i-pi/ipi/engine/thermostats.py deleted file mode 100644 index 7941f55916..0000000000 --- a/tools/i-pi/ipi/engine/thermostats.py +++ /dev/null @@ -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 . - - -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) - diff --git a/tools/i-pi/ipi/inputs/README b/tools/i-pi/ipi/inputs/README deleted file mode 100644 index 547884031d..0000000000 --- a/tools/i-pi/ipi/inputs/README +++ /dev/null @@ -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. diff --git a/tools/i-pi/ipi/inputs/__init__.py b/tools/i-pi/ipi/inputs/__init__.py deleted file mode 100644 index 8e5fcd5089..0000000000 --- a/tools/i-pi/ipi/inputs/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -__all__ = [ 'barostats', 'cell', 'simulation', 'ensembles', 'thermostats', - 'interface', 'forces', 'atoms', 'beads', 'prng', 'outputs', - 'normalmodes', 'initializer'] diff --git a/tools/i-pi/ipi/inputs/atoms.py b/tools/i-pi/ipi/inputs/atoms.py deleted file mode 100644 index 4ae16bfdf5..0000000000 --- a/tools/i-pi/ipi/inputs/atoms.py +++ /dev/null @@ -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 . - - -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 "" diff --git a/tools/i-pi/ipi/inputs/barostats.py b/tools/i-pi/ipi/inputs/barostats.py deleted file mode 100644 index 84d0d83f43..0000000000 --- a/tools/i-pi/ipi/inputs/barostats.py +++ /dev/null @@ -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 . - - -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 diff --git a/tools/i-pi/ipi/inputs/beads.py b/tools/i-pi/ipi/inputs/beads.py deleted file mode 100644 index d889563d92..0000000000 --- a/tools/i-pi/ipi/inputs/beads.py +++ /dev/null @@ -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 . - - -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 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 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 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 input.") - - return beads diff --git a/tools/i-pi/ipi/inputs/cell.py b/tools/i-pi/ipi/inputs/cell.py deleted file mode 100644 index 9b316ef92f..0000000000 --- a/tools/i-pi/ipi/inputs/cell.py +++ /dev/null @@ -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 . - - -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) diff --git a/tools/i-pi/ipi/inputs/ensembles.py b/tools/i-pi/ipi/inputs/ensembles.py deleted file mode 100644 index 4a5519fff7..0000000000 --- a/tools/i-pi/ipi/inputs/ensembles.py +++ /dev/null @@ -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 . - - -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") diff --git a/tools/i-pi/ipi/inputs/forces.py b/tools/i-pi/ipi/inputs/forces.py deleted file mode 100644 index d343e19e0f..0000000000 --- a/tools/i-pi/ipi/inputs/forces.py +++ /dev/null @@ -1,176 +0,0 @@ -"""Deals with creating the forcefield 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 . - - -Classes: - InputForces: Deals with creating all the forcefield objects. - InputForceBeads: Base class to deal with one particular forcefield object. - InputFBSocket: Deals with creating a forcefield using sockets. -""" - -__all__ = ['InputForces', 'InputForceBeads', "InputFBSocket"] - -from copy import copy -from ipi.engine.forces import * -from ipi.inputs.interface import InputInterfaceSocket -from ipi.utils.inputvalue import * - -class InputForceBeads(Input): - """ForceBeads input class. - - Handles generating one instance of a particular forcefield class from the xml - input file, and generating the xml checkpoint tags and data from an - instance of the object. - - Attributes: - nbeads: The number of beads that the forcefield will be evaluated on. - weight: A scaling factor for the contribution from this forcefield. - """ - - attribs = { "nbeads" : ( InputAttribute, { "dtype" : int, - "default" : 0, - "help" : "If the forcefield is to be evaluated on a contracted ring polymer, this gives the number of beads that are used. If not specified, the forcefield will be evaluated on the full ring polymer." } ), - "weight" : ( InputAttribute, { "dtype" : float, - "default" : 1.0, - "help" : "A scaling factor for this forcefield, to be applied before adding the force calculated by this forcefield to the total force." } ) - } - - default_help = "Base class that deals with the assigning of force calculation jobs and collecting the data." - default_label = "FORCEBEADS" - - def store(self, forceb): - """Takes a ForceBeads instance and stores a minimal representation of it. - - Args: - forceb: A ForceBeads object. - """ - - Input.store(self,forceb) - self.nbeads.store(forceb.nbeads) - self.weight.store(forceb.weight) - - def fetch(self): - """Creates a ForceBeads object. - - Returns: - A ForceBeads object. - """ - - super(InputForceBeads,self).fetch() - - return ForceBeads(model=ForceField(), nbeads=self.nbeads.fetch(), weight=self.weight.fetch()) - - def check(self): - """Checks for optional parameters.""" - - super(InputForceBeads,self).check() - if self.nbeads.fetch() < 0: - raise ValueError("The forces must be evaluated over a positive number of beads.") - - -class InputFBSocket(InputForceBeads, InputInterfaceSocket): - """Creates a ForceBeads object with a socket interface. - - Handles generating one instance of a socket interface forcefield class. - Shares its attributes between InputForceBeads, which deals with creating the - forcefield, and InputInterfaceSocket, which deals with creating the socket - interface. - """ - - attribs = copy(InputInterfaceSocket.attribs) - attribs.update(InputForceBeads.attribs) - - default_help = "Deals with the assigning of force calculation jobs to different driver codes, and collecting the data, using a socket for the data communication." - default_label = "SOCKET" - - def store(self, forceb): - """Takes a ForceField instance and stores a minimal representation of it. - - Args: - forceb: A ForceBeads object with a FFSocket forcemodel object. - """ - - if (not type(forceb.f_model) is FFSocket): - raise TypeError("The type " + type(forceb.f_model).__name__ + " is not a valid socket forcefield") - - InputForceBeads.store(self,forceb) - InputInterfaceSocket.store(self,forceb.f_model.socket) - - def fetch(self): - """Creates a ForceBeads object. - - Returns: - A ForceBeads object with the correct socket parameters. - """ - - return ForceBeads(model=FFSocket( interface=InputInterfaceSocket.fetch(self) ),nbeads=self.nbeads.fetch(),weight=self.weight.fetch() ) - - def check(self): - """Deals with optional parameters.""" - - InputInterfaceSocket.check(self) - InputForceBeads.check(self) - - -class InputForces(Input): - """Deals with creating all the forcefield objects required in the - simulation. - - Dynamic fields: - socket: Socket object to create the server socket. - """ - - #At the moment only socket driver codes implemented, other types - #could be used in principle - dynamic = { "socket" : (InputFBSocket, { "help" : InputFBSocket.default_help } ) - } - - default_help = "Deals with creating all the necessary forcefield objects." - default_label = "FORCES" - - def fetch(self): - """Returns a list of the output objects included in this dynamic - container. - - Returns: - A list of tuples, with each tuple being of the form ('type', 'object'), - where 'type' is the type of forcefield, and 'object' is a - """ - - super(InputForces, self).fetch() - flist = [ (n, f.fetch()) for (n, f) in self.extra ] - - return flist - - def store(self, flist): - """Stores a list of the output objects, creating a sequence of - dynamic containers. - - Args: - flist: A list of tuples, with each tuple being of the form - ('type', 'object') where 'type' is the type of forcefield - and 'object' is a forcefield object of that type. - """ - - super(InputForces, self).store() - self.extra = [] - - for el in flist: - if el[0]=="socket": - iff = InputFBSocket() - iff.store(el[1]) - self.extra.append(("socket", iff)) diff --git a/tools/i-pi/ipi/inputs/initializer.py b/tools/i-pi/ipi/inputs/initializer.py deleted file mode 100644 index f78a617e2a..0000000000 --- a/tools/i-pi/ipi/inputs/initializer.py +++ /dev/null @@ -1,406 +0,0 @@ -"""Deals with creating the initiliazer 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 . - - -Classes: - InputInitializer: Initializes the classes that initialize the simulation - data. - InputInitFile: Initializes the classes that initialize the simulation data - from a file. Rather than initializing one piece of data, everything that - can be initialized from that file will be. - InputInitPositions: Initializes the positions. - InputInitMomenta: Initializes the momenta. - InputInitVelocities: Initializes the velocities. - InputInitMasses: Initializes the masses. - InputInitLabels: Initializes the atom labels. - InputInitCell: Initializes the cell. - InputInitThermo: Initializes the thermostat. - InputInitBase: The base class for all Initializer objects. - InputInitIndexed: The class for all Initializer objects which can be called - to initialize data for a particular atom or bead. -""" - -import numpy as np -from copy import copy, deepcopy -import ipi.utils.mathtools as mt -import ipi.engine.initializer as ei -from ipi.utils.inputvalue import * -from ipi.inputs.beads import InputBeads -from ipi.inputs.cell import InputCell -from ipi.utils.io import io_xml -from ipi.utils.messages import verbosity, warning - -__all__ = ['InputInitializer', 'InputInitFile', 'InputInitPositions', 'InputInitMomenta', 'InputInitVelocities', 'InputInitMasses', 'InputInitLabels', 'InputInitCell', 'InputInitThermo'] - -class InputInitBase(InputValue): - """Base class to handle initialization. - - Attributes: - mode: The type of data to be initialized from. - _initclass: Which InputInit class to use to read the data. - _storageclass: Which data type to use to hold the data. - """ - - attribs = deepcopy(InputValue.attribs) - attribs["mode"] = (InputAttribute,{ "dtype" : str, "default": "other", "help": "The input data format. 'xyz' and 'pdb' stand for xyz and pdb input files respectively. 'chk' stands for initialization from a checkpoint file. 'manual' means that the value to initialize from is giving explicitly as a vector. 'thermal' means that the data is to be generated from a Maxwell-Boltzmann distribution at the given temperature.", "options": None } ) - - default_label = "INITBASE" - default_help = "This is the base class for initialization. Initializers for different aspects of the simulation can be inherit for it for the base methods." - - _initclass = ei.InitBase - _storageclass = float - - def __init__(self, help=None, default=None, dtype=None, options=None, dimension=None): - """Initializes InputInitFile. - - Just calls the parent initialize function with appropriate arguments. - """ - - super(InputInitBase,self).__init__(dtype=str, dimension=dimension, default=default, options=options, help=help) - - def store(self, ibase): - """Takes a InitBase instance and stores a minimal representation of it. - - Args: - ibase: An input base object. - """ - - if ibase.mode == "manual": - if hasattr(value, __len__): - value = io_xml.write_list(ibase.value) - else: # if it's a single value then just write the value - value = io_xml.write_type(self._storageclass, ibase.value) - else: # just store the value as a string - value = ibase.value - - super(InputInitBase,self).store(value, units=ibase.units) - - for k in self.attribs: # store additional attributes from the input class - self.__dict__[k].store(ibase.__dict__[k]) - - def getval(self): - """Calculates the value from the data supplied in the xml file. - - Either reads the string from the input file as an array of numbers, - or as a string specifying either a file name or a single value. - """ - - value = super(InputInitBase,self).fetch() - if self.mode.fetch() == "manual": - if '[' in value and ']' in value: # value appears to be a list - if self._storageclass is float: - value = io_xml.read_array(np.float, value) - else: - value = io_xml.read_list(value) - else: - value = io_xml.read_type(self._storageclass, value) - else: - value = str(value) # typically this will be a no-op - return value - - def fetch(self, initclass=None): - """Creates an input base object. - - Returns: - An input base object. - """ - - rdict = {} - for k in self.attribs: - rdict[k] = self.__dict__[k].fetch() - - if initclass is None: # allows for some flexibility in return class - initclass = self._initclass - - return initclass(value=self.getval(), **rdict) - - -class InputInitFile(InputInitBase): - """Class to handle initialization from a file.""" - - attribs = deepcopy(InputInitBase.attribs) - attribs["mode"][1]["default"] = "chk" - attribs["mode"][1]["options"] = ["xyz", "pdb", "chk"] - attribs["mode"][1]["help"] = "The input data format. 'xyz' and 'pdb' stand for xyz and pdb input files respectively. 'chk' stands for initialization from a checkpoint file." - - default_label = "INITFILE" - default_help = "This is the class to initialize from file." - - -class InputInitThermo(InputInitBase): - """Class to handle initialization of the thermostat.""" - - attribs = deepcopy(InputInitBase.attribs) - attribs["mode"][1]["default"] = "manual" - attribs["mode"][1]["options"] = ["chk", "manual"] - attribs["mode"][1]["help"] = "'chk' stands for initialization from a checkpoint file. 'manual' means that the value to initialize from is giving explicitly as a vector." - - default_label = "INITTHERMO" - default_help = "This is the class to initialize the thermostat (ethermo and fictitious momenta)." - - -class InputInitIndexed(InputInitBase): - """Class to handle initialization of properties which the value of each - bead and atom can be specified. - - Attributes: - index: Which atom to initialize the value of. - bead: Which bead to initialize the value of. - """ - - attribs = deepcopy(InputInitBase.attribs) - attribs["index"] = (InputAttribute,{ "dtype" : int, "default": -1, "help": "The index of the atom for which the value will be set. If a negative value is specified, then all atoms are assumed." } ) - attribs["bead"] = (InputAttribute,{ "dtype" : int, "default": -1, "help": "The index of the bead for which the value will be set. If a negative value is specified, then all beads are assumed." } ) - - default_label = "INITINDEXED" - default_help = "This is a helper class to initialize with an index." - - -class InputInitPositions(InputInitIndexed): - """Class to handle initialization of the positions.""" - - attribs = deepcopy(InputInitIndexed.attribs) - attribs["mode"][1]["default"] = "chk" - attribs["mode"][1]["options"] = ["manual", "xyz", "pdb", "chk"] - attribs["mode"][1]["help"] = "The input data format. 'xyz' and 'pdb' stand for xyz and pdb input files respectively. 'chk' stands for initialization from a checkpoint file. 'manual' means that the value to initialize from is giving explicitly as a vector." - - default_label = "INITPOSITIONS" - default_help = "This is the class to initialize positions." - _initclass = ei.InitIndexed - - -class InputInitMomenta(InputInitPositions): - """Class to handle initialization of the momenta.""" - - attribs = deepcopy(InputInitPositions.attribs) - attribs["mode"][1]["options"].append( "thermal" ) - attribs["mode"][1]["help"] = "The input data format. 'xyz' and 'pdb' stand for xyz and pdb input files respectively. 'chk' stands for initialization from a checkpoint file. 'manual' means that the value to initialize from is giving explicitly as a vector. 'thermal' means that the data is to be generated from a Maxwell-Boltzmann distribution at the given temperature." - - default_label = "INITMOMENTA" - default_help = "This is the class to initialize momenta." - - def fetch(self): - """Creates an momentum initializer object. - - Note that the momenta can be initialized by a single value, specifying - the temperature at which to thermalize the momenta. - """ - - if self.mode.fetch() == "thermal": - return self._initclass(value=float(InputValue.fetch(self)), mode=self.mode.fetch(), units=self.units.fetch(), index=self.index.fetch(), bead=self.bead.fetch()) - else: - return super(InputInitMomenta,self).fetch() - - -class InputInitVelocities(InputInitMomenta): - """Class to handle initialization of the velocities.""" - - attribs = deepcopy(InputInitMomenta.attribs) - - default_label = "INITVELOCITIES" - default_help = "This is the class to initialize velocities." - - -class InputInitMasses(InputInitPositions): - """Class to handle initialization of the masses.""" - - attribs = deepcopy(InputInitPositions.attribs) - - default_label = "INITMASSES" - default_help = "This is the class to initialize atomic masses." - - -class InputInitLabels(InputInitPositions): - """Class to handle initialization of the atom labels.""" - - attribs = deepcopy(InputInitPositions.attribs) - - default_label = "INITLABELS" - default_help = "This is the class to initialize atomic labels." - - _storageclass = str - - -class InputInitCell(InputInitBase): - """Class to handle initialization of the cell.""" - - attribs = deepcopy(InputInitBase.attribs) - attribs["mode"] = (InputAttribute, { "dtype" : str, - "default": "manual", - "options": ["manual", "pdb", "chk", "abc", "abcABC"], - "help" : "This decides whether the system box is created from a cell parameter matrix, or from the side lengths and angles between them. If 'mode' is 'manual', then 'cell' takes a 9-elements vector containing the cell matrix (row-major). If 'mode' is 'abcABC', then 'cell' takes an array of 6 floats, the first three being the length of the sides of the system parallelopiped, and the last three being the angles (in degrees) between those sides. Angle A corresponds to the angle between sides b and c, and so on for B and C. If mode is 'abc', then this is the same as for 'abcABC', but the cell is assumed to be orthorhombic. 'pdb' and 'chk' read the cell from a PDB or a checkpoint file, respectively."} ) - - default_label = "INITCELL" - default_help = "This is the class to initialize cell." - - def fetch(self): - """Creates a cell initializer object. - - Note that the cell can be initialized from the lengths of the sides and - the angles between them instead of by a vector, as specified by the - 'abc' or 'abcABC' modes. - """ - - mode = self.mode.fetch() - - ibase = super(InputInitCell,self).fetch() - if mode == "abc" or mode == "abcABC": - - h = io_xml.read_array(np.float, ibase.value) - - if mode == "abc": - if h.size != 3: - raise ValueError("If you are initializing cell from cell side lengths you must pass the 'cell' tag an array of 3 floats.") - else: - h = mt.abc2h(h[0], h[1], h[2], np.pi/2, np.pi/2, np.pi/2) - elif mode == "abcABC": - if h.size != 6: - raise ValueError("If you are initializing cell from cell side lengths and angles you must pass the 'cell' tag an array of 6 floats.") - else: - h = mt.abc2h(h[0], h[1], h[2], h[3]*np.pi/180.0, h[4]*np.pi/180.0, h[5]*np.pi/180.0) - - h.shape = (9,) - ibase.value = h - mode = "manual" - - if mode == "manual": - h = ibase.value - if h.size != 9: - raise ValueError("Cell objects must contain a 3x3 matrix describing the cell vectors.") - - if not (h[3] == 0.0 and h[6] == 0.0 and h[7] == 0.0): - warning("Cell vector matrix must be upper triangular, all elements below the diagonal being set to zero.", verbosity.low) - h[3] = h[6] = h[7] = 0 - ibase.value = h - - return self._initclass(value=ibase.value, mode=mode, units=self.units.fetch()) - - -class InputInitializer(Input): - """Input class to handle initialization. - - Attributes: - nbeads: The number of beads to be used in the simulation. - - Dynamic fields: - positions: An object to initialize the positions from. - velocities: An object to initialize the velocities from. - momenta: An object to initialize the momenta from. - cell: An object to initialize the cell from. - masses: An object to initialize the masses from. - labels: An object to initialize the labels from. - gle: An object to initialize the GLE matrices from. - file: A file from which to initialize multiple properties from. Anything - that can be initialized either directly or indirectly from this file - will be. - """ - - attribs = { "nbeads" : (InputAttribute, {"dtype" : int, - "help" : "The number of beads. Will override any provision from inside the initializer. A ring polymer contraction scheme is used to scale down the number of beads if required. If instead the number of beads is scaled up, higher normal modes will be initialized to zero."}) - } - - dynamic = { - "positions" : (InputInitPositions, { "help" : "Initializes atomic positions. Will take a 'units' attribute of dimension 'length'"}), - "velocities" : (InputInitVelocities, { "help" : "Initializes atomic velocities. Will take a 'units' attribute of dimension 'velocity'" }), - "momenta" : (InputInitMomenta, { "help" : "Initializes atomic momenta. Will take a 'units' attribute of dimension 'momentum'" }), - "masses" : (InputInitMasses, { "help" : "Initializes atomic masses. Will take a 'units' attribute of dimension 'mass'" }), - "labels" : (InputInitLabels, { "help" : "Initializes atomic labels" }), - "cell" : (InputInitCell, { "help" : "Initializes the configuration of the cell. Will take a 'units' attribute of dimension 'length'" }), - "file" : (InputInitFile, { "help" : "Initializes everything possible for the given mode. Will take a 'units' attribute of dimension 'length'. The unit conversion will only be applied to the positions and cell parameters." }), - "gle" : (InputInitThermo, { "help" : "Initializes the additional momenta in a GLE thermostat." }) - } - - default_help = "Specifies the number of beads, and how the system should be initialized." - default_label = "INITIALIZER" - - def write(self, name="", indent=""): - """Overloads Input write() function so that we never write out - InputInitializer to restart files. - - Returns: - An empty string. - """ - - return "" - - def store(self, ii): - """Takes a Initializer instance and stores a minimal representation of it. - - Args: - ii: An initializer object. - """ - - self.extra = [] - - for (k, el) in ii.queue: - if k == "positions" : - ip = InputInitPositions() - ip.store(el) - elif k == "velocities" : - ip = InputInitVelocities() - ip.store(el) - elif k == "momenta" : - ip = InputInitMomenta() - ip.store(el) - elif k == "masses" : - ip = InputInitMasses() - ip.store(el) - elif k == "labels" : - ip = InputInitLabels() - ip.store(el) - elif k == "cell" : - ip = InputInitCell() - ip.store(el) - elif k == "gle" : - ip = InputInitThermo() - ip.store(el) - self.extra.append((k, ip)) - - self.nbeads.store(ii.nbeads) - - def fetch(self): - """Creates an initializer object. - - Returns: - An initializer object. - """ - - super(InputInitializer,self).fetch() - - initlist = [] - for (k,v) in self.extra: - if v.mode.fetch() == "chk" and v.fetch(initclass=ei.InitIndexed).units != "": - raise ValueError("Cannot specify units for initialization from a checkpoint file - units should be defined _inside_ the file.") - if k == "file": - mode = v.mode.fetch() - if mode == "xyz" or mode == "manual" or mode == "pdb" or mode == "chk": - initlist.append( ( "positions", v.fetch(initclass=ei.InitIndexed) ) ) - if mode == "xyz" or mode == "pdb" or mode == "chk": - rm = v.fetch(initclass=ei.InitIndexed) - rm.units = "" - initlist.append( ( "masses", rm ) ) - initlist.append( ( "labels", v.fetch(initclass=ei.InitIndexed) ) ) - if mode == "pdb" or mode == "chk": - initlist.append( ( "cell", v.fetch(initclass=ei.InitIndexed) ) ) - if mode == "chk": - rm = v.fetch(initclass=ei.InitIndexed) - rm.units = "" - initlist.append( ( "momenta", rm ) ) - else: - initlist.append( (k, v.fetch()) ) - - return ei.Initializer(self.nbeads.fetch(), initlist ) diff --git a/tools/i-pi/ipi/inputs/interface.py b/tools/i-pi/ipi/inputs/interface.py deleted file mode 100644 index 2ff092a665..0000000000 --- a/tools/i-pi/ipi/inputs/interface.py +++ /dev/null @@ -1,125 +0,0 @@ -"""Deals with creating the interface between the wrapper and the socket. - -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 . - - -Classes: - InputInterface: Deals with creating the Interface object from a file, and - writing the checkpoints. -""" - -__all__ = [ 'InputInterfaceSocket' ] - -import socket, select, threading, signal, string, os, time -import numpy as np -from ipi.utils.messages import verbosity, warning -from ipi.utils.inputvalue import * -from ipi.interfaces.sockets import * - - -class InputInterfaceSocket(Input): - """Interface input class. - - Handles generating the apporopriate interface class from the xml - input file, and generating the xml checkpoin tags and data from an - instance of the object. - - Attributes: - mode: A string giving the type of socket used. - pbc: A boolean giving whether the atom positions will be folded back - into the unit cell before being sent through the socket or not. - - Fields: - address: A string giving the host name. - port: An integer giving the port used by the socket. - slots: An integer giving the maximum allowed backlog of queued clients. - latency: A float giving the number of seconds that the interface waits - before updating the client list. - timeout: A float giving a number of seconds after which a calculation core - is considered dead. Defaults to zero, i.e. no timeout. - """ - - fields = {"address": (InputValue, {"dtype" : str, - "default" : "localhost", - "help" : "This gives the server address that the socket will run on." } ), - "port": (InputValue, {"dtype" : int, - "default" : 65535, - "help" : "This gives the port number that defines the socket."} ), - "slots": (InputValue, {"dtype" : int, - "default" : 4, - "help" : "This gives the number of client codes that can queue at any one time."} ), - "latency": (InputValue, {"dtype" : float, - "default" : 1e-3, - "help" : "This gives the number of seconds between each check for new clients."} ), - "timeout": (InputValue, {"dtype" : float, - "default" : 0.0, - "help" : "This gives the number of seconds before assuming a calculation has died. If 0 there is no timeout." } )} - attribs = { "mode": (InputAttribute, {"dtype" : str, - "options" : [ "unix", "inet" ], - "default" : "inet", - "help" : "Specifies whether the driver interface will listen onto a internet socket [inet] or onto a unix socket [unix]." } ), - "pbc": ( InputAttribute, { "dtype" : bool, - "default" : True, - "help" : "Applies periodic boundary conditions to the atoms coordinates before passing them on to the driver code." }) - } - - default_help = "Specifies the parameters for the socket interface." - default_label = "INTERFACE" - - def store(self, iface): - """Takes an Interface instance and stores a minimal representation of it. - - Args: - iface: An interface object. - """ - - super(InputInterfaceSocket,self).store(iface) - self.latency.store(iface.latency) - self.mode.store(iface.mode) - self.address.store(iface.address) - self.port.store(iface.port) - self.slots.store(iface.slots) - self.timeout.store(iface.timeout) - self.pbc.store(iface.dopbc) - - def fetch(self): - """Creates an InterfaceSocket object. - - Returns: - An interface object with the appropriate socket given the attributes - of the InputInterfaceSocket object. - """ - - super(InputInterfaceSocket,self).fetch() - return InterfaceSocket(address=self.address.fetch(), port=self.port.fetch(), - slots=self.slots.fetch(), mode=self.mode.fetch(), - latency=self.latency.fetch(), timeout=self.timeout.fetch(), dopbc=self.pbc.fetch()) - - def check(self): - """Function that deals with optional arguments.""" - - super(InputInterfaceSocket,self).check() - if self.port.fetch() < 1 or self.port.fetch() > 65535: - raise ValueError("Port number " + str(self.port.fetch()) + " out of acceptable range.") - elif self.port.fetch() < 1025: - warning("Low port number being used, this may interrupt important system processes.", verbosity.low) - - if self.slots.fetch() < 1 or self.slots.fetch() > 5: - raise ValueError("Slot number " + str(self.slots.fetch()) + " out of acceptable range.") - if self.latency.fetch() < 0: - raise ValueError("Negative latency parameter specified.") - if self.timeout.fetch() < 0.0: - raise ValueError("Negative timeout parameter specified.") diff --git a/tools/i-pi/ipi/inputs/normalmodes.py b/tools/i-pi/ipi/inputs/normalmodes.py deleted file mode 100644 index 0e46051049..0000000000 --- a/tools/i-pi/ipi/inputs/normalmodes.py +++ /dev/null @@ -1,84 +0,0 @@ -"""Deals with creating the normal mode representation arrays. - -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 . - - -Classes: - InputNormalModes: Deals with creating the normal mode objects. -""" - -import numpy as np -from copy import copy -from ipi.engine.normalmodes import * -from ipi.utils.inputvalue import * -from ipi.utils.units import * - -__all__ = ['InputNormalModes'] - -class InputNormalModes(InputArray): - """ Storage class for NormalModes engine. - - Describes how normal-modes transformation and integration should be - performed. - - Attributes: - mode: Specifies the method by which the dynamical masses are created. - transform: Specifies whether the normal mode calculation will be - done using a FFT transform or a matrix multiplication. - """ - - attribs = copy(InputArray.attribs) - attribs["mode"] = (InputAttribute, {"dtype" : str, - "default" : "rpmd", - "help" : "Specifies the technique to be used to calculate the dynamical masses. 'rpmd' simply assigns the bead masses the physical mass. 'manual' sets all the normal mode frequencies except the centroid normal mode manually. 'pa-cmd' takes an argument giving the frequency to set all the non-centroid normal modes to. 'wmax-cmd' is similar to 'pa-cmd', except instead of taking one argument it takes two ([wmax,wtarget]). The lowest-lying normal mode will be set to wtarget for a free particle, and all the normal modes will coincide at frequency wmax. ", - "options" : ['pa-cmd', 'wmax-cmd', 'manual', 'rpmd']}) - attribs["transform"] = (InputValue,{"dtype" : str, - "default" : "fft", - "help" : "Specifies whether to calculate the normal mode transform using a fast Fourier transform or a matrix multiplication. For small numbers of beads the matrix multiplication may be faster.", - "options" : ['fft', 'matrix']}) - - default_help = "Deals with the normal mode transformations, including the adjustment of bead masses to give the desired ring polymer normal mode frequencies if appropriate. Takes as arguments frequencies, of which different numbers must be specified and which are used to scale the normal mode frequencies in different ways depending on which 'mode' is specified." - default_label = "NORMALMODES" - - def __init__(self, help=None, dimension=None, default=None, dtype=None): - """ Initializes InputNormalModes. - - Just calls the parent initialization function with appropriate arguments. - """ - - super(InputNormalModes,self).__init__(help=help, default=default, dtype=float, dimension="frequency") - - def store(self, nm): - """Takes a normal modes instance and stores a minimal representation - of it. - - Args: - nm: A normal modes object. - """ - - super(InputNormalModes,self).store(nm.nm_freqs) - self.mode.store(nm.mode) - self.transform.store(nm.transform_method) - - def fetch(self): - """Creates a normal modes object. - - Returns: - A normal modes object. - """ - - super(InputNormalModes,self).check() - return NormalModes(self.mode.fetch(), self.transform.fetch(), super(InputNormalModes,self).fetch() ) diff --git a/tools/i-pi/ipi/inputs/outputs.py b/tools/i-pi/ipi/inputs/outputs.py deleted file mode 100644 index 5141c79beb..0000000000 --- a/tools/i-pi/ipi/inputs/outputs.py +++ /dev/null @@ -1,323 +0,0 @@ -"""Deals with creating the output objects. - -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 . - - -Classes: - InputOutputs: Creates a list of all the output objects. - InputProperties: Deals with property output. - InputTrajectory: Deals with trajectory output. - InputCheckpoint: Deals with restart file output. -""" -import numpy as np -from copy import copy -import ipi.engine.outputs -from ipi.utils.depend import * -from ipi.utils.inputvalue import * -from ipi.engine.properties import getkey - -__all__=['InputOutputs', 'InputProperties', 'InputTrajectory', - 'InputCheckpoint'] - -class InputProperties(InputArray): - """Simple input class to describe output for properties. - - Storage class for PropertyOutput. - - Attributes: - filename: The name of the file to output to. - stride: The number of steps that should be taken between outputting the - data to file. - flush: An integer describing how often the output streams are flushed, - so that it doesn't wait for the buffer to fill before outputting to - file. - """ - - default_help = """This class deals with the output of properties to one file. Between each property tag there should be an array of strings, each of which specifies one property to be output.""" - default_label = "PROPERTIES" - - attribs = copy(InputArray.attribs) - attribs["filename"] = (InputAttribute,{ "dtype" : str, "default": "out", - "help": "A string to specify the name of the file that is output. The file name is given by 'prefix'.'filename' + format_specifier. The format specifier may also include a number if multiple similar files are output."} ) - attribs["stride"] = (InputAttribute,{ "dtype" : int, "default": 1, - "help": "The number of steps between successive writes." } ) - attribs["flush"] = (InputAttribute, {"dtype" : int, "default" : 1, - "help" : "How often should streams be flushed. 1 means each time, zero means never." }) - - def __init__(self, help=None, default=None, dtype=None, dimension=None): - """Initializes InputProperties. - - Just calls the parent initialization function with appropriate arguments. - """ - - super(InputProperties,self).__init__(help=help, default=default, dtype=str, dimension=dimension) - - def fetch(self): - """Returns a PropertyOutput object.""" - - return ipi.engine.outputs.PropertyOutput(filename=self.filename.fetch(), - stride=self.stride.fetch(), flush=self.flush.fetch(), outlist=super(InputProperties,self).fetch()) - - def store(self, prop): - """Stores a PropertyOutput object.""" - - super(InputProperties,self).store(prop.outlist) - self.stride.store(prop.stride) - self.flush.store(prop.flush) - self.filename.store(prop.filename) - - def check(self): - """Checks for optional parameters.""" - - super(InputProperties,self).check() - if self.stride.fetch() < 0: - raise ValueError("The stride length for the properties file output must be positive.") - - -class InputTrajectory(InputValue): - """Simple input class to describe output for trajectories. - - Storage class for TrajectoryOutput. - - Attributes: - filename: The (base) name of the file to output to. - stride: The number of steps that should be taken between outputting the - data to file. - format: The format of the trajectory output file. - cell_units: The units that the cell parameters are given in. - bead: If the trajectory is a per-bead property, this can be used to - specify a single bead to output. If negative, it defaults to - the centroid. - flush: An integer describing how often the output streams are flushed, - so that it doesn't wait for the buffer to fill before outputting to - file. - """ - - default_help = """This class defines how one trajectory file should be output. Between each trajectory tag one string should be given, which specifies what data is to be output.""" - default_label = "TRAJECTORY" - - attribs = copy(InputValue.attribs) - attribs["filename"] = (InputAttribute,{ "dtype" : str, "default": "traj", - "help": "A string to specify the name of the file that is output. The file name is given by 'prefix'.'filename' + format_specifier. The format specifier may also include a number if multiple similar files are output."} ) - attribs["stride"] = (InputAttribute,{ "dtype" : int, "default": 1, - "help": "The number of steps between successive writes." } ) - attribs["format"] = (InputAttribute,{ "dtype" : str, "default": "xyz", - "help": "The output file format.", - "options": ['xyz', 'pdb'] } ) - attribs["cell_units"] = (InputAttribute,{ "dtype" : str, "default": "", - "help": "The units for the cell dimensions." } ) - attribs["bead"] = (InputAttribute,{ "dtype" : int, "default": -1, - "help": "Print out only the specified bead. A negative value means print all." } ) - attribs["flush"] = (InputAttribute, {"dtype" : int, "default" : 1, - "help" : "How often should streams be flushed. 1 means each time, zero means never." }) - - def __init__(self, help=None, default=None, dtype=None, dimension=None): - """Initializes InputTrajectory. - - Just calls the parent initialization function with appropriate arguments. - """ - - super(InputTrajectory,self).__init__(help=help, default=default, dtype=str, dimension=dimension) - - def fetch(self): - """Returns a TrajectoryOutput object.""" - - return ipi.engine.outputs.TrajectoryOutput(filename=self.filename.fetch(), stride=self.stride.fetch(), - flush=self.flush.fetch(), what=super(InputTrajectory,self).fetch(), - format=self.format.fetch(), cell_units=self.cell_units.fetch(), ibead=self.bead.fetch()) - - def store(self, traj): - """Stores a PropertyOutput object.""" - - super(InputTrajectory,self).store(traj.what) - self.stride.store(traj.stride) - self.flush.store(traj.flush) - self.filename.store(traj.filename) - self.format.store(traj.format) - self.cell_units.store(traj.cell_units) - self.bead.store(traj.ibead) - - def check(self): - """Checks for optional parameters.""" - - super(InputTrajectory,self).check() - if self.stride.fetch() < 0: - raise ValueError("The stride length for the trajectory file output must be positive.") - - -class InputCheckpoint(InputValue): - """Simple input class to describe output for properties. - - Storage class for CheckpointOutput. - - Attributes: - filename: The (base) name of the file to output to. - stride: The number of steps that should be taken between outputting the - data to file. - overwrite: whether checkpoints should be overwritten, or multiple - files output. - """ - - default_help = """This class defines how a checkpoint file should be output. Optionally, between the checkpoint tags, you can specify one integer giving the current step of the simulation. By default this integer will be zero.""" - default_label = "CHECKPOINT" - - attribs=copy(InputValue.attribs) - attribs["filename"] = (InputAttribute,{ "dtype" : str, "default": "restart", - "help": "A string to specify the name of the file that is output. The file name is given by 'prefix'.'filename' + format_specifier. The format specifier may also include a number if multiple similar files are output."} ) - attribs["stride"] = (InputAttribute,{ "dtype" : int, "default": 1, - "help": "The number of steps between successive writes." } ) - attribs["overwrite"] = (InputAttribute,{ "dtype" : bool, "default": True, - "help": "This specifies whether or not each consecutive checkpoint file will overwrite the old one."} ) - - def __init__(self, help=None, default=None, dtype=None, dimension=None): - """Initializes InputCheckpoint. - - Just calls the parent initialization function with appropriate arguments. - """ - - super(InputCheckpoint,self).__init__(help=help, default=default, dtype=int, dimension=dimension) - - def fetch(self): - """Returns a CheckpointOutput object.""" - - step = super(InputCheckpoint,self).fetch() - return ipi.engine.outputs.CheckpointOutput(self.filename.fetch(), self.stride.fetch(), self.overwrite.fetch(), step=step ) - - def parse(self, xml=None, text=""): - """Overwrites the standard parse function so that we can specify this tag - in the input without any data. - - We can use the syntax to do this - - Args: - xml: An xml node containing all the data for the parent tag. - text: The data to read the data from. Will be None if we have not - specified any data. - """ - - # just a quick hack to allow an empty element - try: - super(InputCheckpoint,self).parse(xml,text) - except: #TODO make this except a specific exception, not every one - self.value = 0 #This could hide actual errors, at least in theory. - - def store(self, chk): - """Stores a CheckpointOutput object.""" - - super(InputCheckpoint,self).store(chk.step) - self.stride.store(chk.stride) - self.filename.store(chk.filename) - self.overwrite.store(chk.overwrite) - - def check(self): - """Checks for optional parameters.""" - - super(InputCheckpoint,self).check() - if self.stride.fetch() < 0: - raise ValueError("The stride length for the checkpoint file output must be positive.") - - -class InputOutputs(Input): - """ List of outputs input class. - - An example of a dynamic input class: a variable number of tags might be - present, corresponding to different output requests. This allows for - instance to print multiple property outputs, with different content - and/or output frequency. - - Attributes: - prefix: A string that will be appended to all output files from this - simulation. - - Dynamic fields: - trajectory: Specifies a trajectory to be output - properties: Specifies some properties to be output. - checkpoint: Specifies a checkpoint file to be output. - """ - - attribs = { "prefix" : ( InputAttribute, { "dtype" : str, - "default" : "i-pi", - "help" : "A string that will be prepended to each output file name. The file name is given by 'prefix'.'filename' + format_specifier. The format specifier may also include a number if multiple similar files are output." }) - } - - dynamic = { "properties" : (InputProperties, { "help" : "Each of the properties tags specify how to create a file in which one or more properties are written, one line per frame. " } ), - "trajectory" : (InputTrajectory, { "help" : "Each of the trajectory tags specify how to create a trajectory file, containing a list of per-atom coordinate properties. " } ), - "checkpoint" : (InputCheckpoint, { "help" : "Each of the checkpoint tags specify how to create a checkpoint file, which can be used to restart a simulation. " } ), - } - - default_help = """This class defines how properties, trajectories and checkpoints should be output during the simulation. May contain zero, one or many instances of properties, trajectory or checkpoint tags, each giving instructions on how one output file should be created and managed.""" - default_label = "OUTPUTS" - - @classmethod - def make_default(cls): - """Used to make the default value of the outputs class for use when no - output is specified. - - Needed since this is a fairly complicated default, with many mutable - objects, and the default has to be generated by a function that does not - use any mutable objects as arguments. - """ - - return [ ipi.engine.outputs.PropertyOutput(filename="i-pi.md", stride=10, outlist=[ "time", "step", "conserved", "temperature", "potential", "kinetic_cv" ] ), - ipi.engine.outputs.TrajectoryOutput(filename="i-pi.pos", stride=100, what="positions", format="xyz"), - ipi.engine.outputs.CheckpointOutput(filename="i-pi.checkpoint", stride=1000, overwrite=True)] - - def fetch(self): - """Returns a list of the output objects included in this dynamic - container. - - Returns: - A list of tuples, with each tuple being of the form ('type', 'object') - where 'type' is the type of output object and 'object' is a particular - object of that type. - """ - - super(InputOutputs, self).fetch() - outlist = [ p.fetch() for (n, p) in self.extra ] - prefix = self.prefix.fetch() - if not prefix == "": - for p in outlist: - p.filename = prefix + "." + p.filename - - return outlist - - def store(self, plist): - """ Stores a list of the output objects, creating a sequence of - dynamic containers. - - Args: - plist: A list of tuples, with each tuple being of the form - ('type', 'object') where 'type' is the type of forcefield and - 'object' is a particular object of that type. - """ - - super(InputOutputs, self).store() - self.extra = [] - - self.prefix.store("") - for el in plist: - if (isinstance(el, ipi.engine.outputs.PropertyOutput)): - ip = InputProperties() - ip.store(el) - self.extra.append(("properties", ip)) - elif (isinstance(el, ipi.engine.outputs.TrajectoryOutput)): - ip = InputTrajectory() - ip.store(el) - self.extra.append(("trajectory", ip)) - elif (isinstance(el, ipi.engine.outputs.CheckpointOutput)): - ip = InputCheckpoint() - ip.store(el) - self.extra.append(("checkpoint", ip)) diff --git a/tools/i-pi/ipi/inputs/prng.py b/tools/i-pi/ipi/inputs/prng.py deleted file mode 100644 index e3464ca791..0000000000 --- a/tools/i-pi/ipi/inputs/prng.py +++ /dev/null @@ -1,101 +0,0 @@ -"""Deals with creating the random number generator. - -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 . - - -Generates a random number generator either from a seed number, or from a -state vector. - -Classes: - InputRandom: Deals with creating the Random object from a file, and - writing the checkpoints. -""" - -__all__ = ['InputRandom'] - -import numpy as np -from ipi.utils.prng import * -from ipi.utils.inputvalue import * - -class InputRandom(Input): - """Random input class. - - Handles generating the appropriate random number class from the xml - input file, and generating the xml checkpoint tags and data from an - instance of the object. - - Attributes: - seed: An optional integer giving a seed to initialize the random number - generator from. Defaults to 123456. - state: An optional array giving the state of the random number generator. - Defaults to an empty array. - has_gauss: An optional integer giving whether there is a stored - Gaussian number or not. Defaults to 0. - gauss: An optional float giving the stored Gaussian number. Defaults to - 0.0. - set_pos: An optional integer giving the position in the state array - that is being read from. Defaults to 0. - """ - - fields = {"seed" : (InputValue, {"dtype" : int, - "default" : 123456, - "help" : "This is the seed number used to generate the initial state of the random number generator."}), - "state" : (InputArray, {"dtype" : np.uint, - "default" : input_default(factory=np.zeros, kwargs={'shape': (0,), 'dtype': np.uint}), - "help" : "Gives the state vector for the random number generator. Avoid directly modifying this unless you are very familiar with the inner workings of the algorithm used."}), - "has_gauss" : (InputValue, {"dtype" : int, - "default" : 0, - "help" : "Determines whether there is a stored gaussian number or not. A value of 0 means there is none stored."}), - "gauss" : (InputValue, {"dtype" : float, - "default" : 0.00, - "help" : "The stored Gaussian number." }), - "set_pos" : (InputValue, {"dtype" : int, - "default" : 0, - "help" : "Gives the position in the state array that the random number generator is reading from."})} - - default_help = "Deals with the pseudo-random number generator." - default_label = "PRNG" - - def store(self, prng): - """Takes a random number instance and stores a minimal - representation of it. - - Args: - prng: A random number object from which to initialize from. - """ - - super(InputRandom,self).store(prng) - self.seed.store(prng.seed) - gstate = prng.state - self.state.store(gstate[1]) - self.set_pos.store(gstate[2]) - self.has_gauss.store(gstate[3]) - self.gauss.store(gstate[4]) - - def fetch(self): - """Creates a random number object. - - Returns: - An random number object of the appropriate type and with the - appropriate properties given the attributes of the InputRandom - object. - """ - - super(InputRandom,self).fetch() - if not self.state._explicit: - return Random(seed=self.seed.fetch()) - else: - return Random(state=('MT19937',self.state.fetch(), self.set_pos.fetch(), self.has_gauss.fetch(), self.gauss.fetch() )) diff --git a/tools/i-pi/ipi/inputs/simulation.py b/tools/i-pi/ipi/inputs/simulation.py deleted file mode 100644 index d020547cd2..0000000000 --- a/tools/i-pi/ipi/inputs/simulation.py +++ /dev/null @@ -1,193 +0,0 @@ -"""Deals with creating the simulation 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 . - - -Classes: - InputSimulation: Deals with creating the Simulation object from a file, and - writing the checkpoints. -""" - -__all__ = ['InputSimulation'] - -import numpy as np -import os.path, sys -import ipi.engine.simulation -from ipi.utils.depend import * -from ipi.utils.inputvalue 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 -from ipi.inputs.forces import InputForces -from ipi.inputs.prng import InputRandom -from ipi.inputs.initializer import InputInitializer -from ipi.inputs.beads import InputBeads -from ipi.inputs.cell import InputCell -from ipi.inputs.ensembles import InputEnsemble -from ipi.inputs.outputs import InputOutputs -from ipi.inputs.normalmodes import InputNormalModes -from ipi.engine.normalmodes import NormalModes -from ipi.engine.atoms import Atoms -from ipi.engine.beads import Beads -from ipi.engine.cell import Cell -from ipi.engine.initializer import Initializer - -class InputSimulation(Input): - """Simulation input class. - - Handles generating the appropriate forcefield class from the xml input file, - and generating the xml checkpoint tags and data from an instance of the - object. - - Attributes: - verbosity: A string saying how much should be output to standard output. - - Fields: - force: A restart force instance. Used as a model for all the replicas. - ensemble: A restart ensemble instance. - beads: A restart beads instance. - normal_modes: Setup of normal mode integrator. - cell: A restart cell instance. - output: A list of the required outputs. - prng: A random number generator object. - step: An integer giving the current simulation step. Defaults to 0. - total_steps: The total number of steps. Defaults to 1000 - total_time: The wall clock time limit. Defaults to 0 (no limit). - initialize: An array of strings giving all the quantities that should - be output. - """ - - fields = { "forces" : (InputForces, { "help" : InputForces.default_help }), - "ensemble": (InputEnsemble, { "help" : InputEnsemble.default_help } ), - "prng" : (InputRandom, { "help" : InputRandom.default_help, - "default" : input_default(factory=Random)} ), - "initialize" : (InputInitializer, { "help" : InputInitializer.default_help, - "default" : input_default(factory=Initializer) } ), - "beads" : (InputBeads, { "help" : InputBeads.default_help, - "default" : input_default(factory=Beads, kwargs={'natoms': 0, 'nbeads': 0}) } ), - "normal_modes" : (InputNormalModes, { "help" : InputNormalModes.default_help, - "default" : input_default(factory=NormalModes, kwargs={'mode': "rpmd"}) } ), - "cell" : (InputCell, { "help" : InputCell.default_help, - "default" : input_default(factory=Cell) }), - "output" : (InputOutputs, { "help" : InputOutputs.default_help, - "default": input_default(factory=InputOutputs.make_default) }), - "step" : ( InputValue, { "dtype" : int, - "default" : 0, - "help" : "The current simulation time step." }), - "total_steps": ( InputValue, { "dtype" : int, - "default" : 1000, - "help" : "The total number of steps that will be done. If 'step' is equal to or greater than 'total_steps', then the simulation will finish." }), - "total_time" : ( InputValue, { "dtype" : float, - "default" : 0, - "help" : "The maximum wall clock time (in seconds)." }), - } - - attribs = { "verbosity" : (InputAttribute, { "dtype" : str, - "default" : "low", - "options" : [ "quiet", "low", "medium", "high", "debug" ], - "help" : "The level of output on stdout." - }) - } - - default_help = "This is the top level class that deals with the running of the simulation, including holding the simulation specific properties such as the time step and outputting the data." - default_label = "SIMULATION" - - def store(self, simul): - """Takes a simulation instance and stores a minimal representation of it. - - Args: - simul: A simulation object. - """ - - super(InputSimulation,self).store() - self.forces.store(simul.flist) - self.ensemble.store(simul.ensemble) - - self.beads.store(simul.beads) - - self.normal_modes.store(simul.nm) - self.cell.store(simul.cell) - self.prng.store(simul.prng) - self.step.store(simul.step) - self.total_steps.store(simul.tsteps) - self.total_time.store(simul.ttime) - self.output.store(simul.outputs) - - # this we pick from the messages class. kind of a "global" but it seems to - # be the best way to pass around the (global) information on the level of output. - if verbosity.debug: - self.verbosity.store("debug") - elif verbosity.high: - self.verbosity.store("high") - elif verbosity.medium: - self.verbosity.store("medium") - elif verbosity.low: - self.verbosity.store("low") - elif verbosity.quiet: - self.verbosity.store("quiet") - else: - raise ValueError("Invalid verbosity level") - - def fetch(self): - """Creates a simulation object. - - Returns: - A simulation object of the appropriate type and with the appropriate - properties and other objects given the attributes of the - InputSimulation object. - - Raises: - TypeError: Raised if one of the file types in the stride keyword - is incorrect. - """ - - super(InputSimulation,self).fetch() - - # small hack: initialize here the verbosity level -- we really assume to have - # just one simulation object - verbosity.level=self.verbosity.fetch() - - # this creates a simulation object which gathers all the little bits - #TODO use named arguments since this list is a bit too long... - rsim = ipi.engine.simulation.Simulation(self.beads.fetch(), self.cell.fetch(), - self.forces.fetch(), self.ensemble.fetch(), self.prng.fetch(), - self.output.fetch(), self.normal_modes.fetch(), - self.initialize.fetch(), self.step.fetch(), - tsteps=self.total_steps.fetch(), - ttime=self.total_time.fetch()) - - # this does all of the piping between the components of the simulation - rsim.bind() - - return rsim - - def check(self): - """Function that deals with optional arguments. - - Deals with the difference between classical and PI dynamics. If there is - no beads argument, the bead positions are generated from the atoms, with - the necklace being fixed at the atom position. Similarly, if no nbeads - argument is specified a classical simulation is done. - - Raises: - TypeError: Raised if no beads or atoms attribute is defined. - """ - - super(InputSimulation,self).check() - if self.total_steps.fetch() <= self.step.fetch(): - raise ValueError("Current step greater than total steps, no dynamics will be done.") diff --git a/tools/i-pi/ipi/inputs/thermostats.py b/tools/i-pi/ipi/inputs/thermostats.py deleted file mode 100644 index 5c1ec2d65b..0000000000 --- a/tools/i-pi/ipi/inputs/thermostats.py +++ /dev/null @@ -1,195 +0,0 @@ -"""Deals with creating the thermostats 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 . - - -Chooses between the different possible thermostat options and creates the -appropriate thermostat object, with suitable parameters. - -Classes: - InputThermo: Deals with creating the thermostat object from a file, and - writing the checkpoints. -""" - -__all__ = ['InputThermo'] - -import numpy as np -from ipi.utils.depend import * -from ipi.utils.inputvalue import * -from ipi.engine.thermostats import * - -class InputThermo(Input): - """Thermostat input class. - - Handles generating the appropriate thermostat class from the xml input file, - and generating the xml checkpoiunt tags and data from an instance of the - object. - - Attributes: - mode: An optional string giving the type of the thermostat used. Defaults - to 'langevin'. - - Fields: - ethermo: An optional float giving the amount of heat energy transferred - to the bath. Defaults to 0.0. - tau: An optional float giving the damping time scale. Defaults to 1.0. - pile_scale: Scaling for the PILE damping relative to the critical damping. - A: An optional array of floats giving the drift matrix. Defaults to 0.0. - C: An optional array of floats giving the static covariance matrix. - Defaults to 0.0. - s: An optional array of floats giving the additional momentum-scaled - momenta in GLE. Defaults to 0.0. - """ - - attribs = { "mode": (InputAttribute, { "dtype" : str, - "options" : [ "", "langevin", "svr", "pile_l", "pile_g", "gle", "nm_gle", "nm_gle_g" ], - "help" : "The style of thermostatting. 'langevin' specifies a white noise langevin equation to be attached to the cartesian representation of the momenta. 'svr' attaches a velocity rescaling thermostat to the cartesian representation of the momenta. Both 'pile_l' and 'pile_g' attaches a white noise langevin thermostat to the normal mode representation, with 'pile_l' attaching a local langevin thermostat to the centroid mode and 'pile_g' instead attaching a global velocity rescaling thermostat. 'gle' attaches a colored noise langevin thermostat to the cartesian representation of the momenta, 'nm_gle' attaches a colored noise langevin thermostat to the normal mode representation of the momenta and a langevin thermostat to the centroid and 'nm_gle_g' attaches a gle thermostat to the normal modes and a svr thermostat to the centroid." - }) } - fields = { "ethermo" : (InputValue, { "dtype" : float, - "default" : 0.0, - "help" : "The initial value of the thermostat energy. Used when the simulation is restarted to guarantee continuity of the conserved quantity.", - "dimension" : "energy" }), - "tau" : (InputValue, { "dtype" : float, - "default" : 0.0, - "help" : "The friction coefficient for white noise thermostats.", - "dimension" : "time" }), - "pile_scale" : (InputValue, { "dtype" : float, - "default" : 1.0, - "help" : "Scaling for the PILE damping relative to the critical damping."} ), - "A" : (InputArray, { "dtype" : float, - "default" : input_default(factory=np.zeros, args = (0,)), - "help" : "The friction matrix for GLE thermostats.", - "dimension" : "frequency" }), - "C" : (InputArray, { "dtype" : float, - "default" : input_default(factory=np.zeros, args = (0,)), - "help" : "The covariance matrix for GLE thermostats.", - "dimension" : "temperature" }), - "s" : (InputArray, { "dtype" : float, - "default" : input_default(factory=np.zeros, args = (0,)), - "help" : "Input values for the additional momenta in GLE.", - "dimension" : "ms-momentum" }) - } - - default_help = "Simulates an external heat bath to keep the velocity distribution at the correct temperature." - default_label = "THERMOSTATS" - - def store(self, thermo): - """Takes a thermostat instance and stores a minimal representation of it. - - Args: - thermo: A thermostat object. - - Raises: - TypeError: Raised if the thermostat is not a recognized type. - """ - - super(InputThermo,self).store(thermo) - if type(thermo) is ThermoLangevin: - self.mode.store("langevin") - self.tau.store(thermo.tau) - elif type(thermo) is ThermoSVR: - self.mode.store("svr") - self.tau.store(thermo.tau) - elif type(thermo) is ThermoPILE_L: - self.mode.store("pile_l") - self.tau.store(thermo.tau) - self.pile_scale.store(thermo.pilescale) - elif type(thermo) is ThermoPILE_G: - self.mode.store("pile_g") - self.tau.store(thermo.tau) - self.pile_scale.store(thermo.pilescale) - elif type(thermo) is ThermoGLE: - self.mode.store("gle") - self.A.store(thermo.A) - if dget(thermo,"C")._func is None: - self.C.store(thermo.C) - self.s.store(thermo.s) - elif type(thermo) is ThermoNMGLE: - self.mode.store("nm_gle") - self.A.store(thermo.A) - if dget(thermo,"C")._func is None: - self.C.store(thermo.C) - self.s.store(thermo.s) - elif type(thermo) is ThermoNMGLEG: - self.mode.store("nm_gle_g") - self.A.store(thermo.A) - self.tau.store(thermo.tau) - if dget(thermo,"C")._func is None: - self.C.store(thermo.C) - self.s.store(thermo.s) - elif type(thermo) is Thermostat: - self.mode.store("") - else: - raise TypeError("Unknown thermostat mode " + type(thermo).__name__) - self.ethermo.store(thermo.ethermo) - - def fetch(self): - """Creates a thermostat object. - - Returns: - A thermostat object of the appropriate type and with the appropriate - parameters given the attributes of the InputThermo object. - - Raises: - TypeError: Raised if the thermostat type is not a recognized option. - """ - - super(InputThermo,self).fetch() - if self.mode.fetch() == "langevin": - thermo = ThermoLangevin(tau=self.tau.fetch()) - elif self.mode.fetch() == "svr": - thermo = ThermoSVR(tau=self.tau.fetch()) - elif self.mode.fetch() == "pile_l": - thermo = ThermoPILE_L(tau=self.tau.fetch(), scale=self.pile_scale.fetch()) - elif self.mode.fetch() == "pile_g": - thermo = ThermoPILE_G(tau=self.tau.fetch(), scale=self.pile_scale.fetch()) - elif self.mode.fetch() == "gle": - rC = self.C.fetch() - if len(rC) == 0: - rC = None - thermo = ThermoGLE(A=self.A.fetch(),C=rC) - thermo.s = self.s.fetch() - elif self.mode.fetch() == "nm_gle": - rC = self.C.fetch() - if len(rC) == 0: - rC = None - thermo = ThermoNMGLE(A=self.A.fetch(),C=rC) - thermo.s = self.s.fetch() - elif self.mode.fetch() == "nm_gle_g": - rC = self.C.fetch() - if len(rC) == 0: - rC = None - thermo = ThermoNMGLEG(A=self.A.fetch(),C=rC, tau=self.tau.fetch()) - thermo.s = self.s.fetch() - elif self.mode.fetch() == "" : - thermo=Thermostat() - else: - raise TypeError("Invalid thermostat mode " + self.mode.fetch()) - - thermo.ethermo = self.ethermo.fetch() - - return thermo - - def check(self): - """Checks that the parameter arrays represents a valid thermostat.""" - - super(InputThermo,self).check() - - if self.mode.fetch() in ["langevin", "svr", "pile_l", "pile_g", "nm_gle_g"]: - if self.tau.fetch() <= 0: - raise ValueError("The thermostat friction coefficient must be set to a positive value") - if self.mode.fetch() in ["gle", "nm_gle", "nm_gle_g"]: - pass # PERHAPS DO CHECKS THAT MATRICES SATISFY REASONABLE CONDITIONS (POSITIVE-DEFINITENESS, ETC) diff --git a/tools/i-pi/ipi/interfaces/README b/tools/i-pi/ipi/interfaces/README deleted file mode 100644 index d5693d8f35..0000000000 --- a/tools/i-pi/ipi/interfaces/README +++ /dev/null @@ -1,8 +0,0 @@ - -- Interfaces between i-PI and the drivers -- - - * This is the directory containing the code that deals with the socket - interface. - - * Files: - - sockets.py: Deals with the driver communication and the wrapper socket - and threading interface. diff --git a/tools/i-pi/ipi/interfaces/__init__.py b/tools/i-pi/ipi/interfaces/__init__.py deleted file mode 100644 index 68af0572bf..0000000000 --- a/tools/i-pi/ipi/interfaces/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["sockets"] diff --git a/tools/i-pi/ipi/interfaces/sockets.py b/tools/i-pi/ipi/interfaces/sockets.py deleted file mode 100644 index f946cf3149..0000000000 --- a/tools/i-pi/ipi/interfaces/sockets.py +++ /dev/null @@ -1,773 +0,0 @@ -"""Deals with the socket communication between the PIMD and driver 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 . - - -Deals with creating the socket, transmitting and receiving data, accepting and -removing different driver routines and the parallelization of the force -calculation. - -Classes: - Status: Simple class to keep track of the status, uses bitwise or to give - combinations of different status options. - DriverSocket: Class to deal with communication between a client and - the driver code. - InterfaceSocket: Host server class. Deals with distribution of all the jobs - between the different client servers. - -Functions: - Message: Sends a header string through the socket. - -Exceptions: - Disconnected: Raised if client has been disconnected. - InvalidStatus: Raised if client has the wrong status. Shouldn't have to be - used if the structure of the program is correct. -""" - -__all__ = ['InterfaceSocket'] - -import numpy as np -import sys, os -import socket, select, threading, signal, string, time -from ipi.utils.depend import depstrip -from ipi.utils.messages import verbosity, warning, info -from ipi.utils.softexit import softexit - - -HDRLEN = 12 -UPDATEFREQ = 10 -TIMEOUT = 5.0 -SERVERTIMEOUT = 2.0*TIMEOUT -NTIMEOUT = 10 - -def Message(mystr): - """Returns a header of standard length HDRLEN.""" - - return string.ljust(string.upper(mystr), HDRLEN) - - -class Disconnected(Exception): - """Disconnected: Raised if client has been disconnected.""" - - pass - -class InvalidSize(Exception): - """Disconnected: Raised if client returns forces with inconsistent number of atoms.""" - - pass - -class InvalidStatus(Exception): - """InvalidStatus: Raised if client has the wrong status. - - Shouldn't have to be used if the structure of the program is correct. - """ - - pass - -class Status: - """Simple class used to keep track of the status of the client. - - Uses bitwise or to give combinations of different status options. - i.e. Status.Up | Status.Ready would be understood to mean that the client - was connected and ready to receive the position and cell data. - - Attributes: - Disconnected: Flag for if the client has disconnected. - Up: Flag for if the client is running. - Ready: Flag for if the client has ready to receive position and cell data. - NeedsInit: Flag for if the client is ready to receive forcefield - parameters. - HasData: Flag for if the client is ready to send force data. - Busy: Flag for if the client is busy. - Timeout: Flag for if the connection has timed out. - """ - - Disconnected = 0 - Up = 1 - Ready = 2 - NeedsInit = 4 - HasData = 8 - Busy = 16 - Timeout = 32 - - -class DriverSocket(socket.socket): - """Deals with communication between the client and driver code. - - Deals with sending and receiving the data from the driver code. Keeps track - of the status of the driver. Initializes the driver forcefield, sends the - position and cell data, and receives the force data. - - Attributes: - _buf: A string buffer to hold the reply from the driver. - status: Keeps track of the status of the driver. - lastreq: The ID of the last request processed by the client. - locked: Flag to mark if the client has been working consistently on one image. - """ - - def __init__(self, socket): - """Initializes DriverSocket. - - Args: - socket: A socket through which the communication should be done. - """ - - super(DriverSocket,self).__init__(_sock=socket) - self._buf = np.zeros(0,np.byte) - self.peername = self.getpeername() - self.status = Status.Up - self.waitstatus = False - self.lastreq = None - self.locked = False - - def shutdown(self, how=socket.SHUT_RDWR): - - self.sendall(Message("exit")) - self.status = Status.Disconnected - super(DriverSocket,self).shutdown(how) - - def poll(self): - """Waits for driver status.""" - - self.status = Status.Disconnected # sets disconnected as failsafe status, in case _getstatus fails and exceptions are ignored upstream - self.status = self._getstatus() - - def _getstatus(self): - """Gets driver status. - - Returns: - An integer labelling the status via bitwise or of the relevant members - of Status. - """ - - if not self.waitstatus: - try: - readable, writable, errored = select.select([], [self], []) - if self in writable: - self.sendall(Message("status")) - self.waitstatus = True - except: - return Status.Disconnected - - try: - reply = self.recv(HDRLEN) - self.waitstatus = False # got status reply - except socket.timeout: - warning(" @SOCKET: Timeout in status recv!", verbosity.debug ) - return Status.Up | Status.Busy | Status.Timeout - except: - return Status.Disconnected - - if not len(reply) == HDRLEN: - return Status.Disconnected - elif reply == Message("ready"): - return Status.Up | Status.Ready - elif reply == Message("needinit"): - return Status.Up | Status.NeedsInit - elif reply == Message("havedata"): - return Status.Up | Status.HasData - else: - warning(" @SOCKET: Unrecognized reply: " + str(reply), verbosity.low ) - return Status.Up - - def recvall(self, dest): - """Gets the potential energy, force and virial from the driver. - - Args: - dest: Object to be read into. - - Raises: - Disconnected: Raised if client is disconnected. - - Returns: - The data read from the socket to be read into dest. - """ - - blen = dest.itemsize*dest.size - if (blen > len(self._buf)): - self._buf.resize(blen) - bpos = 0 - ntimeout = 0 - - while bpos < blen: - timeout = False - -# pre-2.5 version. - try: - bpart = "" - bpart = self.recv(blen - bpos) - if len(bpart) == 0: raise socket.timeout # There is a problem if this returns no data - self._buf[bpos:bpos + len(bpart)] = np.fromstring(bpart, np.byte) - except socket.timeout: - warning(" @SOCKET: Timeout in status recvall, trying again!", verbosity.low) - timeout = True - ntimeout += 1 - if ntimeout > NTIMEOUT: - warning(" @SOCKET: Couldn't receive within %5d attempts. Time to give up!" % (NTIMEOUT), verbosity.low) - raise Disconnected() - pass - if (not timeout and bpart == 0): - raise Disconnected() - bpos += len(bpart) - -# post-2.5 version: slightly more compact for modern python versions -# try: -# bpart = 1 -# bpart = self.recv_into(self._buf[bpos:], blen-bpos) -# except socket.timeout: -# print " @SOCKET: Timeout in status recvall, trying again!" -# timeout = True -# pass -# if (not timeout and bpart == 0): -# raise Disconnected() -# bpos += bpart -#TODO this Disconnected() exception currently just causes the program to hang. -#This should do something more graceful - - if np.isscalar(dest): - return np.fromstring(self._buf[0:blen], dest.dtype)[0] - else: - return np.fromstring(self._buf[0:blen], dest.dtype).reshape(dest.shape) - - def initialize(self, rid, pars): - """Sends the initialization string to the driver. - - Args: - rid: The index of the request, i.e. the replica that - the force calculation is for. - pars: The parameter string to be sent to the driver. - - Raises: - InvalidStatus: Raised if the status is not NeedsInit. - """ - - if self.status & Status.NeedsInit: - try: - self.sendall(Message("init")) - self.sendall(np.int32(rid)) - self.sendall(np.int32(len(pars))) - self.sendall(pars) - except: - self.poll() - return - else: - raise InvalidStatus("Status in init was " + self.status) - - def sendpos(self, pos, cell): - """Sends the position and cell data to the driver. - - Args: - pos: An array containing the atom positions. - cell: A cell object giving the system box. - - Raises: - InvalidStatus: Raised if the status is not Ready. - """ - - if (self.status & Status.Ready): - try: - self.sendall(Message("posdata")) - self.sendall(cell.h, 9*8) - self.sendall(cell.ih, 9*8) - self.sendall(np.int32(len(pos)/3)) - self.sendall(pos, len(pos)*8) - except: - self.poll() - return - else: - raise InvalidStatus("Status in sendpos was " + self.status) - - def getforce(self): - """Gets the potential energy, force and virial from the driver. - - Raises: - InvalidStatus: Raised if the status is not HasData. - Disconnected: Raised if the driver has disconnected. - - Returns: - A list of the form [potential, force, virial, extra]. - """ - - if (self.status & Status.HasData): - self.sendall(Message("getforce")); - reply = "" - while True: - try: - reply = self.recv(HDRLEN) - except socket.timeout: - warning(" @SOCKET: Timeout in getforce, trying again!", verbosity.low) - continue - if reply == Message("forceready"): - break - else: - warning(" @SOCKET: Unexpected getforce reply: %s" % (reply), verbosity.low) - if reply == "": - raise Disconnected() - else: - raise InvalidStatus("Status in getforce was " + self.status) - - mu = np.float64() - mu = self.recvall(mu) - - mlen = np.int32() - mlen = self.recvall(mlen) - mf = np.zeros(3*mlen,np.float64) - mf = self.recvall(mf) - - mvir = np.zeros((3,3),np.float64) - mvir = self.recvall(mvir) - - #! Machinery to return a string as an "extra" field. Comment if you are using a old patched driver that does not return anything! - mlen = np.int32() - mlen = self.recvall(mlen) - if mlen > 0 : - mxtra = np.zeros(mlen,np.character) - mxtra = self.recvall(mxtra) - mxtra = "".join(mxtra) - else: - mxtra = "" - - #!TODO must set up a machinery to intercept the "extra" return field - return [mu, mf, mvir, mxtra] - - -class InterfaceSocket(object): - """Host server class. - - Deals with distribution of all the jobs between the different client servers - and both initially and as clients either finish or are disconnected. - Deals with cleaning up after all calculations are done. Also deals with the - threading mechanism, and cleaning up if the interface is killed. - - Attributes: - address: A string giving the name of the host network. - port: An integer giving the port the socket will be using. - slots: An integer giving the maximum allowed backlog of queued clients. - mode: A string giving the type of socket used. - latency: A float giving the number of seconds the interface will wait - before updating the client list. - timeout: A float giving a timeout limit for considering a calculation dead - and dropping the connection. - dopbc: A boolean which decides whether or not to fold the bead positions - back into the unit cell before passing them to the client code. - server: The socket used for data transmition. - clients: A list of the driver clients connected to the server. - requests: A list of all the jobs required in the current PIMD step. - jobs: A list of all the jobs currently running. - _poll_thread: The thread the poll loop is running on. - _prev_kill: Holds the signals to be sent to clean up the main thread - when a kill signal is sent. - _poll_true: A boolean giving whether the thread is alive. - _poll_iter: An integer used to decide whether or not to check for - client connections. It is used as a counter, once it becomes higher - than the pre-defined number of steps between checks the socket will - update the list of clients and then be reset to zero. - """ - - def __init__(self, address="localhost", port=31415, slots=4, mode="unix", latency=1e-3, timeout=1.0, dopbc=True): - """Initializes interface. - - Args: - address: An optional string giving the name of the host server. - Defaults to 'localhost'. - port: An optional integer giving the port number. Defaults to 31415. - slots: An optional integer giving the maximum allowed backlog of - queueing clients. Defaults to 4. - mode: An optional string giving the type of socket. Defaults to 'unix'. - latency: An optional float giving the time in seconds the socket will - wait before updating the client list. Defaults to 1e-3. - timeout: Length of time waiting for data from a client before we assume - the connection is dead and disconnect the client. - dopbc: A boolean which decides whether or not to fold the bead positions - back into the unit cell before passing them to the client code. - - Raises: - NameError: Raised if mode is not 'unix' or 'inet'. - """ - - self.address = address - self.port = port - self.slots = slots - self.mode = mode - self.latency = latency - self.timeout = timeout - self.dopbc = dopbc - self._poll_thread = None - self._prev_kill = {} - self._poll_true = False - self._poll_iter = 0 - - def open(self): - """Creates a new socket. - - Used so that we can create a interface object without having to also - create the associated socket object. - """ - - if self.mode == "unix": - self.server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - try: - self.server.bind("/tmp/ipi_" + self.address) - info("Created unix socket with address " + self.address, verbosity.medium) - except: - raise ValueError("Error opening unix socket. Check if a file " + ("/tmp/ipi_" + self.address) + " exists, and remove it if unused.") - - elif self.mode == "inet": - self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.server.bind((self.address,self.port)) - info("Created inet socket with address " + self.address + " and port number " + str(self.port), verbosity.medium) - else: - raise NameError("InterfaceSocket mode " + self.mode + " is not implemented (should be unix/inet)") - - self.server.listen(self.slots) - self.server.settimeout(SERVERTIMEOUT) - self.clients = [] - self.requests = [] - self.jobs = [] - - def close(self): - """Closes down the socket.""" - - info(" @SOCKET: Shutting down the driver interface.", verbosity.low ) - - for c in self.clients[:]: - if (c.status & Status.Up): - c.shutdown(socket.SHUT_RDWR) - - self.server.shutdown(socket.SHUT_RDWR) - self.server.close() - if self.mode == "unix": - os.unlink("/tmp/ipi_" + self.address) - - def queue(self, atoms, cell, pars=None, reqid=0): - """Adds a request. - - Note that the pars dictionary need to be sent as a string of a - standard format so that the initialization of the driver can be done. - - Args: - atoms: An Atoms object giving the atom positions. - cell: A Cell object giving the system box. - pars: An optional dictionary giving the parameters to be sent to the - driver for initialization. Defaults to {}. - reqid: An optional integer that identifies requests of the same type, - e.g. the bead index - - Returns: - A list giving the status of the request of the form {'atoms': Atoms - object giving the atom positions, 'cell': Cell object giving the - system box, 'pars': parameter string, 'result': holds the result as a - list once the computation is done, 'status': a string labelling the - status, 'id': the id of the request, usually the bead number, 'start': - the starting time for the calculation, used to check for timeouts.}. - """ - - par_str = " " - - if not pars is None: - for k,v in pars.items(): - par_str += k + " : " + str(v) + " , " - else: - par_str = " " - - # APPLY PBC -- this is useful for codes such as LAMMPS that don't do full PBC when computing distances - pbcpos = depstrip(atoms.q).copy() - if self.dopbc: - cell.array_pbc(pbcpos) - - newreq = {"pos": pbcpos, "cell": cell, "pars": par_str, - "result": None, "status": "Queued", "id": reqid, - "start": -1 } - - self.requests.append(newreq) - return newreq - - def release(self, request): - """Empties the list of requests once finished. - - Args: - request: A list of requests that are done. - """ - - if request in self.requests: - self.requests.remove(request) - - def pool_update(self): - """Deals with keeping the pool of client drivers up-to-date during a - force calculation step. - - Deals with maintaining the client list. Clients that have - disconnected are removed and their jobs removed from the list of - running jobs and new clients are connected to the server. - """ - - for c in self.clients[:]: - if not (c.status & Status.Up): - try: - warning(" @SOCKET: Client " + str(c.peername) +" died or got unresponsive(C). Removing from the list.", verbosity.low) - c.shutdown(socket.SHUT_RDWR) - c.close() - except: - pass - c.status = Status.Disconnected - self.clients.remove(c) - for [k,j] in self.jobs[:]: - if j is c: - self.jobs = [ w for w in self.jobs if not ( w[0] is k and w[1] is j ) ] # removes pair in a robust way - #self.jobs.remove([k,j]) - k["status"] = "Queued" - k["start"] = -1 - - keepsearch = True - while keepsearch: - readable, writable, errored = select.select([self.server], [], [], 0.0) - if self.server in readable: - client, address = self.server.accept() - client.settimeout(TIMEOUT) - driver = DriverSocket(client) - info(" @SOCKET: Client asked for connection from "+ str( address ) +". Now hand-shaking.", verbosity.low) - driver.poll() - if (driver.status | Status.Up): - self.clients.append(driver) - info(" @SOCKET: Handshaking was successful. Added to the client list.", verbosity.low) - else: - warning(" @SOCKET: Handshaking failed. Dropping connection.", verbosity.low) - client.shutdown(socket.SHUT_RDWR) - client.close() - else: - keepsearch = False - - def pool_distribute(self): - """Deals with keeping the list of jobs up-to-date during a force - calculation step. - - Deals with maintaining the jobs list. Gets data from drivers that have - finished their calculation and removes that job from the list of running - jobs, adds jobs to free clients and initializes the forcefields of new - clients. - """ - - for c in self.clients: - if c.status == Status.Disconnected : # client disconnected. force a pool_update - self._poll_iter = UPDATEFREQ - return - if not c.status & ( Status.Ready | Status.NeedsInit ): - c.poll() - - for [r,c] in self.jobs[:]: - if c.status & Status.HasData: - try: - r["result"] = c.getforce() - if len(r["result"][1]) != len(r["pos"]): - raise InvalidSize - except Disconnected: - c.status = Status.Disconnected - continue - except InvalidSize: - warning(" @SOCKET: Client returned an inconsistent number of forces. Will mark as disconnected and try to carry on.", verbosity.low) - c.status = Status.Disconnected - continue - except: - warning(" @SOCKET: Client got in a awkward state during getforce. Will mark as disconnected and try to carry on.", verbosity.low) - c.status = Status.Disconnected - continue - c.poll() - while c.status & Status.Busy: # waits, but check if we got stuck. - if self.timeout > 0 and r["start"] > 0 and time.time() - r["start"] > self.timeout: - warning(" @SOCKET: Timeout! HASDATA for bead " + str(r["id"]) + " has been running for " + str(time.time() - r["start"]) + " sec.", verbosity.low) - warning(" @SOCKET: Client " + str(c.peername) + " died or got unresponsive(A). Disconnecting.", verbosity.low) - try: - c.shutdown(socket.SHUT_RDWR) - except: - pass - c.close() - c.status = Status.Disconnected - continue - c.poll() - if not (c.status & Status.Up): - warning(" @SOCKET: Client died a horrible death while getting forces. Will try to cleanup.", verbosity.low) - continue - r["status"] = "Done" - c.lastreq = r["id"] # saves the ID of the request that the client has just processed - self.jobs = [ w for w in self.jobs if not ( w[0] is r and w[1] is c ) ] # removes pair in a robust way - - if self.timeout > 0 and c.status != Status.Disconnected and r["start"] > 0 and time.time() - r["start"] > self.timeout: - warning(" @SOCKET: Timeout! Request for bead " + str( r["id"]) + " has been running for " + str(time.time() - r["start"]) + " sec.", verbosity.low) - warning(" @SOCKET: Client " + str(c.peername) + " died or got unresponsive(B). Disconnecting.",verbosity.low) - try: - c.shutdown(socket.SHUT_RDWR) - except socket.error: - e = sys.exc_info() - warning(" @SOCKET: could not shut down cleanly the socket. %s: %s in file '%s' on line %d" % (e[0].__name__, e[1], os.path.basename(e[2].tb_frame.f_code.co_filename), e[2].tb_lineno), verbosity.low ) - c.close() - c.poll() - c.status = Status.Disconnected - - freec = self.clients[:] - for [r2, c] in self.jobs: - freec.remove(c) - - pendr = self.requests[:] - pendr = [ r for r in self.requests if r["status"] == "Queued" ] - - for fc in freec[:]: - matched = False - # first, makes sure that the client is REALLY free - if not (fc.status & Status.Up): - self.clients.remove(fc) # if fc is in freec it can't be associated with a job (we just checked for that above) - continue - if fc.status & Status.HasData: - continue - if not (fc.status & (Status.Ready | Status.NeedsInit | Status.Busy) ): - warning(" @SOCKET: Client " + str(fc.peername) + " is in an unexpected status " + str(fc.status) + " at (1). Will try to keep calm and carry on.", verbosity.low) - continue - for match_ids in ( "match", "none", "free", "any" ): - for r in pendr[:]: - if match_ids == "match" and not fc.lastreq is r["id"]: - continue - elif match_ids == "none" and not fc.lastreq is None: - continue - elif match_ids == "free" and fc.locked: - continue - - info(" @SOCKET: Assigning [%5s] request id %4s to client with last-id %4s (% 3d/% 3d : %s)" % (match_ids, str(r["id"]), str(fc.lastreq), self.clients.index(fc), len(self.clients), str(fc.peername) ), verbosity.high ) - - while fc.status & Status.Busy: - fc.poll() - if fc.status & Status.NeedsInit: - fc.initialize(r["id"], r["pars"]) - fc.poll() - while fc.status & Status.Busy: # waits for initialization to finish. hopefully this is fast - fc.poll() - if fc.status & Status.Ready: - fc.sendpos(r["pos"], r["cell"]) - r["status"] = "Running" - r["start"] = time.time() # sets start time for the request - fc.poll() - self.jobs.append([r,fc]) - fc.locked = (fc.lastreq is r["id"]) - matched = True - # removes r from the list of pending jobs - pendr = [nr for nr in pendr if (not nr is r)] - break - else: - warning(" @SOCKET: Client " + str(fc.peername) + " is in an unexpected status " + str(fc.status) + " at (2). Will try to keep calm and carry on.", verbosity.low) - if matched: - break # doesn't do a second (or third) round if it managed - # to assign the job - - def _kill_handler(self, signal, frame): - """Deals with handling a kill call gracefully. - - Prevents any of the threads becoming zombies, by intercepting a - kill signal using the standard python function signal.signal() and - then closing the socket and the spawned threads before closing the main - thread. Called when signals SIG_INT and SIG_TERM are received. - - Args: - signal: An integer giving the signal number of the signal received - from the socket. - frame: Current stack frame. - """ - - warning(" @SOCKET: Kill signal. Trying to make a clean exit.", verbosity.low) - self.end_thread() - - softexit.trigger(" @SOCKET: Kill signal received") - - try: - self.__del__() - except: - pass - if signal in self._prev_kill: - self._prev_kill[signal](signal, frame) - - def _poll_loop(self): - """The main thread loop. - - Runs until either the program finishes or a kill call is sent. Updates - the pool of clients every UPDATEFREQ loops and loops every latency - seconds until _poll_true becomes false. - """ - - info(" @SOCKET: Starting the polling thread main loop.", verbosity.low) - self._poll_iter = UPDATEFREQ - while self._poll_true: - time.sleep(self.latency) - # makes sure to remove the last dead client as soon as possible -- and to get clients if we are dry - if self._poll_iter >= UPDATEFREQ or len(self.clients)==0 or (len(self.clients) > 0 and not(self.clients[0].status & Status.Up)): - self.pool_update() - self._poll_iter = 0 - self._poll_iter += 1 - self.pool_distribute() - - if os.path.exists("EXIT"): # softexit - info(" @SOCKET: Soft exit request from file EXIT. Flushing job queue.", verbosity.low) - # releases all pending requests - for r in self.requests: - r["status"] = "Exit" - for c in self.clients: - try: - c.shutdown(socket.SHUT_RDWR) - c.close() - except: - pass - # flush it all down the drain - self.clients = [] - self.jobs = [] - self._poll_thread = None - - def started(self): - """Returns a boolean specifying whether the thread has started yet.""" - - return (not self._poll_thread is None) - - def start_thread(self): - """Spawns a new thread. - - Splits the main program into two threads, one that runs the polling loop - which updates the client list, and one which gets the data. Also sets up - the machinery to deal with a kill call, in the case of a Ctrl-C or - similar signal the signal is intercepted by the _kill_handler function, - which cleans up the spawned thread before closing the main thread. - - Raises: - NameError: Raised if the polling thread already exists. - """ - - self.open() - if not self._poll_thread is None: - raise NameError("Polling thread already started") - self._poll_thread = threading.Thread(target=self._poll_loop, name="poll_" + self.address) - self._poll_thread.daemon = True - self._prev_kill[signal.SIGINT] = signal.signal(signal.SIGINT, self._kill_handler) - self._prev_kill[signal.SIGTERM] = signal.signal(signal.SIGTERM, self._kill_handler) - self._poll_true = True - self._poll_thread.start() - - def end_thread(self): - """Closes the spawned thread. - - Deals with cleaning up the spawned thread cleanly. First sets - _poll_true to false to indicate that the poll_loop should be exited, then - closes the spawned thread and removes it. - """ - - self._poll_true = False - if not self._poll_thread is None: - self._poll_thread.join() - self._poll_thread = None - self.close() diff --git a/tools/i-pi/ipi/tests/README b/tools/i-pi/ipi/tests/README deleted file mode 100644 index 029c87a726..0000000000 --- a/tools/i-pi/ipi/tests/README +++ /dev/null @@ -1,9 +0,0 @@ - -- Nosetests directory -- - - * This is the directory containing the tests that can be run with nosetests. - - * Files: - - common.py: Common helper functions for use in the tests. - - datest.py: Tests the dependency utility and some of the numpy - facilities. - - test_*.py: The actual tests for at least some of the code basis. diff --git a/tools/i-pi/ipi/tests/common.py b/tools/i-pi/ipi/tests/common.py deleted file mode 100644 index 3ffea431a1..0000000000 --- a/tools/i-pi/ipi/tests/common.py +++ /dev/null @@ -1,96 +0,0 @@ -"""Common helper functions for running the tests. - -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 . - - -Functions: - local: Returns local folder of the tests directory. - -Classes: - TestSimulation: Can be used to test that a particular simulation - will run properly, given an input file and a driver code. -""" - -import glob -import os -import subprocess -import shutil -import tempfile - -def local(file=None): - """Returns local folder of the tests directory. - - Args: - - file: Append file to the local folder - """ - if file: - return os.sep.join(__file__.split(os.sep)[:-1]+[file]) - else: - return os.sep.join(__file__.split(os.sep)[:-1]) - -class TestSimulation(object): - """Simple class used to test various aspects of the simulation. - - Can be used to run an example given the location of an xml - input file and the location of a suitable driver code. - - Attributes: - finput: The name of the xml input file - folder_input: A string giving the directory the input file is held in. - fdriver: The location of a driver code. - cwd: Current working directory. - tmpdir: A temporary directory to run the simulation in. - """ - - def __init__(self, input, driver): - """Initializes TestSimulation. - - Args: - input: The name of the xml input file. - driver: The location of the driver code. - """ - - self.finput = input - self.folder_input = os.sep.join(input.split(os.sep)[:-1]) - self.fdriver = driver - self.cwd = os.getcwd() - self.tmpdir = tempfile.mkdtemp() - - # Copy needed files to tmpdir - for src in glob.glob("%s/*"%self.folder_input): - shutil.copy(src, self.tmpdir) - - os.chdir(self.tmpdir) - - def __del__(self): - """Cleans the temporary directory once the simulation is over.""" - - os.chdir(self.cwd) - shutil.rmtree(self.tmpdir) - - def run(self): - """Runs the simulation.""" - - # Run driver - p = subprocess.Popen("echo running %s"%self.fdriver, shell=True) - - # Start simulation - # TODO - print subprocess.check_output("ls", shell=True) - print subprocess.check_output("pwd", shell=True) - - # wait for driver to finish - p.wait() diff --git a/tools/i-pi/ipi/tests/datest.py b/tools/i-pi/ipi/tests/datest.py deleted file mode 100644 index aa608691ef..0000000000 --- a/tools/i-pi/ipi/tests/datest.py +++ /dev/null @@ -1,56 +0,0 @@ -"""Short test scripts. - -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 . - - -Used to test the depend array view mechanism. -""" - -import sys -sys.path.append("../") -sys.path.append("../../") - -import utils.depend as dp -import numpy as np - -print "## Creation test" -a = dp.depend_array(name="a",value=np.zeros((2,2),float)) -b = dp.depend_array(name="b",value=np.zeros((2,2),float)) - -print "## Slicing test" -c = a[0] -print type(c) - -print "## Addition test" -c = a + b -print type(c) - -print "## Increment test" -c = np.zeros((2,2)) -c += a -print type(c) - -print "## Dot test" -c = np.dot(a,b) -print type(c) - -rdot = np.dot -def fdot(a,b): - return rdot(a,b).view(np.ndarray) -#np.dot=fdot - -print "## Dot-f test" -c = np.dot(a,b) diff --git a/tools/i-pi/ipi/tests/test.pos_0.pdb b/tools/i-pi/ipi/tests/test.pos_0.pdb deleted file mode 100644 index 426c470192..0000000000 --- a/tools/i-pi/ipi/tests/test.pos_0.pdb +++ /dev/null @@ -1,10 +0,0 @@ -CRYST1 1.000 1.000 1.000 90.00 90.00 90.00 P 1 1 -ATOM 1 O 1 1 0.000 1.000 2.000 0.00 0.00 0 -ATOM 2 H 1 1 3.000 4.000 5.000 0.00 0.00 0 -ATOM 3 H 1 1 6.000 7.000 8.000 0.00 0.00 0 -END -CRYST1 1.000 1.000 1.000 90.00 90.00 90.00 P 1 1 -ATOM 1 O 1 1 0.000 2.000 4.000 0.00 0.00 0 -ATOM 2 H 1 1 6.000 8.000 10.000 0.00 0.00 0 -ATOM 3 H 1 1 12.000 14.000 16.000 0.00 0.00 0 -END diff --git a/tools/i-pi/ipi/tests/test.pos_0.xyz b/tools/i-pi/ipi/tests/test.pos_0.xyz deleted file mode 100644 index 05ae14da54..0000000000 --- a/tools/i-pi/ipi/tests/test.pos_0.xyz +++ /dev/null @@ -1,10 +0,0 @@ -3 -# CELL(abcABC): 1.00000 1.00000 1.00000 90.00000 90.00000 90.00000 - O 0.00000e+00 1.00000e+00 2.00000e+00 - H 3.00000e+00 4.00000e+00 5.00000e+00 - H 6.00000e+00 7.00000e+00 8.00000e+00 -3 -# CELL(abcABC): 1.00000 1.00000 1.00000 90.00000 90.00000 90.00000 - O 0.00000e+00 2.00000e+00 4.00000e+00 - H 6.00000e+00 8.00000e+00 1.00000e+01 - H 1.20000e+01 1.40000e+01 1.60000e+01 diff --git a/tools/i-pi/ipi/tests/test_contraction.py b/tools/i-pi/ipi/tests/test_contraction.py deleted file mode 100644 index ad9556fbea..0000000000 --- a/tools/i-pi/ipi/tests/test_contraction.py +++ /dev/null @@ -1,127 +0,0 @@ -"""Tests ring polymer contraction. - -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 . -""" - -import sys -sys.path.append("../") -sys.path.append("../../") - -from ipi.utils import nmtransform -import numpy as np -from numpy.testing import assert_almost_equal as assert_equals - -def check_up_and_down_scaling(n, q): - """Check if q expanding and then contracting a ring polymer is a no-op. - - Args: - n: The number of beads in the scaled ring polymer. - q: The original position array. - """ - - rescale = nmtransform.nm_rescale(q.shape[0], n) - print "Initial position of the beads:" - print q, q.shape, (q.shape[0], n) - - # rescale up to the n beads - beads_n = rescale.b1tob2(q) - print "Upscaled to %d beads:"%n - print beads_n, beads_n.shape - - beads_final = rescale.b2tob1(beads_n) - print "Final position of the beads:" - print beads_final - - assert_equals(q, beads_final) - return beads_n - -def check_rpc_consistency(n, q): - """Check if q expanding and then contracting a ring polymer is a no-op. - - Args: - n: The number of beads in the scaled ring polymer. - q: The original position array. - """ - - rescale1 = nmtransform.nm_rescale(q.shape[0], n) - rescale2 = nmtransform.nm_rescale(n,q.shape[0]) - - beads_n=rescale1.b1tob2(q) - beads_1=rescale1.b2tob1(beads_n) - beads_2=rescale2.b1tob2(beads_n) - - assert_equals(beads_1, beads_2) - -def check_centroid_pos(n, q): - """Check if expanding and then contracting a ring polymer - maintains the centroid. - - Args: - n: The number of beads in the scaled ring polymer. - q: The original position array. - """ - - beads_big = check_up_and_down_scaling(n, q) - rescale_big = nmtransform.mk_rs_matrix(n, 1) - rescale_q = nmtransform.mk_rs_matrix(q.shape[0], 1) - - centroid_big = np.dot(rescale_big, beads_big) - centroid_q = np.dot(rescale_q, q) - - assert_equals(centroid_q, centroid_big) - -numbers_to_check = range(10, 56, 9) -def test_1_to_n(): - """One bead tests.""" - - for n in numbers_to_check: - q = np.array([[0.0,0.0,0.0, 1.0,0.0,0.0]]) - yield check_up_and_down_scaling, n, q - yield check_rpc_consistency, n, q - yield check_centroid_pos, n, q - -def test_2_to_n(): - """Two bead tests.""" - - for n in numbers_to_check: - q = np.array([[0.0,0.0,0.0, 1.0,0.0,0.0], - [0.0,0.1,0.0, 1.0,0.1,0.0]]) - yield check_up_and_down_scaling, n, q - yield check_rpc_consistency, n, q - yield check_centroid_pos, n, q - -def test_3_to_n(): - """Three bead tests.""" - - for n in numbers_to_check: - q = np.array([[0.0, 0.0,0.0, 1.0, 0.0,0.0], - [0.0, 0.1,0.0, 1.0, 0.1,0.0], - [0.0,-0.1,0.0, 1.0,-0.1,0.0]]) - yield check_up_and_down_scaling, n, q - yield check_rpc_consistency, n, q - yield check_centroid_pos, n, q - -def test_4_to_n(): - """Four bead tests.""" - - for n in numbers_to_check: - q = np.array([[0.0, 0.0,0.0, 1.0, 0.0,0.0], - [0.0, 0.1,0.0, 1.0, 0.1,0.0], - [0.0, 0.2,0.0, 1.0, 0.2,0.0], - [0.0,-0.1,0.0, 1.0,-0.1,0.0]]) - yield check_up_and_down_scaling, n, q - yield check_rpc_consistency, n, q - yield check_centroid_pos, n, q diff --git a/tools/i-pi/ipi/tests/test_io.py b/tools/i-pi/ipi/tests/test_io.py deleted file mode 100644 index 53fad808f7..0000000000 --- a/tools/i-pi/ipi/tests/test_io.py +++ /dev/null @@ -1,96 +0,0 @@ -"""Deals with testing the io system. - -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 . - -Note that this will only run if you have Python version 2.5 or later. -Otherwise, replace all the with statements with f = filestream. -""" - -import sys -sys.path.append("../") -sys.path.append("../../") - -import filecmp -import os, sys -import numpy as np -from numpy.testing import assert_equal -from common import local - -from ipi.engine.cell import Cell - -from ipi.utils.io import io_xyz -from ipi.utils.io import io_pdb - -pos = np.array([i for i in range(3*3)]) - -def test_read_xyz(): - """Tests that xyz files are read correctly.""" - - with open(local("test.pos_0.xyz"), "r") as f: - atoms = io_xyz.read_xyz(f) - assert(len(atoms) == 3) - assert_equal(pos, atoms.q) - -def test_iter_xyz(): - """Tests that xyz files with multiple frames are read correctly.""" - - with open(local("test.pos_0.xyz"), "r") as f: - for num, atoms in enumerate(io_xyz.iter_xyz(f)): - assert(len(atoms) == 3) - assert_equal(pos*(num+1), atoms.q) - -def test_read_pdb(): - """Tests that pdb files are read correctly.""" - - with open(local("test.pos_0.pdb"), "r") as f: - atoms, cell = io_pdb.read_pdb(f) - assert(len(atoms) == 3) - assert_equal(pos, atoms.q) - # TODO: test cell - -def test_iter_pdb(): - """Tests that pdb files with multiple frames are read correctly.""" - - with open(local("test.pos_0.pdb"), "r") as f: - for num, (atoms, cell) in enumerate(io_pdb.iter_pdb(f)): - assert(len(atoms) == 3) - assert_equal(pos*(num+1), atoms.q) - -def test_print_pdb(): - """Tests that pdb files are printed correctly.""" - - with open(local("test.pos_0.pdb"), "r") as f: - with open(local("test.pos_1.xyz"), "w") as out: - for num, (atoms, cell) in enumerate(io_pdb.iter_pdb(f)): - assert(len(atoms) == 3) - assert_equal(pos*(num+1), atoms.q) - io_xyz.print_xyz(atoms, Cell(h=np.identity(3, float)), filedesc=out) - - assert(filecmp.cmp(local("test.pos_0.xyz"), local("test.pos_1.xyz"))) - os.unlink(local("test.pos_1.xyz")) - -def test_print_xyz(): - """Tests that xyz files are printed correctly.""" - - with open(local("test.pos_0.pdb"), "r") as f: - with open(local("test.pos_1.pdb"), "w") as out: - for num, (atoms, cell) in enumerate(io_pdb.iter_pdb(f)): - assert(len(atoms) == 3) - assert_equal(pos*(num+1), atoms.q) - io_pdb.print_pdb(atoms, Cell(h=np.identity(3, float)), filedesc=out) - - assert(filecmp.cmp(local("test.pos_0.pdb"), local("test.pos_1.pdb"))) - os.unlink(local("test.pos_1.pdb")) diff --git a/tools/i-pi/ipi/tests/test_runs.py b/tools/i-pi/ipi/tests/test_runs.py deleted file mode 100644 index 940f2c9ed9..0000000000 --- a/tools/i-pi/ipi/tests/test_runs.py +++ /dev/null @@ -1,24 +0,0 @@ -"""Tests that the Lennard-Jones test case works properly. - -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 . -""" - -from common import TestSimulation - -def test_lj_gas(): - ts = TestSimulation(input="../../test/lj/gas/input.xml", driver="../../drivers/driver.x") - ts.run() - # Test properties (e.g. latest positions/temperature etc) diff --git a/tools/i-pi/ipi/utils/README b/tools/i-pi/ipi/utils/README deleted file mode 100644 index edc629f081..0000000000 --- a/tools/i-pi/ipi/utils/README +++ /dev/null @@ -1,21 +0,0 @@ - -- Utility functions directory -- - - * This is the directory containing functions that are used in the other - modules in the code. - - * Files: - - depend.py: Deals with the dependency detection, value caching and - automatic updating of variables. - - inputvalue.py: Contains the base classes used in reading the xml - input file, and creating the restart file. - - mathtools.py: Contains the algorithms used in various parts of the code. - - messages.py: Contains the classes to generate info and warning messages - to standard output during the simulation. - - nmtransform.py: Contains the algorithms that deal with the normal mode - and ring polymer contraction transformations. - - prng.py: Deals with random number generation. - - softexit: Contains the classes to deal with calls for a soft exit. - - units.py: Holds atomic masses, fundamental constants, and unit conversions. - - * Directories: - - io: Holds the modules that deal with reading and outputting files. diff --git a/tools/i-pi/ipi/utils/__init__.py b/tools/i-pi/ipi/utils/__init__.py deleted file mode 100644 index 6fa5c8e00c..0000000000 --- a/tools/i-pi/ipi/utils/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["depend", "units", "mathtools", "prng" , "inputvalue", 'nmtransform', 'messages', 'softexit'] diff --git a/tools/i-pi/ipi/utils/depend.py b/tools/i-pi/ipi/utils/depend.py deleted file mode 100644 index a4da91b47b..0000000000 --- a/tools/i-pi/ipi/utils/depend.py +++ /dev/null @@ -1,768 +0,0 @@ -"""Contains the classes that are used to define the dependency network. - -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 . - - -The classes defined in this module overload the standard __get__ and __set__ -routines of the numpy ndarray class and standard library object class so that -they automatically keep track of whether anything they depend on has been -altered, and so only recalculate their value when necessary. - -Basic quantities that depend on nothing else can be manually altered in the -usual way, all other quantities are updated automatically and cannot be changed -directly. - -The exceptions to this are synchronized properties, which are in effect -multiple basic quantities all related to each other, for example the bead and -normal mode representations of the positions and momenta. In this case any of -the representations can be set manually, and all the other representations -must keep in step. - -For a more detailed discussion, see the reference manual. - -Classes: - depend_base: Base depend class with the generic methods and attributes. - depend_value: Depend class for scalar objects. - depend_array: Depend class for arrays. - synchronizer: Class that holds the different objects that are related to each - other and keeps track of which property has been set manually. - dobject: An extension of the standard library object that overloads - __getattribute__ and __setattribute__, so that we can use the - standard syntax for setting and getting the depend object, - i.e. foo = value, not foo.set(value). - -Functions: - dget: Gets the dependencies of a depend object. - dset: Sets the dependencies of a depend object. - depstrip: Used on a depend_array object, to access its value without - needing the depend machinery, and so much more quickly. Must not be used - if the value of the array is to be changed. - depcopy: Copies the dependencies from one object to another - deppipe: Used to make two objects be synchronized to the same value. -""" - -__all__ = ['depend_base', 'depend_value', 'depend_array', 'synchronizer', - 'dobject', 'dget', 'dset', 'depstrip', 'depcopy', 'deppipe'] - -import numpy as np -from ipi.utils.messages import verbosity, warning - -class synchronizer(object): - """Class to implement synched objects. - - Holds the objects used to keep two or more objects in step with each other. - This is shared between all the synched objects. - - Attributes: - synched: A dictionary containing all the synched objects, of the form - {"name": depend object}. - manual: A string containing the name of the object being manually changed. - """ - - def __init__(self, deps=None): - """Initializes synchronizer. - - Args: - deps: Optional dictionary giving the synched objects of the form - {"name": depend object}. - """ - - if deps is None: - self.synced = dict() - else: - self.synced = deps - - self.manual = None - - -#TODO put some error checks in the init to make sure that the object is initialized from consistent synchro and func states -class depend_base(object): - """Base class for dependency handling. - - Builds the majority of the machinery required for the different depend - objects. Contains functions to add and remove dependencies, the tainting - mechanism by which information about which objects have been updated is - passed around the dependency network, and the manual and automatic update - functions to check that depend objects with functions are not manually - updated and that synchronized objects are kept in step with the one manually - changed. - - Attributes: - _tainted: An array containing one boolean, which is True if one of the - dependencies has been changed since the last time the value was - cached. - _func: A function name giving the method of calculating the value, - if required. None otherwise. - _name: The name of the depend base object. - _synchro: A synchronizer object to deal with synched objects, if - required. None otherwise. - _dependants: A list containing all objects dependent on the self. - """ - - def __init__(self, name, synchro=None, func=None, dependants=None, dependencies=None, tainted=None): - """Initializes depend_base. - - An unusual initialization routine, as it has to be able to deal with the - depend array mechanism for returning slices as new depend arrays. - - This is the reason for the penultimate if statement; it automatically - taints objects created from scratch but does nothing to slices which are - not tainted. - - Also, the last if statement makes sure that if a synchronized property is - sliced, this initialization routine does not automatically set it to the - manually updated property. - - Args: - name: A string giving the name of self. - tainted: An optional array containing one boolean which is True if one - of the dependencies has been changed. - func: An optional argument that can be specified either by a function - name, or for synchronized values a dictionary of the form - {"name": function name}; where "name" is one of the other - synched objects and function name is the name of a function to - get the object "name" from self. - synchro: An optional synchronizer object. - dependants: An optional list containing objects that depend on self. - dependencies: An optional list containing objects that self - depends upon. - """ - - self._dependants = [] - if tainted is None: - tainted = np.array([True],bool) - if dependants is None: - dependants = [] - if dependencies is None: - dependencies = [] - self._tainted = tainted - self._func = func - self._name = name - - self.add_synchro(synchro) - - for item in dependencies: - item.add_dependant(self, tainted) - - self._dependants = dependants - - # Don't taint self if the object is a primitive one. However, do propagate tainting to dependants if required. - if (tainted): - if self._func is None: - self.taint(taintme=False) - else: - self.taint(taintme=tainted) - - - def add_synchro(self, synchro=None): - """ Links depend object to a synchronizer. """ - - self._synchro = synchro - if not self._synchro is None and not self._name in self._synchro.synced: - self._synchro.synced[self._name] = self - self._synchro.manual = self._name - - - def add_dependant(self, newdep, tainted=True): - """Adds a dependant property. - - Args: - newdep: The depend object to be added to the dependency list. - tainted: A boolean that decides whether newdep should be tainted. - True by default. - """ - - self._dependants.append(newdep) - if tainted: - newdep.taint(taintme=True) - - def add_dependency(self, newdep, tainted=True): - """Adds a dependency. - - Args: - newdep: The depend object self now depends upon. - tainted: A boolean that decides whether self should - be tainted. True by default. - """ - - newdep._dependants.append(self) - if tainted: - self.taint(taintme=True) - - def taint(self,taintme=True): - """Recursively sets tainted flag on dependent objects. - - The main function dealing with the dependencies. Taints all objects - further down the dependency tree until either all objects have been - tainted, or it reaches only objects that have already been tainted. Note - that in the case of a dependency loop the initial setting of _tainted to - True prevents an infinite loop occurring. - - Also, in the case of a synchro object, the manually set quantity is not - tainted, as it is assumed that synchro objects only depend on each other. - - Args: - taintme: A boolean giving whether self should be tainted at the end. - True by default. - """ - - self._tainted[:] = True - for item in self._dependants: - if (not item._tainted[0]): - item.taint() - if not self._synchro is None: - for v in self._synchro.synced.values(): - if (not v._tainted[0]) and (not v is self): - v.taint(taintme=True) - self._tainted[:] = (taintme and (not self._name == self._synchro.manual)) - else: - self._tainted[:] = taintme - - def tainted(self): - """Returns tainted flag.""" - - return self._tainted[0] - - def update_auto(self): - """Automatic update routine. - - Updates the value when get has been called and self has been tainted. - """ - - if not self._synchro is None: - if (not self._name == self._synchro.manual): - self.set(self._func[self._synchro.manual](), manual=False) - else: - warning(self._name + " probably shouldn't be tainted (synchro)", verbosity.low) - elif not self._func is None: - self.set(self._func(), manual=False) - else: - warning(self._name + " probably shouldn't be tainted (value)", verbosity.low) - - def update_man(self): - """Manual update routine. - - Updates the value when the value has been manually set. Also raises an - exception if a calculated quantity has been manually set. Also starts the - tainting routine. - - Raises: - NameError: If a calculated quantity has been manually set. - """ - - if not self._synchro is None: - self._synchro.manual = self._name - for v in self._synchro.synced.values(): - v.taint(taintme=True) - self._tainted[:] = False - elif not self._func is None: - raise NameError("Cannot set manually the value of the automatically-computed property <" + self._name + ">") - else: - self.taint(taintme=False) - - def set(self, value, manual=False): - """Dummy setting routine.""" - - pass - - def get(self): - """Dummy getting routine.""" - - pass - -class depend_value(depend_base): - """Scalar class for dependency handling. - - Attributes: - _value: The value associated with self. - """ - - def __init__(self, name, value=None, synchro=None, func=None, dependants=None, dependencies=None, tainted=None): - """Initializes depend_value. - - Args: - name: A string giving the name of self. - value: The value of the object. Optional. - tainted: An optional array giving the tainted flag. Default is [True]. - func: An optional argument that can be specified either by a function - name, or for synchronized values a dictionary of the form - {"name": function name}; where "name" is one of the other - synched objects and function name is the name of a function to - get the object "name" from self. - synchro: An optional synchronizer object. - dependants: An optional list containing objects that depend on self. - dependencies: An optional list containing objects that self - depends upon. - """ - - self._value = value - super(depend_value,self).__init__(name, synchro, func, dependants, dependencies, tainted) - - def get(self): - """Returns value, after recalculating if necessary. - - Overwrites the standard method of getting value, so that value - is recalculated if tainted. - """ - - if self._tainted[0]: - self.update_auto() - self.taint(taintme=False) - - return self._value - - def __get__(self, instance, owner): - """Overwrites standard get function.""" - - return self.get() - - def set(self, value, manual=True): - """Alters value and taints dependencies. - - Overwrites the standard method of setting value, so that dependent - quantities are tainted, and so we check that computed quantities are not - manually updated. - """ - - self._value = value - self.taint(taintme=False) - if (manual): - self.update_man() - - def __set__(self, instance, value): - """Overwrites standard set function.""" - - self.set(value) - - -class depend_array(np.ndarray, depend_base): - """Array class for dependency handling. - - Differs from depend_value as arrays handle getting items in a different - way to scalar quantities, and as there needs to be support for slicing an - array. Initialisation is also done in a different way for ndarrays. - - Attributes: - _bval: The base deparray storage space. Equal to depstrip(self) unless - self is a slice. - """ - - def __new__(cls, value, name, synchro=None, func=None, dependants=None, dependencies=None, tainted=None, base=None): - """Creates a new array from a template. - - Called whenever a new instance of depend_array is created. Casts the - array base into an appropriate form before passing it to - __array_finalize__(). - - Args: - See __init__(). - """ - - obj = np.asarray(value).view(cls) - return obj - - def __init__(self, value, name, synchro=None, func=None, dependants=None, dependencies=None, tainted=None, base=None): - """Initializes depend_array. - - Note that this is only called when a new array is created by an - explicit constructor. - - Args: - name: A string giving the name of self. - value: The (numpy) array to serve as the memory base. - tainted: An optional array giving the tainted flag. Default is [True]. - func: An optional argument that can be specified either by a function - name, or for synchronized values a dictionary of the form - {"name": function name}; where "name" is one of the other - synched objects and function name is the name of a function to - get the object "name" from self. - synchro: An optional synchronizer object. - dependants: An optional list containing objects that depend on self. - dependencies: An optional list containing objects that self - depends upon. - """ - - super(depend_array,self).__init__(name, synchro, func, dependants, dependencies, tainted) - - if base is None: - self._bval = value - else: - self._bval = base - - def copy(self, order='C', maskna=None): - """Wrapper for numpy copy mechanism.""" - - # Sets a flag and hands control to the numpy copy - self._fcopy = True - return super(depend_array,self).copy(order) - - def __array_finalize__(self, obj): - """Deals with properly creating some arrays. - - In the case where a function acting on a depend array returns a ndarray, - this casts it into the correct form and gives it the - depend machinery for other methods to be able to act upon it. New - depend_arrays will next be passed to __init__ ()to be properly - initialized, but some ways of creating arrays do not call __new__() or - __init__(), so need to be initialized. - """ - - depend_base.__init__(self, name="") - - if type(obj) is depend_array: - # We are in a view cast or in new from template. Unfortunately - # there is no sure way to tell (or so it seems). Hence we need to - # handle special cases, and hope we are in a view cast otherwise. - if hasattr(obj,"_fcopy"): - del(obj._fcopy) # removes the "copy flag" - self._bval = depstrip(self) - else: - # Assumes we are in view cast, so copy over the attributes from the - # parent object. Typical case: when transpose is performed as a - # view. - super(depend_array,self).__init__(obj._name, obj._synchro, obj._func, obj._dependants, None, obj._tainted) - self._bval = obj._bval - else: - # Most likely we came here on the way to init. - # Just sets a defaults for safety - self._bval = depstrip(self) - - - def __array_prepare__(self, arr, context=None): - """Prepare output array for ufunc. - - Depending on the context we try to understand if we are doing an - in-place operation (in which case we want to keep the return value a - deparray) or we are generating a new array as a result of the ufunc. - In this case there is no way to know if dependencies should be copied, - so we strip and return a ndarray. - """ - - if context is None or len(context) < 2 or not type(context[0]) is np.ufunc: - # It is not clear what we should do. If in doubt, strip dependencies. - return np.ndarray.__array_prepare__(self.view(np.ndarray),arr.view(np.ndarray),context) - elif len(context[1]) > context[0].nin and context[0].nout > 0: - # We are being called by a ufunc with a output argument, which is being - # actually used. Most likely, something like an increment, - # so we pass on a deparray - return super(depend_array,self).__array_prepare__(arr,context) - else: - # Apparently we are generating a new array. - # We have no way of knowing its - # dependencies, so we'd better return a ndarray view! - return np.ndarray.__array_prepare__(self.view(np.ndarray),arr.view(np.ndarray),context) - - def __array_wrap__(self, arr, context=None): - """ Wraps up output array from ufunc. - - See docstring of __array_prepare__(). - """ - - if context is None or len(context) < 2 or not type(context[0]) is np.ufunc: - return np.ndarray.__array_wrap__(self.view(np.ndarray),arr.view(np.ndarray),context) - elif len(context[1]) > context[0].nin and context[0].nout > 0: - return super(depend_array,self).__array_wrap__(arr,context) - else: - return np.ndarray.__array_wrap__(self.view(np.ndarray),arr.view(np.ndarray),context) - - # whenever possible in compound operations just return a regular ndarray - __array_priority__ = -1.0 - - def reshape(self, newshape): - """Changes the shape of the base array. - - Args: - newshape: A tuple giving the desired shape of the new array. - - Returns: - A depend_array with the dimensions given by newshape. - """ - - return depend_array(depstrip(self).reshape(newshape), name=self._name, synchro=self._synchro, func=self._func, dependants=self._dependants, tainted=self._tainted, base=self._bval) - - def flatten(self): - """Makes the base array one dimensional. - - Returns: - A flattened array. - """ - - return self.reshape(self.size) - - @staticmethod - def __scalarindex(index, depth=1): - """Checks if an index points at a scalar value. - - Used so that looking up one item in an array returns a scalar, whereas - looking up a slice of the array returns a new array with the same - dependencies as the original, so that changing the slice also taints - the global array. - - Arguments: - index: the index to be checked. - depth: the rank of the array which is being accessed. Default value - is 1. - - Returns: - A logical stating whether a __get__ instruction based - on index would return a scalar. - """ - - if (np.isscalar(index) and depth <= 1): - return True - elif (isinstance(index, tuple) and len(index)==depth): - #if the index is a tuple check it does not contain slices - for i in index: - if not np.isscalar(i): return False - return True - return False - - def __getitem__(self,index): - """Returns value[index], after recalculating if necessary. - - Overwrites the standard method of getting value, so that value - is recalculated if tainted. Scalar slices are returned as an ndarray, - so without depend machinery. If you need a "scalar depend" which - behaves as a slice, just create a 1x1 matrix, e.g b=a(7,1:2) - - Args: - index: A slice variable giving the appropriate slice to be read. - """ - - if self._tainted[0]: - self.update_auto() - self.taint(taintme=False) - - if (self.__scalarindex(index, self.ndim)): - return depstrip(self)[index] - else: - return depend_array(depstrip(self)[index], name=self._name, synchro=self._synchro, func=self._func, dependants=self._dependants, tainted=self._tainted, base=self._bval) - - - def __getslice__(self,i,j): - """Overwrites standard get function.""" - - return self.__getitem__(slice(i,j,None)) - - def get(self): - """Alternative to standard get function.""" - - return self.__get__(slice(None,None,None)) - - def __get__(self, instance, owner): - """Overwrites standard get function.""" - - # It is worth duplicating this code that is also used in __getitem__ as this - # is called most of the time, and we avoid creating a load of copies pointing to the same depend_array - - if self._tainted[0]: - self.update_auto() - self.taint(taintme=False) - - return self - - def __setitem__(self,index,value,manual=True): - """Alters value[index] and taints dependencies. - - Overwrites the standard method of setting value, so that dependent - quantities are tainted, and so we check that computed quantities are not - manually updated. - - Args: - index: A slice variable giving the appropriate slice to be read. - value: The new value of the slice. - manual: Optional boolean giving whether the value has been changed - manually. True by default. - """ - - self.taint(taintme=False) - if manual: - depstrip(self)[index] = value - self.update_man() - elif index == slice(None,None,None): - self._bval[index] = value - else: - raise IndexError("Automatically computed arrays should span the whole parent") - - def __setslice__(self,i,j,value): - """Overwrites standard set function.""" - - return self.__setitem__(slice(i,j),value) - - def set(self, value, manual=True): - """Alterative to standard set function. - - Args: - See __setitem__(). - """ - - self.__setitem__(slice(None,None),value=value,manual=manual) - - def __set__(self, instance, value): - """Overwrites standard set function.""" - - self.__setitem__(slice(None,None),value=value) - - -# np.dot and other numpy.linalg functions have the nasty habit to -# view cast to generate the output. Since we don't want to pass on -# dependencies to the result of these functions, and we can't use -# the ufunc mechanism to demote the class type to ndarray, we must -# overwrite np.dot and other similar functions. -# BEGINS NUMPY FUNCTIONS OVERRIDE -# ** np.dot -__dp_dot = np.dot - -def dep_dot(da, db): - a=depstrip(da) - b=depstrip(db) - - return __dp_dot(da,db) - -np.dot = dep_dot -# ENDS NUMPY FUNCTIONS OVERRIDE - -def dget(obj,member): - """Takes an object and retrieves one of its attributes. - - Note that this is necessary as calling it in the standard way calls the - __get__() function of member. - - Args: - obj: A user defined class. - member: A string giving the name of an attribute of obj. - - Exceptions: - KeyError: If member is not an attribute of obj. - - Returns: - obj.member. - """ - - return obj.__dict__[member] - -def dset(obj,member,value,name=None): - """Takes an object and sets one of its attributes. - - Necessary for editing any depend object, and should be used for - initialising them as well, as often initialization occurs more than once, - with the second time effectively being an edit. - - Args: - obj: A user defined class. - member: A string giving the name of an attribute of obj. - value: The new value of member. - name: New name of member. - - Exceptions: - KeyError: If member is not an attribute of obj. - """ - - obj.__dict__[member] = value - if not name is None: - obj.__dict__[member]._name = name - -def depstrip(da): - """Removes dependencies from a depend_array. - - Takes a depend_array and returns its value as a ndarray, effectively - stripping the dependencies from the ndarray. This speeds up a lot of - calculations involving these arrays. Must only be used if the value of the - array is not going to be changed. - - Args: - deparray: A depend_array. - - Returns: - A ndarray with the same value as deparray. - """ - - if isinstance(da, depend_array): # only bother to strip dependencies if the array actually IS a depend_array - #if da._tainted[0]: - # print "!!! WARNING depstrip called on tainted array WARNING !!!!!" # I think we can safely assume that when we call depstrip the array has been cleared already but I am not 100% sure so better check - and in case raise the update - return da.view(np.ndarray) - else: - return da - -def deppipe(objfrom,memberfrom,objto,memberto): - """Synchronizes two depend objects. - - Takes two depend objects, and makes one of them depend on the other in such - a way that both keep the same value. Used for attributes such as temperature - that are used in many different modules, and so need different depend objects - in each, but which should all have the same value. - - Args: - objfrom: An object containing memberfrom. - memberfrom: The base depend object. - objto: An object containing memberto. - memberto: The depend object that should be equal to memberfrom. - """ - - dfrom = dget(objfrom,memberfrom) - dto = dget(objto,memberto) - dto._func = lambda : dfrom.get() - dto.add_dependency(dfrom) - -def depcopy(objfrom,memberfrom,objto,memberto): - """Copies the dependencies of one depend object to another. - - Args: - See deppipe. - """ - dfrom = dget(objfrom,memberfrom) - dto = dget(objto,memberto) - dto._dependants = dfrom._dependants - dto._synchro = dfrom._synchro - dto.add_synchro(dfrom._synchro) - dto._tainted = dfrom._tainted - dto._func = dfrom._func - if hasattr(dfrom,"_bval"): - dto._bval = dfrom._bval - - -class dobject(object): - """Class that allows standard notation to be used for depend objects.""" - - def __getattribute__(self, name): - """Overwrites standard __getattribute__(). - - This changes the standard __getattribute__() function of any class that - subclasses dobject such that depend objects are called with their own - __get__() function rather than the standard one. - """ - - value = object.__getattribute__(self, name) - if hasattr(value, '__get__'): - value = value.__get__(self, self.__class__) - return value - - def __setattr__(self, name, value): - """Overwrites standard __setattribute__(). - - This changes the standard __setattribute__() function of any class that - subclasses dobject such that depend objects are called with their own - __set__() function rather than the standard one. - """ - - try: - obj = object.__getattribute__(self, name) - except AttributeError: - pass - else: - if hasattr(obj, '__set__'): - return obj.__set__(self, value) - return object.__setattr__(self, name, value) diff --git a/tools/i-pi/ipi/utils/inputvalue.py b/tools/i-pi/ipi/utils/inputvalue.py deleted file mode 100644 index 35b2945910..0000000000 --- a/tools/i-pi/ipi/utils/inputvalue.py +++ /dev/null @@ -1,968 +0,0 @@ -"""Contains the classes that are used to write to and read from restart files. - -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 . - - -The classes defined in this module define the base functions which parse the -data in the restart files. Each restart object defined has a fields and an -attributes dictionary, which are filled with the tags and attributes that -are allowed to be present, along with their default values and data type. - -These are then filled with the data from the xml file when the program -is initialized, and are filled by the values calculated in the program which -are then output to the checkpoint file when a restart file is required. - -Also deals with checking for user input errors, of the form of misspelt tags, -bad data types, and failure to input required fields. - -Classes: - Input: Base input class. - InputAttribute: Input class for attribute data. - InputValue: Input class for scalar objects. - InputArray: Input class for arrays. - input_default: Class used to create mutable objects dynamically. -""" - -__all__ = ['Input', 'InputValue', 'InputAttribute', 'InputArray', 'input_default'] - -import numpy as np -from copy import copy -from ipi.utils.io.io_xml import * -from ipi.utils.units import unit_to_internal, unit_to_user - - - -class input_default(object): - """Contains information required to dynamically create objects - - Used so that we can define mutable default input values to various tags - without the usual trouble with having a class object that is also mutable, - namely that all members of that class share the same mutable object, so that - changing it for one instance of that class changes it for all others. It - does this by not holding the mutable default value, but instead the - information to create it, so that each instance of an input class can - have a separate instance of the default value. - - Attributes: - type: Either a class type or function call from which to create the - default object. - args: A tuple giving positional arguments to be passed to the function. - kwargs: A dictionary giving key word arguments to be passed to the - function. - """ - - def __init__(self, factory, args = None, kwargs = None): - """Initializes input_default. - - Args: - type: The class or function to be used to create the default object. - args: A tuple giving the arguments to be used to initialize - the default value. - kwargs: A dictionary giving the key word arguments to be used - to initialize the default value. - """ - - if args is None: - args = () - if kwargs is None: - kwargs = {} - # a default will be generated by factory(*args, **kwargs) - # *args unpacks the tuple, and is used for positional arguments - # **kwargs unpacks the dictionary, and is used for keyword arguments - self.factory = factory - self.args = args - self.kwargs = kwargs - - -class Input(object): - """Base class for input handling. - - Has the generic methods for dealing with the xml input file. Parses the input - data, outputs the output data, and deals with storing and returning the - data obtained during the simulation for the restart files. - - Attributes: - fields: A dictionary holding the possible tags contained within the - tags for this restart object, which are then turned into the objects - held by the object given by this restart object. The dictionary is - of the form: - {"tag name": ( Input_object, - {"default": default value, - "dtype": data type, - "options": list of available options, - "help": help string, - "dimension": dimensionality of data}), ... }. - dynamic: A dictionary holding the possible tags contained within the - tags for this restart object, which are then turned into the objects - held by the object given by this restart object. These are used for - tags that can be specified more than once. - The dictionary is of the form: - {"tag name": ( Input_object, - {"default": default value, - "dtype": data type, - "options": list of available options, - "help": help string, - "dimension": dimensionality of data}), ... }. - attribs: A dictionary holding the attribute data for the tag for this - restart object. The dictionary is of the form: - {"attribute name": ( Input_object, - {"default": default value, - "dtype": data type, - "options": list of available options, - "help": help string, - "dimension": dimensionality of data}), ... }. - extra: A list of tuples ( "name", Input_object ) that may be used to - extend the capabilities of the class, i.e. to hold several instances of - a field with the same name, or to hold variable numbers of elements. - default_help: The default help string. - _help: The help string of the object. Defaults to default_help. - _default: Optional default value. - _optional: A bool giving whether the field is a required field. - _explicit: A bool giving whether the field has been specified by the user. - _text: All text written between the tags of the object. - _label: A label to be used to identify the class in the latex user manual. - _defwrite: The string which would be output if the class has its default - value. - """ - - fields = {} - attribs = {} - dynamic = {} - - default_help = "Generic input value" - default_label = "" #used as a way to reference a particular class using - #hyperlinks - - def __init__(self, help=None, default=None): - """Initializes Input. - - Automatically adds all the fields and attribs names to the input object's - dictionary, then initializes all the appropriate input objects - as the corresponding values. - - Args: - help: A help string. - default: A default value. - """ - - # list of extended (dynamic) fields - self.extra = [] - - if help is None: - self._help = self.default_help - else: - self._help = help - - if isinstance(default,input_default): - #creates default dynamically if a suitable template is defined. - self._default = default.factory(*default.args, **default.kwargs) - else: - self._default = default - - self._optional = not (self._default is None) - - self._label = self.default_label - - #For each tag name in the fields and attribs dictionaries, - #creates and object of the type given, expanding the dictionary to give - #the arguments of the __init__() function, then adds it to the input - #object's dictionary. - for f, v in self.fields.iteritems(): - self.__dict__[f] = v[0](**v[1]) - - for a, v in self.attribs.iteritems(): - self.__dict__[a] = v[0](**v[1]) - - self.set_default() - - self._text = "" - - # stores what we would write out if the default was set - self._defwrite = "" - if not self._default is None: - self._defwrite = self.write(name="%%NAME%%") - - def set_default(self): - """Sets the default value of the object.""" - - if not self._default is None: - self.store(self._default) - elif not hasattr(self, 'value'): - self.value = None #Makes sure we don't get exceptions when we - #look for self.value - - self._explicit = False #Since the value was not set by the user - - def store(self, value=None): - """Dummy function for storing data.""" - - self._explicit = True - pass - - def fetch(self): - """Dummy function to retrieve data.""" - - self.check() - pass - - def check(self): - """Base function to check for input errors. - - Raises: - ValueError: Raised if the user does not specify a required field. - """ - - if not (self._explicit or self._optional): - raise ValueError("Uninitialized Input value of type " + type(self).__name__) - - def extend(self, name, xml): - """ Dynamically add elements to the 'extra' list. - - Picks from one of the templates in the self.dynamic dictionary, then - parses. - - Args: - name: The tag name of the dynamically stored tag. - xml: The xml_node object used to parse the data stored in the tags. - """ - - newfield = self.dynamic[name][0](**self.dynamic[name][1]) - newfield.parse(xml) - self.extra.append((name,newfield)) - - def write(self, name="", indent="", text="\n"): - """Writes data in xml file format. - - Writes the tag, attributes, data and closing tag appropriate to the - particular fields and attribs data. Writes in a recursive manner, so - that objects contained in the fields dictionary have their write function - called, so that their tags are written between the start and end tags - of this object, as is required for the xml format. - - This also adds an indent to the lower levels of the xml hierarchy, - so that it is easy to see which tags contain other tags. - - Args: - name: An optional string giving the tag name. Defaults to "". - indent: An optional string giving the string to be added to the start - of the line, so usually a number of tabs. Defaults to "". - text: Additional text to be output between the tags. - - Returns: - A string giving all the data contained in the fields and attribs - dictionaries, in the appropriate xml format. - """ - - rstr = indent + "<" + name; - for a in self.attribs: - # only write out attributes that are not defaults - # have a very simple way to check whether they actually add something: - # we compare with the string that would be output if the argument was set - # to its default - defstr = self.__dict__[a]._defwrite.replace("%%NAME%%",a) - outstr = self.__dict__[a].write(name=a) - if outstr != defstr: - rstr += " " + outstr - rstr += ">" - rstr += text - for f in self.fields: - #only write out fields that are not defaults - - defstr = self.__dict__[f]._defwrite.replace("%%NAME%%",f) - if defstr != self.__dict__[f].write(f): # here we must compute the write string twice not to be confused by indents. - rstr += self.__dict__[f].write(f, " " + indent) - - for (f,v) in self.extra: - # also write out extended (dynamic) fields if present - rstr += v.write(f, " " + indent) - - if text.find('\n') >= 0: - rstr += indent + "\n" - else: - rstr += "\n" - return rstr - - def parse(self, xml=None, text=""): - """Parses an xml file. - - Uses the xml_node class defined in io_xml to read all the information - contained within the root tags, and uses it to give values for the attribs - and fields data recursively. It does this by giving all the data between - the appropriate field tag to the appropriate field restart object as a - string, and the appropriate attribute data to the appropriate attribs - restart object as a string. These data are then parsed by these objects - until all the information is read, or an input error is found. - - Args: - xml: An xml_node object containing all the data for the parent - tag. - text: The data held between the start and end tags. - - Raises: - NameError: Raised if one of the tags in the xml input file is - incorrect. - ValueError: Raised if the user does not specify a required field. - """ - - # before starting, sets everything to its default -- if a default is set! - for a in self.attribs: - self.__dict__[a].set_default() - for f in self.fields: - self.__dict__[f].set_default() - - self.extra = [] - self._explicit = True - if xml is None: - self._text = text - else: - for a, v in xml.attribs.iteritems(): - if a in self.attribs: - self.__dict__[a].parse(text=v) - elif a == "_text": - pass - else: - raise NameError("Attribute name '" + a + "' is not a recognized property of '" + xml.name + "' objects") - - for (f, v) in xml.fields: #reads all field and dynamic data. - if f in self.fields: - self.__dict__[f].parse(xml=v) - elif f == "_text": - self._text = v - elif f in self.dynamic: - self.extend(f, v) - else: - raise NameError("Tag name '" + f + "' is not a recognized property of '" + xml.name + "' objects") - - #checks for missing arguments. - for a in self.attribs: - va = self.__dict__[a] - if not (va._explicit or va._optional): - raise ValueError("Attribute name '" + a + "' is mandatory and was not found in the input for the property " + xml.name) - for f in self.fields: - vf = self.__dict__[f] - if not (vf._explicit or vf._optional): - raise ValueError("Field name '" + f + "' is mandatory and was not found in the input for the property " + xml.name) - - def detail_str(self): - """Prints out the supplementary information about a particular input class. - - Used to print out the dimensions, default value, possible options and data - type of an input value to the LaTeX helf file. - """ - - xstr = "" - if hasattr(self, '_dimension') and self._dimension != "undefined": #gives dimension - xstr += "dimension: " + self._dimension + "; " - - if self._default != None and issubclass(self.__class__, InputAttribute): - #We only print out the default if it has a well defined value. - #For classes such as InputCell, self._default is not the value, - #instead it is an object that is stored to give the default value in - #self.value. For this reason we print out self.value at this stage, - #and not self._default - xstr += "default: " + self.pprint(self.value) + "; " - - if issubclass(self.__class__, InputAttribute): - #if possible, prints out the type of data that is being used - xstr += "data type: " + self.type_print(self.type) + "; " - - if hasattr(self, "_valid"): - if self._valid is not None: - xstr += "options: " #prints out valid options, if - for option in self._valid: #required. - xstr += "`" + str(option) + "', " - xstr = xstr.rstrip(", ") - xstr += "; " - return xstr - - def help_latex(self, name="", level=0, stop_level=None, standalone=True): - """Function to generate a LaTeX formatted help file. - - Args: - name: Name of the tag that has to be written out. - level: Current level of the hierarchy being considered. - stop_level: The depth to which information will be given. If not given, - will give all information. - standalone: A boolean giving whether the latex file produced will be a - stand-alone document, or will be intended as a section of a larger - document with cross-references between the different sections. - - Returns: - A LaTeX formatted string. - """ - - #stops when we've printed out the prerequisite number of levels - if (not stop_level is None and level > stop_level): - return "" - - rstr = "" - if level == 0: - if standalone: - #assumes that it is a stand-alone document, so must have - #document options. - rstr += r"\documentclass[12pt,fleqn]{report}" - rstr += r""" -\usepackage{etoolbox} -\usepackage{suffix} - -\newcommand{\ipiitem}[3]{% -\setul{1pt}{.4pt}\ifblank{#1}{}{\ifstrequal{#1}{\underline{\smash{}}}{}{ -{\noindent\textbf{#1}:\rule{0.0pt}{1.05\baselineskip}\quad}}}% uses a strut to add a bit of vertical space -{#2}\parskip=0pt\par -\ifblank{#3}{}% -{ {\hfill\raggedleft\textit{\small #3}\par} } -} - -\makeatletter -\newenvironment{ipifield}[4]{% - \ifblank{#1}{}{\vspace{0.5em}} - \noindent\parskip=0pt\begin{tabular}[t]{|p{1.0\linewidth}} - %cell without border - \multicolumn{1}{@{}p{1.0\linewidth}}{ - \ipiitem{\underline{\smash{#1}}}{#2}{} - \ifblank{#4}{ % - \ifblank{#3}{}{{\hfill\raggedleft\textit{\small #3}}\par}}{} } \vspace{-1em}\\ % - % cell with border - \ifblank{#4}{} % - { \ifblank{#3}{}{\vspace{-1em}{\hfill\raggedleft\textit{\small #3}}\par} % - {#4}\vspace{-1em}\\\hline } % negative vspace to undo the line break - \end{tabular} - \parskip=0pt\list{}{\listparindent 1.5em% - \leftmargin \listparindent - \rightmargin 0pt - \parsep 0pt - \itemsep 0pt - \topsep 0pt - }% - \item\relax - } - {\endlist} -\makeatother -""" - rstr += "\n\\begin{document}\n" - if self._label != "" and not standalone: - #assumes that it is part of a cross-referenced document, so only - #starts a new section. - rstr += "\\section{" + self._label + "}\n" - rstr += "\\label{" + self._label + "}\n" - - rstr += "\\begin{ipifield}{}%\n" - else: - if self._label != "" and not standalone: - rstr += "\\begin{ipifield}{\hyperref["+self._label+"]{"+name+"}}%\n" - else: - rstr += "\\begin{ipifield}{"+name+"}%\n" - - rstr += "{"+self._help+"}%\n" - - rstr += "{"+self.detail_str()+"}%\n" - - rstr += "{" - # Prints out the attributes - if len(self.attribs) != 0: - #don't print out units if not necessary - if len(self.attribs) == 1 and (("units" in self.attribs) and self._dimension == "undefined"): - pass - else: - for a in self.attribs: - #don't print out units if not necessary - if not (a == "units" and self._dimension == "undefined"): - rstr += "\\ipiitem{" + a + "}%\n{" + self.__dict__[a]._help + "}%\n{"+self.__dict__[a].detail_str()+"}%\n" #!!MUST ADD OTHER STUFF - rstr+="}\n" - - #As above, for the fields. Only prints out if we have not reached the - #user-specified limit. - if len(self.fields) != 0 and level != stop_level: - for f in self.fields: - rstr += self.__dict__[f].help_latex(name=f, level=level+1, stop_level=stop_level, standalone=standalone) - - if len(self.dynamic) != 0 and level != stop_level: - for f, v in self.dynamic.iteritems(): - dummy_obj = v[0](**v[1]) - rstr += dummy_obj.help_latex(name=f, level=level+1, stop_level=stop_level, standalone=standalone) - - rstr += "\\end{ipifield}\n" - if level == 0 and standalone: - #ends the created document if it is not part of a larger document - rstr += "\\end{document}" - - #Some escape characters are necessary for the proper latex formatting - rstr = rstr.replace('_', '\\_') - rstr = rstr.replace('\\\\_', '\\_') - rstr = rstr.replace('...', '\\ldots ') - rstr = rstr.replace('<', '$<$') - rstr = rstr.replace('>', '$>$') - - return rstr - - def pprint(self, default, indent="", latex = True): - """Function to convert arrays and other objects to human-readable strings. - - Args: - default: The object that needs to be converted to a string. - indent: The indent at the beginning of a line. - latex: A boolean giving whether the string will be latex-format. - - Returns: - A formatted string. - """ - - if type(default) is np.ndarray: - if default.shape == (0,): - return " [ ] " #proper treatment of empty arrays. - else: - #indents new lines for multi-D arrays properly - rstr = "\n" + indent + " " - rstr += str(default).replace("\n", "\n" + indent + " ") - if not latex: - rstr += "\n" + indent + " " - - return rstr - elif type(default) == str: - if latex: - return "`" + default + "'" #indicates that it is a string - else: - return " " + default + " " - elif default == []: - return " [ ] " - elif default == {}: - if latex: - return " \\{ \\} " #again, escape characters needed for latex - else: #formatting - return " { } " - else: - #in most cases standard formatting will do - return " " + str(default) + " " - - def type_print(self, dtype): - """Function to convert a data types to human-readable strings. - - Args: - dtype: A data type. - """ - - if dtype == bool: - return "boolean" - elif dtype == float or dtype == np.float64: - return "float" - elif dtype == int or dtype == np.uint64 or dtype == np.int64: - return "integer" - elif dtype == dict: - return "dictionary" - elif dtype == str: - return "string" - elif dtype == tuple: - return "tuple" - else: - raise TypeError("Unrecognized data type " + str(dtype)) - - def help_xml(self, name="", indent="", level=0, stop_level=None): - """Function to generate an xml formatted help file. - - Args: - name: A string giving the name of the root node. - indent: The indent at the beginning of a line. - level: Current level of the hierarchy being considered. - stop_level: The depth to which information will be given. If not given, - all information will be given - - Returns: - An xml formatted string. - """ - - #stops when we've printed out the prerequisite number of levels - if (not stop_level is None and level > stop_level): - return "" - - #these are booleans which tell us whether there are any attributes - #and fields to print out - show_attribs = (len(self.attribs) != 0) - show_fields = (not (len(self.fields) == 0 and len(self.dynamic) == 0)) and level != stop_level - - rstr = "" - rstr = indent + "<" + name; #prints tag name - for a in self.attribs: - if not (a == "units" and self._dimension == "undefined"): - #don't print out units if not necessary - rstr += " " + a + "=''" #prints attribute names - rstr += ">\n" - - #prints help string - rstr += indent + " " + self._help + " \n" - if show_attribs: - for a in self.attribs: - if not (a == "units" and self._dimension == "undefined"): - #information about tags is found in tags beginning with the name - #of the attribute - rstr += indent + " <" + a + "_help> " + self.__dict__[a]._help + " \n" - - #prints dimensionality of the object - if hasattr(self, '_dimension') and self._dimension != "undefined": - rstr += indent + " " + self._dimension + " \n" - - if self._default != None and issubclass(self.__class__, InputAttribute): - #We only print out the default if it has a well defined value. - #For classes such as InputCell, self._default is not the value, - #instead it is an object that is stored, putting the default value in - #self.value. For this reason we print out self.value at this stage, - #and not self._default - rstr += indent + " " + self.pprint(self.value, indent=indent, latex=False) + "\n" - if show_attribs: - for a in self.attribs: - if not (a == "units" and self._dimension == "undefined"): - if self.__dict__[a]._default is not None: - rstr += indent + " <" + a + "_default>" + self.pprint(self.__dict__[a]._default, indent=indent, latex=False) + "\n" - - #prints out valid options, if required. - if hasattr(self, "_valid"): - if self._valid is not None: - rstr += indent + " " + str(self._valid) + " \n" - if show_attribs: - for a in self.attribs: - if not (a == "units" and self._dimension == "undefined"): - if hasattr(self.__dict__[a], "_valid"): - if self.__dict__[a]._valid is not None: - rstr += indent + " <" + a + "_options> " + str(self.__dict__[a]._valid) + " \n" - - #if possible, prints out the type of data that is being used - if issubclass(self.__class__, InputAttribute): - rstr += indent + " " + self.type_print(self.type) + " \n" - if show_attribs: - for a in self.attribs: - if not (a == "units" and self._dimension == "undefined"): - rstr += indent + " <" + a + "_dtype> " + self.type_print(self.__dict__[a].type) + " \n" - - #repeats the above instructions for any fields or dynamic tags. - #these will only be printed if their level in the hierarchy is not above - #the user specified limit. - if show_fields: - for f in self.fields: - rstr += self.__dict__[f].help_xml(f, " " + indent, level+1, stop_level) - for f, v in self.dynamic.iteritems(): - #we must create the object manually, as dynamic objects are - #not automatically added to the input object's dictionary - dummy_obj = v[0](**v[1]) - rstr += dummy_obj.help_xml(f, " " + indent, level+1, stop_level) - - rstr += indent + "\n" - return rstr - - -class InputAttribute(Input): - """Class for handling attribute data. - - Has the methods for dealing with attribute data of the form: - ..., where data is just a value. Takes the data and - converts it to the required data_type, so that it can be used in the - simulation. - - Attributes: - type: Data type of the data. - value: Value of data. Also specifies data type if type is None. - _valid: An optional list of valid options. - """ - - def __init__(self, help=None, default=None, dtype=None, options=None): - """Initializes InputAttribute. - - Args: - help: A help string. - default: A default value. - dtype: An optional data type. Defaults to None. - options: An optional list of valid options. - """ - - if not dtype is None: - self.type = dtype - else: - raise TypeError("You must provide dtype") - - super(InputAttribute,self).__init__(help, default) - - if options is not None: - self._valid = options - if not default is None and not self._default in self._valid: - #This makes sure that the programmer has set the default value - #so that it is a valid value. - raise ValueError("Default value '" + str(self._default) + "' not in option list " + str(self._valid)+ "\n" + self._help) - else: - self._valid = None - - def parse(self, text=""): - """Reads the data for a single attribute value from an xml file. - - Args: - text: The data held between the start and end tags. - """ - - super(InputAttribute, self).parse(text=text) - - self.value = read_type(self.type, self._text) - - def store(self, value): - """Stores the input data. - - Args: - value: The raw data to be stored. - """ - super(InputAttribute,self).store(value) - self.value = value - - def fetch(self): - """Returns the stored data.""" - - super(InputAttribute,self).fetch() - return self.value - - def check(self): - """Function to check for input errors. - - Raises: - ValueError: Raised if the value chosen is not one of the valid options. - """ - - super(InputAttribute,self).check() - if not (self._valid is None or self.value in self._valid): - #This checks that the user has set the value to a valid value. - raise ValueError(str(self.value) + " is not a valid option (" + str(self._valid) + ")") - - def write(self, name=""): - """Writes data in xml file format. - - Writes the attribute data in the appropriate format. - - Args: - name: An optional string giving the attribute name. Defaults to "". - - Returns: - A string giving the stored value in the appropriate format. - """ - - return name + "='" + write_type(self.type, self.value) + "'" - - -class InputValue(InputAttribute): - """Scalar class for input handling. - - Has the methods for dealing with simple data tags of the form: - data , where data is just a value. Takes the data and - converts it to the required data_type, so that it can be used in the - simulation. - - Attributes: - units: The units that the input data is given in. - _dimension: The dimensionality of the data. - """ - - default_dimension = "undefined" - default_units = "" - - attribs= { "units" : ( InputAttribute, { "dtype" : str, "help" : "The units the input data is given in.", "default" : default_units } ) } - - def __init__(self, help=None, default=None, dtype=None, options=None, dimension=None): - """Initializes InputValue. - - Args: - help: A help string. - dimension: The dimensionality of the value. - default: A default value. - dtype: An optional data type. Defaults to None. - options: An optional list of valid options. - """ - - # a note on units handling: - # 1) units are only processed at parse/fetch time: - # internally EVERYTHING is in internal units - # 2) if one adds an explicit "units" attribute to a derived class, - # the internal units handling will be just ignored - if dimension is None: - self._dimension = self.default_dimension - else: - self._dimension = dimension - - super(InputValue,self).__init__(help, default, dtype, options) - - def store(self, value, units=""): - """Converts the data to the appropriate data type and units and stores it. - - Args: - value: The raw data to be stored. - units: Optional string giving the units that the data should be stored - in. - """ - - super(InputValue,self).store(value) - - if units != "": - self.units.store(units) #User can define in the code the units to be - #printed - - self.value = value - if self._dimension != "undefined": - self.value *= unit_to_user(self._dimension, units, 1.0) - - def fetch(self): - """Returns the stored data in the user defined units.""" - - super(InputValue,self).fetch() - - rval = self.value - if self._dimension != "undefined": - rval *= unit_to_internal(self._dimension, self.units.fetch(), 1.0) - return rval - - def write(self, name="", indent=""): - """Writes data in xml file format. - - Writes the data in the appropriate format between appropriate tags. - - Args: - name: An optional string giving the tag name. Defaults to "". - indent: An optional string giving the string to be added to the start - of the line, so usually a number of tabs. Defaults to "". - - Returns: - A string giving the stored value in the appropriate xml format. - """ - - return Input.write(self, name=name, indent=indent, text=write_type(self.type, self.value)) - - def parse(self, xml=None, text=""): - """Reads the data for a single value from an xml file. - - Args: - xml: An xml_node object containing the all the data for the parent - tag. - text: The data held between the start and end tags. - """ - - Input.parse(self, xml=xml, text=text) - self.value = read_type(self.type, self._text) - - -ELPERLINE = 5 -class InputArray(InputValue): - """Array class for input handling. - - Has the methods for dealing with simple data tags of the form: - data , where data is an array - of the form [data[0], data[1], ... , data[length]]. - - Takes the data and converts it to the required data type, - so that it can be used in the simulation. Also holds the shape of the array, - so that we can use a simple 1D list of data to specify a multi-dimensional - array. - - Attributes: - shape: The shape of the array. - """ - - attribs = copy(InputValue.attribs) - attribs["shape"] = (InputAttribute, {"dtype": tuple, "help": "The shape of the array.", "default": (0,)}) - - def __init__(self, help=None, default=None, dtype=None, dimension=None): - """Initializes InputArray. - - Args: - help: A help string. - dimension: The dimensionality of the value. - default: A default value. - dtype: An optional data type. Defaults to None. - """ - - super(InputArray,self).__init__(help, default, dtype, dimension=dimension) - - def store(self, value, units=""): - """Converts the data to the appropriate data type, shape and units and - stores it. - - Args: - value: The raw data to be stored. - units: Optional string giving the units that the data should be stored - in. - """ - - super(InputArray,self).store(value=np.array(value, dtype=self.type).flatten().copy(), units=units) - self.shape.store(value.shape) - - #if the shape is not specified, assume the array is linear. - if self.shape.fetch() == (0,): - self.shape.store((len(self.value),)) - - def fetch(self): - """Returns the stored data in the user defined units.""" - - value = super(InputArray,self).fetch() - - #if the shape is not specified, assume the array is linear. - if self.shape.fetch() == (0,): - value = np.resize(self.value,0).copy() - else: - value = self.value.reshape(self.shape.fetch()).copy() - - return value - - def write(self, name="", indent=""): - """Writes data in xml file format. - - Writes the data in the appropriate format between appropriate tags. Note - that only ELPERLINE values are printed on each line if there are more - than this in the array. If the values are floats, or another data type - with a fixed width of data output, then they are aligned in columns. - - Args: - name: An optional string giving the tag name. Defaults to "". - indent: An optional string giving the string to be added to the start - of the line, so usually a number of tabs. Defaults to "". - - Returns: - A string giving the stored value in the appropriate xml format. - """ - - rstr = "" - if (len(self.value) > ELPERLINE): - rstr += "\n" + indent + " [ " - else: - rstr += " [ " #inlines the array if it is small enough - - for i, v in enumerate(self.value): - if (len(self.value) > ELPERLINE and i > 0 and i%ELPERLINE == 0): - rstr += "\n" + indent + " " - rstr += write_type(self.type, v) + ", " - - rstr = rstr.rstrip(", ") #get rid of trailing commas - if (len(self.value) > ELPERLINE): - rstr += " ]\n" - else: - rstr += " ] " - - return Input.write(self, name=name, indent=indent, text=rstr) - - def parse(self, xml=None, text=""): - """Reads the data for an array from an xml file. - - Args: - xml: An xml_node object containing the all the data for the parent - tag. - text: The data held between the start and end tags. - """ - - Input.parse(self, xml=xml, text=text) - self.value = read_array(self.type, self._text) - - #if the shape is not specified, assume the array is linear. - if self.shape.fetch() == (0,): - self.shape.store((len(self.value),)) diff --git a/tools/i-pi/ipi/utils/io/README b/tools/i-pi/ipi/utils/io/README deleted file mode 100644 index d70ff09ddd..0000000000 --- a/tools/i-pi/ipi/utils/io/README +++ /dev/null @@ -1,12 +0,0 @@ - -- IO functions directory -- - - * This is the directory containing input/output functions. - - * Files: - - io_binary.py: Contains the functions to write output in binary format. - - io_pdb.py: Contains the functions to read pdb structure files and to - create pdb trajectory output files. - - io_xml.py: Contains the functions used to read the xml input file and - to format the restart output file. - - io_xyz.py: Contains the functions to read xyz structure files and to - create xyz trajectory output files. diff --git a/tools/i-pi/ipi/utils/io/__init__.py b/tools/i-pi/ipi/utils/io/__init__.py deleted file mode 100644 index 01615a0d57..0000000000 --- a/tools/i-pi/ipi/utils/io/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = [ "io_xml", "io_pdb" , "io_xyz", "io_binary" ] diff --git a/tools/i-pi/ipi/utils/io/io_binary.py b/tools/i-pi/ipi/utils/io/io_binary.py deleted file mode 100644 index 6e8fbd8346..0000000000 --- a/tools/i-pi/ipi/utils/io/io_binary.py +++ /dev/null @@ -1,47 +0,0 @@ -"""Contains the functions used to print the trajectories and read input -configurations (or even full status dump) as unformatted binary. - -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 . - - -Functions: - print_bin: Prints an atomic configuration. -""" - -__all__ = ['print_bin'] - -import os -import numpy as np -import math, sys -from ipi.utils.depend import depstrip - -def print_bin(atoms, cell, filedesc = sys.stdout, title=""): - """Prints the centroid configurations, into a binary file. - - Args: - beads: An atoms object giving the centroid positions. - cell: A cell object giving the system box. - filedesc: An open writable file object. Defaults to standard output. - title: This gives a string to be appended to the comment line. - """ - - buff = filedesc # .buffer - cell.h.tofile(buff) - nat = np.asarray([atoms.natoms]) - nat.tofile(buff) - atoms.names.tofile(buff) - atoms.q.tofile(buff) - diff --git a/tools/i-pi/ipi/utils/io/io_pdb.py b/tools/i-pi/ipi/utils/io/io_pdb.py deleted file mode 100644 index b3ce8fc202..0000000000 --- a/tools/i-pi/ipi/utils/io/io_pdb.py +++ /dev/null @@ -1,173 +0,0 @@ -"""Contains the functions used to print the trajectories and read input -configurations with pdb formatting. - -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 . - - -Functions: - print_pdb_path: Prints all the bead configurations, and shows the ring - polymer connectivity. - print_pdb: Prints the centroid configurations. - read_pdb: Reads the cell parameters and atom configurations from a pdb file. -""" - -__all__ = ['print_pdb_path', 'print_pdb', 'read_pdb'] - -import numpy as np -import sys -import ipi.utils.mathtools as mt -from ipi.utils.depend import depstrip -from ipi.engine.cell import Cell -from ipi.engine.atoms import Atoms -from ipi.utils.units import * - -def print_pdb_path(beads, cell, filedesc = sys.stdout): - """Prints all the bead configurations, into a pdb formatted file. - - Prints the ring polymer springs as well as the bead positions using the - CONECT command. Also prints the cell parameters in standard pdb form. Note - that the angles are in degrees. - - Args: - beads: A beads object giving the bead positions. - cell: A cell object giving the system box. - filedesc: An open writable file object. Defaults to standard output. - """ - - a, b, c, alpha, beta, gamma = mt.h2abc_deg(cell.h) - - z = 1 #What even is this parameter? - filedesc.write("CRYST1%9.3f%9.3f%9.3f%7.2f%7.2f%7.2f%s%4i\n" % (a, b, c, alpha, beta, gamma, " P 1 ", z)) - - natoms = beads.natoms - nbeads = beads.nbeads - for j in range(nbeads): - for i in range(natoms): - qs = depstrip(beads.q) - lab = depstrip(beads.names) - filedesc.write("ATOM %5i %4s%1s%3s %1s%4i%1s %8.3f%8.3f%8.3f%6.2f%6.2f %2s%2i\n" % (j*natoms+i+1, lab[i],' ',' 1',' ',1,' ', qs[j][3*i], qs[j][3*i+1], qs[j][3*i+2],0.0,0.0,' ',0)) - - if nbeads > 1: - for i in range(natoms): - filedesc.write("CONECT%5i%5i\n" % (i+1, (nbeads-1)*natoms+i+1)) - for j in range(nbeads-1): - for i in range(natoms): - filedesc.write("CONECT%5i%5i\n" % (j*natoms+i+1, (j+1)*natoms+i+1)) - - filedesc.write("END\n") - -def print_pdb(atoms, cell, filedesc = sys.stdout, title=""): - """Prints the atom configurations, into a pdb formatted file. - - Also prints the cell parameters in standard pdb form. Note - that the angles are in degrees. - - Args: - atoms: An atoms object giving the atom positions. - cell: A cell object giving the system box. - filedesc: An open writable file object. Defaults to standard output. - title: An optional string of max. 70 characters. - """ - - - if title != "" : - filedesc.write("TITLE %70s\n" % (title)) - - a, b, c, alpha, beta, gamma = mt.h2abc_deg(cell.h) - - z = 1 - filedesc.write("CRYST1%9.3f%9.3f%9.3f%7.2f%7.2f%7.2f%s%4i\n" % (a, b, c, alpha, beta, gamma, " P 1 ", z)) - - natoms = atoms.natoms - qs = depstrip(atoms.q) - lab = depstrip(atoms.names) - for i in range(natoms): - filedesc.write("ATOM %5i %4s%1s%3s %1s%4i%1s %8.3f%8.3f%8.3f%6.2f%6.2f %2s%2i\n" % (i+1, lab[i], ' ', ' 1', ' ', 1, ' ', qs[3*i], qs[3*i+1], qs[3*i+2], 0.0, 0.0, ' ', 0)) - - filedesc.write("END\n") - -def read_pdb(filedesc): - """Takes a pdb-style file and creates an Atoms and Cell object. - - Args: - filedesc: An open readable file object from a pdb formatted file. - - Returns: - An Atoms object with the appropriate atom labels, masses and positions, - and a Cell object with the appropriate cell dimensions and an estimate - of a reasonable cell mass. - """ - - header = filedesc.readline() - if "TITLE" in header: header = filedesc.readline() # skip the comment field - if header == "": - raise EOFError("End of file or empty header in PDB file") - - a = float(header[6:15]) - b = float(header[15:24]) - c = float(header[24:33]) - alpha = float(header[33:40]) - beta = float(header[40:47]) - gamma = float(header[47:54]) - alpha *= np.pi/180.0 - beta *= np.pi/180.0 - gamma *= np.pi/180.0 - h = mt.abc2h(a, b, c, alpha, beta, gamma) - cell = Cell(h) - - natoms = 0 - body = filedesc.readline() - qatoms = [] - names = [] - masses = [] - while (body.strip() != "" and body.strip() != "END"): - natoms += 1 - name = body[12:16].strip() - names.append(name) - masses.append(Elements.mass(name)) - x = float(body[31:39]) - y = float(body[39:47]) - z = float(body[47:55]) - qatoms.append(x) - qatoms.append(y) - qatoms.append(z) - - body = filedesc.readline() - - atoms = Atoms(natoms) - atoms.q = np.asarray(qatoms) - atoms.names = np.asarray(names,dtype='|S4') - atoms.m = np.asarray(masses) - - return atoms, cell - -def iter_pdb(filedesc): - """Takes a pdb-style file and yields one Atoms, Cell tuple after another. - - Args: - filedesc: An open readable file object from a pdb formatted file. - - Returns: - Generator over the pdb trajectory, that yields - (Atoms, Cell) tuple with the appropriate atom labels, masses and positions. - """ - - try: - while 1: - atoms, cell = read_pdb(filedesc) - yield atoms, cell - except EOFError: - pass diff --git a/tools/i-pi/ipi/utils/io/io_xml.py b/tools/i-pi/ipi/utils/io/io_xml.py deleted file mode 100644 index 961a398848..0000000000 --- a/tools/i-pi/ipi/utils/io/io_xml.py +++ /dev/null @@ -1,520 +0,0 @@ -"""Contains the functions used to read the input file and print the checkpoint -files with xml formatting. - -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 . - - -Functions: - xml_node: Class to handle a particular xml tag. - xml_handler: Class giving general xml data reading methods. - xml_parse_string: Parses a string made from a section of a xml input file. - xml_parse_file: Parses an entire xml input file. - read_type: Reads a string and outputs data of a specified type. - read_float: Reads a string and outputs a float. - read_int: Reads a string and outputs an integer. - read_bool: Reads a string and outputs a boolean. - read_list: Reads a string and outputs a list. - read_array: Reads a string and outputs an array. - read_tuple: Reads a string and outputs a tuple. - read_dict: Reads a string and outputs a dictionary. - write_type: Writes a string from data of a specified type. - write_list: Writes a string from a list. - write_tuple: Writes a string from a tuple. - write_float: Writes a string from a float. - write_bool: Writes a string from a boolean. - write_dict: Writes a string from a dictionary. -""" - -__all__ = ['xml_node', 'xml_handler', 'xml_parse_string', 'xml_parse_file', - 'read_type', 'read_float', 'read_int', 'read_bool', 'read_list', - 'read_array', 'read_tuple', 'read_dict', 'write_type', 'write_list', - 'write_tuple', 'write_float', 'write_bool', 'write_dict'] - -from xml.sax import parseString, parse -from xml.sax.handler import ContentHandler -import numpy as np -import string - -class xml_node(object): - """Class to handle a particular xml tag. - - Tags are generally written in the form - main_data . This class holds - tag_name, attrib_data and main_data separately so they can be used to - create the objects with the appropriate names and data. - - Attributes: - attribs: The attribute data for the tag. - fields: The rest of the data. - name: The tag name. - """ - - def __init__(self, attribs=None, name="", fields=None): - """Initializes xml_node. - - Args: - attribs: An optional dictionary giving attribute data. Defaults to {}. - fields: An optional dictionary holding all the data between the start - and end tags, including information about other nodes. - Defaults to {}. - name: An optional string giving the tag name. Defaults to ''. - """ - - if attribs is None: - attribs = {} - if fields is None: - fields = [] - - self.attribs = attribs - self.name = name - self.fields = fields - - -class xml_handler(ContentHandler): - """Class giving general xml_reading methods. - - Uses the standard python xml_reader to read the different kinds of data. - Keeps track of the heirarchial nature of an xml file by recording the level - of nesting, so that the correct data and attributes can be associated with - the correct tag name. - - Attributes: - root: An xml_node object for the root node. - open: The list of the tags that the parser is currently between the start - and end tags of. - level: The level of nesting that the parser is currently at. - buffer: A list of the data found between the tags at the different levels - of nesting. - """ - - def __init__(self): - """Initializes xml_handler.""" - - #root xml node with all the data - self.root = xml_node(name="root", fields=[]) - self.open = [self.root] - #current level of the hierarchy - self.level = 0 - #Holds all the data between each of the tags. - #If level = 1, then buffer[0] holds all the data collected between the - #root tags, and buffer[1] holds all the data collected between the - #first child tag. - self.buffer = [[""]] - - def startElement(self, name, attrs): - """Reads an opening tag. - - Adds the opening tag to the list of open tags, adds a new space in the - buffer, reads the appropriate attributes and adds a new level to the - hierarchy. - - Args: - name: The tag_name. - attrs: The attribute data. - """ - - #creates a new node - newnode = xml_node(attribs=dict((k,attrs[k]) for k in attrs.keys()), name=name, fields=[]) - #adds it to the list of open nodes - self.open.append(newnode) - #adds it to the list of fields of the parent tag - self.open[self.level].fields.append((name,newnode)) - #gets ready to read new data - self.buffer.append([""]) - self.level += 1 - - def characters(self, data): - """Reads data. - - Adds the data to the buffer of the current level of the hierarchy. - Data is read as a string, and needs to be converted to the required - type later. - - Args: - data: The data to be read. - """ - - self.buffer[self.level].append(data) - - def endElement(self, name): - """Reads a closing tag. - - Once all the data has been read, and the closing tag found, the buffer - is read into the appropriate field. - - Args: - name: The tag_name. - """ - - #all the text found between the tags stored in the appropriate xml_node - #object - self.buffer[self.level] = ''.join(self.buffer[self.level]) - self.open[self.level].fields.append(("_text" , self.buffer[self.level])) - #'closes' the xml_node object, as we are no longer within its tags, so - #there is no more data to be added to it. - #Note that the xml_node is still held within the parent tag, so we - #no longer require this xml node object. - self.buffer.pop(self.level) - self.open.pop(self.level) - self.level -= 1 - -def xml_parse_string(buf): - """Parses a string made from a section of a xml input file. - - Args: - buf: A string in correct xml format. - - Returns: - A xml_node for the root node of the file. - """ - - myhandle = xml_handler() - parseString(buf, myhandle) - return myhandle.root - -def xml_parse_file(stream): - """Parses an entire xml input file. - - Args: - stream: A string describing a xml formatted file. - - Returns: - A xml_node for the root node of the file. - """ - - myhandle = xml_handler() - parse(stream, myhandle) - return myhandle.root - -def read_type(type, data): - """Reads a string and outputs data of a specified type. - - Args: - type: The data type of the target container. - data: The string to be read in. - - Raises: - TypeError: Raised if it tries to read into a data type that has not been - implemented. - - Returns: - An object of type type. - """ - - if not type in readtype_funcs: - raise TypeError("Conversion not available for given type") - return type(readtype_funcs[type](data)) - -def read_float(data): - """Reads a string and outputs a float. - - Args: - data: The string to be read in. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - A float. - """ - - return float(data) - -def read_int(data): - """Reads a string and outputs a integer. - - Args: - data: The string to be read in. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - An integer. - """ - - return int(data) - -def read_bool(data): - """Reads a string and outputs a boolean. - - Takes a string of the form 'true' or 'false', and returns the appropriate - boolean. - - Args: - data: The string to be read in. - - Raises: - ValueError: Raised if the string is not 'true' or 'false'. - - Returns: - A boolean. - """ - - - if data.strip().upper() == "TRUE": - return True - elif data.strip().upper() == "FALSE": - return False - else: - raise ValueError(data + " does not represent a bool value") - -def read_list(data, delims="[]", split=",", strip=" \n\t'"): - """Reads a formatted string and outputs a list. - - The string must be formatted in the correct way. - The start character must be delimiters[0], the end character - must be delimiters[1] and each element must be split along - the character split. Characters at the beginning or - end of each element in strip are ignored. The standard list format is of the - form '[array[0], array[1],..., array[n]]', which is used for actual lists. - Other formats are used for tuples and dictionaries. - - Args: - data: The string to be read in. '[]' by default. - delims: A string of two characters giving the first and last character of - the list format. ',' by default. - split: The character between different elements of the list format. - strip: Characters to be removed from the beginning and end of each - element. ' \n\t' by default. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - A list of strings. - """ - - try: - begin = data.index(delims[0]) - end = data.index(delims[1]) - except ValueError: - raise ValueError("Error in list syntax: could not locate delimiters") - - rlist = data[begin+1:end].split(split) - for i in range(len(rlist)): - rlist[i] = rlist[i].strip(strip) - - # handles empty lists correctly - if len(rlist) == 1 and rlist[0] == "": - rlist = [] - - return rlist - -def read_array(dtype, data): - """Reads a formatted string and outputs an array. - - The format is as for standard python arrays, which is - [array[0], array[1], ... , array[n]]. Note the use of comma separators, and - the use of square brackets. - - Args: - data: The string to be read in. - dtype: The data type of the elements of the target array. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - An array of data type dtype. - """ - - rlist = read_list(data) - for i in range(len(rlist)): - rlist[i] = read_type(dtype,rlist[i]) - - return np.array(rlist, dtype) - -def read_tuple(data, delims="()", split=",", strip=" \n\t'", arg_type=int): - """Reads a formatted string and outputs a tuple. - - The format is as for standard python tuples, which is - (tuple[0], tuple[1], ... , tuple[n]). Note the comma - separators, and the use of brackets. - - Args: - data: The string to be read in. - delims: A string of two characters giving the first and last character of - the list format. ',' by default. - split: The character between different elements of the list format. - strip: Characters to be removed from the beginning and end of each - element. ' \n\t' by default. - arg_type: The strings in the input will be converted, and a tuple - of ar_type will be returned. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - A tuple of elements of the specified data type. - """ - - rlist = read_list(data, delims=delims, split=split, strip=strip) - return tuple([arg_type(i) for i in rlist]) - -def read_dict(data, delims="{}", split=",", key_split=":", strip=" \n\t"): - """Reads a formatted string and outputs a dictionary. - - The format is as for standard python dictionaries, which is - {keyword[0]: arg[0], keyword[1]: arg[1], ... , keyword[n]: arg[n]}. Note the - comma separators, and the use of curly brackets. - - Args: - data: The string to be read in. - delims: A string of two characters giving the first and last character of - the list format. ',' by default. - split: The character between different elements of the list format. - key_split: The character between the key word and the value. - strip: Characters to be removed from the beginning and end of each - element. ' \n\t' by default. - - Raises: - ValueError: Raised if the input data is not of the correct format. - - Returns: - A dictionary of strings. - """ - - rlist = read_list(data, delims=delims, split=split, strip=strip) - def mystrip(data): - return data.strip(strip) - rdict = {} - for s in rlist: - rtuple = map(mystrip,s.split(key_split)) - if not len(rtuple) == 2: - raise ValueError("Format for a key:value format is wrong for item " + s) - rdict[rtuple[0]] = rtuple[1] - - return rdict - -readtype_funcs = {np.ndarray: read_array, dict: read_dict, float: read_float, int: read_int, bool: read_bool, str: string.strip, tuple: read_tuple, np.uint : read_int} - -def write_type(type, data): - """Writes a formatted string from a value of a specified type. - - Args: - type: The data type of the value. - data: The value to be read in. - - Raises: - TypeError: Raised if it tries to write from a data type that has not been - implemented. - - Returns: - A formatted string. - """ - - if not type in writetype_funcs: - raise TypeError("Conversion not available for given type") - return writetype_funcs[type](data) - -def write_list(data, delims="[]"): - """Writes a formatted string from a list. - - The format of the output is as for a standard python list, - [list[0], list[1],..., list[n]]. Note the space after the commas, and the - use of square brackets. - - Args: - data: The value to be read in. - delims: An optional string of two characters giving the first and last - character to be printed. Defaults to "[]". - - Returns: - A formatted string. - """ - - rstr = delims[0] - - for v in data: - rstr += str(v) + ", " - - rstr = rstr.rstrip(", ") - rstr += delims[1] - return rstr - -def write_tuple(data): - """Writes a formatted string from a tuple. - - The format of the output is as for a standard python tuple, - (tuple[0], tuple[1],..., tuple[n]). Note the space after the commas, and the - use of brackets. - - Args: - data: The value to be read in. - - Returns: - A formatted string. - """ - - return write_list(data, delims="()") - -def write_float(data): - """Writes a formatted string from a float. - - Floats are printed out in exponential format, to 8 decimal places and - filling up any spaces under 16 not used with spaces. - - For example 1.0 --> ' 1.00000000e+00' - - Args: - data: The value to be read in. - - Returns: - A formatted string. - """ - - return "%16.8e" % (data) - -def write_bool(data): - """Writes a formatted string from a float. - - Booleans are printed as a string of either ' true' or 'false'. Note that - both are printed out as exactly 5 characters. - - Args: - data: The value to be read in. - - Returns: - A formatted string. - """ - - return "%5.5s" % (str(data)) - -def write_dict(data, delims="{}"): - """Writes a formatted string from a dictionary. - - The format of the output is as for a standard python dictionary, - {keyword[0]: arg[0], keyword[1]: arg[1],..., keyword[n]: arg[n]}. Note the - space after the commas, and the use of curly brackets. - - Args: - data: The value to be read in. - delims: An optional string of two characters giving the first and last - character to be printed. Defaults to "{}". - - Returns: - A formatted string. - """ - - rstr = delims[0] - for v in data: - rstr += str(v) + ": " + str(data[v]) + ", " - rstr = rstr.strip(", ") - rstr += delims[1] - return rstr - -writetype_funcs = {float: write_float, dict: write_dict, int: str, bool: write_bool, str: string.strip, tuple: write_tuple, np.uint : str} diff --git a/tools/i-pi/ipi/utils/io/io_xyz.py b/tools/i-pi/ipi/utils/io/io_xyz.py deleted file mode 100644 index e5fe3e93b7..0000000000 --- a/tools/i-pi/ipi/utils/io/io_xyz.py +++ /dev/null @@ -1,145 +0,0 @@ -"""Contains the functions used to print the trajectories and read input -configurations with xyz formatting. - -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 . - - -Functions: - print_xyz_path: Prints all the bead configurations. - print_xyz: Prints the centroid configurations. - read_xyz: Reads the cell parameters and atom configurations from a xyz file. -""" - -__all__ = ['print_xyz_path', 'print_xyz', 'read_xyz', 'iter_xyz'] - -import numpy as np -import math, sys -import ipi.utils.mathtools as mt -from ipi.utils.depend import depstrip -from ipi.engine.atoms import Atoms -from ipi.utils.units import * - -def print_xyz_path(beads, cell, filedesc = sys.stdout): - """Prints all the bead configurations, into a xyz formatted file. - - Prints all the replicas for each time step separately, rather than all at - once. - - Args: - beads: A beads object giving the bead positions. - cell: A cell object giving the system box. - filedesc: An open writable file object. Defaults to standard output. - """ - - a, b, c, alpha, beta, gamma = mt.h2abc_deg(cell.h) - - natoms = beads.natoms - nbeads = beads.nbeads - for j in range(nbeads): - filedesc.write("%d\n# bead: %d CELL(abcABC): %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f \n" % (natoms, j, a, b, c, alpha, beta, gamma)) - for i in range(natoms): - qs = depstrip(beads.q) - lab = depstrip(beads.names) - filedesc.write("%8s %12.5e %12.5e %12.5e\n" % (lab[i], qs[j][3*i], qs[j][3*i+1], qs[j][3*i+2])) - -def print_xyz(atoms, cell, filedesc = sys.stdout, title=""): - """Prints the centroid configurations, into a xyz formatted file. - - Args: - atoms: An atoms object giving the centroid positions. - cell: A cell object giving the system box. - filedesc: An open writable file object. Defaults to standard output. - title: This gives a string to be appended to the comment line. - """ - - a, b, c, alpha, beta, gamma = mt.h2abc_deg(cell.h) - - natoms = atoms.natoms - filedesc.write("%d\n# CELL(abcABC): %10.5f %10.5f %10.5f %10.5f %10.5f %10.5f %s\n" % ( natoms, a, b, c, alpha, beta, gamma, title)) - # direct access to avoid unnecessary slow-down - qs = depstrip(atoms.q) - lab = depstrip(atoms.names) - for i in range(natoms): - filedesc.write("%8s %12.5e %12.5e %12.5e\n" % (lab[i], qs[3*i], qs[3*i+1], qs[3*i+2])) - -def read_xyz(filedesc): - """Takes a xyz-style file and creates an Atoms object. - - Args: - filedesc: An open readable file object from a xyz formatted file. - - Returns: - An Atoms object with the appropriate atom labels, masses and positions. - """ - - natoms = filedesc.readline() - if natoms == "": - raise EOFError("The file descriptor hit EOF.") - natoms = int(natoms) - comment = filedesc.readline() - - qatoms = [] - names = [] - masses = [] - iat = 0 - while (iat < natoms): - body = filedesc.readline() - if body.strip() == "": - break - body = body.split() - name = body[0] - names.append(name) - masses.append(Elements.mass(name)) - x = float(body[1]) - y = float(body[2]) - z = float(body[3]) - qatoms.append(x) - qatoms.append(y) - qatoms.append(z) - iat += 1 - - if natoms != len(names): - raise ValueError("The number of atom records does not match the header of the xyz file.") - - atoms = Atoms(natoms) -# for i in range(natoms): -# nat = atoms[i] -# nat.q = qatoms[i] -# nat.name = names[i] -# nat.m = Elements.mass(names[i]) - atoms.q = np.asarray(qatoms) - atoms.names = np.asarray(names, dtype='|S4') - atoms.m = np.asarray(masses) - - return atoms - -def iter_xyz(filedesc): - """Takes a xyz-style file and yields one Atoms object after another. - - Args: - filedesc: An open readable file object from a xyz formatted file. - - Returns: - Generator over the xyz trajectory, that yields - Atoms objects with the appropriate atom labels, masses and positions. - """ - - try: - while 1: - atoms = read_xyz(filedesc) - yield atoms - except EOFError: - pass diff --git a/tools/i-pi/ipi/utils/mathtools.py b/tools/i-pi/ipi/utils/mathtools.py deleted file mode 100644 index 767feca53f..0000000000 --- a/tools/i-pi/ipi/utils/mathtools.py +++ /dev/null @@ -1,343 +0,0 @@ -"""Contains simple algorithms. - -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 . - - -Functions: - matrix_exp: Computes the exponential of a square matrix via a Taylor series. - stab_cholesky: A numerically stable version of the Cholesky decomposition. - h2abc: Takes the representation of the system box in terms of an upper - triangular matrix of column vectors, and returns the representation in - terms of the lattice vector lengths and the angles between them - in radians. - h2abc_deg: Takes the representation of the system box in terms of an upper - triangular matrix of column vectors, and returns the representation in - terms of the lattice vector lengths and the angles between them in - degrees. - abc2h: Takes the representation of the system box in terms of the lattice - vector lengths and the angles between them, and returns the - representation in terms of an upper triangular lattice vector matrix. - invert_ut3x3: Inverts a 3*3 upper triangular matrix. - det_ut3x3(h): Finds the determinant of a 3*3 upper triangular matrix. - eigensystem_ut3x3: Finds the eigenvector matrix and eigenvalues of a 3*3 - upper triangular matrix - exp_ut3x3: Computes the exponential of a 3*3 upper triangular matrix. - root_herm: Computes the square root of a positive-definite hermitian - matrix. - logsumlog: Routine to accumulate the logarithm of a sum -""" - -__all__ = ['matrix_exp', 'stab_cholesky', 'h2abc', 'h2abc_deg', 'abc2h', - 'invert_ut3x3', 'det_ut3x3', 'eigensystem_ut3x3', 'exp_ut3x3', - 'root_herm', 'logsumlog' ] - -import numpy as np -import math -from ipi.utils.messages import verbosity, warning - -def logsumlog(lasa, lbsb): - """Computes log(|A+B|) and sign(A+B) given log(|A|), log(|B|), - sign(A), sign(B). - - Args: - lasa: (log(|A|), sign(A)) as a tuple - lbsb: (log(|B|), sign(B)) as a tuple - - Returns: - (log(|A+B|), sign(A+B)) as a tuple - """ - - (la,sa) = lasa - (lb,sb) = lbsb - - if (la > lb): - sr = sa - lr = la + np.log(1.0 + sb*np.exp(lb-la)) - else: - sr = sb - lr = lb + np.log(1.0 + sa*np.exp(la-lb)) - - return (lr,sr) - -def matrix_exp(M, ntaylor=15, nsquare=15): - """Computes the exponential of a square matrix via a Taylor series. - - Calculates the matrix exponential by first calculating exp(M/(2**nsquare)), - then squaring the result the appropriate number of times. - - Args: - M: Matrix to be exponentiated. - ntaylor: Optional integer giving the number of terms in the Taylor series. - Defaults to 15. - nsquare: Optional integer giving how many times the original matrix will - be halved. Defaults to 15. - - Returns: - The matrix exponential of M. - """ - - n = M.shape[1] - tc = np.zeros(ntaylor+1) - tc[0] = 1.0 - for i in range(ntaylor): - tc[i+1] = tc[i]/(i+1) - - SM = np.copy(M)/2.0**nsquare - - EM = np.identity(n,float)*tc[ntaylor] - for i in range(ntaylor-1,-1,-1): - EM = np.dot(SM,EM) - EM += np.identity(n)*tc[i] - - for i in range(nsquare): - EM = np.dot(EM,EM) - return EM - -def stab_cholesky(M): - """ A numerically stable version of the Cholesky decomposition. - - Used in the GLE implementation. Since many of the matrices used in this - algorithm have very large and very small numbers in at once, to handle a - wide range of frequencies, a naive algorithm can end up having to calculate - the square root of a negative number, which breaks the algorithm. This is - due to numerical precision errors turning a very tiny positive eigenvalue - into a tiny negative value. - - Instead of this, an LDU decomposition is used, and any small negative numbers - in the diagonal D matrix are assumed to be due to numerical precision errors, - and so are replaced with zero. - - Args: - M: The matrix to be decomposed. - """ - - n = M.shape[1] - D = np.zeros(n,float) - L = np.zeros(M.shape,float) - for i in range(n): - L[i,i] = 1. - for j in range(i): - L[i,j] = M[i,j] - for k in range(j): - L[i,j] -= L[i,k]*L[j,k]*D[k] - if (not D[j] == 0.0): - L[i,j] = L[i,j]/D[j] - D[i] = M[i,i] - for k in range(i): - D[i] -= L[i,k]*L[i,k]*D[k] - - S = np.zeros(M.shape,float) - for i in range(n): - if (D[i]>0): - D[i] = math.sqrt(D[i]) - else: - warning("Zeroing negative element in stab-cholesky decomposition: " + str(D[i]), verbosity.low) - D[i] = 0 - for j in range(i+1): - S[i,j] += L[i,j]*D[j] - return S - -def h2abc(h): - """Returns a description of the cell in terms of the length of the - lattice vectors and the angles between them in radians. - - Args: - h: Cell matrix in upper triangular column vector form. - - Returns: - A list containing the lattice vector lengths and the angles between them. - """ - - a = float(h[0,0]) - b = math.sqrt(h[0,1]**2 + h[1,1]**2) - c = math.sqrt(h[0,2]**2 + h[1,2]**2 + h[2,2]**2) - gamma = math.acos(h[0,1]/b) - beta = math.acos(h[0,2]/c) - alpha = math.acos(np.dot(h[:,1], h[:,2])/(b*c)) - - return a, b, c, alpha, beta, gamma - -def h2abc_deg(h): - """Returns a description of the cell in terms of the length of the - lattice vectors and the angles between them in degrees. - - Args: - h: Cell matrix in upper triangular column vector form. - - Returns: - A list containing the lattice vector lengths and the angles between them - in degrees. - """ - - (a, b, c, alpha, beta, gamma) = h2abc(h) - return a, b, c, alpha*180/math.pi, beta*180/math.pi, gamma*180/math.pi - -def abc2h(a, b, c, alpha, beta, gamma): - """Returns a lattice vector matrix given a description in terms of the - lattice vector lengths and the angles in between. - - Args: - a: First cell vector length. - b: Second cell vector length. - c: Third cell vector length. - alpha: Angle between sides b and c in radians. - beta: Angle between sides a and c in radians. - gamma: Angle between sides b and a in radians. - - Returns: - An array giving the lattice vector matrix in upper triangular form. - """ - - h = np.zeros((3,3) ,float) - h[0,0] = a - h[0,1] = b*math.cos(gamma) - h[0,2] = c*math.cos(beta) - h[1,1] = b*math.sin(gamma) - h[1,2] = (b*c*math.cos(alpha) - h[0,1]*h[0,2])/h[1,1] - h[2,2] = math.sqrt(c**2 - h[0,2]**2 - h[1,2]**2) - return h - -def invert_ut3x3(h): - """Inverts a 3*3 upper triangular matrix. - - Args: - h: An upper triangular 3*3 matrix. - - Returns: - The inverse matrix of h. - """ - - ih = np.zeros((3,3), float) - for i in range(3): - ih[i,i] = 1.0/h[i,i] - ih[0,1] = -ih[0,0]*h[0,1]*ih[1,1] - ih[1,2] = -ih[1,1]*h[1,2]*ih[2,2] - ih[0,2] = -ih[1,2]*h[0,1]*ih[0,0] - ih[0,0]*h[0,2]*ih[2,2] - return ih - -def eigensystem_ut3x3(p): - """Finds the eigenvector matrix of a 3*3 upper-triangular matrix. - - Args: - p: An upper triangular 3*3 matrix. - - Returns: - An array giving the 3 eigenvalues of p, and the eigenvector matrix of p. - """ - - eigp = np.zeros((3,3), float) - eigvals = np.zeros(3, float) - - for i in range(3): - eigp[i,i] = 1 - eigp[0,1] = -p[0,1]/(p[0,0] - p[1,1]) - eigp[1,2] = -p[1,2]/(p[1,1] - p[2,2]) - eigp[0,2] = -(p[0,1]*p[1,2] - p[0,2]*p[1,1] + p[0,2]*p[2,2])/((p[0,0] - p[2,2])*(p[2,2] - p[1,1])) - - for i in range(3): - eigvals[i] = p[i,i] - return eigp, eigvals - -def det_ut3x3(h): - """Calculates the determinant of a 3*3 upper triangular matrix. - - Note that the volume of the system box when the lattice vector matrix is - expressed as a 3*3 upper triangular matrix is given by the determinant of - this matrix. - - Args: - h: An upper triangular 3*3 matrix. - - Returns: - The determinant of h. - """ - - return h[0,0]*h[1,1]*h[2,2] - -MINSERIES=1e-8 -def exp_ut3x3(h): - """Computes the matrix exponential for a 3x3 upper-triangular matrix. - - Note that for 3*3 upper triangular matrices this is the best method, as - it is stable. This is terms which become unstable as the - denominator tends to zero are calculated via a Taylor series in this limit. - - Args: - h: An upper triangular 3*3 matrix. - - Returns: - The matrix exponential of h. - """ - eh = np.zeros((3,3), float) - e00 = math.exp(h[0,0]) - e11 = math.exp(h[1,1]) - e22 = math.exp(h[2,2]) - eh[0,0] = e00 - eh[1,1] = e11 - eh[2,2] = e22 - - if (abs((h[0,0] - h[1,1])/h[0,0])>MINSERIES): - r01 = (e00 - e11)/(h[0,0] - h[1,1]) - else: - r01 = e00*(1 + (h[0,0] - h[1,1])*(0.5 + (h[0,0] - h[1,1])/6.0)) - if (abs((h[1,1] - h[2,2])/h[1,1])>MINSERIES): - r12 = (e11 - e22)/(h[1,1] - h[2,2]) - else: - r12 = e11*(1 + (h[1,1] - h[2,2])*(0.5 + (h[1,1] - h[2,2])/6.0)) - if (abs((h[2,2] - h[0,0])/h[2,2])>MINSERIES): - r02 = (e22 - e00)/(h[2,2] - h[0,0]) - else: - r02 = e22*(1 + (h[2,2] - h[0,0])*(0.5 + (h[2,2] - h[0,0])/6.0)) - - eh[0,1] = h[0,1]*r01 - eh[1,2] = h[1,2]*r12 - - eh[0,2] = h[0,2]*r02 - if (abs((h[2,2] - h[0,0])/h[2,2])>MINSERIES): - eh[0,2] += h[0,1]*h[0,2]*(r01 - r12)/(h[0,0] - h[2,2]) - elif (abs((h[1,1] - h[0,0])/h[1,1])>MINSERIES): - eh[0,2] += h[0,1]*h[0,2]*(r12 - r02)/(h[1,1] - h[0,0]) - elif (abs((h[1,1]-h[2,2])/h[1,1])>MINSERIES): - eh[0,2] += h[0,1]*h[0,2]*(r02 - r01)/(h[2,2] - h[1,1]) - else: - eh[0,2] += h[0,1]*h[0,2]*e00/24.0*(12.0 + 4*(h[1,1] + h[2,2] - 2*h[0,0]) + (h[1,1] - h[0,0])*(h[2,2] - h[0,0])) - - return eh - -def root_herm(A): - """Gives the square root of a hermitian matrix with real eigenvalues. - - Args: - A: A Hermitian matrix. - - Returns: - A matrix such that itself matrix multiplied by its transpose gives the - original matrix. - """ - - if not (abs(A.T - A) < 1e-10).all(): - raise ValueError("Non-Hermitian matrix passed to root_herm function") - eigvals, eigvecs = np.linalg.eigh(A) - ndgrs = len(eigvals) - diag = np.zeros((ndgrs,ndgrs)) - for i in range(ndgrs): - if eigvals[i] >= 0: - diag[i,i] = math.sqrt(eigvals[i]) - else: - warning("Zeroing negative element in matrix square root: " + str(eigvals[i]), verbosity.low) - diag[i,i] = 0 - return np.dot(eigvecs, np.dot(diag, eigvecs.T)) - diff --git a/tools/i-pi/ipi/utils/messages.py b/tools/i-pi/ipi/utils/messages.py deleted file mode 100644 index 928eb537a3..0000000000 --- a/tools/i-pi/ipi/utils/messages.py +++ /dev/null @@ -1,155 +0,0 @@ -"""Utility functions for outputting messages, diagnostics and errors' - -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 . - - -Classes: - Verbosity: Concise class to check the selected level of output - -Functions: - banner: Prints the program welcome "screen" - help: Prints the input syntax help - info: Prints some information to standard output, depending on the level of verbosity - warning: Same as info, but with a "!W!" prefix and optionally printing a stack trace -""" - -import traceback, sys - -__all__ = ['Verbosity', 'verbosity',' help', 'banner', 'info', 'warning'] - - -VERB_QUIET = 0 -VERB_LOW = 1 -VERB_MEDIUM = 2 -VERB_HIGH = 3 -VERB_DEBUG = 4 - -class Verbosity(object): - """Class used to determine what to print to standard output. - - Attributes: - level: Determines what level of output to print. - """ - - level = "low" - - def __getattr__(self, name): - """Determines whether a certain verbosity level is - less than or greater than the stored value. - - Used to decide whether or not a certain info or warning string - should be output. - - Args: - name: The verbosity level at which the info/warning string - will be output. - """ - - if name is "quiet": - return self.level >= VERB_QUIET - elif name is "low": - return self.level >= VERB_LOW - elif name is "medium": - return self.level >= VERB_MEDIUM - elif name is "high": - return self.level >= VERB_HIGH - elif name is "debug": - return self.level >= VERB_DEBUG - - def __setattr__(self, name, value): - """Sets the verbosity level - - Args: - name: The name of what to set. Should always be 'level'. - value: The value to set the verbosity to. - - Raises: - ValueError: Raised if either the name or the level is not - a valid option. - """ - - if name == "level": - if value == "quiet": - level = VERB_QUIET - elif value == "low": - level = VERB_LOW - elif value == "medium": - level = VERB_MEDIUM - elif value == "high": - level = VERB_HIGH - elif value == "debug": - level = VERB_DEBUG - else: - raise ValueError("Invalid verbosity level " + str(value) + " specified.") - super(Verbosity,self).__setattr__("level", level) - - -verbosity = Verbosity() - -def help(): - """Prints out a help string.""" - - print """usage: %s input """%sys.argv[0] - -def banner(): - """Prints out a banner.""" - - print """ - ____ ____ ____ ____ -/ \ / \ / \ / \ -| ################################# | -\__#_/ \____/ \____/ \_#__/ - # _ _______ _____ # - # (_) |_ __ \|_ _| # v. 1.0 - # __ ______ | |__) | | | # - Y [ ||______|| ___/ | | # A Python interface for (ab initio) - 0 0 | | _| |_ _| |_ # (path integral) molecular dynamics. - # [___] |_____| |_____| # - __#_ ____ ____ _#__ -/ # \ / \ / \ / # \ -| ################################# | -\____/ \____/ \____/ \____/ - - """ - - -def info(text="", show=True ): - """Prints a warning message. - - Args: - text: The text of the information message. - show: A boolean describing whether or not the message should be - printed. - """ - - if not show: - return - print text - -def warning(text="", show=True): - """Prints a warning message. - - Args: - text: The text of the information message. - show: A boolean describing whether or not the message should be - printed. - """ - - if not show: - return - if verbosity.debug: - traceback.print_stack(file=sys.stdout) - print " !W! " + text diff --git a/tools/i-pi/ipi/utils/nmtransform.py b/tools/i-pi/ipi/utils/nmtransform.py deleted file mode 100644 index a8c258d522..0000000000 --- a/tools/i-pi/ipi/utils/nmtransform.py +++ /dev/null @@ -1,283 +0,0 @@ -"""Contains functions for doing the inverse and forward normal mode transforms. - -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 . - - -Classes: - nm_trans: Uses matrix multiplication to do normal mode transformations. - nm_rescale: Uses matrix multiplication to do ring polymer contraction - or expansion. - nm_fft: Uses fast-Fourier transforms to do normal modes transformations. - -Functions: - mk_nm_matrix: Makes a matrix to transform between the normal mode and bead - representations. - mk_rs_matrix: Makes a matrix to transform between one number of beads and - another. Higher normal modes in the case of an expansion are set to zero. -""" - -__all__ = ['nm_trans', 'nm_rescale', 'nm_fft'] - -import numpy as np -from ipi.utils.messages import verbosity, info - -def mk_nm_matrix(nbeads): - """Gets the matrix that transforms from the bead representation - to the normal mode representation. - - If we return from this function a matrix C, then we transform between the - bead and normal mode representation using q_nm = C . q_b, q_b = C.T . q_nm - - Args: - nbeads: The number of beads. - """ - - b2nm = np.zeros((nbeads,nbeads)) - b2nm[0,:] = np.sqrt(1.0) - for j in range(nbeads): - for i in range(1, nbeads/2+1): - b2nm[i,j] = np.sqrt(2.0)*np.cos(2*np.pi*j*i/float(nbeads)) - for i in range(nbeads/2+1, nbeads): - b2nm[i,j] = np.sqrt(2.0)*np.sin(2*np.pi*j*i/float(nbeads)) - if (nbeads%2) == 0: - b2nm[nbeads/2,0:nbeads:2] = 1.0 - b2nm[nbeads/2,1:nbeads:2] = -1.0 - return b2nm/np.sqrt(nbeads) - -def mk_rs_matrix(nb1, nb2): - """Gets the matrix that transforms a path with nb1 beads into one with - nb2 beads. - - If we return from this function a matrix T, then we transform between the - system with nb1 bead and the system of nb2 beads using q_2 = T . q_1 - - Args: - nb1: The initial number of beads. - nb2: The final number of beads. - """ - - if (nb1 == nb2): - return np.identity(nb1,float) - elif (nb1 > nb2): - b1_nm = mk_nm_matrix(nb1) - nm_b2 = mk_nm_matrix(nb2).T - - #builds the "reduction" matrix that picks the normal modes we want to keep - b1_b2 = np.zeros((nb2, nb1), float) - b1_b2[0,0] = 1.0 - for i in range(1, nb2/2+1): - b1_b2[i,i] = 1.0 - b1_b2[nb2-i, nb1-i] = 1.0 - if (nb2 % 2 == 0): - #if we are contracting down to an even number of beads, then we have to - #pick just one of the last degenerate modes to match onto the single - #stiffest mode in the new path - b1_b2[nb2/2, nb1-nb2/2] = 0.0 - - rs_b1_b2 = np.dot(nm_b2, np.dot(b1_b2, b1_nm)) - return rs_b1_b2*np.sqrt(float(nb2)/float(nb1)) - else: - return mk_rs_matrix(nb2, nb1).T*(float(nb2)/float(nb1)) - - -class nm_trans: - """Helper class to perform beads <--> normal modes transformation. - - Attributes: - _b2nm: The matrix to transform between the bead and normal mode - representations. - _nm2b: The matrix to transform between the normal mode and bead - representations. - """ - - def __init__(self, nbeads): - """Initializes nm_trans. - - Args: - nbeads: The number of beads. - """ - - self._b2nm = mk_nm_matrix(nbeads) - self._nm2b = self._b2nm.T - - def b2nm(self, q): - """Transforms a matrix to the normal mode representation. - - Args: - q: A matrix with nbeads rows, in the bead representation. - """ - - return np.dot(self._b2nm,q) - - def nm2b(self, q): - """Transforms a matrix to the bead representation. - - Args: - q: A matrix with nbeads rows, in the normal mode representation. - """ - - return np.dot(self._nm2b,q) - - -class nm_rescale: - """Helper class to rescale a ring polymer between different number of beads. - - Attributes: - _b1tob2: The matrix to transform between a ring polymer with 'nbeads1' - beads and another with 'nbeads2' beads. - _b2tob1: The matrix to transform between a ring polymer with 'nbeads2' - beads and another with 'nbeads1' beads. - """ - - def __init__(self, nbeads1, nbeads2): - """Initializes nm_rescale. - - Args: - nbeads1: The initial number of beads. - nbeads2: The rescaled number of beads. - """ - - self._b1tob2 = mk_rs_matrix(nbeads1,nbeads2) - self._b2tob1 = self._b1tob2.T*(float(nbeads1)/float(nbeads2)) - - def b1tob2(self, q): - """Transforms a matrix from one value of beads to another. - - Args: - q: A matrix with nbeads1 rows, in the bead representation. - """ - - return np.dot(self._b1tob2,q) - - def b2tob1(self, q): - """Transforms a matrix from one value of beads to another. - - Args: - q: A matrix with nbeads2 rows, in the bead representation. - """ - - return np.dot(self._b2tob1,q) - - - -class nm_fft: - """Helper class to perform beads <--> normal modes transformation - using Fast Fourier transforms. - - Attributes: - fft: The fast-Fourier transform function to transform between the - bead and normal mode representations. - ifft: The inverse fast-Fourier transform function to transform - between the normal mode and bead representations. - qdummy: A matrix to hold a copy of the bead positions to transform - them to the normal mode representation. - qnmdummy: A matrix to hold a copy of the normal modes to transform - them to the bead representation. - nbeads: The number of beads. - natoms: The number of atoms. - """ - - def __init__(self, nbeads, natoms): - """Initializes nm_trans. - - Args: - nbeads: The number of beads. - natoms: The number of atoms. - """ - - self.nbeads = nbeads - self.natoms = natoms - try: - import pyfftw - info("Import of PyFFTW successful", verbosity.medium) - self.qdummy = pyfftw.n_byte_align_empty((nbeads, 3*natoms), 16, 'float32') - self.qnmdummy = pyfftw.n_byte_align_empty((nbeads//2+1, 3*natoms), 16, 'complex64') - self.fft = pyfftw.FFTW(self.qdummy, self.qnmdummy, axes=(0,), direction='FFTW_FORWARD') - self.ifft = pyfftw.FFTW(self.qnmdummy, self.qdummy, axes=(0,), direction='FFTW_BACKWARD') - except ImportError: #Uses standard numpy fft library if nothing better - #is available - info("Import of PyFFTW unsuccessful, using NumPy library instead", verbosity.medium) - self.qdummy = np.zeros((nbeads,3*natoms), dtype='float32') - self.qnmdummy = np.zeros((nbeads//2+1,3*natoms), dtype='complex64') - def dummy_fft(self): - self.qnmdummy = np.fft.rfft(self.qdummy, axis=0) - def dummy_ifft(self): - self.qdummy = np.fft.irfft(self.qnmdummy, n=self.nbeads, axis=0) - self.fft = lambda: dummy_fft(self) - self.ifft = lambda: dummy_ifft(self) - - def b2nm(self, q): - """Transforms a matrix to the normal mode representation. - - Args: - q: A matrix with nbeads rows and 3*natoms columns, - in the bead representation. - """ - - if self.nbeads == 1: - return q - self.qdummy[:] = q - self.fft() - if self.nbeads == 2: - return self.qnmdummy.real/np.sqrt(self.nbeads) - - nmodes = self.nbeads/2 - - self.qnmdummy /= np.sqrt(self.nbeads) - qnm = np.zeros(q.shape) - qnm[0,:] = self.qnmdummy[0,:].real - - if self.nbeads % 2 == 0: - self.qnmdummy[1:-1,:] *= np.sqrt(2) - (qnm[1:nmodes,:], qnm[self.nbeads:nmodes:-1,:]) = (self.qnmdummy[1:-1,:].real, self.qnmdummy[1:-1,:].imag) - qnm[nmodes,:] = self.qnmdummy[nmodes,:].real - else: - self.qnmdummy[1:,:] *= np.sqrt(2) - (qnm[1:nmodes+1,:], qnm[self.nbeads:nmodes:-1,:]) = (self.qnmdummy[1:,:].real, self.qnmdummy[1:,:].imag) - - return qnm - - def nm2b(self, qnm): - """Transforms a matrix to the bead representation. - - Args: - qnm: A matrix with nbeads rows and 3*natoms columns, - in the normal mode representation. - """ - - if self.nbeads == 1: - return qnm - if self.nbeads == 2: - self.qnmdummy[:] = qnm - self.ifft() - return self.qdummy*np.sqrt(self.nbeads) - - nmodes = self.nbeads/2 - odd = self.nbeads - 2*nmodes # 0 if even, 1 if odd - - qnm_complex = np.zeros((nmodes+1, len(qnm[0,:])), complex) - qnm_complex[0,:] = qnm[0,:] - if not odd: - (qnm_complex[1:-1,:].real, qnm_complex[1:-1,:].imag) = (qnm[1:nmodes,:], qnm[self.nbeads:nmodes:-1,:]) - qnm_complex[1:-1,:] /= np.sqrt(2) - qnm_complex[nmodes,:] = qnm[nmodes,:] - else: - (qnm_complex[1:,:].real, qnm_complex[1:,:].imag) = (qnm[1:nmodes+1,:], qnm[self.nbeads:nmodes:-1,:]) - qnm_complex[1:,:] /= np.sqrt(2) - - self.qnmdummy[:] = qnm_complex - self.ifft() - return self.qdummy*np.sqrt(self.nbeads) diff --git a/tools/i-pi/ipi/utils/prng.py b/tools/i-pi/ipi/utils/prng.py deleted file mode 100644 index b6d9e6d21d..0000000000 --- a/tools/i-pi/ipi/utils/prng.py +++ /dev/null @@ -1,129 +0,0 @@ -"""Contains the classes used to generate pseudo-random numbers. - -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 . - - -Allows the user to specify a seed for the random number generator. -These are used in initialising the velocities and in stochastic thermostats. -The state of the random number generator is kept track of, so that the if the -simulation is restarted from a checkpoint, we will see the same dynamics as if -it had not been stopped. - -Classes: - Random: An interface between the numpy.random module and the user. -""" - -__all__ = ['Random'] - -import numpy as np -import math - -class Random(object): - """Class to interface with the standard pseudo-random number generator. - - Initializes the standard numpy pseudo-random number generator from a seed - at the beginning of the simulation, and keeps track of the state so that - it can be output to the checkpoint files throughout the simulation. - - Attributes: - rng: The random number generator to be used. - seed: The seed number to start the generator. - state: A tuple of five objects giving the current state of the random - number generator. The first is the type of random number generator, - here 'MT19937', the second is an array of 624 integers, the third - is the current position in the array that is being read from, the - fourth gives whether it has a gaussian random number stored, and - the fifth is this stored Gaussian random number, or else the last - Gaussian random number returned. - """ - - def __init__(self, seed=12345, state=None): - """Initializes Random. - - Args: - seed: An optional seed giving an integer to initialize the state with. - state: An optional state tuple to initialize the state with. - """ - - self.rng = np.random.mtrand.RandomState(seed=seed) - self.seed = seed - if state is None: - self.rng.seed(seed) - else: - self.state = state - - def get_state(self): - """Interface to the standard get_state() function.""" - - return self.rng.get_state() - - def set_state(self, value): - """Interface to the standard set_state() function. - - Should only be used with states generated from another similar random - number generator, such as one from a previous run. - """ - - return self.rng.set_state(value) - - state=property(get_state, set_state) - - @property - def u(self): - """Interface to the standard random_sample() function. - - Returns: - A pseudo-random number from a uniform distribution from 0-1. - """ - - return self.rng.random_sample() - - @property - def g(self): - """Interface to the standard standard_normal() function. - - Returns: - A pseudo-random number from a normal Gaussian distribution. - """ - - return self.rng.standard_normal() - - def gamma(self, k, theta=1.0): - """Interface to the standard gamma() function. - - Args: - k: Shape parameter for the gamma distribution. - theta: Mean of the distribution. - - Returns: - A random number from a gamma distribution with a shape k and a - mean value theta. - """ - - return self.rng.gamma(k,theta) - - def gvec(self, shape): - """Interface to the standard_normal array function. - - Args: - shape: The shape of the array to be returned. - - Returns: - An array with the required shape where each element is taken from - a normal Gaussian distribution. - """ - - return self.rng.standard_normal(shape) diff --git a/tools/i-pi/ipi/utils/softexit.py b/tools/i-pi/ipi/utils/softexit.py deleted file mode 100644 index 5d22d9de6b..0000000000 --- a/tools/i-pi/ipi/utils/softexit.py +++ /dev/null @@ -1,73 +0,0 @@ -"""Utility functions for killing the wrapper softly. - -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 . - - -Classes: - Softexit: Concise class to manage cleaning up in case of an emergency exit. -""" - -import traceback, sys -from ipi.utils.messages import verbosity, warning - -__all__ = ['Softexit', 'softexit'] - - -class Softexit(object): - """Class to deal with stopping a simulation half way through. - - Holds the functions used to clean up a simulation that has been - stopped early, either because of a SIGTERM signal or because the - user has added an EXIT file to the directory in which it is - running. This will then properly shut down the socket interface, - and print out a RESTART file for the appropriate time step. - - Attributes: - flist: A list of functions used to close down the socket - interface. - """ - - def __init__(self): - """Initializes SoftExit.""" - - self.flist = [] - - def register(self, func): - """Adds another function to flist. - - Args: - func: The function to be added to flist. - """ - - self.flist.append(func) - - def trigger(self, message=""): - """Halts the simulation. - - Prints out a warning message, then runs all the exit functions in flist - before terminating the simulation. - - Args: - message: The message to output to standard output. - """ - - if message != "": - warning("Soft exit has been requested with message: '" + message + "'. Cleaning up.", verbosity.low) - for f in self.flist: - f() - sys.exit() - -softexit = Softexit() diff --git a/tools/i-pi/ipi/utils/units.py b/tools/i-pi/ipi/utils/units.py deleted file mode 100644 index 93d05ea0f8..0000000000 --- a/tools/i-pi/ipi/utils/units.py +++ /dev/null @@ -1,358 +0,0 @@ -"""Contains fundamental constants in atomic units. - -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 . - - -Classes: - Constants: Class whose members are fundamental constants. - Elements: Class which contains the mass of different elements - Units: Class which contains the methods needed to transform - between different systems of units. -""" - -import re -from ipi.utils.messages import verbosity, info - -__all__ = ['Constants', 'Elements', 'unit_to_internal', 'unit_to_user'] - - -class Constants: - """Class whose members are fundamental constants. - - Attributes: - kb: Boltzmann constant. - hbar: Reduced Planck's constant. - amu: Atomic mass unit. - """ - - kb = 1.0 - hbar = 1.0 - amu = 1822.8885 - - -class Elements(dict): - """Class which contains the mass of different elements. - - Attributes: - mass_list: A dictionary containing the masses of different elements. - Has the form {"label": Mass in a.m.u.}. Note that the generic "X" - label is assumed to be an electron. - """ - - mass_list={ - "X" : 1.0000/Constants.amu, - "H" : 1.00794, - "D" : 2.0141, - "Z" : 1.382943, #an interpolated H-D atom, based on y=1/sqrt(m) scaling - "H2" : 2.0160, - "He" : 4.002602, - "Li" : 6.9410, - "Be" : 9.012182, - "B" : 10.811, - "C" : 12.0107, - "N" : 14.00674, - "O" : 15.9994, - "F" : 18.998403, - "Ne" : 20.1797, - "Na" : 22.989770, - "Mg" : 24.3050, - "Al" : 26.981538, - "Si" : 28.0855, - "P" : 30.973761, - "S" : 32.066, - "Cl" : 35.4527, - "Ar" : 39.9480, - "K" : 39.0983, - "Ca" : 40.078, - "Sc" : 44.955910, - "Ti" : 47.867, - "V" : 50.9415, - "Cr" : 51.9961, - "Mn" : 54.938049, - "Fe" : 55.845, - "Co" : 58.933200, - "Ni" : 58.6934, - "Cu" : 63.546, - "Zn" : 65.39, - "Ga" : 69.723, - "Ge" : 72.61, - "As" : 74.92160, - "Se" : 78.96, - "Br" : 79.904, - "Kr" : 83.80, - "Rb" : 85.4678, - "Sr" : 87.62, - "Y" : 88.90585, - "Zr" : 91.224, - "Nb" : 92.90638, - "Mo" : 95.94, - "Tc" : 98, - "Ru" : 101.07, - "Rh" : 102.90550, - "Pd" : 106.42, - "Ag" : 107.8682, - "Cd" : 112.411, - "In" : 114.818, - "Sn" : 118.710, - "Sb" : 121.760, - "Te" : 127.60, - "I" : 126.90447, - "Xe" : 131.29, - "Cs" : 132.90545, - "Ba" : 137.327, - "La" : 138.9055, - "Ce" : 140.166, - "Pr" : 140.90765, - "Nd" : 144.24, - "Pm" : 145, - "Sm" : 150.36, - "Eu" : 151.964, - "Gd" : 157.25, - "Tb" : 158.92534, - "Dy" : 162.50, - "Ho" : 164.93032, - "Er" : 167.26, - "Tm" : 168.93241, - "Yb" : 173.04, - "Lu" : 174.967, - "Hf" : 178.49, - "Ta" : 180.9479, - "W" : 183.84, - "Re" : 186.207, - "Os" : 190.23, - "Ir" : 192.217, - "Pt" : 195.078, - "Au" : 196.96655, - "Hg" : 200.59, - "Tl" : 204.3833, - "Pb" : 207.2, - "Bi" : 208.98038, - "Po" : 209, - "At" : 210, - "Rn" : 222, - "Fr" : 223, - "Ra" : 226, - "Ac" : 227, - "Th" : 232.0381, - "Pa" : 231.03588, - "U" : 238.0289, - "Np" : 237, - "Pu" : 244, - "Am" : 243, - "Cm" : 247, - "Bk" : 247, - "Cf" : 251, - "Es" : 252, - "Fm" : 257, - "Md" : 258, - "No" : 259, - "Lr" : 262, - "Rf" : 267, - "Db" : 268, - "Sg" : 269, - "Bh" : 270, - "Hs" : 269, - "Mt" : 278, - "Ds" : 281, - "Rg" : 280, - "Cn" : 285, - "Uut" : 286, - "Fl" : 289, - "Uup" : 288, - "Lv" : 293, - "Uus" : 294, - "Uuo" : 294 - } - - @classmethod - def mass(cls, label): - """Function to access the mass_list attribute. - - Note that this does not require an instance of the Elements class to be - created, as this is a class method. Therefore using Elements.mass(label) - will give the mass of the element with the atomic symbol given by label. - - Args: - label: The atomic symbol of the atom whose mass is required. - - Returns: - A float giving the mass of the atom with atomic symbol label. - """ - - try: - return cls.mass_list[label]*Constants.amu - except KeyError: - info("Unknown element given, you must specify the mass", verbosity.low) - return -1.0 - -# these are the conversion FROM the unit stated to internal (atomic) units -UnitMap = { - "undefined": { - "" : 1.00 - }, - "energy": { - "" : 1.00, - "atomic_unit" : 1.00, - "electronvolt" : 0.036749326, - "j/mol" : 0.00000038087989, - "cal/mol" : 0.0000015946679, - "kelvin" : 3.1668152e-06 - }, - "temperature": { - "" : 1.00, - "atomic_unit" : 1.00, - "kelvin" : 3.1668152e-06 - }, - "time": { - "" : 1.00, - "atomic_unit" : 1.00, - "second" : 4.1341373e+16 - }, - "frequency" : { # NB Internally, ANGULAR frequencies are used. - "" : 1.00, - "atomic_unit" : 1.00, - "inversecm" : 4.5563353e-06, - "hertz*rad" : 2.4188843e-17, - "hertz" : 1.5198298e-16 - }, - "ms-momentum" : { # TODO fill up units here (mass-scaled momentum) - "" : 1.00, - "atomic_unit" : 1.00 - }, - "length" : { - "" : 1.00, - "atomic_unit" : 1.00, - "angstrom" : 1.8897261, - "meter" : 1.8897261e+10 - }, - "volume" : { - "" : 1.00, - "atomic_unit" : 1.00, - "angstrom3" : 6.748334231, - }, - "velocity": { - "" : 1.00, - "atomic_unit" : 1.00, - "m/s" : 4.5710289e-7 - }, - "momentum": { - "" : 1.00, - "atomic_unit" : 1.00 - }, - "mass": { - "" : 1.00, - "atomic_unit" : 1.00, - "dalton" : 1.00*Constants.amu, - "electronmass" : 1.00 - }, - "pressure" : { - "" : 1.00, - "atomic_unit" : 1.00, - "bar" : 3.398827377e-9, - "atmosphere" : 3.44386184e-9, - "pascal" : 3.398827377e-14 - }, - "density" : { - "" : 1.00, - "atomic_unit" : 1.00, - "g/cm3" : 162.67263 - }, - "force" : { - "" : 1.00, - "atomic_unit" : 1.00, - "newton" : 12137805 - } - -} - -# a list of magnitude prefixes -UnitPrefix = { - "" : 1.0, - "yotta" : 1e24, "zetta" : 1e21, "exa" : 1e18, "peta" : 1e15, - "tera" : 1e12, "giga" : 1e9, "mega" : 1e6, "kilo" : 1e3, - "milli" : 1e-3, "micro" : 1e-6, "nano" : 1e-9, "pico" : 1e-12, - "femto" : 1e-15, "atto" : 1e-18, "zepto" : 1e-21, "yocto" : 1e-24 -} - -# builds a RE to match prefix and split out the base unit -UnitPrefixRE = "" -for key in UnitPrefix: - UnitPrefixRE = UnitPrefixRE + key + "|" -UnitPrefixRE = " *(" + UnitPrefixRE[1:] + ")(.*) *" -UnitPrefixRE = re.compile(UnitPrefixRE) - -######################################################################## -# Atomic units are used EVERYWHERE internally. In order to quickly # -# interface with any "outside" unit, we set up a simple conversion # -# library. # -######################################################################## - -def unit_to_internal(family, unit, number): - """Converts a number of given dimensions and units into internal units. - - Args: - family: The dimensionality of the number. - unit: The units 'number' is originally in. - number: The value of the parameter in the units 'unit'. - - Returns: - The number in internal units. - - Raises: - ValueError: Raised if the user specified units aren't given in the - UnitMap dictionary. - IndexError: Raised if the programmer specified dimensionality for the - parameter isn't in UnitMap. Shouldn't happen, for obvious reasons. - TypeError: Raised if the prefix is correct, but the base unit is not, in - the user specified unit string. - """ - - if not (family == "number" or family in UnitMap): - raise IndexError(family + " is an undefined units kind.") - if family == "number": - return number - - - if unit == "": - prefix = "" - base = "" - else: - m = UnitPrefixRE.match(unit); - if m is None: - raise ValueError("Unit " + unit + " is not structured with a prefix+base syntax.") - prefix = m.group(1) - base = m.group(2) - - if not prefix in UnitPrefix: - raise TypeError(prefix + " is not a valid unit prefix.") - if not base in UnitMap[family]: - raise TypeError(base + " is an undefined unit for kind " + family + ".") - - return number*UnitMap[family][base]*UnitPrefix[prefix] - -def unit_to_user(family, unit, number): - """Converts a number of given dimensions from internal to user units. - - Args: - family: The dimensionality of the number. - unit: The units 'number' should be changed to. - number: The value of the parameter in internal units. - - Returns: - The number in the user specified units - """ - - return number/unit_to_internal(family, unit, 1.0) diff --git a/tools/i-pi/licenses/license_GPL.txt b/tools/i-pi/licenses/license_GPL.txt deleted file mode 100644 index 10926e87f1..0000000000 --- a/tools/i-pi/licenses/license_GPL.txt +++ /dev/null @@ -1,675 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - diff --git a/tools/i-pi/licenses/license_MIT.txt b/tools/i-pi/licenses/license_MIT.txt deleted file mode 100644 index 3a85b00ea7..0000000000 --- a/tools/i-pi/licenses/license_MIT.txt +++ /dev/null @@ -1,21 +0,0 @@ - MIT license - Modern Style with sublicense - -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. diff --git a/tools/i-pi/manual.pdf b/tools/i-pi/manual.pdf deleted file mode 100644 index b4a239d43fac14f4449df7e63c73ccaf60027b52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609105 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 z 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 z zIej>}z*_Lbjpc&Dr;|SqJiA5;p|AIWA=%;ZRx<*H9FtVY0Zyv<_NZ)KS;(={{9RU5 zZFB^!=7fi9{uAKp(!er+UTwbjRq(8+_wb(xuk8vH}Au%MkeJ!y1W(%9mH~8haiUd@0>usP;Tw`?Tw9B;^gp?T+$BF)4)W=#9s?bPN0K$9ws6 zV48y9s-$dm=7ez}BA)ARaYD{1Y&ej`SzpJYTnT4aNV1}|q+)nn} zj_;LFsN+U7v5NE&8}aaz7%8P+5_4nv0!4f{TRph3E_G}u?h})J8u}m=d`U9gy_zq+ z&PC+4gy?#c{~-Mban4$}|A0D5Y>*K<@nl!wL=L<$e!SeJ-cRKpWz^5$FxNq}hOEVj zlx~TYFnFjc!AW9h&2%ic%76?YT~>O+P#3G;jm!?8%d$d9_vL8F?{!_rx*18!=$+C~ zC+bICsDHbjYK%KwMYJcJbUQyM3K~cfY<{wKM&Wm{!bnq|Ifp1ojEumk4Y+-w6M{u_iRI;a<%N7U`98NBLDA5@%F=EYyLv(<>ZqGHIK zuovdK5r2*MCxKKagM1WghQx|r3=U-XN+LmgeUf!&Z-2ae>r;1keCOQeJmd%<>o2~o zA}LDZu37QvsZ=lJkwR~mm3CPbQ0V@h$`VZH-mTx+``DR+CImpdyfG?42re5!Y$wx( zy(7aNG~H!u*T}b{da>TYLCO!Y6;>#$``(W|lnQa`%Y=&fP-p9A+Y-Zv9UGa%D&-B& zEpuGeCE{gscy)6m&{IB@N9dhc3`zR!P{P|yx$z>vrR=0SLP!CP+BGT~zI|nixLOW+ z!~xt1PF_}ndax)5*xVE7Ww1OTa#N`AHyc#62pu94cD5ZhJwA{1GgX7N)3>zTpoAWC zJ~6(A5#McPm)})gA6;S^+H4)54sD~ zQL3dT&!(c$R>e;jGX$}d&F-LFF

UJpml2zLLmPOUR~Mb7G_&W$*0@ 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 i;Y3Ba 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 ovJ7`ZqCl+fK+W~V6bpSwy@ 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

  • s*MWX-f*Q>lczvpjM{ldQ={+7SgyDX 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�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 ~&Ai_Mc|5U0#l?&C8>1f2)}9`)Reh>f0~J zz+X#rJsa=oo8T;4RU>a7o*X#ww{|rp`;5%x4FyTv(Ix>Ujj~s_XV-xhPcGs-q|ju} z@){_Jj$8>giWG##VDo3#?=oqLkDJU@dlt=NGJXG|zF#M5!a2qGs(&0}Aa)mFjv%=+ zaj1DMwi?kTCumtIl3d}jzc0S(soVg(R?MSkgw1-q-xO!`DsYi36n*b^`GkbJk*Fxj%<{RWcxH*snA+AZhH_8=2jBk8GzFX>(}Tbo6P5_(aaa>lF1j9#ueY<(iav zOAkLXn%X$*mbs@bq9q!kOmF*-HUFBA)jI3x>;oClB%2n0RuHr0u4ZK0P5!BzwuoEP z5L)N5lUib~)L{1^to2f6piO>4HI>1o;h|Nl0r1(a5dl|;7ox+rD8vf3VLFAP$NnDJ zmalXQB~Nm4y*^M#rC;@``RvB}s7TPiQn68;oL8!Ud8z8-Sp_b8#E}2Qi1z=I055MV YPj7$Jo&&z9ps1iA2%nu@NfV6!A9|uvBLDyZ From 8f4cf55ada0735e777c1485c04c53f4e77ff0b6c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 27 May 2024 18:58:18 -0400 Subject: [PATCH 165/313] update docs for i-PI removal --- doc/src/Tools.rst | 33 ++++++++++++++++++++++++--------- doc/src/fix_ipi.rst | 15 +++++++++++---- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 49022a4ee9..f7c227e621 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -90,7 +90,7 @@ Miscellaneous tools * :ref:`LAMMPS coding standards ` * :ref:`emacs ` - * :ref:`i-pi ` + * :ref:`i-PI ` * :ref:`kate ` * :ref:`LAMMPS shell ` * :ref:`LAMMPS GUI ` @@ -376,21 +376,36 @@ 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 ` command to perform -path-integral molecular dynamics (PIMD). +The tools/i-pi directory used to contain a version of the i-PI package. +This version, however, was not updated and thus have become outdated. 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 ` 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/i-PI/ + +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 i-PI + +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). ---------- diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index 7705f211e8..8a1f392137 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -39,10 +39,17 @@ wrapper :ref:`(IPI) ` for performing a path integral molecular dynamics (PIMD) simulation. The philosophy behind i-PI is described in the following publication :ref:`(IPI-CPC) `. -A version of the i-PI package, containing only files needed for use -with LAMMPS, is provided in the tools/i-pi directory. See the -tools/i-pi/manual.pdf for an introduction to i-PI. The -examples/PACKAGES/i-pi directory contains example scripts for using i-PI +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 i-PI + +The examples/PACKAGES/i-pi directory contains example scripts for using i-PI with LAMMPS. In brief, the path integral molecular dynamics is performed by the From 2afbf229ffe4ad5af206aca8062cfe830d9a3ceb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 27 May 2024 19:00:38 -0400 Subject: [PATCH 166/313] mention the i-PI removal --- doc/src/Commands_removed.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/src/Commands_removed.rst b/doc/src/Commands_removed.rst index 0ade07af64..c1ea896dbd 100644 --- a/doc/src/Commands_removed.rst +++ b/doc/src/Commands_removed.rst @@ -148,6 +148,14 @@ performance characteristics on NVIDIA GPUs. Both, the KOKKOS and the :ref:`GPU package ` are maintained and allow running LAMMPS with GPU acceleration. +i-PI tool +--------- + +.. deprecated:: 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 ----------------- From bd5c60060802f993ad13e36b1914fb3a4ee7fbec Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Mon, 27 May 2024 23:58:58 -0400 Subject: [PATCH 167/313] dump custom, 'typelabel' attribute writing strings to dump files previously was not implemented in general way. did not refactor to make more general. NOTE: added value to middle of enum --- doc/src/dump.rst | 23 ++++++++++++----------- src/dump.h | 2 +- src/dump_custom.cpp | 18 ++++++++++++++++-- src/label_map.h | 1 + 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/doc/src/dump.rst b/doc/src/dump.rst index 9f2be8c129..a8175fa612 100644 --- a/doc/src/dump.rst +++ b/doc/src/dump.rst @@ -114,6 +114,7 @@ Syntax proc = ID of processor that owns atom procp1 = ID+1 of processor that owns atom type = atom type + typelabel = atom :doc:`type label ` element = name of atom element, as defined by :doc:`dump_modify ` command mass = atom mass x,y,z = unscaled atom coordinates @@ -775,21 +776,21 @@ command creates a per-atom array with six columns: Per-atom attributes used as arguments to the *custom* and *cfg* styles: -The *id*, *mol*, *proc*, *procp1*, *type*, *element*, *mass*, *vx*, -*vy*, *vz*, *fx*, *fy*, *fz*, *q* attributes are self-explanatory. +The *id*, *mol*, *proc*, *procp1*, *type*, *typelabel*, *element*, *mass*, +*vx*, *vy*, *vz*, *fx*, *fy*, *fz*, *q* attributes are self-explanatory. -*Id* is the atom ID. *Mol* is the molecule ID, included in the data -file for molecular systems. *Proc* is the ID of the processor (0 to +*Id* is the atom ID. *Mol* is the molecule ID, included in the data file +for molecular systems. *Proc* is the ID of the processor (0 to :math:`N_\text{procs}-1`) that currently owns the atom. *Procp1* is the proc ID+1, which can be convenient in place of a *type* attribute (1 to :math:`N_\text{types}`) for coloring atoms in a visualization program. -*Type* is the atom type (1 to :math:`N_\text{types}`). *Element* is -typically the chemical name of an element, which you must assign to each -type via the :doc:`dump_modify element ` command. More -generally, it can be any string you wish to associated with an atom -type. *Mass* is the atom mass. The quantities *vx*, *vy*, *vz*, *fx*, -*fy*, *fz*, and *q* are components of atom velocity and force and atomic -charge. +*Type* is the atom type (1 to :math:`N_\text{types}`). *Typelabel* is the +atom :doc:`type label `. *Element* is typically the +chemical name of an element, which you must assign to each type via the +:doc:`dump_modify element ` command. More generally, it can +be any string you wish to associated with an atom type. *Mass* is the atom +mass. The quantities *vx*, *vy*, *vz*, *fx*, *fy*, *fz*, and *q* are +components of atom velocity and force and atomic charge. There are several options for outputting atom coordinates. The *x*, *y*, and *z* attributes write atom coordinates "unscaled", in the diff --git a/src/dump.h b/src/dump.h index 43baf96ccf..e5711af7a7 100644 --- a/src/dump.h +++ b/src/dump.h @@ -107,7 +107,7 @@ class Dump : protected Pointers { char *format_int_user; char *format_bigint_user; char **format_column_user; - enum { INT, DOUBLE, STRING, BIGINT }; + enum { INT, DOUBLE, STRING, STRING2, BIGINT }; std::map key2col; std::vector keyword_user; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index fb07efd561..1676388de0 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -23,6 +23,7 @@ #include "fix_store_atom.h" #include "group.h" #include "input.h" +#include "label_map.h" #include "memory.h" #include "modify.h" #include "region.h" @@ -36,7 +37,7 @@ using namespace LAMMPS_NS; // customize by adding keyword // also customize compute_property_atom.cpp -enum{ID,MOL,PROC,PROCP1,TYPE,ELEMENT,MASS, +enum{ID,MOL,PROC,PROCP1,TYPE,TYPELABEL,ELEMENT,MASS, X,Y,Z,XS,YS,ZS,XSTRI,YSTRI,ZSTRI,XU,YU,ZU,XUTRI,YUTRI,ZUTRI, XSU,YSU,ZSU,XSUTRI,YSUTRI,ZSUTRI, IX,IY,IZ, @@ -140,6 +141,7 @@ DumpCustom::DumpCustom(LAMMPS *lmp, int narg, char **arg) : if (vtype[i] == Dump::INT) cols += "%d "; else if (vtype[i] == Dump::DOUBLE) cols += "%g "; else if (vtype[i] == Dump::STRING) cols += "%s "; + else if (vtype[i] == Dump::STRING2) cols += "%s "; else if (vtype[i] == Dump::BIGINT) cols += BIGINT_FORMAT " "; vformat[i] = nullptr; } @@ -695,7 +697,12 @@ int DumpCustom::count() for (i = 0; i < nlocal; i++) dchoose[i] = type[i]; ptr = dchoose; nstride = 1; - } else if (thresh_array[ithresh] == ELEMENT) { + } else if (thresh_array[ithresh] == TYPELABEL) { // dead code? + int *type = atom->type; + for (i = 0; i < nlocal; i++) dchoose[i] = type[i]; + ptr = dchoose; + nstride = 1; + } else if (thresh_array[ithresh] == ELEMENT) { // dead code? int *type = atom->type; for (i = 0; i < nlocal; i++) dchoose[i] = type[i]; ptr = dchoose; @@ -1235,6 +1242,8 @@ int DumpCustom::convert_string(int n, double *mybuf) offset += sprintf(&sbuf[offset],vformat[j],mybuf[m]); else if (vtype[j] == Dump::STRING) offset += sprintf(&sbuf[offset],vformat[j],typenames[(int) mybuf[m]]); + else if (vtype[j] == Dump::STRING2) + offset += sprintf(&sbuf[offset],vformat[j],atom->lmap->typelabel[(int) mybuf[m]-1].c_str()); else if (vtype[j] == Dump::BIGINT) offset += sprintf(&sbuf[offset],vformat[j], static_cast (mybuf[m])); @@ -1283,6 +1292,8 @@ void DumpCustom::write_lines(int n, double *mybuf) else if (vtype[j] == Dump::DOUBLE) fprintf(fp,vformat[j],mybuf[m]); else if (vtype[j] == Dump::STRING) fprintf(fp,vformat[j],typenames[(int) mybuf[m]]); + else if (vtype[j] == Dump::STRING2) + fprintf(fp,vformat[j],atom->lmap->typelabel[(int) mybuf[m]-1].c_str()); else if (vtype[j] == Dump::BIGINT) fprintf(fp,vformat[j],static_cast (mybuf[m])); m++; @@ -1323,6 +1334,9 @@ int DumpCustom::parse_fields(int narg, char **arg) } else if (strcmp(arg[iarg],"element") == 0) { pack_choice[iarg] = &DumpCustom::pack_type; vtype[iarg] = Dump::STRING; + } else if (strcmp(arg[iarg],"typelabel") == 0) { + pack_choice[iarg] = &DumpCustom::pack_type; + vtype[iarg] = Dump::STRING2; } else if (strcmp(arg[iarg],"mass") == 0) { pack_choice[iarg] = &DumpCustom::pack_mass; vtype[iarg] = Dump::DOUBLE; diff --git a/src/label_map.h b/src/label_map.h index 0dfc42c9b5..eeab3aeae8 100644 --- a/src/label_map.h +++ b/src/label_map.h @@ -22,6 +22,7 @@ namespace LAMMPS_NS { class LabelMap : protected Pointers { friend class AtomVec; + friend class DumpCustom; friend class DumpXYZ; friend class ReadData; From 33351704a594fb6cfd6a0791efc8c631bb3c916c Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Tue, 28 May 2024 08:40:19 +0200 Subject: [PATCH 168/313] Invisible mais penible --- doc/src/fix_ipi.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index 15a2235b91..4b9bed3d26 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -35,23 +35,23 @@ Description """"""""""" This fix enables LAMMPS to be run as a client for the i-PI Python -wrapper :ref:`(IPI) `. i-PI is a universal force engine, +wrapper :ref:`(IPI) `. i-PI is a universal force engine, designed to perform advanced molecular simulations, with a special -focus on path integral molecular dynamics (PIMD) simulation. -The philosophy behind i-PI is to separate the evaluation of the +focus on path integral molecular dynamics (PIMD) simulation. +The philosophy behind i-PI is to separate the evaluation of the energy and forces, which is delegated to the client, and the evolution of the dynamics, that is the responsibility of i-PI. This approach also simplifies combining energies computed from different codes, which -can for instance be useful to mix first-principles calculations, -empirical force fields or machine-learning potentials. -The following publication :ref:`(IPI-CPC-2014) ` discusses the +can for instance be useful to mix first-principles calculations, +empirical force fields or machine-learning potentials. +The following publication :ref:`(IPI-CPC-2014) ` discusses the overall implementation of i-PI, and focuses on path-integral techniques, while a later release :ref:`(IPI-CPC-2019) ` introduces several -additional features and simulation schemes. +additional features and simulation schemes. -The communication between i-PI and LAMMPS takes place using sockets, -and is reduced to the bare minimum. All the parameters of the dynamics -are specified in the input of i-PI, and all the parameters of the force +The communication between i-PI and LAMMPS takes place using sockets, +and is reduced to the bare minimum. All the parameters of the dynamics +are specified in the input of i-PI, and all the parameters of the force field must be specified as LAMMPS inputs, preceding the *fix ipi* command. The server address must be specified by the *address* argument, and @@ -81,7 +81,7 @@ 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, +obtain the latest stable version from the github repository of i-PI, or from the python package index. Restart, fix_modify, output, run start/stop, minimize info From 09a57c01da4cffdc3a37a6740a66b9931657b2e5 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Tue, 28 May 2024 11:02:57 +0100 Subject: [PATCH 169/313] Corrected email address --- examples/PACKAGES/cgdna/util/lj2real.py | 2 +- examples/PACKAGES/cgdna/util/lmp2vis.py | 2 +- examples/PACKAGES/cgdna/util/nbps.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/PACKAGES/cgdna/util/lj2real.py b/examples/PACKAGES/cgdna/util/lj2real.py index 7b4f3bac28..69076e9b01 100644 --- a/examples/PACKAGES/cgdna/util/lj2real.py +++ b/examples/PACKAGES/cgdna/util/lj2real.py @@ -2,7 +2,7 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 diff --git a/examples/PACKAGES/cgdna/util/lmp2vis.py b/examples/PACKAGES/cgdna/util/lmp2vis.py index ac74bdb9f6..9f55910d6f 100644 --- a/examples/PACKAGES/cgdna/util/lmp2vis.py +++ b/examples/PACKAGES/cgdna/util/lmp2vis.py @@ -2,7 +2,7 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 diff --git a/examples/PACKAGES/cgdna/util/nbps.py b/examples/PACKAGES/cgdna/util/nbps.py index d48633f391..a067dca1ba 100644 --- a/examples/PACKAGES/cgdna/util/nbps.py +++ b/examples/PACKAGES/cgdna/util/nbps.py @@ -2,7 +2,7 @@ /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/ Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov + 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 From 017d69f0e1a09b162a03bbdc289b78fd2985fce9 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Tue, 28 May 2024 11:19:32 +0100 Subject: [PATCH 170/313] Removed whitespace --- doc/src/bond_oxdna.rst | 8 +++----- doc/src/pair_oxdna.rst | 9 +++------ doc/src/pair_oxdna2.rst | 8 +++----- doc/src/pair_oxrna2.rst | 10 ++++------ src/CG-DNA/bond_oxdna_fene.cpp | 4 ++-- src/CG-DNA/constants_oxdna.cpp | 4 ++-- src/CG-DNA/pair_oxdna2_dh.cpp | 2 +- src/CG-DNA/pair_oxdna_excv.cpp | 4 ++-- src/CG-DNA/pair_oxdna_hbond.cpp | 2 +- src/CG-DNA/pair_oxdna_stk.cpp | 2 +- src/CG-DNA/pair_oxdna_xstk.cpp | 2 +- src/CG-DNA/pair_oxrna2_xstk.cpp | 2 +- 12 files changed, 24 insertions(+), 33 deletions(-) diff --git a/doc/src/bond_oxdna.rst b/doc/src/bond_oxdna.rst index 8c2ddfa5a0..c6c11ba095 100644 --- a/doc/src/bond_oxdna.rst +++ b/doc/src/bond_oxdna.rst @@ -58,8 +58,7 @@ Examples be changed without reparameterizing the entire model. They are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). These can also be read from a potential file with correct unit style by specifying the name - of the file. Several potential files for each unit style are included in the - /potentials/ directory of the LAMMPS distribution. + of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. Description """"""""""" @@ -146,7 +145,7 @@ For each style oxdna, oxdna2 and oxrna2, the first parameter argument can be a f bond_style oxdna/fene bond_coeff * oxdna.lj -will be interpreted as a request to read the (FENE) potential :ref:`(Ouldridge) ` parameters from the file with the given name. +will be interpreted as a request to read the (FENE) potential :ref:`(Ouldridge) ` parameters from the file with the given name. The file can define multiple potential parameters for both bonded and pair interactions, but for the above bonded interactions there must exist in the file a line of the form: .. code-block:: LAMMPS @@ -154,8 +153,7 @@ The file can define multiple potential parameters for both bonded and pair inter * fene epsilon delta r0 There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ -directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. ---------- diff --git a/doc/src/pair_oxdna.rst b/doc/src/pair_oxdna.rst index 4a0ef0d168..f5dc0fd94e 100644 --- a/doc/src/pair_oxdna.rst +++ b/doc/src/pair_oxdna.rst @@ -90,8 +90,7 @@ Examples .. note:: The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the - /potentials/ directory of the LAMMPS distribution. + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. Description """"""""""" @@ -159,8 +158,7 @@ For each pair style above the first non-modifiable argument can be a filename, a pair_coeff 1 4 oxdna/hbond seqav oxdna.lj -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. -The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: .. code-block:: LAMMPS @@ -182,8 +180,7 @@ If potential customization is required, the potential file reading can be mixed will read the stacking and coaxial stacking potential parameters from the manual specification and all others from the potential file *oxdna.lj*. There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ -directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. ---------- diff --git a/doc/src/pair_oxdna2.rst b/doc/src/pair_oxdna2.rst index 38778edc09..1c7bd2ae8f 100644 --- a/doc/src/pair_oxdna2.rst +++ b/doc/src/pair_oxdna2.rst @@ -102,8 +102,7 @@ Examples .. note:: The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the - /potentials/ directory of the LAMMPS distribution. + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. Description """"""""""" @@ -170,7 +169,7 @@ Therefore the following command: pair_coeff 1 4 oxdna2/hbond seqdep oxdna.real -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: .. code-block:: LAMMPS @@ -194,8 +193,7 @@ If potential customization is required, the potential file reading can be mixed will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxdna2.lj*. There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ -directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. ---------- diff --git a/doc/src/pair_oxrna2.rst b/doc/src/pair_oxrna2.rst index 0ea55c889e..60bbbd6fef 100644 --- a/doc/src/pair_oxrna2.rst +++ b/doc/src/pair_oxrna2.rst @@ -41,7 +41,7 @@ Syntax *oxrna2/stk* args = seq T xi kappa 6.0 0.43 0.93 0.35 0.78 0.9 0 0.95 0.9 0 0.95 1.3 0 0.8 1.3 0 0.8 2.0 0.65 2.0 0.65 seq = seqav (for average sequence stacking strength) or seqdep (for sequence-dependent stacking strength) - T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) + T = temperature (LJ units: 0.1 = 300 K, real units: 300 = 300 K) xi = 1.40206 (LJ units) or 8.35864576375849 (real units), temperature-independent coefficient in stacking strength kappa = 2.77 (LJ units) or 0.005504556 (real units), coefficient of linear temperature dependence in stacking strength *oxrna2/hbond* args = seq eps 8.0 0.4 0.75 0.34 0.7 1.5 0 0.7 1.5 0 0.7 1.5 0 0.7 0.46 3.141592653589793 0.7 4.0 1.5707963267948966 0.45 4.0 1.5707963267948966 0.45 @@ -106,8 +106,7 @@ Examples .. note:: The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the - /potentials/ directory of the LAMMPS distribution. + These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. Description """"""""""" @@ -174,7 +173,7 @@ Therefore the following command: pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. +will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: .. code-block:: LAMMPS @@ -199,8 +198,7 @@ If potential customization is required, the potential file reading can be mixed will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxrna2.lj*. There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ -directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. ---------- diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 7a60ae3555..623963e925 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -225,7 +225,7 @@ void BondOxdnaFene::compute(int eflag, int vflag) ebond = -0.5 * k[type] * log(rlogarg); } - // switching to capped force for r-r0 -> Delta at + // switching to capped force for r-r0 -> Delta at // r > r_max = r0 + Delta*sqrt(1-rlogarg) OR // r < r_min = r0 - Delta*sqrt(1-rlogarg) if (rlogarg < rlogarg_min) { @@ -356,7 +356,7 @@ void BondOxdnaFene::coeff(int narg, char **arg) } if (iloc != arg[0] || potential_name != "fene") error->one(FLERR, "No corresponding fene potential found in file {} for bond type {}", arg[1], arg[0]); } - + MPI_Bcast(&k_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&Delta_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&r0_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/constants_oxdna.cpp b/src/CG-DNA/constants_oxdna.cpp index f3623f4dab..0c5ff27149 100644 --- a/src/CG-DNA/constants_oxdna.cpp +++ b/src/CG-DNA/constants_oxdna.cpp @@ -60,9 +60,9 @@ void ConstantsOxdna::set_real_units() // oxRNA 2 parameters in real units // d_cs_x = -3.4072 = d_cs for RNA d_cs_z = +1.7036; - d_cst_x_3p = +3.4072, + d_cst_x_3p = +3.4072; d_cst_y_3p = +0.8518; - d_cst_x_5p = +1.063949977, + d_cst_x_5p = +1.063949977; d_cst_y_5p = -0.07378929747; }; diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index 7f38c4b96f..582a635567 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -306,7 +306,7 @@ void PairOxdna2Dh::coeff(int narg, char **arg) T = utils::numeric(FLERR,arg[2],false,lmp); rhos_dh_one = utils::numeric(FLERR,arg[3],false,lmp); - + if (utils::strmatch(arg[4], "^[a-zA-Z0-9]*\\.[a-zA-Z]+$") == true) { // if last arg is a potential file if (comm->me == 0) { // read value from potential file PotentialFileReader reader(lmp, arg[4], "oxdna potential", " (dh)"); diff --git a/src/CG-DNA/pair_oxdna_excv.cpp b/src/CG-DNA/pair_oxdna_excv.cpp index 3a98712818..0b8452a12b 100644 --- a/src/CG-DNA/pair_oxdna_excv.cpp +++ b/src/CG-DNA/pair_oxdna_excv.cpp @@ -574,7 +574,7 @@ void PairOxdnaExcv::coeff(int narg, char **arg) } if (iloc != arg[0] || jloc != arg[1] || potential_name != "excv") error->one(FLERR, "No corresponding excv potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); } - + MPI_Bcast(&epsilon_ss_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&sigma_ss_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_ss_ast_one, 1, MPI_DOUBLE, 0, world); @@ -587,7 +587,7 @@ void PairOxdnaExcv::coeff(int narg, char **arg) MPI_Bcast(&sigma_bb_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_bb_ast_one, 1, MPI_DOUBLE, 0, world); } - + // smoothing - determined through continuity and differentiability b_ss_one = 4.0/sigma_ss_one *(6.0*pow(sigma_ss_one/cut_ss_ast_one,7)-12.0*pow(sigma_ss_one/cut_ss_ast_one,13)) diff --git a/src/CG-DNA/pair_oxdna_hbond.cpp b/src/CG-DNA/pair_oxdna_hbond.cpp index 4763f7412d..ba9d3ca610 100644 --- a/src/CG-DNA/pair_oxdna_hbond.cpp +++ b/src/CG-DNA/pair_oxdna_hbond.cpp @@ -776,7 +776,7 @@ void PairOxdnaHbond::coeff(int narg, char **arg) MPI_Bcast(&a_hb3_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_hb3_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_hb3_ast_one, 1, MPI_DOUBLE, 0, world); - + MPI_Bcast(&a_hb4_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_hb4_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_hb4_ast_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_stk.cpp b/src/CG-DNA/pair_oxdna_stk.cpp index 7991288c1e..ca9ad7a45b 100644 --- a/src/CG-DNA/pair_oxdna_stk.cpp +++ b/src/CG-DNA/pair_oxdna_stk.cpp @@ -868,7 +868,7 @@ void PairOxdnaStk::coeff(int narg, char **arg) cosphi_st1_ast_one = values.next_double(); a_st2_one = values.next_double(); cosphi_st2_ast_one = values.next_double(); - + break; } else continue; } catch (std::exception &e) { diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index af80046b50..5bc0bbb874 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -751,7 +751,7 @@ void PairOxdnaXstk::coeff(int narg, char **arg) MPI_Bcast(&cut_xst_c_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_xst_lo_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_xst_hi_one, 1, MPI_DOUBLE, 0, world); - + MPI_Bcast(&a_xst1_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_xst1_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_xst1_ast_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index c5f4218d8f..ff70740589 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -675,7 +675,7 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) a_xst8_one = values.next_double(); theta_xst8_0_one = values.next_double(); dtheta_xst8_ast_one = values.next_double(); - + break; } else continue; } catch (std::exception &e) { From b7f86f6e348632abe95ea5d76d37d9be5e0f8870 Mon Sep 17 00:00:00 2001 From: Oliver Henrich Date: Tue, 28 May 2024 11:31:42 +0100 Subject: [PATCH 171/313] Removed more whitespace --- src/CG-DNA/pair_oxdna2_dh.cpp | 2 +- src/CG-DNA/pair_oxdna_hbond.cpp | 2 +- src/CG-DNA/pair_oxdna_stk.cpp | 2 +- src/CG-DNA/pair_oxdna_xstk.cpp | 2 +- src/CG-DNA/pair_oxrna2_xstk.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index 582a635567..1073eab844 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -306,7 +306,7 @@ void PairOxdna2Dh::coeff(int narg, char **arg) T = utils::numeric(FLERR,arg[2],false,lmp); rhos_dh_one = utils::numeric(FLERR,arg[3],false,lmp); - + if (utils::strmatch(arg[4], "^[a-zA-Z0-9]*\\.[a-zA-Z]+$") == true) { // if last arg is a potential file if (comm->me == 0) { // read value from potential file PotentialFileReader reader(lmp, arg[4], "oxdna potential", " (dh)"); diff --git a/src/CG-DNA/pair_oxdna_hbond.cpp b/src/CG-DNA/pair_oxdna_hbond.cpp index ba9d3ca610..0f7db91300 100644 --- a/src/CG-DNA/pair_oxdna_hbond.cpp +++ b/src/CG-DNA/pair_oxdna_hbond.cpp @@ -776,7 +776,7 @@ void PairOxdnaHbond::coeff(int narg, char **arg) MPI_Bcast(&a_hb3_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_hb3_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_hb3_ast_one, 1, MPI_DOUBLE, 0, world); - + MPI_Bcast(&a_hb4_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_hb4_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_hb4_ast_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_stk.cpp b/src/CG-DNA/pair_oxdna_stk.cpp index ca9ad7a45b..d7f85cb274 100644 --- a/src/CG-DNA/pair_oxdna_stk.cpp +++ b/src/CG-DNA/pair_oxdna_stk.cpp @@ -868,7 +868,7 @@ void PairOxdnaStk::coeff(int narg, char **arg) cosphi_st1_ast_one = values.next_double(); a_st2_one = values.next_double(); cosphi_st2_ast_one = values.next_double(); - + break; } else continue; } catch (std::exception &e) { diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index 5bc0bbb874..a634433fb1 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -751,7 +751,7 @@ void PairOxdnaXstk::coeff(int narg, char **arg) MPI_Bcast(&cut_xst_c_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_xst_lo_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&cut_xst_hi_one, 1, MPI_DOUBLE, 0, world); - + MPI_Bcast(&a_xst1_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&theta_xst1_0_one, 1, MPI_DOUBLE, 0, world); MPI_Bcast(&dtheta_xst1_ast_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index ff70740589..7c551f4e67 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -675,7 +675,7 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) a_xst8_one = values.next_double(); theta_xst8_0_one = values.next_double(); dtheta_xst8_ast_one = values.next_double(); - + break; } else continue; } catch (std::exception &e) { From 2d7515218ca90ccba145cb25ea75bc96a564141c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 May 2024 19:55:59 -0400 Subject: [PATCH 172/313] improve wording --- doc/src/Tools.rst | 14 +++++++++----- tools/i-pi/README.md | 13 +++++++------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index f7c227e621..233d0ca8d4 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -379,8 +379,11 @@ See README file in the tools/fep directory. i-PI tool ------------------- -The tools/i-pi directory used to contain a version of the i-PI package. -This version, however, was not updated and thus have become outdated. +.. 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 05/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 @@ -389,8 +392,8 @@ dynamics codes. i-PI is now available via PyPi using the pip package manager at: https://pypi.org/project/i-PI/ -Here are the commands to set up a virtual environment and install i-PI -into it with all its dependencies. +Here are the commands to set up a virtual environment and install +i-PI into it with all its dependencies. .. code-block:: sh @@ -405,7 +408,8 @@ To install the development version from GitHub, please use: 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). +For further information, please consult the [i-PI home +page](https://ipi-code.org). ---------- diff --git a/tools/i-pi/README.md b/tools/i-pi/README.md index 9fba2eeeb2..95c7d7a212 100644 --- a/tools/i-pi/README.md +++ b/tools/i-pi/README.md @@ -1,11 +1,11 @@ -This folder used to contain a bundled version of [i-PI](https://ipi-code.org). -However, the bundled version was not updated and thus had become outdated. +This folder used to contain a bundled version of [i-PI](https://ipi-code.org) +but the bundled version was removed in 05/2024. -i-PI is now available via PyPi using the pip package manager at: +i-PI is available via PyPi using the pip package manager at: https://pypi.org/project/i-PI/ -Here are the commands to set up a virtual environment and install i-PI -into it with all its dependencies. +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 @@ -14,4 +14,5 @@ pip install --upgrade pip pip install i-PI ``` -For further information, please consult the [i-PI home page](https://ipi-code.org). +For further information and other methods of installing i-PI, +please consult the [i-PI home page](https://ipi-code.org). From e6a346201845aed24f07b0a5d467e9ae3a972b8a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 May 2024 19:59:42 -0400 Subject: [PATCH 173/313] replace non-ASCII character --- doc/src/fix_ipi.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index 25bafe65c8..d9a10c7230 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -131,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: From 1cf1f0daabb92167e750f55463cb6a5031a69707 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 28 May 2024 20:04:12 -0400 Subject: [PATCH 174/313] update false positives --- doc/utils/sphinx-config/false_positives.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 5dfbe48ffa..075ee9aeb5 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -992,6 +992,7 @@ emax Emax Embt emi +Emilie Emmrich emol eN @@ -1765,6 +1766,7 @@ Kelchner Kelkar Kemper kepler +Kemppainen keV Keyes keyfile @@ -2672,6 +2674,7 @@ nzlo ocl octahedral octants +Odegard Ohara O'Hearn ohenrich @@ -3404,6 +3407,7 @@ sinh sinusoid sinusoidally SiO +Siochi Sirk Sival sizeI @@ -4149,6 +4153,7 @@ yy yz Zagaceta Zannoni +Zavada Zavattieri zbl ZBL From 1a83fefc700731b0cb66d0d5893c322e94d1df43 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 29 May 2024 08:38:54 -0400 Subject: [PATCH 175/313] add false positive --- doc/utils/sphinx-config/false_positives.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index f5236a1075..de2f4f7fba 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1733,6 +1733,7 @@ Kalia Kamberaj Kantorovich Kapfer +Kapil Karhunen Karls Karlsruhe From 10d09aca74d1d0ba6b3c9a8078e2d2c2e078bd8a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 29 May 2024 08:51:53 -0400 Subject: [PATCH 176/313] apply corrections to i-PI package on PyPi --- doc/src/Commands_removed.rst | 2 +- doc/src/Tools.rst | 6 +++--- doc/src/fix_ipi.rst | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/Commands_removed.rst b/doc/src/Commands_removed.rst index c1ea896dbd..e37f8755d7 100644 --- a/doc/src/Commands_removed.rst +++ b/doc/src/Commands_removed.rst @@ -151,7 +151,7 @@ and allow running LAMMPS with GPU acceleration. i-PI tool --------- -.. deprecated:: TBD +.. 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. diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 233d0ca8d4..342ef081de 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -383,14 +383,14 @@ i-PI tool 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 05/2024. +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. i-PI is now available via PyPi using the pip package manager at: -https://pypi.org/project/i-PI/ +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. @@ -400,7 +400,7 @@ i-PI into it with all its dependencies. python -m venv ipienv source ipienv/bin/activate pip install --upgrade pip - pip install i-PI + pip install ipi To install the development version from GitHub, please use: diff --git a/doc/src/fix_ipi.rst b/doc/src/fix_ipi.rst index d9a10c7230..a1951d8996 100644 --- a/doc/src/fix_ipi.rst +++ b/doc/src/fix_ipi.rst @@ -88,7 +88,7 @@ the pip package manager. python -m venv ipienv source ipienv/bin/activate pip install --upgrade pip - pip install i-PI + pip install ipi Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" From 788428ebf98a3a2bcb48e6df109a763c770983e8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 29 May 2024 09:00:54 -0400 Subject: [PATCH 177/313] more corrections --- tools/i-pi/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/i-pi/README.md b/tools/i-pi/README.md index 95c7d7a212..d750bb6138 100644 --- a/tools/i-pi/README.md +++ b/tools/i-pi/README.md @@ -1,8 +1,8 @@ This folder used to contain a bundled version of [i-PI](https://ipi-code.org) -but the bundled version was removed in 05/2024. +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/i-PI/ +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. @@ -11,7 +11,7 @@ install i-PI into it with all its dependencies. python -m venv ipienv source ipienv/bin/activate pip install --upgrade pip -pip install i-PI +pip install ipi ``` For further information and other methods of installing i-PI, From 61b8619f07b1e97e95506415796ef135c8631f95 Mon Sep 17 00:00:00 2001 From: Jacob Gissinger Date: Thu, 30 May 2024 11:34:41 -0400 Subject: [PATCH 178/313] let dump_modify types numeric revert labels --- src/dump_xyz.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/dump_xyz.cpp b/src/dump_xyz.cpp index c424a98feb..018fa754d7 100644 --- a/src/dump_xyz.cpp +++ b/src/dump_xyz.cpp @@ -125,13 +125,6 @@ int DumpXYZ::modify_param(int narg, char **arg) if (strcmp(arg[0],"types") == 0) { if (narg < 2) error->all(FLERR,"Illegal dump_modify command"); - if (strcmp(arg[1],"numeric") == 0) { - return 2; - } else if (strcmp(arg[1],"labels") == 0) { - if (!atom->labelmapflag) - error->all(FLERR, "Label map must be defined when using 'types labels'"); - } else error->all(FLERR, "Illegal option for dump_modify 'types' keyword"); - if (typenames) { for (int i = 1; i <= ntypes; i++) @@ -141,6 +134,13 @@ int DumpXYZ::modify_param(int narg, char **arg) typenames = nullptr; } + if (strcmp(arg[1],"numeric") == 0) { + return 2; + } else if (strcmp(arg[1],"labels") == 0) { + if (!atom->labelmapflag) + error->all(FLERR, "Label map must be defined when using 'types labels'"); + } else error->all(FLERR, "Illegal option for dump_modify 'types' keyword"); + typenames = new char*[ntypes+1]; for (int itype = 1; itype <= ntypes; itype++) { typenames[itype] = utils::strdup(atom->lmap->typelabel[itype-1]); From 1d7fa4f1a8e1880e661e4fb1a74c332ef45b8767 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 30 May 2024 19:41:28 -0400 Subject: [PATCH 179/313] register build number for Windows 11 24H2 --- src/platform.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platform.cpp b/src/platform.cpp index 7e9fa820fa..7cc4815f51 100644 --- a/src/platform.cpp +++ b/src/platform.cpp @@ -248,6 +248,8 @@ std::string platform::os_info() buf = "Windows 11 22H2"; } else if (build == "22631") { buf = "Windows 11 23H2"; + } else if (build == "26100") { + buf = "Windows 11 24H2"; } else { buf = "Windows Build " + build; } From fcdcf659953affa5489e994977fc0320dddc660d Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 31 May 2024 15:12:37 +0200 Subject: [PATCH 180/313] creation + working CPU new pair style dpd/charged which is the combination of dpd and coul/slater/long Working on CPU, GPU in progress --- lib/gpu/lal_dpd_charged.cpp | 187 ++++++++++ lib/gpu/lal_dpd_charged.cu | 443 ++++++++++++++++++++++ lib/gpu/lal_dpd_charged.h | 89 +++++ lib/gpu/lal_dpd_charged_ext.cpp | 133 +++++++ src/DPD-BASIC/pair_dpd_charged.cpp | 574 +++++++++++++++++++++++++++++ src/DPD-BASIC/pair_dpd_charged.h | 66 ++++ src/GPU/pair_dpd_charged_gpu.cpp | 441 ++++++++++++++++++++++ src/GPU/pair_dpd_charged_gpu.h | 45 +++ 8 files changed, 1978 insertions(+) create mode 100644 lib/gpu/lal_dpd_charged.cpp create mode 100644 lib/gpu/lal_dpd_charged.cu create mode 100644 lib/gpu/lal_dpd_charged.h create mode 100644 lib/gpu/lal_dpd_charged_ext.cpp create mode 100644 src/DPD-BASIC/pair_dpd_charged.cpp create mode 100644 src/DPD-BASIC/pair_dpd_charged.h create mode 100644 src/GPU/pair_dpd_charged_gpu.cpp create mode 100644 src/GPU/pair_dpd_charged_gpu.h diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp new file mode 100644 index 0000000000..1f5209852b --- /dev/null +++ b/lib/gpu/lal_dpd_charged.cpp @@ -0,0 +1,187 @@ +/*************************************************************************** + dpd.cpp + ------------------- + Trung Dac Nguyen (ORNL) + + Class for acceleration of the dpd pair style. + + __________________________________________________________________________ + This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) + __________________________________________________________________________ + + begin : Jan 15, 2014 + email : nguyentd@ornl.gov + ***************************************************************************/ + +#if defined(USE_OPENCL) +#include "dpd_cl.h" +#elif defined(USE_CUDART) +const char *dpd=0; +#else +#include "dpd_cubin.h" +#endif + +#include "lal_dpd.h" +#include +namespace LAMMPS_AL { +#define DPDT DPD + +extern Device device; + +template +DPDT::DPD() : BaseDPD(), _allocated(false) { +} + +template +DPDT::~DPD() { + clear(); +} + +template +int DPDT::bytes_per_atom(const int max_nbors) const { + return this->bytes_per_atom_atomic(max_nbors); +} + +template +int DPDT::init(const int ntypes, + double **host_cutsq, double **host_a0, + double **host_gamma, double **host_sigma, + double **host_cut, double *host_special_lj, + const bool tstat_only, + const int nlocal, const int nall, + const int max_nbors, const int maxspecial, + const double cell_size, + const double gpu_split, FILE *_screen) { + const int max_shared_types=this->device->max_shared_types(); + + int onetype=0; + #ifdef USE_OPENCL + if (maxspecial==0) + for (int i=1; i0) { + if (onetype>0) + onetype=-1; + else if (onetype==0) + onetype=i*max_shared_types+j; + } + if (onetype<0) onetype=0; + #endif + + int success; + success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, + gpu_split,_screen,dpd,"k_dpd",onetype); + if (success!=0) + return success; + + // If atom type constants fit in shared memory use fast kernel + int lj_types=ntypes; + shared_types=false; + if (lj_types<=max_shared_types && this->_block_size>=max_shared_types) { + lj_types=max_shared_types; + shared_types=true; + } + _lj_types=lj_types; + + // Allocate a host write buffer for data initialization + UCL_H_Vec host_write(lj_types*lj_types*32,*(this->ucl_device), + UCL_WRITE_ONLY); + + for (int i=0; iucl_device),UCL_READ_ONLY); + this->atom->type_pack4(ntypes,lj_types,coeff,host_write,host_a0,host_gamma, + host_sigma,host_cut); + + UCL_H_Vec host_rsq(lj_types*lj_types,*(this->ucl_device), + UCL_WRITE_ONLY); + cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); + this->atom->type_pack1(ntypes,lj_types,cutsq,host_rsq,host_cutsq); + + double special_sqrt[4]; + special_sqrt[0] = sqrt(host_special_lj[0]); + special_sqrt[1] = sqrt(host_special_lj[1]); + special_sqrt[2] = sqrt(host_special_lj[2]); + special_sqrt[3] = sqrt(host_special_lj[3]); + + UCL_H_Vec dview; + sp_lj.alloc(4,*(this->ucl_device),UCL_READ_ONLY); + dview.view(host_special_lj,4,*(this->ucl_device)); + ucl_copy(sp_lj,dview,false); + sp_sqrt.alloc(4,*(this->ucl_device),UCL_READ_ONLY); + dview.view(special_sqrt,4,*(this->ucl_device)); + ucl_copy(sp_sqrt,dview,false); + + _tstat_only = 0; + if (tstat_only) _tstat_only=1; + + _allocated=true; + this->_max_bytes=coeff.row_bytes()+cutsq.row_bytes()+sp_lj.row_bytes()+sp_sqrt.row_bytes(); + return 0; +} + +template +void DPDT::clear() { + if (!_allocated) + return; + _allocated=false; + + coeff.clear(); + cutsq.clear(); + sp_lj.clear(); + sp_sqrt.clear(); + this->clear_atomic(); +} + +template +double DPDT::host_memory_usage() const { + return this->host_memory_usage_atomic()+sizeof(DPD); +} + +// --------------------------------------------------------------------------- +// Calculate energies, forces, and torques +// --------------------------------------------------------------------------- +template +int DPDT::loop(const int eflag, const int vflag) { + // Compute the block size and grid size to keep all cores busy + const int BX=this->block_size(); + int GX=static_cast(ceil(static_cast(this->ans->inum())/ + (BX/this->_threads_per_atom))); + + int ainum=this->ans->inum(); + int nbor_pitch=this->nbor->nbor_pitch(); + this->time_pair.start(); + if (shared_types) { + this->k_pair_sel->set_size(GX,BX); + this->k_pair_sel->run(&this->atom->x, &coeff, &sp_lj, &sp_sqrt, + &this->nbor->dev_nbor, &this->_nbor_data->begin(), + &this->ans->force, &this->ans->engv, &eflag, + &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, + &this->_dtinvsqrt, &this->_seed, &this->_timestep, + &this->_tstat_only, &this->_threads_per_atom); + } else { + this->k_pair.set_size(GX,BX); + this->k_pair.run(&this->atom->x, &coeff, &_lj_types, &sp_lj, &sp_sqrt, + &this->nbor->dev_nbor, &this->_nbor_data->begin(), + &this->ans->force, &this->ans->engv, &eflag, &vflag, + &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, + &this->_seed, &this->_timestep, &this->_tstat_only, + &this->_threads_per_atom); + } + this->time_pair.stop(); + return GX; +} + +template +void DPDT::update_coeff(int ntypes, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut) +{ + UCL_H_Vec host_write(_lj_types*_lj_types*32,*(this->ucl_device), + UCL_WRITE_ONLY); + this->atom->type_pack4(ntypes,_lj_types,coeff,host_write,host_a0,host_gamma, + host_sigma,host_cut); +} + +template class DPD; +} diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu new file mode 100644 index 0000000000..c6fd4f0e46 --- /dev/null +++ b/lib/gpu/lal_dpd_charged.cu @@ -0,0 +1,443 @@ +// ************************************************************************** +// dpd.cu +// ------------------- +// Trung Dac Nguyen (ORNL) +// +// Device code for acceleration of the dpd pair style +// +// __________________________________________________________________________ +// This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) +// __________________________________________________________________________ +// +// begin : Jan 15, 2014 +// email : nguyentd@ornl.gov +// *************************************************************************** + +#if defined(NV_KERNEL) || defined(USE_HIP) +#include "lal_aux_fun1.h" +#ifndef _DOUBLE_DOUBLE +_texture( pos_tex,float4); +_texture( vel_tex,float4); +#else +_texture_2d( pos_tex,int4); +_texture_2d( vel_tex,int4); +#endif +#else +#define pos_tex x_ +#define vel_tex v_ +#endif + +#define EPSILON (numtyp)1.0e-10 + +//#define _USE_UNIFORM_SARU_LCG +//#define _USE_UNIFORM_SARU_TEA8 +//#define _USE_GAUSSIAN_SARU_LCG + +#if !defined(_USE_UNIFORM_SARU_LCG) && !defined(_USE_UNIFORM_SARU_TEA8) && !defined(_USE_GAUSSIAN_SARU_LCG) +#define _USE_UNIFORM_SARU_LCG +#endif + +// References: +// 1. Y. Afshar, F. Schmid, A. Pishevar, S. Worley, Comput. Phys. Comm. 184 (2013), 1119–1128. +// 2. C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput. Phys. Comm. 230 (2011), 7191-7201. +// PRNG period = 3666320093*2^32 ~ 2^64 ~ 10^19 + +#define LCGA 0x4beb5d59 /* Full period 32 bit LCG */ +#define LCGC 0x2600e1f7 +#define oWeylPeriod 0xda879add /* Prime period 3666320093 */ +#define oWeylOffset 0x8009d14b +#define TWO_N32 0.232830643653869628906250e-9f /* 2^-32 */ + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns uniformly distributed random numbers u in [-1.0;1.0] +// using the inherent LCG, then multiply u with sqrt(3) to "match" +// with a normal random distribution. +// Afshar et al. mutlplies u in [-0.5;0.5] with sqrt(12) +// Curly brackets to make variables local to the scope. +#ifdef _USE_UNIFORM_SARU_LCG +#define SQRT3 (numtyp)1.7320508075688772935274463 +#define saru(seed1, seed2, seed, timestep, randnum) { \ + unsigned int seed3 = seed + timestep; \ + seed3^=(seed1<<7)^(seed2>>6); \ + seed2+=(seed1>>4)^(seed3>>15); \ + seed1^=(seed2<<9)+(seed3<<8); \ + seed3^=0xA5366B4D*((seed2>>11) ^ (seed1<<1)); \ + seed2+=0x72BE1579*((seed1<<4) ^ (seed3>>16)); \ + seed1^=0x3F38A6ED*((seed3>>5) ^ (((signed int)seed2)>>22)); \ + seed2+=seed1*seed3; \ + seed1+=seed3 ^ (seed2>>2); \ + seed2^=((signed int)seed2)>>17; \ + unsigned int state = 0x79dedea3*(seed1^(((signed int)seed1)>>14)); \ + unsigned int wstate = (state + seed2) ^ (((signed int)state)>>8); \ + state = state + (wstate*(wstate^0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate>>1); \ + state = LCGA*state + LCGC; \ + wstate = wstate + oWeylOffset+((((signed int)wstate)>>31) & oWeylPeriod); \ + unsigned int v = (state ^ (state>>26)) + wstate; \ + unsigned int s = (signed int)((v^(v>>20))*0x6957f5a7); \ + randnum = SQRT3*(s*TWO_N32*(numtyp)2.0-(numtyp)1.0); \ +} +#endif + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns uniformly distributed random numbers u in [-1.0;1.0] using TEA8 +// then multiply u with sqrt(3) to "match" with a normal random distribution +// Afshar et al. mutlplies u in [-0.5;0.5] with sqrt(12) +#ifdef _USE_UNIFORM_SARU_TEA8 +#define SQRT3 (numtyp)1.7320508075688772935274463 +#define k0 0xA341316C +#define k1 0xC8013EA4 +#define k2 0xAD90777D +#define k3 0x7E95761E +#define delta 0x9e3779b9 +#define rounds 8 +#define saru(seed1, seed2, seed, timestep, randnum) { \ + unsigned int seed3 = seed + timestep; \ + seed3^=(seed1<<7)^(seed2>>6); \ + seed2+=(seed1>>4)^(seed3>>15); \ + seed1^=(seed2<<9)+(seed3<<8); \ + seed3^=0xA5366B4D*((seed2>>11) ^ (seed1<<1)); \ + seed2+=0x72BE1579*((seed1<<4) ^ (seed3>>16)); \ + seed1^=0x3F38A6ED*((seed3>>5) ^ (((signed int)seed2)>>22)); \ + seed2+=seed1*seed3; \ + seed1+=seed3 ^ (seed2>>2); \ + seed2^=((signed int)seed2)>>17; \ + unsigned int state = 0x79dedea3*(seed1^(((signed int)seed1)>>14)); \ + unsigned int wstate = (state + seed2) ^ (((signed int)state)>>8); \ + state = state + (wstate*(wstate^0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate>>1); \ + unsigned int sum = 0; \ + for (int i=0; i < rounds; i++) { \ + sum += delta; \ + state += ((wstate<<4) + k0)^(wstate + sum)^((wstate>>5) + k1); \ + wstate += ((state<<4) + k2)^(state + sum)^((state>>5) + k3); \ + } \ + unsigned int v = (state ^ (state>>26)) + wstate; \ + unsigned int s = (signed int)((v^(v>>20))*0x6957f5a7); \ + randnum = SQRT3*(s*TWO_N32*(numtyp)2.0-(numtyp)1.0); \ +} +#endif + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns two uniformly distributed random numbers r1 and r2 in [-1.0;1.0], +// and uses the polar method (Marsaglia's) to transform to a normal random value +// This is used to compared with CPU DPD using RandMars::gaussian() +#ifdef _USE_GAUSSIAN_SARU_LCG +#define saru(seed1, seed2, seed, timestep, randnum) { \ + unsigned int seed3 = seed + timestep; \ + seed3^=(seed1<<7)^(seed2>>6); \ + seed2+=(seed1>>4)^(seed3>>15); \ + seed1^=(seed2<<9)+(seed3<<8); \ + seed3^=0xA5366B4D*((seed2>>11) ^ (seed1<<1)); \ + seed2+=0x72BE1579*((seed1<<4) ^ (seed3>>16)); \ + seed1^=0x3F38A6ED*((seed3>>5) ^ (((signed int)seed2)>>22)); \ + seed2+=seed1*seed3; \ + seed1+=seed3 ^ (seed2>>2); \ + seed2^=((signed int)seed2)>>17; \ + unsigned int state=0x12345678; \ + unsigned int wstate=12345678; \ + state = 0x79dedea3*(seed1^(((signed int)seed1)>>14)); \ + wstate = (state + seed2) ^ (((signed int)state)>>8); \ + state = state + (wstate*(wstate^0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate>>1); \ + unsigned int v, s; \ + numtyp r1, r2, rsq; \ + while (1) { \ + state = LCGA*state + LCGC; \ + wstate = wstate + oWeylOffset+((((signed int)wstate)>>31) & oWeylPeriod); \ + v = (state ^ (state>>26)) + wstate; \ + s = (signed int)((v^(v>>20))*0x6957f5a7); \ + r1 = s*TWO_N32*(numtyp)2.0-(numtyp)1.0; \ + state = LCGA*state + LCGC; \ + wstate = wstate + oWeylOffset+((((signed int)wstate)>>31) & oWeylPeriod); \ + v = (state ^ (state>>26)) + wstate; \ + s = (signed int)((v^(v>>20))*0x6957f5a7); \ + r2 = s*TWO_N32*(numtyp)2.0-(numtyp)1.0; \ + rsq = r1 * r1 + r2 * r2; \ + if (rsq < (numtyp)1.0) break; \ + } \ + numtyp fac = ucl_sqrt((numtyp)-2.0*log(rsq)/rsq); \ + randnum = r2*fac; \ +} +#endif + +__kernel void k_dpd(const __global numtyp4 *restrict x_, + const __global numtyp4 *restrict coeff, + const int lj_types, + const __global numtyp *restrict sp_lj, + const __global numtyp *restrict sp_sqrt, + const __global int * dev_nbor, + const __global int * dev_packed, + __global acctyp3 *restrict ans, + __global acctyp *restrict engv, + const int eflag, const int vflag, const int inum, + const int nbor_pitch, + const __global numtyp4 *restrict v_, + const __global numtyp *restrict cutsq, + const numtyp dtinvsqrt, const int seed, + const int timestep, const int tstat_only, + const int t_per_atom) { + int tid, ii, offset; + atom_info(t_per_atom,ii,tid,offset); + + int n_stride; + local_allocate_store_pair(); + + acctyp3 f; + f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0; + acctyp energy, virial[6]; + if (EVFLAG) { + energy=(acctyp)0; + for (int i=0; i<6; i++) virial[i]=(acctyp)0; + } + + if (ii tag2) { + tag1 = jtag; tag2 = itag; + } + + numtyp randnum = (numtyp)0.0; + saru(tag1, tag2, seed, timestep, randnum); + + // conservative force = a0 * wd, or 0 if tstat only + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + + numtyp force = (numtyp)0.0; + if (!tstat_only) force = coeff[mtype].x*wd; + force -= coeff[mtype].y*wd*wd*dot*rinv; + force *= factor_dpd; + force += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; + force*=rinv; + + f.x+=delx*force; + f.y+=dely*force; + f.z+=delz*force; + + if (EVFLAG && eflag) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; + energy+=factor_dpd*e; + } + if (EVFLAG && vflag) { + virial[0] += delx*delx*force; + virial[1] += dely*dely*force; + virial[2] += delz*delz*force; + virial[3] += delx*dely*force; + virial[4] += delx*delz*force; + virial[5] += dely*delz*force; + } + } + + } // for nbor + } // if ii + store_answers(f,energy,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + ans,engv); +} + +__kernel void k_dpd_fast(const __global numtyp4 *restrict x_, + const __global numtyp4 *restrict coeff_in, + const __global numtyp *restrict sp_lj_in, + const __global numtyp *restrict sp_sqrt_in, + const __global int * dev_nbor, + const __global int * dev_packed, + __global acctyp3 *restrict ans, + __global acctyp *restrict engv, + const int eflag, const int vflag, const int inum, + const int nbor_pitch, + const __global numtyp4 *restrict v_, + const __global numtyp *restrict cutsq, + const numtyp dtinvsqrt, const int seed, + const int timestep, const int tstat_only, + const int t_per_atom) { + int tid, ii, offset; + atom_info(t_per_atom,ii,tid,offset); + + #ifndef ONETYPE + __local numtyp4 coeff[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; + __local numtyp sp_lj[4]; + __local numtyp sp_sqrt[4]; + if (tid<4) { + sp_lj[tid]=sp_lj_in[tid]; + sp_sqrt[tid]=sp_sqrt_in[tid]; + } + if (tid tag2) { + tag1 = jtag; tag2 = itag; + } + + numtyp randnum = (numtyp)0.0; + saru(tag1, tag2, seed, timestep, randnum); + + // conservative force = a0 * wd, or 0 if tstat only + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + + #ifndef ONETYPE + const numtyp coeffx=coeff[mtype].x; + const numtyp coeffy=coeff[mtype].y; + const numtyp coeffz=coeff[mtype].z; + #endif + numtyp force = (numtyp)0.0; + if (!tstat_only) force = coeffx*wd; + force -= coeffy*wd*wd*dot*rinv; + #ifndef ONETYPE + force *= factor_dpd; + force += factor_sqrt*coeffz*wd*randnum*dtinvsqrt; + #else + force += coeffz*wd*randnum*dtinvsqrt; + #endif + force*=rinv; + + f.x+=delx*force; + f.y+=dely*force; + f.z+=delz*force; + + if (EVFLAG && eflag) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeffx*coeffw * wd*wd; + #ifndef ONETYPE + energy+=factor_dpd*e; + #else + energy+=e; + #endif + } + if (EVFLAG && vflag) { + virial[0] += delx*delx*force; + virial[1] += dely*dely*force; + virial[2] += delz*delz*force; + virial[3] += delx*dely*force; + virial[4] += delx*delz*force; + virial[5] += dely*delz*force; + } + } + + } // for nbor + } // if ii + store_answers(f,energy,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + ans,engv); +} + diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h new file mode 100644 index 0000000000..2220a3663d --- /dev/null +++ b/lib/gpu/lal_dpd_charged.h @@ -0,0 +1,89 @@ +/*************************************************************************** + dpd.h + ------------------- + Trung Dac Nguyen (ORNL) + + Class for acceleration of the dpd pair style. + + __________________________________________________________________________ + This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) + __________________________________________________________________________ + + begin : Jan 15, 2014 + email : nguyentd@ornl.gov + ***************************************************************************/ + +#ifndef LAL_DPD_CHARGED_H +#define LAL_DPD_CHARGED_H + +#include "lal_base_dpd.h" + +namespace LAMMPS_AL { + +template +class DPDCharged : public BaseDPD { + public: + DPDCharged(); + ~DPDCharged(); + + /// Clear any previous data and set up for a new LAMMPS run + /** \param max_nbors initial number of rows in the neighbor matrix + * \param cell_size cutoff + skin + * \param gpu_split fraction of particles handled by device + * + * Returns: + * - 0 if successful + * - -1 if fix gpu not found + * - -3 if there is an out of memory error + * - -4 if the GPU library was not compiled for GPU + * - -5 Double precision is not supported on card **/ + int init(const int ntypes, double **host_cutsq, double **host_a0, + double **host_gamma, double **host_sigma, double **host_cut, + double *host_special_lj, bool tstat_only, const int nlocal, + const int nall, const int max_nbors, const int maxspecial, + const double cell_size, const double gpu_split, FILE *screen); + + /// Clear all host and device data + /** \note This is called at the beginning of the init() routine **/ + void clear(); + + /// Returns memory usage on device per atom + int bytes_per_atom(const int max_nbors) const; + + /// Total host memory used by library for pair style + double host_memory_usage() const; + + /// Update coeff if needed (tstat only) + void update_coeff(int ntypes, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut); + + // --------------------------- TYPE DATA -------------------------- + + /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut + UCL_D_Vec coeff; + + UCL_D_Vec cutsq; + + /// Special LJ values + UCL_D_Vec sp_lj, sp_sqrt; + + /// If atom type constants fit in shared memory, use fast kernels + bool shared_types; + + /// Number of atom types + int _lj_types; + + /// Only used for thermostat + int _tstat_only; + + /// pointer to host data of charge + double * + + private: + bool _allocated; + int loop(const int eflag, const int vflag); +}; + +} + +#endif diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp new file mode 100644 index 0000000000..d4ab7f8e36 --- /dev/null +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -0,0 +1,133 @@ +/*************************************************************************** + dpd_ext.cpp + ------------------- + Trung Dac Nguyen (ORNL) + + Functions for LAMMPS access to dpd acceleration routines. + + __________________________________________________________________________ + This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) + __________________________________________________________________________ + + begin : Jan 15, 2014 + email : nguyentd@ornl.gov + ***************************************************************************/ + +#include +#include +#include + +#include "lal_dpd.h" + +using namespace std; +using namespace LAMMPS_AL; + +static DPD DPDCMF; + +// --------------------------------------------------------------------------- +// Allocate memory on host and device and copy constants to device +// --------------------------------------------------------------------------- +int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, + double **host_gamma, double **host_sigma, double **host_cut, + double *special_lj, const int inum, + const int nall, const int max_nbors, const int maxspecial, + const double cell_size, int &gpu_mode, FILE *screen) { + DPDCMF.clear(); + gpu_mode=DPDCMF.device->gpu_mode(); + double gpu_split=DPDCMF.device->particle_split(); + int first_gpu=DPDCMF.device->first_device(); + int last_gpu=DPDCMF.device->last_device(); + int world_me=DPDCMF.device->world_me(); + int gpu_rank=DPDCMF.device->gpu_rank(); + int procs_per_gpu=DPDCMF.device->procs_per_gpu(); + + DPDCMF.device->init_message(screen,"dpd",first_gpu,last_gpu); + + bool message=false; + if (DPDCMF.device->replica_me()==0 && screen) + message=true; + + if (message) { + fprintf(screen,"Initializing Device and compiling on process 0..."); + fflush(screen); + } + + int init_ok=0; + if (world_me==0) + init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, + host_cut, special_lj, false, inum, nall, max_nbors, + maxspecial, cell_size, gpu_split, screen); + + DPDCMF.device->world_barrier(); + if (message) + fprintf(screen,"Done.\n"); + + for (int i=0; iserialize_init(); + if (message) + fprintf(screen,"Done.\n"); + } + if (message) + fprintf(screen,"\n"); + + if (init_ok==0) + DPDCMF.estimate_gpu_overhead(); + return init_ok; +} + +void dpd_charged_gpu_clear() { + DPDCMF.clear(); +} + +int ** dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, + double **host_x, int *host_type, double *sublo, + double *subhi, tagint *tag, int **nspecial, + tagint **special, const bool eflag, const bool vflag, + const bool eatom, const bool vatom, int &host_start, + int **ilist, int **jnum, const double cpu_time, bool &success, + double **host_v, const double dtinvsqrt, + const int seed, const int timestep, + double *boxlo, double *prd) { + return DPDCMF.compute(ago, inum_full, nall, host_x, host_type, sublo, + subhi, tag, nspecial, special, eflag, vflag, eatom, + vatom, host_start, ilist, jnum, cpu_time, success, + host_v, dtinvsqrt, seed, timestep, boxlo, prd); +} + +void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, + double **host_x, int *host_type, int *ilist, int *numj, + int **firstneigh, const bool eflag, const bool vflag, + const bool eatom, const bool vatom, int &host_start, + const double cpu_time, bool &success, tagint *tag, + double **host_v, const double dtinvsqrt, + const int seed, const int timestep, + const int nlocal, double *boxlo, double *prd) { + DPDCMF.compute(ago, inum_full, nall, host_x, host_type, ilist, numj, + firstneigh, eflag, vflag, eatom, vatom, host_start, cpu_time, success, + tag, host_v, dtinvsqrt, seed, timestep, nlocal, boxlo, prd); +} + +void dpd_charged_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut) +{ + DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut); +} + +double dpd_charged_gpu_bytes() { + return DPDCMF.host_memory_usage(); +} + + diff --git a/src/DPD-BASIC/pair_dpd_charged.cpp b/src/DPD-BASIC/pair_dpd_charged.cpp new file mode 100644 index 0000000000..6468e75280 --- /dev/null +++ b/src/DPD-BASIC/pair_dpd_charged.cpp @@ -0,0 +1,574 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Kurt Smith (U Pittsburgh) +------------------------------------------------------------------------- */ + +#include "pair_dpd_charged.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "random_mars.h" +#include "update.h" + +#include "ewald_const.h" +#include "kspace.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace EwaldConst; + +static constexpr double EPSILON = 1.0e-10; + +/* ---------------------------------------------------------------------- */ + +PairDPDCharged::PairDPDCharged(LAMMPS *lmp) : Pair(lmp) +{ + writedata = 1; + ewaldflag = pppmflag = 1; + qdist = 0.0; + random = nullptr; +} + +/* ---------------------------------------------------------------------- */ + +PairDPDCharged::~PairDPDCharged() +{ + if (copymode) return; + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cut_dpd); + memory->destroy(cut_dpdsq); + memory->destroy(cut_slater); + memory->destroy(cut_slatersq); + + memory->destroy(cut); + memory->destroy(a0); + memory->destroy(gamma); + memory->destroy(sigma); + memory->destroy(scale); + } + + if (random) delete random; +} + +/* ---------------------------------------------------------------------- */ + +void PairDPDCharged::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair; + double vxtmp,vytmp,vztmp,delvx,delvy,delvz; + double r2inv,forcedpd,forcecoul,factor_coul; + double grij,expm2,prefactor,t,erfc; + double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; + int *ilist,*jlist,*numneigh,**firstneigh; + double slater_term; + + + evdwl = 0.0; + ev_init(eflag,vflag); + ecoul = 0.0; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + int *type = atom->type; + int nlocal = atom->nlocal; + double *special_lj = force->special_lj; + int newton_pair = force->newton_pair; + double dtinvsqrt = 1.0/sqrt(update->dt); + + double *q = atom->q; + double *special_coul = force->special_coul; + double qqrd2e = force->qqrd2e; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + // loop over neighbors of my atoms + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + vxtmp = v[i][0]; + vytmp = v[i][1]; + vztmp = v[i][2]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_dpd = special_lj[sbmask(j)]; + factor_sqrt = special_sqrt[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx*delx + dely*dely + delz*delz; + jtype = type[j]; + + // forces if below maximum cutoff + if (rsq < cutsq[itype][jtype]) { + r = sqrt(rsq); + if (r < EPSILON) continue; // r can be 0.0 in DPD systems + // apply DPD force if distance below DPD cutoff + if (rsq < cut_dpdsq[itype][jtype]) { + rinv = 1.0/r; + delvx = vxtmp - v[j][0]; + delvy = vytmp - v[j][1]; + delvz = vztmp - v[j][2]; + dot = delx*delvx + dely*delvy + delz*delvz; + wd = 1.0 - r/cut_dpd[itype][jtype]; + randnum = random->gaussian(); + + // conservative force = a0 * wd + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + // random force must be scaled by sqrt(factor_dpd) + + forcedpd = a0[itype][jtype]*wd; + forcedpd -= gamma[itype][jtype]*wd*wd*dot*rinv; + forcedpd *= factor_dpd; + forcedpd += factor_sqrt*sigma[itype][jtype]*wd*randnum*dtinvsqrt; + forcedpd *= rinv; + } else forcedpd = 0.0; + + // apply Slater electrostatic force if distance below Slater cutoff + // and the two species are charged + if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + r2inv = 1.0/rsq; + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); + prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); + forcecoul *= r2inv; + } else forcecoul = 0.0; + + fpair = forcedpd + forcecoul; + + f[i][0] += delx*fpair; + f[i][1] += dely*fpair; + f[i][2] += delz*fpair; + if (newton_pair || j < nlocal) { + f[j][0] -= delx*fpair; + f[j][1] -= dely*fpair; + f[j][2] -= delz*fpair; + } + + // tallies global or per-atom energy and virial only if needed + if (eflag) { + if (rsq < cut_dpdsq[itype][jtype]) { + // eng shifted to 0.0 at cutoff + evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; + evdwl *= factor_dpd; + } else evdwl = 0.0; + + if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); + } else ecoul = 0.0; + } + + if (evflag) ev_tally(i,j,nlocal,newton_pair, + evdwl,ecoul,fpair,delx,dely,delz); + } + } + } + + if (vflag_fdotr) virial_fdotr_compute(); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairDPDCharged::allocate() +{ + int i,j; + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (i = 1; i <= n; i++) + for (j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(scale,n+1,n+1,"pair:scale"); + + memory->create(cut,n+1,n+1,"pair:cut"); + memory->create(cut_dpd,n+1,n+1,"pair:cut_dpd"); + memory->create(cut_dpdsq,n+1,n+1,"pair:cut_dpdsq"); + memory->create(cut_slater,n+1,n+1,"pair:cut_slater"); + memory->create(cut_slatersq,n+1,n+1,"pair:cut_slatersq"); + memory->create(a0,n+1,n+1,"pair:a0"); + memory->create(gamma,n+1,n+1,"pair:gamma"); + memory->create(sigma,n+1,n+1,"pair:sigma"); + for (i = 0; i <= atom->ntypes; i++) + for (j = 0; j <= atom->ntypes; j++) + sigma[i][j] = gamma[i][j] = 0.0; +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairDPDCharged::settings(int narg, char **arg) +{ + // params : T cut_dpd seed lambda cut_coul + if (narg != 5) error->all(FLERR,"Illegal pair_style command"); + + temperature = utils::numeric(FLERR,arg[0],false,lmp); + cut_global = utils::numeric(FLERR,arg[1],false,lmp); + seed = utils::inumeric(FLERR,arg[2],false,lmp); + lamda = utils::numeric(FLERR,arg[3],false,lmp); + cut_coul = utils::numeric(FLERR,arg[4],false,lmp); + // initialize Marsaglia RNG with processor-unique seed + + if (seed <= 0) error->all(FLERR,"Illegal pair_style command"); + delete random; + random = new RanMars(lmp,seed + comm->me); + + // reset cutoffs that have been explicitly set + + if (allocated) { + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) + if (setflag[i][j]) cut_dpd[i][j] = MAX(cut_global,cut_coul); + } +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairDPDCharged::coeff(int narg, char **arg) +{ + if (narg < 4 || narg > 6) + error->all(FLERR,"Incorrect args for pair coefficients"); + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + + double a0_one = utils::numeric(FLERR,arg[2],false,lmp); + double gamma_one = utils::numeric(FLERR,arg[3],false,lmp); + + double cut_one = cut_global; + double cut_two = 0.0; + + if (narg > 4) { + bool do_slater = utils::logical(FLERR,arg[4],false,lmp); + if (do_slater) cut_two = cut_coul+2.0*qdist; + } + + if (narg > 5) cut_one = utils::numeric(FLERR,arg[5],false,lmp); + + int count = 0; + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + a0[i][j] = a0_one; + gamma[i][j] = gamma_one; + cut_dpd[i][j] = cut_one; + cut_slater[i][j] = cut_two; + cut[i][j] = MAX(cut_one, cut_two); + setflag[i][j] = 1; + scale[i][j] = 1.0; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairDPDCharged::init_style() +{ + if (comm->ghost_velocity == 0) + error->all(FLERR,"Pair dpd requires ghost atoms store velocity"); + if (!atom->q_flag) + error->all(FLERR,"Pair style coul/slater/long requires atom attribute q"); + + // if newton off, forces between atoms ij will be double computed + // using different random numbers + + if (force->newton_pair == 0 && comm->me == 0) + error->warning(FLERR, "Pair dpd needs newton pair on for momentum conservation"); + + neighbor->add_request(this); + + // precompute random force scaling factors + + for (int i = 0; i < 4; ++i) special_sqrt[i] = sqrt(force->special_lj[i]); + + + // ensure use of KSpace long-range solver, set g_ewald + + if (force->kspace == nullptr) + error->all(FLERR,"Pair style requires a KSpace style"); + g_ewald = force->kspace->g_ewald; +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i + return the maximum cutoff between Slater or DPD cutoff if charged + return the DPD cutoff for uncharged +------------------------------------------------------------------------- */ + +double PairDPDCharged::init_one(int i, int j) +{ + if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); + + sigma[i][j] = sqrt(2.0*force->boltz*temperature*gamma[i][j]); + + cut_dpdsq[i][j] = cut_dpd[i][j] * cut_dpd[i][j]; + cut_dpdsq[j][i] = cut_dpdsq[i][j]; + cut_slatersq[i][j] = cut_slater[i][j] * cut_slater[i][j]; + cut_slatersq[j][i] = cut_slatersq[i][j]; + + a0[j][i] = a0[i][j]; + gamma[j][i] = gamma[i][j]; + sigma[j][i] = sigma[i][j]; + scale[j][i] = scale[i][j]; + cut_dpd[j][i] = cut_dpd[i][j]; + cut_slater[j][i] = cut_slater[i][j]; + cut[j][i] = cut[i][j]; + + //return cut[i][j]; + return MAX(cut_dpd[i][j], cut_slater[i][j]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairDPDCharged::write_restart(FILE *fp) +{ + write_restart_settings(fp); + + int i,j; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&a0[i][j],sizeof(double),1,fp); + fwrite(&gamma[i][j],sizeof(double),1,fp); + fwrite(&cut[i][j],sizeof(double),1,fp); + fwrite(&cut_dpd[i][j],sizeof(double),1,fp); + fwrite(&cut_dpdsq[i][j],sizeof(double),1,fp); + fwrite(&cut_slater[i][j],sizeof(double),1,fp); + fwrite(&cut_slatersq[i][j],sizeof(double),1,fp); + fwrite(&scale[i][j],sizeof(double),1,fp); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairDPDCharged::read_restart(FILE *fp) +{ + read_restart_settings(fp); + + allocate(); + + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + utils::sfread(FLERR,&a0[i][j],sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&gamma[i][j],sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &scale[i][j],sizeof(double),1,fp, nullptr, error); + } + MPI_Bcast(&a0[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_dpd[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_dpdsq[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_slater[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_slatersq[i][j],1,MPI_DOUBLE,0,world); + MPI_Bcast(&scale[i][j],1,MPI_DOUBLE,0,world); + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairDPDCharged::write_restart_settings(FILE *fp) +{ + fwrite(&temperature,sizeof(double),1,fp); + fwrite(&cut_global,sizeof(double),1,fp); + fwrite(&seed,sizeof(int),1,fp); + fwrite(&mix_flag,sizeof(int),1,fp); + fwrite(&cut_coul,sizeof(double),1,fp); + fwrite(&cut_dpd,sizeof(double),1,fp); + fwrite(&cut_dpdsq,sizeof(double),1,fp); + fwrite(&cut_slater,sizeof(double),1,fp); + fwrite(&cut_slatersq,sizeof(double),1,fp); + fwrite(&lamda,sizeof(double),1,fp); + fwrite(&offset_flag,sizeof(int),1,fp); +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairDPDCharged::read_restart_settings(FILE *fp) +{ + if (comm->me == 0) { + utils::sfread(FLERR,&temperature,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&seed,sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_coul,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_dpd,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_dpdsq,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_slater,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &cut_slatersq,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &lamda,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR, &offset_flag,sizeof(int),1,fp,nullptr,error); + } + MPI_Bcast(&temperature,1,MPI_DOUBLE,0,world); + MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); + MPI_Bcast(&seed,1,MPI_INT,0,world); + MPI_Bcast(&mix_flag,1,MPI_INT,0,world); + MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); + MPI_Bcast(&lamda,1,MPI_DOUBLE,0,world); + MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + + // initialize Marsaglia RNG with processor-unique seed + // same seed that pair_style command initially specified + + if (random) delete random; + random = new RanMars(lmp,seed + comm->me); +} + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void PairDPDCharged::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + fprintf(fp,"%d %g %g\n",i,a0[i][i],gamma[i][i]); +} + +/* ---------------------------------------------------------------------- + proc 0 writes all pairs to data file +------------------------------------------------------------------------- */ + +void PairDPDCharged::write_data_all(FILE *fp) +{ + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + fprintf(fp,"%d %d %g %g %g\n",i,j,a0[i][j],gamma[i][j],cut[i][j]); +} + +/* ---------------------------------------------------------------------- */ + +double PairDPDCharged::single(int i, int j, int itype, int jtype, double rsq, + double factor_coul, double factor_dpd, double &fforce) +{ + double r,rinv,wd,phi; + double r2inv,grij,expm2,t,erfc,prefactor; + double slater_term; + double forcecoul,phicoul; + + double energy = 0.0; + fforce = 0.0; + + r = sqrt(rsq); + + // compute DPD force and energy + if (rsq < cut_dpdsq[itype][jtype] && r > EPSILON) { + rinv = 1.0/r; + wd = 1.0 - r/cut_dpd[itype][jtype]; + fforce += a0[itype][jtype]*wd * factor_dpd*rinv; + + phi = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; + energy += factor_dpd*phi; + } + + // compute Slater coulombic force and energy + if (atom->q[i]*atom->q[j] != 0.0 && rsq < cut_slatersq[itype][jtype]) { + r2inv = 1.0/rsq; + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); + prefactor = force->qqrd2e * atom->q[i]*atom->q[j]/r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor; + fforce += forcecoul * r2inv; + phicoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) phicoul -= (1.0-factor_coul)*prefactor; + energy += phicoul; + } + + return energy; +} + +void *PairDPDCharged::extract(const char *str, int &dim) +{ + if (strcmp(str,"cut_coul") == 0) { + dim = 0; + return (void *) &cut_coul; + } + if (strcmp(str,"lamda") == 0) { + dim = 0; + return (void *) &lamda; + } + if (strcmp(str,"scale") == 0) { + dim = 2; + return (void *) scale; + } + return nullptr; +} \ No newline at end of file diff --git a/src/DPD-BASIC/pair_dpd_charged.h b/src/DPD-BASIC/pair_dpd_charged.h new file mode 100644 index 0000000000..eebe421ed6 --- /dev/null +++ b/src/DPD-BASIC/pair_dpd_charged.h @@ -0,0 +1,66 @@ +/* -*- 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 PAIR_CLASS +// clang-format off +PairStyle(dpd/charged,PairDPDCharged); +// clang-format on +#else + +#ifndef LMP_PAIR_DPD_CHARGED_H +#define LMP_PAIR_DPD_CHARGED_H + +#include "pair.h" + +namespace LAMMPS_NS { + +class PairDPDCharged : public Pair { + public: + PairDPDCharged(class LAMMPS *); + ~PairDPDCharged() override; + void compute(int, int) override; + void settings(int, char **) override; + void coeff(int, char **) override; + void init_style() override; + double init_one(int, int) override; + void write_restart(FILE *) override; + void read_restart(FILE *) override; + void write_restart_settings(FILE *) override; + void read_restart_settings(FILE *) override; + void write_data(FILE *) override; + void write_data_all(FILE *) override; + double single(int, int, int, int, double, double, double, double &) override; + void *extract(const char *, int &) override; + + protected: + double cut_global, temperature; + double special_sqrt[4]; + int seed; + double **cut; + double **cut_dpd, **cut_dpdsq; + double **cut_slater, **cut_slatersq; + double **a0, **gamma; + double **sigma; + class RanMars *random; + double cut_coul, qdist; + double lamda; + double g_ewald; + double **scale; + + virtual void allocate(); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp new file mode 100644 index 0000000000..60620efa24 --- /dev/null +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -0,0 +1,441 @@ +/* ---------------------------------------------------------------------- + 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. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Trung Dac Nguyen (ORNL) +------------------------------------------------------------------------- */ + +#include "pair_dpd_charged_gpu.h" + +#include "atom.h" +#include "domain.h" +#include "error.h" +#include "force.h" +#include "gpu_extra.h" +#include "neigh_list.h" +#include "neighbor.h" +#include "suffix.h" +#include "update.h" + +#include "ewald_const.h" +#include "kspace.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace EwaldConst; + +// External functions from cuda library for atom decomposition + +int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut, double *special_lj, const int inum, + const int nall, const int max_nbors, const int maxspecial, const double cell_size, + int &gpu_mode, FILE *screen); +void dpd_charged_gpu_clear(); +int **dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, + int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, + tagint **special, const bool eflag, const bool vflag, const bool eatom, + const bool vatom, int &host_start, int **ilist, int **jnum, + const double cpu_time, bool &success, double **host_v, + const double dtinvsqrt, const int seed, const int timestep, double *boxlo, + double *prd); +void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, double **host_x, + int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag, + const bool vflag, const bool eatom, const bool vatom, int &host_start, + const double cpu_time, bool &success, tagint *tag, double **host_v, + const double dtinvsqrt, const int seed, const int timestep, const int nlocal, + double *boxlo, double *prd); +double dpd_charged_gpu_bytes(); + +static constexpr double EPSILON = 1.0e-10; + +//#define _USE_UNIFORM_SARU_LCG +//#define _USE_UNIFORM_SARU_TEA8 +//#define _USE_GAUSSIAN_SARU_LCG + +#if !defined(_USE_UNIFORM_SARU_LCG) && !defined(_USE_UNIFORM_SARU_TEA8) && \ + !defined(_USE_GAUSSIAN_SARU_LCG) +#define _USE_UNIFORM_SARU_LCG +#endif + +// References: +// 1. Y. Afshar, F. Schmid, A. Pishevar, S. Worley, Comput. Phys. Comm. 184 (2013), 1119–1128. +// 2. C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput. Phys. Comm. 230 (2011), 7191-7201. +// PRNG period = 3666320093*2^32 ~ 2^64 ~ 10^19 + +#define LCGA 0x4beb5d59 // Full period 32 bit LCG +#define LCGC 0x2600e1f7 +#define oWeylPeriod 0xda879add // Prime period 3666320093 +#define oWeylOffset 0x8009d14b +#define TWO_N32 0.232830643653869628906250e-9f /* 2^-32 */ + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns uniformly distributed random numbers u in [-1.0;1.0] +// using the inherent LCG, then multiply u with sqrt(3) to "match" +// with a normal random distribution. +// Afshar et al. mutlplies u in [-0.5;0.5] with sqrt(12) +// Curly brackets to make variables local to the scope. +#ifdef _USE_UNIFORM_SARU_LCG +#define numtyp double +#define SQRT3 (numtyp) 1.7320508075688772935274463 +#define saru(seed1, seed2, seed, timestep, randnum) \ + { \ + unsigned int seed3 = seed + timestep; \ + seed3 ^= (seed1 << 7) ^ (seed2 >> 6); \ + seed2 += (seed1 >> 4) ^ (seed3 >> 15); \ + seed1 ^= (seed2 << 9) + (seed3 << 8); \ + seed3 ^= 0xA5366B4D * ((seed2 >> 11) ^ (seed1 << 1)); \ + seed2 += 0x72BE1579 * ((seed1 << 4) ^ (seed3 >> 16)); \ + seed1 ^= 0x3F38A6ED * ((seed3 >> 5) ^ (((signed int) seed2) >> 22)); \ + seed2 += seed1 * seed3; \ + seed1 += seed3 ^ (seed2 >> 2); \ + seed2 ^= ((signed int) seed2) >> 17; \ + unsigned int state = 0x79dedea3 * (seed1 ^ (((signed int) seed1) >> 14)); \ + unsigned int wstate = (state + seed2) ^ (((signed int) state) >> 8); \ + state = state + (wstate * (wstate ^ 0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate >> 1); \ + state = LCGA * state + LCGC; \ + wstate = wstate + oWeylOffset + ((((signed int) wstate) >> 31) & oWeylPeriod); \ + unsigned int v = (state ^ (state >> 26)) + wstate; \ + unsigned int s = (signed int) ((v ^ (v >> 20)) * 0x6957f5a7); \ + randnum = SQRT3 * (s * TWO_N32 * (numtyp) 2.0 - (numtyp) 1.0); \ + } +#endif + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns uniformly distributed random numbers u in [-1.0;1.0] using TEA8 +// then multiply u with sqrt(3) to "match" with a normal random distribution +// Afshar et al. mutlplies u in [-0.5;0.5] with sqrt(12) +#ifdef _USE_UNIFORM_SARU_TEA8 +#define numtyp double +#define SQRT3 (numtyp) 1.7320508075688772935274463 +#define k0 0xA341316C +#define k1 0xC8013EA4 +#define k2 0xAD90777D +#define k3 0x7E95761E +#define delta 0x9e3779b9 +#define rounds 8 +#define saru(seed1, seed2, seed, timestep, randnum) \ + { \ + unsigned int seed3 = seed + timestep; \ + seed3 ^= (seed1 << 7) ^ (seed2 >> 6); \ + seed2 += (seed1 >> 4) ^ (seed3 >> 15); \ + seed1 ^= (seed2 << 9) + (seed3 << 8); \ + seed3 ^= 0xA5366B4D * ((seed2 >> 11) ^ (seed1 << 1)); \ + seed2 += 0x72BE1579 * ((seed1 << 4) ^ (seed3 >> 16)); \ + seed1 ^= 0x3F38A6ED * ((seed3 >> 5) ^ (((signed int) seed2) >> 22)); \ + seed2 += seed1 * seed3; \ + seed1 += seed3 ^ (seed2 >> 2); \ + seed2 ^= ((signed int) seed2) >> 17; \ + unsigned int state = 0x79dedea3 * (seed1 ^ (((signed int) seed1) >> 14)); \ + unsigned int wstate = (state + seed2) ^ (((signed int) state) >> 8); \ + state = state + (wstate * (wstate ^ 0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate >> 1); \ + unsigned int sum = 0; \ + for (int i = 0; i < rounds; i++) { \ + sum += delta; \ + state += ((wstate << 4) + k0) ^ (wstate + sum) ^ ((wstate >> 5) + k1); \ + wstate += ((state << 4) + k2) ^ (state + sum) ^ ((state >> 5) + k3); \ + } \ + unsigned int v = (state ^ (state >> 26)) + wstate; \ + unsigned int s = (signed int) ((v ^ (v >> 20)) * 0x6957f5a7); \ + randnum = SQRT3 * (s * TWO_N32 * (numtyp) 2.0 - (numtyp) 1.0); \ + } +#endif + +// specifically implemented for steps = 1; high = 1.0; low = -1.0 +// returns two uniformly distributed random numbers r1 and r2 in [-1.0;1.0], +// and uses the polar method (Marsaglia's) to transform to a normal random value +// This is used to compared with CPU DPD using RandMars::gaussian() +#ifdef _USE_GAUSSIAN_SARU_LCG +#define numtyp double +#define saru(seed1, seed2, seed, timestep, randnum) \ + { \ + unsigned int seed3 = seed + timestep; \ + seed3 ^= (seed1 << 7) ^ (seed2 >> 6); \ + seed2 += (seed1 >> 4) ^ (seed3 >> 15); \ + seed1 ^= (seed2 << 9) + (seed3 << 8); \ + seed3 ^= 0xA5366B4D * ((seed2 >> 11) ^ (seed1 << 1)); \ + seed2 += 0x72BE1579 * ((seed1 << 4) ^ (seed3 >> 16)); \ + seed1 ^= 0x3F38A6ED * ((seed3 >> 5) ^ (((signed int) seed2) >> 22)); \ + seed2 += seed1 * seed3; \ + seed1 += seed3 ^ (seed2 >> 2); \ + seed2 ^= ((signed int) seed2) >> 17; \ + unsigned int state = 0x12345678; \ + unsigned int wstate = 12345678; \ + state = 0x79dedea3 * (seed1 ^ (((signed int) seed1) >> 14)); \ + wstate = (state + seed2) ^ (((signed int) state) >> 8); \ + state = state + (wstate * (wstate ^ 0xdddf97f5)); \ + wstate = 0xABCB96F7 + (wstate >> 1); \ + unsigned int v, s; \ + numtyp r1, r2, rsq; \ + while (1) { \ + state = LCGA * state + LCGC; \ + wstate = wstate + oWeylOffset + ((((signed int) wstate) >> 31) & oWeylPeriod); \ + v = (state ^ (state >> 26)) + wstate; \ + s = (signed int) ((v ^ (v >> 20)) * 0x6957f5a7); \ + r1 = s * TWO_N32 * (numtyp) 2.0 - (numtyp) 1.0; \ + state = LCGA * state + LCGC; \ + wstate = wstate + oWeylOffset + ((((signed int) wstate) >> 31) & oWeylPeriod); \ + v = (state ^ (state >> 26)) + wstate; \ + s = (signed int) ((v ^ (v >> 20)) * 0x6957f5a7); \ + r2 = s * TWO_N32 * (numtyp) 2.0 - (numtyp) 1.0; \ + rsq = r1 * r1 + r2 * r2; \ + if (rsq < (numtyp) 1.0) break; \ + } \ + numtyp fac = sqrt((numtyp) -2.0 * log(rsq) / rsq); \ + randnum = r2 * fac; \ + } +#endif + +/* ---------------------------------------------------------------------- */ + +PairDPDChargedGPU::PairDPDCharged(LAMMPS *lmp) : PairDPD(lmp), gpu_mode(GPU_FORCE) +{ + respa_enable = 0; + reinitflag = 0; + cpu_time = 0.0; + suffix_flag |= Suffix::GPU; + GPU_EXTRA::gpu_ready(lmp->modify, lmp->error); +} + +/* ---------------------------------------------------------------------- + free all arrays +------------------------------------------------------------------------- */ + +PairDPDChargedGPU::~PairDPDChargedGPU() +{ + dpd_charged_gpu_clear(); +} + +/* ---------------------------------------------------------------------- */ + +void PairDPDChargedGPU::compute(int eflag, int vflag) +{ + ev_init(eflag, vflag); + + int nall = atom->nlocal + atom->nghost; + int inum, host_start; + + double dtinvsqrt = 1.0 / sqrt(update->dt); + + bool success = true; + int *ilist, *numneigh, **firstneigh; + if (gpu_mode != GPU_FORCE) { + double sublo[3], subhi[3]; + if (domain->triclinic == 0) { + sublo[0] = domain->sublo[0]; + sublo[1] = domain->sublo[1]; + sublo[2] = domain->sublo[2]; + subhi[0] = domain->subhi[0]; + subhi[1] = domain->subhi[1]; + subhi[2] = domain->subhi[2]; + } else { + domain->bbox(domain->sublo_lamda, domain->subhi_lamda, sublo, subhi); + } + inum = atom->nlocal; + firstneigh = dpd_charged_gpu_compute_n( + neighbor->ago, inum, nall, atom->x, atom->type, sublo, subhi, atom->tag, atom->nspecial, + atom->special, eflag, vflag, eflag_atom, vflag_atom, host_start, &ilist, &numneigh, + cpu_time, success, atom->v, dtinvsqrt, seed, update->ntimestep, domain->boxlo, domain->prd); + } else { + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + dpd_charged_gpu_compute(neighbor->ago, inum, nall, atom->x, atom->type, ilist, numneigh, firstneigh, + eflag, vflag, eflag_atom, vflag_atom, host_start, cpu_time, success, atom->tag, + atom->v, dtinvsqrt, seed, update->ntimestep, atom->nlocal, domain->boxlo, + domain->prd); + } + if (!success) error->one(FLERR, "Insufficient memory on accelerator"); + + if (atom->molecular != Atom::ATOMIC && neighbor->ago == 0) + neighbor->build_topology(); + if (host_start < inum) { + cpu_time = platform::walltime(); + cpu_compute(host_start, inum, eflag, vflag, ilist, numneigh, firstneigh); + cpu_time = platform::walltime() - cpu_time; + } +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairDPDChargedGPU::init_style() +{ + + // Repeat cutsq calculation because done after call to init_style + double maxcut = -1.0; + double mcut; + for (int i = 1; i <= atom->ntypes; i++) { + for (int j = i; j <= atom->ntypes; j++) { + if (setflag[i][j] != 0 || (setflag[i][i] != 0 && setflag[j][j] != 0)) { + mcut = init_one(i, j); + mcut *= mcut; + if (mcut > maxcut) maxcut = mcut; + cutsq[i][j] = cutsq[j][i] = mcut; + } else + cutsq[i][j] = cutsq[j][i] = 0.0; + } + } + double cell_size = sqrt(maxcut) + neighbor->skin; + + int maxspecial = 0; + if (atom->molecular != Atom::ATOMIC) maxspecial = atom->maxspecial; + int mnf = 5e-2 * neighbor->oneatom; + int success = + dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, force->special_lj, atom->nlocal, + atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen); + GPU_EXTRA::check_flag(success, error, world); + + if (gpu_mode == GPU_FORCE) neighbor->add_request(this, NeighConst::REQ_FULL); + +} + +/* ---------------------------------------------------------------------- */ + +double PairDPDChargedGPU::memory_usage() +{ + double bytes = Pair::memory_usage(); + return bytes + dpd_charged_gpu_bytes(); +} + +/* ---------------------------------------------------------------------- */ + +void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag */, int *ilist, + int *numneigh, int **firstneigh) +{ + int i, j, ii, jj, jnum, itype, jtype; + double xtmp, ytmp, ztmp, delx, dely, delz, evdwl, fpair; + double vxtmp, vytmp, vztmp, delvx, delvy, delvz; + double r2inv,forcedpd,forcecoul,factor_coul; + double grij,expm2,prefactor,t,erfc; + double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; + int *ilist,*jlist,*numneigh,**firstneigh; + double slater_term; + int *jlist; + tagint itag, jtag; + + double *q = atom->q; + double *special_coul = force->special_coul; + double qqrd2e = force->qqrd2e; + + evdwl = 0.0; + ecoul = 0.0; + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + int *type = atom->type; + tagint *tag = atom->tag; + double *special_lj = force->special_lj; + double dtinvsqrt = 1.0 / sqrt(update->dt); + int timestep = (int) update->ntimestep; + + // loop over neighbors of my atoms + + for (ii = start; ii < inum; ii++) { + i = ilist[ii]; + qtmp = q[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + vxtmp = v[i][0]; + vytmp = v[i][1]; + vztmp = v[i][2]; + itype = type[i]; + itag = tag[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + factor_dpd = special_lj[sbmask(j)]; + factor_sqrt = special_sqrt[sbmask(j)]; + factor_coul = special_coul[sbmask(j)]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + jtype = type[j]; + jtag = tag[j]; + + // forces if below maximum cutoff + if (rsq < cutsq[itype][jtype]) { + r = sqrt(rsq); + if (r < EPSILON) continue; // r can be 0.0 in DPD systems + // apply DPD force if distance below DPD cutoff + if (rsq < cut_dpdsq[itype][jtype]) { + rinv = 1.0 / r; + delvx = vxtmp - v[j][0]; + delvy = vytmp - v[j][1]; + delvz = vztmp - v[j][2]; + dot = delx * delvx + dely * delvy + delz * delvz; + wd = 1.0 - r / cut[itype][jtype]; + + unsigned int tag1 = itag, tag2 = jtag; + if (tag1 > tag2) { + tag1 = jtag; + tag2 = itag; + } + + randnum = 0.0; + saru(tag1, tag2, seed, timestep, randnum); + + // conservative force = a0 * wd + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + forcedpd = a0[itype][jtype]*wd; + forcedpd -= gamma[itype][jtype]*wd*wd*dot*rinv; + forcedpd *= factor_dpd; + forcedpd += factor_sqrt*sigma[itype][jtype]*wd*randnum*dtinvsqrt; + forcedpd *= rinv; + } else forcedpd = 0.0; + + // apply Slater electrostatic force if distance below Slater cutoff + // and the two species are charged + if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + r2inv = 1.0/rsq; + grij = g_ewald * r; + expm2 = exp(-grij*grij); + t = 1.0 / (1.0 + EWALD_P*grij); + erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); + prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; + forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); + if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); + forcecoul *= r2inv; + } else forcecoul = 0.0; + + f[i][0] += delx * fpair; + f[i][1] += dely * fpair; + f[i][2] += delz * fpair; + + if (eflag) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + evdwl = 0.5 * a0[itype][jtype] * cut[itype][jtype] * wd * wd; + evdwl *= factor_dpd; + } + + if (evflag) ev_tally_full(i, evdwl, 0.0, fpair, delx, dely, delz); + } + } + } +} diff --git a/src/GPU/pair_dpd_charged_gpu.h b/src/GPU/pair_dpd_charged_gpu.h new file mode 100644 index 0000000000..6c755660a1 --- /dev/null +++ b/src/GPU/pair_dpd_charged_gpu.h @@ -0,0 +1,45 @@ +/* -*- 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 PAIR_CLASS +// clang-format off +PairStyle(dpd/charged/gpu,PairDPDChargedGPU); +// clang-format on +#else + +#ifndef LMP_PAIR_DPD_CHARGED_GPU_H +#define LMP_PAIR_DPD_CHARGED_GPU_H + +#include "pair_dpd_charged.h" + +namespace LAMMPS_NS { + +class PairDPDChargedGPU : public PairDPDCharged { + public: + PairDPDChargedGPU(LAMMPS *lmp); + ~PairDPDChargedGPU() override; + void cpu_compute(int, int, int, int, int *, int *, int **); + void compute(int, int) override; + void init_style() override; + double memory_usage() override; + + enum { GPU_FORCE, GPU_NEIGH, GPU_HYB_NEIGH }; + + private: + int gpu_mode; + double cpu_time; +}; + +} // namespace LAMMPS_NS +#endif +#endif From 9b14a880dca2f6f7bc138621a72eef435b24f953 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 31 May 2024 17:07:22 +0200 Subject: [PATCH 181/313] charge pointer and corrections --- lib/gpu/lal_dpd_charged.cpp | 62 ++++++++++++++++++++++++-------- lib/gpu/lal_dpd_charged.cu | 14 ++++++-- lib/gpu/lal_dpd_charged.h | 8 +++-- lib/gpu/lal_dpd_charged_ext.cpp | 4 +-- src/GPU/pair_dpd_charged_gpu.cpp | 30 ++++++++++++---- 5 files changed, 90 insertions(+), 28 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index 1f5209852b..a9b1aa886f 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -14,36 +14,36 @@ ***************************************************************************/ #if defined(USE_OPENCL) -#include "dpd_cl.h" +#include "dpd_charged_cl.h" #elif defined(USE_CUDART) const char *dpd=0; #else -#include "dpd_cubin.h" +#include "dpd_charged_cubin.h" #endif -#include "lal_dpd.h" +#include "lal_dpd_charged.h" #include namespace LAMMPS_AL { -#define DPDT DPD +#define DPDChargedT DPDCharged extern Device device; template -DPDT::DPD() : BaseDPD(), _allocated(false) { +DPDChargedT::DPDCharged() : BaseDPD(), _allocated(false) { } template -DPDT::~DPD() { +DPDChargedT::~DPDCharged() { clear(); } template -int DPDT::bytes_per_atom(const int max_nbors) const { +int DPDChargedT::bytes_per_atom(const int max_nbors) const { return this->bytes_per_atom_atomic(max_nbors); } template -int DPDT::init(const int ntypes, +int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut, double *host_special_lj, @@ -122,7 +122,7 @@ int DPDT::init(const int ntypes, } template -void DPDT::clear() { +void DPDChargedT::clear() { if (!_allocated) return; _allocated=false; @@ -135,7 +135,7 @@ void DPDT::clear() { } template -double DPDT::host_memory_usage() const { +double DPDChargedT::host_memory_usage() const { return this->host_memory_usage_atomic()+sizeof(DPD); } @@ -143,7 +143,28 @@ double DPDT::host_memory_usage() const { // Calculate energies, forces, and torques // --------------------------------------------------------------------------- template -int DPDT::loop(const int eflag, const int vflag) { +int DPDChargedT::loop(const int eflag, const int vflag) { + + int nall = this->atom->nall(); + // signal that we need to transfer extra data from the host + + this->atom->extra_data_unavail(); + + numtyp4 *pextra=reinterpret_cast(&(this->atom->extra[0])); + + int n = 0; + int nstride = 1; + for (int i = 0; i < nall; i++) { + int idx = n+i*nstride; + numtyp4 v; + v.x = q[i]; + v.y = 0; + v.z = 0; + v.w = 0; + pextra[idx] = v; + } + this->atom->add_extra_data(); + // Compute the block size and grid size to keep all cores busy const int BX=this->block_size(); int GX=static_cast(ceil(static_cast(this->ans->inum())/ @@ -154,7 +175,7 @@ int DPDT::loop(const int eflag, const int vflag) { this->time_pair.start(); if (shared_types) { this->k_pair_sel->set_size(GX,BX); - this->k_pair_sel->run(&this->atom->x, &coeff, &sp_lj, &sp_sqrt, + this->k_pair_sel->run(&this->atom->x, &this->atom->extra, &coeff, &sp_lj, &sp_sqrt, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, @@ -162,7 +183,7 @@ int DPDT::loop(const int eflag, const int vflag) { &this->_tstat_only, &this->_threads_per_atom); } else { this->k_pair.set_size(GX,BX); - this->k_pair.run(&this->atom->x, &coeff, &_lj_types, &sp_lj, &sp_sqrt, + this->k_pair.run(&this->atom->x, &this->atom->extra, &coeff, &_lj_types, &sp_lj, &sp_sqrt, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, @@ -174,7 +195,7 @@ int DPDT::loop(const int eflag, const int vflag) { } template -void DPDT::update_coeff(int ntypes, double **host_a0, double **host_gamma, +void DPDChargedT::update_coeff(int ntypes, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut) { UCL_H_Vec host_write(_lj_types*_lj_types*32,*(this->ucl_device), @@ -183,5 +204,16 @@ void DPDT::update_coeff(int ntypes, double **host_a0, double **host_gamma, host_sigma,host_cut); } -template class DPD; +// --------------------------------------------------------------------------- +// Get the extra data pointers from host +// --------------------------------------------------------------------------- + +template +void DPDChargedT::get_extra_data(double *host_q) { + q = host_q; } + +template class DPDCharged; +} + + diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index c6fd4f0e46..e4caa49dd1 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -161,7 +161,8 @@ _texture_2d( vel_tex,int4); } #endif -__kernel void k_dpd(const __global numtyp4 *restrict x_, +__kernel void k_dpd_charged(const __global numtyp4 *restrict x_, + const __global numtyp4 *restrict extra, const __global numtyp4 *restrict coeff, const int lj_types, const __global numtyp *restrict sp_lj, @@ -201,6 +202,8 @@ __kernel void k_dpd(const __global numtyp4 *restrict x_, numtyp4 iv; fetch4(iv,i,vel_tex); //v_[i]; int itag=iv.w; + const numtyp qi = extra[i].x; + numtyp factor_dpd, factor_sqrt; for ( ; nbor tag2) { tag1 = jtag; tag2 = itag; @@ -279,7 +284,8 @@ __kernel void k_dpd(const __global numtyp4 *restrict x_, ans,engv); } -__kernel void k_dpd_fast(const __global numtyp4 *restrict x_, +__kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, + const __global numtyp4 *restrict extra, const __global numtyp4 *restrict coeff_in, const __global numtyp *restrict sp_lj_in, const __global numtyp *restrict sp_sqrt_in, @@ -341,6 +347,8 @@ __kernel void k_dpd_fast(const __global numtyp4 *restrict x_, numtyp4 iv; fetch4(iv,i,vel_tex); //v_[i]; int itag=iv.w; + const numtyp qi = extra[i].x; + #ifndef ONETYPE numtyp factor_dpd, factor_sqrt; #endif @@ -382,6 +390,8 @@ __kernel void k_dpd_fast(const __global numtyp4 *restrict x_, #endif numtyp wd = (numtyp)1.0 - r/coeffw; + const numtyp qj = extra[j].x; + unsigned int tag1=itag, tag2=jtag; if (tag1 > tag2) { tag1 = jtag; tag2 = itag; diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index 2220a3663d..ca955b24f2 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -63,6 +63,10 @@ class DPDCharged : public BaseDPD { UCL_D_Vec coeff; UCL_D_Vec cutsq; + UCL_D_Vec cut_dpd; + UCL_D_Vec cut_dpdsq; + UCL_D_Vec cut_slater; + UCL_D_Vec cut_slatersq; /// Special LJ values UCL_D_Vec sp_lj, sp_sqrt; @@ -76,8 +80,8 @@ class DPDCharged : public BaseDPD { /// Only used for thermostat int _tstat_only; - /// pointer to host data of charge - double * + /// pointer to host data for atom charge + double *q; private: bool _allocated; diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index d4ab7f8e36..d6473c9f68 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -17,12 +17,12 @@ #include #include -#include "lal_dpd.h" +#include "lal_dpd_charged.h" using namespace std; using namespace LAMMPS_AL; -static DPD DPDCMF; +static DPDCharged DPDCMF; // --------------------------------------------------------------------------- // Allocate memory on host and device and copy constants to device diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index 60620efa24..e5ad7de8cc 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -277,6 +277,14 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) void PairDPDChargedGPU::init_style() { + if (comm->ghost_velocity == 0) + error->all(FLERR,"Pair dpd requires ghost atoms store velocity"); + if (!atom->q_flag) + error->all(FLERR,"Pair style coul/slater/long requires atom attribute q"); + // ensure use of KSpace long-range solver, set g_ewald + if (force->kspace == nullptr) error->all(FLERR, "Pair style requires a KSpace style"); + g_ewald = force->kspace->g_ewald; + // Repeat cutsq calculation because done after call to init_style double maxcut = -1.0; double mcut; @@ -319,13 +327,14 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag int *numneigh, int **firstneigh) { int i, j, ii, jj, jnum, itype, jtype; - double xtmp, ytmp, ztmp, delx, dely, delz, evdwl, fpair; + double qtmp, xtmp, ytmp, ztmp, delx, dely, delz, evdwl, ecoul, fpair; double vxtmp, vytmp, vztmp, delvx, delvy, delvz; double r2inv,forcedpd,forcecoul,factor_coul; double grij,expm2,prefactor,t,erfc; double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; int *ilist,*jlist,*numneigh,**firstneigh; double slater_term; + int *jlist; tagint itag, jtag; @@ -422,19 +431,26 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag forcecoul *= r2inv; } else forcecoul = 0.0; + fpair = forcedpd + forcecoul; + f[i][0] += delx * fpair; f[i][1] += dely * fpair; f[i][2] += delz * fpair; if (eflag) { - // unshifted eng of conservative term: - // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); - // eng shifted to 0.0 at cutoff - evdwl = 0.5 * a0[itype][jtype] * cut[itype][jtype] * wd * wd; - evdwl *= factor_dpd; + if (rsq < cut_dpdsq[itype][jtype]) { + // eng shifted to 0.0 at cutoff + evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; + evdwl *= factor_dpd; + } else evdwl = 0.0; + + if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); + } else ecoul = 0.0; } - if (evflag) ev_tally_full(i, evdwl, 0.0, fpair, delx, dely, delz); + if (evflag) ev_tally_full(i, evdwl, ecoul, fpair, delx, dely, delz); } } } From 7df21a0e7933e3273186b058c76ccf3bba8ac6b2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 31 May 2024 12:11:20 -0400 Subject: [PATCH 182/313] remove unused variables --- src/ML-IAP/mliap_descriptor_ace.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/ML-IAP/mliap_descriptor_ace.cpp b/src/ML-IAP/mliap_descriptor_ace.cpp index aa30ac3f81..fd059b822b 100644 --- a/src/ML-IAP/mliap_descriptor_ace.cpp +++ b/src/ML-IAP/mliap_descriptor_ace.cpp @@ -136,7 +136,6 @@ void MLIAPDescriptorACE::compute_descriptors(class MLIAPData *data) int nei = 0; int jtmp = 0; for (int iitmp = 0; iitmp < data->nlistatoms; iitmp++) { - int itmp = data->iatoms[iitmp]; jtmp = data->numneighs[iitmp]; nei = nei + jtmp; if (jtmp > max_jnum) { max_jnum = jtmp; } @@ -144,7 +143,6 @@ void MLIAPDescriptorACE::compute_descriptors(class MLIAPData *data) for (int ii = 0; ii < data->nlistatoms; ii++) { const int i = data->iatoms[ii]; - const int ielemx = data->ielems[ii]; const int jnum = data->numneighs[ii]; delete acemlimpl->ace; @@ -184,7 +182,6 @@ void MLIAPDescriptorACE::compute_forces(class MLIAPData *data) int nei = 0; int jtmp = 0; for (int iitmp = 0; iitmp < data->nlistatoms; iitmp++) { - int itmp = data->iatoms[iitmp]; jtmp = data->numneighs[iitmp]; nei = nei + jtmp; if (jtmp > max_jnum) { max_jnum = jtmp; } @@ -193,7 +190,6 @@ void MLIAPDescriptorACE::compute_forces(class MLIAPData *data) // BEGIN force loop for (int ii = 0; ii < data->nlistatoms; ii++) { const int i = data->iatoms[ii]; - const int ielem = data->ielems[ii]; delete acemlimpl->ace; acemlimpl->ace = new ACECTildeEvaluator(*acemlimpl->basis_set); acemlimpl->ace->compute_projections = 1; @@ -268,7 +264,6 @@ void MLIAPDescriptorACE::compute_force_gradients(class MLIAPData *data) int nei = 0; int jtmp = 0; for (int iitmp = 0; iitmp < data->nlistatoms; iitmp++) { - int itmp = data->iatoms[iitmp]; jtmp = data->numneighs[iitmp]; nei = nei + jtmp; if (jtmp > max_jnum) { max_jnum = jtmp; } @@ -276,7 +271,6 @@ void MLIAPDescriptorACE::compute_force_gradients(class MLIAPData *data) for (int ii = 0; ii < data->nlistatoms; ii++) { const int i = data->iatoms[ii]; - const int ielem = data->ielems[ii]; delete acemlimpl->ace; acemlimpl->ace = new ACECTildeEvaluator(*acemlimpl->basis_set); acemlimpl->ace->compute_projections = 1; @@ -327,14 +321,12 @@ void MLIAPDescriptorACE::compute_descriptor_gradients(class MLIAPData *data) int nei = 0; int jtmp = 0; for (int iitmp = 0; iitmp < data->nlistatoms; iitmp++) { - int itmp = data->iatoms[iitmp]; jtmp = data->numneighs[iitmp]; nei = nei + jtmp; if (jtmp > max_jnum) { max_jnum = jtmp; } } for (int ii = 0; ii < data->nlistatoms; ii++) { const int i = data->iatoms[ii]; - const int ielem = data->ielems[ii]; delete acemlimpl->ace; acemlimpl->ace = new ACECTildeEvaluator(*acemlimpl->basis_set); acemlimpl->ace->compute_projections = 1; @@ -349,7 +341,6 @@ void MLIAPDescriptorACE::compute_descriptor_gradients(class MLIAPData *data) } } - const int *const jlist = data->lmp_firstneigh[ii]; const int jnum = data->numneighs[ii]; acemlimpl->ace->resize_neighbours_cache(jnum); acemlimpl->ace->compute_atom(i, atom->x, atom->type, data->numneighs[ii], @@ -363,11 +354,6 @@ void MLIAPDescriptorACE::compute_descriptor_gradients(class MLIAPData *data) ij = ij0; for (int jj = 0; jj < data->numneighs[ii]; jj++) { - const int jt = data->jatoms[ij]; - - const int j = jlist[jj]; - int yoffset = ndescriptors; - int zoffset = ndescriptors * 2; for (int iicoeff = 0; iicoeff < ndescriptors; iicoeff++) { DOUBLE_TYPE fx_dB = acemlimpl->ace->neighbours_dB(iicoeff, jj, 0); DOUBLE_TYPE fy_dB = acemlimpl->ace->neighbours_dB(iicoeff, jj, 1); From 7258b2972a3d7e743ebbaf9135c02b20d0d67963 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 2 Jun 2024 04:39:08 -0400 Subject: [PATCH 183/313] small LAMMPS-gui build documentation updates --- doc/src/Tools.rst | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/doc/src/Tools.rst b/doc/src/Tools.rst index 49022a4ee9..a409c7a21e 100644 --- a/doc/src/Tools.rst +++ b/doc/src/Tools.rst @@ -709,8 +709,8 @@ CMake is required. The LAMMPS GUI has been successfully compiled and tested on: - Ubuntu Linux 20.04LTS x86_64 using GCC 9, Qt version 5.12 -- Fedora Linux 38 x86\_64 using GCC 13 and Clang 16, Qt version 5.15LTS -- Fedora Linux 38 x86\_64 using GCC 13, Qt version 6.5LTS +- Fedora Linux 40 x86\_64 using GCC 14 and Clang 17, Qt version 5.15LTS +- Fedora Linux 40 x86\_64 using GCC 14, Qt version 6.5LTS - Apple macOS 12 (Monterey) and macOS 13 (Ventura) with Xcode on arm64 and x86\_64, Qt version 5.15LTS - Windows 10 and 11 x86_64 with Visual Studio 2022 and Visual C++ 14.36, Qt version 5.15LTS - Windows 10 and 11 x86_64 with MinGW / GCC 10.0 cross-compiler on Fedora 38, Qt version 5.15LTS @@ -752,22 +752,23 @@ if necessary. When both, Qt5 and Qt6 are available, Qt6 will be preferred unless ``-D LAMMPS_GUI_USE_QT5=yes`` is set. It should be possible to build the LAMMPS GUI as a standalone -compilation (e.g. when LAMMPS has been compiled with traditional make), -then the CMake configuration needs to be told where to find the LAMMPS +compilation (e.g. when LAMMPS has been compiled with traditional make). +Then the CMake configuration needs to be told where to find the LAMMPS headers and the LAMMPS library, via ``-D LAMMPS_SOURCE_DIR=/path/to/lammps/src``. CMake will try to guess a build folder with the LAMMPS library from that path, but it can also be set with ``-D LAMMPS_LIB_DIR=/path/to/lammps/lib``. Rather than linking to the LAMMPS library during compilation, it is also -possible to compile the GUI with a plugin loader library that will load +possible to compile the GUI with a plugin loader that will load the LAMMPS library dynamically at runtime during the start of the GUI from a shared library; e.g. ``liblammps.so`` or ``liblammps.dylib`` or ``liblammps.dll`` (depending on the operating system). This has the -advantage that the LAMMPS library can be updated LAMMPS without having -to recompile the GUI. The ABI of the LAMMPS C-library interface is very -stable and generally backward compatible. This feature is enabled by -setting ``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D +advantage that the LAMMPS library can be built from updated or modified +LAMMPS source without having to recompile the GUI. The ABI of the +LAMMPS C-library interface is very stable and generally backward +compatible. This feature is enabled by setting +``-D LAMMPS_GUI_USE_PLUGIN=on`` and then ``-D LAMMPS_PLUGINLIB_DIR=/path/to/lammps/plugin/loader``. Typically, this would be the ``examples/COUPLE/plugin`` folder of the LAMMPS distribution. @@ -779,8 +780,8 @@ macOS """"" When building on macOS, the build procedure will try to manufacture a -drag-n-drop installer, LAMMPS-macOS-multiarch.dmg, when using the 'dmg' -target (i.e. ``cmake --build --target dmg`` or ``make dmg``. +drag-n-drop installer, ``LAMMPS-macOS-multiarch.dmg``, when using the +'dmg' target (i.e. ``cmake --build --target dmg`` or ``make dmg``. To build multi-arch executables that will run on both, arm64 and x86_64 architectures natively, it is necessary to set the CMake variable ``-D @@ -820,11 +821,11 @@ and LAMMPS GUI can be launched from anywhere from the command line. The standard CMake build procedure can be applied and the ``mingw-cross.cmake`` preset used. By using ``mingw64-cmake`` the CMake command will automatically include a suitable CMake toolset file (the -regular cmake command can be used after that). After building the -libraries and executables, you can build the target 'zip' -(i.e. ``cmake --build --target zip`` or ``make zip`` -to stage all installed files into a LAMMPS_GUI folder and then -run a script to copy all required dependencies, some other files, +regular cmake command can be used after that to modify the configuration +settings, if needed). After building the libraries and executables, +you can build the target 'zip' (i.e. ``cmake --build --target zip`` +or ``make zip`` to stage all installed files into a LAMMPS_GUI folder +and then run a script to copy all required dependencies, some other files, and create a zip file from it. Linux From 34a037ccfb228f8a3cd6f9e6543fea1bba7bacc9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 2 Jun 2024 09:41:58 -0400 Subject: [PATCH 184/313] workaround for xdg-open and incompatible shared libs --- cmake/packaging/build_linux_tgz.sh | 2 + cmake/packaging/linux_wrapper.sh | 14 +- cmake/packaging/xdg-open | 1074 ++++++++++++++++++++++++++++ 3 files changed, 1084 insertions(+), 6 deletions(-) create mode 100755 cmake/packaging/xdg-open diff --git a/cmake/packaging/build_linux_tgz.sh b/cmake/packaging/build_linux_tgz.sh index 48e3017f61..ea2fb7fb10 100755 --- a/cmake/packaging/build_linux_tgz.sh +++ b/cmake/packaging/build_linux_tgz.sh @@ -59,12 +59,14 @@ done echo "Set up wrapper script" MYDIR=$(dirname "$0") +cp ${MYDIR}/xdg-open ${DESTDIR}/bin cp ${MYDIR}/linux_wrapper.sh ${DESTDIR}/bin for s in ${DESTDIR}/bin/* do \ EXE=$(basename $s) test ${EXE} = linux_wrapper.sh && continue test ${EXE} = qt.conf && continue + test ${EXE} = xdg-open && continue ln -s bin/linux_wrapper.sh ${DESTDIR}/${EXE} done diff --git a/cmake/packaging/linux_wrapper.sh b/cmake/packaging/linux_wrapper.sh index a679030188..b777c09eb1 100755 --- a/cmake/packaging/linux_wrapper.sh +++ b/cmake/packaging/linux_wrapper.sh @@ -4,15 +4,17 @@ # reset locale to avoid problems with decimal numbers export LC_ALL=C -BASEDIR=$(dirname "$0") -EXENAME=$(basename "$0") +BASEDIR="$(dirname "$0")" +EXENAME="$(basename "$0")" + +PATH="${BASEDIR}/bin:${PATH}" # append to LD_LIBRARY_PATH to prefer local (newer) libs -LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASEDIR}/lib +LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${BASEDIR}/lib" # set some environment variables for LAMMPS etc. -LAMMPS_POTENTIALS=${BASEDIR}/share/lammps/potentials -MSI2LMP_LIBRARY=${BASEDIR}/share/lammps/frc_files -export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY +LAMMPS_POTENTIALS="${BASEDIR}/share/lammps/potentials" +MSI2LMP_LIBRARY="${BASEDIR}/share/lammps/frc_files" +export LD_LIBRARY_PATH LAMMPS_POTENTIALS MSI2LMP_LIBRARY PATH exec "${BASEDIR}/bin/${EXENAME}" "$@" diff --git a/cmake/packaging/xdg-open b/cmake/packaging/xdg-open new file mode 100755 index 0000000000..d282bb3d11 --- /dev/null +++ b/cmake/packaging/xdg-open @@ -0,0 +1,1074 @@ +#!/usr/bin/sh +#--------------------------------------------- +# xdg-open +# +# Utility script to open a URL in the registered default application. +# +# Refer to the usage() function below for usage. +# +# Copyright 2009-2010, Fathi Boudra +# Copyright 2009-2016, Rex Dieter +# Copyright 2006, Kevin Krammer +# Copyright 2006, Jeremy White +# +# LICENSE: +# +# 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. +# +#--------------------------------------------- + +NEW_LIBRARY_PATH="/usr/local/lib64" +for s in $(echo $LD_LIBRARY_PATH | sed -e 's/:/ /g') +do \ + echo $s | grep LAMMPS_GUI > /dev/null || NEW_LIBRARY_PATH="${NEW_LIBRARY_PATH}:$s" +done +export LD_LIBRARY_PATH="${NEW_LIBRARY_PATH}" +unset NEW_LIBRARY_PATH + +manualpage() +{ +cat << _MANUALPAGE +Name + + xdg-open - opens a file or URL in the user's preferred + application + +Synopsis + + xdg-open { file | URL } + + xdg-open { --help | --manual | --version } + +Description + + xdg-open opens a file or URL in the user's preferred + application. If a URL is provided the URL will be opened in the + user's preferred web browser. If a file is provided the file + will be opened in the preferred application for files of that + type. xdg-open supports file, ftp, http and https URLs. + + xdg-open is for use inside a desktop session only. It is not + recommended to use xdg-open as root. + +Options + + --help + Show command synopsis. + + --manual + Show this manual page. + + --version + Show the xdg-utils version information. + +Exit Codes + + An exit code of 0 indicates success while a non-zero exit code + indicates failure. The following failure codes can be returned: + + 1 + Error in command line syntax. + + 2 + One of the files passed on the command line did not + exist. + + 3 + A required tool could not be found. + + 4 + The action failed. + +See Also + + xdg-mime(1), xdg-settings(1), MIME applications associations + specification + +Examples + +xdg-open 'http://www.freedesktop.org/' + + Opens the freedesktop.org website in the user's default + browser. + +xdg-open /tmp/foobar.png + + Opens the PNG image file /tmp/foobar.png in the user's default + image viewing application. +_MANUALPAGE +} + +usage() +{ +cat << _USAGE + xdg-open - opens a file or URL in the user's preferred + application + +Synopsis + + xdg-open { file | URL } + + xdg-open { --help | --manual | --version } + +_USAGE +} + +#@xdg-utils-common@ + +#---------------------------------------------------------------------------- +# Common utility functions included in all XDG wrapper scripts +#---------------------------------------------------------------------------- + +DEBUG() +{ + [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0; + [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0; + shift + echo "$@" >&2 +} + +# This handles backslashes but not quote marks. +first_word() +{ + read first rest + echo "$first" +} + +#------------------------------------------------------------- +# map a binary to a .desktop file +binary_to_desktop_file() +{ + search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + binary="`which "$1"`" + binary="`readlink -f "$binary"`" + base="`basename "$binary"`" + IFS=: + for dir in $search; do + unset IFS + [ "$dir" ] || continue + [ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue + for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do + [ -r "$file" ] || continue + # Check to make sure it's worth the processing. + grep -q "^Exec.*$base" "$file" || continue + # Make sure it's a visible desktop file (e.g. not "preferred-web-browser.desktop"). + grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue + command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`" + command="`which "$command"`" + if [ x"`readlink -f "$command"`" = x"$binary" ]; then + # Fix any double slashes that got added path composition + echo "$file" | sed -e 's,//*,/,g' + return + fi + done + done +} + +#------------------------------------------------------------- +# map a .desktop file to a binary +desktop_file_to_binary() +{ + search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + desktop="`basename "$1"`" + IFS=: + for dir in $search; do + unset IFS + [ "$dir" ] && [ -d "$dir/applications" ] || [ -d "$dir/applnk" ] || continue + # Check if desktop file contains - + if [ "${desktop#*-}" != "$desktop" ]; then + vendor=${desktop%-*} + app=${desktop#*-} + if [ -r $dir/applications/$vendor/$app ]; then + file_path=$dir/applications/$vendor/$app + elif [ -r $dir/applnk/$vendor/$app ]; then + file_path=$dir/applnk/$vendor/$app + fi + fi + if test -z "$file_path" ; then + for indir in "$dir"/applications/ "$dir"/applications/*/ "$dir"/applnk/ "$dir"/applnk/*/; do + file="$indir/$desktop" + if [ -r "$file" ]; then + file_path=$file + break + fi + done + fi + if [ -r "$file_path" ]; then + # Remove any arguments (%F, %f, %U, %u, etc.). + command="`grep -E "^Exec(\[[^]=]*])?=" "$file_path" | cut -d= -f 2- | first_word`" + command="`which "$command"`" + readlink -f "$command" + return + fi + done +} + +#------------------------------------------------------------- +# Exit script on successfully completing the desired operation + +exit_success() +{ + if [ $# -gt 0 ]; then + echo "$@" + echo + fi + + exit 0 +} + + +#----------------------------------------- +# Exit script on malformed arguments, not enough arguments +# or missing required option. +# prints usage information + +exit_failure_syntax() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + echo "Try 'xdg-open --help' for more information." >&2 + else + usage + echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info." + fi + + exit 1 +} + +#------------------------------------------------------------- +# Exit script on missing file specified on command line + +exit_failure_file_missing() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + fi + + exit 2 +} + +#------------------------------------------------------------- +# Exit script on failure to locate necessary tool applications + +exit_failure_operation_impossible() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + fi + + exit 3 +} + +#------------------------------------------------------------- +# Exit script on failure returned by a tool application + +exit_failure_operation_failed() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + fi + + exit 4 +} + +#------------------------------------------------------------ +# Exit script on insufficient permission to read a specified file + +exit_failure_file_permission_read() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + fi + + exit 5 +} + +#------------------------------------------------------------ +# Exit script on insufficient permission to write a specified file + +exit_failure_file_permission_write() +{ + if [ $# -gt 0 ]; then + echo "xdg-open: $@" >&2 + fi + + exit 6 +} + +check_input_file() +{ + if [ ! -e "$1" ]; then + exit_failure_file_missing "file '$1' does not exist" + fi + if [ ! -r "$1" ]; then + exit_failure_file_permission_read "no permission to read file '$1'" + fi +} + +check_vendor_prefix() +{ + file_label="$2" + [ -n "$file_label" ] || file_label="filename" + file=`basename "$1"` + case "$file" in + [[:alpha:]]*-*) + return + ;; + esac + + echo "xdg-open: $file_label '$file' does not have a proper vendor prefix" >&2 + echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2 + echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2 + echo "Use --novendor to override or 'xdg-open --manual' for additional info." >&2 + exit 1 +} + +check_output_file() +{ + # if the file exists, check if it is writeable + # if it does not exists, check if we are allowed to write on the directory + if [ -e "$1" ]; then + if [ ! -w "$1" ]; then + exit_failure_file_permission_write "no permission to write to file '$1'" + fi + else + DIR=`dirname "$1"` + if [ ! -w "$DIR" ] || [ ! -x "$DIR" ]; then + exit_failure_file_permission_write "no permission to create file '$1'" + fi + fi +} + +#---------------------------------------- +# Checks for shared commands, e.g. --help + +check_common_commands() +{ + while [ $# -gt 0 ] ; do + parm="$1" + shift + + case "$parm" in + --help) + usage + echo "Use 'man xdg-open' or 'xdg-open --manual' for additional info." + exit_success + ;; + + --manual) + manualpage + exit_success + ;; + + --version) + echo "xdg-open 1.1.3+" + exit_success + ;; + esac + done +} + +check_common_commands "$@" + +[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL; +if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then + # Be silent + xdg_redirect_output=" > /dev/null 2> /dev/null" +else + # All output to stderr + xdg_redirect_output=" >&2" +fi + +#-------------------------------------- +# Checks for known desktop environments +# set variable DE to the desktop environments name, lowercase + +detectDE() +{ + # see https://bugs.freedesktop.org/show_bug.cgi?id=34164 + unset GREP_OPTIONS + + if [ -n "${XDG_CURRENT_DESKTOP}" ]; then + case "${XDG_CURRENT_DESKTOP}" in + # only recently added to menu-spec, pre-spec X- still in use + Cinnamon|X-Cinnamon) + DE=cinnamon; + ;; + ENLIGHTENMENT) + DE=enlightenment; + ;; + # GNOME, GNOME-Classic:GNOME, or GNOME-Flashback:GNOME + GNOME*) + DE=gnome; + ;; + KDE) + DE=kde; + ;; + DEEPIN|Deepin|deepin) + DE=deepin; + ;; + LXDE) + DE=lxde; + ;; + LXQt) + DE=lxqt; + ;; + MATE) + DE=mate; + ;; + XFCE) + DE=xfce + ;; + X-Generic) + DE=generic + ;; + esac + fi + + if [ x"$DE" = x"" ]; then + # classic fallbacks + if [ x"$KDE_FULL_SESSION" != x"" ]; then DE=kde; + elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; + elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; + elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; + elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce + elif echo $DESKTOP | grep -q '^Enlightenment'; then DE=enlightenment; + elif [ x"$LXQT_SESSION_CONFIG" != x"" ]; then DE=lxqt; + fi + fi + + if [ x"$DE" = x"" ]; then + # fallback to checking $DESKTOP_SESSION + case "$DESKTOP_SESSION" in + gnome) + DE=gnome; + ;; + LXDE|Lubuntu) + DE=lxde; + ;; + MATE) + DE=mate; + ;; + xfce|xfce4|'Xfce Session') + DE=xfce; + ;; + esac + fi + + if [ x"$DE" = x"" ]; then + # fallback to uname output for other platforms + case "$(uname 2>/dev/null)" in + CYGWIN*) + DE=cygwin; + ;; + Darwin) + DE=darwin; + ;; + esac + fi + + if [ x"$DE" = x"gnome" ]; then + # gnome-default-applications-properties is only available in GNOME 2.x + # but not in GNOME 3.x + which gnome-default-applications-properties > /dev/null 2>&1 || DE="gnome3" + fi + + if [ -f "$XDG_RUNTIME_DIR/flatpak-info" ]; then + DE="flatpak" + fi +} + +#---------------------------------------------------------------------------- +# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4 +# It also always returns 1 in KDE 3.4 and earlier +# Simply return 0 in such case + +kfmclient_fix_exit_code() +{ + version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'` + major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'` + minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'` + release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'` + test "$major" -gt 3 && return $1 + test "$minor" -gt 5 && return $1 + test "$release" -gt 4 && return $1 + return 0 +} + +#---------------------------------------------------------------------------- +# Returns true if there is a graphical display attached. + +has_display() +{ + if [ -n "$DISPLAY" ] || [ -n "$WAYLAND_DISPLAY" ]; then + return 0 + else + return 1 + fi +} + +# This handles backslashes but not quote marks. +last_word() +{ + read first rest + echo "$rest" +} + +# Get the value of a key in a desktop file's Desktop Entry group. +# Example: Use get_key foo.desktop Exec +# to get the values of the Exec= key for the Desktop Entry group. +get_key() +{ + local file="${1}" + local key="${2}" + local desktop_entry="" + + IFS_="${IFS}" + IFS="" + while read line + do + case "$line" in + "[Desktop Entry]") + desktop_entry="y" + ;; + # Reset match flag for other groups + "["*) + desktop_entry="" + ;; + "${key}="*) + # Only match Desktop Entry group + if [ -n "${desktop_entry}" ] + then + echo "${line}" | cut -d= -f 2- + fi + esac + done < "${file}" + IFS="${IFS_}" +} + +# Returns true if argument is a file:// URL or path +is_file_url_or_path() +{ + if echo "$1" | grep -q '^file://' \ + || ! echo "$1" | grep -Eq '^[[:alpha:]][[:alpha:][:digit:]+\.\-]*:'; then + return 0 + else + return 1 + fi +} + +# If argument is a file URL, convert it to a (percent-decoded) path. +# If not, leave it as it is. +file_url_to_path() +{ + local file="$1" + if echo "$file" | grep -q '^file://\(localhost\)\?/'; then + file=${file#file://localhost} + file=${file#file://} + file=${file%%#*} + file=$(echo "$file" | sed -r 's/\?.*$//') + local printf=printf + if [ -x /usr/bin/printf ]; then + printf=/usr/bin/printf + fi + file=$($printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\\x\1@g')") + fi + echo "$file" +} + +open_cygwin() +{ + cygstart "$1" + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_darwin() +{ + open "$1" + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_kde() +{ + if [ -n "${KDE_SESSION_VERSION}" ]; then + case "${KDE_SESSION_VERSION}" in + 4) + kde-open "$1" + ;; + 5) + kde-open${KDE_SESSION_VERSION} "$1" + ;; + esac + else + kfmclient exec "$1" + kfmclient_fix_exit_code $? + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_deepin() +{ + if dde-open -version >/dev/null 2>&1; then + dde-open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_gnome3() +{ + if gio help open 2>/dev/null 1>&2; then + gio open "$1" + elif gvfs-open --help 2>/dev/null 1>&2; then + gvfs-open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_gnome() +{ + if gio help open 2>/dev/null 1>&2; then + gio open "$1" + elif gvfs-open --help 2>/dev/null 1>&2; then + gvfs-open "$1" + elif gnome-open --help 2>/dev/null 1>&2; then + gnome-open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_mate() +{ + if gio help open 2>/dev/null 1>&2; then + gio open "$1" + elif gvfs-open --help 2>/dev/null 1>&2; then + gvfs-open "$1" + elif mate-open --help 2>/dev/null 1>&2; then + mate-open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_xfce() +{ + if exo-open --help 2>/dev/null 1>&2; then + exo-open "$1" + elif gio help open 2>/dev/null 1>&2; then + gio open "$1" + elif gvfs-open --help 2>/dev/null 1>&2; then + gvfs-open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_enlightenment() +{ + if enlightenment_open --help 2>/dev/null 1>&2; then + enlightenment_open "$1" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_flatpak() +{ + gdbus call --session \ + --dest org.freedesktop.portal.Desktop \ + --object-path /org/freedesktop/portal/desktop \ + --method org.freedesktop.portal.OpenURI.OpenURI \ + "" "$1" {} + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +#----------------------------------------- +# Recursively search .desktop file + +search_desktop_file() +{ + local default="$1" + local dir="$2" + local target="$3" + + local file="" + # look for both vendor-app.desktop, vendor/app.desktop + if [ -r "$dir/$default" ]; then + file="$dir/$default" + elif [ -r "$dir/`echo $default | sed -e 's|-|/|'`" ]; then + file="$dir/`echo $default | sed -e 's|-|/|'`" + fi + + if [ -r "$file" ] ; then + command="$(get_key "${file}" "Exec" | first_word)" + command_exec=`which $command 2>/dev/null` + icon="$(get_key "${file}" "Icon")" + # FIXME: Actually LC_MESSAGES should be used as described in + # http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s04.html + localised_name="$(get_key "${file}" "Name")" + set -- $(get_key "${file}" "Exec" | last_word) + # We need to replace any occurrence of "%f", "%F" and + # the like by the target file. We examine each + # argument and append the modified argument to the + # end then shift. + local args=$# + local replaced=0 + while [ $args -gt 0 ]; do + case $1 in + %[c]) + replaced=1 + arg="${localised_name}" + shift + set -- "$@" "$arg" + ;; + %[fFuU]) + replaced=1 + arg="$target" + shift + set -- "$@" "$arg" + ;; + %[i]) + replaced=1 + shift + set -- "$@" "--icon" "$icon" + ;; + *) + arg="$1" + shift + set -- "$@" "$arg" + ;; + esac + args=$(( $args - 1 )) + done + [ $replaced -eq 1 ] || set -- "$@" "$target" + "$command_exec" "$@" + + if [ $? -eq 0 ]; then + exit_success + fi + fi + + for d in "$dir/"*/; do + [ -d "$d" ] && search_desktop_file "$default" "$d" "$target" + done +} + + +open_generic_xdg_mime() +{ + filetype="$2" + default=`xdg-mime query default "$filetype"` + if [ -n "$default" ] ; then + xdg_user_dir="$XDG_DATA_HOME" + [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share" + + xdg_system_dirs="$XDG_DATA_DIRS" + [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/ + +DEBUG 3 "$xdg_user_dir:$xdg_system_dirs" + for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do + search_desktop_file "$default" "$x/applications/" "$1" + done + fi +} + +open_generic_xdg_file_mime() +{ + filetype=`xdg-mime query filetype "$1" | sed "s/;.*//"` + open_generic_xdg_mime "$1" "$filetype" +} + +open_generic_xdg_x_scheme_handler() +{ + scheme="`echo $1 | sed -n 's/\(^[[:alnum:]+\.-]*\):.*$/\1/p'`" + if [ -n $scheme ]; then + filetype="x-scheme-handler/$scheme" + open_generic_xdg_mime "$1" "$filetype" + fi +} + +has_single_argument() +{ + test $# = 1 +} + +open_envvar() +{ + local oldifs="$IFS" + local browser browser_with_arg + + IFS=":" + for browser in $BROWSER; do + IFS="$oldifs" + + if [ -z "$browser" ]; then + continue + fi + + if echo "$browser" | grep -q %s; then + # Avoid argument injection. + # See https://bugs.freedesktop.org/show_bug.cgi?id=103807 + # URIs don't have IFS characters spaces anyway. + has_single_argument $1 && $(printf "$browser" "$1") + else + $browser "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + fi + done +} + +open_generic() +{ + if is_file_url_or_path "$1"; then + local file="$(file_url_to_path "$1")" + + check_input_file "$file" + + if has_display; then + filetype=`xdg-mime query filetype "$file" | sed "s/;.*//"` + open_generic_xdg_mime "$file" "$filetype" + fi + + if which run-mailcap 2>/dev/null 1>&2; then + run-mailcap --action=view "$file" + if [ $? -eq 0 ]; then + exit_success + fi + fi + + if has_display && mimeopen -v 2>/dev/null 1>&2; then + mimeopen -L -n "$file" + if [ $? -eq 0 ]; then + exit_success + fi + fi + fi + + if has_display; then + open_generic_xdg_x_scheme_handler "$1" + fi + + if [ -n "$BROWSER" ]; then + open_envvar "$1" + fi + + # if BROWSER variable is not set, check some well known browsers instead + if [ x"$BROWSER" = x"" ]; then + BROWSER=www-browser:links2:elinks:links:lynx:w3m + if has_display; then + BROWSER=x-www-browser:firefox:iceweasel:seamonkey:mozilla:epiphany:konqueror:chromium:chromium-browser:google-chrome:$BROWSER + fi + fi + + open_envvar "$1" + + exit_failure_operation_impossible "no method available for opening '$1'" +} + +open_lxde() +{ + + # pcmanfm only knows how to handle file:// urls and filepaths, it seems. + if pcmanfm --help >/dev/null 2>&1 && is_file_url_or_path "$1"; then + local file="$(file_url_to_path "$1")" + + # handle relative paths + if ! echo "$file" | grep -q ^/; then + file="$(pwd)/$file" + fi + + pcmanfm "$file" + else + open_generic "$1" + fi + + if [ $? -eq 0 ]; then + exit_success + else + exit_failure_operation_failed + fi +} + +open_lxqt() +{ + open_generic "$1" +} + +[ x"$1" != x"" ] || exit_failure_syntax + +url= +while [ $# -gt 0 ] ; do + parm="$1" + shift + + case "$parm" in + -*) + exit_failure_syntax "unexpected option '$parm'" + ;; + + *) + if [ -n "$url" ] ; then + exit_failure_syntax "unexpected argument '$parm'" + fi + url="$parm" + ;; + esac +done + +if [ -z "${url}" ] ; then + exit_failure_syntax "file or URL argument missing" +fi + +detectDE + +if [ x"$DE" = x"" ]; then + DE=generic +fi + +DEBUG 2 "Selected DE $DE" + +# sanitize BROWSER (avoid calling ourselves in particular) +case "${BROWSER}" in + *:"xdg-open"|"xdg-open":*) + BROWSER=$(echo $BROWSER | sed -e 's|:xdg-open||g' -e 's|xdg-open:||g') + ;; + "xdg-open") + BROWSER= + ;; +esac + +case "$DE" in + kde) + open_kde "$url" + ;; + + deepin) + open_deepin "$url" + ;; + + gnome3|cinnamon) + open_gnome3 "$url" + ;; + + gnome) + open_gnome "$url" + ;; + + mate) + open_mate "$url" + ;; + + xfce) + open_xfce "$url" + ;; + + lxde) + open_lxde "$url" + ;; + + lxqt) + open_lxqt "$url" + ;; + + enlightenment) + open_enlightenment "$url" + ;; + + cygwin) + open_cygwin "$url" + ;; + + darwin) + open_darwin "$url" + ;; + + flatpak) + open_flatpak "$url" + ;; + + generic) + open_generic "$url" + ;; + + *) + exit_failure_operation_impossible "no method available for opening '$url'" + ;; +esac From 118fa8e209c7259f810846e76a385336817a51fb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 3 Jun 2024 07:47:59 -0400 Subject: [PATCH 185/313] must reset "eval_in_progress[]" flags to avoid bogus circular dependency errors --- src/input.cpp | 1 + src/variable.cpp | 11 +++++++++++ src/variable.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/input.cpp b/src/input.cpp index c9a3cf5f52..826b1821d5 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -888,6 +888,7 @@ void Input::clear() lmp->destroy(); lmp->create(); lmp->post_create(); + variable->clear_in_progress(); } /* ---------------------------------------------------------------------- */ diff --git a/src/variable.cpp b/src/variable.cpp index 1de4533267..f381eecde6 100644 --- a/src/variable.cpp +++ b/src/variable.cpp @@ -879,6 +879,17 @@ void Variable::purge_atomfile() if (style[i] == ATOMFILE) remove(i); } +/* ---------------------------------------------------------------------- + called by "clear" command to reset all "in_progress" state variables + to avoid spurious "variable has circular dependency" issues +------------------------------------------------------------------------- */ + +void Variable::clear_in_progress() +{ + for (int i = 0; i < nvar; ++i) + eval_in_progress[i] = 0; +} + /* ---------------------------------------------------------------------- called by python command in input script simply pass input script line args to Python class diff --git a/src/variable.h b/src/variable.h index f4a5e511c0..6aeba848a8 100644 --- a/src/variable.h +++ b/src/variable.h @@ -35,6 +35,7 @@ class Variable : protected Pointers { void set_arrays(int); void python_command(int, char **); void purge_atomfile(); + void clear_in_progress(); int equalstyle(int); int atomstyle(int); From b187001f38b9481fd65ab6e0aa44134380350d67 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Tue, 4 Jun 2024 19:13:56 +0200 Subject: [PATCH 186/313] atom charge and dpd/slater cutoff passing --- lib/gpu/lal_dpd_charged.cpp | 19 +++++++++++++++---- lib/gpu/lal_dpd_charged_ext.cpp | 13 +++++++++---- src/GPU/pair_dpd_charged_gpu.cpp | 11 +++++++++-- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index a9b1aa886f..9f7570403a 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -46,7 +46,9 @@ template int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, - double **host_cut, double *host_special_lj, + double **host_cut, + double **host_cut_dpd, **host_cut_slater, + double *host_special_lj, const bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, @@ -70,7 +72,7 @@ int DPDChargedT::init(const int ntypes, int success; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd,"k_dpd",onetype); + gpu_split,_screen,dpd,"k_dpd_charged",onetype); if (success!=0) return success; @@ -99,6 +101,15 @@ int DPDChargedT::init(const int ntypes, cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); this->atom->type_pack1(ntypes,lj_types,cutsq,host_rsq,host_cutsq); + cut_dpd.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); + this->atom->type_pack1(ntypes,lj_types,cut_dpdsq,host_rsq,host_cut_dpd); + + cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); + this->atom->type_pack1(ntypes,lj_types,cutsq,host_rsq,host_cutsq); + + scale.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); + this->atom->type_pack1(ntypes,lj_types,scale,host_write,host_scale); + double special_sqrt[4]; special_sqrt[0] = sqrt(host_special_lj[0]); special_sqrt[1] = sqrt(host_special_lj[1]); @@ -196,12 +207,12 @@ int DPDChargedT::loop(const int eflag, const int vflag) { template void DPDChargedT::update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut) + double **host_sigma, double **host_cut, double **host_cut_dpd, **host_cut_slater) { UCL_H_Vec host_write(_lj_types*_lj_types*32,*(this->ucl_device), UCL_WRITE_ONLY); this->atom->type_pack4(ntypes,_lj_types,coeff,host_write,host_a0,host_gamma, - host_sigma,host_cut); + host_sigma,host_cut,host_cut_dpd, host_cut_slater); } // --------------------------------------------------------------------------- diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index d6473c9f68..cc7642fcf2 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -29,6 +29,7 @@ static DPDCharged DPDCMF; // --------------------------------------------------------------------------- int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut, + double **host_cut_dpd, double **host_cut_slater, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen) { @@ -55,7 +56,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, int init_ok=0; if (world_me==0) init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, - host_cut, special_lj, false, inum, nall, max_nbors, + host_cut, host_cut_dpd, host_cut_slater, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen); DPDCMF.device->world_barrier(); @@ -73,7 +74,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, } if (gpu_rank==i && world_me!=0) init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, - host_cut, special_lj, false, inum, nall, max_nbors, + host_cut, host_cut_dpd, host_cut_slater, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen); DPDCMF.device->serialize_init(); @@ -121,9 +122,13 @@ void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, } void dpd_charged_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut) + double **host_sigma, double **host_cut, double **host_cut_dpd, **host_cut_slater) { - DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut); + DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut, host_cut_dpd, host_cut_slater,); +} + +void dpd_charged_gpu_get_extra_data(double *host_q) { + DPDCMF.get_extra_data(host_q); } double dpd_charged_gpu_bytes() { diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index e5ad7de8cc..c7a1fa5902 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -39,7 +39,7 @@ using namespace EwaldConst; // External functions from cuda library for atom decomposition int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut, double *special_lj, const int inum, + double **host_sigma, double **host_cut, double **host_cut_dpd, double **host_cut_slater, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen); void dpd_charged_gpu_clear(); @@ -56,6 +56,9 @@ void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, const double cpu_time, bool &success, tagint *tag, double **host_v, const double dtinvsqrt, const int seed, const int timestep, const int nlocal, double *boxlo, double *prd); + +void dpd_charged_gpu_get_extra_data(double *host_q); + double dpd_charged_gpu_bytes(); static constexpr double EPSILON = 1.0e-10; @@ -232,6 +235,10 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) bool success = true; int *ilist, *numneigh, **firstneigh; + + double *charge = atom->q; + dpd_charged_gpu_get_extra_data(charge); + if (gpu_mode != GPU_FORCE) { double sublo[3], subhi[3]; if (domain->triclinic == 0) { @@ -305,7 +312,7 @@ void PairDPDChargedGPU::init_style() if (atom->molecular != Atom::ATOMIC) maxspecial = atom->maxspecial; int mnf = 5e-2 * neighbor->oneatom; int success = - dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, force->special_lj, atom->nlocal, + dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, cut_dpd, cut_slater, force->special_lj, atom->nlocal, atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen); GPU_EXTRA::check_flag(success, error, world); From 984d39366e3bae16392547d52e6cbf145681e8db Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 4 Jun 2024 13:57:51 -0600 Subject: [PATCH 187/313] Add Kokkos version of pair_style soft --- src/KOKKOS/Install.sh | 2 + src/KOKKOS/pair_soft_kokkos.cpp | 255 ++++++++++++++++++++++++++++++++ src/KOKKOS/pair_soft_kokkos.h | 114 ++++++++++++++ src/pair_soft.cpp | 2 + src/pair_soft.h | 2 +- 5 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 src/KOKKOS/pair_soft_kokkos.cpp create mode 100644 src/KOKKOS/pair_soft_kokkos.h diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 75949c35d8..2c30416729 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -363,6 +363,8 @@ action pair_reaxff_kokkos.h pair_reaxff.h action pair_snap_kokkos_impl.h pair_snap.cpp action pair_snap_kokkos.cpp pair_snap.cpp action pair_snap_kokkos.h pair_snap.h +action pair_soft_kokkos.cpp +action pair_soft_kokkos.h action pair_sw_kokkos.cpp pair_sw.cpp action pair_sw_kokkos.h pair_sw.h action pair_table_kokkos.cpp diff --git a/src/KOKKOS/pair_soft_kokkos.cpp b/src/KOKKOS/pair_soft_kokkos.cpp new file mode 100644 index 0000000000..2b36c22486 --- /dev/null +++ b/src/KOKKOS/pair_soft_kokkos.cpp @@ -0,0 +1,255 @@ +// clang-format off +/* ---------------------------------------------------------------------- + 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 "pair_soft_kokkos.h" + +#include "atom_kokkos.h" +#include "atom_masks.h" +#include "error.h" +#include "force.h" +#include "kokkos.h" +#include "math_const.h" +#include "memory_kokkos.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "respa.h" +#include "update.h" + +using namespace LAMMPS_NS; +using namespace MathConst; + +/* ---------------------------------------------------------------------- */ + +template +PairSoftKokkos::PairSoftKokkos(LAMMPS *lmp) : PairSoft(lmp) +{ + respa_enable = 0; + + kokkosable = 1; + atomKK = (AtomKokkos *) atom; + execution_space = ExecutionSpaceFromDevice::space; + datamask_read = X_MASK | F_MASK | TYPE_MASK | ENERGY_MASK | VIRIAL_MASK; + datamask_modify = F_MASK | ENERGY_MASK | VIRIAL_MASK; +} + +/* ---------------------------------------------------------------------- */ + +template +PairSoftKokkos::~PairSoftKokkos() +{ + if (copymode) return; + + if (allocated) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->destroy_kokkos(k_cutsq,cutsq); + } +} + +/* ---------------------------------------------------------------------- */ + +template +void PairSoftKokkos::compute(int eflag_in, int vflag_in) +{ + eflag = eflag_in; + vflag = vflag_in; + + if (neighflag == FULL) no_virial_fdotr_compute = 1; + + ev_init(eflag,vflag,0); + + // reallocate per-atom arrays if necessary + + if (eflag_atom) { + memoryKK->destroy_kokkos(k_eatom,eatom); + memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"pair:eatom"); + d_eatom = k_eatom.view(); + } + if (vflag_atom) { + memoryKK->destroy_kokkos(k_vatom,vatom); + memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom"); + d_vatom = k_vatom.view(); + } + + atomKK->sync(execution_space,datamask_read); + k_cutsq.template sync(); + k_params.template sync(); + if (eflag || vflag) atomKK->modified(execution_space,datamask_modify); + else atomKK->modified(execution_space,F_MASK); + + x = atomKK->k_x.view(); + c_x = atomKK->k_x.view(); + f = atomKK->k_f.view(); + type = atomKK->k_type.view(); + nlocal = atom->nlocal; + nall = atom->nlocal + atom->nghost; + newton_pair = force->newton_pair; + special_lj[0] = force->special_lj[0]; + special_lj[1] = force->special_lj[1]; + special_lj[2] = force->special_lj[2]; + special_lj[3] = force->special_lj[3]; + + // loop over neighbors of my atoms + + copymode = 1; + + EV_FLOAT ev = pair_compute,void >(this,(NeighListKokkos*)list); + + if (eflag_global) eng_vdwl += ev.evdwl; + if (vflag_global) { + virial[0] += ev.v[0]; + virial[1] += ev.v[1]; + virial[2] += ev.v[2]; + virial[3] += ev.v[3]; + virial[4] += ev.v[4]; + virial[5] += ev.v[5]; + } + + if (eflag_atom) { + k_eatom.template modify(); + k_eatom.template sync(); + } + + if (vflag_atom) { + k_vatom.template modify(); + k_vatom.template sync(); + } + + if (vflag_fdotr) pair_virial_fdotr_compute(this); + + copymode = 0; +} + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairSoftKokkos:: +compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { + (void) i; + const F_FLOAT r = sqrt(rsq); + const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut; + const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor; + const F_FLOAT arg = MY_PI*r/cut_ij; + + F_FLOAT fpair = 0.0; + if (r > 0.0) fpair = prefactor_ij * + sin(arg) * MY_PI/cut_ij/r; + + return fpair; +} + +template +template +KOKKOS_INLINE_FUNCTION +F_FLOAT PairSoftKokkos:: +compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const { + (void) i; + const F_FLOAT r = sqrt(rsq); + const F_FLOAT cut_ij = STACKPARAMS?m_params[itype][jtype].cut:params(itype,jtype).cut; + const F_FLOAT prefactor_ij = STACKPARAMS?m_params[itype][jtype].prefactor:params(itype,jtype).prefactor; + const F_FLOAT arg = MY_PI*r/cut_ij; + + return prefactor_ij*(1.0+cos(arg)); +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +template +void PairSoftKokkos::allocate() +{ + PairSoft::allocate(); + + int n = atom->ntypes; + memory->destroy(cutsq); + memoryKK->create_kokkos(k_cutsq,cutsq,n+1,n+1,"pair:cutsq"); + d_cutsq = k_cutsq.template view(); + k_params = Kokkos::DualView("PairSoft::params",n+1,n+1); + params = k_params.template view(); +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +template +void PairSoftKokkos::settings(int narg, char **arg) +{ + if (narg > 2) error->all(FLERR,"Illegal pair_style command"); + + PairSoft::settings(1,arg); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +template +void PairSoftKokkos::init_style() +{ + PairSoft::init_style(); + + // error if rRESPA with inner levels + + if (update->whichflag == 1 && utils::strmatch(update->integrate_style,"^respa")) { + int respa = 0; + if (((Respa *) update->integrate)->level_inner >= 0) respa = 1; + if (((Respa *) update->integrate)->level_middle >= 0) respa = 2; + if (respa) + error->all(FLERR,"Cannot use Kokkos pair style with rRESPA inner/middle"); + } + + // adjust neighbor list request for KOKKOS + + neighflag = lmp->kokkos->neighflag; + auto request = neighbor->find_request(this); + request->set_kokkos_host(std::is_same_v && + !std::is_same_v); + request->set_kokkos_device(std::is_same_v); + if (neighflag == FULL) request->enable_full(); +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +template +double PairSoftKokkos::init_one(int i, int j) +{ + double cutone = PairSoft::init_one(i,j); + + k_params.h_view(i,j).prefactor = prefactor[i][j]; + k_params.h_view(i,j).cut = cutone; + k_params.h_view(i,j).cutsq = cutone*cutone; + k_params.h_view(j,i) = k_params.h_view(i,j); + if (i(); + k_params.template modify(); + + return cutone; +} + +namespace LAMMPS_NS { +template class PairSoftKokkos; +#ifdef LMP_KOKKOS_GPU +template class PairSoftKokkos; +#endif +} + diff --git a/src/KOKKOS/pair_soft_kokkos.h b/src/KOKKOS/pair_soft_kokkos.h new file mode 100644 index 0000000000..060d760937 --- /dev/null +++ b/src/KOKKOS/pair_soft_kokkos.h @@ -0,0 +1,114 @@ +/* -*- 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 PAIR_CLASS +// clang-format off +PairStyle(soft/kk,PairSoftKokkos); +PairStyle(soft/kk/device,PairSoftKokkos); +PairStyle(soft/kk/host,PairSoftKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_PAIR_SOFT_KOKKOS_H +#define LMP_PAIR_SOFT_KOKKOS_H + +#include "pair_kokkos.h" +#include "pair_soft.h" +#include "neigh_list_kokkos.h" + +namespace LAMMPS_NS { + +template +class PairSoftKokkos : public PairSoft { + public: + enum {EnabledNeighFlags=FULL|HALFTHREAD|HALF}; + enum {COUL_FLAG=0}; + typedef DeviceType device_type; + typedef ArrayTypes AT; + PairSoftKokkos(class LAMMPS *); + ~PairSoftKokkos() override; + + void compute(int, int) override; + + void settings(int, char **) override; + void init_style() override; + double init_one(int, int) override; + + struct params_soft{ + KOKKOS_INLINE_FUNCTION + params_soft() {cutsq=0,cut=0,prefactor=0;}; + KOKKOS_INLINE_FUNCTION + params_soft(int /*i*/) {cutsq=0,cut=0,prefactor=0;}; + F_FLOAT cutsq,cut,prefactor; + }; + + protected: + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_fpair(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_evdwl(const F_FLOAT& rsq, const int& i, const int&j, const int& itype, const int& jtype) const; + + template + KOKKOS_INLINE_FUNCTION + F_FLOAT compute_ecoul(const F_FLOAT& /*rsq*/, const int& /*i*/, const int& /*j*/, + const int& /*itype*/, const int& /*jtype*/) const { return 0; } + + Kokkos::DualView k_params; + typename Kokkos::DualView::t_dev_const_um params; + params_soft m_params[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; // hardwired to space for 12 atom types + F_FLOAT m_cutsq[MAX_TYPES_STACKPARAMS+1][MAX_TYPES_STACKPARAMS+1]; + typename AT::t_x_array_randomread x; + typename AT::t_x_array c_x; + typename AT::t_f_array f; + typename AT::t_int_1d_randomread type; + + DAT::tdual_efloat_1d k_eatom; + DAT::tdual_virial_array k_vatom; + typename AT::t_efloat_1d d_eatom; + typename AT::t_virial_array d_vatom; + + int newton_pair; + double special_lj[4]; + + typename AT::tdual_ffloat_2d k_cutsq; + typename AT::t_ffloat_2d d_cutsq; + + int neighflag; + int nlocal,nall,eflag,vflag; + + void allocate() override; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend struct PairComputeFunctor; + friend EV_FLOAT pair_compute_neighlist(PairSoftKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairSoftKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairSoftKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute_neighlist(PairSoftKokkos*,NeighListKokkos*); + friend EV_FLOAT pair_compute(PairSoftKokkos*,NeighListKokkos*); + friend void pair_virial_fdotr_compute(PairSoftKokkos*); +}; + +} + +#endif +#endif + diff --git a/src/pair_soft.cpp b/src/pair_soft.cpp index 66c4c1f9cd..cba6c742ab 100644 --- a/src/pair_soft.cpp +++ b/src/pair_soft.cpp @@ -39,6 +39,8 @@ PairSoft::PairSoft(LAMMPS *lmp) : Pair(lmp) PairSoft::~PairSoft() { + if (copymode) return; + if (allocated) { memory->destroy(setflag); memory->destroy(cutsq); diff --git a/src/pair_soft.h b/src/pair_soft.h index 8fd1654609..d011b16322 100644 --- a/src/pair_soft.h +++ b/src/pair_soft.h @@ -49,7 +49,7 @@ class PairSoft : public Pair { double **prefactor; double **cut; - void allocate(); + virtual void allocate(); }; } // namespace LAMMPS_NS From d512326f0606c181595fb7767b8e73eb9aca6f07 Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Tue, 4 Jun 2024 15:06:34 -0600 Subject: [PATCH 188/313] Fix uninitialized variable --- src/KOKKOS/bond_hybrid_kokkos.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/KOKKOS/bond_hybrid_kokkos.cpp b/src/KOKKOS/bond_hybrid_kokkos.cpp index 6bf4786a34..d63ebccac6 100644 --- a/src/KOKKOS/bond_hybrid_kokkos.cpp +++ b/src/KOKKOS/bond_hybrid_kokkos.cpp @@ -82,6 +82,7 @@ void BondHybridKokkos::compute(int eflag, int vflag) 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; From 8a94faee5884fa2309b7e24e71c342f5c9d73ee1 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Tue, 4 Jun 2024 23:48:17 +0200 Subject: [PATCH 189/313] Updated i-pi example --- examples/PACKAGES/ipi/{README => README.md} | 23 ++++---- examples/PACKAGES/ipi/i-pi_input.xml | 64 +++++++++++---------- 2 files changed, 45 insertions(+), 42 deletions(-) rename examples/PACKAGES/ipi/{README => README.md} (64%) diff --git a/examples/PACKAGES/ipi/README b/examples/PACKAGES/ipi/README.md similarity index 64% rename from examples/PACKAGES/ipi/README rename to examples/PACKAGES/ipi/README.md index d093cea4c5..4b192aa776 100644 --- a/examples/PACKAGES/ipi/README +++ b/examples/PACKAGES/ipi/README.md @@ -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. - - - diff --git a/examples/PACKAGES/ipi/i-pi_input.xml b/examples/PACKAGES/ipi/i-pi_input.xml index 310c909338..7cbf559322 100644 --- a/examples/PACKAGES/ipi/i-pi_input.xml +++ b/examples/PACKAGES/ipi/i-pi_input.xml @@ -1,31 +1,37 @@ - - - i-pi_positions.xyz - [ 51.8,0,0,0, 49.84,0,0,0, 200 ] - 300 - - - [ step, time{picosecond}, conserved{electronvolt}, temperature{kelvin}, kinetic_cv{electronvolt}, potential{electronvolt}, pressure_cv{megapascal}] + + + [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] [ isotope_tdfep(1.167;C), isotope_scfep(1.167;0) ] - positions{angstrom} - - - 1000 - 128000 - 8417 - - -
      graphene
      -
      -
      - - -
      - [ 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] - - - 1.0 - 300 - True - + [ kinetic_cv{kelvin}(C) ] + positions{angstrom} + kinetic_cv + + + 1000000 + + 31415 + + +
      graphene
      +
      + + + i-pi_positions.xyz + 300 + + + + + + + 1.0 + + 100 + + + + + 300 + + From d1978dd136917fe198385cf5cae0575c13fb17ad Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 4 Jun 2024 21:57:18 -0400 Subject: [PATCH 190/313] support writing data files with PairIJ sections for all generic testers --- unittest/force-styles/test_angle_style.cpp | 3 ++- unittest/force-styles/test_bond_style.cpp | 3 ++- unittest/force-styles/test_dihedral_style.cpp | 3 ++- unittest/force-styles/test_improper_style.cpp | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 010fabd6e2..6e823b32fc 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -138,8 +138,9 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data"); + command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index 185d28089e..eb6b0b488d 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -138,8 +138,9 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data nofix"); + command("write_data " + cfg.basename + ".data nofix pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index efc37b9e03..060dd040c2 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -136,8 +136,9 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data"); + command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index ba3618d3dc..c90d30c21a 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -138,8 +138,9 @@ LAMMPS *init_lammps(LAMMPS::argv &args, const TestConfig &cfg, const bool newton } command("run 0 post no"); + command("variable write_data_pair index ii"); command("write_restart " + cfg.basename + ".restart"); - command("write_data " + cfg.basename + ".data"); + command("write_data " + cfg.basename + ".data pair ${write_data_pair}"); command("write_coeff " + cfg.basename + "-coeffs.in"); return lmp; From 9ea57acf5433e1189c7f3f3e30a7739b18337800 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 5 Jun 2024 11:40:24 +0200 Subject: [PATCH 191/313] pack4 cutoffs --- lib/gpu/lal_dpd_charged.cpp | 25 ++++++++++--------------- lib/gpu/lal_dpd_charged.cu | 8 ++++---- lib/gpu/lal_dpd_charged.h | 12 +++++------- lib/gpu/lal_dpd_charged_ext.cpp | 6 +++--- src/GPU/pair_dpd_charged_gpu.cpp | 9 ++++++--- 5 files changed, 28 insertions(+), 32 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index 9f7570403a..f07d870884 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -47,7 +47,7 @@ int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut, - double **host_cut_dpd, **host_cut_slater, + double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double *host_special_lj, const bool tstat_only, const int nlocal, const int nall, @@ -94,21 +94,16 @@ int DPDChargedT::init(const int ntypes, coeff.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); this->atom->type_pack4(ntypes,lj_types,coeff,host_write,host_a0,host_gamma, - host_sigma,host_cut); + host_sigma,host_cut_dpd); - UCL_H_Vec host_rsq(lj_types*lj_types,*(this->ucl_device), + // Allocate a host write buffer for data initialization + UCL_H_Vec host_rsq(lj_types*lj_types*32,*(this->ucl_device), UCL_WRITE_ONLY); + for (int i=0; iucl_device),UCL_READ_ONLY); - this->atom->type_pack1(ntypes,lj_types,cutsq,host_rsq,host_cutsq); - - cut_dpd.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); - this->atom->type_pack1(ntypes,lj_types,cut_dpdsq,host_rsq,host_cut_dpd); - - cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); - this->atom->type_pack1(ntypes,lj_types,cutsq,host_rsq,host_cutsq); - - scale.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); - this->atom->type_pack1(ntypes,lj_types,scale,host_write,host_scale); + this->atom->type_pack4(ntypes,lj_types,cutsq,host_rsq,host_cutsq, + host_cut_dpdsq, host_cut_dpd, host_cut_slatersq); double special_sqrt[4]; special_sqrt[0] = sqrt(host_special_lj[0]); @@ -207,12 +202,12 @@ int DPDChargedT::loop(const int eflag, const int vflag) { template void DPDChargedT::update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut, double **host_cut_dpd, **host_cut_slater) + double **host_sigma, double **host_cut_dpd) { UCL_H_Vec host_write(_lj_types*_lj_types*32,*(this->ucl_device), UCL_WRITE_ONLY); this->atom->type_pack4(ntypes,_lj_types,coeff,host_write,host_a0,host_gamma, - host_sigma,host_cut,host_cut_dpd, host_cut_slater); + host_sigma,host_cut_dpd); } // --------------------------------------------------------------------------- diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index e4caa49dd1..1fe2bfcc17 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -174,7 +174,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, const int eflag, const int vflag, const int inum, const int nbor_pitch, const __global numtyp4 *restrict v_, - const __global numtyp *restrict cutsq, + const __global numtyp4 *restrict cutsq, const numtyp dtinvsqrt, const int seed, const int timestep, const int tstat_only, const int t_per_atom) { @@ -202,7 +202,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, numtyp4 iv; fetch4(iv,i,vel_tex); //v_[i]; int itag=iv.w; - const numtyp qi = extra[i].x; + const numtyp qtmp = extra[i].x; // q[i] numtyp factor_dpd, factor_sqrt; for ( ; nbor { * - -5 Double precision is not supported on card **/ int init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut, + double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double *host_special_lj, bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, const double cell_size, const double gpu_split, FILE *screen); @@ -55,18 +56,15 @@ class DPDCharged : public BaseDPD { /// Update coeff if needed (tstat only) void update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut); + double **host_sigma, double **host_cut_dpd ); // --------------------------- TYPE DATA -------------------------- - /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut + /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd UCL_D_Vec coeff; - UCL_D_Vec cutsq; - UCL_D_Vec cut_dpd; - UCL_D_Vec cut_dpdsq; - UCL_D_Vec cut_slater; - UCL_D_Vec cut_slatersq; + /// cutsq.x = cutsq, cutsq.y = cut_dpd_sq, cutsq.z = cut_dpd, cutsq.w = cut_slatersq + UCL_D_Vec cutsq; /// Special LJ values UCL_D_Vec sp_lj, sp_sqrt; diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index cc7642fcf2..5a94aa6bf6 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -56,7 +56,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, int init_ok=0; if (world_me==0) init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, - host_cut, host_cut_dpd, host_cut_slater, special_lj, false, inum, nall, max_nbors, + host_cut, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen); DPDCMF.device->world_barrier(); @@ -122,9 +122,9 @@ void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, } void dpd_charged_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut, double **host_cut_dpd, **host_cut_slater) + double **host_sigma, double **host_cut, double **host_cut_dpd) { - DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut, host_cut_dpd, host_cut_slater,); + DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut, host_cut_dpd); } void dpd_charged_gpu_get_extra_data(double *host_q) { diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index c7a1fa5902..d92be2e7d2 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -41,7 +41,8 @@ using namespace EwaldConst; int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut, double **host_cut_dpd, double **host_cut_slater, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, - int &gpu_mode, FILE *screen); + int &gpu_mode, FILE *screen, + double *host_special_coul, const double qqrd2e, const double g_ewald, const double lamda); void dpd_charged_gpu_clear(); int **dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, @@ -312,8 +313,10 @@ void PairDPDChargedGPU::init_style() if (atom->molecular != Atom::ATOMIC) maxspecial = atom->maxspecial; int mnf = 5e-2 * neighbor->oneatom; int success = - dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, cut_dpd, cut_slater, force->special_lj, atom->nlocal, - atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen); + dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, + cut_dpd, cut_dpdsq, cut_slatersq, force->special_lj, atom->nlocal, + atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen, + force->special_coul, force->qqrd2e, g_ewald, lamda); GPU_EXTRA::check_flag(success, error, world); if (gpu_mode == GPU_FORCE) neighbor->add_request(this, NeighConst::REQ_FULL); From ecdc1bc336e42ec382dee06b04a9f154d3778ce0 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Wed, 5 Jun 2024 08:29:33 -0600 Subject: [PATCH 192/313] Update docs --- doc/src/Commands_bond.rst | 2 +- doc/src/bond_hybrid.rst | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/src/Commands_bond.rst b/doc/src/Commands_bond.rst index 0c389df399..fcd725d787 100644 --- a/doc/src/Commands_bond.rst +++ b/doc/src/Commands_bond.rst @@ -72,7 +72,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid ` + * :doc:`hybrid (k) ` * * * diff --git a/doc/src/bond_hybrid.rst b/doc/src/bond_hybrid.rst index 1ffd4a1c98..49bfefdcc8 100644 --- a/doc/src/bond_hybrid.rst +++ b/doc/src/bond_hybrid.rst @@ -3,6 +3,8 @@ bond_style hybrid command ========================= +Accelerator Variants: *hybrid/kk* + Syntax """""" @@ -15,7 +17,7 @@ Syntax Examples """""""" -.. code-block: LAMMPS +.. code-block:: LAMMPS bond_style hybrid harmonic fene bond_coeff 1 harmonic 80.0 1.2 @@ -60,6 +62,10 @@ bond types. ---------- +.. include:: accel_styles.rst + +---------- + Restrictions """""""""""" From 777577b05e7651f847db70d106beebeb74b574e8 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Wed, 5 Jun 2024 09:00:01 -0600 Subject: [PATCH 193/313] Update docs --- doc/src/Commands_pair.rst | 2 +- doc/src/pair_soft.rst | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 514785c15c..5434ee2a0a 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -269,7 +269,7 @@ OPT. * :doc:`smd/ulsph ` * :doc:`smtbq ` * :doc:`snap (ik) ` - * :doc:`soft (go) ` + * :doc:`soft (gko) ` * :doc:`sph/heatconduction (g) ` * :doc:`sph/idealgas ` * :doc:`sph/lj (g) ` diff --git a/doc/src/pair_soft.rst b/doc/src/pair_soft.rst index e21ae28432..1405cb8101 100644 --- a/doc/src/pair_soft.rst +++ b/doc/src/pair_soft.rst @@ -1,11 +1,12 @@ .. index:: pair_style soft .. index:: pair_style soft/gpu +.. index:: pair_style soft/kk .. index:: pair_style soft/omp pair_style soft command ======================= -Accelerator Variants: *soft/gpu*, *soft/omp* +Accelerator Variants: *soft/gpu*, *soft/kk*, *soft/omp* Syntax """""" From c1c3f21b36521ddbbc7dabf4226633e925825c66 Mon Sep 17 00:00:00 2001 From: Stan Gerald Moore Date: Wed, 5 Jun 2024 09:05:13 -0600 Subject: [PATCH 194/313] Need to update index as well --- doc/src/bond_hybrid.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/bond_hybrid.rst b/doc/src/bond_hybrid.rst index 49bfefdcc8..ea90ed2b57 100644 --- a/doc/src/bond_hybrid.rst +++ b/doc/src/bond_hybrid.rst @@ -1,4 +1,5 @@ .. index:: bond_style hybrid +.. index:: bond_style hybrid/kk bond_style hybrid command ========================= From eb7f947a0c32e54bf2951225e77cfb39ec77549a Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 5 Jun 2024 17:49:27 +0200 Subject: [PATCH 195/313] cuda forces + init var --- lib/gpu/lal_dpd_charged.cpp | 43 ++++- lib/gpu/lal_dpd_charged.cu | 290 ++++++++++++++++++++----------- lib/gpu/lal_dpd_charged.h | 15 +- lib/gpu/lal_dpd_charged_ext.cpp | 21 ++- src/GPU/pair_dpd_charged_gpu.cpp | 12 +- 5 files changed, 251 insertions(+), 130 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index f07d870884..f7956ee69b 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -46,14 +46,15 @@ template int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, - double **host_cut, - double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, + double **host_cut_dpd, double **host_cut_dpdsq, + double **host_cut_slatersq, **host_scale, double *host_special_lj, const bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, const double cell_size, - const double gpu_split, FILE *_screen) { + const double gpu_split, FILE *_screen, double *host_special_coul, + const double qqrd2e, const double g_ewald, double lamda) { const int max_shared_types=this->device->max_shared_types(); int onetype=0; @@ -83,7 +84,28 @@ int DPDChargedT::init(const int ntypes, lj_types=max_shared_types; shared_types=true; } + + // Allocate a host write buffer for data initialization + UCL_H_Vec host_write_coul(lj_types*lj_types*32,*(this->ucl_device), + UCL_WRITE_ONLY); + + for (int i=0; iucl_device),UCL_READ_ONLY); + this->atom->type_pack1(ntypes,lj_types,scale,host_write_coul,host_scale); + + sp_cl.alloc(4,*(this->ucl_device),UCL_READ_ONLY); + for (int i=0; i<4; i++) { + host_write_coul[i]=host_special_coul[i]; + } + ucl_copy(sp_cl,host_write_coul,4,false); + _lj_types=lj_types; + _cut_coulsq=host_cut_coulsq; + _qqrd2e=qqrd2e; + _g_ewald=g_ewald; + _lamda=lamda; // Allocate a host write buffer for data initialization UCL_H_Vec host_write(lj_types*lj_types*32,*(this->ucl_device), @@ -103,7 +125,7 @@ int DPDChargedT::init(const int ntypes, host_rsq[i]=0.0; cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); this->atom->type_pack4(ntypes,lj_types,cutsq,host_rsq,host_cutsq, - host_cut_dpdsq, host_cut_dpd, host_cut_slatersq); + host_cut_dpdsq, host_scale, host_cut_slatersq); double special_sqrt[4]; special_sqrt[0] = sqrt(host_special_lj[0]); @@ -181,20 +203,23 @@ int DPDChargedT::loop(const int eflag, const int vflag) { this->time_pair.start(); if (shared_types) { this->k_pair_sel->set_size(GX,BX); - this->k_pair_sel->run(&this->atom->x, &this->atom->extra, &coeff, &sp_lj, &sp_sqrt, + this->k_pair_sel->run(&this->atom->x, &this->atom->extra, &coeff, &sp_lj, &sp_cl, &sp_sqrt, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, &this->_seed, &this->_timestep, - &this->_tstat_only, &this->_threads_per_atom); + &_qqrd2e, &_g_ewald, &_lamda, + &this->_tstat_only, &this->_threads_per_atom,); } else { this->k_pair.set_size(GX,BX); - this->k_pair.run(&this->atom->x, &this->atom->extra, &coeff, &_lj_types, &sp_lj, &sp_sqrt, + this->k_pair.run(&this->atom->x, &this->atom->extra, &coeff, &_lj_types, &sp_lj, &sp_cl, &sp_sqrt, &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, - &this->_seed, &this->_timestep, &this->_tstat_only, - &this->_threads_per_atom); + &_qqrd2e, &_g_ewald, &_lamda, + &this->_seed, &this->_timestep, + &_qqrd2e, &_g_ewald, &_lamda, + &this->_tstat_only, &this->_threads_per_atom,); } this->time_pair.stop(); return GX; diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 1fe2bfcc17..2ffd2b9990 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -166,6 +166,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict coeff, const int lj_types, const __global numtyp *restrict sp_lj, + const __global numtyp *restrict sp_cl_in, const __global numtyp *restrict sp_sqrt, const __global int * dev_nbor, const __global int * dev_packed, @@ -176,19 +177,31 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict v_, const __global numtyp4 *restrict cutsq, const numtyp dtinvsqrt, const int seed, - const int timestep, const int tstat_only, + const int timestep, const numtyp qqrd2e, + const numtyp g_ewald, const numtyp lamda, + const int tstat_only, const int t_per_atom) { int tid, ii, offset; atom_info(t_per_atom,ii,tid,offset); + __local numtyp sp_cl[4]; + int n_stride; + local_allocate_store_charge(); + + sp_cl[0]=sp_cl_in[0]; + sp_cl[1]=sp_cl_in[1]; + sp_cl[2]=sp_cl_in[2]; + sp_cl[3]=sp_cl_in[3]; + int n_stride; local_allocate_store_pair(); acctyp3 f; f.x=(acctyp)0; f.y=(acctyp)0; f.z=(acctyp)0; - acctyp energy, virial[6]; + acctyp e_coul, energy, virial[6]; if (EVFLAG) { energy=(acctyp)0; + e_coul=(acctyp)0 for (int i=0; i<6; i++) virial[i]=(acctyp)0; } @@ -202,7 +215,8 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, numtyp4 iv; fetch4(iv,i,vel_tex); //v_[i]; int itag=iv.w; - const numtyp qtmp = extra[i].x; // q[i] + numtyp qtmp = extra[i].x; // q[i] + numtyp lamdainv = ucl_recip(lamda); numtyp factor_dpd, factor_sqrt; for ( ; nbor global squared cutoff + if (rsq DPD squared cutoff + if (rsq < cutsq[mtype].y && r < EPSILON) { - const numtyp qj = extra[j].x; + numtyp rinv=ucl_recip(r); + numtyp delvx = iv.x - jv.x; + numtyp delvy = iv.y - jv.y; + numtyp delvz = iv.z - jv.z; + numtyp dot = delx*delvx + dely*delvy + delz*delvz; + numtyp wd = (numtyp)1.0 - r/coeff[mtype].w; - unsigned int tag1=itag, tag2=jtag; - if (tag1 > tag2) { - tag1 = jtag; tag2 = itag; + const numtyp qj = extra[j].x; + + unsigned int tag1=itag, tag2=jtag; + if (tag1 > tag2) { + tag1 = jtag; tag2 = itag; + } + + numtyp randnum = (numtyp)0.0; + saru(tag1, tag2, seed, timestep, randnum); + + // conservative force = a0 * wd, or 0 if tstat only + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + + + if (!tstat_only) force_dpd = coeff[mtype].x*wd; + force_dpd -= coeff[mtype].y*wd*wd*dot*rinv; + force_dpd *= factor_dpd; + force_dpd += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; + force_dpd *=rinv; + } + + // apply Slater electrostatic force if distance below Slater cutoff + // and the two species have a slater coeff + // cutsq[mtype].w -> Coulombic squared cutoff + if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + numtyp r2inv=ucl_recip(rsq); + numtyp _erfc; + + numtyp r = ucl_rsqrt(r2inv); + numtyp grij = g_ewald * r; + numtyp expm2 = ucl_exp(-grij*grij); + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); + _erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + numtyp prefactor = extra[j].x; + prefactor *= qqrd2e * cutsq[mtype].z * qtmp/r; + numtyp rlamdainv = r * lamdainv; + numtyp exprlmdainv = ucl_exp((numtyp)-2.0*rlamdainv); + numtyp slater_term = exprlmdainv*((numtyp)1.0 + ((numtyp)2.0*rlamdainv*((numtyp)1.0+rlamdainv))); + force_coul = prefactor*(_erfc + EWALD_F*grij*expm2-slater_term); + if (factor_coul > (numtyp)0) force_coul -= factor_coul*prefactor*((numtyp)1.0-slater_term); + force_coul *= r2inv; } - numtyp randnum = (numtyp)0.0; - saru(tag1, tag2, seed, timestep, randnum); - - // conservative force = a0 * wd, or 0 if tstat only - // drag force = -gamma * wd^2 * (delx dot delv) / r - // random force = sigma * wd * rnd * dtinvsqrt; - - numtyp force = (numtyp)0.0; - if (!tstat_only) force = coeff[mtype].x*wd; - force -= coeff[mtype].y*wd*wd*dot*rinv; - force *= factor_dpd; - force += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; - force*=rinv; - + numtyp force = force_coul + force_dpd; f.x+=delx*force; f.y+=dely*force; f.z+=delz*force; if (EVFLAG && eflag) { - // unshifted eng of conservative term: - // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); - // eng shifted to 0.0 at cutoff - numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; - energy+=factor_dpd*e; + + if (rsq < cutsq[mtype].y && r < EPSILON) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; + energy+=factor_dpd*e; + } + if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + numtyp e_slater = ((numtyp)1.0 + rlamdainv)*exprlmdainv; + numtyp e = prefactor*(_erfc-e_slater); + if (factor_coul > (numtyp)0) e -= factor_coul*prefactor*((numtyp)1.0 - e_slater); + e_coul += e; + } } if (EVFLAG && vflag) { virial[0] += delx*delx*force; @@ -276,18 +332,22 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, virial[4] += delx*delz*force; virial[5] += dely*delz*force; } + + } } // for nbor } // if ii - store_answers(f,energy,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + store_answers_q(f,energy, e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, ans,engv); + } __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict extra, const __global numtyp4 *restrict coeff_in, const __global numtyp *restrict sp_lj_in, + const __global numtyp *restrict sp_cl_in, const __global numtyp *restrict sp_sqrt_in, const __global int * dev_nbor, const __global int * dev_packed, @@ -298,39 +358,41 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict v_, const __global numtyp4 *restrict cutsq, const numtyp dtinvsqrt, const int seed, - const int timestep, const int tstat_only, + const int timestep, const numtyp qqrd2e, + const numtyp g_ewald, const numtyp lamda, + const int tstat_only, const int t_per_atom) { int tid, ii, offset; atom_info(t_per_atom,ii,tid,offset); - #ifndef ONETYPE __local numtyp4 coeff[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; __local numtyp sp_lj[4]; __local numtyp sp_sqrt[4]; + /// COUL Init + __local numtyp scale[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; + __local numtyp sp_cl[4]; if (tid<4) { sp_lj[tid]=sp_lj_in[tid]; sp_sqrt[tid]=sp_sqrt_in[tid]; + sp_cl[tid]=sp_cl_in[tid]; } if (tid global squared cutoff + if (rsq DPD squared cutoff + if (rsq < cutsq[mtype].y && r < EPSILON) { - const numtyp qj = extra[j].x; - - unsigned int tag1=itag, tag2=jtag; - if (tag1 > tag2) { - tag1 = jtag; tag2 = itag; + numtyp rinv=ucl_recip(r); + numtyp delvx = iv.x - jv.x; + numtyp delvy = iv.y - jv.y; + numtyp delvz = iv.z - jv.z; + numtyp dot = delx*delvx + dely*delvy + delz*delvz; + numtyp wd = (numtyp)1.0 - r/coeff[mtype].w; + + const numtyp qj = extra[j].x; + + unsigned int tag1=itag, tag2=jtag; + if (tag1 > tag2) { + tag1 = jtag; tag2 = itag; + } + + numtyp randnum = (numtyp)0.0; + saru(tag1, tag2, seed, timestep, randnum); + + // conservative force = a0 * wd, or 0 if tstat only + // drag force = -gamma * wd^2 * (delx dot delv) / r + // random force = sigma * wd * rnd * dtinvsqrt; + + + if (!tstat_only) force_dpd = coeff[mtype].x*wd; + force_dpd -= coeff[mtype].y*wd*wd*dot*rinv; + force_dpd *= factor_dpd; + force_dpd += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; + force_dpd *=rinv; + } + + // apply Slater electrostatic force if distance below Slater cutoff + // and the two species have a slater coeff + // cutsq[mtype].w -> Coulombic squared cutoff + if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + numtyp r2inv=ucl_recip(rsq); + numtyp _erfc; + + numtyp r = ucl_rsqrt(r2inv); + numtyp grij = g_ewald * r; + numtyp expm2 = ucl_exp(-grij*grij); + numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); + _erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; + numtyp prefactor = extra[j].x; + prefactor *= qqrd2e * cutsq[mtype].z * qtmp/r; + numtyp rlamdainv = r * lamdainv; + numtyp exprlmdainv = ucl_exp((numtyp)-2.0*rlamdainv); + numtyp slater_term = exprlmdainv*((numtyp)1.0 + ((numtyp)2.0*rlamdainv*((numtyp)1.0+rlamdainv))); + force_coul = prefactor*(_erfc + EWALD_F*grij*expm2-slater_term); + if (factor_coul > (numtyp)0) force_coul -= factor_coul*prefactor*((numtyp)1.0-slater_term); + force_coul *= r2inv; } - numtyp randnum = (numtyp)0.0; - saru(tag1, tag2, seed, timestep, randnum); - - // conservative force = a0 * wd, or 0 if tstat only - // drag force = -gamma * wd^2 * (delx dot delv) / r - // random force = sigma * wd * rnd * dtinvsqrt; - - #ifndef ONETYPE - const numtyp coeffx=coeff[mtype].x; - const numtyp coeffy=coeff[mtype].y; - const numtyp coeffz=coeff[mtype].z; - #endif - numtyp force = (numtyp)0.0; - if (!tstat_only) force = coeffx*wd; - force -= coeffy*wd*wd*dot*rinv; - #ifndef ONETYPE - force *= factor_dpd; - force += factor_sqrt*coeffz*wd*randnum*dtinvsqrt; - #else - force += coeffz*wd*randnum*dtinvsqrt; - #endif - force*=rinv; - + numtyp force = force_coul + force_dpd; f.x+=delx*force; f.y+=dely*force; f.z+=delz*force; if (EVFLAG && eflag) { - // unshifted eng of conservative term: - // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); - // eng shifted to 0.0 at cutoff - numtyp e = (numtyp)0.5*coeffx*coeffw * wd*wd; - #ifndef ONETYPE - energy+=factor_dpd*e; - #else - energy+=e; - #endif + + if (rsq < cutsq[mtype].y && r < EPSILON) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; + energy+=factor_dpd*e; + } + if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + numtyp e_slater = ((numtyp)1.0 + rlamdainv)*exprlmdainv; + numtyp e = prefactor*(_erfc-e_slater); + if (factor_coul > (numtyp)0) e -= factor_coul*prefactor*((numtyp)1.0 - e_slater); + e_coul += e; + } } if (EVFLAG && vflag) { virial[0] += delx*delx*force; @@ -443,6 +523,8 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, virial[4] += delx*delz*force; virial[5] += dely*delz*force; } + + } } // for nbor diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index fe64bb56c9..3f2da9f047 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -38,11 +38,12 @@ class DPDCharged : public BaseDPD { * - -4 if the GPU library was not compiled for GPU * - -5 Double precision is not supported on card **/ int init(const int ntypes, double **host_cutsq, double **host_a0, - double **host_gamma, double **host_sigma, double **host_cut, + double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, - double *host_special_lj, bool tstat_only, const int nlocal, + double **host_scale, double *host_special_lj, bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, - const double cell_size, const double gpu_split, FILE *screen); + const double cell_size, const double gpu_split, FILE *screen, + const double qqrd2e, const double g_ewald, const double lamda); /// Clear all host and device data /** \note This is called at the beginning of the init() routine **/ @@ -63,12 +64,15 @@ class DPDCharged : public BaseDPD { /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd UCL_D_Vec coeff; - /// cutsq.x = cutsq, cutsq.y = cut_dpd_sq, cutsq.z = cut_dpd, cutsq.w = cut_slatersq + /// cutsq.x = cutsq, cutsq.y = cut_dpd_sq, cutsq.z = scale, cutsq.w = cut_slatersq UCL_D_Vec cutsq; /// Special LJ values UCL_D_Vec sp_lj, sp_sqrt; + /// Special Coul values [0-3] + UCL_D_Vec sp_cl; + /// If atom type constants fit in shared memory, use fast kernels bool shared_types; @@ -78,6 +82,9 @@ class DPDCharged : public BaseDPD { /// Only used for thermostat int _tstat_only; + /// Coulombic terms + numtyp _cut_coulsq, _qqrd2e, _g_ewald, _lamda; + /// pointer to host data for atom charge double *q; diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index 5a94aa6bf6..f05c093a7b 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -28,11 +28,12 @@ static DPDCharged DPDCMF; // Allocate memory on host and device and copy constants to device // --------------------------------------------------------------------------- int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, - double **host_gamma, double **host_sigma, double **host_cut, - double **host_cut_dpd, double **host_cut_slater, - double *special_lj, const int inum, + double **host_gamma, double **host_sigma, + double **host_cut_dpd, double **host_cut_dpd_sq, double **host_cut_slatersq, + double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, - const double cell_size, int &gpu_mode, FILE *screen) { + const double cell_size, int &gpu_mode, FILE *screen, double *host_special_coul, + const double qqrd2e, const double g_ewald, const double lamda) { DPDCMF.clear(); gpu_mode=DPDCMF.device->gpu_mode(); double gpu_split=DPDCMF.device->particle_split(); @@ -56,8 +57,10 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, int init_ok=0; if (world_me==0) init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, - host_cut, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, special_lj, false, inum, nall, max_nbors, - maxspecial, cell_size, gpu_split, screen); + host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, + host_scale, special_lj, false, inum, nall, max_nbors, + maxspecial, cell_size, gpu_split, screen, + force->special_coul,->qqrd2e, g_ewald, lamda); DPDCMF.device->world_barrier(); if (message) @@ -74,8 +77,10 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, } if (gpu_rank==i && world_me!=0) init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, - host_cut, host_cut_dpd, host_cut_slater, special_lj, false, inum, nall, max_nbors, - maxspecial, cell_size, gpu_split, screen); + host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, + host_scale, special_lj, false, inum, nall, max_nbors, + maxspecial, cell_size, gpu_split, screen, + force->special_coul,force->qqrd2e, g_ewald, lamda); DPDCMF.device->serialize_init(); if (message) diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index d92be2e7d2..2d05a4a33e 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -39,10 +39,11 @@ using namespace EwaldConst; // External functions from cuda library for atom decomposition int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut, double **host_cut_dpd, double **host_cut_slater, double *special_lj, const int inum, + double **host_sigma, double **host_cut_dpd, double **host_cut_dpd_sq, double **host_cut_slatersq, + double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, - int &gpu_mode, FILE *screen, - double *host_special_coul, const double qqrd2e, const double g_ewald, const double lamda); + int &gpu_mode, FILE *screen, double *host_special_coul, + const double qqrd2e, const double g_ewald, const double lamda); void dpd_charged_gpu_clear(); int **dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, @@ -313,8 +314,9 @@ void PairDPDChargedGPU::init_style() if (atom->molecular != Atom::ATOMIC) maxspecial = atom->maxspecial; int mnf = 5e-2 * neighbor->oneatom; int success = - dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut, - cut_dpd, cut_dpdsq, cut_slatersq, force->special_lj, atom->nlocal, + dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, + cut_dpd, cut_dpdsq, cut_slatersq, scale, + force->special_lj, atom->nlocal, atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen, force->special_coul, force->qqrd2e, g_ewald, lamda); GPU_EXTRA::check_flag(success, error, world); From 8eefc0d3057b824b13dfc24222dc2f192b2a3f84 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 09:58:11 +0200 Subject: [PATCH 196/313] debug scale_in ; n_stride --- lib/gpu/lal_dpd_charged.cu | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 2ffd2b9990..2f789fe9bf 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -185,7 +185,6 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, atom_info(t_per_atom,ii,tid,offset); __local numtyp sp_cl[4]; - int n_stride; local_allocate_store_charge(); sp_cl[0]=sp_cl_in[0]; @@ -259,8 +258,6 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, numtyp dot = delx*delvx + dely*delvy + delz*delvz; numtyp wd = (numtyp)1.0 - r/coeff[mtype].w; - const numtyp qj = extra[j].x; - unsigned int tag1=itag, tag2=jtag; if (tag1 > tag2) { tag1 = jtag; tag2 = itag; @@ -378,7 +375,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, } if (tid tag2) { tag1 = jtag; tag2 = itag; From c1db6a50ece06cc8881fd09274209e975fdaf3ff Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:10:36 +0200 Subject: [PATCH 197/313] move eflag --- lib/gpu/lal_dpd_charged.cu | 90 ++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 2f789fe9bf..750b05a4ea 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -185,7 +185,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, atom_info(t_per_atom,ii,tid,offset); __local numtyp sp_cl[4]; - local_allocate_store_charge(); + ///local_allocate_store_charge(); sp_cl[0]=sp_cl_in[0]; sp_cl[1]=sp_cl_in[1]; @@ -200,7 +200,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, acctyp e_coul, energy, virial[6]; if (EVFLAG) { energy=(acctyp)0; - e_coul=(acctyp)0 + e_coul=(acctyp)0; for (int i=0; i<6; i++) virial[i]=(acctyp)0; } @@ -270,13 +270,21 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, // drag force = -gamma * wd^2 * (delx dot delv) / r // random force = sigma * wd * rnd * dtinvsqrt; - if (!tstat_only) force_dpd = coeff[mtype].x*wd; force_dpd -= coeff[mtype].y*wd*wd*dot*rinv; force_dpd *= factor_dpd; force_dpd += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; force_dpd *=rinv; - } + + if (EVFLAG && eflag) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; + energy += factor_dpd*e; + } + + }// if cut_dpdsq // apply Slater electrostatic force if distance below Slater cutoff // and the two species have a slater coeff @@ -298,29 +306,20 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, force_coul = prefactor*(_erfc + EWALD_F*grij*expm2-slater_term); if (factor_coul > (numtyp)0) force_coul -= factor_coul*prefactor*((numtyp)1.0-slater_term); force_coul *= r2inv; - } - numtyp force = force_coul + force_dpd; - f.x+=delx*force; - f.y+=dely*force; - f.z+=delz*force; - - if (EVFLAG && eflag) { - - if (rsq < cutsq[mtype].y && r < EPSILON) { - // unshifted eng of conservative term: - // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); - // eng shifted to 0.0 at cutoff - numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; - energy+=factor_dpd*e; - } - if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + if (EVFLAG && eflag) { numtyp e_slater = ((numtyp)1.0 + rlamdainv)*exprlmdainv; numtyp e = prefactor*(_erfc-e_slater); if (factor_coul > (numtyp)0) e -= factor_coul*prefactor*((numtyp)1.0 - e_slater); e_coul += e; } - } + } // if cut_coulsq + + numtyp force = force_coul + force_dpd; + f.x += delx*force; + f.y += dely*force; + f.z += delz*force; + if (EVFLAG && vflag) { virial[0] += delx*delx*force; virial[1] += dely*dely*force; @@ -329,13 +328,12 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, virial[4] += delx*delz*force; virial[5] += dely*delz*force; } - - - } + + } // if cutsq } // for nbor } // if ii - store_answers_q(f,energy, e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, ans,engv); } @@ -459,13 +457,21 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, // drag force = -gamma * wd^2 * (delx dot delv) / r // random force = sigma * wd * rnd * dtinvsqrt; - if (!tstat_only) force_dpd = coeff[mtype].x*wd; force_dpd -= coeff[mtype].y*wd*wd*dot*rinv; force_dpd *= factor_dpd; force_dpd += factor_sqrt*coeff[mtype].z*wd*randnum*dtinvsqrt; force_dpd *=rinv; - } + + if (EVFLAG && eflag) { + // unshifted eng of conservative term: + // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); + // eng shifted to 0.0 at cutoff + numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; + energy += factor_dpd*e; + } + + }// if cut_dpdsq // apply Slater electrostatic force if distance below Slater cutoff // and the two species have a slater coeff @@ -487,29 +493,20 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, force_coul = prefactor*(_erfc + EWALD_F*grij*expm2-slater_term); if (factor_coul > (numtyp)0) force_coul -= factor_coul*prefactor*((numtyp)1.0-slater_term); force_coul *= r2inv; - } - numtyp force = force_coul + force_dpd; - f.x+=delx*force; - f.y+=dely*force; - f.z+=delz*force; - - if (EVFLAG && eflag) { - - if (rsq < cutsq[mtype].y && r < EPSILON) { - // unshifted eng of conservative term: - // evdwl = -a0[itype][jtype]*r * (1.0-0.5*r/cut[itype][jtype]); - // eng shifted to 0.0 at cutoff - numtyp e = (numtyp)0.5*coeff[mtype].x*coeff[mtype].w * wd*wd; - energy+=factor_dpd*e; - } - if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + if (EVFLAG && eflag) { numtyp e_slater = ((numtyp)1.0 + rlamdainv)*exprlmdainv; numtyp e = prefactor*(_erfc-e_slater); if (factor_coul > (numtyp)0) e -= factor_coul*prefactor*((numtyp)1.0 - e_slater); e_coul += e; } - } + } // if cut_coulsq + + numtyp force = force_coul + force_dpd; + f.x += delx*force; + f.y += dely*force; + f.z += delz*force; + if (EVFLAG && vflag) { virial[0] += delx*delx*force; virial[1] += dely*dely*force; @@ -518,9 +515,8 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, virial[4] += delx*delz*force; virial[5] += dely*delz*force; } - - - } + + } // if cutsq } // for nbor } // if ii From 2da4f23743f700672804bc3b9dfb25ecfef84dca Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:23:32 +0200 Subject: [PATCH 198/313] debug --- src/GPU/pair_dpd_charged_gpu.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index 2d05a4a33e..12671077e7 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -18,6 +18,7 @@ #include "pair_dpd_charged_gpu.h" #include "atom.h" +#include "comm.h" #include "domain.h" #include "error.h" #include "force.h" @@ -206,7 +207,7 @@ static constexpr double EPSILON = 1.0e-10; /* ---------------------------------------------------------------------- */ -PairDPDChargedGPU::PairDPDCharged(LAMMPS *lmp) : PairDPD(lmp), gpu_mode(GPU_FORCE) +PairDPDChargedGPU::PairDPDChargedGPU(LAMMPS *lmp) : PairDPDCharged(lmp), gpu_mode(GPU_FORCE) { respa_enable = 0; reinitflag = 0; @@ -344,10 +345,9 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag double r2inv,forcedpd,forcecoul,factor_coul; double grij,expm2,prefactor,t,erfc; double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; - int *ilist,*jlist,*numneigh,**firstneigh; + int *jlist; double slater_term; - int *jlist; tagint itag, jtag; double *q = atom->q; From 0e9fef01e7c0fb50cf2c3a92dacbcf47e629e378 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:32:45 +0200 Subject: [PATCH 199/313] class fix and header --- lib/gpu/lal_dpd_charged.cpp | 8 ++++---- lib/gpu/lal_dpd_charged.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index f7956ee69b..ea22ab0f36 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -47,7 +47,7 @@ int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, - double **host_cut_slatersq, **host_scale, + double **host_cut_slatersq, double **host_scale, double *host_special_lj, const bool tstat_only, const int nlocal, const int nall, @@ -164,7 +164,7 @@ void DPDChargedT::clear() { template double DPDChargedT::host_memory_usage() const { - return this->host_memory_usage_atomic()+sizeof(DPD); + return this->host_memory_usage_atomic()+sizeof(DPDCharged); } // --------------------------------------------------------------------------- @@ -209,7 +209,7 @@ int DPDChargedT::loop(const int eflag, const int vflag) { &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, &this->_seed, &this->_timestep, &_qqrd2e, &_g_ewald, &_lamda, - &this->_tstat_only, &this->_threads_per_atom,); + &this->_tstat_only, &this->_threads_per_atom); } else { this->k_pair.set_size(GX,BX); this->k_pair.run(&this->atom->x, &this->atom->extra, &coeff, &_lj_types, &sp_lj, &sp_cl, &sp_sqrt, @@ -219,7 +219,7 @@ int DPDChargedT::loop(const int eflag, const int vflag) { &_qqrd2e, &_g_ewald, &_lamda, &this->_seed, &this->_timestep, &_qqrd2e, &_g_ewald, &_lamda, - &this->_tstat_only, &this->_threads_per_atom,); + &this->_tstat_only, &this->_threads_per_atom); } this->time_pair.stop(); return GX; diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index 3f2da9f047..38ab93eb3b 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -59,6 +59,8 @@ class DPDCharged : public BaseDPD { void update_coeff(int ntypes, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd ); + void get_extra_data(double *host_q); + // --------------------------- TYPE DATA -------------------------- /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd From 69309cab0c56dcb0dafc011665be1f806837ad18 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:36:31 +0200 Subject: [PATCH 200/313] header fix missing var --- lib/gpu/lal_dpd_charged.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index 38ab93eb3b..42a472a719 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -42,7 +42,7 @@ class DPDCharged : public BaseDPD { double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *host_special_lj, bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, - const double cell_size, const double gpu_split, FILE *screen, + const double cell_size, const double gpu_split, FILE *screen, double *host_special_coul, const double qqrd2e, const double g_ewald, const double lamda); /// Clear all host and device data From be298634b7b19f4a3712279a6734ef6fbf5c976d Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:40:13 +0200 Subject: [PATCH 201/313] readdress force sp_cl --- lib/gpu/lal_dpd_charged_ext.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index f05c093a7b..392371cd74 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -29,7 +29,7 @@ static DPDCharged DPDCMF; // --------------------------------------------------------------------------- int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, double **host_sigma, - double **host_cut_dpd, double **host_cut_dpd_sq, double **host_cut_slatersq, + double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen, double *host_special_coul, @@ -60,7 +60,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, - force->special_coul,->qqrd2e, g_ewald, lamda); + host_special_coul,->qqrd2e, g_ewald, lamda); DPDCMF.device->world_barrier(); if (message) @@ -80,7 +80,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, - force->special_coul,force->qqrd2e, g_ewald, lamda); + host_special_coul,force->qqrd2e, g_ewald, lamda); DPDCMF.device->serialize_init(); if (message) From 7d2764da2749b77f1a2f13fefefff2fb5db36484 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:42:09 +0200 Subject: [PATCH 202/313] only dpd coef update --- lib/gpu/lal_dpd_charged_ext.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index 392371cd74..4f7ba04e4b 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -127,9 +127,9 @@ void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, } void dpd_charged_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut, double **host_cut_dpd) + double **host_sigma, double **host_cut_dpd) { - DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma,host_cut, host_cut_dpd); + DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma, host_cut_dpd); } void dpd_charged_gpu_get_extra_data(double *host_q) { From 06f1b1bffa23f2c5c0ce4708b8d1a826f69aa302 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:50:30 +0200 Subject: [PATCH 203/313] wrong names, old var del --- lib/gpu/lal_dpd_charged.cpp | 10 +--------- lib/gpu/lal_dpd_charged.h | 3 ++- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index ea22ab0f36..d8dff0a6e9 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -73,7 +73,7 @@ int DPDChargedT::init(const int ntypes, int success; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd,"k_dpd_charged",onetype); + gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype); if (success!=0) return success; @@ -88,13 +88,6 @@ int DPDChargedT::init(const int ntypes, // Allocate a host write buffer for data initialization UCL_H_Vec host_write_coul(lj_types*lj_types*32,*(this->ucl_device), UCL_WRITE_ONLY); - - for (int i=0; iucl_device),UCL_READ_ONLY); - this->atom->type_pack1(ntypes,lj_types,scale,host_write_coul,host_scale); - sp_cl.alloc(4,*(this->ucl_device),UCL_READ_ONLY); for (int i=0; i<4; i++) { host_write_coul[i]=host_special_coul[i]; @@ -102,7 +95,6 @@ int DPDChargedT::init(const int ntypes, ucl_copy(sp_cl,host_write_coul,4,false); _lj_types=lj_types; - _cut_coulsq=host_cut_coulsq; _qqrd2e=qqrd2e; _g_ewald=g_ewald; _lamda=lamda; diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index 42a472a719..2b24cd1b88 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -75,6 +75,7 @@ class DPDCharged : public BaseDPD { /// Special Coul values [0-3] UCL_D_Vec sp_cl; + /// If atom type constants fit in shared memory, use fast kernels bool shared_types; @@ -85,7 +86,7 @@ class DPDCharged : public BaseDPD { int _tstat_only; /// Coulombic terms - numtyp _cut_coulsq, _qqrd2e, _g_ewald, _lamda; + numtyp _qqrd2e, _g_ewald, _lamda; /// pointer to host data for atom charge double *q; From 71d8fe564f4c095f7bf54590d3b46b8cd3abb0b9 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 10:55:26 +0200 Subject: [PATCH 204/313] wrong init var and still force... --- lib/gpu/lal_dpd_charged_ext.cpp | 13 ++++++------- src/GPU/pair_dpd_charged_gpu.cpp | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index 4f7ba04e4b..6899bb4e82 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -27,12 +27,11 @@ static DPDCharged DPDCMF; // --------------------------------------------------------------------------- // Allocate memory on host and device and copy constants to device // --------------------------------------------------------------------------- -int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, - double **host_gamma, double **host_sigma, - double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, +int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, - const int nall, const int max_nbors, const int maxspecial, - const double cell_size, int &gpu_mode, FILE *screen, double *host_special_coul, + const int nall, const int max_nbors, const int maxspecial, const double cell_size, + int &gpu_mode, FILE *screen, double *host_special_coul, const double qqrd2e, const double g_ewald, const double lamda) { DPDCMF.clear(); gpu_mode=DPDCMF.device->gpu_mode(); @@ -60,7 +59,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, - host_special_coul,->qqrd2e, g_ewald, lamda); + host_special_coul,qqrd2e, g_ewald, lamda); DPDCMF.device->world_barrier(); if (message) @@ -80,7 +79,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, - host_special_coul,force->qqrd2e, g_ewald, lamda); + host_special_coul,qqrd2e, g_ewald, lamda); DPDCMF.device->serialize_init(); if (message) diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index 12671077e7..b3a68ff30e 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -40,7 +40,7 @@ using namespace EwaldConst; // External functions from cuda library for atom decomposition int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut_dpd, double **host_cut_dpd_sq, double **host_cut_slatersq, + double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen, double *host_special_coul, From 5c9ac8e5695d072261e0b5aa5c073dec149412fa Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 11:14:28 +0200 Subject: [PATCH 205/313] Update pair_dpd_charged_gpu.cpp --- src/GPU/pair_dpd_charged_gpu.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index b3a68ff30e..af4cbefe38 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -239,8 +239,8 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) bool success = true; int *ilist, *numneigh, **firstneigh; - double *charge = atom->q; - dpd_charged_gpu_get_extra_data(charge); + double *q = atom->q; + dpd_charged_gpu_get_extra_data(q); if (gpu_mode != GPU_FORCE) { double sublo[3], subhi[3]; From ce9f99e9c150313f4af4c0c905e96fa8997598cb Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 11:19:06 +0200 Subject: [PATCH 206/313] store_answersq for ecoul --- lib/gpu/lal_dpd_charged.cu | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 750b05a4ea..4f27c90202 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -335,7 +335,6 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, } // if ii store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, ans,engv); - } __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, @@ -520,7 +519,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, } // for nbor } // if ii - store_answers(f,energy,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + store_answersq(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, ans,engv); } From 0da8be7525958d30f68fc28e458386d199c2309c Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 11:20:21 +0200 Subject: [PATCH 207/313] Update lal_dpd_charged.cu --- lib/gpu/lal_dpd_charged.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 4f27c90202..6989cf6e68 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -519,7 +519,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, } // for nbor } // if ii - store_answersq(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, + store_answers_q(f,energy,e_coul,virial,ii,inum,tid,t_per_atom,offset,eflag,vflag, ans,engv); } From 7cb73ca1a1fede550c8357dc8795ee5d1e2bb849 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 6 Jun 2024 11:23:38 +0200 Subject: [PATCH 208/313] maybe wrong scale --- lib/gpu/lal_dpd_charged.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 6989cf6e68..1093377122 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -485,7 +485,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); _erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; numtyp prefactor = extra[j].x; - prefactor *= qqrd2e * cutsq[mtype].z * qtmp/r; + prefactor *= qqrd2e * scale[mtype] * qtmp/r; numtyp rlamdainv = r * lamdainv; numtyp exprlmdainv = ucl_exp((numtyp)-2.0*rlamdainv); numtyp slater_term = exprlmdainv*((numtyp)1.0 + ((numtyp)2.0*rlamdainv*((numtyp)1.0+rlamdainv))); From 001063250ef6791b4d0f7f2288c0424a40262139 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 7 Jun 2024 09:05:11 +0200 Subject: [PATCH 209/313] allocate extra_fields --- lib/gpu/lal_dpd_charged.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index d8dff0a6e9..96bd049d88 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -70,10 +70,12 @@ int DPDChargedT::init(const int ntypes, } if (onetype<0) onetype=0; #endif - + int extra_fields = 4; // round up to accomodate quadruples of numtyp values + // q int success; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype); + gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype, extra_fields); + if (success!=0) return success; From afc8c752fd13cc758c78661361c479e4f9402999 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 7 Jun 2024 11:31:33 +0200 Subject: [PATCH 210/313] wrong kernel params --- lib/gpu/lal_dpd_charged.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index 96bd049d88..96cdeffbc6 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -16,7 +16,7 @@ #if defined(USE_OPENCL) #include "dpd_charged_cl.h" #elif defined(USE_CUDART) -const char *dpd=0; +const char *dpd_charged=0; #else #include "dpd_charged_cubin.h" #endif @@ -75,7 +75,7 @@ int DPDChargedT::init(const int ntypes, int success; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype, extra_fields); - + if (success!=0) return success; @@ -210,7 +210,6 @@ int DPDChargedT::loop(const int eflag, const int vflag) { &this->nbor->dev_nbor, &this->_nbor_data->begin(), &this->ans->force, &this->ans->engv, &eflag, &vflag, &ainum, &nbor_pitch, &this->atom->v, &cutsq, &this->_dtinvsqrt, - &_qqrd2e, &_g_ewald, &_lamda, &this->_seed, &this->_timestep, &_qqrd2e, &_g_ewald, &_lamda, &this->_tstat_only, &this->_threads_per_atom); From 575047c2787e457297813f54c5bdd43ad9322cc4 Mon Sep 17 00:00:00 2001 From: Evangelos Voyiatzis Date: Fri, 7 Jun 2024 14:40:21 +0200 Subject: [PATCH 211/313] Update fep.py --- tools/fep/fep.py | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/tools/fep/fep.py b/tools/fep/fep.py index c7656c5ef5..0ce1927d73 100755 --- a/tools/fep/fep.py +++ b/tools/fep/fep.py @@ -2,23 +2,40 @@ # fep.py - calculate free energy from compute fep results import sys +from argparse import ArgumentParser import math -if len(sys.argv) < 2: - print("Free Energy Perturbation") - print("usage: fep.py temperature < out.fep") - sys.exit() +def compute_fep(): -rt = 0.008314 / 4.184 * float(sys.argv[1]) # in kcal/mol + parser = ArgumentParser(description='A python script to calculate free energy from compute fep results') -v = 1.0 -sum = 0.0 -for line in sys.stdin: - if line.startswith("#"): - continue - tok = line.split() - if len(tok) == 4: - v = float(tok[3]) - sum += math.log(float(tok[2]) / v) + parser.add_argument("units", help="unit system can be lj, real or si") + parser.add_argument("Temperature", type=float, help="The temperature of the system") + parser.add_argument("InputFile", help="The name of the file with the data from compute fep.") + + args = parser.parse_args() + + r_value = {'lj': 1.0, 'real': 0.0019872036, 'si': 8.314} + + if args.units in r_value: + rt = r_value[args.units] * args.Temperature + else: + sys.exit("The provided units keyword is not valid") + + v = 1.0 + mysum = 0.0 + + with open(args.InputFile, "r") as input_file: + for line in input_file: + if line.startswith("#"): + continue + tok = line.split() + if len(tok) == 4: + v = float(tok[3]) + mysum += math.log(float(tok[2]) / v) + + print(-rt * mysum) + +if __name__ == "__main__": + compute_fep() -print(-rt * sum) From aadeb1149d7cc88335b577744cc24cdb322b403d Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 7 Jun 2024 15:14:05 +0200 Subject: [PATCH 212/313] double host write, wrong dpd cond --- lib/gpu/lal_dpd_charged.cpp | 7 +------ lib/gpu/lal_dpd_charged.cu | 10 +++++----- lib/gpu/lal_dpd_charged.h | 2 +- lib/gpu/lal_dpd_charged_ext.cpp | 6 +++--- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index 96cdeffbc6..8a86ea9cd1 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -112,13 +112,8 @@ int DPDChargedT::init(const int ntypes, this->atom->type_pack4(ntypes,lj_types,coeff,host_write,host_a0,host_gamma, host_sigma,host_cut_dpd); - // Allocate a host write buffer for data initialization - UCL_H_Vec host_rsq(lj_types*lj_types*32,*(this->ucl_device), - UCL_WRITE_ONLY); - for (int i=0; iucl_device),UCL_READ_ONLY); - this->atom->type_pack4(ntypes,lj_types,cutsq,host_rsq,host_cutsq, + this->atom->type_pack4(ntypes,lj_types,cutsq,host_write,host_cutsq, host_cut_dpdsq, host_scale, host_cut_slatersq); double special_sqrt[4]; diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 1093377122..668a950f23 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -249,7 +249,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, // apply DPD force if distance below DPD cutoff // cutsq[mtype].y -> DPD squared cutoff - if (rsq < cutsq[mtype].y && r < EPSILON) { + if (rsq < cutsq[mtype].y && r > EPSILON) { numtyp rinv=ucl_recip(r); numtyp delvx = iv.x - jv.x; @@ -350,7 +350,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, const int eflag, const int vflag, const int inum, const int nbor_pitch, const __global numtyp4 *restrict v_, - const __global numtyp4 *restrict cutsq, + const __global numtyp4 *restrict cutsq_in, const numtyp dtinvsqrt, const int seed, const int timestep, const numtyp qqrd2e, const numtyp g_ewald, const numtyp lamda, @@ -360,10 +360,10 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, atom_info(t_per_atom,ii,tid,offset); __local numtyp4 coeff[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; + __local numtyp4 cutsq[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; __local numtyp sp_lj[4]; __local numtyp sp_sqrt[4]; /// COUL Init - __local numtyp scale[MAX_SHARED_TYPES*MAX_SHARED_TYPES]; __local numtyp sp_cl[4]; if (tid<4) { sp_lj[tid]=sp_lj_in[tid]; @@ -372,7 +372,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, } if (tid DPD squared cutoff - if (rsq < cutsq[mtype].y && r < EPSILON) { + if (rsq < cutsq[mtype].y && r > EPSILON) { numtyp rinv=ucl_recip(r); numtyp delvx = iv.x - jv.x; diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_charged.h index 2b24cd1b88..60d041f5aa 100644 --- a/lib/gpu/lal_dpd_charged.h +++ b/lib/gpu/lal_dpd_charged.h @@ -66,7 +66,7 @@ class DPDCharged : public BaseDPD { /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd UCL_D_Vec coeff; - /// cutsq.x = cutsq, cutsq.y = cut_dpd_sq, cutsq.z = scale, cutsq.w = cut_slatersq + /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.z = scale, cutsq.w = cut_slatersq UCL_D_Vec cutsq; /// Special LJ values diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_charged_ext.cpp index 6899bb4e82..a8e153300a 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_charged_ext.cpp @@ -27,7 +27,7 @@ static DPDCharged DPDCMF; // --------------------------------------------------------------------------- // Allocate memory on host and device and copy constants to device // --------------------------------------------------------------------------- -int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, +int dpd_charged_gpu_init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, @@ -55,7 +55,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, dou int init_ok=0; if (world_me==0) - init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, + init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, @@ -75,7 +75,7 @@ int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, dou fflush(screen); } if (gpu_rank==i && world_me!=0) - init_ok=DPDCMF.init(ntypes, cutsq, host_a0, host_gamma, host_sigma, + init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, maxspecial, cell_size, gpu_split, screen, From f5b2eb3a80209a2b3e6ce60372a28b939300ac99 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 7 Jun 2024 15:16:54 +0200 Subject: [PATCH 213/313] Update lal_dpd_charged.cu --- lib/gpu/lal_dpd_charged.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 668a950f23..cf6c79c477 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -485,7 +485,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); _erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; numtyp prefactor = extra[j].x; - prefactor *= qqrd2e * scale[mtype] * qtmp/r; + prefactor *= qqrd2e * cutsq[mtype].z * qtmp/r; numtyp rlamdainv = r * lamdainv; numtyp exprlmdainv = ucl_exp((numtyp)-2.0*rlamdainv); numtyp slater_term = exprlmdainv*((numtyp)1.0 + ((numtyp)2.0*rlamdainv*((numtyp)1.0+rlamdainv))); From 85c345cf2d4040889e4043e47eb276db1dfafb2c Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Fri, 7 Jun 2024 16:51:32 +0200 Subject: [PATCH 214/313] duplicate calc of r --- lib/gpu/lal_dpd_charged.cu | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index cf6c79c477..8f25210a83 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -292,8 +292,6 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ numtyp r2inv=ucl_recip(rsq); numtyp _erfc; - - numtyp r = ucl_rsqrt(r2inv); numtyp grij = g_ewald * r; numtyp expm2 = ucl_exp(-grij*grij); numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); @@ -478,8 +476,6 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ numtyp r2inv=ucl_recip(rsq); numtyp _erfc; - - numtyp r = ucl_rsqrt(r2inv); numtyp grij = g_ewald * r; numtyp expm2 = ucl_exp(-grij*grij); numtyp t = ucl_recip((numtyp)1.0 + EWALD_P*grij); From 43ce6b018adeb8048b285e786b99d851084bfb3d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 01:30:35 -0400 Subject: [PATCH 215/313] update Plumed support for version 2.8.4 and 2.9.1 --- cmake/Modules/Packages/PLUMED.cmake | 4 ++-- lib/plumed/Install.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake index b1a4f3cc72..562379eb78 100644 --- a/cmake/Modules/Packages/PLUMED.cmake +++ b/cmake/Modules/Packages/PLUMED.cmake @@ -21,9 +21,9 @@ else() set(PLUMED_CONFIG_OMP "--disable-openmp") endif() -set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.8.3/plumed-src-2.8.3.tgz" +set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.9.1/plumed-src-2.9.1.tgz" CACHE STRING "URL for PLUMED tarball") -set(PLUMED_MD5 "76d23cd394eba9e6530316ed1184e219" CACHE STRING "MD5 checksum of PLUMED tarball") +set(PLUMED_MD5 "c3b2d31479c1e9ce211719d40e9efbd7" CACHE STRING "MD5 checksum of PLUMED tarball") mark_as_advanced(PLUMED_URL) mark_as_advanced(PLUMED_MD5) diff --git a/lib/plumed/Install.py b/lib/plumed/Install.py index 4a158cb31f..4713cf9196 100644 --- a/lib/plumed/Install.py +++ b/lib/plumed/Install.py @@ -17,7 +17,7 @@ parser = ArgumentParser(prog='Install.py', # settings -version = "2.8.3" +version = "2.9.1" mode = "static" # help message @@ -46,7 +46,9 @@ checksums = { \ '2.8.1' : '6bfe72ebdae63dc38a9ca27d9b0e08f8', \ '2.8.2' : '599092b6a0aa6fff992612537ad98994', \ '2.8.3' : '76d23cd394eba9e6530316ed1184e219', \ + '2.8.4' : '9f59c4f9bda86fe5bef19543c295a981', \ '2.9.0' : '661eabeebee05cf84bbf9dc23d7d5f46', \ + '2.9.1' : 'c3b2d31479c1e9ce211719d40e9efbd7', \ } # parse and process arguments From 5be5a5380142df5ac9fbbbf840b0552558296f48 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 04:10:52 -0400 Subject: [PATCH 216/313] correct documentation for added bond hybrid/kk --- doc/src/Commands_bond.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/Commands_bond.rst b/doc/src/Commands_bond.rst index fcd725d787..73235cf3c6 100644 --- a/doc/src/Commands_bond.rst +++ b/doc/src/Commands_bond.rst @@ -27,7 +27,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid ` + * :doc:`hybrid (k) ` * * * @@ -72,7 +72,7 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid (k) ` + * :doc:`hybrid ` * * * From 69a31b7da79ef42136ecf04e5904d126a084ee61 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 04:12:51 -0400 Subject: [PATCH 217/313] dependent python packages have caught up with changes in sphinx 7.3.7 --- doc/utils/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/requirements.txt b/doc/utils/requirements.txt index 816d52bf54..5bb8e3911d 100644 --- a/doc/utils/requirements.txt +++ b/doc/utils/requirements.txt @@ -1,4 +1,4 @@ -Sphinx >= 5.3.0, <7.3 +Sphinx >= 5.3.0, <8.0 sphinxcontrib-spelling sphinxcontrib-jquery git+https://github.com/akohlmey/sphinx-fortran@parallel-read From 91b9308d4f82109e362cf2f39e4d203f77e84ec8 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 07:02:18 -0400 Subject: [PATCH 218/313] initial version of pair style hybrid/molecular --- doc/src/Commands_pair.rst | 2 +- doc/src/pair_hybrid.rst | 42 +++++++++++++++++++++++++++++---------- doc/src/pair_style.rst | 1 + src/neigh_list.cpp | 19 ++++++++++-------- src/neigh_list.h | 1 + src/neigh_request.cpp | 9 +++++++++ src/neigh_request.h | 5 +++++ src/neighbor.cpp | 15 ++++++++++---- src/neighbor.h | 3 ++- src/npair_halffull.h | 12 +++++------ src/npair_skip.cpp | 12 ++++++++--- src/npair_skip.h | 14 +++++++------ src/npair_skip_respa.h | 4 ++-- src/pair_hybrid.cpp | 8 ++++++-- 14 files changed, 103 insertions(+), 44 deletions(-) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 514785c15c..0629afbf08 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -26,6 +26,7 @@ OPT. * :doc:`none ` * :doc:`zero ` * :doc:`hybrid (k) ` + * :doc:`hybrid/molecular ` * :doc:`hybrid/overlay (k) ` * :doc:`hybrid/scaled ` * :doc:`kim ` @@ -34,7 +35,6 @@ OPT. * * * - * * :doc:`adp (ko) ` * :doc:`agni (o) ` * :doc:`aip/water/2dm (t) ` diff --git a/doc/src/pair_hybrid.rst b/doc/src/pair_hybrid.rst index a33991e43e..4108aa6154 100644 --- a/doc/src/pair_hybrid.rst +++ b/doc/src/pair_hybrid.rst @@ -1,5 +1,6 @@ .. index:: pair_style hybrid .. index:: pair_style hybrid/kk +.. index:: pair_style hybrid/molecular .. index:: pair_style hybrid/overlay .. index:: pair_style hybrid/overlay/kk .. index:: pair_style hybrid/scaled @@ -9,6 +10,9 @@ pair_style hybrid command Accelerator Variants: *hybrid/kk* +pair_style hybrid/molecular command +=================================== + pair_style hybrid/overlay command ================================= @@ -23,6 +27,7 @@ Syntax .. code-block:: LAMMPS pair_style hybrid style1 args style2 args ... + pair_style hybrid/molecular factor1 style1 args factor2 style 2 args pair_style hybrid/overlay style1 args style2 args ... pair_style hybrid/scaled factor1 style1 args factor2 style 2 args ... @@ -47,6 +52,10 @@ Examples pair_coeff * * tersoff Si.tersoff Si pair_coeff * * sw Si.sw Si + pair_style hybrid/molecular lj/cut 2.5 lj/cut 2.5 + pair_coeff * * lj/cut 1 1.0 1.0 + pair_coeff * * lj/cut 2 1.5 1.0 + variable one equal ramp(1.0,0.0) variable two equal 1.0-v_one pair_style hybrid/scaled v_one lj/cut 2.5 v_two morse 2.5 @@ -56,17 +65,26 @@ Examples Description """"""""""" -The *hybrid*, *hybrid/overlay*, and *hybrid/scaled* styles enable the -use of multiple pair styles in one simulation. With the *hybrid* style, -exactly one pair style is assigned to each pair of atom types. With the -*hybrid/overlay* and *hybrid/scaled* styles, one or more pair styles can -be assigned to each pair of atom types. The assignment of pair styles -to type pairs is made via the :doc:`pair_coeff ` command. -The major difference between the *hybrid/overlay* and *hybrid/scaled* -styles is that the *hybrid/scaled* adds a scale factor for each -sub-style contribution to forces, energies and stresses. Because of the -added complexity, the *hybrid/scaled* style has more overhead and thus -may be slower than *hybrid/overlay*. +The *hybrid*, *hybrid/overlay*, *hybrid/molecular*, and *hybrid/scaled* +styles enable the use of multiple pair styles in one simulation. With +the *hybrid* style, exactly one pair style is assigned to each pair of +atom types. With the *hybrid/overlay* and *hybrid/scaled* styles, one +or more pair styles can be assigned to each pair of atom types. With +the hybrid/molecular style, pair styles are assigned to either intra- +or inter-molecular interactions. + +The assignment of pair styles to type pairs is made via the +:doc:`pair_coeff ` command. The major difference between +the *hybrid/overlay* and *hybrid/scaled* styles is that the +*hybrid/scaled* adds a scale factor for each sub-style contribution to +forces, energies and stresses. Because of the added complexity, the +*hybrid/scaled* style has more overhead and thus may be slower than +*hybrid/overlay*. + +The *hybrid/molecular* pair style accepts *only* two sub-styles: the +first is assigned to intra-molecular interactions (i.e. both atoms +have the same molecule ID), the second to inter-molecular interactions +(i.e. interacting atoms have different molecule IDs). Here are two examples of hybrid simulations. The *hybrid* style could be used for a simulation of a metal droplet on a LJ surface. The metal @@ -476,6 +494,8 @@ the same or else LAMMPS will generate an error. Pair style *hybrid/scaled* currently only works for non-accelerated pair styles and pair styles from the OPT package. +Pair style *hybrid/molecular* is not compatible with manybody potentials. + When using pair styles from the GPU package they must not be listed multiple times. LAMMPS will detect this and abort. diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 74dfce6b01..13dd922043 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -108,6 +108,7 @@ accelerated styles exist. * :doc:`none ` - turn off pairwise interactions * :doc:`hybrid ` - multiple styles of pairwise interactions +* :doc:`hybrid/molecular ` - different pair styles for intra- and inter-molecular interactions * :doc:`hybrid/overlay ` - multiple styles of superposed pairwise interactions * :doc:`hybrid/scaled ` - multiple styles of scaled superposed pairwise interactions * :doc:`zero ` - neighbor list but no interactions diff --git a/src/neigh_list.cpp b/src/neigh_list.cpp index 4bdd58eead..878ee98917 100644 --- a/src/neigh_list.cpp +++ b/src/neigh_list.cpp @@ -148,6 +148,7 @@ void NeighList::post_constructor(NeighRequest *nq) copy = nq->copy; trim = nq->trim; id = nq->id; + molskip = nq->molskip; if (nq->copy) { listcopy = neighbor->lists[nq->copylist]; @@ -157,14 +158,16 @@ void NeighList::post_constructor(NeighRequest *nq) if (nq->skip) { listskip = neighbor->lists[nq->skiplist]; - int ntypes = atom->ntypes; - iskip = new int[ntypes+1]; - memory->create(ijskip,ntypes+1,ntypes+1,"neigh_list:ijskip"); - int i,j; - for (i = 1; i <= ntypes; i++) iskip[i] = nq->iskip[i]; - for (i = 1; i <= ntypes; i++) - for (j = 1; j <= ntypes; j++) - ijskip[i][j] = nq->ijskip[i][j]; + if (!molskip) { + int ntypes = atom->ntypes; + iskip = new int[ntypes+1]; + memory->create(ijskip,ntypes+1,ntypes+1,"neigh_list:ijskip"); + int i,j; + for (i = 1; i <= ntypes; i++) iskip[i] = nq->iskip[i]; + for (i = 1; i <= ntypes; i++) + for (j = 1; j <= ntypes; j++) + ijskip[i][j] = nq->ijskip[i][j]; + } } if (nq->halffull) diff --git a/src/neigh_list.h b/src/neigh_list.h index 01e9a1c6a7..4c592772ad 100644 --- a/src/neigh_list.h +++ b/src/neigh_list.h @@ -46,6 +46,7 @@ class NeighList : protected Pointers { int kk2cpu; // 1 if this list is copied from Kokkos to CPU int copymode; // 1 if this is a Kokkos on-device copy int id; // copied from neighbor list request + int molskip; // 1/2 if this is an intra-/inter-molecular skip list // data structs to store neighbor pairs I,J and associated values diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp index 280b5c54ae..262bc5254f 100644 --- a/src/neigh_request.cpp +++ b/src/neigh_request.cpp @@ -76,6 +76,7 @@ NeighRequest::NeighRequest(LAMMPS *_lmp) : Pointers(_lmp) skip = 0; iskip = nullptr; ijskip = nullptr; + molskip = 0; // only set when command = 1; @@ -183,6 +184,8 @@ int NeighRequest::identical(NeighRequest *other) int NeighRequest::same_skip(NeighRequest *other) { + if (molskip != other->molskip) return 0; + const int ntypes = atom->ntypes; int same = 1; @@ -307,6 +310,12 @@ void NeighRequest::set_skip(int *_iskip, int **_ijskip) ijskip = _ijskip; } +void NeighRequest::set_molskip(int _molskip) +{ + skip = 1; + molskip = _molskip; +} + void NeighRequest::enable_full() { half = 0; diff --git a/src/neigh_request.h b/src/neigh_request.h index fa57922c93..caa9e05ad6 100644 --- a/src/neigh_request.h +++ b/src/neigh_request.h @@ -29,6 +29,9 @@ class NeighRequest : protected Pointers { friend class NPairSkipTrimIntel; friend class FixIntel; + public: + enum { REGULAR, INTRA, INTER }; + protected: void *requestor; // class that made request int requestor_instance; // instance of that class (only Fix, Compute, Pair) @@ -88,6 +91,7 @@ class NeighRequest : protected Pointers { int skip; // 1 if this list skips atom types from another list int *iskip; // iskip[i] if atoms of type I are not in list int **ijskip; // ijskip[i][j] if pairs of type I,J are not in list + int molskip; // 0 reqular list, 1 keep only intra-molecular entries, 2 keep inter-molecular // command_style only set if command = 1 // allows print_pair_info() to access command name @@ -137,6 +141,7 @@ class NeighRequest : protected Pointers { void set_kokkos_device(int); void set_kokkos_host(int); void set_skip(int *, int **); + void set_molskip(int); void enable_full(); void enable_ghost(); void enable_intel(); diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 63d14acb9a..59ddf87698 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -1800,10 +1800,17 @@ void Neighbor::print_pairwise_info() else out += fmt::format(", half/full from ({})",rq->halffulllist+1); } else if (rq->skip) { - if (rq->trim) - out += fmt::format(", skip trim from ({})",rq->skiplist+1); - else - out += fmt::format(", skip from ({})",rq->skiplist+1); + if (rq->molskip) { + if (rq->trim) + out += fmt::format(", molskip trim from ({})",rq->skiplist+1); + else + out += fmt::format(", molskip from ({})",rq->skiplist+1); + } else { + if (rq->trim) + out += fmt::format(", skip trim from ({})",rq->skiplist+1); + else + out += fmt::format(", skip from ({})",rq->skiplist+1); + } } out += "\n"; diff --git a/src/neighbor.h b/src/neighbor.h index 8533fe5efa..5e0165b411 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -334,7 +334,8 @@ namespace NeighConst { NP_HALF_FULL = 1 << 23, NP_OFF2ON = 1 << 24, NP_MULTI_OLD = 1 << 25, - NP_TRIM = 1 << 26 + NP_TRIM = 1 << 26, + NP_INTRA = 1 << 27 }; enum { diff --git a/src/npair_halffull.h b/src/npair_halffull.h index 41d2e37dc4..99d734dba7 100644 --- a/src/npair_halffull.h +++ b/src/npair_halffull.h @@ -53,13 +53,13 @@ typedef NPairHalffull<1, 0, 0> NPairHalffullNewton; NPairStyle(halffull/newton/skip, NPairHalffullNewton, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_ORTHO | NP_SKIP); + NP_ORTHO | NP_SKIP | NP_INTRA); typedef NPairHalffull<1, 1, 0> NPairHalffullNewtonTri; NPairStyle(halffull/newton/skip/tri, NPairHalffullNewtonTri, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_TRI | NP_SKIP); + NP_TRI | NP_SKIP | NP_INTRA); typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff, @@ -71,7 +71,7 @@ typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/skip, NPairHalffullTrimNewtoff, NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | - NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM); + NP_ORTHO | NP_TRI | NP_SKIP | NP_INTRA | NP_TRIM); typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/ghost, @@ -83,7 +83,7 @@ typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/skip/ghost, NPairHalffullTrimNewtoff, NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | - NP_ORTHO | NP_TRI | NP_SKIP | NP_GHOST | NP_TRIM); + NP_ORTHO | NP_TRI | NP_SKIP | NP_INTRA | NP_GHOST | NP_TRIM); typedef NPairHalffull<1, 0, 1> NPairHalffullTrimNewton; NPairStyle(halffull/trim/newton, @@ -101,13 +101,13 @@ typedef NPairHalffull<1, 0, 1> NPairHalffullTrimNewton; NPairStyle(halffull/trim/newton/skip, NPairHalffullTrimNewton, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_ORTHO | NP_SKIP | NP_TRIM); + NP_ORTHO | NP_SKIP | NP_INTRA | NP_TRIM); typedef NPairHalffull<1, 1, 1> NPairHalffullTrimNewtonTri; NPairStyle(halffull/trim/newton/tri/skip, NPairHalffullTrimNewtonTri, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_TRI | NP_SKIP | NP_TRIM); + NP_TRI | NP_SKIP | NP_INTRA | NP_TRIM); // clang-format on #else diff --git a/src/npair_skip.cpp b/src/npair_skip.cpp index 6afb43bc16..91d94edea0 100644 --- a/src/npair_skip.cpp +++ b/src/npair_skip.cpp @@ -17,6 +17,7 @@ #include "error.h" #include "my_page.h" #include "neigh_list.h" +#include "neigh_request.h" using namespace LAMMPS_NS; @@ -41,11 +42,13 @@ void NPairSkipTemp::build(NeighList *list) int *type = atom->type; int nlocal = atom->nlocal; + tagint *molecule = atom->molecule; int *ilist = list->ilist; int *numneigh = list->numneigh; int **firstneigh = list->firstneigh; MyPage *ipage = list->ipage; + int molskip = list->molskip; int *ilist_skip = list->listskip->ilist; int *numneigh_skip = list->listskip->numneigh; @@ -71,7 +74,8 @@ void NPairSkipTemp::build(NeighList *list) for (ii = 0; ii < num_skip; ii++) { i = ilist_skip[ii]; itype = type[i]; - if (iskip[itype]) continue; + + if (!molskip && iskip[itype]) continue; if (TRIM) { xtmp = x[i][0]; @@ -90,8 +94,10 @@ void NPairSkipTemp::build(NeighList *list) for (jj = 0; jj < jnum; jj++) { joriginal = jlist[jj]; j = joriginal & NEIGHMASK; - if (ijskip[itype][type[j]]) continue; - + if (!molskip && ijskip[itype][type[j]]) continue; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; + if (TRIM) { delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; diff --git a/src/npair_skip.h b/src/npair_skip.h index cb0d201555..31c4910c93 100644 --- a/src/npair_skip.h +++ b/src/npair_skip.h @@ -16,41 +16,43 @@ typedef NPairSkipTemp<0> NPairSkip; NPairStyle(skip, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipTemp<0> NPairSkip; NPairStyle(skip/ghost, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_GHOST); typedef NPairSkipTemp<0> NPairSkipSize; NPairStyle(skip/half/size, NPairSkipSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipTemp<1> NPairSkipTrim; NPairStyle(skip/trim, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); typedef NPairSkipTemp<1> NPairSkipTrim; NPairStyle(skip/ghost/trim, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM); typedef NPairSkipTemp<1> NPairSkipTrimSize; NPairStyle(skip/trim/half/size, NPairSkipTrimSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); // clang-format on diff --git a/src/npair_skip_respa.h b/src/npair_skip_respa.h index af25e84faf..00d5b7f70b 100644 --- a/src/npair_skip_respa.h +++ b/src/npair_skip_respa.h @@ -16,14 +16,14 @@ typedef NPairSkipRespaTemp<0> NPairSkipRespa; NPairStyle(skip/half/respa, NPairSkipRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipRespaTemp<1> NPairSkipTrimRespa; NPairStyle(skip/trim/half/respa, NPairSkipTrimRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index d257973617..c6a1b4695f 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -321,11 +321,12 @@ void PairHybrid::settings(int narg, char **arg) iarg = 0; nstyles = 0; + const std::string mystyle = force->pair_style; while (iarg < narg) { if (utils::strmatch(arg[iarg],"^hybrid")) - error->all(FLERR,"Pair style hybrid cannot have hybrid as a sub-style"); + error->all(FLERR,"Pair style {} cannot have hybrid as a sub-style", mystyle); if (strcmp(arg[iarg],"none") == 0) - error->all(FLERR,"Pair style hybrid cannot have none as a sub-style"); + error->all(FLERR,"Pair style {} cannot have none as a sub-style", mystyle); styles[nstyles] = force->new_pair(arg[iarg],1,dummy); keywords[nstyles] = force->store_style(arg[iarg],0); @@ -345,6 +346,9 @@ void PairHybrid::settings(int narg, char **arg) nstyles++; } + if (utils::strmatch(mystyle,"^hybrid/molecular") && (nstyles != 2)) + error->all(FLERR, "Pair style {} must have exactly two sub-styles", mystyle); + delete[] cutmax_style; cutmax_style = new double[nstyles]; memset(cutmax_style, 0, nstyles*sizeof(double)); From 3f901f2d8e393e7727fd0eea476fcdcd7da8751b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 07:03:14 -0400 Subject: [PATCH 219/313] reset manybody_flag if threebody terms are turned on or off in sw pair style --- src/MANYBODY/pair_sw.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/MANYBODY/pair_sw.cpp b/src/MANYBODY/pair_sw.cpp index 18b642967c..74d1ae1871 100644 --- a/src/MANYBODY/pair_sw.cpp +++ b/src/MANYBODY/pair_sw.cpp @@ -250,6 +250,7 @@ void PairSW::settings(int narg, char ** arg) // pair_coeff * * and can enable the single function. one_coeff = skip_threebody_flag ? 0 : 1; single_enable = skip_threebody_flag ? 1 : 0; + manybody_flag = skip_threebody_flag ? 0 : 1; iarg += 2; } else error->all(FLERR, "Illegal pair_style sw keyword: {}", arg[iarg]); } From 117786aa7b44440c977c732839be1fb84b16b012 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 10:30:57 -0400 Subject: [PATCH 220/313] support molskip for r-RESPA neighbor lists --- src/npair_skip_respa.cpp | 17 +++++++++++++---- src/pair_hybrid.cpp | 3 +-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/npair_skip_respa.cpp b/src/npair_skip_respa.cpp index 4c3dda91eb..211aa6142a 100644 --- a/src/npair_skip_respa.cpp +++ b/src/npair_skip_respa.cpp @@ -18,6 +18,7 @@ #include "error.h" #include "my_page.h" #include "neigh_list.h" +#include "neigh_request.h" using namespace LAMMPS_NS; @@ -39,11 +40,13 @@ void NPairSkipRespaTemp::build(NeighList *list) int *neighptr, *jlist, *neighptr_inner, *neighptr_middle; int *type = atom->type; + tagint *molecule = atom->molecule; int *ilist = list->ilist; int *numneigh = list->numneigh; int **firstneigh = list->firstneigh; MyPage *ipage = list->ipage; + int molskip = list->molskip; int *ilist_skip = list->listskip->ilist; int *numneigh_skip = list->listskip->numneigh; @@ -90,7 +93,7 @@ void NPairSkipRespaTemp::build(NeighList *list) for (ii = 0; ii < inum_skip; ii++) { i = ilist_skip[ii]; itype = type[i]; - if (iskip[itype]) continue; + if (!molskip && iskip[itype]) continue; if (TRIM) { xtmp = x[i][0]; @@ -114,7 +117,9 @@ void NPairSkipRespaTemp::build(NeighList *list) for (jj = 0; jj < jnum; jj++) { joriginal = jlist[jj]; j = joriginal & NEIGHMASK; - if (ijskip[itype][type[j]]) continue; + if (!molskip && ijskip[itype][type[j]]) continue; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; if (TRIM) { delx = xtmp - x[j][0]; @@ -135,7 +140,9 @@ void NPairSkipRespaTemp::build(NeighList *list) for (jj = 0; jj < jnum; jj++) { joriginal = jlist[jj]; j = joriginal & NEIGHMASK; - if (ijskip[itype][type[j]]) continue; + if (!molskip && ijskip[itype][type[j]]) continue; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; if (TRIM) { delx = xtmp - x[j][0]; @@ -157,7 +164,9 @@ void NPairSkipRespaTemp::build(NeighList *list) for (jj = 0; jj < jnum; jj++) { joriginal = jlist[jj]; j = joriginal & NEIGHMASK; - if (ijskip[itype][type[j]]) continue; + if (!molskip && ijskip[itype][type[j]]) continue; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; if (TRIM) { delx = xtmp - x[j][0]; diff --git a/src/pair_hybrid.cpp b/src/pair_hybrid.cpp index c6a1b4695f..09f233a4f6 100644 --- a/src/pair_hybrid.cpp +++ b/src/pair_hybrid.cpp @@ -398,8 +398,7 @@ void PairHybrid::flags() for (m = 0; m < nstyles; m++) { if (styles[m]) comm_forward = MAX(comm_forward,styles[m]->comm_forward); if (styles[m]) comm_reverse = MAX(comm_reverse,styles[m]->comm_reverse); - if (styles[m]) comm_reverse_off = MAX(comm_reverse_off, - styles[m]->comm_reverse_off); + if (styles[m]) comm_reverse_off = MAX(comm_reverse_off,styles[m]->comm_reverse_off); } // single_enable = 1 if all sub-styles are set From 5fb1776fa10c5e3fa865defbe6632695a97eacc9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 10:31:37 -0400 Subject: [PATCH 221/313] add implementation of pair style hybrid/molecular --- src/pair_hybrid_molecular.cpp | 162 ++++++++++++++++++++++++++++++++++ src/pair_hybrid_molecular.h | 40 +++++++++ 2 files changed, 202 insertions(+) create mode 100644 src/pair_hybrid_molecular.cpp create mode 100644 src/pair_hybrid_molecular.h diff --git a/src/pair_hybrid_molecular.cpp b/src/pair_hybrid_molecular.cpp new file mode 100644 index 0000000000..3f70896467 --- /dev/null +++ b/src/pair_hybrid_molecular.cpp @@ -0,0 +1,162 @@ +/* ---------------------------------------------------------------------- + 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 "pair_hybrid_molecular.h" + +#include "atom.h" +#include "error.h" +#include "neigh_request.h" +#include "neighbor.h" + +using namespace LAMMPS_NS; + +/* ---------------------------------------------------------------------- */ + +PairHybridMolecular::PairHybridMolecular(LAMMPS *lmp) : PairHybridOverlay(lmp) {} + +/* ---------------------------------------------------------------------- + modify neighbor list requests +------------------------------------------------------------------------- */ + +void PairHybridMolecular::init_style() +{ + if (!atom->molecule_flag) + error->all(FLERR, "Pair style hybrid/molecular requires atom attribute molecule"); + if (manybody_flag) + error->all(FLERR, "Pair style hybrid/molecular is not compatible with manybody potentials"); + + PairHybridOverlay::init_style(); + + // modify neighbor list requests + + bool first = true; + for (auto &request : neighbor->get_pair_requests()) { + if (first) { + request->set_molskip(NeighRequest::INTER); + first = false; + } else { + request->set_molskip(NeighRequest::INTRA); + } + } + born_matrix_enable = 0; +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairHybridMolecular::init_one(int i, int j) +{ + // if I,J is not set explicitly: + // perform mixing only if I,I sub-style = J,J sub-style + // plus I,I and J,J need the same number of substyles + + if (setflag[i][j] == 0) { + if (nmap[i][i] != nmap[j][j]) + error->one(FLERR,"All pair coeffs are not set"); + int num = 0; + for (int k = 0; k < nmap[i][i]; ++k) { + for (int l = 0; l < nmap[j][j]; ++l) { + if (map[i][i][k] == map[j][j][l]) { + map[i][j][num] = map[i][i][k]; + ++num; + nmap[i][j] = num; + } + } + } + if (nmap[i][i] != nmap[i][j]) + error->one(FLERR,"All pair coeffs are not set"); + } + nmap[j][i] = nmap[i][j]; + + // call init/mixing for all sub-styles of I,J + // set cutsq in sub-style just as Pair::init() does via call to init_one() + // set cutghost for I,J and J,I just as sub-style does + // sum tail corrections for I,J + // return max cutoff of all sub-styles assigned to I,J + // if no sub-styles assigned to I,J (pair_coeff none), cutmax = 0.0 returned + + double cutmax = 0.0; + cutghost[i][j] = cutghost[j][i] = 0.0; + if (tail_flag) etail_ij = ptail_ij = 0.0; + + for (int k = 0; k < nmap[i][j]; k++) { + map[j][i][k] = map[i][j][k]; + double cut = styles[map[i][j][k]]->init_one(i,j); + if (styles[map[i][j][k]]->did_mix) did_mix = true; + styles[map[i][j][k]]->cutsq[i][j] = styles[map[i][j][k]]->cutsq[j][i] = cut*cut; + if (styles[map[i][j][k]]->ghostneigh) + cutghost[i][j] = cutghost[j][i] = MAX(cutghost[i][j],styles[map[i][j][k]]->cutghost[i][j]); + if (tail_flag) { + etail_ij += styles[map[i][j][k]]->etail_ij; + ptail_ij += styles[map[i][j][k]]->ptail_ij; + } + cutmax = MAX(cutmax,cut); + + int istyle; + for (istyle = 0; istyle < nstyles; istyle++) + if (styles[istyle] == styles[map[i][j][k]]) break; + + if (styles[istyle]->trim_flag) { + + if (cut > cutmax_style[istyle]) { + cutmax_style[istyle] = cut; + + for (auto &request : neighbor->get_pair_requests()) { + if (styles[istyle] == request->get_requestor()) { + request->set_cutoff(cutmax_style[istyle]); + break; + } + } + } + } + } + return cutmax; +} + +/* ---------------------------------------------------------------------- + call sub-style to compute single interaction + error if sub-style does not support single() call + since overlay could have multiple sub-styles, sum results explicitly +------------------------------------------------------------------------- */ + +double PairHybridMolecular::single(int i, int j, int itype, int jtype, double rsq, + double factor_coul, double factor_lj, double &fforce) +{ + if (nmap[itype][jtype] == 0) + error->one(FLERR,"Invoked pair single() on sub-style none"); + + double fone; + fforce = 0.0; + double esum = 0.0; + if (nmap[itype][jtype] == 2) { + int m = 0; + if (atom->molecule[i] != atom->molecule[j]) m = 1; + const int mystyle = map[itype][jtype][m]; + if (rsq < styles[mystyle]->cutsq[itype][jtype]) { + if (styles[mystyle]->single_enable == 0) + error->one(FLERR,"Pair hybrid/molecular sub-style {} does not support single() call", + keywords[mystyle]); + + if ((special_lj[mystyle] != nullptr) || (special_coul[mystyle] != nullptr)) + error->one(FLERR,"Pair hybrid/molecular single() calls do not support per sub-style " + "special bond values"); + + esum += styles[mystyle]->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fone); + fforce += fone; + } + } + + if (single_extra) copy_svector(itype,jtype); + return esum; +} diff --git a/src/pair_hybrid_molecular.h b/src/pair_hybrid_molecular.h new file mode 100644 index 0000000000..4493de777e --- /dev/null +++ b/src/pair_hybrid_molecular.h @@ -0,0 +1,40 @@ +/* -*- 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 PAIR_CLASS +// clang-format off +PairStyle(hybrid/molecular,PairHybridMolecular); +// clang-format on +#else + +#ifndef LMP_PAIR_HYBRID_MOLECULAR_H +#define LMP_PAIR_HYBRID_MOLECULAR_H + +#include "pair_hybrid_overlay.h" + +namespace LAMMPS_NS { + +class PairHybridMolecular : public PairHybridOverlay { + public: + PairHybridMolecular(class LAMMPS *); + + void init_style() override; + double init_one(int, int) override; + + double single(int, int, int, int, double, double, double, double &) override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif From 1f0cd8be2a8062c68d2975b264c00b2af52c6293 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 11:40:34 -0400 Subject: [PATCH 222/313] fix neighbor list request bug --- src/pair_hybrid_molecular.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pair_hybrid_molecular.cpp b/src/pair_hybrid_molecular.cpp index 3f70896467..67b654da61 100644 --- a/src/pair_hybrid_molecular.cpp +++ b/src/pair_hybrid_molecular.cpp @@ -42,10 +42,10 @@ void PairHybridMolecular::init_style() bool first = true; for (auto &request : neighbor->get_pair_requests()) { if (first) { - request->set_molskip(NeighRequest::INTER); + request->set_molskip(NeighRequest::INTRA); first = false; } else { - request->set_molskip(NeighRequest::INTRA); + request->set_molskip(NeighRequest::INTER); } } born_matrix_enable = 0; From f442cb4f6579641f8455a175c1145042c2f1db36 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 11:44:35 -0400 Subject: [PATCH 223/313] add unit tests for pair style hybrid/molecular --- .../tests/mol-pair-hybrid_molecular.yaml | 100 +++++++++++++++ .../mol-pair-hybrid_molecular_lj_morse.yaml | 119 ++++++++++++++++++ 2 files changed, 219 insertions(+) create mode 100644 unittest/force-styles/tests/mol-pair-hybrid_molecular.yaml create mode 100644 unittest/force-styles/tests/mol-pair-hybrid_molecular_lj_morse.yaml diff --git a/unittest/force-styles/tests/mol-pair-hybrid_molecular.yaml b/unittest/force-styles/tests/mol-pair-hybrid_molecular.yaml new file mode 100644 index 0000000000..6bdf3b679d --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-hybrid_molecular.yaml @@ -0,0 +1,100 @@ +--- +lammps_version: 17 Apr 2024 +tags: +date_generated: Sun Jun 9 11:41:13 2024 +epsilon: 1e-13 +skip_tests: +prerequisites: ! | + atom full + pair lj/cut + pair hybrid/molecular +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify shift yes +input_file: in.fourmol +pair_style: hybrid/molecular lj/cut 8.0 lj/cut 8.0 +pair_coeff: ! | + 1 1 lj/cut 1 0.02 2.5 + 2 2 lj/cut 1 0.005 1.0 + 2 4 lj/cut 1 0.005 0.5 + 3 3 lj/cut 1 0.02 3.2 + 4 4 lj/cut 1 0.015 3.1 + 5 5 lj/cut 1 0.015 3.1 + 1 1 lj/cut 2 0.02 2.5 + 2 2 lj/cut 2 0.005 1.0 + 2 4 lj/cut 2 0.005 0.5 + 3 3 lj/cut 2 0.02 3.2 + 4 4 lj/cut 2 0.015 3.1 + 5 5 lj/cut 2 0.015 3.1 +extract: ! "" +natoms: 29 +init_vdwl: 749.2470096189497 +init_coul: 0 +init_stress: ! |2- + 2.1793857186503237e+03 2.1988957679770601e+03 4.6653994738862348e+03 -7.5956544622684351e+02 2.4751393539193327e+01 6.6652061873806679e+02 +init_forces: ! |2 + 1 -2.3333390274530565e+01 2.6994567613591136e+02 3.3272827850621587e+02 + 2 1.5828554630423909e+02 1.3025008843536872e+02 -1.8629682358915150e+02 + 3 -1.3528903744071786e+02 -3.8704313350789641e+02 -1.4568978426110147e+02 + 4 -7.8711096705734178e+00 2.1350518625352004e+00 -5.5954532185292400e+00 + 5 -2.5176757267276137e+00 -4.0521510680612876e+00 1.2152704057983799e+01 + 6 -8.3190665562047559e+02 9.6394165349388811e+02 1.1509101492424440e+03 + 7 5.8203416066164465e+01 -3.3609013622052356e+02 -1.7179626006587687e+03 + 8 1.4451392646293456e+02 -1.0927476052490437e+02 3.9990594285329479e+02 + 9 7.9156945283109025e+01 8.5273009784086469e+01 3.5032175698457496e+02 + 10 5.3118875219106917e+02 -6.1040990846582008e+02 -1.8355872692632028e+02 + 11 -2.3530157265571860e+00 -5.9077640075588906e+00 -9.6590723956614433e+00 + 12 1.7527155197359406e+01 1.0633119514682473e+01 -7.9254397903886158e+00 + 13 8.0986409580712841e+00 -3.2098088269317300e+00 -1.4896399871387667e-01 + 14 -3.3852721291218524e+00 6.8636181224987947e-01 -8.7507190862837803e+00 + 15 -2.0454999188607306e-01 8.4846165523012136e+00 3.0131615419840623e+00 + 16 4.6326331471561195e+02 -3.3087730492363477e+02 -1.1893030175606582e+03 + 17 -4.5334322060634048e+02 3.1554297967975305e+02 1.2058423415744451e+03 + 18 -1.8862629870158503e-02 -3.3402022492930034e-02 3.1000492146377390e-02 + 19 3.1843079948447594e-04 -2.3918628211596124e-04 1.7427252652160224e-03 + 20 -9.9760831169755002e-04 -1.0209184785886856e-03 3.6910973051849135e-04 + 21 -7.1566158640374354e+01 -8.1615716383825756e+01 2.2589571940670788e+02 + 22 -1.0808840769631149e+02 -2.6193799449067580e+01 -1.6957912849816358e+02 + 23 1.7964463850759611e+02 1.0782102722442450e+02 -5.6305812731665995e+01 + 24 3.6591423637378952e+01 -2.1181597497621908e+02 1.1218307103182993e+02 + 25 -1.4851496072162067e+02 2.3907129270267117e+01 -1.2485640694398953e+02 + 26 1.1191134671510581e+02 1.8789783424990625e+02 1.2650143102803206e+01 + 27 5.1810412832328005e+01 -2.2705468907750404e+02 9.0849153441059272e+01 + 28 -1.8041315533250560e+02 7.7534079082878250e+01 -1.2206962452216493e+02 + 29 1.2861063251415737e+02 1.4952718246094852e+02 3.1216040111076957e+01 +run_vdwl: 719.4532389988315 +run_coul: 0 +run_stress: ! |2- + 2.1330157554553725e+03 2.1547730555430494e+03 4.3976512412988704e+03 -7.3873325485023713e+02 4.1743707190785464e+01 6.2788040986774649e+02 +run_forces: ! |2 + 1 -2.0299419744961813e+01 2.6686193379336868e+02 3.2358785871037435e+02 + 2 1.5298617928501707e+02 1.2596516341411086e+02 -1.7961292655320207e+02 + 3 -1.3353630670276331e+02 -3.7923748676909099e+02 -1.4291839777232488e+02 + 4 -7.8374717836014449e+00 2.1276610789788282e+00 -5.5845014473593917e+00 + 5 -2.5014258629959465e+00 -4.0250131424457543e+00 1.2103512372172734e+01 + 6 -8.0681466162480240e+02 9.2165651041424792e+02 1.0270802401119468e+03 + 7 5.5780302775854636e+01 -3.1117544157318952e+02 -1.5746997989226002e+03 + 8 1.3452983973683914e+02 -1.0064660034658647e+02 3.8851792520911863e+02 + 9 7.6746213900459239e+01 8.2501469902247337e+01 3.3944351209160595e+02 + 10 5.2128033526109800e+02 -5.9920098832868109e+02 -1.8126029871233905e+02 + 11 -2.3573118088794365e+00 -5.8616944553482799e+00 -9.6049808813641686e+00 + 12 1.7503975897697526e+01 1.0626930302269722e+01 -8.0603160114673926e+00 + 13 8.0530313324242382e+00 -3.1756495175042607e+00 -1.4618315691984204e-01 + 14 -3.3416065166863160e+00 6.6492606318663194e-01 -8.6345131440736740e+00 + 15 -2.2253843262483208e-01 8.5025661635305205e+00 3.0369735873547175e+00 + 16 4.3476329769010198e+02 -3.1171099668258080e+02 -1.1135222104230593e+03 + 17 -4.2469864617016134e+02 2.9615424659116553e+02 1.1302578406458213e+03 + 18 -1.8849988250623853e-02 -3.3371648038832503e-02 3.0986306282264790e-02 + 19 3.0940278115793517e-04 -2.4634536779368854e-04 1.7433360016754921e-03 + 20 -9.8648131231171901e-04 -1.0112587092668940e-03 3.6932949186791977e-04 + 21 -7.0490777148272102e+01 -7.9749189729874402e+01 2.2171013458550721e+02 + 22 -1.0638722739944252e+02 -2.5949513934649758e+01 -1.6645597092015180e+02 + 23 1.7686805727889882e+02 1.0571023691370021e+02 -5.5243362166860535e+01 + 24 3.8206035227327128e+01 -2.1022829679057401e+02 1.1260716393332925e+02 + 25 -1.4918888258035886e+02 2.3762162241718102e+01 -1.2549193847418989e+02 + 26 1.1097064525776705e+02 1.8645512086371158e+02 1.2861565481437628e+01 + 27 5.0800867695850577e+01 -2.2296598219372004e+02 8.8607407764830413e+01 + 28 -1.7694198509380672e+02 7.6029979926844575e+01 -1.1950523558040683e+02 + 29 1.2614900659680345e+02 1.4694257504728049e+02 3.0893400701043564e+01 +... diff --git a/unittest/force-styles/tests/mol-pair-hybrid_molecular_lj_morse.yaml b/unittest/force-styles/tests/mol-pair-hybrid_molecular_lj_morse.yaml new file mode 100644 index 0000000000..17fb89dc4f --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-hybrid_molecular_lj_morse.yaml @@ -0,0 +1,119 @@ +--- +lammps_version: 17 Apr 2024 +tags: +date_generated: Sun Jun 9 11:41:13 2024 +epsilon: 1e-13 +skip_tests: +prerequisites: ! | + atom full + pair lj/cut + pair morse + pair hybrid/molecular +pre_commands: ! "" +post_commands: ! | + pair_modify mix arithmetic + pair_modify shift yes +input_file: in.fourmol +pair_style: hybrid/molecular lj/cut 8.0 morse 8.0 +pair_coeff: ! | + 1 1 lj/cut 0.02 2.5 + 1 2 lj/cut 0.01 1.75 + 1 3 lj/cut 0.02 2.85 + 1 4 lj/cut 0.01732050807568877293 2.8 + 1 5 lj/cut 0.01732050807568877293 2.8 + 2 2 lj/cut 0.005 1.0 + 2 3 lj/cut 0.01 2.1 + 2 4 lj/cut 0.005 0.5 + 2 5 lj/cut 0.00866025403784438646 2.05 + 3 3 lj/cut 0.02 3.2 + 3 4 lj/cut 0.01732050807568877293 3.15 + 3 5 lj/cut 0.01732050807568877293 3.15 + 4 4 lj/cut 0.015 3.1 + 4 5 lj/cut 0.015 3.1 + 5 5 lj/cut 0.015 3.1 + 1 1 morse 0.0202798941614106 2.78203488021395 2.725417159299 + 1 2 morse 0.0101167811264648 3.9793050302425 1.90749569018897 + 1 3 morse 0.0202934330695928 2.43948720203264 3.10711749999622 + 1 4 morse 0.0175731334238374 2.48316585521317 3.05258880102438 + 1 5 morse 0.0175731334238374 2.48316585521317 3.05258880102438 + 2 2 morse 0.00503064360487288 6.98433077606902 1.08960295117864 + 2 3 morse 0.0101296013842819 3.31380153807866 2.28919067558352 + 2 4 morse 0.00497405122588691 14.0508902925745 0.544416409093563 + 2 5 morse 0.00877114211614446 3.39491256196178 2.23466262511073 + 3 3 morse 0.0203039874239943 2.17204344301477 3.48881895084762 + 3 4 morse 0.0175825321440736 2.20660439192238 3.43428999287994 + 3 5 morse 0.0175825321440736 2.20660439192238 3.43428999287994 + 4 4 morse 0.0152259201379927 2.24227873774009 3.37976131582396 + 4 5 morse 0.0152259201379927 2.24227873774009 3.37976131582396 + 5 5 morse 0.0152259201379927 2.24227873774009 3.37976131582396 +extract: ! "" +natoms: 29 +init_vdwl: 642.2857035487534 +init_coul: 0 +init_stress: ! |2- + 1.5446101412530770e+03 1.7762864877230827e+03 4.3406629723991382e+03 -2.4168966825090698e+02 -4.2399281241000449e+02 1.0313398732648857e+03 +init_forces: ! |2 + 1 -2.3337658999820331e+01 2.6994849929388920e+02 3.3272731927204762e+02 + 2 1.5828475525620013e+02 1.3025198646645657e+02 -1.8629727921784635e+02 + 3 -1.3530883593401191e+02 -3.8702990176780906e+02 -1.4568955729804821e+02 + 4 -7.8720974048138279e+00 2.1357285334450031e+00 -5.5956697614574145e+00 + 5 -2.5179872246085657e+00 -4.0521698308193113e+00 1.2152426584580066e+01 + 6 -1.0627539753780246e+02 3.7096636535889553e+02 1.6577829288882351e+03 + 7 6.2545311732649182e+01 -3.3857732069504033e+02 -1.7085638850072914e+03 + 8 -5.8544805218664203e+02 4.8619364551174579e+02 -1.1637016110669298e+02 + 9 7.9157108381891348e+01 8.5271268694585373e+01 3.5031950365280102e+02 + 10 5.3119792393751504e+02 -6.1042010285634149e+02 -1.8355328074325874e+02 + 11 -2.3525975498215241e+00 -5.9087312467830966e+00 -9.6592450379633981e+00 + 12 1.7514418718210869e+01 1.0633490551535797e+01 -7.9269392455530774e+00 + 13 8.0989976759274995e+00 -3.2092537736156967e+00 -1.4857368826935238e-01 + 14 -3.3831155658252769e+00 6.8583230320825528e-01 -8.7521044176224088e+00 + 15 -2.0078689909299524e-01 8.4842702953333049e+00 3.0127255727602438e+00 + 16 4.6326713730462569e+02 -3.3088113342819690e+02 -1.1892994362776039e+03 + 17 -4.5333858978430715e+02 3.1553830929611308e+02 1.2058459850635415e+03 + 18 -2.0452760511035117e-02 -3.1643654311568722e-02 2.7038063904994043e-02 + 19 6.7683676563436612e-04 5.5257878746558435e-04 3.4368881128008698e-04 + 20 -7.2687428125721442e-04 -6.4369255876917293e-04 -7.3055429537143658e-05 + 21 -7.1559739956792001e+01 -8.1623086552077027e+01 2.2588907386171752e+02 + 22 -1.0808827580116072e+02 -2.6193999003846525e+01 -1.6957935616989226e+02 + 23 1.7964485683675787e+02 1.0782085824265097e+02 -5.6306005220676077e+01 + 24 3.6592705490564995e+01 -2.1181065162415683e+02 1.1218892889291895e+02 + 25 -1.4851386780240065e+02 2.3908077402265249e+01 -1.2485428291933182e+02 + 26 1.1191162087301427e+02 1.8789805761651786e+02 1.2650515090480996e+01 + 27 5.1805674347396028e+01 -2.2705907095144718e+02 9.0852216146745278e+01 + 28 -1.8041330407833553e+02 7.7533936594765862e+01 -1.2206953762508090e+02 + 29 1.2861029896870866e+02 1.4952683033680830e+02 3.1216382013473979e+01 +run_vdwl: 612.532027437114 +run_coul: 0 +run_stress: ! |2- + 1.5079612443981077e+03 1.7300922919292559e+03 4.0645404509935297e+03 -2.2501656863720930e+02 -3.8440649220519191e+02 9.6872117407090468e+02 +run_forces: ! |2 + 1 -2.0303664163328520e+01 2.6686344032747223e+02 3.2358595259116754e+02 + 2 1.5298537986232245e+02 1.2596704781215615e+02 -1.7961336269199933e+02 + 3 -1.3340899705451542e+02 -3.7937983996408559e+02 -1.4304731523709151e+02 + 4 -7.8384621494638589e+00 2.1283385602122546e+00 -5.5847156581558837e+00 + 5 -2.5017213737297879e+00 -4.0250398342732856e+00 1.2103221315331954e+01 + 6 -1.0069389067343234e+02 3.4070704568948952e+02 1.4995989516904360e+03 + 7 5.6637967265264535e+01 -3.0800622792471370e+02 -1.5506690902144287e+03 + 8 -5.6211472712331181e+02 4.6807109251305587e+02 -1.0712697415342610e+02 + 9 7.6069407842570087e+01 8.0619386602314336e+01 3.3418245682682038e+02 + 10 5.1153094792744940e+02 -5.8811350830044319e+02 -1.7678443640175220e+02 + 11 -2.3568347685072353e+00 -5.8621926046697821e+00 -9.6044928327397194e+00 + 12 1.7464493846680174e+01 1.0623724119993449e+01 -8.0428896399820058e+00 + 13 8.0533880511151636e+00 -3.1750913604087598e+00 -1.4579751155151741e-01 + 14 -3.3394709175794697e+00 6.6440083564233665e-01 -8.6358918170724337e+00 + 15 -2.1889102849274136e-01 8.5021207266300767e+00 3.0365920030191385e+00 + 16 4.3476429812120438e+02 -3.1171100998816553e+02 -1.1135203700101538e+03 + 17 -4.2469867717957146e+02 2.9615706504039451e+02 1.1302529422580635e+03 + 18 -2.0438484585882859e-02 -3.1629705308846789e-02 2.7018991453856001e-02 + 19 6.6852492737214141e-04 5.4625495751892833e-04 3.4152455215868423e-04 + 20 -7.1620896561888831e-04 -6.3500663583982407e-04 -7.1700429767679216e-05 + 21 -7.0484355349417541e+01 -7.9756579011007801e+01 2.2170349595393003e+02 + 22 -1.0638710558378827e+02 -2.5949713015442118e+01 -1.6645620880910886e+02 + 23 1.7686828769914484e+02 1.0571007956441812e+02 -5.5243556600722584e+01 + 24 3.8207315780355771e+01 -2.1022299522635379e+02 1.1261302962088173e+02 + 25 -1.4918780612527124e+02 2.3763111781582175e+01 -1.2548982817638399e+02 + 26 1.1097093258138914e+02 1.8645536456663984e+02 1.2861936841695268e+01 + 27 5.0796145560529055e+01 -2.2297034959629724e+02 8.8610475497234873e+01 + 28 -1.7694213444502824e+02 7.6029840540845129e+01 -1.1950515191029582e+02 + 29 1.2614865956603674e+02 1.4694220660200173e+02 3.0893738250707873e+01 +... From 325350dce48032590620f5679072e9fa8ad6c07b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 9 Jun 2024 12:03:40 -0400 Subject: [PATCH 224/313] small tweaks --- src/OPENMP/npair_skip_omp.h | 26 ++++++++++++++------------ src/neigh_request.cpp | 2 +- src/neighbor.cpp | 1 + src/npair_skip.cpp | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/OPENMP/npair_skip_omp.h b/src/OPENMP/npair_skip_omp.h index 937304ad3f..fe25174f5e 100644 --- a/src/OPENMP/npair_skip_omp.h +++ b/src/OPENMP/npair_skip_omp.h @@ -19,71 +19,73 @@ NPairStyle(skip/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/respa/omp, NPairSkipRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/size/omp, NPairSkipSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/omp, NPairSkipSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/oneside/omp, NPairSkipSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/ghost/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP | NP_GHOST); NPairStyle(skip/trim/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/respa/omp, NPairSkipTrimRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/size/omp, NPairSkipTrimSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/omp, NPairSkipTrimSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/oneside/omp, NPairSkipTrimSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/ghost/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | + NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP | NP_GHOST); // clang-format off diff --git a/src/neigh_request.cpp b/src/neigh_request.cpp index 262bc5254f..77e71c6860 100644 --- a/src/neigh_request.cpp +++ b/src/neigh_request.cpp @@ -76,7 +76,7 @@ NeighRequest::NeighRequest(LAMMPS *_lmp) : Pointers(_lmp) skip = 0; iskip = nullptr; ijskip = nullptr; - molskip = 0; + molskip = REGULAR; // only set when command = 1; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 59ddf87698..24c83d92fd 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2170,6 +2170,7 @@ int Neighbor::choose_pair(NeighRequest *rq) if (!rq->ssa != !(mask & NP_SSA)) continue; if (!rq->skip != !(mask & NP_SKIP)) continue; + if (!(rq->molskip > NeighRequest::REGULAR) != !(mask & NP_INTRA)) continue; if (!rq->trim != !(mask & NP_TRIM)) continue; diff --git a/src/npair_skip.cpp b/src/npair_skip.cpp index 91d94edea0..75802567b7 100644 --- a/src/npair_skip.cpp +++ b/src/npair_skip.cpp @@ -74,7 +74,7 @@ void NPairSkipTemp::build(NeighList *list) for (ii = 0; ii < num_skip; ii++) { i = ilist_skip[ii]; itype = type[i]; - + if (!molskip && iskip[itype]) continue; if (TRIM) { @@ -97,7 +97,7 @@ void NPairSkipTemp::build(NeighList *list) if (!molskip && ijskip[itype][type[j]]) continue; if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; - + if (TRIM) { delx = xtmp - x[j][0]; dely = ytmp - x[j][1]; From e0c2009525f5dea4eb7ecc84e033b4d812b377c0 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Mon, 10 Jun 2024 11:33:58 +0200 Subject: [PATCH 225/313] update conditions, comments, better eflag handle --- lib/gpu/lal_dpd_charged.cu | 9 ++++--- src/DPD-BASIC/pair_dpd_charged.cpp | 39 +++++++++++++++--------------- src/GPU/pair_dpd_charged_gpu.cpp | 34 +++++++++++++------------- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_charged.cu index 8f25210a83..c96626d444 100644 --- a/lib/gpu/lal_dpd_charged.cu +++ b/lib/gpu/lal_dpd_charged.cu @@ -425,7 +425,7 @@ __kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, int mtype=itype+jx.w; - // cutsq[mtype].x -> global squared cutoff + /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.z = scale, cutsq.w = cut_slatersq if (rsq (numtyp)0) e -= factor_coul*prefactor*((numtyp)1.0 - e_slater); - e_coul += e; + numtyp e_sf = prefactor*(_erfc-e_slater); + if (factor_coul > (numtyp)0) e_sf -= factor_coul*prefactor*((numtyp)1.0 - e_slater); + e_coul += e_sf; } } // if cut_coulsq diff --git a/src/DPD-BASIC/pair_dpd_charged.cpp b/src/DPD-BASIC/pair_dpd_charged.cpp index 6468e75280..0c73b71c1a 100644 --- a/src/DPD-BASIC/pair_dpd_charged.cpp +++ b/src/DPD-BASIC/pair_dpd_charged.cpp @@ -85,11 +85,9 @@ void PairDPDCharged::compute(int eflag, int vflag) double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; int *ilist,*jlist,*numneigh,**firstneigh; double slater_term; - - evdwl = 0.0; + evdwl = ecoul = 0.0; ev_init(eflag,vflag); - ecoul = 0.0; double **x = atom->x; double **v = atom->v; @@ -140,9 +138,10 @@ void PairDPDCharged::compute(int eflag, int vflag) // forces if below maximum cutoff if (rsq < cutsq[itype][jtype]) { r = sqrt(rsq); - if (r < EPSILON) continue; // r can be 0.0 in DPD systems + if (evflag) evdwl = ecoul = 0.0; + // apply DPD force if distance below DPD cutoff - if (rsq < cut_dpdsq[itype][jtype]) { + if (rsq < cut_dpdsq[itype][jtype] && r > EPSILON) { rinv = 1.0/r; delvx = vxtmp - v[j][0]; delvy = vytmp - v[j][1]; @@ -161,11 +160,18 @@ void PairDPDCharged::compute(int eflag, int vflag) forcedpd *= factor_dpd; forcedpd += factor_sqrt*sigma[itype][jtype]*wd*randnum*dtinvsqrt; forcedpd *= rinv; + + if (eflag) { + // eng shifted to 0.0 at cutoff + evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; + evdwl *= factor_dpd; + } + } else forcedpd = 0.0; // apply Slater electrostatic force if distance below Slater cutoff // and the two species are charged - if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + if (rsq < cut_slatersq[itype][jtype]){ r2inv = 1.0/rsq; grij = g_ewald * r; expm2 = exp(-grij*grij); @@ -175,7 +181,13 @@ void PairDPDCharged::compute(int eflag, int vflag) prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); - forcecoul *= r2inv; + forcecoul *= r2inv; + + if (eflag) { + ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); + } + } else forcecoul = 0.0; fpair = forcedpd + forcecoul; @@ -189,19 +201,6 @@ void PairDPDCharged::compute(int eflag, int vflag) f[j][2] -= delz*fpair; } - // tallies global or per-atom energy and virial only if needed - if (eflag) { - if (rsq < cut_dpdsq[itype][jtype]) { - // eng shifted to 0.0 at cutoff - evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; - evdwl *= factor_dpd; - } else evdwl = 0.0; - - if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ - ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); - if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); - } else ecoul = 0.0; - } if (evflag) ev_tally(i,j,nlocal,newton_pair, evdwl,ecoul,fpair,delx,dely,delz); diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_charged_gpu.cpp index af4cbefe38..c3a48d6657 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_charged_gpu.cpp @@ -399,9 +399,9 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag // forces if below maximum cutoff if (rsq < cutsq[itype][jtype]) { r = sqrt(rsq); - if (r < EPSILON) continue; // r can be 0.0 in DPD systems + if (evflag) evdwl = ecoul = 0.0; // apply DPD force if distance below DPD cutoff - if (rsq < cut_dpdsq[itype][jtype]) { + if (rsq < cut_dpdsq[itype][jtype] && r > EPSILON ) { rinv = 1.0 / r; delvx = vxtmp - v[j][0]; delvy = vytmp - v[j][1]; @@ -426,11 +426,18 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag forcedpd *= factor_dpd; forcedpd += factor_sqrt*sigma[itype][jtype]*wd*randnum*dtinvsqrt; forcedpd *= rinv; + + if (eflag) { + // eng shifted to 0.0 at cutoff + evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; + evdwl *= factor_dpd; + } + } else forcedpd = 0.0; // apply Slater electrostatic force if distance below Slater cutoff // and the two species are charged - if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ + if (rsq < cut_slatersq[itype][jtype]){ r2inv = 1.0/rsq; grij = g_ewald * r; expm2 = exp(-grij*grij); @@ -440,7 +447,13 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); - forcecoul *= r2inv; + forcecoul *= r2inv; + + if (eflag) { + ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); + if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); + } + } else forcecoul = 0.0; fpair = forcedpd + forcecoul; @@ -449,19 +462,6 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag f[i][1] += dely * fpair; f[i][2] += delz * fpair; - if (eflag) { - if (rsq < cut_dpdsq[itype][jtype]) { - // eng shifted to 0.0 at cutoff - evdwl = 0.5*a0[itype][jtype]*cut_dpd[itype][jtype] * wd*wd; - evdwl *= factor_dpd; - } else evdwl = 0.0; - - if (cut_slater[itype][jtype] != 0.0 && rsq < cut_slatersq[itype][jtype]){ - ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); - if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); - } else ecoul = 0.0; - } - if (evflag) ev_tally_full(i, evdwl, ecoul, fpair, delx, dely, delz); } } From 1ec24db123da74de0f21417896184a17c3cc9b9a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 06:46:22 -0400 Subject: [PATCH 226/313] remove redundant and problem causing NP_INTRA flag --- src/OPENMP/npair_skip_omp.h | 24 ++++++++++++------------ src/neighbor.cpp | 1 - src/neighbor.h | 3 +-- src/npair_halffull.h | 12 ++++++------ src/npair_skip.h | 12 ++++++------ src/npair_skip_respa.h | 4 ++-- 6 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/OPENMP/npair_skip_omp.h b/src/OPENMP/npair_skip_omp.h index fe25174f5e..cdacad3742 100644 --- a/src/OPENMP/npair_skip_omp.h +++ b/src/OPENMP/npair_skip_omp.h @@ -19,73 +19,73 @@ NPairStyle(skip/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/respa/omp, NPairSkipRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/size/omp, NPairSkipSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/omp, NPairSkipSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_INTRA | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/oneside/omp, NPairSkipSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_INTRA | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/ghost/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP | NP_GHOST); NPairStyle(skip/trim/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/respa/omp, NPairSkipTrimRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/size/omp, NPairSkipTrimSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/omp, NPairSkipTrimSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_INTRA | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/oneside/omp, NPairSkipTrimSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_INTRA | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/ghost/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP | NP_GHOST); // clang-format off diff --git a/src/neighbor.cpp b/src/neighbor.cpp index 24c83d92fd..59ddf87698 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -2170,7 +2170,6 @@ int Neighbor::choose_pair(NeighRequest *rq) if (!rq->ssa != !(mask & NP_SSA)) continue; if (!rq->skip != !(mask & NP_SKIP)) continue; - if (!(rq->molskip > NeighRequest::REGULAR) != !(mask & NP_INTRA)) continue; if (!rq->trim != !(mask & NP_TRIM)) continue; diff --git a/src/neighbor.h b/src/neighbor.h index 5e0165b411..8533fe5efa 100644 --- a/src/neighbor.h +++ b/src/neighbor.h @@ -334,8 +334,7 @@ namespace NeighConst { NP_HALF_FULL = 1 << 23, NP_OFF2ON = 1 << 24, NP_MULTI_OLD = 1 << 25, - NP_TRIM = 1 << 26, - NP_INTRA = 1 << 27 + NP_TRIM = 1 << 26 }; enum { diff --git a/src/npair_halffull.h b/src/npair_halffull.h index 99d734dba7..41d2e37dc4 100644 --- a/src/npair_halffull.h +++ b/src/npair_halffull.h @@ -53,13 +53,13 @@ typedef NPairHalffull<1, 0, 0> NPairHalffullNewton; NPairStyle(halffull/newton/skip, NPairHalffullNewton, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_ORTHO | NP_SKIP | NP_INTRA); + NP_ORTHO | NP_SKIP); typedef NPairHalffull<1, 1, 0> NPairHalffullNewtonTri; NPairStyle(halffull/newton/skip/tri, NPairHalffullNewtonTri, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_TRI | NP_SKIP | NP_INTRA); + NP_TRI | NP_SKIP); typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff, @@ -71,7 +71,7 @@ typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/skip, NPairHalffullTrimNewtoff, NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | - NP_ORTHO | NP_TRI | NP_SKIP | NP_INTRA | NP_TRIM); + NP_ORTHO | NP_TRI | NP_SKIP | NP_TRIM); typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/ghost, @@ -83,7 +83,7 @@ typedef NPairHalffull<0, 0, 1> NPairHalffullTrimNewtoff; NPairStyle(halffull/trim/newtoff/skip/ghost, NPairHalffullTrimNewtoff, NP_HALF_FULL | NP_NEWTOFF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_HALF | - NP_ORTHO | NP_TRI | NP_SKIP | NP_INTRA | NP_GHOST | NP_TRIM); + NP_ORTHO | NP_TRI | NP_SKIP | NP_GHOST | NP_TRIM); typedef NPairHalffull<1, 0, 1> NPairHalffullTrimNewton; NPairStyle(halffull/trim/newton, @@ -101,13 +101,13 @@ typedef NPairHalffull<1, 0, 1> NPairHalffullTrimNewton; NPairStyle(halffull/trim/newton/skip, NPairHalffullTrimNewton, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_ORTHO | NP_SKIP | NP_INTRA | NP_TRIM); + NP_ORTHO | NP_SKIP | NP_TRIM); typedef NPairHalffull<1, 1, 1> NPairHalffullTrimNewtonTri; NPairStyle(halffull/trim/newton/tri/skip, NPairHalffullTrimNewtonTri, NP_HALF_FULL | NP_NEWTON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | - NP_TRI | NP_SKIP | NP_INTRA | NP_TRIM); + NP_TRI | NP_SKIP | NP_TRIM); // clang-format on #else diff --git a/src/npair_skip.h b/src/npair_skip.h index 31c4910c93..72e86d3a3e 100644 --- a/src/npair_skip.h +++ b/src/npair_skip.h @@ -16,42 +16,42 @@ typedef NPairSkipTemp<0> NPairSkip; NPairStyle(skip, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipTemp<0> NPairSkip; NPairStyle(skip/ghost, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_GHOST); typedef NPairSkipTemp<0> NPairSkipSize; NPairStyle(skip/half/size, NPairSkipSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipTemp<1> NPairSkipTrim; NPairStyle(skip/trim, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); typedef NPairSkipTemp<1> NPairSkipTrim; NPairStyle(skip/ghost/trim, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_GHOST | NP_TRIM); typedef NPairSkipTemp<1> NPairSkipTrimSize; NPairStyle(skip/trim/half/size, NPairSkipTrimSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); diff --git a/src/npair_skip_respa.h b/src/npair_skip_respa.h index 00d5b7f70b..af25e84faf 100644 --- a/src/npair_skip_respa.h +++ b/src/npair_skip_respa.h @@ -16,14 +16,14 @@ typedef NPairSkipRespaTemp<0> NPairSkipRespa; NPairStyle(skip/half/respa, NPairSkipRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI); typedef NPairSkipRespaTemp<1> NPairSkipTrimRespa; NPairStyle(skip/trim/half/respa, NPairSkipTrimRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_INTRA | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM); From 5f85112102487b2c62cd56d8173858f90f8cc548 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 07:16:02 -0400 Subject: [PATCH 227/313] fix hybrid sub-style detection for OPENMP package --- src/OPENMP/fix_omp.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/OPENMP/fix_omp.cpp b/src/OPENMP/fix_omp.cpp index f7828f43ee..58051d5fa0 100644 --- a/src/OPENMP/fix_omp.cpp +++ b/src/OPENMP/fix_omp.cpp @@ -229,7 +229,9 @@ void FixOMP::init() check_hybrid = 0; \ if (force->name) { \ if ( (strcmp(force->name ## _style,"hybrid") == 0) || \ - (strcmp(force->name ## _style,"hybrid/overlay") == 0) ) \ + (strcmp(force->name ## _style,"hybrid/overlay") == 0) || \ + (strcmp(force->name ## _style,"hybrid/scaled") == 0) || \ + (strcmp(force->name ## _style,"hybrid/molecular") == 0) ) \ check_hybrid=1; \ if (force->name->suffix_flag & Suffix::OMP) { \ last_force_name = (const char *) #name; \ From 2a7f0fb863786223341f4a3bc9375a6126d8d0f3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 07:16:24 -0400 Subject: [PATCH 228/313] update intel pair list support for molskip flag --- src/INTEL/npair_skip_intel.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/INTEL/npair_skip_intel.cpp b/src/INTEL/npair_skip_intel.cpp index 3596237746..9353a6f520 100644 --- a/src/INTEL/npair_skip_intel.cpp +++ b/src/INTEL/npair_skip_intel.cpp @@ -74,9 +74,13 @@ void NPairSkipIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, const int nlocal = atom->nlocal; const int e_nall = nlocal + atom->nghost; const int * _noalias const type = atom->type; + const tagint * _noalias const molecule = atom->molecule; + int * _noalias const ilist = list->ilist; int * _noalias const numneigh = list->numneigh; int ** _noalias const firstneigh = (int ** const)list->firstneigh; // NOLINT + const int molskip = list->molskip; + const int * _noalias const ilist_skip = list->listskip->ilist; const int * _noalias const numneigh_skip = list->listskip->numneigh; const int ** _noalias const firstneigh_skip = (const int ** const)list->listskip->firstneigh; // NOLINT @@ -110,7 +114,7 @@ void NPairSkipIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, for (int ii = ifrom; ii < ito; ii++) { const int i = ilist_skip[ii]; const int itype = type[i]; - if (iskip[itype]) continue; + if (!molskip && iskip[itype]) continue; int n = 0; int *neighptr = ipage.vget(); @@ -142,7 +146,11 @@ void NPairSkipIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, for (int jj = 0; jj < jnum; jj++) { const int joriginal = jlist[jj]; const int j = joriginal & NEIGHMASK; - if (!ijskip[itype][type[j]]) neighptr[n++] = joriginal; + if (!molskip && ijskip[itype][type[j]]) continue; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) continue; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) continue; + + neighptr[n++] = joriginal; } } @@ -269,9 +277,13 @@ void NPairSkipTrimIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, const int e_nall = nlocal + atom->nghost; const ATOM_T * _noalias const x = buffers->get_x(); const int * _noalias const type = atom->type; + const tagint * _noalias const molecule = atom->molecule; + int * _noalias const ilist = list->ilist; int * _noalias const numneigh = list->numneigh; int ** _noalias const firstneigh = (int ** const)list->firstneigh; // NOLINT + const int molskip = list->molskip; + const int * _noalias const ilist_skip = list->listskip->ilist; const int * _noalias const numneigh_skip = list->listskip->numneigh; const int ** _noalias const firstneigh_skip = (const int ** const)list->listskip->firstneigh; // NOLINT @@ -306,7 +318,7 @@ void NPairSkipTrimIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, for (int ii = ifrom; ii < ito; ii++) { const int i = ilist_skip[ii]; const int itype = type[i]; - if (iskip[itype]) continue; + if (!molskip && iskip[itype]) continue; const flt_t xtmp = x[i].x; const flt_t ytmp = x[i].y; @@ -370,7 +382,9 @@ void NPairSkipTrimIntel::build_t(NeighList *list, int *numhalf, int *cnumneigh, const int j = joriginal & NEIGHMASK; int addme = 1; - if (ijskip[itype][type[j]]) addme = 0; + if (!molskip && ijskip[itype][type[j]]) addme = 0; + if ((molskip == NeighRequest::INTRA) && (molecule[i] != molecule[j])) addme = 0; + if ((molskip == NeighRequest::INTER) && (molecule[i] == molecule[j])) addme = 0; // trim to shorter cutoff From fa8f73689e3fc4c4d857e3bd3c72b8f02f2af40d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 07:33:17 -0400 Subject: [PATCH 229/313] add /omp aliases to hybrid pair styles for consistency and added tests without the aliases, the introspection check lead to skipping suitable tests --- doc/src/Commands_pair.rst | 8 ++++---- doc/src/pair_hybrid.rst | 12 ++++++++++-- src/OPENMP/fix_omp.cpp | 6 +++++- src/pair_hybrid.h | 1 + src/pair_hybrid_molecular.h | 1 + src/pair_hybrid_overlay.h | 1 + src/pair_hybrid_scaled.h | 1 + 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 0629afbf08..4ad6cc8f23 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -25,10 +25,10 @@ OPT. * :doc:`none ` * :doc:`zero ` - * :doc:`hybrid (k) ` - * :doc:`hybrid/molecular ` - * :doc:`hybrid/overlay (k) ` - * :doc:`hybrid/scaled ` + * :doc:`hybrid (ko) ` + * :doc:`hybrid/molecular (o) ` + * :doc:`hybrid/overlay (ko) ` + * :doc:`hybrid/scaled (o) ` * :doc:`kim ` * :doc:`list ` * :doc:`tracker ` diff --git a/doc/src/pair_hybrid.rst b/doc/src/pair_hybrid.rst index 4108aa6154..634717f8a8 100644 --- a/doc/src/pair_hybrid.rst +++ b/doc/src/pair_hybrid.rst @@ -1,26 +1,34 @@ .. index:: pair_style hybrid .. index:: pair_style hybrid/kk +.. index:: pair_style hybrid/omp .. index:: pair_style hybrid/molecular +.. index:: pair_style hybrid/molecular/omp .. index:: pair_style hybrid/overlay +.. index:: pair_style hybrid/overlay/omp .. index:: pair_style hybrid/overlay/kk .. index:: pair_style hybrid/scaled +.. index:: pair_style hybrid/scaled/omp pair_style hybrid command ========================= -Accelerator Variants: *hybrid/kk* +Accelerator Variants: *hybrid/kk*, *hybrid/omp* pair_style hybrid/molecular command =================================== +Accelerator Variant: *hybrid/molecular/omp* + pair_style hybrid/overlay command ================================= -Accelerator Variants: *hybrid/overlay/kk* +Accelerator Variants: *hybrid/overlay/kk*, *hybrid/overlay/omp* pair_style hybrid/scaled command ================================== +Accelerator Variant: *hybrid/scaled/omp* + Syntax """""" diff --git a/src/OPENMP/fix_omp.cpp b/src/OPENMP/fix_omp.cpp index 58051d5fa0..59f0e9d534 100644 --- a/src/OPENMP/fix_omp.cpp +++ b/src/OPENMP/fix_omp.cpp @@ -231,7 +231,11 @@ void FixOMP::init() if ( (strcmp(force->name ## _style,"hybrid") == 0) || \ (strcmp(force->name ## _style,"hybrid/overlay") == 0) || \ (strcmp(force->name ## _style,"hybrid/scaled") == 0) || \ - (strcmp(force->name ## _style,"hybrid/molecular") == 0) ) \ + (strcmp(force->name ## _style,"hybrid/molecular") == 0) || \ + (strcmp(force->name ## _style,"hybrid/omp") == 0) || \ + (strcmp(force->name ## _style,"hybrid/overlay/omp") == 0) || \ + (strcmp(force->name ## _style,"hybrid/scaled/omp") == 0) || \ + (strcmp(force->name ## _style,"hybrid/molecular/omp") == 0) ) \ check_hybrid=1; \ if (force->name->suffix_flag & Suffix::OMP) { \ last_force_name = (const char *) #name; \ diff --git a/src/pair_hybrid.h b/src/pair_hybrid.h index d3a7693f9b..b59cc82cb4 100644 --- a/src/pair_hybrid.h +++ b/src/pair_hybrid.h @@ -14,6 +14,7 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(hybrid,PairHybrid); +PairStyle(hybrid/omp,PairHybrid); // clang-format on #else diff --git a/src/pair_hybrid_molecular.h b/src/pair_hybrid_molecular.h index 4493de777e..92f8bdc198 100644 --- a/src/pair_hybrid_molecular.h +++ b/src/pair_hybrid_molecular.h @@ -14,6 +14,7 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(hybrid/molecular,PairHybridMolecular); +PairStyle(hybrid/molecular/omp,PairHybridMolecular); // clang-format on #else diff --git a/src/pair_hybrid_overlay.h b/src/pair_hybrid_overlay.h index ea0babbde5..f0e85b859f 100644 --- a/src/pair_hybrid_overlay.h +++ b/src/pair_hybrid_overlay.h @@ -14,6 +14,7 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(hybrid/overlay,PairHybridOverlay); +PairStyle(hybrid/overlay/omp,PairHybridOverlay); // clang-format on #else diff --git a/src/pair_hybrid_scaled.h b/src/pair_hybrid_scaled.h index 64fd938822..2af5b61f8d 100644 --- a/src/pair_hybrid_scaled.h +++ b/src/pair_hybrid_scaled.h @@ -14,6 +14,7 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(hybrid/scaled,PairHybridScaled); +PairStyle(hybrid/scaled/omp,PairHybridScaled); // clang-format on #else From 77c04d382779281373858f4b805a60349022d6ae Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 09:15:14 -0400 Subject: [PATCH 230/313] cosmetic changes --- cmake/Modules/Packages/PLUMED.cmake | 2 ++ src/PLUMED/fix_plumed.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake index 9a2d0413cb..294c5590ad 100644 --- a/cmake/Modules/Packages/PLUMED.cmake +++ b/cmake/Modules/Packages/PLUMED.cmake @@ -1,6 +1,8 @@ # Plumed2 support for PLUMED package +# for supporting multiple concurrent plumed2 installations for debugging and testing set(PLUMED_SUFFIX "" CACHE STRING "Suffix for Plumed2 library") +mark_as_advanced(PLUMED_SUFFIX) if(BUILD_MPI) set(PLUMED_CONFIG_MPI "--enable-mpi") diff --git a/src/PLUMED/fix_plumed.cpp b/src/PLUMED/fix_plumed.cpp index 4541fe3db6..2bf56acbbf 100644 --- a/src/PLUMED/fix_plumed.cpp +++ b/src/PLUMED/fix_plumed.cpp @@ -79,7 +79,7 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : p->cmd("getApiVersion",&api_version); if ((api_version < 5) || (api_version > 10)) error->all(FLERR,"Incompatible API version for PLUMED in fix plumed. " - "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x 2.9.x are tested and supported."); + "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x, 2.9.x are tested and supported."); #if !defined(MPI_STUBS) // If the -partition option is activated then enable From 567ba1f43752006c35e1f05828a3eacfc2ba1881 Mon Sep 17 00:00:00 2001 From: Evangelos Voyiatzis Date: Mon, 10 Jun 2024 19:37:35 +0200 Subject: [PATCH 231/313] improve R value for SI units --- tools/fep/fep.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/fep/fep.py b/tools/fep/fep.py index 0ce1927d73..cdcf3f10c6 100755 --- a/tools/fep/fep.py +++ b/tools/fep/fep.py @@ -15,7 +15,7 @@ def compute_fep(): args = parser.parse_args() - r_value = {'lj': 1.0, 'real': 0.0019872036, 'si': 8.314} + r_value = {'lj': 1.0, 'real': 0.0019872036, 'si': 8.31446} if args.units in r_value: rt = r_value[args.units] * args.Temperature From d61c94c0f3634fd6cc68fb1fdcd41f45fa25bf61 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 14:14:36 -0400 Subject: [PATCH 232/313] move group2ndx and ndx2group to new EXTRA-COMMAND package. update docs. --- cmake/CMakeLists.txt | 1 + cmake/presets/all_off.cmake | 1 + cmake/presets/all_on.cmake | 1 + cmake/presets/mingw-cross.cmake | 1 + cmake/presets/most.cmake | 1 + cmake/presets/windows.cmake | 1 + doc/src/Packages_details.rst | 17 +++++++++++++++++ doc/src/Packages_list.rst | 5 +++++ doc/src/group2ndx.rst | 7 ++++--- src/{COLVARS => EXTRA-COMMAND}/group_ndx.cpp | 0 src/{COLVARS => EXTRA-COMMAND}/group_ndx.h | 0 src/{COLVARS => EXTRA-COMMAND}/ndx_group.cpp | 0 src/{COLVARS => EXTRA-COMMAND}/ndx_group.h | 0 src/Makefile | 2 ++ 14 files changed, 34 insertions(+), 3 deletions(-) rename src/{COLVARS => EXTRA-COMMAND}/group_ndx.cpp (100%) rename src/{COLVARS => EXTRA-COMMAND}/group_ndx.h (100%) rename src/{COLVARS => EXTRA-COMMAND}/ndx_group.cpp (100%) rename src/{COLVARS => EXTRA-COMMAND}/ndx_group.h (100%) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f87c92396f..6421f5356f 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -256,6 +256,7 @@ set(STANDARD_PACKAGES DRUDE EFF ELECTRODE + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/cmake/presets/all_off.cmake b/cmake/presets/all_off.cmake index e078879f70..50a0bf846c 100644 --- a/cmake/presets/all_off.cmake +++ b/cmake/presets/all_off.cmake @@ -28,6 +28,7 @@ set(ALL_PACKAGES DRUDE ELECTRODE EFF + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/cmake/presets/all_on.cmake b/cmake/presets/all_on.cmake index 3f44a863f7..52a2a3a753 100644 --- a/cmake/presets/all_on.cmake +++ b/cmake/presets/all_on.cmake @@ -30,6 +30,7 @@ set(ALL_PACKAGES DRUDE ELECTRODE EFF + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/cmake/presets/mingw-cross.cmake b/cmake/presets/mingw-cross.cmake index f3565668b2..49e81868ae 100644 --- a/cmake/presets/mingw-cross.cmake +++ b/cmake/presets/mingw-cross.cmake @@ -24,6 +24,7 @@ set(WIN_PACKAGES DRUDE ELECTRODE EFF + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/cmake/presets/most.cmake b/cmake/presets/most.cmake index 2356e24764..c539ea1d3d 100644 --- a/cmake/presets/most.cmake +++ b/cmake/presets/most.cmake @@ -26,6 +26,7 @@ set(ALL_PACKAGES DRUDE EFF ELECTRODE + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/cmake/presets/windows.cmake b/cmake/presets/windows.cmake index 9655134e7f..360f26cb90 100644 --- a/cmake/presets/windows.cmake +++ b/cmake/presets/windows.cmake @@ -22,6 +22,7 @@ set(WIN_PACKAGES DRUDE EFF ELECTRODE + EXTRA-COMMAND EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index a3d65d9d65..d96d73bcce 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -52,6 +52,7 @@ page gives those details. * :ref:`DRUDE ` * :ref:`EFF ` * :ref:`ELECTRODE ` + * :ref:`EXTRA-COMMAND ` * :ref:`EXTRA-COMPUTE ` * :ref:`EXTRA-DUMP ` * :ref:`EXTRA-FIX ` @@ -886,6 +887,22 @@ This package has :ref:`specific installation instructions ` on the ---------- +.. _PKG-EXTRA-COMMAND: + +EXTRA-COMMAND package +--------------------- + +**Contents:** + +Additional compute styles that are less commonly used. + +**Supporting info:** + +* src/EXTRA-COMMAND: filenames -> commands +* :doc:`general commands ` + +---------- + .. _PKG-EXTRA-COMPUTE: EXTRA-COMPUTE package diff --git a/doc/src/Packages_list.rst b/doc/src/Packages_list.rst index c0a1164513..34d6aff393 100644 --- a/doc/src/Packages_list.rst +++ b/doc/src/Packages_list.rst @@ -158,6 +158,11 @@ whether an extra library is needed to build and use the package: - :doc:`fix electrode/conp ` - PACKAGES/electrode - no + * - :ref:`EXTRA-COMMAND ` + - additional command styles + - :doc:`general commands ` + - n/a + - no * - :ref:`EXTRA-COMPUTE ` - additional compute styles - :doc:`compute ` diff --git a/doc/src/group2ndx.rst b/doc/src/group2ndx.rst index 077f88e3e8..8c28d43aa0 100644 --- a/doc/src/group2ndx.rst +++ b/doc/src/group2ndx.rst @@ -55,11 +55,12 @@ from the index file and restored. Restrictions """""""""""" -This command requires that atoms have atom IDs, since this is the +These commands require that atoms have atom IDs, since this is the information that is written to the index file. -These commands are part of the COLVARS package. They are only -enabled if LAMMPS was built with that package. See the :doc:`Build package ` page for more info. +These commands are part of the EXTRA-COMMAND package. They are only +enabled if LAMMPS was built with that package. See the +:doc:`Build package ` page for more info. Related commands """""""""""""""" diff --git a/src/COLVARS/group_ndx.cpp b/src/EXTRA-COMMAND/group_ndx.cpp similarity index 100% rename from src/COLVARS/group_ndx.cpp rename to src/EXTRA-COMMAND/group_ndx.cpp diff --git a/src/COLVARS/group_ndx.h b/src/EXTRA-COMMAND/group_ndx.h similarity index 100% rename from src/COLVARS/group_ndx.h rename to src/EXTRA-COMMAND/group_ndx.h diff --git a/src/COLVARS/ndx_group.cpp b/src/EXTRA-COMMAND/ndx_group.cpp similarity index 100% rename from src/COLVARS/ndx_group.cpp rename to src/EXTRA-COMMAND/ndx_group.cpp diff --git a/src/COLVARS/ndx_group.h b/src/EXTRA-COMMAND/ndx_group.h similarity index 100% rename from src/COLVARS/ndx_group.h rename to src/EXTRA-COMMAND/ndx_group.h diff --git a/src/Makefile b/src/Makefile index b9f1bcbdef..b56631a46a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -74,6 +74,7 @@ PACKAGE = \ dpd-smooth \ drude \ eff \ + extra-command \ extra-compute \ extra-dump \ extra-fix \ @@ -167,6 +168,7 @@ PACKMOST = \ dpd-smooth \ drude \ eff \ + extra-command \ extra-compute \ extra-dump \ extra-fix \ From 09bea938c5ef4361c63ce3a5604979674f0ebd57 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 10 Jun 2024 14:26:32 -0400 Subject: [PATCH 233/313] fix copy-n-paste error --- doc/src/Packages_details.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index d96d73bcce..d13925f5d0 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -894,7 +894,7 @@ EXTRA-COMMAND package **Contents:** -Additional compute styles that are less commonly used. +Additional command styles that are less commonly used. **Supporting info:** From e0228d1f15bb9c7123ac6b0cdf81d2a3569c3d08 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 11 Jun 2024 13:16:34 -0600 Subject: [PATCH 234/313] Bond history compatability delete atoms --- src/delete_atoms.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/delete_atoms.cpp b/src/delete_atoms.cpp index 6e14964a35..6f887a33e6 100644 --- a/src/delete_atoms.cpp +++ b/src/delete_atoms.cpp @@ -22,6 +22,7 @@ #include "comm.h" #include "domain.h" #include "error.h" +#include "fix_bond_history.h" #include "force.h" #include "group.h" #include "input.h" @@ -754,6 +755,10 @@ void DeleteAtoms::bondring(int nbuf, char *cbuf, void *ptr) int nlocal = daptr->atom->nlocal; + // find instances of bond history to delete data + auto histories = daptr->modify->get_fix_by_style("BOND_HISTORY"); + int n_histories = histories.size(); + // cbuf = list of N deleted atom IDs from other proc, put them in hash hash->clear(); @@ -771,6 +776,11 @@ void DeleteAtoms::bondring(int nbuf, char *cbuf, void *ptr) if (hash->find(bond_atom[i][m]) != hash->end()) { bond_type[i][m] = bond_type[i][n - 1]; bond_atom[i][m] = bond_atom[i][n - 1]; + if (n_histories > 0) + for (auto &ihistory: histories) { + dynamic_cast(ihistory)->shift_history(i,m,n-1); + dynamic_cast(ihistory)->delete_history(i,n-1); + } n--; } else m++; From 2d9aad67d0d44ea98bf8b1cef3c6462c9f3a5851 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 11 Jun 2024 15:24:34 -0600 Subject: [PATCH 235/313] Consistent newton checks compute nbond/atom --- src/BPM/compute_nbond_atom.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/BPM/compute_nbond_atom.cpp b/src/BPM/compute_nbond_atom.cpp index 4f0fc4c3f0..85ef6f3fce 100644 --- a/src/BPM/compute_nbond_atom.cpp +++ b/src/BPM/compute_nbond_atom.cpp @@ -65,14 +65,13 @@ void ComputeNBondAtom::compute_peratom() tagint **bond_atom = atom->bond_atom; int **bond_type = atom->bond_type; - int ntotal = nlocal; - if (force->newton) ntotal += atom->nghost; - // set local nbond array int i, j, k; int *num_bond = atom->num_bond; int newton_bond = force->newton_bond; + int ntotal = nlocal; + if (newton_bond) ntotal += atom->nghost; for (i = 0; i < ntotal; i++) nbond[i] = 0; for (i = 0; i < nlocal; i++) { @@ -88,7 +87,7 @@ void ComputeNBondAtom::compute_peratom() } // communicate ghost nbond between neighbor procs - if (force->newton) comm->reverse_comm(this); + if (newton_bond) comm->reverse_comm(this); // zero nbond of atoms not in group // only do this after comm since ghost contributions must be included From 7bb0da525544be4ebf67b0c9a4493e9adb5eac61 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 11 Jun 2024 16:11:24 -0600 Subject: [PATCH 236/313] Increased checks for broken bonds in bond BPM --- src/BPM/bond_bpm.cpp | 30 ++++++++++++++++++++++------ src/BPM/fix_update_special_bonds.cpp | 2 ++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index 9c2c680cc5..f5ff8ab972 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -352,19 +352,37 @@ void BondBPM::process_broken(int i, int j) { if (!break_flag) error->one(FLERR, "BPM bond broke with break no option"); - if (fix_store_local) { - for (int n = 0; n < nvalues; n++) (this->*pack_choice[n])(n, i, j); - fix_store_local->add_data(output_data, i, j); + int nlocal = atom->nlocal; + if (fix_store_local) { + // If newton off, bond can break on two procs so only record if proc owns lower tag + // (BPM bond styles should sort so i -> atom with lower tag) + if (force->newton_bond || (i < nlocal)) { + for (int n = 0; n < nvalues; n++) (this->*pack_choice[n])(n, i, j); + fix_store_local->add_data(output_data, i, j); + } } - if (fix_update_special_bonds) fix_update_special_bonds->add_broken_bond(i, j); + if (fix_update_special_bonds) { + // If one atom is a ghost, ensure that this processor does not own two copies of the bond + // i.e. if the domain is periodic and 1 processor thick + // If the processor owns both, only break if atom with lower tag is local + // (BPM bond styles should sort so i -> atom with lower tag) + int check = 1; + tagint *tag = atom->tag; + if ((i >= nlocal) || (j >= nlocal)) { + int imap = atom->map(tag[i]); + int jmap = atom->map(tag[j]); + if (imap < nlocal && jmap < nlocal) + if (i >= nlocal) check = 0; + } + if (check) fix_update_special_bonds->add_broken_bond(i, j); + } // Manually search and remove from atom arrays // need to remove in case special bonds arrays rebuilt - int m, n; - int nlocal = atom->nlocal; + int m, n; tagint *tag = atom->tag; tagint **bond_atom = atom->bond_atom; int **bond_type = atom->bond_type; diff --git a/src/BPM/fix_update_special_bonds.cpp b/src/BPM/fix_update_special_bonds.cpp index cdc72ee987..1b408d6d4b 100644 --- a/src/BPM/fix_update_special_bonds.cpp +++ b/src/BPM/fix_update_special_bonds.cpp @@ -100,6 +100,7 @@ void FixUpdateSpecialBonds::pre_exchange() n1 = nspecial[i][0]; for (m = 0; m < n1; m++) if (slist[m] == tagj) break; + if (m == n1) error->one(FLERR, "Special bond {} {} not found", tagi, tagj); for (; m < n1 - 1; m++) slist[m] = slist[m + 1]; nspecial[i][0]--; nspecial[i][1] = nspecial[i][2] = nspecial[i][0]; @@ -110,6 +111,7 @@ void FixUpdateSpecialBonds::pre_exchange() n1 = nspecial[j][0]; for (m = 0; m < n1; m++) if (slist[m] == tagi) break; + if (m == n1) error->one(FLERR, "Special bond {} {} not found", tagi, tagj); for (; m < n1 - 1; m++) slist[m] = slist[m + 1]; nspecial[j][0]--; nspecial[j][1] = nspecial[j][2] = nspecial[j][0]; From c1903186496fa66007f9e460891bece4ca88943b Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 11 Jun 2024 16:53:10 -0600 Subject: [PATCH 237/313] Small doc page clarifications --- doc/src/fix_deform.rst | 2 ++ doc/src/fix_wall_gran.rst | 11 +++++++++++ doc/src/pair_granular.rst | 27 ++++++++++++++------------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/doc/src/fix_deform.rst b/doc/src/fix_deform.rst index 9146b987c8..2c76463369 100644 --- a/doc/src/fix_deform.rst +++ b/doc/src/fix_deform.rst @@ -64,6 +64,8 @@ Syntax effectively an engineering shear strain rate *erate* value = R R = engineering shear strain rate (1/time units) + *erate/rescale* value = R (ONLY available in :doc:`fix deform/pressure ` command) + R = engineering shear strain rate (1/time units) *trate* value = R R = true shear strain rate (1/time units) *wiggle* values = A Tp diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index f6465d1159..0020de2b02 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -115,6 +115,17 @@ friction and twisting friction supported by the :doc:`pair_style granular `. +.. note:: + When *fstyle* *granular* is specified, the associated *fstyle_params* are taken as + those for a wall–particle interaction. For example, for the hertz/material normal + contact model with :math:`E = 960` and :math:`\nu= 0.2`, the effective Young’s + modulus for a wall–particle interaction is computed as :math:`E_{eff} = \frac{960} + {2(1-0.2^2)} = 500`. Any pair coefficients defined by :doc:`pair_style granular + ` are not taken into consideration. To model different + wall–particle interactions for particles of different material types, the user may + define multiple fix wall/gran commands operating on separate groups (e.g. based + on particle type) each with a different wall–particle effective Young's modulus. + Note that you can choose a different force styles and/or different values for the wall/particle coefficients than for particle/particle interactions. E.g. if you wish to model the wall as a different diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index bc469412d9..72f85bb599 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -111,7 +111,7 @@ For the *hertz* model, the normal component of force is given by: \mathbf{F}_{ne, Hertz} = k_n R_{eff}^{1/2}\delta_{ij}^{3/2} \mathbf{n} -Here, :math:`R_{eff} = \frac{R_i R_j}{R_i + R_j}` is the effective +Here, :math:`R_{eff} = R = \frac{R_i R_j}{R_i + R_j}` is the effective radius, denoted for simplicity as *R* from here on. For *hertz*, the units of the spring constant :math:`k_n` are *force*\ /\ *length*\ \^2, or equivalently *pressure*\ . @@ -120,13 +120,14 @@ For the *hertz/material* model, the force is given by: .. math:: - \mathbf{F}_{ne, Hertz/material} = \frac{4}{3} E_{eff} R_{eff}^{1/2}\delta_{ij}^{3/2} \mathbf{n} + \mathbf{F}_{ne, Hertz/material} = \frac{4}{3} E_{eff} R^{1/2}\delta_{ij}^{3/2} \mathbf{n} -Here, :math:`E_{eff} = E = \left(\frac{1-\nu_i^2}{E_i} + \frac{1-\nu_j^2}{E_j}\right)^{-1}` is the effective Young's -modulus, with :math:`\nu_i, \nu_j` the Poisson ratios of the particles of -types *i* and *j*\ . Note that if the elastic modulus and the shear -modulus of the two particles are the same, the *hertz/material* model -is equivalent to the *hertz* model with :math:`k_n = 4/3 E_{eff}` +Here, :math:`E_{eff} = E = \left(\frac{1-\nu_i^2}{E_i} + \frac{1-\nu_j^2}{E_j}\right)^{-1}` +is the effective Young's modulus, with :math:`\nu_i, \nu_j` the Poisson ratios +of the particles of types *i* and *j*. :math:`E_{eff}` is denoted as *E* from here on. +Note that if the elastic modulus and the shear modulus of the two particles are the +same, the *hertz/material* model is equivalent to the *hertz* model with +:math:`k_n = 4/3 E` The *dmt* model corresponds to the :ref:`(Derjaguin-Muller-Toporov) ` cohesive model, where the force @@ -417,11 +418,11 @@ discussion above. To match the Mindlin solution, one should set G_{eff} = \left(\frac{2-\nu_i}{G_i} + \frac{2-\nu_j}{G_j}\right)^{-1} -where :math:`G` is the shear modulus, related to Young's modulus :math:`E` -and Poisson's ratio :math:`\nu` by :math:`G = E/(2(1+\nu))`. This can also be -achieved by specifying *NULL* for :math:`k_t`, in which case a -normal contact model that specifies material parameters :math:`E` and -:math:`\nu` is required (e.g. *hertz/material*, *dmt* or *jkr*\ ). In this +where :math:`G_i` is the shear modulus of a particle of type :math:`i`, related to Young's +modulus :math:`E_i` and Poisson's ratio :math:`\nu_i` by :math:`G_i = E_i/(2(1+\nu_i))`. +This can also be achieved by specifying *NULL* for :math:`k_t`, in which case a +normal contact model that specifies material parameters :math:`E_i` and +:math:`\nu_i` is required (e.g. *hertz/material*, *dmt* or *jkr*\ ). In this case, mixing of the shear modulus for different particle types *i* and *j* is done according to the formula above. @@ -551,7 +552,7 @@ opposite torque on each particle, according to: .. math:: - \tau_{roll,i} = R_{eff} \mathbf{n} \times \mathbf{F}_{roll} + \tau_{roll,i} = R \mathbf{n} \times \mathbf{F}_{roll} .. math:: From 1a310f57298e3343d9b5844e83596c210ea521bd Mon Sep 17 00:00:00 2001 From: jtclemm Date: Tue, 11 Jun 2024 17:03:15 -0600 Subject: [PATCH 238/313] Limit CoeffRest gran damping to non-cohesive, prevent potential nans --- doc/src/pair_granular.rst | 3 ++- src/GRANULAR/gran_sub_mod_damping.cpp | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index ca2f938e0e..dca85d8be1 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -271,7 +271,8 @@ where :math:`k_n = \frac{4}{3} E_{eff}` for the *hertz/material* model. Since *coeff_restitution* accounts for the effective mass, effective radius, and pairwise overlaps (except when used with the *hooke* normal model) when calculating the damping coefficient, it accurately reproduces the specified coefficient of -restitution for both monodisperse and polydisperse particle pairs. +restitution for both monodisperse and polydisperse particle pairs. This damping +model is not compatible with cohesive normal models such as *JKR* or *DMT*. The total normal force is computed as the sum of the elastic and damping components: diff --git a/src/GRANULAR/gran_sub_mod_damping.cpp b/src/GRANULAR/gran_sub_mod_damping.cpp index df7146a619..1745f6addf 100644 --- a/src/GRANULAR/gran_sub_mod_damping.cpp +++ b/src/GRANULAR/gran_sub_mod_damping.cpp @@ -156,6 +156,7 @@ double GranSubModDampingTsuji::calculate_forces() GranSubModDampingCoeffRestitution::GranSubModDampingCoeffRestitution(GranularModel *gm, LAMMPS *lmp) : GranSubModDamping(gm, lmp) { + allow_cohesion = 0; } void GranSubModDampingCoeffRestitution::init() @@ -173,6 +174,12 @@ void GranSubModDampingCoeffRestitution::init() double GranSubModDampingCoeffRestitution::calculate_forces() { - damp_prefactor = damp * sqrt(gm->meff * gm->Fnormal / gm->delta); + // in case argument <= 0 due to precision issues + double sqrt1; + if (gm->delta > 0.0) + sqrt1 = MAX(0.0, gm->meff * gm->Fnormal / gm->delta); + else + sqrt1 = 0.0; + damp_prefactor = damp * sqrt(sqrt1); return -damp_prefactor * gm->vnnr; } From 7f1fbca66f3b998aeea6675d64b31f41c6820270 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 14:30:54 +0200 Subject: [PATCH 239/313] update lal_base_dpd for optional charged --- lib/gpu/lal_base_dpd.cpp | 4 ++-- lib/gpu/lal_base_dpd.h | 3 ++- lib/gpu/lal_dpd_charged.cpp | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/gpu/lal_base_dpd.cpp b/lib/gpu/lal_base_dpd.cpp index 0ddd24d21e..dfeaf24ce9 100644 --- a/lib/gpu/lal_base_dpd.cpp +++ b/lib/gpu/lal_base_dpd.cpp @@ -57,7 +57,7 @@ int BaseDPDT::init_atomic(const int nlocal, const int nall, const double cell_size, const double gpu_split, FILE *_screen, const void *pair_program, const char *k_name, const int onetype, - const int extra_fields) { + const int extra_fields, bool need_charges) { screen=_screen; int gpu_nbor=0; @@ -73,7 +73,7 @@ int BaseDPDT::init_atomic(const int nlocal, const int nall, _threads_per_atom=device->threads_per_atom(); - bool charge = false; + bool charge = need_charges; bool rot = false; bool vel = true; _extra_fields = extra_fields; diff --git a/lib/gpu/lal_base_dpd.h b/lib/gpu/lal_base_dpd.h index 64ec725d95..658147419d 100644 --- a/lib/gpu/lal_base_dpd.h +++ b/lib/gpu/lal_base_dpd.h @@ -53,7 +53,8 @@ class BaseDPD { const int maxspecial, const double cell_size, const double gpu_split, FILE *screen, const void *pair_program, const char *k_name, - const int onetype=0, const int extra_fields=0); + const int onetype=0, const int extra_fields=0, + bool need_charges=false); /// Estimate the overhead for GPU context changes and CPU driver void estimate_gpu_overhead(); diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_charged.cpp index 8a86ea9cd1..f9c52cba0d 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_charged.cpp @@ -73,8 +73,9 @@ int DPDChargedT::init(const int ntypes, int extra_fields = 4; // round up to accomodate quadruples of numtyp values // q int success; + bool need_charges = true; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype, extra_fields); + gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype, extra_fields, need_charges); if (success!=0) return success; From 84ed769ca39d58d1c342757220f189417af6a339 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 15:12:55 +0200 Subject: [PATCH 240/313] changing the fix name and file names for coherence --- .../{lal_dpd_charged.cpp => lal_dpd_coul_slater_long.cpp} | 6 +++--- lib/gpu/{lal_dpd_charged.cu => lal_dpd_coul_slater_long.cu} | 0 lib/gpu/{lal_dpd_charged.h => lal_dpd_coul_slater_long.h} | 0 ...dpd_charged_ext.cpp => lal_dpd_coul_slater_long_ext.cpp} | 2 +- .../{pair_dpd_charged.cpp => pair_dpd_coul_slater_long.cpp} | 2 +- .../{pair_dpd_charged.h => pair_dpd_coul_slater_long.h} | 2 +- ...pd_charged_gpu.cpp => pair_dpd_coul_slater_long_gpu.cpp} | 2 +- ...ir_dpd_charged_gpu.h => pair_dpd_coul_slater_long_gpu.h} | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) rename lib/gpu/{lal_dpd_charged.cpp => lal_dpd_coul_slater_long.cpp} (98%) rename lib/gpu/{lal_dpd_charged.cu => lal_dpd_coul_slater_long.cu} (100%) rename lib/gpu/{lal_dpd_charged.h => lal_dpd_coul_slater_long.h} (100%) rename lib/gpu/{lal_dpd_charged_ext.cpp => lal_dpd_coul_slater_long_ext.cpp} (99%) rename src/DPD-BASIC/{pair_dpd_charged.cpp => pair_dpd_coul_slater_long.cpp} (99%) rename src/DPD-BASIC/{pair_dpd_charged.h => pair_dpd_coul_slater_long.h} (97%) rename src/GPU/{pair_dpd_charged_gpu.cpp => pair_dpd_coul_slater_long_gpu.cpp} (99%) rename src/GPU/{pair_dpd_charged_gpu.h => pair_dpd_coul_slater_long_gpu.h} (93%) diff --git a/lib/gpu/lal_dpd_charged.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp similarity index 98% rename from lib/gpu/lal_dpd_charged.cpp rename to lib/gpu/lal_dpd_coul_slater_long.cpp index f9c52cba0d..bf23674999 100644 --- a/lib/gpu/lal_dpd_charged.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -14,14 +14,14 @@ ***************************************************************************/ #if defined(USE_OPENCL) -#include "dpd_charged_cl.h" +#include "lal_dpd_coul_slater_long_cl.h" #elif defined(USE_CUDART) const char *dpd_charged=0; #else -#include "dpd_charged_cubin.h" +#include "lal_dpd_coul_slater_long_cubin.h" #endif -#include "lal_dpd_charged.h" +#include "lal_dpd_coul_slater_long.h" #include namespace LAMMPS_AL { #define DPDChargedT DPDCharged diff --git a/lib/gpu/lal_dpd_charged.cu b/lib/gpu/lal_dpd_coul_slater_long.cu similarity index 100% rename from lib/gpu/lal_dpd_charged.cu rename to lib/gpu/lal_dpd_coul_slater_long.cu diff --git a/lib/gpu/lal_dpd_charged.h b/lib/gpu/lal_dpd_coul_slater_long.h similarity index 100% rename from lib/gpu/lal_dpd_charged.h rename to lib/gpu/lal_dpd_coul_slater_long.h diff --git a/lib/gpu/lal_dpd_charged_ext.cpp b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp similarity index 99% rename from lib/gpu/lal_dpd_charged_ext.cpp rename to lib/gpu/lal_dpd_coul_slater_long_ext.cpp index a8e153300a..c39bbcdf88 100644 --- a/lib/gpu/lal_dpd_charged_ext.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp @@ -17,7 +17,7 @@ #include #include -#include "lal_dpd_charged.h" +#include "lal_dpd_coul_slater_long.h" using namespace std; using namespace LAMMPS_AL; diff --git a/src/DPD-BASIC/pair_dpd_charged.cpp b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp similarity index 99% rename from src/DPD-BASIC/pair_dpd_charged.cpp rename to src/DPD-BASIC/pair_dpd_coul_slater_long.cpp index 0c73b71c1a..e34931fbb6 100644 --- a/src/DPD-BASIC/pair_dpd_charged.cpp +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp @@ -16,7 +16,7 @@ Contributing author: Kurt Smith (U Pittsburgh) ------------------------------------------------------------------------- */ -#include "pair_dpd_charged.h" +#include "pair_dpd_coul_slater_long.h" #include "atom.h" #include "comm.h" diff --git a/src/DPD-BASIC/pair_dpd_charged.h b/src/DPD-BASIC/pair_dpd_coul_slater_long.h similarity index 97% rename from src/DPD-BASIC/pair_dpd_charged.h rename to src/DPD-BASIC/pair_dpd_coul_slater_long.h index eebe421ed6..c0a1a192d3 100644 --- a/src/DPD-BASIC/pair_dpd_charged.h +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.h @@ -13,7 +13,7 @@ #ifdef PAIR_CLASS // clang-format off -PairStyle(dpd/charged,PairDPDCharged); +PairStyle(dpd/coul/slater/long,PairDPDCharged); // clang-format on #else diff --git a/src/GPU/pair_dpd_charged_gpu.cpp b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp similarity index 99% rename from src/GPU/pair_dpd_charged_gpu.cpp rename to src/GPU/pair_dpd_coul_slater_long_gpu.cpp index c3a48d6657..0a104c6107 100644 --- a/src/GPU/pair_dpd_charged_gpu.cpp +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp @@ -15,7 +15,7 @@ Contributing author: Trung Dac Nguyen (ORNL) ------------------------------------------------------------------------- */ -#include "pair_dpd_charged_gpu.h" +#include "pair_dpd_coul_slater_long_gpu.h" #include "atom.h" #include "comm.h" diff --git a/src/GPU/pair_dpd_charged_gpu.h b/src/GPU/pair_dpd_coul_slater_long_gpu.h similarity index 93% rename from src/GPU/pair_dpd_charged_gpu.h rename to src/GPU/pair_dpd_coul_slater_long_gpu.h index 6c755660a1..aed5243fe6 100644 --- a/src/GPU/pair_dpd_charged_gpu.h +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.h @@ -13,14 +13,14 @@ #ifdef PAIR_CLASS // clang-format off -PairStyle(dpd/charged/gpu,PairDPDChargedGPU); +PairStyle(dpd/coul/slater/long,PairDPDChargedGPU); // clang-format on #else #ifndef LMP_PAIR_DPD_CHARGED_GPU_H #define LMP_PAIR_DPD_CHARGED_GPU_H -#include "pair_dpd_charged.h" +#include "pair_coul_slater_long.h" namespace LAMMPS_NS { From 3686a7fcf3b23f4a41440294f907951bc940fea8 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 15:25:28 +0200 Subject: [PATCH 241/313] wrong cl / cubin header file names --- lib/gpu/lal_dpd_coul_slater_long.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index bf23674999..5e4f27e9be 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -14,11 +14,11 @@ ***************************************************************************/ #if defined(USE_OPENCL) -#include "lal_dpd_coul_slater_long_cl.h" +#include "dpd_coul_slater_long_cl.h" #elif defined(USE_CUDART) const char *dpd_charged=0; #else -#include "lal_dpd_coul_slater_long_cubin.h" +#include "dpd_coul_slater_long_cubin.h" #endif #include "lal_dpd_coul_slater_long.h" From 2470d621c82b0b291eee9fb46e52404330f36fa4 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 15:31:28 +0200 Subject: [PATCH 242/313] wrong header name... --- src/GPU/pair_dpd_coul_slater_long_gpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.h b/src/GPU/pair_dpd_coul_slater_long_gpu.h index aed5243fe6..22114e1c77 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.h +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.h @@ -20,7 +20,7 @@ PairStyle(dpd/coul/slater/long,PairDPDChargedGPU); #ifndef LMP_PAIR_DPD_CHARGED_GPU_H #define LMP_PAIR_DPD_CHARGED_GPU_H -#include "pair_coul_slater_long.h" +#include "pair_dpd_coul_slater_long.h" namespace LAMMPS_NS { From 99263ed7d74ba578b52f2a2bbdba8ca22ccc480f Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 15:41:38 +0200 Subject: [PATCH 243/313] init_atomic with new pair name --- lib/gpu/lal_dpd_coul_slater_long.cpp | 2 +- src/GPU/pair_dpd_coul_slater_long_gpu.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index 5e4f27e9be..4d437705a2 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -75,7 +75,7 @@ int DPDChargedT::init(const int ntypes, int success; bool need_charges = true; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd_charged,"k_dpd_charged",onetype, extra_fields, need_charges); + gpu_split,_screen,dpd_coul_slater_long,"k_dpd_charged",onetype, extra_fields, need_charges); if (success!=0) return success; diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.h b/src/GPU/pair_dpd_coul_slater_long_gpu.h index 22114e1c77..cf3ece009a 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.h +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.h @@ -13,7 +13,7 @@ #ifdef PAIR_CLASS // clang-format off -PairStyle(dpd/coul/slater/long,PairDPDChargedGPU); +PairStyle(dpd/coul/slater/long/gpu,PairDPDChargedGPU); // clang-format on #else From 2434ad6574ecbfd37c1a8eb847f0b9e5e925e058 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Wed, 12 Jun 2024 17:29:16 +0200 Subject: [PATCH 244/313] doc page --- doc/src/pair_dpd_coul_slater_long.rst | 191 ++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 doc/src/pair_dpd_coul_slater_long.rst diff --git a/doc/src/pair_dpd_coul_slater_long.rst b/doc/src/pair_dpd_coul_slater_long.rst new file mode 100644 index 0000000000..a6b7d04e2b --- /dev/null +++ b/doc/src/pair_dpd_coul_slater_long.rst @@ -0,0 +1,191 @@ +.. index:: pair_style dpd/coul/slater/long +.. index:: pair_style dpd/coul/slater/long/gpu + +pair_style dpd/coul/slater/long command +====================== + +Accelerator Variants: *dpd/coul/slater/long/gpu* + +Syntax +"""""" + +.. code-block:: LAMMPS + + pair_style dpd/coul/slater/long T cutoff_DPD seed lambda cutoff_coul + + pair_coeff I J a_IJ Gamma is_charged + +* T = temperature (temperature units) (dpd only) +* cutoff_DPD = global cutoff for DPD interactions (distance units) +* seed = random # seed (positive integer) +* lambda = decay length of the charge (distance units) +* cutoff_coul = real part cutoff for Coulombic interactions (distance units) +* I,J = numeric atom types (see asterisk form below), or type labels +* Gamma = DPD Gamma coefficient +* is_charged (boolean) set to yes if I and J are charged beads + +Examples +"""""""" + +.. code-block:: LAMMPS + + pair_style dpd/coul/slater/long 1.0 2.5 34387 0.25 3.0 + pair_coeff 1 1 78.0 4.5 # not charged by default + pair_coeff 2 2 78.0 4.5 yes + + +Description +""""""""""" + +Style *dpd/coul/slater/long* computes a force field for dissipative particle dynamics +(DPD) following the exposition in :ref:`(Groot) ` with the addition of +electrostatic interactions. The coulombic forces in mesoscopic models +employ potentials without explicit excluded-volume interactions. +The goal is to prevent artificial ionic pair formation by including a charge +distribution in the Coulomb potential, following the formulation of +:ref:`(Melchor) `: + +The force on bead I due to bead J is given as a sum +of 4 terms + +.. math:: + + \vec{f} = & (F^C + F^D + F^R + F^E) \hat{r_{ij}} \\ + F^C = & A w(r) \qquad \qquad r < r_c \\ + F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v}_{ij}) \qquad \qquad r < r_c \\ + F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \qquad \qquad r < r_c \\ + w(r) = & 1 - \frac{r}{r_c} \\ + F^E = & \frac{Cq_iq_j}{\epsilon r^2} \left( 1- exp\left( \frac{2r_{ij}}{\lambda} \right) \left( 1 + \frac{2r_{ij}}{\lambda} \left( 1 + \frac{r_{ij}}{\lambda} \right)\right) \right) + +where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative +force, :math:`F^R` is a random force, and :math:`F^E` is an electrostatic force. +:math:`\hat{r_{ij}}` is a unit vector in the direction +:math:`r_i - r_j`, :math:`\vec{v}_{ij}` is +the vector difference in velocities of the two atoms :math:`\vec{v}_i - +\vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean +and unit variance, *dt* is the timestep size, and :math:`w(r)` is a +weighting factor that varies between 0 and 1. :math:`r_c` is the +pairwise cutoff. :math:`\sigma` is set equal to :math:`\sqrt{2 k_B T +\gamma}`, where :math:`k_B` is the Boltzmann constant and *T* is the +temperature parameter in the pair_style command. +C is the same Coulomb conversion factor as in the pair_styles +coul/cut and coul/long. In this way the Coulomb +interaction between ions is corrected at small distances r, and +the long-range interactions are computed either by the Ewald or the PPPM technique. + + +The following parameters must be defined for each +pair of atoms types via the :doc:`pair_coeff ` command as in +the examples above, or in the data file or restart files read by the +:doc:`read_data ` or :doc:`read_restart ` +commands: + +* A (force units) +* :math:`\gamma` (force/velocity units) +* is_charged (boolean) + +Note that sigma is set equal to sqrt(2 T gamma), +where T is the temperature set by the :doc:`pair_style ` +command so it does not need to be specified. + +.. note:: + + This style is the combination of :doc:`pair_style dpd ` and :doc:`pair_style coul/slater/long `. + +---------- + +.. include:: accel_styles.rst + +---------- + +Mixing, shift, table, tail correction, restart, rRESPA info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +This pair style does not support mixing. Thus, coefficients for all +I,J pairs must be specified explicitly. + +This pair style does not support the :doc:`pair_modify ` +shift option for the energy of the pair interaction. + +The :doc:`pair_modify ` table option is not relevant +for this pair style. + +This pair style does not support the :doc:`pair_modify ` +tail option for adding long-range tail corrections to energy and +pressure. + +This pair style writes its information to :doc:`binary restart files +`, so pair_style and pair_coeff commands do not need to be +specified in an input script that reads a restart file. Note that the +user-specified random number seed is stored in the restart file, so when +a simulation is restarted, each processor will re-initialize its random +number generator the same way it did initially. This means the random +forces will be random, but will not be the same as they would have been +if the original simulation had continued past the restart time. + +This pair style can only be used via the *pair* keyword of the +:doc:`run_style respa ` command. They do not support the +*inner*, *middle*, *outer* keywords. + + +---------- + +Restrictions +"""""""""""" + +This style is part of the DPD-BASIC package. It is only enabled if +LAMMPS was built with that package. See the :doc:`Build package +` page for more info. + +The default frequency for rebuilding neighbor lists is every 10 steps +(see the :doc:`neigh_modify ` command). This may be too +infrequent since particles move rapidly and +can overlap by large amounts. If this setting yields a non-zero number +of "dangerous" reneighborings (printed at the end of a simulation), you +should experiment with forcing reneighboring more often and see if +system energies/trajectories change. + +This pair style requires you to use the :doc:`comm_modify vel yes +` command so that velocities are stored by ghost atoms. + +This pair style also requires the long-range solvers included in the KSPACE package. + + +This pair style will not restart exactly when using the +:doc:`read_restart ` command, though they should provide +statistically similar results. This is because the forces they compute +depend on atom velocities. See the :doc:`read_restart ` +command for more details. + +Related commands +"""""""""""""""" + +:doc:`pair_style dpd `, :doc:`pair_style coul/slater/long `, + :doc:`pair_coeff `, +:doc:`fix nvt `, :doc:`fix langevin `, +:doc:`pair_style srp `, :doc:`fix mvv/dpd `. + +Default +""""""" + +none + +---------- + +.. _Groot1: + +**(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). + +.. _Afshar: + +**(Afshar)** Afshar, F. Schmid, A. Pishevar, S. Worley, Comput Phys +Comm, 184, 1119-1128 (2013). + +.. _Phillips: + +**(Phillips)** C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput +Phys Comm, 230, 7191-7201 (2011). + +.. _Melchor: + +**(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \ No newline at end of file From 53db2af179d177ea0e4502191173c7dc27856cd9 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Wed, 12 Jun 2024 12:27:34 -0600 Subject: [PATCH 245/313] Adding ndata accessor to bond history --- src/fix_bond_history.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/fix_bond_history.h b/src/fix_bond_history.h index fafcf52bd9..e19deee82f 100644 --- a/src/fix_bond_history.h +++ b/src/fix_bond_history.h @@ -44,6 +44,7 @@ class FixBondHistory : public Fix { void update_atom_value(int, int, int, double); double get_atom_value(int, int, int); + int get_ndata() const { return ndata; } // methods to reorder/delete elements of atom->bond_atom void delete_history(int, int); From 67d86b559e5d34cf695093d1fec81909653c3ee5 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Wed, 12 Jun 2024 14:44:13 -0600 Subject: [PATCH 246/313] Clarifying BPM logic and removing spelling errors in doc --- doc/src/fix_wall_gran.rst | 17 +++++++++-------- src/BPM/bond_bpm.cpp | 15 +++++---------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 0020de2b02..25d659241c 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -117,14 +117,15 @@ page for :doc:`pair_style granular `. .. note:: When *fstyle* *granular* is specified, the associated *fstyle_params* are taken as - those for a wall–particle interaction. For example, for the hertz/material normal - contact model with :math:`E = 960` and :math:`\nu= 0.2`, the effective Young’s - modulus for a wall–particle interaction is computed as :math:`E_{eff} = \frac{960} - {2(1-0.2^2)} = 500`. Any pair coefficients defined by :doc:`pair_style granular - ` are not taken into consideration. To model different - wall–particle interactions for particles of different material types, the user may - define multiple fix wall/gran commands operating on separate groups (e.g. based - on particle type) each with a different wall–particle effective Young's modulus. + those for a wall/particle interaction. For example, for the *hertz/material* normal + contact model with :math:`E = 960` and :math:`\nu = 0.2`, the effective Young's + modulus for a wall/particle interaction is computed as + :math:`E_{eff} = \frac{960}{2(1-0.2^2)} = 500`. Any pair coefficients defined by + :doc:`pair_style granular ` are not taken into consideration. To + model different wall/particle interactions for particles of different material + types, the user may define multiple fix wall/gran commands operating on separate + groups (e.g. based on particle type) each with a different wall/particle effective + Young's modulus. Note that you can choose a different force styles and/or different values for the wall/particle coefficients than for particle/particle diff --git a/src/BPM/bond_bpm.cpp b/src/BPM/bond_bpm.cpp index f5ff8ab972..e8521df32a 100644 --- a/src/BPM/bond_bpm.cpp +++ b/src/BPM/bond_bpm.cpp @@ -364,17 +364,12 @@ void BondBPM::process_broken(int i, int j) } if (fix_update_special_bonds) { - // If one atom is a ghost, ensure that this processor does not own two copies of the bond - // i.e. if the domain is periodic and 1 processor thick - // If the processor owns both, only break if atom with lower tag is local - // (BPM bond styles should sort so i -> atom with lower tag) + // If this processor owns two copies of the bond (i.e. if the domain is periodic and 1 proc thick), + // skip instance where larger tag (j) owned int check = 1; - tagint *tag = atom->tag; - if ((i >= nlocal) || (j >= nlocal)) { - int imap = atom->map(tag[i]); - int jmap = atom->map(tag[j]); - if (imap < nlocal && jmap < nlocal) - if (i >= nlocal) check = 0; + if (i >= nlocal) { + int imap = atom->map(atom->tag[i]); + if (imap < nlocal) check = 0; } if (check) fix_update_special_bonds->add_broken_bond(i, j); } From ce7ba21b8bba1dbdc85fb0ea840101edff5f73d1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 12 Jun 2024 17:02:18 -0400 Subject: [PATCH 247/313] clarify potentially misleading comment --- src/MC/fix_gcmc.cpp | 3 ++- src/MC/fix_widom.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index bd7e46b3d1..acaaf8ea7e 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -2233,7 +2233,8 @@ void FixGCMC::attempt_molecule_insertion_full() } /* ---------------------------------------------------------------------- - compute particle's interaction energy with the rest of the system + compute particle's interaction energy with the rest of the system by + looping over all atoms in the sub-domain including ghosts. ------------------------------------------------------------------------- */ double FixGCMC::energy(int i, int itype, tagint imolecule, double *coord) diff --git a/src/MC/fix_widom.cpp b/src/MC/fix_widom.cpp index 9871dc8f60..63a43ae506 100644 --- a/src/MC/fix_widom.cpp +++ b/src/MC/fix_widom.cpp @@ -973,7 +973,8 @@ void FixWidom::attempt_molecule_insertion_full() } /* ---------------------------------------------------------------------- - compute particle's interaction energy with the rest of the system + compute particle's interaction energy with the rest of the system by + looping over all atoms in the sub-domain including ghosts. ------------------------------------------------------------------------- */ double FixWidom::energy(int i, int itype, tagint imolecule, double *coord) From 35cbc8432919ef01df4d37ff9232085fee7bc3b2 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 13 Jun 2024 10:25:56 +0200 Subject: [PATCH 248/313] Update lal_dpd_coul_slater_long.cpp --- lib/gpu/lal_dpd_coul_slater_long.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index 4d437705a2..8872e459e6 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -16,7 +16,7 @@ #if defined(USE_OPENCL) #include "dpd_coul_slater_long_cl.h" #elif defined(USE_CUDART) -const char *dpd_charged=0; +const char *dpd_coul_slater_long=0; #else #include "dpd_coul_slater_long_cubin.h" #endif From 8bbbe2dd6b1c7a3efec606c450a9a6126b4ca0f2 Mon Sep 17 00:00:00 2001 From: Eddy Barraud Date: Thu, 13 Jun 2024 11:43:57 +0200 Subject: [PATCH 249/313] Update pair_dpd_coul_slater_long.rst --- doc/src/pair_dpd_coul_slater_long.rst | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/doc/src/pair_dpd_coul_slater_long.rst b/doc/src/pair_dpd_coul_slater_long.rst index a6b7d04e2b..d41ac79b3d 100644 --- a/doc/src/pair_dpd_coul_slater_long.rst +++ b/doc/src/pair_dpd_coul_slater_long.rst @@ -20,7 +20,7 @@ Syntax * seed = random # seed (positive integer) * lambda = decay length of the charge (distance units) * cutoff_coul = real part cutoff for Coulombic interactions (distance units) -* I,J = numeric atom types (see asterisk form below), or type labels +* I,J = numeric atom types, or type labels * Gamma = DPD Gamma coefficient * is_charged (boolean) set to yes if I and J are charged beads @@ -51,9 +51,9 @@ of 4 terms .. math:: \vec{f} = & (F^C + F^D + F^R + F^E) \hat{r_{ij}} \\ - F^C = & A w(r) \qquad \qquad r < r_c \\ + F^C = & A w(r) \qquad \qquad \qquad \qquad \qquad r < r_c \\ F^D = & - \gamma w^2(r) (\hat{r_{ij}} \bullet \vec{v}_{ij}) \qquad \qquad r < r_c \\ - F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \qquad \qquad r < r_c \\ + F^R = & \sigma w(r) \alpha (\Delta t)^{-1/2} \qquad \qquad \qquad r < r_c \\ w(r) = & 1 - \frac{r}{r_c} \\ F^E = & \frac{Cq_iq_j}{\epsilon r^2} \left( 1- exp\left( \frac{2r_{ij}}{\lambda} \right) \left( 1 + \frac{2r_{ij}}{\lambda} \left( 1 + \frac{r_{ij}}{\lambda} \right)\right) \right) @@ -84,9 +84,6 @@ commands: * :math:`\gamma` (force/velocity units) * is_charged (boolean) -Note that sigma is set equal to sqrt(2 T gamma), -where T is the temperature set by the :doc:`pair_style ` -command so it does not need to be specified. .. note:: @@ -161,14 +158,13 @@ Related commands """""""""""""""" :doc:`pair_style dpd `, :doc:`pair_style coul/slater/long `, - :doc:`pair_coeff `, -:doc:`fix nvt `, :doc:`fix langevin `, +:doc:`pair_coeff `, :doc:`fix nvt `, :doc:`fix langevin `, :doc:`pair_style srp `, :doc:`fix mvv/dpd `. Default """"""" -none +is_charged = no ---------- @@ -176,16 +172,6 @@ none **(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). -.. _Afshar: - -**(Afshar)** Afshar, F. Schmid, A. Pishevar, S. Worley, Comput Phys -Comm, 184, 1119-1128 (2013). - -.. _Phillips: - -**(Phillips)** C. L. Phillips, J. A. Anderson, S. C. Glotzer, Comput -Phys Comm, 230, 7191-7201 (2011). - .. _Melchor: **(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \ No newline at end of file From 1b040d71085d6cf8329eb3a16e3293c57e4523e3 Mon Sep 17 00:00:00 2001 From: Eddy BARRAUD Date: Thu, 13 Jun 2024 13:49:18 +0200 Subject: [PATCH 250/313] white space fix --- doc/src/pair_dpd_coul_slater_long.rst | 14 +++++++------- lib/gpu/lal_dpd_coul_slater_long.cpp | 6 +++--- lib/gpu/lal_dpd_coul_slater_long.h | 2 +- lib/gpu/lal_dpd_coul_slater_long_ext.cpp | 2 +- src/DPD-BASIC/pair_dpd_coul_slater_long.cpp | 16 ++++++++-------- src/GPU/pair_dpd_coul_slater_long_gpu.cpp | 6 +++--- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/doc/src/pair_dpd_coul_slater_long.rst b/doc/src/pair_dpd_coul_slater_long.rst index d41ac79b3d..ecdade7084 100644 --- a/doc/src/pair_dpd_coul_slater_long.rst +++ b/doc/src/pair_dpd_coul_slater_long.rst @@ -38,8 +38,8 @@ Description """"""""""" Style *dpd/coul/slater/long* computes a force field for dissipative particle dynamics -(DPD) following the exposition in :ref:`(Groot) ` with the addition of -electrostatic interactions. The coulombic forces in mesoscopic models +(DPD) following the exposition in :ref:`(Groot) ` with the addition of +electrostatic interactions. The coulombic forces in mesoscopic models employ potentials without explicit excluded-volume interactions. The goal is to prevent artificial ionic pair formation by including a charge distribution in the Coulomb potential, following the formulation of @@ -58,8 +58,8 @@ of 4 terms F^E = & \frac{Cq_iq_j}{\epsilon r^2} \left( 1- exp\left( \frac{2r_{ij}}{\lambda} \right) \left( 1 + \frac{2r_{ij}}{\lambda} \left( 1 + \frac{r_{ij}}{\lambda} \right)\right) \right) where :math:`F^C` is a conservative force, :math:`F^D` is a dissipative -force, :math:`F^R` is a random force, and :math:`F^E` is an electrostatic force. -:math:`\hat{r_{ij}}` is a unit vector in the direction +force, :math:`F^R` is a random force, and :math:`F^E` is an electrostatic force. +:math:`\hat{r_{ij}}` is a unit vector in the direction :math:`r_i - r_j`, :math:`\vec{v}_{ij}` is the vector difference in velocities of the two atoms :math:`\vec{v}_i - \vec{v}_j`, :math:`\alpha` is a Gaussian random number with zero mean @@ -68,9 +68,9 @@ weighting factor that varies between 0 and 1. :math:`r_c` is the pairwise cutoff. :math:`\sigma` is set equal to :math:`\sqrt{2 k_B T \gamma}`, where :math:`k_B` is the Boltzmann constant and *T* is the temperature parameter in the pair_style command. -C is the same Coulomb conversion factor as in the pair_styles +C is the same Coulomb conversion factor as in the pair_styles coul/cut and coul/long. In this way the Coulomb -interaction between ions is corrected at small distances r, and +interaction between ions is corrected at small distances r, and the long-range interactions are computed either by the Ewald or the PPPM technique. @@ -174,4 +174,4 @@ is_charged = no .. _Melchor: -**(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). \ No newline at end of file +**(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index 8872e459e6..a6ecf02320 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -46,7 +46,7 @@ template int DPDChargedT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, - double **host_cut_dpd, double **host_cut_dpdsq, + double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *host_special_lj, const bool tstat_only, @@ -87,7 +87,7 @@ int DPDChargedT::init(const int ntypes, lj_types=max_shared_types; shared_types=true; } - + // Allocate a host write buffer for data initialization UCL_H_Vec host_write_coul(lj_types*lj_types*32,*(this->ucl_device), UCL_WRITE_ONLY); @@ -114,7 +114,7 @@ int DPDChargedT::init(const int ntypes, host_sigma,host_cut_dpd); cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); - this->atom->type_pack4(ntypes,lj_types,cutsq,host_write,host_cutsq, + this->atom->type_pack4(ntypes,lj_types,cutsq,host_write,host_cutsq, host_cut_dpdsq, host_scale, host_cut_slatersq); double special_sqrt[4]; diff --git a/lib/gpu/lal_dpd_coul_slater_long.h b/lib/gpu/lal_dpd_coul_slater_long.h index 60d041f5aa..1571ccc570 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.h +++ b/lib/gpu/lal_dpd_coul_slater_long.h @@ -60,7 +60,7 @@ class DPDCharged : public BaseDPD { double **host_sigma, double **host_cut_dpd ); void get_extra_data(double *host_q); - + // --------------------------- TYPE DATA -------------------------- /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd diff --git a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp index c39bbcdf88..618a3c2cde 100644 --- a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp @@ -78,7 +78,7 @@ int dpd_charged_gpu_init(const int ntypes, double **host_cutsq, double **host_a0 init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, host_scale, special_lj, false, inum, nall, max_nbors, - maxspecial, cell_size, gpu_split, screen, + maxspecial, cell_size, gpu_split, screen, host_special_coul,qqrd2e, g_ewald, lamda); DPDCMF.device->serialize_init(); diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp index e34931fbb6..2a9f12ad07 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp @@ -85,7 +85,7 @@ void PairDPDCharged::compute(int eflag, int vflag) double rsq,r,rinv,dot,wd,randnum,factor_dpd,factor_sqrt; int *ilist,*jlist,*numneigh,**firstneigh; double slater_term; - + evdwl = ecoul = 0.0; ev_init(eflag,vflag); @@ -134,7 +134,7 @@ void PairDPDCharged::compute(int eflag, int vflag) delz = ztmp - x[j][2]; rsq = delx*delx + dely*dely + delz*delz; jtype = type[j]; - + // forces if below maximum cutoff if (rsq < cutsq[itype][jtype]) { r = sqrt(rsq); @@ -169,7 +169,7 @@ void PairDPDCharged::compute(int eflag, int vflag) } else forcedpd = 0.0; - // apply Slater electrostatic force if distance below Slater cutoff + // apply Slater electrostatic force if distance below Slater cutoff // and the two species are charged if (rsq < cut_slatersq[itype][jtype]){ r2inv = 1.0/rsq; @@ -182,14 +182,14 @@ void PairDPDCharged::compute(int eflag, int vflag) forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); forcecoul *= r2inv; - + if (eflag) { ecoul = prefactor*(erfc - (1 + r/lamda)*exp(-2*r/lamda)); if (factor_coul < 1.0) ecoul -= (1.0-factor_coul)*prefactor*(1.0-(1 + r/lamda)*exp(-2*r/lamda)); } } else forcecoul = 0.0; - + fpair = forcedpd + forcecoul; f[i][0] += delx*fpair; @@ -200,7 +200,7 @@ void PairDPDCharged::compute(int eflag, int vflag) f[j][1] -= dely*fpair; f[j][2] -= delz*fpair; } - + if (evflag) ev_tally(i,j,nlocal,newton_pair, evdwl,ecoul,fpair,delx,dely,delz); @@ -326,7 +326,7 @@ void PairDPDCharged::init_style() error->all(FLERR,"Pair dpd requires ghost atoms store velocity"); if (!atom->q_flag) error->all(FLERR,"Pair style coul/slater/long requires atom attribute q"); - + // if newton off, forces between atoms ij will be double computed // using different random numbers @@ -570,4 +570,4 @@ void *PairDPDCharged::extract(const char *str, int &dim) return (void *) scale; } return nullptr; -} \ No newline at end of file +} diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp index 0a104c6107..459f86b0bc 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp @@ -323,7 +323,7 @@ void PairDPDChargedGPU::init_style() GPU_EXTRA::check_flag(success, error, world); if (gpu_mode == GPU_FORCE) neighbor->add_request(this, NeighConst::REQ_FULL); - + } /* ---------------------------------------------------------------------- */ @@ -353,7 +353,7 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag double *q = atom->q; double *special_coul = force->special_coul; double qqrd2e = force->qqrd2e; - + evdwl = 0.0; ecoul = 0.0; @@ -435,7 +435,7 @@ void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag } else forcedpd = 0.0; - // apply Slater electrostatic force if distance below Slater cutoff + // apply Slater electrostatic force if distance below Slater cutoff // and the two species are charged if (rsq < cut_slatersq[itype][jtype]){ r2inv = 1.0/rsq; From 3865dda5a248b9919d29ecc9c7caa5b0b9e2d771 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 08:33:40 -0400 Subject: [PATCH 251/313] integrate new doc file into manual --- doc/src/Commands_pair.rst | 3 ++- doc/src/pair_style.rst | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/src/Commands_pair.rst b/doc/src/Commands_pair.rst index 514785c15c..1c889d45cf 100644 --- a/doc/src/Commands_pair.rst +++ b/doc/src/Commands_pair.rst @@ -94,9 +94,10 @@ OPT. * :doc:`coul/wolf (ko) ` * :doc:`coul/wolf/cs ` * :doc:`dpd (giko) ` - * :doc:`dpd/fdt ` + * :doc:`dpd/coul/slater/long (g) ` * :doc:`dpd/ext (ko) ` * :doc:`dpd/ext/tstat (ko) ` + * :doc:`dpd/fdt ` * :doc:`dpd/fdt/energy (k) ` * :doc:`dpd/tstat (gko) ` * :doc:`dsmc ` diff --git a/doc/src/pair_style.rst b/doc/src/pair_style.rst index 74dfce6b01..4a680004ba 100644 --- a/doc/src/pair_style.rst +++ b/doc/src/pair_style.rst @@ -171,6 +171,7 @@ accelerated styles exist. * :doc:`coul/wolf ` - Coulomb via Wolf potential * :doc:`coul/wolf/cs ` - Coulomb via Wolf potential with core/shell adjustments * :doc:`dpd ` - dissipative particle dynamics (DPD) +* :doc:`dpd/coul/slater/long ` - dissipative particle dynamics (DPD) with electrostatic interactions * :doc:`dpd/ext ` - generalized force field for DPD * :doc:`dpd/ext/tstat ` - pairwise DPD thermostatting with generalized force field * :doc:`dpd/fdt ` - DPD for constant temperature and pressure From 4b0adcc66a82a731d97e5fcdea63a506d0d3ae5c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 08:34:25 -0400 Subject: [PATCH 252/313] avoid segfaults when updating charts in simulations with fast thermo output --- tools/lammps-gui/lammpsgui.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 4b0f7370dc..a78d891318 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -852,14 +852,19 @@ void LammpsGui::logupdate() } for (int i = 0; i < ncols; ++i) { - int datatype = *(int *)lammps.last_thermo("type", i); + int datatype = -1; double data = 0.0; - if (datatype == 0) // int - data = *(int *)lammps.last_thermo("data", i); - else if (datatype == 2) // double - data = *(double *)lammps.last_thermo("data", i); - else if (datatype == 4) // bigint - data = (double)*(int64_t *)lammps.last_thermo("data", i); + void *ptr = lammps.last_thermo("type", i); + if (ptr) datatype = *(int *)ptr; + ptr = lammps.last_thermo("data", i); + if (ptr) { + if (datatype == 0) // int + data = *(int *)ptr; + else if (datatype == 2) // double + data = *(double *)ptr; + else if (datatype == 4) // bigint + data = (double)*(int64_t *)ptr; + } chartwindow->add_data(step, data, i); } } From 397dc9a7f6aab20f3e203e8ea20aee1da34cf2a4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 09:13:55 -0400 Subject: [PATCH 253/313] build system and maintenance updates --- .github/CODEOWNERS | 2 ++ cmake/CMakeLists.txt | 2 +- src/.gitignore | 2 ++ src/DPD-BASIC/Install.sh | 39 +++++++++++++++++++++++++++++++++++++++ src/Depend.sh | 1 + 5 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 src/DPD-BASIC/Install.sh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0e42635244..81a2ff5edd 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -72,6 +72,8 @@ src/MC/fix_sgcmc.* @athomps src/REAXFF/compute_reaxff_atom.* @rbberger src/KOKKOS/compute_reaxff_atom_kokkos.* @rbberger src/REPLICA/fix_pimd_langevin.* @Yi-FanLi +src/DPD-BASIC/pair_dpd_coul_slater_long.* @Eddy-Barraud +src/GPU/pair_dpd_coul_slater_long.* @Eddy-Barraud # core LAMMPS classes src/lammps.* @sjplimp diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f87c92396f..2cef74e10a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -689,7 +689,7 @@ endif() # packages which selectively include variants based on enabled styles # e.g. accelerator packages ###################################################################### -foreach(PKG_WITH_INCL CORESHELL DPD-SMOOTH MC MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU) +foreach(PKG_WITH_INCL CORESHELL DPD-BASIC DPD-SMOOTH MC MISC PHONON QEQ OPENMP KOKKOS OPT INTEL GPU) if(PKG_${PKG_WITH_INCL}) include(Packages/${PKG_WITH_INCL}) endif() diff --git a/src/.gitignore b/src/.gitignore index b145f81159..f429a298bb 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1704,6 +1704,8 @@ /pair_dpd.h /pair_dpd_tstat.cpp /pair_dpd_tstat.h +/pair_dpd_coul_slater_long.cpp +/pair_dpd_coul_slater_long.h /pair_dpd_ext.cpp /pair_dpd_ext.h /pair_dpd_ext_tstat.cpp diff --git a/src/DPD-BASIC/Install.sh b/src/DPD-BASIC/Install.sh new file mode 100755 index 0000000000..7371e2fad6 --- /dev/null +++ b/src/DPD-BASIC/Install.sh @@ -0,0 +1,39 @@ +# Install/unInstall package files in LAMMPS +# mode = 0/1/2 for uninstall/install/update + +mode=$1 + +# enforce using portable C locale +LC_ALL=C +export LC_ALL + +# arg1 = file, arg2 = file it depends on + +action () { + if (test $mode = 0) then + rm -f ../$1 + elif (! cmp -s $1 ../$1) then + if (test -z "$2" || test -e ../$2) then + cp $1 .. + if (test $mode = 2) then + echo " updating src/$1" + fi + fi + elif (test -n "$2") then + if (test ! -e ../$2) then + rm -f ../$1 + fi + fi +} + +# list of files with optional dependcies +action pair_dpd_coul_slater_long.cpp pppm.cpp +action pair_dpd_coul_slater_long.h pppm.h +action pair_dpd.cpp +action pair_dpd_ext.cpp +action pair_dpd_ext.h +action pair_dpd_ext_tstat.cpp +action pair_dpd_ext_tstat.h +action pair_dpd.h +action pair_dpd_tstat.cpp +action pair_dpd_tstat.h diff --git a/src/Depend.sh b/src/Depend.sh index 3df1347e67..280fcdc4d8 100755 --- a/src/Depend.sh +++ b/src/Depend.sh @@ -116,6 +116,7 @@ if (test $1 = "KSPACE") then depend CG-SPICA depend CORESHELL depend DIELECTRIC + depend DPD-BASIC depend GPU depend KOKKOS depend OPT From e95598a716625813abc8cfe6d023e46b23bc953d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 09:17:09 -0400 Subject: [PATCH 254/313] doc fixes --- doc/src/Packages_details.rst | 8 +++++++- doc/src/pair_dpd_coul_slater_long.rst | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/src/Packages_details.rst b/doc/src/Packages_details.rst index a3d65d9d65..9747a1e604 100644 --- a/doc/src/Packages_details.rst +++ b/doc/src/Packages_details.rst @@ -676,7 +676,12 @@ DPD-BASIC package Pair styles for the basic dissipative particle dynamics (DPD) method and DPD thermostatting. -**Author:** Kurt Smith (U Pittsburgh), Martin Svoboda, Martin Lisal (ICPF and UJEP) +Pair style :doc:`dpd/coul/slater/long ` also +includes smeared charges for coulomb interactions and thus requires the +:ref:`KSPACE ` package to be installed to handle the long-range +Coulomb part of the interactions. + +**Authors:** Kurt Smith (U Pittsburgh), Martin Svoboda, Martin Lisal (ICPF and UJEP), Eddy Barraud (IFPEN) **Supporting info:** @@ -685,6 +690,7 @@ and DPD thermostatting. * :doc:`pair_style dpd/tstat ` * :doc:`pair_style dpd/ext ` * :doc:`pair_style dpd/ext/tstat ` +* :doc:`pair_style dpd/coul/slater/long ` * examples/PACKAGES/dpd-basic ---------- diff --git a/doc/src/pair_dpd_coul_slater_long.rst b/doc/src/pair_dpd_coul_slater_long.rst index ecdade7084..fde8aa7626 100644 --- a/doc/src/pair_dpd_coul_slater_long.rst +++ b/doc/src/pair_dpd_coul_slater_long.rst @@ -2,7 +2,7 @@ .. index:: pair_style dpd/coul/slater/long/gpu pair_style dpd/coul/slater/long command -====================== +======================================= Accelerator Variants: *dpd/coul/slater/long/gpu* @@ -38,7 +38,7 @@ Description """"""""""" Style *dpd/coul/slater/long* computes a force field for dissipative particle dynamics -(DPD) following the exposition in :ref:`(Groot) ` with the addition of +(DPD) following the exposition in :ref:`(Groot) ` with the addition of electrostatic interactions. The coulombic forces in mesoscopic models employ potentials without explicit excluded-volume interactions. The goal is to prevent artificial ionic pair formation by including a charge @@ -168,7 +168,7 @@ is_charged = no ---------- -.. _Groot1: +.. _Groot5: **(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). From 8eec17d409adc53b4ba08a3430616f57113b486c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 09:26:23 -0400 Subject: [PATCH 255/313] add missing file for CMake build --- cmake/Modules/Packages/DPD-BASIC.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 cmake/Modules/Packages/DPD-BASIC.cmake diff --git a/cmake/Modules/Packages/DPD-BASIC.cmake b/cmake/Modules/Packages/DPD-BASIC.cmake new file mode 100644 index 0000000000..b92d4b56a1 --- /dev/null +++ b/cmake/Modules/Packages/DPD-BASIC.cmake @@ -0,0 +1,9 @@ +# pair style dpd/coul/slater/long may only be installed if also KSPACE is installed +if(NOT PKG_KSPACE) + get_property(LAMMPS_PAIR_HEADERS GLOBAL PROPERTY PAIR) + list(REMOVE_ITEM LAMMPS_PAIR_HEADERS ${LAMMPS_SOURCE_DIR}/DPD-BASIC/pair_dpd_coul_slater_long.h) + set_property(GLOBAL PROPERTY PAIR "${LAMMPS_PAIR_HEADERS}") + get_target_property(LAMMPS_SOURCES lammps SOURCES) + list(REMOVE_ITEM LAMMPS_SOURCES ${LAMMPS_SOURCE_DIR}/DPD-BASIC/pair_dpd_coul_slater_long.cpp) + set_property(TARGET lammps PROPERTY SOURCES "${LAMMPS_SOURCES}") +endif() From 575853b27a6bc49a1eae0f3c3b3af62d7e00b1e6 Mon Sep 17 00:00:00 2001 From: Eddy BARRAUD Date: Thu, 13 Jun 2024 17:11:54 +0200 Subject: [PATCH 256/313] correct headers' author --- lib/gpu/lal_dpd_coul_slater_long.cpp | 10 +++++----- lib/gpu/lal_dpd_coul_slater_long.cu | 2 +- lib/gpu/lal_dpd_coul_slater_long.h | 10 +++++----- lib/gpu/lal_dpd_coul_slater_long_ext.cpp | 10 +++++----- src/DPD-BASIC/pair_dpd_coul_slater_long.cpp | 2 +- src/GPU/pair_dpd_coul_slater_long_gpu.cpp | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index a6ecf02320..a5aae33021 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -1,16 +1,16 @@ /*************************************************************************** - dpd.cpp + lal_dpd_coul_slater_long.cpp ------------------- - Trung Dac Nguyen (ORNL) + Eddy BARRAUD (IFPEN/Sorbonne) - Class for acceleration of the dpd pair style. + Class for acceleration of the dpd/coul/slater/long pair style. __________________________________________________________________________ This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) __________________________________________________________________________ - begin : Jan 15, 2014 - email : nguyentd@ornl.gov + begin : May 28, 2024 + email : eddy.barraud@outlook.fr ***************************************************************************/ #if defined(USE_OPENCL) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cu b/lib/gpu/lal_dpd_coul_slater_long.cu index c96626d444..7ec9a17eac 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cu +++ b/lib/gpu/lal_dpd_coul_slater_long.cu @@ -3,7 +3,7 @@ // ------------------- // Trung Dac Nguyen (ORNL) // -// Device code for acceleration of the dpd pair style +// Device code for acceleration of the dpd/coul/slater/long pair style // // __________________________________________________________________________ // This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) diff --git a/lib/gpu/lal_dpd_coul_slater_long.h b/lib/gpu/lal_dpd_coul_slater_long.h index 1571ccc570..2189c176a7 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.h +++ b/lib/gpu/lal_dpd_coul_slater_long.h @@ -1,16 +1,16 @@ /*************************************************************************** - dpd.h + lal_dpd_coul_slater_long.h ------------------- - Trung Dac Nguyen (ORNL) + Eddy BARRAUD (IFPEN/Sorbonne) - Class for acceleration of the dpd pair style. + Class for acceleration of the dpd/coul/slater/long pair style. __________________________________________________________________________ This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) __________________________________________________________________________ - begin : Jan 15, 2014 - email : nguyentd@ornl.gov + begin : May 28, 2024 + email : eddy.barraud@outlook.fr ***************************************************************************/ #ifndef LAL_DPD_CHARGED_H diff --git a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp index 618a3c2cde..f575b8455f 100644 --- a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp @@ -1,16 +1,16 @@ /*************************************************************************** - dpd_ext.cpp + lal_dpd_coul_slater_long_ext.cpp ------------------- - Trung Dac Nguyen (ORNL) + Eddy BARRAUD (IFPEN/Sorbonne) - Functions for LAMMPS access to dpd acceleration routines. + Functions for LAMMPS access to dpd/coul/slater/long acceleration routines. __________________________________________________________________________ This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) __________________________________________________________________________ - begin : Jan 15, 2014 - email : nguyentd@ornl.gov + begin : May 28, 2024 + email : eddy.barraud@outlook.fr ***************************************************************************/ #include diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp index 2a9f12ad07..46c5230f43 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp @@ -13,7 +13,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Kurt Smith (U Pittsburgh) + Contributing author: Eddy BARRAUD (IFPEN/Sorbonne) ------------------------------------------------------------------------- */ #include "pair_dpd_coul_slater_long.h" diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp index 459f86b0bc..2cfaa7b737 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp @@ -12,7 +12,7 @@ ------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- - Contributing author: Trung Dac Nguyen (ORNL) + Contributing author: Eddy BARRAUD (IFPEN/Sorbonne) ------------------------------------------------------------------------- */ #include "pair_dpd_coul_slater_long_gpu.h" From fb23df7bf79bca09b238ef804723b35cdde27537 Mon Sep 17 00:00:00 2001 From: Eddy BARRAUD Date: Thu, 13 Jun 2024 17:35:45 +0200 Subject: [PATCH 257/313] example input file --- examples/PACKAGES/dpd-basic/README | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/PACKAGES/dpd-basic/README b/examples/PACKAGES/dpd-basic/README index aec19f4fcb..0214c12e2f 100644 --- a/examples/PACKAGES/dpd-basic/README +++ b/examples/PACKAGES/dpd-basic/README @@ -14,3 +14,5 @@ pair styles from the DPD-BASIC package. 4) 'dpdext_tstat' - coarse-grained SPC/E water example for 'dpd/ext/tstat' pair style (in.dpdext_tstat), an initial configuration (dpdext.data) and tabulated potential (cg_spce_table.pot) obtained by bottom-up coarse-graining of the atomistic SPC/E water. + +5) 'dpd_coul_slater_long' - simple example (DPD ionic fluid) for 'dpd/coul/slater/long' pair style (in.dpd_coul_slater_long). \ No newline at end of file From 03251e823f56c3b41125135ef3a235c570eb2227 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 13 Jun 2024 15:20:12 -0400 Subject: [PATCH 258/313] add terminal newline --- examples/PACKAGES/dpd-basic/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/PACKAGES/dpd-basic/README b/examples/PACKAGES/dpd-basic/README index 0214c12e2f..64c26d8880 100644 --- a/examples/PACKAGES/dpd-basic/README +++ b/examples/PACKAGES/dpd-basic/README @@ -15,4 +15,4 @@ pair styles from the DPD-BASIC package. (in.dpdext_tstat), an initial configuration (dpdext.data) and tabulated potential (cg_spce_table.pot) obtained by bottom-up coarse-graining of the atomistic SPC/E water. -5) 'dpd_coul_slater_long' - simple example (DPD ionic fluid) for 'dpd/coul/slater/long' pair style (in.dpd_coul_slater_long). \ No newline at end of file +5) 'dpd_coul_slater_long' - simple example (DPD ionic fluid) for 'dpd/coul/slater/long' pair style (in.dpd_coul_slater_long). From a4ac48addfbd1dd7162aa47f60a1a3c42686526a Mon Sep 17 00:00:00 2001 From: Eddy BARRAUD Date: Fri, 14 Jun 2024 10:13:29 +0200 Subject: [PATCH 259/313] add example file and author contrib --- .../in.dpd_coul_slater_long | 94 +++++++++++++++++++ lib/gpu/lal_dpd_coul_slater_long.cu | 3 +- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long diff --git a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long new file mode 100644 index 0000000000..27d7cd3167 --- /dev/null +++ b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long @@ -0,0 +1,94 @@ +# DPD Ionic Fluid + +variable T equal 1.0 +variable cut_DPD equal 1.0 +variable seed equal 165412 +variable lambda equal 0.25 +variable cut_coul equal 2.0 + +#------------------------------------------------------------------------------- +# Initialize LAMMPS run for 3-d periodic +#------------------------------------------------------------------------------- + +units lj +boundary p p p # periodic at all axes +atom_style full +dimension 3 + +bond_style none +angle_style none +dihedral_style none +improper_style none + +newton on +comm_modify vel yes # store info of ghost atoms btw processors + +#------------------------------------------------------------------------------- +# Box creation and configuration +#------------------------------------------------------------------------------- + +## Box definition +region box block 0 5 0 5 0 5 # 5x5x5 reduced dimensions +create_box 3 box # 3 species in the box + +# Random insertion of beads, number density of 3.0 +# Insert Water beads Type 1 +create_atoms 1 random 315 ${seed} box overlap 0.1 maxtry 5000 +# Insert Sodium beads Type 2 +create_atoms 2 random 30 ${seed} box overlap 0.1 maxtry 5000 +# Insert Chlorure beads Type 3 +create_atoms 3 random 30 ${seed} box overlap 0.1 maxtry 5000 + +# Define masses +mass 1 1.00000 +mass 2 1.00000 +mass 3 1.00000 + +# Define Charges +set type 1 charge 0.000 +set type 2 charge 1.000 +set type 3 charge -1.000 + +# Initiate velocities +velocity all create 1 35642 dist gaussian mom yes rot no + + +# Define pair style and coefficients +pair_style dpd/coul/slater/long ${T} ${cut_DPD} ${seed} ${lambda} ${cut_coul} + +# Enable long range electrostatics solver +kspace_style pppm 5e-04 + +# Define interactions without coulombic interactions +pair_coeff 1 1*3 78.0 4.5 + +# Define interactions with coulombic interactions (both beads charged) +pair_coeff 2*3 2*3 78.0 4.5 yes + +# Construct neighbors every steps +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + + +#------------------------------------------------------------------------------- +# Minimize +#------------------------------------------------------------------------------- + +minimize 1e-4 1e-4 1000 1000 + +#------------------------------------------------------------------------------- +# Run the simulation +#------------------------------------------------------------------------------- + +thermo_style custom step temp press vol evdwl ecoul elong pe ke fnorm fmax +thermo_modify norm no +thermo 100 + +timestep 0.01 +run_style verlet + +fix 1 all nve + +run 5000 + +unfix 1 \ No newline at end of file diff --git a/lib/gpu/lal_dpd_coul_slater_long.cu b/lib/gpu/lal_dpd_coul_slater_long.cu index 7ec9a17eac..ef5e648571 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cu +++ b/lib/gpu/lal_dpd_coul_slater_long.cu @@ -1,7 +1,8 @@ // ************************************************************************** // dpd.cu // ------------------- -// Trung Dac Nguyen (ORNL) +// Eddy BARRAUD (IFPEN/Sorbonne) +// Trung Dac Nguyen (U Chicago) // // Device code for acceleration of the dpd/coul/slater/long pair style // From 514039ed62d588a7e94cc90ad32d36fd3e30ebbd Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Thu, 13 Jun 2024 11:59:39 -0600 Subject: [PATCH 260/313] library: add comm->procgrid to extract_global --- python/lammps/core.py | 2 +- python/lammps/pylammps.py | 3 +-- src/library.cpp | 9 +++++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index 9ab6661df5..497d8efc20 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -891,7 +891,7 @@ class lammps(object): # set length of vector for items that are not a scalar vec_dict = { 'boxlo':3, 'boxhi':3, 'sublo':3, 'subhi':3, 'sublo_lambda':3, 'subhi_lambda':3, 'periodicity':3, - 'special_lj':4, 'special_coul':4 } + 'special_lj':4, 'special_coul':4, 'proc_grid':3 } if name in vec_dict: veclen = vec_dict[name] elif name == 'respa_dt': diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index 7dd3823bbf..4d0737ad79 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -796,6 +796,7 @@ class PyLammps(object): comm = {} comm['nprocs'] = self.lmp.extract_setting("world_size") comm['nthreads'] = self.lmp.extract_setting("nthreads") + comm['proc_grid'] = self.lmp.extract_global("proc_grid") for line in output: if line.startswith("MPI library"): @@ -804,8 +805,6 @@ class PyLammps(object): parts = self._split_values(line) comm['comm_style'] = self._get_pair(parts[0])[1] comm['comm_layout'] = self._get_pair(parts[1])[1] - elif line.startswith("Processor grid"): - comm['proc_grid'] = [int(x) for x in self._get_pair(line)[1].split('x')] elif line.startswith("Communicate velocities for ghost atoms"): comm['ghost_velocity'] = (self._get_pair(line)[1] == "yes") return comm diff --git a/src/library.cpp b/src/library.cpp index e5c3021954..73dc75ed9d 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1386,6 +1386,7 @@ int lammps_extract_global_datatype(void * /*handle*/, const char *name) if (strcmp(name,"xy") == 0) return LAMMPS_DOUBLE; if (strcmp(name,"xz") == 0) return LAMMPS_DOUBLE; if (strcmp(name,"yz") == 0) return LAMMPS_DOUBLE; + if (strcmp(name,"proc_grid") == 0) return LAMMPS_INT; if (strcmp(name,"natoms") == 0) return LAMMPS_BIGINT; if (strcmp(name,"nbonds") == 0) return LAMMPS_BIGINT; @@ -1604,6 +1605,10 @@ report the "native" data type. The following tables are provided: - double - 1 - triclinic tilt factor. See :doc:`Howto_triclinic`. + * - proc_grid + - int + - 3 + - processor count assigned to each dimension of 3d grid. See :doc:`processors`. .. _extract_system_settings: @@ -1861,6 +1866,10 @@ void *lammps_extract_global(void *handle, const char *name) if (strcmp(name,"xy") == 0) return (void *) &lmp->domain->xy; if (strcmp(name,"xz") == 0) return (void *) &lmp->domain->xz; if (strcmp(name,"yz") == 0) return (void *) &lmp->domain->yz; + if ((lmp->comm->layout == Comm::LAYOUT_UNIFORM || + lmp->comm->layout == Comm::LAYOUT_NONUNIFORM) && + (strcmp(name,"proc_grid") == 0)) + return (void *) &lmp->comm->procgrid; if (strcmp(name,"natoms") == 0) return (void *) &lmp->atom->natoms; if (strcmp(name,"ntypes") == 0) return (void *) &lmp->atom->ntypes; From 77b610a2bd62e152c806434d2355444ac13ef582 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jun 2024 20:04:21 -0400 Subject: [PATCH 261/313] also make comm->style, comm->layout, and comm->mode accessible through the library interface --- src/library.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 73dc75ed9d..c9836acab8 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1198,14 +1198,29 @@ internally by the :doc:`Fortran interface ` and are not likely to be us * - triclinic - 1 if the the simulation box is triclinic, 0 if orthogonal. See :doc:`change_box`. + +**Communication status** + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Keyword + - Description / Return value * - universe_rank - MPI rank on LAMMPS' universe communicator (0 <= universe_rank < universe_size) * - universe_size - Number of ranks on LAMMPS' universe communicator (world_size <= universe_size) * - world_rank - - MPI rank on LAMMPS' world communicator (0 <= world_rank < world_size) + - MPI rank on LAMMPS' world communicator (0 <= world_rank < world_size, aka comm->me) * - world_size - - Number of ranks on LAMMPS' world communicator + - Number of ranks on LAMMPS' world communicator (aka comm->nprocs) + * - comm_style + - communication style (0 = BRICK, 1 = TILED) + * - comm_layout + - communication layout (0 = LAYOUT_UNIFORM, 1 = LAYOUT_NONUNIFORM, 2 = LAYOUT_TILED) + * - comm_mode + - communication mode (0 = SINGLE, 1 = MULTI, 2 = MULTIOLD) .. _extract_system_sizes: @@ -1310,6 +1325,9 @@ int lammps_extract_setting(void *handle, const char *keyword) if (strcmp(keyword,"world_rank") == 0) return lmp->comm->me; if (strcmp(keyword,"world_size") == 0) return lmp->comm->nprocs; if (strcmp(keyword,"nthreads") == 0) return lmp->comm->nthreads; + if (strcmp(keyword,"comm_style") == 0) return lmp->comm->style; + if (strcmp(keyword,"comm_layout") == 0) return lmp->comm->layout; + if (strcmp(keyword,"comm_mode") == 0) return lmp->comm->mode; if (strcmp(keyword,"nlocal") == 0) return lmp->atom->nlocal; if (strcmp(keyword,"nghost") == 0) return lmp->atom->nghost; From 1ce94e47d82289c03cdffd80b163c512082b2fe6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jun 2024 20:20:53 -0400 Subject: [PATCH 262/313] also make "comm->ghost_velocity" accessible --- src/library.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/library.cpp b/src/library.cpp index c9836acab8..4fbfbe332b 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1221,6 +1221,8 @@ internally by the :doc:`Fortran interface ` and are not likely to be us - communication layout (0 = LAYOUT_UNIFORM, 1 = LAYOUT_NONUNIFORM, 2 = LAYOUT_TILED) * - comm_mode - communication mode (0 = SINGLE, 1 = MULTI, 2 = MULTIOLD) + * - ghost_velocity + - whether velocities are communicated for ghost atoms (0 = no, 1 = yes) .. _extract_system_sizes: @@ -1328,6 +1330,7 @@ int lammps_extract_setting(void *handle, const char *keyword) if (strcmp(keyword,"comm_style") == 0) return lmp->comm->style; if (strcmp(keyword,"comm_layout") == 0) return lmp->comm->layout; if (strcmp(keyword,"comm_mode") == 0) return lmp->comm->mode; + if (strcmp(keyword,"ghost_velocity") == 0) return lmp->comm->ghost_velocity; if (strcmp(keyword,"nlocal") == 0) return lmp->atom->nlocal; if (strcmp(keyword,"nghost") == 0) return lmp->atom->nghost; From cb3aa07287385930a3f9ac2ff92d562ee9e840b1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 14 Jun 2024 20:21:19 -0400 Subject: [PATCH 263/313] update PyLammps to use added properties directly instead of parsing them. --- python/lammps/pylammps.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index 4d0737ad79..047d02bce0 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -797,16 +797,15 @@ class PyLammps(object): comm['nprocs'] = self.lmp.extract_setting("world_size") comm['nthreads'] = self.lmp.extract_setting("nthreads") comm['proc_grid'] = self.lmp.extract_global("proc_grid") + idx = self.lmp_extract_setting("comm_style") + comm['comm_style'] = ('brick', 'tiled')[idx] + idx = self.lmp_extract_setting("comm_style") + comm['comm_layout'] = ('uniform', 'nonuniform', 'irregular')[idx] + comm['ghost_velocity'] = self.lmp_extract_setting("ghost_velocity") == 1 for line in output: if line.startswith("MPI library"): comm['mpi_version'] = line.split(':')[1].strip() - elif line.startswith("Comm style"): - parts = self._split_values(line) - comm['comm_style'] = self._get_pair(parts[0])[1] - comm['comm_layout'] = self._get_pair(parts[1])[1] - elif line.startswith("Communicate velocities for ghost atoms"): - comm['ghost_velocity'] = (self._get_pair(line)[1] == "yes") return comm def _parse_element_list(self, output): From 9b52f66a5a48427660535d2cd769967f6a29ffa4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jun 2024 05:55:45 -0400 Subject: [PATCH 264/313] fix typos --- python/lammps/pylammps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index 047d02bce0..e213970c8b 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -797,9 +797,9 @@ class PyLammps(object): comm['nprocs'] = self.lmp.extract_setting("world_size") comm['nthreads'] = self.lmp.extract_setting("nthreads") comm['proc_grid'] = self.lmp.extract_global("proc_grid") - idx = self.lmp_extract_setting("comm_style") + idx = self.lmp.extract_setting("comm_style") comm['comm_style'] = ('brick', 'tiled')[idx] - idx = self.lmp_extract_setting("comm_style") + idx = self.lmp.extract_setting("comm_style") comm['comm_layout'] = ('uniform', 'nonuniform', 'irregular')[idx] comm['ghost_velocity'] = self.lmp_extract_setting("ghost_velocity") == 1 From ee0dd80cbee726ea05653a1b6bfa5cd5235876ca Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jun 2024 06:17:13 -0400 Subject: [PATCH 265/313] fix another typo --- python/lammps/pylammps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index e213970c8b..519b1e323c 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -801,7 +801,7 @@ class PyLammps(object): comm['comm_style'] = ('brick', 'tiled')[idx] idx = self.lmp.extract_setting("comm_style") comm['comm_layout'] = ('uniform', 'nonuniform', 'irregular')[idx] - comm['ghost_velocity'] = self.lmp_extract_setting("ghost_velocity") == 1 + comm['ghost_velocity'] = self.lmp.extract_setting("ghost_velocity") == 1 for line in output: if line.startswith("MPI library"): From d2ea3b1ac586c95ebd98c4572a83e6049fd34b5c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jun 2024 08:23:59 -0400 Subject: [PATCH 266/313] add some tests for new features --- unittest/python/python-commands.py | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index f11ac11da9..c007cc8014 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -580,6 +580,37 @@ create_atoms 1 single & "Press" : 0.0} self.assertDictEqual(self.lmp.last_thermo(), ref) + def test_extract_setting(self): + self.assertEqual(self.lmp.extract_setting("dimension"), 3) + self.assertEqual(self.lmp.extract_setting("box_exist"), 0) + self.assertEqual(self.lmp.extract_setting("kokkos_active"), 0) + self.assertEqual(self.lmp.extract_setting("kokkos_nthreads"), 0) + self.assertEqual(self.lmp.extract_setting("kokkos_ngpus"), 0) + self.lmp.command("region box block -1 1 -2 2 -3 3") + self.lmp.command("create_box 1 box") + self.lmp.command("special_bonds lj 0.0 0.5 0.8 coul 0.1 0.5 1.0") + self.assertEqual(self.lmp.extract_setting("newton_bond"), 1) + self.assertEqual(self.lmp.extract_setting("newton_pair"), 1) + self.assertEqual(self.lmp.extract_setting("triclinic"), 0) + self.assertEqual(self.lmp.extract_setting("universe_rank"), 0) + self.assertEqual(self.lmp.extract_setting("universe_size"), 1) + self.assertEqual(self.lmp.extract_setting("world_rank"), 0) + self.assertEqual(self.lmp.extract_setting("world_size"), 1) + self.assertEqual(self.lmp.extract_setting("triclinic"), 0) + self.assertEqual(self.lmp.extract_setting("comm_style"), 0) + self.assertEqual(self.lmp.extract_setting("comm_layout"), 0) + self.assertEqual(self.lmp.extract_setting("comm_mode"), 0) + self.assertEqual(self.lmp.extract_setting("ghost_velocity"), 0) + self.lmp.command("comm_style tiled") + self.lmp.command("comm_modify vel yes") + self.lmp.command("mass 1 1.0") + self.lmp.command("run 0 post no") + self.lmp.command("balance 0.1 rcb") + self.assertEqual(self.lmp.extract_setting("comm_style"), 1) + self.assertEqual(self.lmp.extract_setting("comm_layout"), 2) + self.assertEqual(self.lmp.extract_setting("comm_mode"), 0) + self.assertEqual(self.lmp.extract_setting("ghost_velocity"), 1) + def test_extract_global(self): self.lmp.command("region box block -1 1 -2 2 -3 3") self.lmp.command("create_box 1 box") @@ -628,6 +659,13 @@ create_atoms 1 single & self.assertEqual(self.lmp.extract_global("sublo_lambda"), [0.0, 0.0, 0.0]) self.assertEqual(self.lmp.extract_global("subhi_lambda"), [1.0, 1.0, 1.0]) + # processor grid + self.assertEqual(self.lmp.extract_global("proc_grid"), [1,1,1]) + self.lmp.command("comm_style tiled") + self.lmp.command("run 0 post no") + self.lmp.command("balance 0.1 rcb") + self.assertEqual(self.lmp.extract_global("proc_grid"), None) + def test_create_atoms(self): self.lmp.command("boundary f p m") self.lmp.command("region box block 0 10 0 10 0 10") From 59fb8a683577b032593326eea08e359edcefd3f3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 15 Jun 2024 14:08:14 -0400 Subject: [PATCH 267/313] avoid segfault trying to delete non-copied style --- src/update.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/update.cpp b/src/update.cpp index 13ff7c872a..c9e57f9621 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -328,7 +328,8 @@ void Update::create_integrate(int narg, char **arg, int trysuffix) delete[] integrate_style; delete integrate; - integrate_style = nullptr; + // temporarily assign the style name without suffix (for error messages during creation) + integrate_style = utils::strdup(arg[0]); integrate = nullptr; int sflag; @@ -349,6 +350,7 @@ void Update::create_integrate(int narg, char **arg, int trysuffix) else if ((sflag == 3) && lmp->non_pair_suffix()) estyle += lmp->non_pair_suffix(); } + delete[] integrate_style; integrate_style = utils::strdup(estyle); } @@ -398,11 +400,10 @@ void Update::create_minimize(int narg, char **arg, int trysuffix) delete[] minimize_style; delete minimize; - minimize_style = nullptr; + // temporarily assign the style name without suffix (for error messages during creation) + minimize_style = utils::strdup(arg[0]); minimize = nullptr; - // temporarily assign the style name without suffix (for error messages during creation) - minimize_style = arg[0]; int sflag; new_minimize(arg[0], narg - 1, &arg[1], trysuffix, sflag); @@ -417,6 +418,7 @@ void Update::create_minimize(int narg, char **arg, int trysuffix) else if ((sflag == 3) && lmp->non_pair_suffix()) estyle += lmp->non_pair_suffix(); } + delete[] minimize_style; minimize_style = utils::strdup(estyle); } From 4be1b41aef1c8a0c81e6e1f8538cba8b1f2ec48e Mon Sep 17 00:00:00 2001 From: Eddy BARRAUD Date: Mon, 17 Jun 2024 10:03:06 +0200 Subject: [PATCH 268/313] class n func rename --- lib/gpu/lal_dpd_coul_slater_long.cpp | 26 +++++++-------- lib/gpu/lal_dpd_coul_slater_long.cu | 8 ++--- lib/gpu/lal_dpd_coul_slater_long.h | 6 ++-- lib/gpu/lal_dpd_coul_slater_long_ext.cpp | 16 ++++----- src/DPD-BASIC/pair_dpd_coul_slater_long.cpp | 32 +++++++++--------- src/DPD-BASIC/pair_dpd_coul_slater_long.h | 12 +++---- src/GPU/pair_dpd_coul_slater_long_gpu.cpp | 36 ++++++++++----------- src/GPU/pair_dpd_coul_slater_long_gpu.h | 12 +++---- 8 files changed, 74 insertions(+), 74 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index a5aae33021..cef2c594a1 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -24,26 +24,26 @@ const char *dpd_coul_slater_long=0; #include "lal_dpd_coul_slater_long.h" #include namespace LAMMPS_AL { -#define DPDChargedT DPDCharged +#define DPDCoulSlaterLongT DPDCoulSlaterLong extern Device device; template -DPDChargedT::DPDCharged() : BaseDPD(), _allocated(false) { +DPDCoulSlaterLongT::DPDCoulSlaterLong() : BaseDPD(), _allocated(false) { } template -DPDChargedT::~DPDCharged() { +DPDCoulSlaterLongT::~DPDCoulSlaterLong() { clear(); } template -int DPDChargedT::bytes_per_atom(const int max_nbors) const { +int DPDCoulSlaterLongT::bytes_per_atom(const int max_nbors) const { return this->bytes_per_atom_atomic(max_nbors); } template -int DPDChargedT::init(const int ntypes, +int DPDCoulSlaterLongT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, @@ -75,7 +75,7 @@ int DPDChargedT::init(const int ntypes, int success; bool need_charges = true; success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size, - gpu_split,_screen,dpd_coul_slater_long,"k_dpd_charged",onetype, extra_fields, need_charges); + gpu_split,_screen,dpd_coul_slater_long,"k_dpd_coul_slater_long",onetype, extra_fields, need_charges); if (success!=0) return success; @@ -140,7 +140,7 @@ int DPDChargedT::init(const int ntypes, } template -void DPDChargedT::clear() { +void DPDCoulSlaterLongT::clear() { if (!_allocated) return; _allocated=false; @@ -153,15 +153,15 @@ void DPDChargedT::clear() { } template -double DPDChargedT::host_memory_usage() const { - return this->host_memory_usage_atomic()+sizeof(DPDCharged); +double DPDCoulSlaterLongT::host_memory_usage() const { + return this->host_memory_usage_atomic()+sizeof(DPDCoulSlaterLong); } // --------------------------------------------------------------------------- // Calculate energies, forces, and torques // --------------------------------------------------------------------------- template -int DPDChargedT::loop(const int eflag, const int vflag) { +int DPDCoulSlaterLongT::loop(const int eflag, const int vflag) { int nall = this->atom->nall(); // signal that we need to transfer extra data from the host @@ -215,7 +215,7 @@ int DPDChargedT::loop(const int eflag, const int vflag) { } template -void DPDChargedT::update_coeff(int ntypes, double **host_a0, double **host_gamma, +void DPDCoulSlaterLongT::update_coeff(int ntypes, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd) { UCL_H_Vec host_write(_lj_types*_lj_types*32,*(this->ucl_device), @@ -229,11 +229,11 @@ void DPDChargedT::update_coeff(int ntypes, double **host_a0, double **host_gamma // --------------------------------------------------------------------------- template -void DPDChargedT::get_extra_data(double *host_q) { +void DPDCoulSlaterLongT::get_extra_data(double *host_q) { q = host_q; } -template class DPDCharged; +template class DPDCoulSlaterLong; } diff --git a/lib/gpu/lal_dpd_coul_slater_long.cu b/lib/gpu/lal_dpd_coul_slater_long.cu index ef5e648571..2c8f020c8d 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cu +++ b/lib/gpu/lal_dpd_coul_slater_long.cu @@ -10,8 +10,8 @@ // This file is part of the LAMMPS Accelerator Library (LAMMPS_AL) // __________________________________________________________________________ // -// begin : Jan 15, 2014 -// email : nguyentd@ornl.gov +// begin : May 28, 2024 +// email : eddy.barraud@outlook.fr // *************************************************************************** #if defined(NV_KERNEL) || defined(USE_HIP) @@ -162,7 +162,7 @@ _texture_2d( vel_tex,int4); } #endif -__kernel void k_dpd_charged(const __global numtyp4 *restrict x_, +__kernel void k_dpd_coul_slater_long(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict extra, const __global numtyp4 *restrict coeff, const int lj_types, @@ -336,7 +336,7 @@ __kernel void k_dpd_charged(const __global numtyp4 *restrict x_, ans,engv); } -__kernel void k_dpd_charged_fast(const __global numtyp4 *restrict x_, +__kernel void k_dpd_coul_slater_long_fast(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict extra, const __global numtyp4 *restrict coeff_in, const __global numtyp *restrict sp_lj_in, diff --git a/lib/gpu/lal_dpd_coul_slater_long.h b/lib/gpu/lal_dpd_coul_slater_long.h index 2189c176a7..e8e413b26a 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.h +++ b/lib/gpu/lal_dpd_coul_slater_long.h @@ -21,10 +21,10 @@ namespace LAMMPS_AL { template -class DPDCharged : public BaseDPD { +class DPDCoulSlaterLong : public BaseDPD { public: - DPDCharged(); - ~DPDCharged(); + DPDCoulSlaterLong(); + ~DPDCoulSlaterLong(); /// Clear any previous data and set up for a new LAMMPS run /** \param max_nbors initial number of rows in the neighbor matrix diff --git a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp index f575b8455f..35350aca6d 100644 --- a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp @@ -22,12 +22,12 @@ using namespace std; using namespace LAMMPS_AL; -static DPDCharged DPDCMF; +static DPDCoulSlaterLong DPDCMF; // --------------------------------------------------------------------------- // Allocate memory on host and device and copy constants to device // --------------------------------------------------------------------------- -int dpd_charged_gpu_init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, +int dpd_coul_slater_long_gpu_init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, @@ -93,11 +93,11 @@ int dpd_charged_gpu_init(const int ntypes, double **host_cutsq, double **host_a0 return init_ok; } -void dpd_charged_gpu_clear() { +void dpd_coul_slater_long_gpu_clear() { DPDCMF.clear(); } -int ** dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, +int ** dpd_coul_slater_long_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, tagint **special, const bool eflag, const bool vflag, @@ -112,7 +112,7 @@ int ** dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int n host_v, dtinvsqrt, seed, timestep, boxlo, prd); } -void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, +void dpd_coul_slater_long_gpu_compute(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag, const bool vflag, const bool eatom, const bool vatom, int &host_start, @@ -125,17 +125,17 @@ void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, tag, host_v, dtinvsqrt, seed, timestep, nlocal, boxlo, prd); } -void dpd_charged_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, +void dpd_coul_slater_long_gpu_update_coeff(int ntypes, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd) { DPDCMF.update_coeff(ntypes,host_a0,host_gamma,host_sigma, host_cut_dpd); } -void dpd_charged_gpu_get_extra_data(double *host_q) { +void dpd_coul_slater_long_gpu_get_extra_data(double *host_q) { DPDCMF.get_extra_data(host_q); } -double dpd_charged_gpu_bytes() { +double dpd_coul_slater_long_gpu_bytes() { return DPDCMF.host_memory_usage(); } diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp index 46c5230f43..7e4d267045 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp @@ -41,7 +41,7 @@ static constexpr double EPSILON = 1.0e-10; /* ---------------------------------------------------------------------- */ -PairDPDCharged::PairDPDCharged(LAMMPS *lmp) : Pair(lmp) +PairDPDCoulSlaterLong::PairDPDCoulSlaterLong(LAMMPS *lmp) : Pair(lmp) { writedata = 1; ewaldflag = pppmflag = 1; @@ -51,7 +51,7 @@ PairDPDCharged::PairDPDCharged(LAMMPS *lmp) : Pair(lmp) /* ---------------------------------------------------------------------- */ -PairDPDCharged::~PairDPDCharged() +PairDPDCoulSlaterLong::~PairDPDCoulSlaterLong() { if (copymode) return; @@ -75,7 +75,7 @@ PairDPDCharged::~PairDPDCharged() /* ---------------------------------------------------------------------- */ -void PairDPDCharged::compute(int eflag, int vflag) +void PairDPDCoulSlaterLong::compute(int eflag, int vflag) { int i,j,ii,jj,inum,jnum,itype,jtype; double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,evdwl,ecoul,fpair; @@ -215,7 +215,7 @@ void PairDPDCharged::compute(int eflag, int vflag) allocate all arrays ------------------------------------------------------------------------- */ -void PairDPDCharged::allocate() +void PairDPDCoulSlaterLong::allocate() { int i,j; allocated = 1; @@ -246,7 +246,7 @@ void PairDPDCharged::allocate() global settings ------------------------------------------------------------------------- */ -void PairDPDCharged::settings(int narg, char **arg) +void PairDPDCoulSlaterLong::settings(int narg, char **arg) { // params : T cut_dpd seed lambda cut_coul if (narg != 5) error->all(FLERR,"Illegal pair_style command"); @@ -276,7 +276,7 @@ void PairDPDCharged::settings(int narg, char **arg) set coeffs for one or more type pairs ------------------------------------------------------------------------- */ -void PairDPDCharged::coeff(int narg, char **arg) +void PairDPDCoulSlaterLong::coeff(int narg, char **arg) { if (narg < 4 || narg > 6) error->all(FLERR,"Incorrect args for pair coefficients"); @@ -320,7 +320,7 @@ void PairDPDCharged::coeff(int narg, char **arg) init specific to this pair style ------------------------------------------------------------------------- */ -void PairDPDCharged::init_style() +void PairDPDCoulSlaterLong::init_style() { if (comm->ghost_velocity == 0) error->all(FLERR,"Pair dpd requires ghost atoms store velocity"); @@ -353,7 +353,7 @@ void PairDPDCharged::init_style() return the DPD cutoff for uncharged ------------------------------------------------------------------------- */ -double PairDPDCharged::init_one(int i, int j) +double PairDPDCoulSlaterLong::init_one(int i, int j) { if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set"); @@ -380,7 +380,7 @@ double PairDPDCharged::init_one(int i, int j) proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairDPDCharged::write_restart(FILE *fp) +void PairDPDCoulSlaterLong::write_restart(FILE *fp) { write_restart_settings(fp); @@ -405,7 +405,7 @@ void PairDPDCharged::write_restart(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairDPDCharged::read_restart(FILE *fp) +void PairDPDCoulSlaterLong::read_restart(FILE *fp) { read_restart_settings(fp); @@ -440,7 +440,7 @@ void PairDPDCharged::read_restart(FILE *fp) proc 0 writes to restart file ------------------------------------------------------------------------- */ -void PairDPDCharged::write_restart_settings(FILE *fp) +void PairDPDCoulSlaterLong::write_restart_settings(FILE *fp) { fwrite(&temperature,sizeof(double),1,fp); fwrite(&cut_global,sizeof(double),1,fp); @@ -459,7 +459,7 @@ void PairDPDCharged::write_restart_settings(FILE *fp) proc 0 reads from restart file, bcasts ------------------------------------------------------------------------- */ -void PairDPDCharged::read_restart_settings(FILE *fp) +void PairDPDCoulSlaterLong::read_restart_settings(FILE *fp) { if (comm->me == 0) { utils::sfread(FLERR,&temperature,sizeof(double),1,fp,nullptr,error); @@ -493,7 +493,7 @@ void PairDPDCharged::read_restart_settings(FILE *fp) proc 0 writes to data file ------------------------------------------------------------------------- */ -void PairDPDCharged::write_data(FILE *fp) +void PairDPDCoulSlaterLong::write_data(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) fprintf(fp,"%d %g %g\n",i,a0[i][i],gamma[i][i]); @@ -503,7 +503,7 @@ void PairDPDCharged::write_data(FILE *fp) proc 0 writes all pairs to data file ------------------------------------------------------------------------- */ -void PairDPDCharged::write_data_all(FILE *fp) +void PairDPDCoulSlaterLong::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) for (int j = i; j <= atom->ntypes; j++) @@ -512,7 +512,7 @@ void PairDPDCharged::write_data_all(FILE *fp) /* ---------------------------------------------------------------------- */ -double PairDPDCharged::single(int i, int j, int itype, int jtype, double rsq, +double PairDPDCoulSlaterLong::single(int i, int j, int itype, int jtype, double rsq, double factor_coul, double factor_dpd, double &fforce) { double r,rinv,wd,phi; @@ -555,7 +555,7 @@ double PairDPDCharged::single(int i, int j, int itype, int jtype, double rsq, return energy; } -void *PairDPDCharged::extract(const char *str, int &dim) +void *PairDPDCoulSlaterLong::extract(const char *str, int &dim) { if (strcmp(str,"cut_coul") == 0) { dim = 0; diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.h b/src/DPD-BASIC/pair_dpd_coul_slater_long.h index c0a1a192d3..36558ccf24 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.h +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.h @@ -13,21 +13,21 @@ #ifdef PAIR_CLASS // clang-format off -PairStyle(dpd/coul/slater/long,PairDPDCharged); +PairStyle(dpd/coul/slater/long,PairDPDCoulSlaterLong); // clang-format on #else -#ifndef LMP_PAIR_DPD_CHARGED_H -#define LMP_PAIR_DPD_CHARGED_H +#ifndef LMP_PAIR_DPD_COUL_SLATER_LONG_H +#define LMP_PAIR_DPD_COUL_SLATER_LONG_H #include "pair.h" namespace LAMMPS_NS { -class PairDPDCharged : public Pair { +class PairDPDCoulSlaterLong : public Pair { public: - PairDPDCharged(class LAMMPS *); - ~PairDPDCharged() override; + PairDPDCoulSlaterLong(class LAMMPS *); + ~PairDPDCoulSlaterLong() override; void compute(int, int) override; void settings(int, char **) override; void coeff(int, char **) override; diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp index 2cfaa7b737..8591a894b3 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp @@ -39,30 +39,30 @@ using namespace EwaldConst; // External functions from cuda library for atom decomposition -int dpd_charged_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, +int dpd_coul_slater_long_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, double **host_scale, double *special_lj, const int inum, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen, double *host_special_coul, const double qqrd2e, const double g_ewald, const double lamda); -void dpd_charged_gpu_clear(); -int **dpd_charged_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, +void dpd_coul_slater_long_gpu_clear(); +int **dpd_coul_slater_long_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, tagint **special, const bool eflag, const bool vflag, const bool eatom, const bool vatom, int &host_start, int **ilist, int **jnum, const double cpu_time, bool &success, double **host_v, const double dtinvsqrt, const int seed, const int timestep, double *boxlo, double *prd); -void dpd_charged_gpu_compute(const int ago, const int inum_full, const int nall, double **host_x, +void dpd_coul_slater_long_gpu_compute(const int ago, const int inum_full, const int nall, double **host_x, int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag, const bool vflag, const bool eatom, const bool vatom, int &host_start, const double cpu_time, bool &success, tagint *tag, double **host_v, const double dtinvsqrt, const int seed, const int timestep, const int nlocal, double *boxlo, double *prd); -void dpd_charged_gpu_get_extra_data(double *host_q); +void dpd_coul_slater_long_gpu_get_extra_data(double *host_q); -double dpd_charged_gpu_bytes(); +double dpd_coul_slater_long_gpu_bytes(); static constexpr double EPSILON = 1.0e-10; @@ -207,7 +207,7 @@ static constexpr double EPSILON = 1.0e-10; /* ---------------------------------------------------------------------- */ -PairDPDChargedGPU::PairDPDChargedGPU(LAMMPS *lmp) : PairDPDCharged(lmp), gpu_mode(GPU_FORCE) +PairDPDCoulSlaterLongGPU::PairDPDCoulSlaterLongGPU(LAMMPS *lmp) : PairDPDCoulSlaterLong(lmp), gpu_mode(GPU_FORCE) { respa_enable = 0; reinitflag = 0; @@ -220,14 +220,14 @@ PairDPDChargedGPU::PairDPDChargedGPU(LAMMPS *lmp) : PairDPDCharged(lmp), gpu_mod free all arrays ------------------------------------------------------------------------- */ -PairDPDChargedGPU::~PairDPDChargedGPU() +PairDPDCoulSlaterLongGPU::~PairDPDCoulSlaterLongGPU() { - dpd_charged_gpu_clear(); + dpd_coul_slater_long_gpu_clear(); } /* ---------------------------------------------------------------------- */ -void PairDPDChargedGPU::compute(int eflag, int vflag) +void PairDPDCoulSlaterLongGPU::compute(int eflag, int vflag) { ev_init(eflag, vflag); @@ -240,7 +240,7 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) int *ilist, *numneigh, **firstneigh; double *q = atom->q; - dpd_charged_gpu_get_extra_data(q); + dpd_coul_slater_long_gpu_get_extra_data(q); if (gpu_mode != GPU_FORCE) { double sublo[3], subhi[3]; @@ -255,7 +255,7 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) domain->bbox(domain->sublo_lamda, domain->subhi_lamda, sublo, subhi); } inum = atom->nlocal; - firstneigh = dpd_charged_gpu_compute_n( + firstneigh = dpd_coul_slater_long_gpu_compute_n( neighbor->ago, inum, nall, atom->x, atom->type, sublo, subhi, atom->tag, atom->nspecial, atom->special, eflag, vflag, eflag_atom, vflag_atom, host_start, &ilist, &numneigh, cpu_time, success, atom->v, dtinvsqrt, seed, update->ntimestep, domain->boxlo, domain->prd); @@ -264,7 +264,7 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) ilist = list->ilist; numneigh = list->numneigh; firstneigh = list->firstneigh; - dpd_charged_gpu_compute(neighbor->ago, inum, nall, atom->x, atom->type, ilist, numneigh, firstneigh, + dpd_coul_slater_long_gpu_compute(neighbor->ago, inum, nall, atom->x, atom->type, ilist, numneigh, firstneigh, eflag, vflag, eflag_atom, vflag_atom, host_start, cpu_time, success, atom->tag, atom->v, dtinvsqrt, seed, update->ntimestep, atom->nlocal, domain->boxlo, domain->prd); @@ -284,7 +284,7 @@ void PairDPDChargedGPU::compute(int eflag, int vflag) init specific to this pair style ------------------------------------------------------------------------- */ -void PairDPDChargedGPU::init_style() +void PairDPDCoulSlaterLongGPU::init_style() { if (comm->ghost_velocity == 0) @@ -315,7 +315,7 @@ void PairDPDChargedGPU::init_style() if (atom->molecular != Atom::ATOMIC) maxspecial = atom->maxspecial; int mnf = 5e-2 * neighbor->oneatom; int success = - dpd_charged_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, + dpd_coul_slater_long_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, cut_dpd, cut_dpdsq, cut_slatersq, scale, force->special_lj, atom->nlocal, atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen, @@ -328,15 +328,15 @@ void PairDPDChargedGPU::init_style() /* ---------------------------------------------------------------------- */ -double PairDPDChargedGPU::memory_usage() +double PairDPDCoulSlaterLongGPU::memory_usage() { double bytes = Pair::memory_usage(); - return bytes + dpd_charged_gpu_bytes(); + return bytes + dpd_coul_slater_long_gpu_bytes(); } /* ---------------------------------------------------------------------- */ -void PairDPDChargedGPU::cpu_compute(int start, int inum, int eflag, int /* vflag */, int *ilist, +void PairDPDCoulSlaterLongGPU::cpu_compute(int start, int inum, int eflag, int /* vflag */, int *ilist, int *numneigh, int **firstneigh) { int i, j, ii, jj, jnum, itype, jtype; diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.h b/src/GPU/pair_dpd_coul_slater_long_gpu.h index cf3ece009a..5903391d4d 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.h +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.h @@ -13,21 +13,21 @@ #ifdef PAIR_CLASS // clang-format off -PairStyle(dpd/coul/slater/long/gpu,PairDPDChargedGPU); +PairStyle(dpd/coul/slater/long/gpu,PairDPDCoulSlaterLongGPU); // clang-format on #else -#ifndef LMP_PAIR_DPD_CHARGED_GPU_H -#define LMP_PAIR_DPD_CHARGED_GPU_H +#ifndef LMP_PAIR_DPD_COUL_SLATER_LONG_GPU_H +#define LMP_PAIR_DPD_COUL_SLATER_LONG_GPU_H #include "pair_dpd_coul_slater_long.h" namespace LAMMPS_NS { -class PairDPDChargedGPU : public PairDPDCharged { +class PairDPDCoulSlaterLongGPU : public PairDPDCoulSlaterLong { public: - PairDPDChargedGPU(LAMMPS *lmp); - ~PairDPDChargedGPU() override; + PairDPDCoulSlaterLongGPU(LAMMPS *lmp); + ~PairDPDCoulSlaterLongGPU() override; void cpu_compute(int, int, int, int, int *, int *, int **); void compute(int, int) override; void init_style() override; From f4005e350a80077b17c4164f9f7b00eec7b74625 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jun 2024 07:11:56 -0400 Subject: [PATCH 269/313] update fix plumed API version check and add reminder comments to build files --- cmake/Modules/Packages/PLUMED.cmake | 2 ++ lib/plumed/Install.py | 2 ++ src/PLUMED/fix_plumed.cpp | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/PLUMED.cmake b/cmake/Modules/Packages/PLUMED.cmake index 562379eb78..4c5a6ddcfe 100644 --- a/cmake/Modules/Packages/PLUMED.cmake +++ b/cmake/Modules/Packages/PLUMED.cmake @@ -21,6 +21,8 @@ else() set(PLUMED_CONFIG_OMP "--disable-openmp") endif() +# Note: must also adjust check for supported API versions in +# fix_plumed.cpp when version changes from v2.n.x to v2.n+1.y set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.9.1/plumed-src-2.9.1.tgz" CACHE STRING "URL for PLUMED tarball") set(PLUMED_MD5 "c3b2d31479c1e9ce211719d40e9efbd7" CACHE STRING "MD5 checksum of PLUMED tarball") diff --git a/lib/plumed/Install.py b/lib/plumed/Install.py index 4713cf9196..66501a74e9 100644 --- a/lib/plumed/Install.py +++ b/lib/plumed/Install.py @@ -16,6 +16,8 @@ parser = ArgumentParser(prog='Install.py', description="LAMMPS library build wrapper script") # settings +# Note: must also adjust check for supported API versions in +# fix_plumed.cpp when version changes from v2.n.x to v2.n+1.y version = "2.9.1" mode = "static" diff --git a/src/PLUMED/fix_plumed.cpp b/src/PLUMED/fix_plumed.cpp index ad7f4f3995..3ffab52f24 100644 --- a/src/PLUMED/fix_plumed.cpp +++ b/src/PLUMED/fix_plumed.cpp @@ -77,9 +77,9 @@ FixPlumed::FixPlumed(LAMMPS *lmp, int narg, char **arg) : int api_version=0; p->cmd("getApiVersion",&api_version); - if ((api_version < 5) || (api_version > 9)) + if ((api_version < 5) || (api_version > 10)) error->all(FLERR,"Incompatible API version for PLUMED in fix plumed. " - "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x are tested and supported."); + "Only Plumed 2.4.x, 2.5.x, 2.6.x, 2.7.x, 2.8.x, 2.9.x are tested and supported."); #if !defined(MPI_STUBS) // If the -partition option is activated then enable From 318b43f358424acbd9a57bd6a67d8b9c97772cfc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jun 2024 15:02:43 -0400 Subject: [PATCH 270/313] update group2ndx/ndx2group docs --- doc/src/group2ndx.rst | 57 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/doc/src/group2ndx.rst b/doc/src/group2ndx.rst index 8c28d43aa0..19c472e109 100644 --- a/doc/src/group2ndx.rst +++ b/doc/src/group2ndx.rst @@ -34,21 +34,54 @@ Description Write or read a Gromacs style index file in text format that associates atom IDs with the corresponding group definitions. This index file can be used with in combination with Gromacs analysis tools or to import group -definitions into the :doc:`fix colvars ` input file. It can -also be used to save and restore group definitions for static groups. +definitions into the :doc:`fix colvars ` input file. + +It can also be used to save and restore group definitions for static groups +using the individual atom IDs. This may be important if the original +group definition depends on a region or otherwise on the geometry and thus +cannot be easily recreated. + +Another application would be to import atom groups defined for Gromacs +simulation into LAMMPS. When translating Gromacs topology and geometry +data to LAMMPS. The *group2ndx* command will write group definitions to an index file. -Without specifying any group IDs, all groups will be written to the index -file. When specifying group IDs, only those groups will be written to the -index file. In order to follow the Gromacs conventions, the group *all* -will be renamed to *System* in the index file. +Without specifying any group IDs, all groups will be written to the +index file. When specifying group IDs, only those groups will be +written to the index file. In order to follow the Gromacs conventions, +the group *all* will be renamed to *System* in the index file. -The *ndx2group* command will create of update group definitions from those -stored in an index file. Without specifying any group IDs, all groups except -*System* will be read from the index file and the corresponding groups -recreated. If a group of the same name already exists, it will be completely -reset. When specifying group IDs, those groups, if present, will be read -from the index file and restored. +The *ndx2group* command will create of update group definitions from +those stored in an index file. Without specifying any group IDs, all +groups except *System* will be read from the index file and the +corresponding groups recreated. If a group of the same name already +exists, it will be completely reset. When specifying group IDs, those +groups, if present, will be read from the index file and restored. + +File Format +""""""""""" + +The file format is equivalent and compatible with what is produced by +the `Gromacs make_ndx command `_. +and follows the `Gromacs definition of an ndx file `_ + +Each group definition begins with the group name in square brackets with +blanks, e.g. \[ water \] and is then followed by the list of atom +indices, which may be spread over multiple lines. Here is a small +example file: + +.. code-block:: ini + + [ Oxygen ] + 1 4 7 + [ Hydrogen ] + 2 3 5 6 + 8 9 + [ Water ] + 1 2 3 4 5 6 7 8 9 + +The index file defines 3 groups: Oxygen, Hydrogen, and Water and the +latter happens to be the union of the first two. ---------- From 9856ef7d81c06d4a92a921e588d6167e679770eb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jun 2024 16:57:22 -0400 Subject: [PATCH 271/313] better error handling when processing index files with illegal group names --- src/EXTRA-COMMAND/ndx_group.cpp | 57 ++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/src/EXTRA-COMMAND/ndx_group.cpp b/src/EXTRA-COMMAND/ndx_group.cpp index 4170a9ea70..52721f9628 100644 --- a/src/EXTRA-COMMAND/ndx_group.cpp +++ b/src/EXTRA-COMMAND/ndx_group.cpp @@ -34,14 +34,16 @@ static std::string find_section(FILE *fp, const std::string &name) { char linebuf[BUFLEN]; - std::string pattern = "^\\s*\\[\\s+\\S+\\s+\\]\\s*$"; - if (!name.empty()) - pattern = fmt::format("^\\s*\\[\\s+{}\\s+\\]\\s*$",name); - fgets(linebuf,BUFLEN,fp); while (!feof(fp)) { - if (utils::strmatch(linebuf,pattern)) - return Tokenizer(linebuf).as_vector()[1]; + if (utils::strmatch(linebuf, "^\\s*\\[.*\\]\\s*$")) { + auto words = Tokenizer(linebuf).as_vector(); + if (words.size() != 3) + throw TokenizerException("Invalid group name in index file", + utils::trim(utils::strfind(linebuf,"[^\\[^\\]]+"))); + if (name.empty() || (name == words[1])) + return words[1]; + } fgets(linebuf,BUFLEN,fp); } return ""; @@ -51,12 +53,15 @@ static std::vector read_section(FILE *fp, std::string &name) { char linebuf[BUFLEN]; std::vector tagbuf; - std::string pattern = "^\\s*\\[\\s+\\S+\\s+\\]\\s*$"; while (fgets(linebuf,BUFLEN,fp)) { // start of new section. we are done, update "name" - if (utils::strmatch(linebuf,pattern)) { - name = Tokenizer(linebuf).as_vector()[1]; + if (utils::strmatch(linebuf, "^\\s*\\[.*\\]\\s*$")) { + auto words = Tokenizer(linebuf).as_vector(); + if (words.size() != 3) + throw TokenizerException("Invalid group name in index file", + utils::trim(utils::strfind(linebuf,"[^\\[^\\]]+"))); + name = words[1]; return tagbuf; } ValueTokenizer values(linebuf); @@ -93,12 +98,20 @@ void Ndx2Group::command(int narg, char **arg) if (narg == 1) { // restore all groups if (comm->me == 0) { - name = find_section(fp,""); - while (!name.empty()) { + try { + name = find_section(fp,""); + } catch (std::exception &e) { + error->one(FLERR, e.what()); + } + while (!name.empty()) { // skip over group "all", which is called "System" in gromacs if (name == "System") { - name = find_section(fp,""); + try { + name = find_section(fp,""); + } catch (std::exception &e) { + error->one(FLERR, e.what()); + } continue; } @@ -109,7 +122,12 @@ void Ndx2Group::command(int narg, char **arg) MPI_Bcast((void *)name.c_str(),len,MPI_CHAR,0,world); // read tags for atoms in group and broadcast - std::vector tags = read_section(fp,next); + std::vector tags; + try { + tags = read_section(fp,next); + } catch (std::exception &e) { + error->one(FLERR, e.what()); + } num = tags.size(); MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); MPI_Bcast((void *)tags.data(),num,MPI_LMP_TAGINT,0,world); @@ -145,7 +163,11 @@ void Ndx2Group::command(int narg, char **arg) // find named section, search from beginning of file rewind(fp); - name = find_section(fp,arg[idx]); + try { + name = find_section(fp,arg[idx]); + } catch (std::exception &e) { + error->one(FLERR, e.what()); + } utils::logmesg(lmp," {} group '{}'\n", name.size() ? "Processing" : "Skipping",arg[idx]); len = name.size()+1; @@ -154,7 +176,12 @@ void Ndx2Group::command(int narg, char **arg) MPI_Bcast((void *)name.c_str(),len,MPI_CHAR,0,world); // read tags for atoms in group and broadcast - std::vector tags = read_section(fp,next); + std::vector tags; + try { + tags = read_section(fp,next); + } catch (std::exception &e) { + error->one(FLERR, e.what()); + } num = tags.size(); MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); MPI_Bcast((void *)tags.data(),num,MPI_LMP_TAGINT,0,world); From c867bb3e28eabea1f803c9d0ae205b7d561f05f5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jun 2024 17:00:00 -0400 Subject: [PATCH 272/313] enable and apply clang-format --- src/EXTRA-COMMAND/group_ndx.cpp | 79 ++++++++++++------------- src/EXTRA-COMMAND/ndx_group.cpp | 102 +++++++++++++++----------------- 2 files changed, 87 insertions(+), 94 deletions(-) diff --git a/src/EXTRA-COMMAND/group_ndx.cpp b/src/EXTRA-COMMAND/group_ndx.cpp index 05a50a1596..cf6b13cb27 100644 --- a/src/EXTRA-COMMAND/group_ndx.cpp +++ b/src/EXTRA-COMMAND/group_ndx.cpp @@ -1,4 +1,3 @@ -// clang-format off // -*- c++ -*- /* ---------------------------------------------------------------------- @@ -34,12 +33,15 @@ using namespace LAMMPS_NS; static int cmptagint(const void *p1, const void *p2) { - const tagint i1 = * static_cast(p1); - const tagint i2 = * static_cast(p2); - if (i1 == i2) return 0; + const tagint i1 = *static_cast(p1); + const tagint i2 = *static_cast(p2); + if (i1 == i2) + return 0; else { - if (i1 < i2) return -1; - else return 1; + if (i1 < i2) + return -1; + else + return 1; } } @@ -49,27 +51,24 @@ void Group2Ndx::command(int narg, char **arg) { FILE *fp = nullptr; - if (narg < 1) error->all(FLERR,"Illegal group2ndx command"); + if (narg < 1) utils::missing_cmd_args(FLERR, "group2ndx", error); - if (atom->tag_enable == 0) - error->all(FLERR,"Must have atom IDs for group2ndx command"); + if (atom->tag_enable == 0) error->all(FLERR, "Must have atom IDs for group2ndx command"); if (comm->me == 0) { fp = fopen(arg[0], "w"); if (fp == nullptr) - error->one(FLERR,"Cannot open index file for writing: {}", utils::getsyserror()); - utils::logmesg(lmp,"Writing groups to index file {}:\n",arg[0]); + error->one(FLERR, "Cannot open index file for writing: {}", utils::getsyserror()); + utils::logmesg(lmp, "Writing groups to index file {}:\n", arg[0]); } - if (narg == 1) { // write out all groups - for (int i=0; i < group->ngroup; ++i) { - write_group(fp,i); - } - } else { // write only selected groups - for (int i=1; i < narg; ++i) { + if (narg == 1) { // write out all groups + for (int i = 0; i < group->ngroup; ++i) { write_group(fp, i); } + } else { // write only selected groups + for (int i = 1; i < narg; ++i) { int gid = group->find(arg[i]); if (gid < 0) error->all(FLERR, "Non-existing group requested"); - write_group(fp,gid); + write_group(fp, gid); } } @@ -86,21 +85,21 @@ void Group2Ndx::write_group(FILE *fp, int gid) int lnum, width, cols; if (fp) { - utils::logmesg(lmp," writing group {}...",group->names[gid]); + utils::logmesg(lmp, " writing group {}...", group->names[gid]); // the "all" group in LAMMPS is called "System" in Gromacs if (gid == 0) { fputs("[ System ]\n", fp); } else { - fmt::print(fp,"[ {} ]\n", group->names[gid]); + fmt::print(fp, "[ {} ]\n", group->names[gid]); } - width = log10((double) atom->natoms)+2; + width = log10((double) atom->natoms) + 2; cols = 80 / width; } if (gcount > 0) { - const int * const mask = atom->mask; - const tagint * const tag = atom->tag; + const int *const mask = atom->mask; + const tagint *const tag = atom->tag; const int groupbit = group->bitmask[gid]; const int nlocal = atom->nlocal; int i; @@ -111,45 +110,45 @@ void Group2Ndx::write_group(FILE *fp, int gid) for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) sendlist[lnum++] = tag[i]; - int nrecv=0; + int nrecv = 0; bigint allrecv; if (comm->me == 0) { MPI_Status status; MPI_Request request; - for (i=0; i < lnum; i++) - recvlist[i] = sendlist[i]; + for (i = 0; i < lnum; i++) recvlist[i] = sendlist[i]; allrecv = lnum; - for (i=1; i < comm->nprocs; ++i) { - MPI_Irecv(recvlist+allrecv,gcount-allrecv,MPI_LMP_TAGINT,i,0, world,&request); - MPI_Send(&nrecv,0,MPI_INT,i,0,world); // block rank "i" until we are ready to receive - MPI_Wait(&request,&status); - MPI_Get_count(&status,MPI_LMP_TAGINT,&nrecv); + for (i = 1; i < comm->nprocs; ++i) { + MPI_Irecv(recvlist + allrecv, gcount - allrecv, MPI_LMP_TAGINT, i, 0, world, &request); + // block rank "i" until we are ready to receive + MPI_Send(&nrecv, 0, MPI_INT, i, 0, world); + MPI_Wait(&request, &status); + MPI_Get_count(&status, MPI_LMP_TAGINT, &nrecv); allrecv += nrecv; } // sort received list - qsort((void *)recvlist, allrecv, sizeof(tagint), cmptagint); + qsort((void *) recvlist, allrecv, sizeof(tagint), cmptagint); } else { - MPI_Recv(&nrecv,0,MPI_INT,0,0,world,MPI_STATUS_IGNORE); - MPI_Rsend(sendlist,lnum,MPI_LMP_TAGINT,0,0,world); + MPI_Recv(&nrecv, 0, MPI_INT, 0, 0, world, MPI_STATUS_IGNORE); + MPI_Rsend(sendlist, lnum, MPI_LMP_TAGINT, 0, 0, world); } - delete [] sendlist; + delete[] sendlist; } if (fp) { int i, j; - for (i=0, j=0; i < gcount; ++i) { - fmt::print(fp,"{:>{}}",recvlist[i],width); + for (i = 0, j = 0; i < gcount; ++i) { + fmt::print(fp, "{:>{}}", recvlist[i], width); ++j; if (j == cols) { - fputs("\n",fp); + fputs("\n", fp); j = 0; } } - if (j > 0) fputs("\n",fp); - utils::logmesg(lmp,"done\n"); + if (j > 0) fputs("\n", fp); + utils::logmesg(lmp, "done\n"); } if (gcount > 0) delete[] recvlist; } diff --git a/src/EXTRA-COMMAND/ndx_group.cpp b/src/EXTRA-COMMAND/ndx_group.cpp index 52721f9628..c5b0d3cf8a 100644 --- a/src/EXTRA-COMMAND/ndx_group.cpp +++ b/src/EXTRA-COMMAND/ndx_group.cpp @@ -1,4 +1,3 @@ -// clang-format off // -*- c++ -*- /* ---------------------------------------------------------------------- @@ -34,17 +33,16 @@ static std::string find_section(FILE *fp, const std::string &name) { char linebuf[BUFLEN]; - fgets(linebuf,BUFLEN,fp); + fgets(linebuf, BUFLEN, fp); while (!feof(fp)) { if (utils::strmatch(linebuf, "^\\s*\\[.*\\]\\s*$")) { auto words = Tokenizer(linebuf).as_vector(); if (words.size() != 3) throw TokenizerException("Invalid group name in index file", - utils::trim(utils::strfind(linebuf,"[^\\[^\\]]+"))); - if (name.empty() || (name == words[1])) - return words[1]; + utils::trim(utils::strfind(linebuf, "[^\\[^\\]]+"))); + if (name.empty() || (name == words[1])) return words[1]; } - fgets(linebuf,BUFLEN,fp); + fgets(linebuf, BUFLEN, fp); } return ""; } @@ -54,19 +52,18 @@ static std::vector read_section(FILE *fp, std::string &name) char linebuf[BUFLEN]; std::vector tagbuf; - while (fgets(linebuf,BUFLEN,fp)) { + while (fgets(linebuf, BUFLEN, fp)) { // start of new section. we are done, update "name" if (utils::strmatch(linebuf, "^\\s*\\[.*\\]\\s*$")) { auto words = Tokenizer(linebuf).as_vector(); if (words.size() != 3) throw TokenizerException("Invalid group name in index file", - utils::trim(utils::strfind(linebuf,"[^\\[^\\]]+"))); + utils::trim(utils::strfind(linebuf, "[^\\[^\\]]+"))); name = words[1]; return tagbuf; } ValueTokenizer values(linebuf); - while (values.has_next()) - tagbuf.push_back(values.next_tagint()); + while (values.has_next()) tagbuf.push_back(values.next_tagint()); } // set empty name to indicate end of file name = ""; @@ -82,24 +79,22 @@ void Ndx2Group::command(int narg, char **arg) FILE *fp; std::string name, next; - if (narg < 1) error->all(FLERR,"Illegal ndx2group command"); - if (atom->tag_enable == 0) - error->all(FLERR,"Must have atom IDs for ndx2group command"); + if (narg < 1) utils::missing_cmd_args(FLERR, "ndx2group", error); + if (atom->tag_enable == 0) error->all(FLERR, "Must have atom IDs for ndx2group command"); if (atom->map_style == Atom::MAP_NONE) - error->all(FLERR,"Must have an atom map for ndx2group command"); + error->all(FLERR, "Must have an atom map for ndx2group command"); if (comm->me == 0) { fp = fopen(arg[0], "r"); if (fp == nullptr) - error->one(FLERR,"Cannot open index file for reading: {}", - utils::getsyserror()); - utils::logmesg(lmp,"Reading groups from index file {}:\n",arg[0]); + error->one(FLERR, "Cannot open index file for reading: {}", utils::getsyserror()); + utils::logmesg(lmp, "Reading groups from index file {}:\n", arg[0]); } - if (narg == 1) { // restore all groups + if (narg == 1) { // restore all groups if (comm->me == 0) { try { - name = find_section(fp,""); + name = find_section(fp, ""); } catch (std::exception &e) { error->one(FLERR, e.what()); } @@ -108,95 +103,94 @@ void Ndx2Group::command(int narg, char **arg) // skip over group "all", which is called "System" in gromacs if (name == "System") { try { - name = find_section(fp,""); + name = find_section(fp, ""); } catch (std::exception &e) { error->one(FLERR, e.what()); } continue; } - utils::logmesg(lmp," Processing group '{}'\n",name); - len = name.size()+1; - MPI_Bcast(&len,1,MPI_INT,0,world); + utils::logmesg(lmp, " Processing group '{}'\n", name); + len = name.size() + 1; + MPI_Bcast(&len, 1, MPI_INT, 0, world); if (len > 1) { - MPI_Bcast((void *)name.c_str(),len,MPI_CHAR,0,world); + MPI_Bcast((void *) name.c_str(), len, MPI_CHAR, 0, world); // read tags for atoms in group and broadcast std::vector tags; try { - tags = read_section(fp,next); + tags = read_section(fp, next); } catch (std::exception &e) { error->one(FLERR, e.what()); } num = tags.size(); - MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); - MPI_Bcast((void *)tags.data(),num,MPI_LMP_TAGINT,0,world); - create(name,tags); + MPI_Bcast(&num, 1, MPI_LMP_BIGINT, 0, world); + MPI_Bcast((void *) tags.data(), num, MPI_LMP_TAGINT, 0, world); + create(name, tags); name = next; } } len = -1; - MPI_Bcast(&len,1,MPI_INT,0,world); + MPI_Bcast(&len, 1, MPI_INT, 0, world); } else { while (true) { - MPI_Bcast(&len,1,MPI_INT,0,world); + MPI_Bcast(&len, 1, MPI_INT, 0, world); if (len < 0) break; if (len > 1) { char *buf = new char[len]; - MPI_Bcast(buf,len,MPI_CHAR,0,world); - MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); + MPI_Bcast(buf, len, MPI_CHAR, 0, world); + MPI_Bcast(&num, 1, MPI_LMP_BIGINT, 0, world); tagint *tbuf = new tagint[num]; - MPI_Bcast(tbuf,num,MPI_LMP_TAGINT,0,world); - create(buf,std::vector(tbuf,tbuf+num)); + MPI_Bcast(tbuf, num, MPI_LMP_TAGINT, 0, world); + create(buf, std::vector(tbuf, tbuf + num)); delete[] buf; delete[] tbuf; } } } - } else { // restore selected groups + } else { // restore selected groups - for (int idx=1; idx < narg; ++idx) { + for (int idx = 1; idx < narg; ++idx) { if (comm->me == 0) { // find named section, search from beginning of file rewind(fp); try { - name = find_section(fp,arg[idx]); + name = find_section(fp, arg[idx]); } catch (std::exception &e) { error->one(FLERR, e.what()); } - utils::logmesg(lmp," {} group '{}'\n", name.size() - ? "Processing" : "Skipping",arg[idx]); - len = name.size()+1; - MPI_Bcast(&len,1,MPI_INT,0,world); + utils::logmesg(lmp, " {} group '{}'\n", name.size() ? "Processing" : "Skipping", arg[idx]); + len = name.size() + 1; + MPI_Bcast(&len, 1, MPI_INT, 0, world); if (len > 1) { - MPI_Bcast((void *)name.c_str(),len,MPI_CHAR,0,world); + MPI_Bcast((void *) name.c_str(), len, MPI_CHAR, 0, world); // read tags for atoms in group and broadcast std::vector tags; try { - tags = read_section(fp,next); + tags = read_section(fp, next); } catch (std::exception &e) { error->one(FLERR, e.what()); } num = tags.size(); - MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); - MPI_Bcast((void *)tags.data(),num,MPI_LMP_TAGINT,0,world); - create(name,tags); + MPI_Bcast(&num, 1, MPI_LMP_BIGINT, 0, world); + MPI_Bcast((void *) tags.data(), num, MPI_LMP_TAGINT, 0, world); + create(name, tags); name = next; } } else { - MPI_Bcast(&len,1,MPI_INT,0,world); + MPI_Bcast(&len, 1, MPI_INT, 0, world); if (len > 1) { char *buf = new char[len]; - MPI_Bcast(buf,len,MPI_CHAR,0,world); - MPI_Bcast(&num,1,MPI_LMP_BIGINT,0,world); + MPI_Bcast(buf, len, MPI_CHAR, 0, world); + MPI_Bcast(&num, 1, MPI_LMP_BIGINT, 0, world); tagint *tbuf = new tagint[num]; - MPI_Bcast(tbuf,num,MPI_LMP_TAGINT,0,world); - create(buf,std::vector(tbuf,tbuf+num)); + MPI_Bcast(tbuf, num, MPI_LMP_TAGINT, 0, world); + create(buf, std::vector(tbuf, tbuf + num)); delete[] buf; delete[] tbuf; } @@ -216,11 +210,11 @@ void Ndx2Group::create(const std::string &name, const std::vector &tags) // map from global to local const int nlocal = atom->nlocal; - int *flags = (int *)calloc(nlocal,sizeof(int)); - for (bigint i=0; i < (int)tags.size(); ++i) { + int *flags = (int *) calloc(nlocal, sizeof(int)); + for (bigint i = 0; i < (int) tags.size(); ++i) { const int id = atom->map(tags[i]); if (id < nlocal && id >= 0) flags[id] = 1; } - group->create(name,flags); + group->create(name, flags); free(flags); } From ab800b4e26600218fa9bb289e78a6d4cc91d46c5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 17 Jun 2024 17:23:05 -0400 Subject: [PATCH 273/313] skip over groups with whitepsace in their name so we don't create illegal index files --- src/EXTRA-COMMAND/group_ndx.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/EXTRA-COMMAND/group_ndx.cpp b/src/EXTRA-COMMAND/group_ndx.cpp index cf6b13cb27..1dc0d3af97 100644 --- a/src/EXTRA-COMMAND/group_ndx.cpp +++ b/src/EXTRA-COMMAND/group_ndx.cpp @@ -84,6 +84,10 @@ void Group2Ndx::write_group(FILE *fp, int gid) bigint gcount = group->count(gid); int lnum, width, cols; + if (utils::strmatch(group->names[gid], "\\s+")) { + if (fp) utils::logmesg(lmp, " skipping group {}...done", group->names[gid]); + return; + } if (fp) { utils::logmesg(lmp, " writing group {}...", group->names[gid]); From 88ccaeddc1a826b9f4e122b19120ac5da4fb8ccf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 06:58:26 -0400 Subject: [PATCH 274/313] always return initialized data when extracting per-type info --- src/REAXFF/pair_reaxff.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/REAXFF/pair_reaxff.cpp b/src/REAXFF/pair_reaxff.cpp index 99f7510a49..b9f4f6c838 100644 --- a/src/REAXFF/pair_reaxff.cpp +++ b/src/REAXFF/pair_reaxff.cpp @@ -694,24 +694,28 @@ void *PairReaxFF::extract(const char *str, int &dim) { dim = 1; if (strcmp(str,"chi") == 0 && chi) { + chi[0] = 0.0; for (int i = 1; i <= atom->ntypes; i++) if (map[i] >= 0) chi[i] = api->system->reax_param.sbp[map[i]].chi; else chi[i] = 0.0; return (void *) chi; } if (strcmp(str,"eta") == 0 && eta) { + eta[0] = 0.0; for (int i = 1; i <= atom->ntypes; i++) if (map[i] >= 0) eta[i] = api->system->reax_param.sbp[map[i]].eta; else eta[i] = 0.0; return (void *) eta; } if (strcmp(str,"gamma") == 0 && gamma) { + gamma[0] = 0.0; for (int i = 1; i <= atom->ntypes; i++) if (map[i] >= 0) gamma[i] = api->system->reax_param.sbp[map[i]].gamma; else gamma[i] = 0.0; return (void *) gamma; } if (strcmp(str,"bcut_acks2") == 0 && bcut_acks2) { + bcut_acks2[0] = 0.0; for (int i = 1; i <= atom->ntypes; i++) if (map[i] >= 0) bcut_acks2[i] = api->system->reax_param.sbp[map[i]].bcut_acks2; else bcut_acks2[i] = 0.0; From 5e72dc0d6bc9f1024f5aa8e2ed20f8f811c8f790 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 06:59:12 -0400 Subject: [PATCH 275/313] error out when extracting non-existent QEq paramters from ReaxFF, e.g. when using pair style hybrid --- src/REAXFF/fix_qeq_reaxff.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/REAXFF/fix_qeq_reaxff.cpp b/src/REAXFF/fix_qeq_reaxff.cpp index 2c3089b5e8..44dd74b9a7 100644 --- a/src/REAXFF/fix_qeq_reaxff.cpp +++ b/src/REAXFF/fix_qeq_reaxff.cpp @@ -205,6 +205,7 @@ int FixQEqReaxFF::setmask() void FixQEqReaxFF::pertype_parameters(char *arg) { + const int ntypes = atom->ntypes; if (utils::strmatch(arg,"^reaxff")) { reaxflag = 1; Pair *pair = force->pair_match("^reaxff",0); @@ -214,15 +215,20 @@ void FixQEqReaxFF::pertype_parameters(char *arg) chi = (double *) pair->extract("chi",tmp); eta = (double *) pair->extract("eta",tmp); gamma = (double *) pair->extract("gamma",tmp); - if (chi == nullptr || eta == nullptr || gamma == nullptr) - error->all(FLERR, "Fix qeq/reaxff could not extract params from pair reaxff"); + if ((chi == nullptr) || (eta == nullptr) || (gamma == nullptr)) + error->all(FLERR, "Fix qeq/reaxff could not extract all QEq parameters from pair reaxff"); + for (int i = 1; i <= ntypes; ++i) { + if ((chi[i] == 0.0) && (eta[i] == 0.0) && (gamma[i] == 0.0)) + error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", i); + } return; } else if (utils::strmatch(arg,"^reax/c")) { error->all(FLERR, "Fix qeq/reaxff keyword 'reax/c' is obsolete; please use 'reaxff'"); + } else { + error->all(FLERR, "Unknown fix qeq/reaxff keyword {}", arg); } reaxflag = 0; - const int ntypes = atom->ntypes; memory->create(chi,ntypes+1,"qeq/reaxff:chi"); memory->create(eta,ntypes+1,"qeq/reaxff:eta"); From 3d1f933e2117dc660a3e9db3fd23a5470619beaa Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 07:05:29 -0400 Subject: [PATCH 276/313] port QEq parameter check from fix qeq/reaxff to fix qeq/shielded --- src/QEQ/fix_qeq_shielded.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/QEQ/fix_qeq_shielded.cpp b/src/QEQ/fix_qeq_shielded.cpp index 6987732048..99d5689808 100644 --- a/src/QEQ/fix_qeq_shielded.cpp +++ b/src/QEQ/fix_qeq_shielded.cpp @@ -70,14 +70,19 @@ void FixQEqShielded::init() void FixQEqShielded::extract_reax() { - Pair *pair = force->pair_match("^reax..", 0); - if (pair == nullptr) error->all(FLERR, "No pair reaxff for fix qeq/shielded"); + const int ntypes = atom->ntypes; + Pair *pair = force->pair_match("^reaxff", 0); + if (pair == nullptr) error->all(FLERR, "No reaxff pair style for fix qeq/shielded"); int tmp; chi = (double *) pair->extract("chi", tmp); eta = (double *) pair->extract("eta", tmp); gamma = (double *) pair->extract("gamma", tmp); - if (chi == nullptr || eta == nullptr || gamma == nullptr) - error->all(FLERR, "Fix qeq/shielded could not extract params from pair reaxff"); + if ((chi == nullptr) || (eta == nullptr) || (gamma == nullptr)) + error->all(FLERR, "Fix qeq/shielded could not extract all QEq parameters from pair reaxff"); + for (int i = 1; i <= ntypes; ++i) { + if ((chi[i] == 0.0) && (eta[i] == 0.0) && (gamma[i] == 0.0)) + error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", i); + } } // clang-format off From 41227e0e93fd8dcc31515a0db37d4ec1f5721df6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 08:35:18 -0400 Subject: [PATCH 277/313] apply param per type check only on atom types in fix group --- src/QEQ/fix_qeq_shielded.cpp | 37 ++++++++++++++++++++++++++--------- src/REAXFF/fix_qeq_reaxff.cpp | 20 ++++++++++++++----- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/QEQ/fix_qeq_shielded.cpp b/src/QEQ/fix_qeq_shielded.cpp index 99d5689808..2e653b9226 100644 --- a/src/QEQ/fix_qeq_shielded.cpp +++ b/src/QEQ/fix_qeq_shielded.cpp @@ -55,34 +55,53 @@ void FixQEqShielded::init() neighbor->add_request(this, NeighConst::REQ_FULL); - int ntypes = atom->ntypes; + const int ntypes = atom->ntypes; memory->create(shld, ntypes + 1, ntypes + 1, "qeq:shielding"); init_shielding(); - int i; - for (i = 1; i <= ntypes; i++) { - if (gamma[i] == 0.0) error->all(FLERR, "Invalid param file for fix qeq/shielded"); + // check if valid parameters for all atom types in the fix group are provided + const int *type = atom->type; + const int *mask = atom->mask; + int tmp = 0, tmp_all = 0; + for (int i = 0; i < nlocal; ++i) { + if (mask[i] & groupbit) { + if (gamma[type[i]] == 0.0) + tmp = type[i]; + } } + MPI_Allreduce(&tmp, &tmp_all, 1, MPI_INT, MPI_MAX, world); + if (tmp_all) + error->all(FLERR, "Invalid QEq parameters for atom type {} provided", tmp_all); } /* ---------------------------------------------------------------------- */ void FixQEqShielded::extract_reax() { - const int ntypes = atom->ntypes; + const int nlocal = atom->nlocal; + const int *mask = atom->mask; + const int *type = atom->type; + Pair *pair = force->pair_match("^reaxff", 0); if (pair == nullptr) error->all(FLERR, "No reaxff pair style for fix qeq/shielded"); - int tmp; + int tmp, tmp_all; chi = (double *) pair->extract("chi", tmp); eta = (double *) pair->extract("eta", tmp); gamma = (double *) pair->extract("gamma", tmp); if ((chi == nullptr) || (eta == nullptr) || (gamma == nullptr)) error->all(FLERR, "Fix qeq/shielded could not extract all QEq parameters from pair reaxff"); - for (int i = 1; i <= ntypes; ++i) { - if ((chi[i] == 0.0) && (eta[i] == 0.0) && (gamma[i] == 0.0)) - error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", i); + + tmp = tmp_all = 0; + for (int i = 0; i < nlocal; ++i) { + if (mask[i] & groupbit) { + if ((chi[type[i]] == 0.0) && (eta[type[i]] == 0.0) && (gamma[type[i]] == 0.0)) + tmp = type[i]; + } } + MPI_Allreduce(&tmp, &tmp_all, 1, MPI_INT, MPI_MAX, world); + if (tmp_all) + error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", tmp_all); } // clang-format off diff --git a/src/REAXFF/fix_qeq_reaxff.cpp b/src/REAXFF/fix_qeq_reaxff.cpp index 44dd74b9a7..e6d5315823 100644 --- a/src/REAXFF/fix_qeq_reaxff.cpp +++ b/src/REAXFF/fix_qeq_reaxff.cpp @@ -205,22 +205,31 @@ int FixQEqReaxFF::setmask() void FixQEqReaxFF::pertype_parameters(char *arg) { - const int ntypes = atom->ntypes; + const int nlocal = atom->nlocal; + const int *mask = atom->mask; + const int *type = atom->type; + if (utils::strmatch(arg,"^reaxff")) { reaxflag = 1; Pair *pair = force->pair_match("^reaxff",0); if (!pair) error->all(FLERR,"No reaxff pair style for fix qeq/reaxff"); - int tmp; + int tmp, tmp_all; chi = (double *) pair->extract("chi",tmp); eta = (double *) pair->extract("eta",tmp); gamma = (double *) pair->extract("gamma",tmp); if ((chi == nullptr) || (eta == nullptr) || (gamma == nullptr)) error->all(FLERR, "Fix qeq/reaxff could not extract all QEq parameters from pair reaxff"); - for (int i = 1; i <= ntypes; ++i) { - if ((chi[i] == 0.0) && (eta[i] == 0.0) && (gamma[i] == 0.0)) - error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", i); + tmp = tmp_all = 0; + for (int i = 0; i < nlocal; ++i) { + if (mask[i] & groupbit) { + if ((chi[type[i]] == 0.0) && (eta[type[i]] == 0.0) && (gamma[type[i]] == 0.0)) + tmp = type[i]; + } } + MPI_Allreduce(&tmp, &tmp_all, 1, MPI_INT, MPI_MAX, world); + if (tmp_all) + error->all(FLERR, "No QEq parameters for atom type {} provided by pair reaxff", tmp_all); return; } else if (utils::strmatch(arg,"^reax/c")) { error->all(FLERR, "Fix qeq/reaxff keyword 'reax/c' is obsolete; please use 'reaxff'"); @@ -230,6 +239,7 @@ void FixQEqReaxFF::pertype_parameters(char *arg) reaxflag = 0; + const int ntypes = atom->ntypes; memory->create(chi,ntypes+1,"qeq/reaxff:chi"); memory->create(eta,ntypes+1,"qeq/reaxff:eta"); memory->create(gamma,ntypes+1,"qeq/reaxff:gamma"); From 43cc8696ddb7e9655ec1d8fdc997a2477e0e6be5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 08:46:18 -0400 Subject: [PATCH 278/313] mention that verlet/split is not available for TIP4P --- doc/src/run_style.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/src/run_style.rst b/doc/src/run_style.rst index d2e47c0884..a36e2bf666 100644 --- a/doc/src/run_style.rst +++ b/doc/src/run_style.rst @@ -327,10 +327,12 @@ Restrictions """""""""""" The *verlet/split* style can only be used if LAMMPS was built with the -REPLICA package. Correspondingly the *respa/omp* style is available +REPLICA package. Correspondingly the *respa/omp* style is available only if the OPENMP package was included. See the :doc:`Build package -` page for more info. It is not compatible with -kspace styles from the INTEL package. +` page for more info. + +Run style *verlet/split* It is not compatible with kspace styles from +the INTEL package and it is not compatible with any TIP4P styles. Whenever using rRESPA, the user should experiment with trade-offs in speed and accuracy for their system, and verify that they are From 740b206e7fbf9fb6de0e9d5c53c90c15ac13d843 Mon Sep 17 00:00:00 2001 From: Aidan Thompson Date: Tue, 18 Jun 2024 11:04:47 -0600 Subject: [PATCH 279/313] Tightened up the definitions of deltamu's and conc's --- doc/src/fix_sgcmc.rst | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/doc/src/fix_sgcmc.rst b/doc/src/fix_sgcmc.rst index 6be5cd2e1a..a4a9249a6f 100644 --- a/doc/src/fix_sgcmc.rst +++ b/doc/src/fix_sgcmc.rst @@ -15,7 +15,7 @@ Syntax * every_nsteps = number of MD steps between MC cycles * swap_fraction = fraction of a full MC cycle carried out at each call (a value of 1.0 will perform as many trial moves as there are atoms) * temperature = temperature that enters Boltzmann factor in Metropolis criterion (usually the same as MD temperature) -* deltamu = chemical potential difference(s) (`N-1` values must be provided, with `N` being the number of elements) +* deltamu = `N-1` chemical potential differences :math:`\mu_1-\mu_2, \ldots, \mu_1-\mu_N` (`N` is the number of atom types) * Zero or more keyword/value pairs may be appended to fix definition line: .. parsed-literal:: @@ -23,7 +23,7 @@ Syntax keyword = *variance* or *randseed* or *window_moves* or *window_size* *variance* kappa conc1 [conc2] ... [concN] kappa = variance constraint parameter - conc1,conc2,... = target concentration(s) in the range 0.0-1.0 (*N-1* values must be provided, with *N* being the number of elements) + `c_2`, `c_3`,..., `c_N` = `N-1` target concentration fractions *randseed* N N = seed for pseudo random number generator *window_moves* N @@ -90,11 +90,10 @@ the simulation, e.g., to speed up equilibration at low temperatures. ------------ -The parameter *deltamu* is used to set the chemical potential difference -in the SGC MC algorithm (see Eq. 16 in :ref:`Sadigh1 `). By -convention it is the difference of the chemical potentials of elements -`B`, `C` ..., with respect to element A. When the simulation includes -`N` elements, `N-1` values must be specified. +The parameter *deltamu* is used to set the chemical potential differences +in the SGC MC algorithm (see Eq. 16 in :ref:`Sadigh1 `). +The `N-1` differences are defined as :math:`\mu_1-\mu_2, \ldots, \mu_1-\mu_N`, +where `N` is the number of atom types. ------------ @@ -104,12 +103,12 @@ the effective average constraint in the parallel VC-SGC MC algorithm (parameter :math:`\delta\mu_0` in Eq. (20) of :ref:`Sadigh1 `). The parameter *kappa* specifies the variance constraint (see Eqs. (20-21) in :ref:`Sadigh1 `). - -The parameter *conc* sets the target concentration (parameter -:math:`c_0` in Eqs. (20-21) of :ref:`Sadigh1 `). The atomic -concentrations refer to components `B`, `C` ..., with `A` being set -automatically. When the simulation includes `N` elements, `N-1` -concentration values must be specified. +The parameter *conc* sets the `N-1` target atomic concentration +fractions (parameter :math:`c_0` in Eqs. (20-21) of :ref:`Sadigh1 `) +:math:`0 \le c_2, \ldots, c_N \le 1`, with +:math:`c_1 = 1 - \Sigma_{i=2}^N c_i`. +When the simulation includes `N` atom types (elements), +`N-1` concentration values must be specified. ------------ @@ -143,10 +142,10 @@ components of the vector represent the following quantities: * 1 = The absolute number of accepted trial swaps during the last MC step * 2 = The absolute number of rejected trial swaps during the last MC step -* 3 = The current global concentration of species *A* (= number of atoms of type 1 / total number of atoms) -* 4 = The current global concentration of species *B* (= number of atoms of type 2 / total number of atoms) +* 3 = Current global concentration `c_1` (= number of atoms of type 1 / total number of atoms) +* 4 = Current global concentration `c_2` (= number of atoms of type 2 / total number of atoms) * ... -* N+2: The current global concentration of species *X* (= number of atoms of type *N* / total number of atoms) +* N+2: Current global concentration `c_N` (= number of atoms of type *N* / total number of atoms) The vector values calculated by this fix are "intensive". From d54f38ff629e2ca8b610af7d73ebaf5a75e35841 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 20:46:32 -0400 Subject: [PATCH 280/313] whitespace --- doc/src/fix_sgcmc.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/fix_sgcmc.rst b/doc/src/fix_sgcmc.rst index a4a9249a6f..51ec572a47 100644 --- a/doc/src/fix_sgcmc.rst +++ b/doc/src/fix_sgcmc.rst @@ -105,7 +105,7 @@ the effective average constraint in the parallel VC-SGC MC algorithm (see Eqs. (20-21) in :ref:`Sadigh1 `). The parameter *conc* sets the `N-1` target atomic concentration fractions (parameter :math:`c_0` in Eqs. (20-21) of :ref:`Sadigh1 `) -:math:`0 \le c_2, \ldots, c_N \le 1`, with +:math:`0 \le c_2, \ldots, c_N \le 1`, with :math:`c_1 = 1 - \Sigma_{i=2}^N c_i`. When the simulation includes `N` atom types (elements), `N-1` concentration values must be specified. From 19a83135786765fecca1af73238bc359cfe29ac0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 21:13:14 -0400 Subject: [PATCH 281/313] switch proc_grid to procgrid with backward compatibility for PyLammps --- python/lammps/core.py | 2 +- python/lammps/pylammps.py | 2 +- src/library.cpp | 9 ++++----- unittest/python/python-commands.py | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index 497d8efc20..8966a77440 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -891,7 +891,7 @@ class lammps(object): # set length of vector for items that are not a scalar vec_dict = { 'boxlo':3, 'boxhi':3, 'sublo':3, 'subhi':3, 'sublo_lambda':3, 'subhi_lambda':3, 'periodicity':3, - 'special_lj':4, 'special_coul':4, 'proc_grid':3 } + 'special_lj':4, 'special_coul':4, 'procgrid':3 } if name in vec_dict: veclen = vec_dict[name] elif name == 'respa_dt': diff --git a/python/lammps/pylammps.py b/python/lammps/pylammps.py index 519b1e323c..96384255c2 100644 --- a/python/lammps/pylammps.py +++ b/python/lammps/pylammps.py @@ -796,7 +796,7 @@ class PyLammps(object): comm = {} comm['nprocs'] = self.lmp.extract_setting("world_size") comm['nthreads'] = self.lmp.extract_setting("nthreads") - comm['proc_grid'] = self.lmp.extract_global("proc_grid") + comm['proc_grid'] = comm['procgrid'] = self.lmp.extract_global("procgrid") idx = self.lmp.extract_setting("comm_style") comm['comm_style'] = ('brick', 'tiled')[idx] idx = self.lmp.extract_setting("comm_style") diff --git a/src/library.cpp b/src/library.cpp index 4fbfbe332b..71cf01eff2 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1407,7 +1407,7 @@ int lammps_extract_global_datatype(void * /*handle*/, const char *name) if (strcmp(name,"xy") == 0) return LAMMPS_DOUBLE; if (strcmp(name,"xz") == 0) return LAMMPS_DOUBLE; if (strcmp(name,"yz") == 0) return LAMMPS_DOUBLE; - if (strcmp(name,"proc_grid") == 0) return LAMMPS_INT; + if (strcmp(name,"procgrid") == 0) return LAMMPS_INT; if (strcmp(name,"natoms") == 0) return LAMMPS_BIGINT; if (strcmp(name,"nbonds") == 0) return LAMMPS_BIGINT; @@ -1626,7 +1626,7 @@ report the "native" data type. The following tables are provided: - double - 1 - triclinic tilt factor. See :doc:`Howto_triclinic`. - * - proc_grid + * - procgrid - int - 3 - processor count assigned to each dimension of 3d grid. See :doc:`processors`. @@ -1887,9 +1887,8 @@ void *lammps_extract_global(void *handle, const char *name) if (strcmp(name,"xy") == 0) return (void *) &lmp->domain->xy; if (strcmp(name,"xz") == 0) return (void *) &lmp->domain->xz; if (strcmp(name,"yz") == 0) return (void *) &lmp->domain->yz; - if ((lmp->comm->layout == Comm::LAYOUT_UNIFORM || - lmp->comm->layout == Comm::LAYOUT_NONUNIFORM) && - (strcmp(name,"proc_grid") == 0)) + if (((lmp->comm->layout == Comm::LAYOUT_UNIFORM) || + (lmp->comm->layout == Comm::LAYOUT_NONUNIFORM)) && (strcmp(name,"procgrid") == 0)) return (void *) &lmp->comm->procgrid; if (strcmp(name,"natoms") == 0) return (void *) &lmp->atom->natoms; diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index c007cc8014..3a222dde5a 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -660,11 +660,11 @@ create_atoms 1 single & self.assertEqual(self.lmp.extract_global("subhi_lambda"), [1.0, 1.0, 1.0]) # processor grid - self.assertEqual(self.lmp.extract_global("proc_grid"), [1,1,1]) + self.assertEqual(self.lmp.extract_global("procgrid"), [1,1,1]) self.lmp.command("comm_style tiled") self.lmp.command("run 0 post no") self.lmp.command("balance 0.1 rcb") - self.assertEqual(self.lmp.extract_global("proc_grid"), None) + self.assertEqual(self.lmp.extract_global("procgrid"), None) def test_create_atoms(self): self.lmp.command("boundary f p m") From 2a132dfe8fee25e36424c61dc5fdca2adca2fdb6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 21:13:33 -0400 Subject: [PATCH 282/313] add tests for PyLammps to check new exports --- unittest/python/python-pylammps.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/unittest/python/python-pylammps.py b/unittest/python/python-pylammps.py index 9e691b1b8c..3a7f0dc9cf 100644 --- a/unittest/python/python-pylammps.py +++ b/unittest/python/python-pylammps.py @@ -119,6 +119,10 @@ class PythonPyLammps(unittest.TestCase): self.assertEqual(self.pylmp.communication.comm_style,'brick') self.assertEqual(self.pylmp.communication.comm_layout,'uniform') self.assertEqual(self.pylmp.communication.nprocs,1) + self.assertEqual(self.pylmp.communication.nthreads,1) + self.assertEqual(self.pylmp.communication.procgrid,[1,1,1]) + self.assertEqual(self.pylmp.communication.proc_grid,[1,1,1]) + self.assertEqual(self.pylmp.communication.ghost_velocity,0) self.assertEqual(len(self.pylmp.computes),3) self.assertEqual(self.pylmp.computes[0]['name'], 'thermo_temp') self.assertEqual(self.pylmp.computes[0]['style'], 'temp') @@ -137,6 +141,11 @@ class PythonPyLammps(unittest.TestCase): self.assertEqual(self.pylmp.fixes[0]['group'], 'all') self.pylmp.group('none','empty') self.assertEqual(len(self.pylmp.groups),2) + self.pylmp.comm_style('tiled') + self.pylmp.mass('*',1.0) + self.pylmp.run('0','post','no') + self.pylmp.balance(0.1,'rcb') + self.assertEqual(self.pylmp.communication.procgrid,None) if __name__ == "__main__": unittest.main() From 71b38521c55c83a316eadb58edbc41318d87618c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 21:21:20 -0400 Subject: [PATCH 283/313] reformat and remove duplicate NP_MULTI_OLD flags --- src/OPENMP/npair_skip_omp.h | 40 +++++++++++++------------------------ 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/src/OPENMP/npair_skip_omp.h b/src/OPENMP/npair_skip_omp.h index cdacad3742..ddfdb9f055 100644 --- a/src/OPENMP/npair_skip_omp.h +++ b/src/OPENMP/npair_skip_omp.h @@ -19,74 +19,62 @@ NPairStyle(skip/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/respa/omp, NPairSkipRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/half/size/omp, NPairSkipSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/omp, NPairSkipSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/size/off2on/oneside/omp, NPairSkipSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | - NP_ORTHO | NP_TRI | NP_OMP); + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP); NPairStyle(skip/ghost/omp, NPairSkip, - NP_SKIP | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_OMP | NP_GHOST); NPairStyle(skip/trim/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/respa/omp, NPairSkipTrimRespa, - NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_RESPA | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/half/size/omp, NPairSkipTrimSize, - NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/omp, NPairSkipTrimSizeOff2on, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_MULTI_OLD | + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/size/off2on/oneside/omp, NPairSkipTrimSizeOff2onOneside, - NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | - NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); + NP_SKIP | NP_SIZE | NP_OFF2ON | NP_ONESIDE | NP_HALF | NP_NSQ | NP_BIN | NP_MULTI | + NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP); NPairStyle(skip/trim/ghost/omp, NPairSkipTrim, - NP_SKIP | NP_HALF | NP_FULL | - NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | + NP_SKIP | NP_HALF | NP_FULL | NP_NSQ | NP_BIN | NP_MULTI | NP_MULTI_OLD | NP_NEWTON | NP_NEWTOFF | NP_ORTHO | NP_TRI | NP_TRIM | NP_OMP | NP_GHOST); // clang-format off #endif From 83a024b26bfcb1655208138da90de3a8b8121227 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 18 Jun 2024 21:41:34 -0400 Subject: [PATCH 284/313] add force style test --- .../tests/mol-pair-dpd_coul_slater_long.yaml | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml diff --git a/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml b/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml new file mode 100644 index 0000000000..ea6e026fe2 --- /dev/null +++ b/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml @@ -0,0 +1,99 @@ +--- +lammps_version: 17 Apr 2024 +tags: +date_generated: Tue Jun 18 21:32:14 2024 +epsilon: 5e-13 +skip_tests: gpu intel kokkos_omp single +prerequisites: ! | + atom full + pair dpd/coul/slater/long + kspace ewald +pre_commands: ! | + variable newton_pair delete + variable newton_pair index on + comm_modify vel yes + kspace_style ewald 1.0e-6 + kspace_modify gewald 0.3 + kspace_modify compute no +post_commands: ! "" +input_file: in.fourmol +pair_style: dpd/coul/slater/long 100.0 8.0 11223344 1.0 8.0 +pair_coeff: ! | + * * 0.4 4.0 yes + 1 1 0.4 4.0 yes + 2 2 0.1 2.0 no + 2 4 0.1 1.0 + 3 3 0.4 3.2 yes + 4 4 0.3 3.1 yes + 5 5 0.3 3.1 yes +extract: ! "" +natoms: 29 +init_vdwl: 50.81607024833933 +init_coul: 246.30486150616926 +init_stress: ! |2- + 3.8847917252197334e+01 6.0909421169945198e+01 1.3177337627459440e+01 -2.5125674673037557e-01 -2.6831071031318483e+01 -1.5576430133730318e+01 +init_forces: ! |2 + 1 1.7431218673076398e+00 -3.3508607597652662e-01 -2.4777022847678101e+00 + 2 4.3303449895107429e+00 -4.7270196423904629e+00 8.9179383719117788e-01 + 3 -3.0026241136767506e-01 1.4898682537669559e+00 -2.9373470062765152e+00 + 4 5.2673340332969785e+00 -4.7092409943919726e+00 -1.4235077704192447e+00 + 5 -6.8022719083087080e-01 5.7354131392205714e+00 -3.4748110565769061e+00 + 6 -3.8215670358728731e+00 2.7445299161598462e+00 -2.7043379570240411e+00 + 7 -3.3428118289029851e+00 2.6368994495618775e-01 4.1564102694578011e+00 + 8 -7.7861329310896457e+00 8.2082649420572917e-01 4.8567883896169803e+00 + 9 3.1057899939121918e+00 -3.9223414133714560e+00 8.4873882988538636e+00 + 10 -4.1521241974355734e+00 2.6307631121111197e-01 3.4593985187994503e+00 + 11 1.8308032335061764e+00 2.2688626790466668e+00 2.1488881927591183e-01 + 12 -3.8361154861853802e-01 9.7381188622448867e-01 -2.9002001998530074e+00 + 13 3.7110360694271507e+00 -6.0293319508894081e+00 -3.2353735026836565e+00 + 14 -7.1298424060686427e-01 2.4558730338472174e+00 -1.4114476204389881e+00 + 15 6.4421713828496296e-01 2.6560445474171779e+00 4.1805189129601663e+00 + 16 2.4609814411173456e+00 1.0005691236622609e+00 -1.3310794681660751e+00 + 17 4.3419008357709892e+00 3.5242769399360668e-01 -3.0595452598808506e+00 + 18 -8.6307586369950978e-02 8.2040370677288337e+00 -5.3929118878835798e+00 + 19 6.1879926571299937e-01 2.5540397129551908e+00 1.5642703712618800e+00 + 20 -3.0582098014826045e+00 -4.2726657137759743e+00 3.7804333126216734e+00 + 21 3.4138725239637657e+00 -2.8998556794986174e+00 -3.3216284249543198e+00 + 22 8.3753401659388671e-01 6.0848461632864803e-01 5.5206263511303710e-01 + 23 1.6137939864950199e+00 -1.9075657957633927e+00 -1.1740851854919403e+00 + 24 -9.2620994683392499e-01 -3.2450229700911435e+00 -8.0867271168075465e+00 + 25 -1.3940090389654722e+00 5.2843663545938764e+00 3.5772359574449069e+00 + 26 3.9218467465706744e-02 1.1015801783435457e+00 1.8824821245496248e+00 + 27 -2.4611420161719555e+00 -1.9453626284928394e+00 -3.3205056628962853e-01 + 28 1.4062959703817013e+00 -1.5914533664642678e+00 2.6909036096293515e+00 + 29 -6.2594440581983282e+00 -3.1925547225558533e+00 2.9681802507382837e+00 +run_vdwl: 50.80969849155796 +run_coul: 246.30257595743123 +run_stress: ! |2- + 2.5169432057277767e+01 1.3291837479686518e+02 7.8314082956801457e+01 1.4188397409481186e+00 4.7717966551748061e+00 -6.3215212489343497e-01 +run_forces: ! |2 + 1 -6.3863580151106092e-01 6.6929475226486339e+00 3.7704563748664892e+00 + 2 -4.3037556793948211e+00 9.5723509028532272e-02 -2.0030241717125286e+00 + 3 -1.2783833512172147e+00 1.7381921345191331e+00 -6.4662583653508925e+00 + 4 2.4827815076802873e+00 1.3730024199636431e-01 -2.0006851631917272e-01 + 5 4.7603332815631365e+00 -2.2528146831857900e+00 -3.4274535000597357e+00 + 6 -1.2817868583433294e+00 -5.9968609698691075e+00 -3.2762169423954415e+00 + 7 -6.6867815106826880e+00 -7.6943923258643654e-01 -2.6780134761760793e-01 + 8 -3.3343023480304996e+00 6.4339698400391008e+00 -6.4172530505932164e+00 + 9 -3.8353029345585190e+00 9.8394636146294001e+00 1.9174283216744969e+00 + 10 -2.7100348949081012e+00 1.4548533898989857e-01 -7.4888242419930628e-01 + 11 -3.5716272980494614e+00 -5.6333424874513238e-01 -1.7669409895579073e+00 + 12 8.7749889216756269e+00 -3.0182112894280873e+00 2.3328096163511405e+00 + 13 -7.1201394227081138e+00 8.5405234502858711e+00 4.5843737570467056e+00 + 14 -8.7413969567458588e-02 -3.7153733247848848e+00 -3.2874441379609167e+00 + 15 4.3120572612995609e+00 1.7256832039357071e+00 3.3428599179267393e-01 + 16 3.8021838909677803e+00 -1.3766365519719326e+01 2.2813835507927651e+00 + 17 4.9734505785815566e+00 -2.4146919042613795e+00 1.8287742974940246e+00 + 18 -1.7572559387593672e-03 3.8187261679342619e+00 -1.0584087358440382e+00 + 19 1.0838708527692988e+00 -6.6703633150528441e-01 -4.6973954164255893e-01 + 20 1.1923743451913014e+00 1.7419734493475330e+00 -3.6369159702300224e-01 + 21 2.3316248125417141e+00 -1.0849270685777668e+00 -3.2073997386907678e+00 + 22 2.6135216134985972e+00 -1.1025272637629011e+00 4.8873485142461329e-02 + 23 -1.2854577922712009e+00 -2.9253148869589518e+00 -4.6563146954583601e-01 + 24 -1.4021980080098731e-01 1.9672435672875048e+00 3.1379645935988041e+00 + 25 1.9085702323304496e+00 5.2270676739892066e+00 7.3556254244703823e+00 + 26 8.7357677171207004e-01 -1.1308292622526788e+00 -8.0741590972110988e-01 + 27 -1.1543680887940906e+00 -9.4513879574846338e-01 1.0062759048570287e+00 + 28 2.3730888896530073e+00 -1.9664779055036602e-01 1.0051483653476245e+00 + 29 -4.0524559526880868e+00 -7.5547871426945932e+00 4.6302307547994435e+00 +... From 0aff26705cfd5b72496e0c63b4c6f73414218c7d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 10:40:19 -0400 Subject: [PATCH 285/313] correct force style input --- .../force-styles/tests/mol-pair-dpd_coul_slater_long.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml b/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml index ea6e026fe2..e75defbf16 100644 --- a/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml +++ b/unittest/force-styles/tests/mol-pair-dpd_coul_slater_long.yaml @@ -12,10 +12,10 @@ pre_commands: ! | variable newton_pair delete variable newton_pair index on comm_modify vel yes +post_commands: ! | kspace_style ewald 1.0e-6 kspace_modify gewald 0.3 kspace_modify compute no -post_commands: ! "" input_file: in.fourmol pair_style: dpd/coul/slater/long 100.0 8.0 11223344 1.0 8.0 pair_coeff: ! | @@ -26,7 +26,11 @@ pair_coeff: ! | 3 3 0.4 3.2 yes 4 4 0.3 3.1 yes 5 5 0.3 3.1 yes -extract: ! "" +extract: ! | + cut_coul 0 + lamda 0 + a0 2 + gamma 2 natoms: 29 init_vdwl: 50.81607024833933 init_coul: 246.30486150616926 From 6ada6b7bf23e2e3459a05e73776f2c3825aa160b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 11:00:21 -0400 Subject: [PATCH 286/313] update example for dpd/coul/slater/long --- .../data.dpd_coul_slater_long | 779 ++++++++++++++++++ .../in.dpd_coul_slater_long | 68 +- .../log.19Jun24.dpd_coul_slater.g++.1 | 147 ++++ .../log.19Jun24.dpd_coul_slater.g++.4 | 147 ++++ 4 files changed, 1089 insertions(+), 52 deletions(-) create mode 100644 examples/PACKAGES/dpd-basic/dpd_coul_slater_long/data.dpd_coul_slater_long create mode 100644 examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.1 create mode 100644 examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.4 diff --git a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/data.dpd_coul_slater_long b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/data.dpd_coul_slater_long new file mode 100644 index 0000000000..91ddddf4ec --- /dev/null +++ b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/data.dpd_coul_slater_long @@ -0,0 +1,779 @@ +LAMMPS data file via write_data, version 17 Apr 2024, timestep = 1394, units = lj + +375 atoms +3 atom types + +0 5 xlo xhi +0 5 ylo yhi +0 5 zlo zhi + +Masses + +1 1 +2 1 +3 1 + +PairIJ Coeffs # dpd/coul/slater/long + +1 1 78 4.5 yes 1 +1 2 78 4.5 yes 1 +1 3 78 4.5 yes 1 +2 2 78 4.5 no 1 +2 3 78 4.5 no 1 +3 3 78 4.5 no 1 + +Atoms # full + +189 0 1 0 0.8621554018960034 1.5213257556560191 0.4064444607843129 0 1 0 +107 0 1 0 2.040249318291146 0.3862591116608294 1.8661957131854634 0 0 0 +253 0 1 0 3.511834308089607 0.7338273870464224 0.801173549802059 0 1 1 +163 0 1 0 2.303289649738226 0.6809493239075631 0.7383435796468727 0 1 0 +26 0 1 0 0.03534770106704549 1.4889933012536283 1.4815498922617432 0 0 0 +27 0 1 0 4.170525658289272 1.8438490221677797 2.1918634082517614 -1 0 0 +56 0 1 0 2.9501314702448633 2.322938987390429 0.6158870411938201 0 0 0 +167 0 1 0 1.948558457807243 0.1261294591496785 0.039492485708843984 0 1 0 +364 0 3 -1 4.538825953029656 0.2655458359259118 2.131668601530241 0 1 0 +61 0 1 0 4.645784299395809 0.3574274125207269 1.7056474795918568 -1 0 0 +222 0 1 0 4.41481966340897 2.262979887349817 1.1679075968940398 0 0 0 +332 0 2 1 3.853874714249102 0.1758912358513287 0.8799773810713412 0 1 0 +1 0 1 0 4.608301143657016 1.4090100132224024 1.218887039455649 -1 0 0 +319 0 2 1 3.732213186171727 0.981827023519373 2.3857377768158727 -1 0 0 +53 0 1 0 2.380311878254328 0.953677113042391 1.8268738776443192 0 0 0 +68 0 1 0 0.33279009298924916 1.0106375746131884 0.7038515854567269 0 0 0 +220 0 1 0 1.1094848303775686 2.378414106514282 1.4793246435196352 1 0 0 +44 0 1 0 0.12449238274832848 1.7475396894040345 0.5495194876290164 0 0 0 +55 0 1 0 0.1451415441609303 2.337329820574407 0.940744164662616 0 0 0 +362 0 3 -1 1.2987762452744613 1.8352325797868587 1.1809674941775483 0 0 0 +165 0 1 0 0.6610209400465688 2.22554349560855 1.971912177574677 0 0 0 +60 0 1 0 1.8643313870571518 0.6352678895179578 1.4416996493100478 0 0 0 +202 0 1 0 0.007896731087640774 1.5385720917803027 0.18965671583085075 0 1 0 +85 0 1 0 1.5630176980330266 1.1482985441214197 2.019916217302335 1 0 0 +73 0 1 0 0.5556133646182337 1.6170466333456652 2.101792903006452 0 0 0 +96 0 1 0 1.6611967219346682 0.07688637034882238 0.46572063062814617 0 0 1 +30 0 1 0 0.46644353751713447 1.8254820637852556 1.2380479793915407 1 0 0 +67 0 1 0 3.4270812515248483 2.350996339385886 1.77527952461483 0 0 0 +349 0 3 -1 1.7935506583370944 1.7235931740659332 0.4478371869612185 1 0 0 +132 0 1 0 4.951074988035153 1.5039089286454406 2.4219801232797398 -1 0 0 +328 0 2 1 0.8958492991096989 1.2809413147557527 1.0440931858570435 0 0 1 +161 0 1 0 4.798276598985588 0.9882558902185279 2.462987088497934 0 1 0 +185 0 1 0 0.6126520391294695 0.04940161418784647 0.6135262263024062 0 1 0 +219 0 1 0 1.647872968759676 2.305100092833184 2.0217182617222096 0 0 0 +8 0 1 0 2.8077478718165207 0.7661158156519451 1.3602857540877684 0 0 0 +69 0 1 0 2.8568644931819835 0.13340029053585767 2.106212637519767 0 0 0 +3 0 1 0 1.908450187819087 2.298808713848062 0.4221817812562634 0 0 0 +7 0 1 0 1.8799145446976495 0.9814789886011673 0.955308672406064 0 0 0 +329 0 2 1 0.9727877144189607 0.8906662949552561 1.4472553696387669 0 1 0 +174 0 1 0 3.9905681672951636 0.6401683928312465 1.0284041192891435 -1 1 0 +20 0 1 0 3.392515194191721 2.0774851454870427 0.8812446323305514 0 0 0 +57 0 1 0 4.874212056539195 0.13899230379169403 0.7199140773346149 0 0 0 +325 0 2 1 1.362093021934204 2.3422237404192465 0.6655225660551776 0 0 1 +40 0 1 0 4.306473534903154 1.7047871476017826 0.8560715024613603 0 0 0 +51 0 1 0 2.297377802384159 0.11499650506694176 1.4731005354419167 0 0 0 +54 0 1 0 2.971300335884777 1.8792385205105047 1.3973014092900102 0 0 0 +186 0 1 0 3.583414064904102 1.7542346893771112 0.35130247738019466 0 0 0 +289 0 1 0 2.5651653875350906 1.4858962835620086 0.6587351599193196 0 0 1 +75 0 1 0 3.132107705055228 0.19794042232605677 0.44488993973642094 0 0 1 +48 0 1 0 3.4384178020381717 0.7217742755424055 1.7304812232062636 0 0 0 +66 0 1 0 3.191389133037332 1.1674191637093172 1.7413707516914332 0 0 0 +52 0 1 0 1.856006413772654 1.871405713016935 1.5164995404363106 0 0 0 +158 0 1 0 3.725559226243618 1.2320067990055215 0.4240371305587515 -1 1 0 +330 0 2 1 0.4226192821951129 0.22648053650193767 0.04025715930862768 1 1 0 +359 0 3 -1 4.4476116877707925 0.8271711042623823 1.1688054720798116 0 1 0 +366 0 3 -1 0.13989896192253948 0.6502137062351493 0.845841913773404 1 1 0 +196 0 1 0 0.21878194805964699 2.4139077401885523 1.602735237996178 1 0 0 +128 0 1 0 2.474112780481313 1.5036993910540244 1.234391076605564 0 0 1 +118 0 1 0 0.1703454662324439 0.9401878407982331 0.17224714060344348 0 0 1 +43 0 1 0 3.708324777814944 2.4767443359210524 0.5791362456922102 0 0 0 +184 0 1 0 0.4061592126934206 0.22209165285150972 1.3598048859115588 0 1 0 +360 0 3 -1 1.225690366400486 0.4472136514952278 1.0864811555493794 0 1 0 +64 0 1 0 2.6116937036965266 1.793563094424563 2.091822223631947 0 0 0 +285 0 1 0 0.7747031518566616 0.24118573693540882 2.1434463705260494 0 1 0 +58 0 1 0 1.598997109049339 1.2355543729347458 1.1437352681100093 0 0 0 +257 0 1 0 0.02882436640692898 0.8179392413775496 1.6880006059524528 1 1 0 +356 0 3 -1 2.0441963785801733 1.236982129976697 2.2147135788798726 0 0 0 +100 0 1 0 3.653446945164378 0.3462603812889145 1.6428480228892703 0 0 0 +121 0 1 0 3.3427026587713 1.3818800793465942 1.0715223415915789 0 0 1 +130 0 1 0 3.3647959804349648 1.6468424783155522 2.142743574286686 0 0 1 +238 0 1 0 1.3459228411155364 0.633596613028775 2.1301210835283637 0 1 0 +211 0 1 0 0.6615598402766512 2.33271179551025 0.47581804017205676 1 0 0 +208 0 1 0 2.962020456626749 0.2159270527386094 1.30534135402314 0 1 0 +63 0 1 0 1.3612122125160733 0.010635376740000254 1.5982897032081793 0 0 0 +22 0 1 0 4.210300352056279 0.36529901441609736 0.22595511161653342 0 0 0 +355 0 3 -1 1.2042503283777344 1.597276477439138 1.9589099368399292 0 0 0 +70 0 1 0 4.378695647703822 2.2211752925991073 0.5054248018357668 0 0 0 +65 0 1 0 4.730200694542147 1.8860651406962996 1.9541188923646609 0 0 0 +182 0 1 0 0.6006579892093956 1.0766698682185656 1.8982320873119558 0 1 0 +188 0 1 0 3.968278800401347 2.2778420975676017 1.5855956915283134 -1 0 0 +35 0 1 0 2.223480574739111 2.044750380955685 1.1501174861326973 0 0 0 +6 0 1 0 4.393818207857278 0.9691596735067866 0.4973738964333318 0 0 0 +346 0 3 -1 1.799292171051204 0.9378491451956622 0.32819450450408366 0 0 0 +14 0 1 0 4.116276227278533 0.9144868046413738 1.9001996318293624 0 0 0 +15 0 1 0 4.057083687324151 1.5512296337030849 1.8388944544921122 0 0 0 +16 0 1 0 3.82411370026405 1.5506478336832812 1.2725337401183239 0 0 0 +287 0 1 0 2.6387027215894454 1.893079917045916 0.49300315071401646 0 0 1 +81 0 1 0 0.23374890251430025 0.34479122000015083 2.377074044522331 1 0 0 +114 0 1 0 2.97788308248854 0.8029642133737654 0.43679357743492564 0 0 1 +232 0 1 0 1.1637120121074183 0.7914170906883582 0.5169414304881136 1 1 1 +50 0 1 0 1.3582030484899448 1.733969902734067 2.475757370252963 0 0 -1 +79 0 1 0 4.002398001699839 2.453310546669259 2.3569732163529196 0 0 0 +74 0 1 0 2.5693171940612936 0.3236751012125613 0.052755933881527994 0 0 1 +194 0 1 0 2.8970695996535842 1.3203227830648074 2.4866087995688972 0 0 0 +133 0 1 0 2.6178632265286743 1.0115830273791913 0.19081692003348572 0 0 1 +311 0 1 0 3.3683313684704523 1.1471203834722834 0.04523595785096113 0 1 1 +115 0 1 0 0.43505007353257874 2.385803272207332 0.02841287624716582 0 0 1 +4 0 1 0 4.3073950086925725 2.400627067573385 4.56127636601268 -1 0 -1 +151 0 1 0 0.6919123879927325 2.1849820555988084 3.5078472275384267 0 0 0 +306 0 1 0 0.5589151617318056 0.058029533314856774 4.427085995859885 0 1 0 +138 0 1 0 1.7147207261520883 1.4323880737092538 3.757478681577442 0 0 0 +110 0 1 0 1.3876397037618702 1.3714565550984217 4.5219172301432895 0 0 0 +251 0 1 0 2.788428291071368 2.3409448558940977 3.4381375025566263 0 0 0 +331 0 2 1 2.838525921735314 0.09442598845901452 3.3146265769160324 0 1 0 +243 0 1 0 4.489290143790526 2.26853729359999 3.7839844553823094 0 0 0 +156 0 1 0 0.23302160032454478 1.3603287603692662 4.342729568698205 1 1 -1 +32 0 1 0 2.081389395149717 0.4938421510915584 2.707994013583073 0 0 0 +205 0 1 0 0.09940021857353744 2.408012210772126 3.2074615425616426 0 0 0 +41 0 1 0 4.323708181823033 0.4958928465474822 2.525689303250374 0 0 0 +28 0 1 0 4.717322170568759 1.0215969335342936 3.32138298357052 -1 0 -1 +322 0 2 1 2.2029274368349303 2.0230576314539634 3.254975041225457 0 0 0 +103 0 1 0 3.4039994449255992 0.5284405133705601 4.809880920488395 0 0 0 +353 0 3 -1 1.1636351711418296 1.6849823280188108 3.628904996363181 0 0 0 +295 0 1 0 2.015582444660267 2.152457218882018 4.802270482662931 0 0 0 +365 0 3 -1 0.1355221924615853 0.6843479265638512 3.832358314244189 0 0 0 +98 0 1 0 2.5146420394624114 1.4050031824562241 2.965312255745623 0 0 0 +33 0 1 0 2.3626541269063335 0.301607887792709 4.126675184172655 0 0 0 +39 0 1 0 1.0864796756700101 0.14884263883618853 3.538403788545902 0 0 -1 +343 0 2 1 1.4514575528852092 0.7274022675751877 4.022000140293159 0 1 0 +259 0 1 0 3.655779855306037 1.3576945405765304 3.834017837247726 0 0 0 +77 0 1 0 0.8784812240014032 1.3079405939838267 3.865082861143354 1 0 0 +140 0 1 0 0.8162940643502995 1.1305386542609035 4.8092097458556715 0 0 0 +111 0 1 0 4.795245146003238 1.9956723305718642 3.9129401250192046 0 0 0 +129 0 1 0 0.34843108982968385 0.5298485948666217 2.8292148084141364 0 0 0 +317 0 2 1 4.124560425539725 0.9992026808502931 4.821938521772994 0 0 -1 +25 0 1 0 2.8922318837378698 0.9335539802277806 4.287158919025898 -1 0 -1 +21 0 1 0 4.585171090824654 1.3705322366558885 4.19496485298651 0 0 -1 +276 0 1 0 2.403137350597824 1.5009012449757657 3.808385508050605 0 0 0 +160 0 1 0 2.937633869764959 0.00248285164262807 4.155863012635541 0 1 -1 +308 0 1 0 2.007117640798801 0.07533937286437335 3.949461187876648 0 1 0 +313 0 1 0 3.138628385914381 0.06932121228333508 4.61254641181726 0 1 0 +71 0 1 0 0.7604830442534299 1.8783527414570997 4.529066129071014 0 0 -1 +42 0 1 0 0.8786351691021071 1.5220089570408293 2.909825736835378 0 0 0 +83 0 1 0 2.268823589694475 0.8105925806076607 3.3728322715236114 0 0 0 +123 0 1 0 1.7884920869805707 1.339956019375266 2.861286357841185 0 0 0 +29 0 1 0 4.460413120634612 1.661186434187469 2.731131826280074 0 0 0 +291 0 1 0 0.0035749317593865015 0.21166749654426853 3.275077495308186 1 1 0 +299 0 1 0 0.6601895850752213 0.7060682406274252 3.722602054061811 0 1 0 +87 0 1 0 3.635932620062484 1.4708618427874118 4.477899978536171 0 0 0 +78 0 1 0 1.5540100281849198 2.289959113070306 3.8245622090496108 0 0 0 +5 0 1 0 2.937548438619819 2.211877405174181 2.85571535820357 0 0 0 +95 0 1 0 3.105981604150784 2.188298914603185 4.094702761761116 0 0 0 +352 0 3 -1 0.11773003147587424 1.9458234584845089 4.811739126011424 0 0 0 +281 0 1 0 1.1502488869841234 0.20873030537461357 4.295523149721441 1 1 0 +206 0 1 0 3.330001486381421 1.53529174323865 3.1417824971878447 0 0 0 +241 0 1 0 3.878317992103332 2.023909280872213 4.783549131197242 0 0 0 +109 0 1 0 2.580544454574246 2.2025316047831676 4.264813345165653 0 0 0 +126 0 1 0 2.6463397268489866 0.7745950386723881 3.699331340328284 0 0 0 +62 0 1 0 0.10088965537315422 1.464964032622401 3.4200098453857786 0 0 -1 +145 0 1 0 4.7108240170803874 2.1614660538205466 3.070399886653731 -1 0 0 +354 0 3 -1 1.610893620580725 0.7512309895438358 3.571881076052697 0 0 0 +248 0 1 0 2.3260578668858516 2.409053529199307 3.878500098271755 0 0 0 +278 0 1 0 1.0565916295142963 0.21636101668521504 2.9280061580151355 1 1 0 +334 0 2 1 3.3217760513533556 0.20221074730138347 3.857259461716569 0 0 0 +344 0 2 1 2.145759202198284 0.8646312386735645 4.34482845102358 0 0 0 +84 0 1 0 3.310133712882211 0.8325063678401754 3.1928917336760043 0 0 0 +135 0 1 0 0.5746060669769325 0.007152134736939431 3.7081262585514363 1 0 0 +124 0 1 0 1.5924837125088054 2.3295502621690507 3.1555629363203055 0 0 0 +301 0 1 0 1.3559071869586012 2.104676990793624 4.2855408539569995 0 0 0 +221 0 1 0 4.025760501970453 0.12181323773082332 4.427152392469986 0 1 -1 +149 0 1 0 1.288517578213514 1.1078634671167045 3.0983488547366833 -1 1 -1 +235 0 1 0 3.722079255584157 0.731147796276342 4.106075812812072 0 1 0 +268 0 1 0 4.725777687386199 0.0696714424235374 3.965580233489741 -1 1 0 +229 0 1 0 4.9205143154909035 0.5378937212478773 4.686090920391123 0 1 -1 +144 0 1 0 4.391887063016131 1.3427912572926557 3.770425380327373 0 0 0 +142 0 1 0 1.8346060623646443 0.7517320991384026 4.677813188511546 0 0 0 +119 0 1 0 3.2188591291035764 1.8480317120563596 4.70754013191232 0 0 0 +218 0 1 0 4.590989187547614 0.7832518807186819 4.248448878177557 -1 1 -1 +269 0 1 0 3.83528197952535 2.2671443874151396 3.9458234070905074 0 0 0 +171 0 1 0 1.1367690782529518 0.30653599490724565 4.981237832751898 0 1 -1 +347 0 3 -1 2.730105013349213 1.5732651978450825 4.737616332834529 0 0 -1 +117 0 1 0 2.893231454879688 1.6327429583278301 3.809375824669355 0 0 0 +244 0 1 0 1.903054222598179 1.4266071609686257 4.248317450667845 1 0 0 +46 0 1 0 0.6110511992687845 0.9392825733011035 4.4718586456826115 1 0 -1 +97 0 1 0 3.9786678543088594 1.7659872954929934 3.352752402727882 0 0 0 +155 0 1 0 3.5064237015545134 2.2748461716495725 3.3907408576276095 0 0 0 +190 0 1 0 3.6257913177213887 1.8596172005909988 2.624582193387495 0 0 0 +141 0 1 0 4.133819851057611 1.125460792510254 2.8214638820568316 0 0 0 +261 0 1 0 0.48116423022710325 1.98166727716818 4.003063462271802 1 1 0 +92 0 1 0 3.749162681150054 0.5480152103582329 3.44882074629632 0 0 0 +327 0 2 1 4.261412399401647 0.5826170932678485 3.573292268629846 0 0 0 +337 0 2 1 1.6827282642347854 0.2789473832751784 2.9589468652224666 0 1 0 +45 0 1 0 0.31403607701825803 1.3800214560597042 2.9837533879244087 1 0 0 +200 0 1 0 1.995256276504289 1.4516800278315318 4.898899074068972 0 1 -1 +19 0 1 0 1.2925196386926214 2.321053353209675 4.936516373289165 0 0 -1 +137 0 1 0 0.8617630289962365 2.28834525235633 2.787630960107895 0 0 0 +127 0 1 0 0.19137038400231676 2.1505994041298755 2.5584316139464898 1 0 0 +9 0 1 0 4.475150825165361 1.5978909296640629 4.832730899627523 -1 0 -1 +122 0 1 0 0.6525439970988997 0.9547926616198447 2.731781719219051 0 0 1 +213 0 1 0 4.260400034205448 0.19910770741166325 2.9310219053551076 0 1 0 +136 0 1 0 2.2005511013729873 1.8455801462092951 2.556685426816697 0 0 0 +37 0 1 0 3.4251867503322573 0.6527991402153643 2.527078438582748 0 0 0 +34 0 1 0 2.9175944797670583 0.13654347040781536 2.8820983415866803 0 0 0 +217 0 1 0 2.6954995241935262 0.7710325900782893 2.5236360609937285 0 0 0 +250 0 1 0 3.6726666633431457 4.6018232175750455 1.320473043522378 0 0 1 +166 0 1 0 4.7009740947187035 3.7966019637038317 2.3031579729427096 0 0 0 +150 0 1 0 0.04748930775599636 4.455597613980116 1.8427292493854273 0 0 0 +368 0 3 -1 2.4584991330272654 3.7591217299647854 0.426379021376866 0 0 1 +339 0 2 1 4.156459282343587 3.061985537069849 1.9932515879322967 0 0 0 +340 0 2 1 1.9850368150824245 4.230758829154677 0.5294221302127794 0 0 1 +338 0 2 1 0.9865267877252728 4.5330122869142055 1.0314881718061573 0 0 0 +201 0 1 0 3.4754534022764494 3.0217470705506297 1.6935508350107573 0 0 0 +101 0 1 0 2.4842203411723074 4.89685402639858 2.0242798213421707 0 -1 0 +209 0 1 0 0.013989467358051372 4.330201393745349 0.7846247571577325 0 0 0 +168 0 1 0 3.6350006680732463 4.754122434939927 0.3223377232438807 0 0 0 +216 0 1 0 2.9114246475391328 3.433945937453107 1.8710068661397548 0 0 0 +203 0 1 0 1.3574269717949698 4.456732218277533 1.5387489126454328 0 0 0 +179 0 1 0 0.522179118267259 2.8689808625572804 0.9077030710981577 0 0 0 +181 0 1 0 3.6672727729190364 3.878549463830204 1.3381224951621222 0 0 0 +236 0 1 0 4.185529129045369 4.161219716693221 2.3595808103262947 0 0 0 +18 0 1 0 1.9980056628841183 4.320068243150856 1.6822915445402666 0 -1 0 +363 0 3 -1 2.235554720706489 2.906908244875693 1.036143254738836 0 0 0 +198 0 1 0 0.5887731317025171 3.6812050133593415 0.29825916210104214 1 0 0 +146 0 1 0 4.960647912886466 3.5092208739797943 1.7004652621516252 0 -1 0 +284 0 1 0 0.7836145638659848 4.548012471030345 0.34455457204719553 0 0 1 +207 0 1 0 0.7814740880134713 3.3714021164537535 1.118310228903454 0 0 0 +183 0 1 0 1.7161486342210968 3.5481236466130888 1.4041933001601494 0 0 0 +90 0 1 0 3.016201247291213 2.9587290353837226 0.5684151813116627 0 0 1 +159 0 1 0 2.232365423522552 2.6465053064946784 0.3759996466051841 0 0 0 +274 0 1 0 0.5881709093591322 4.080889794199071 2.280264861574092 0 0 0 +303 0 1 0 3.246061664307446 4.37314477200102 0.7856213092562913 0 0 1 +315 0 1 0 0.35327667038742755 3.029146608728807 0.0791450986650732 0 0 1 +11 0 1 0 1.8285612986193809 3.353968071719668 0.5643737651851671 0 0 0 +176 0 1 0 0.2508944492255997 3.000972330471306 2.0071913487423076 0 0 0 +304 0 1 0 3.0726902044877265 4.647914126011872 0.9996827940171641 0 0 1 +143 0 1 0 3.9352261868949907 3.898490778762382 0.7840306203684324 -1 0 1 +275 0 1 0 3.0573248045448427 3.8840876505181687 1.5573196095677335 0 0 0 +242 0 1 0 0.4226727582609528 4.737822957131883 1.387223661593226 1 0 0 +169 0 1 0 0.620846920150785 3.1839828246731394 2.426601824718326 0 0 0 +86 0 1 0 1.5665987066447504 4.978509835006031 2.1415023910919806 0 -1 0 +333 0 2 1 2.445920926535492 4.47766917410732 1.1358754296155358 0 0 0 +294 0 1 0 1.1981531521673625 2.8049885346916006 2.111987077826676 1 0 0 +310 0 1 0 1.9298476539189637 4.937913932158907 1.030730042471827 0 0 1 +192 0 1 0 4.108736026656326 4.6378045277922135 1.671217346737129 0 0 0 +280 0 1 0 1.8281315737488533 2.7749825164949944 1.6554178103691615 0 0 0 +164 0 1 0 1.3010575917308485 4.494402162669739 0.041752472824225825 0 0 0 +170 0 1 0 3.650388228932189 2.9899308003889966 1.067251647123858 0 0 0 +256 0 1 0 0.3339581189133178 3.843411762565409 0.9273636798830823 1 0 1 +305 0 1 0 1.025180078056553 3.006380787860488 0.2873424831400842 0 0 1 +321 0 2 1 1.3189364418815286 3.4276539374299775 2.089591655927524 0 0 0 +147 0 1 0 1.1461014570579835 3.8511084209677513 0.7525062047220421 0 0 0 +204 0 1 0 1.5112706244387488 2.8188173134434136 0.974908694884752 0 0 0 +215 0 1 0 2.343066001179666 3.1978495580526083 1.8659131264876065 0 0 0 +307 0 1 0 0.6571664267721125 3.1829219496620875 1.6123833084425085 0 0 0 +230 0 1 0 1.691826706532908 4.328533707881519 0.9338934645265112 0 0 0 +357 0 3 -1 0.9424908379877175 4.354374546920949 1.9334517447934154 1 -1 0 +273 0 1 0 2.7367589344269287 4.456539476093516 0.09405577094510116 0 0 1 +104 0 1 0 4.8224729965828805 2.532966442497679 2.359616149253149 -1 -1 0 +326 0 2 1 3.205170108738211 3.657764190269539 0.6059860569327459 0 0 1 +153 0 1 0 2.492658010069284 2.5549338497141174 2.359226108751561 0 0 0 +10 0 1 0 3.8691461518549306 3.358206982770836 0.5857517185532839 0 0 0 +17 0 1 0 1.4938724652414974 3.6267684500076256 0.6528239210562307 0 0 0 +172 0 1 0 2.222730505934896 3.9294618789141045 1.857472216603435 0 0 0 +187 0 1 0 4.12882439435804 4.373709089764649 0.7735950113473502 0 0 0 +246 0 1 0 2.819371376884619 2.580827865657106 1.2982493640886932 0 0 0 +175 0 1 0 3.6037043838950598 3.9741874494279883 2.1537260234843565 0 0 0 +233 0 1 0 2.4936360109190447 3.7461714899270047 1.0175156445748128 0 0 1 +197 0 1 0 4.513537428106752 3.877838158564245 0.23454380025260257 0 0 0 +36 0 1 0 4.75739982448861 2.993089291142829 1.2955298606828172 0 0 0 +157 0 1 0 4.577486719825762 2.5548383034837867 0.24912616922292966 -1 0 0 +212 0 1 0 3.0478551135031786 3.2498317267851125 1.1259910025155964 0 0 0 +369 0 3 -1 1.3808431418191394 3.7792710503646454 1.4792791648287753 0 0 0 +225 0 1 0 0.5765924415162327 3.9233350563958895 1.5040765765770432 0 0 0 +88 0 1 0 1.7263407212681612 4.0160590932504725 2.4625624343301684 0 -1 0 +180 0 1 0 2.957032676177556 4.366369702631684 1.8084697653437938 0 0 0 +228 0 1 0 4.007414662615488 3.641531116903689 1.6104136392925874 0 0 0 +296 0 1 0 4.449577191326246 2.7185852714293324 1.5770958226540965 0 0 1 +309 0 1 0 4.193664393097815 3.195309236798277 0.013138071944119596 0 0 1 +316 0 2 1 4.8850975785077875 3.1181643275208497 0.4988834454683537 0 0 0 +282 0 1 0 4.547534798722087 4.098196657638136 1.3514482711905391 -1 0 0 +223 0 1 0 4.070573701500224 3.0161107941779735 1.0525783618149982 0 0 0 +112 0 1 0 0.40619378501741044 4.581496953329872 2.4303817659862164 1 -1 0 +89 0 1 0 1.1309601445791022 2.8935782083274892 1.0807782088379005 0 0 0 +191 0 1 0 3.307024885373677 4.7782882192530485 2.015572284198738 0 0 0 +237 0 1 0 4.748120043170084 3.725460808317568 0.9522577175239182 0 0 0 +226 0 1 0 3.818166049029603 4.848449417426425 2.3600959505179793 0 0 0 +231 0 1 0 3.0678050795347436 2.5699968710786734 2.0631097277316033 0 0 0 +49 0 1 0 2.4740584898343307 4.766019947430475 0.6261200658844492 0 -1 0 +375 0 3 -1 3.3298272958028243 2.9611113328638377 0.026915061404104934 0 0 1 +265 0 1 0 1.84918915840028 3.334712440161601 2.324387380119898 0 0 0 +193 0 1 0 0.2324107132082972 4.337276389235211 0.15737812733136072 0 0 0 +318 0 2 1 4.741026775461015 4.950744240431997 0.09991000779517484 0 -1 0 +38 0 1 0 4.567313389179671 4.564683120735231 2.2383375090123745 0 -1 0 +195 0 1 0 4.276432197666434 4.550778719775141 0.01705180460738089 -1 0 0 +224 0 1 0 4.512998770219293 4.930686914076221 1.3263777979979738 0 0 0 +139 0 1 0 2.3611855680314053 2.5238664431540845 1.7400861072101907 0 0 0 +102 0 1 0 1.3179823049817583 4.634953041690075 2.4318467808197792 0 -1 0 +263 0 1 0 1.7520030887065592 2.504606951431736 2.4950818538423345 0 0 0 +361 0 3 -1 4.0568544056493225 3.3144731773008287 2.4514614954683602 -1 0 0 +298 0 1 0 2.2362905839125626 4.407255609537625 2.480448696532583 0 0 0 +106 0 1 0 0.017457347778004895 4.764685683823287 3.185502158549636 1 -1 0 +288 0 1 0 1.4779816621680442 4.314571361320767 3.1205014313954074 0 0 0 +320 0 2 1 0.07352439249274566 2.7314754874268874 4.438222837395544 0 0 0 +12 0 1 0 0.8318394760130385 3.0151110605041334 4.63155060662692 0 0 -1 +350 0 3 -1 3.745719265020869 3.633969589456328 4.863558280777614 0 0 -1 +255 0 1 0 3.7208321476425765 2.5430981712665512 4.92336590272389 0 0 0 +264 0 1 0 0.6187322774863372 4.591988430718435 2.99409822364528 0 0 0 +131 0 1 0 1.2363781535890241 3.269322268996143 2.994313299793769 0 -1 0 +271 0 1 0 1.547729125698992 3.0254742510247556 3.7969510998815252 0 0 0 +239 0 1 0 2.9727140078350547 4.458728462772902 2.589816182926471 0 0 0 +247 0 1 0 4.723447954180547 4.559587825067703 4.2844794465287395 -1 0 0 +336 0 2 1 4.30377897745755 3.6083219532870245 3.0751026181087915 -1 0 0 +80 0 1 0 3.9139985069210037 4.2026902501983585 3.687780496901057 0 -1 0 +351 0 3 -1 2.3310951879832125 4.1532874672431905 3.1481350248436812 0 -1 0 +345 0 2 1 2.1434754823364397 3.630858480566402 4.76111427884395 0 0 0 +23 0 1 0 0.1116865464821783 3.425858998459883 3.8315121362406237 1 0 -1 +372 0 3 -1 0.2013553605339663 4.542002104842189 4.709301425799447 0 0 0 +374 0 3 -1 4.681869085817003 3.6012197326454385 3.5343842160338768 -1 0 0 +99 0 1 0 2.0103450534211995 4.916636042614968 2.7722290840703248 0 -1 0 +134 0 1 0 1.2868072532982127 3.6027664980659657 4.834686879117821 0 0 0 +94 0 1 0 3.4969553288958197 4.191479164754045 3.257611668733077 0 -1 0 +108 0 1 0 1.069116967523645 3.8915098801681096 3.4741345909171617 0 -1 0 +116 0 1 0 1.7110071948939123 3.003308695307758 4.880957418376936 0 0 0 +47 0 1 0 0.6144957209089892 4.086034990124086 3.6421216730599935 0 -1 0 +177 0 1 0 1.9967818019099437 4.223293250522419 4.123286584622672 0 0 -1 +154 0 1 0 2.9241663178555766 3.006235461853767 2.736488872218668 0 0 0 +272 0 1 0 3.6421402582975864 3.397998711089007 3.420005877158591 0 0 0 +292 0 1 0 0.9456777627899714 2.854242407065964 3.6713102734015375 0 0 0 +348 0 3 -1 3.602827568682842 4.841299797785864 3.0727220886411226 0 -1 0 +113 0 1 0 4.09715162476059 4.796283984467532 3.6675472388615478 0 -1 0 +76 0 1 0 3.0081758606102404 4.473089701483304 3.4619137215698026 0 -1 0 +178 0 1 0 0.1695480127810721 4.181202627391224 3.659798577645965 1 0 -1 +82 0 1 0 4.308822049710188 2.5505905907422872 2.8631988472742047 0 -1 0 +358 0 3 -1 3.000038253202886 3.679700145601949 3.1009139360007207 0 -1 0 +302 0 1 0 0.8272609584103479 4.003958148100786 4.445729848848656 0 0 0 +13 0 1 0 3.9722298533039946 4.5610720224823025 4.234031447999139 -1 -1 -1 +72 0 1 0 4.772965920074378 3.1606932108115786 2.6365859592135936 -1 -1 0 +245 0 1 0 2.197144845045862 4.9556893549684515 3.4030216646163236 0 0 0 +234 0 1 0 1.6678259516197003 2.9505643678051627 4.390951365364965 0 0 0 +300 0 1 0 1.6328211445692586 4.819932075478693 4.586452176846693 0 0 0 +105 0 1 0 1.892439317939264 4.041167636776589 4.848755937425436 0 -1 0 +254 0 1 0 1.9694419982366302 2.9792140111735144 3.3447749736668477 0 0 0 +371 0 3 -1 0.7643208588903881 2.802514146046753 4.3289561641866845 1 0 0 +262 0 1 0 3.7153807374055208 2.9342246849719764 3.2753284900477935 0 0 0 +266 0 1 0 1.0036319050407299 3.924029109027026 2.765363860481497 0 0 0 +31 0 1 0 3.2842646038163683 3.4104333522804806 4.272304684998637 -1 0 -1 +267 0 1 0 0.3478333275641798 3.7705819143047163 4.485021488086793 1 0 0 +290 0 1 0 3.1115982282440853 2.9295831819273586 3.5626146396041767 0 0 0 +324 0 2 1 2.771587476254712 3.9414271647783257 4.230821042895357 0 -1 0 +293 0 1 0 4.214234541195906 3.262981149206049 4.090936501706094 0 0 0 +323 0 2 1 2.8122245885603756 2.580830565080179 4.80431964625616 0 0 0 +335 0 2 1 1.4810951840990771 4.639126972487052 3.6567291514204365 0 0 0 +270 0 1 0 4.9358344334018485 3.549094534023696 4.864412320210946 0 0 0 +173 0 1 0 3.117530919934732 3.684181958243471 4.8516982526619845 0 0 -1 +2 0 1 0 0.3021690885489914 2.659446894836416 4.0367641920770465 1 0 0 +210 0 1 0 1.1142397715035879 4.4046148625915365 4.3150622960514795 0 0 -1 +125 0 1 0 2.7530308932307075 2.8955411122664563 4.086365750770761 0 0 0 +214 0 1 0 2.447949785773993 3.4411883728706667 3.42533264878368 0 0 0 +258 0 1 0 2.4686303390297684 4.538868481224538 4.639944166832721 0 0 0 +93 0 1 0 3.788036472073458 2.8805091146305495 4.207262328768323 0 0 0 +24 0 1 0 1.1758426635439467 2.95987521811849 2.7491364787864434 0 -1 -1 +152 0 1 0 2.4635622448768637 3.071194152656136 4.899091259343484 0 0 -1 +367 0 3 -1 3.1644043863749083 3.8654934982056908 3.8521845414359994 0 0 -1 +249 0 1 0 0.8478947214959758 3.5141550038968123 4.043189817151755 1 0 0 +252 0 1 0 3.6043032286195786 2.7211428234421744 2.6278508560867944 0 0 0 +227 0 1 0 2.617074822292329 4.356852917720359 3.706994190844186 0 0 0 +120 0 1 0 4.569034188524726 2.9098756991392434 3.6702905357629025 -1 0 0 +342 0 2 1 0.04291508283574702 3.9189332996339656 3.0034347187387493 1 0 0 +370 0 3 -1 2.5035109101131465 3.367965526536857 4.050360185006087 0 0 0 +283 0 1 0 4.572823838429256 4.030918642578753 4.393803855463066 0 0 0 +279 0 1 0 4.173810766411638 3.812475242565163 4.301379932392817 0 0 0 +314 0 1 0 4.4933290428810615 4.490246675016839 3.151051409399978 0 0 0 +297 0 1 0 4.726982536341496 3.1414792583129945 4.429739330385717 0 0 0 +341 0 2 1 1.8003373130876947 3.4781354307892713 2.899858395353646 0 0 0 +312 0 1 0 2.303209904055366 2.9656095134210108 2.8204198689888864 0 0 0 +373 0 3 -1 3.565365933175215 4.286825401805136 4.955585318174815 0 0 0 +91 0 1 0 1.9018724274489394 3.9228474975062673 3.538137694177671 1 0 0 +260 0 1 0 3.349946104166285 4.305285613626282 4.371436905009239 0 0 0 +286 0 1 0 3.4730325337603043 3.45134046911952 2.570996040716748 0 0 0 +277 0 1 0 3.893007381012101 4.253386877442837 2.9065935101973173 0 0 0 +162 0 1 0 1.6103352066101007 3.6182097268745603 4.028619192357339 0 0 -1 +148 0 1 0 0.47140654288437406 3.361602614222439 3.2833125638624368 0 0 0 +199 0 1 0 0.45641137753428773 2.8928189398052093 3.055011726454653 0 0 0 +59 0 1 0 2.603235557919487 3.7590996377530255 2.60080520480327 0 -1 0 +240 0 1 0 0.03755253175857831 3.8996655727813736 2.694428316121082 0 0 0 + +Velocities + +189 -0.32037987935911505 -1.8545793275796412 -0.3389478887810303 +107 0.3468735347167663 -0.2955882500703209 0.7493971092549213 +253 -0.48452738488616026 0.9567078415781696 -0.25617231541775964 +163 0.05392635484651058 1.4098736248940131 -0.9551003900232069 +26 -1.617929859419785 -1.7202842142734436 0.11135553428439426 +27 -0.29551994504699913 1.1370741945626326 0.41194386832776464 +56 0.16870751745665893 0.5465328233065259 -1.6661100877128618 +167 -0.697267953141008 -1.9033337525745169 -0.31395781199009537 +364 -1.400949260052127 0.7984877976989593 1.9724238551125475 +61 -0.07154629291712847 0.7516744652931485 1.9678922707455193 +222 0.23902932306419583 0.792970583016431 0.1021330637484922 +332 2.0928445946235548 0.5309926353418448 1.5604773439112944 +1 -0.28287953739229227 -0.029534368909520013 1.0355343887239448 +319 -1.0849228432051101 -0.23080330071554434 1.1791104359270128 +53 0.9157229929216929 -2.3903991179046433 -1.5736773702897364 +68 0.17385350731976662 -0.30161653041932146 -0.39368426363389786 +220 2.5382960064880953 0.2591819621699902 -0.624753681550235 +44 -1.6451203378616364 -0.9239543258332603 1.132412983542016 +55 -0.08195646053083308 0.37533078137864123 -0.36860166560573604 +362 -0.4446005218467803 -0.13521669762509536 -0.3021189485210508 +165 -0.3037978228853421 0.48479699556498196 -0.14302405851335173 +60 -0.544505644947158 0.17484779434446918 0.5635832746819489 +202 0.40080169998085574 0.6655121110868133 0.4354226901236873 +85 -0.08059699858936498 -0.02186022407318814 -1.2385638610310603 +73 1.183399433007768 -0.5106063831888463 1.1937543804310102 +96 1.2595243589106713 -0.013906208472664688 0.4458849845729422 +30 0.5511059698244886 -0.6732784212785152 -1.0116331060036698 +67 -1.9023068008435087 1.0951572746798406 -2.0479882413103634 +349 1.4237209300898004 0.30323664052562727 0.19232435921291324 +132 -0.48867767658730155 0.09532364712318463 -0.42068909019073003 +328 -0.5663127928136679 0.37616782849718877 0.4297794152083855 +161 0.7703317540205181 0.6774326958924123 -0.3026855763654866 +185 -0.023401903290328513 0.2511657303041649 -1.3088367457780965 +219 1.2737339284351616 1.028957623073161 -1.0554246534519245 +8 -0.06863366403807239 -1.6556315386699292 -0.23974376153400073 +69 0.1565812662607089 -1.2971845847251846 2.613897358932758 +3 0.8019572100951472 0.849648794229192 0.11213159968547601 +7 0.25284839489562 1.491377162402211 -0.0841367270980815 +329 0.6351810405065701 0.25238586135592256 0.8556983715790075 +174 -0.5484640782672199 -0.14739645457730516 -0.17643270798617747 +20 -0.7181391568279812 -0.22546080581710778 -0.48698419533440007 +57 -1.6318504400975429 1.5493172313080645 0.4266085421953033 +325 0.061765643056371416 -0.0060236030310999444 -1.8483177209317203 +40 -0.6621905409370356 -1.2253334788867594 -1.2773646990414835 +51 -1.1432987328508335 -0.3034502864840843 -0.09847735528475197 +54 -0.8020221565243566 -0.0015208681811410135 -0.6007775452455262 +186 -0.33099994137011096 -1.131278148973123 -0.7879194313488349 +289 -0.9130924589993602 -2.639634662624726 0.09890031992023729 +75 -0.8396764454636105 0.15798357570063332 -0.8477685915025622 +48 -1.154914948896169 0.8466957349051685 0.8313924234437813 +66 0.654607723623097 -0.41464584514495073 0.3609107252534362 +52 -1.0586581647402704 0.5087601698575234 0.021025900110182197 +158 1.3322996283718878 0.9345320009185999 -1.0328661925117097 +330 2.4383540085998128 0.9866744795842981 -0.275795472471459 +359 -1.057214010787649 -0.4364851954003303 0.2310265064750756 +366 2.636570585206883 -0.3884825767632163 -0.7217671918096393 +196 0.657853761584953 2.3775812813720982 -0.5436441623798505 +128 1.7541843513017408 0.7453187167218113 1.2179212772328478 +118 -1.59209911141696 -0.07364502396325014 0.7936184535797746 +43 0.6237868379926791 -0.5784415822689247 -0.5803521937322204 +184 -0.05277645327535091 0.45761568472864167 1.6427093411481584 +360 -0.5648148491925004 0.5433424409581341 -0.49847380874912023 +64 -1.8023545518136344 1.2913349276666013 0.12717943337914392 +285 0.5736914459809833 0.5401354659943393 -0.28034343867615685 +58 -0.36569579675665037 0.07239846277520536 -1.1013654261669847 +257 1.552014566999722 -0.27948696231751907 -0.19503371520168367 +356 0.7682896155635832 0.8280820699807006 1.3752233131249456 +100 -1.0184796009907435 0.4605961843295614 -0.704442145669238 +121 -0.38173838277886674 0.1959729194377248 -0.339617988229434 +130 0.22178015355919917 -0.8675864036237741 1.1703244653493718 +238 0.8237981930471431 -1.5493771904591997 -0.24060309819018327 +211 -0.9664235140040581 1.0444826618189473 -0.7001322318514289 +208 -1.1981085340301125 -0.7027352973576034 0.5185067521926653 +63 0.08370101334493428 0.12218456306348915 0.049185735912721115 +22 0.30188358915891 -1.3418299707096835 1.1148332854869305 +355 -1.6654429777296822 -0.6945382472719116 -3.1744183147606044 +70 -0.08375793026685956 0.8125324795960583 0.6134941598297233 +65 -1.1244245803291022 -0.9361082187681131 1.1324057744996805 +182 2.412056789726208 1.2486258334638396 0.20473073207056972 +188 -0.37468794463000277 -1.2934293589793593 0.9691264102882897 +35 0.6406020314671873 0.49864731329733636 -1.7724168624616223 +6 -1.3537464971191604 -0.20927181650199864 -1.5167116889460597 +346 0.30631209820842736 -0.7471003495751499 -1.6323676491850723 +14 -0.7975238331233878 -0.2181017429474187 -0.632027008590476 +15 -0.32436974395845447 0.3065062429708726 0.4060390267782001 +16 0.07956951912756546 -1.0048987407630834 -0.36004318524122436 +287 -0.5959260893373665 -0.1854042515514421 1.0130704394383132 +81 0.9472416915759921 -0.6006345374524827 -0.24694710732081407 +114 1.525743657374327 0.04312008580379893 -0.7588343858546425 +232 -2.2017540835769154 -0.886310786043688 0.20387430412267815 +50 0.8784604270190535 0.0011080801156705886 0.5856470163400485 +79 -1.071058278656874 -0.006257268621159592 -1.4196804350916041 +74 -0.7639977049209028 -2.6659874189534594 1.1890689974611952 +194 0.865474812438892 -0.5155997613354885 -1.9207758859429034 +133 0.38706903000333437 -0.9520916056321852 0.8541781745856745 +311 0.5008213609458084 -0.07623241918788479 0.5610893061215554 +115 0.15935870900356716 -0.882694140477557 0.6905790810816846 +4 -0.9205904536679229 -0.7764649294266535 1.1104783428010845 +151 0.6813124939707291 2.326468648189791 2.249632338275329 +306 -0.18710153508281002 -0.3863205254514582 0.5475210927789089 +138 -1.6956647006569652 -1.151952653064399 -0.554024796221634 +110 -0.39629567812811123 -0.4259264444322932 0.44254068082874265 +251 1.5245566481568409 -0.04190307638919144 1.0804352846040617 +331 -0.9795637705792982 -0.02610365622846786 2.5830426945375367 +243 0.45087912305781325 -1.355797680211566 0.4004209604371337 +156 0.651222966601892 0.4174674307414501 -1.1666370354607374 +32 -0.5950276948154204 -0.8393986824943023 -0.7189711727165591 +205 0.3776877212460598 2.3109152071487427 0.6245197680183613 +41 -0.9842633414094011 -0.8809111823971685 -1.2837012228899978 +28 0.18078855219728557 -0.13909035935407538 -0.19886968753018486 +322 1.1176391816577027 -0.8011078770573403 0.21746550449618066 +103 1.2549030850211156 -0.8081818878065185 -0.27748891746378196 +353 -1.5194865665198567 -0.5579729356084093 -2.0775398105335463 +295 0.22655387403623733 2.9916385717293763 -0.43349783976321543 +365 0.16554102729886308 -0.4745928131492317 -0.03803439542786842 +98 -0.4618022678057757 -0.6029234473896345 0.6725224603911311 +33 -1.7236841295071144 -0.3068526804764886 -0.20580599603270883 +39 1.2772591923409662 2.1497013660971303 -2.56219215061276 +343 -0.2927424336003138 0.9775658544657785 0.2011269771824622 +259 0.24216001573068768 1.8155597582018805 -1.0537870123381061 +77 -0.1324758963152601 0.38342267896154975 -0.04929261328552273 +140 0.38183354460675634 0.6132141691538076 0.442562890919203 +111 -0.8964279708048736 -0.8793266310917598 0.00861098502364186 +129 -1.1765926408865686 -1.0237122510048935 -0.27213291220171076 +317 0.8853758404732577 -1.1912915511525315 -0.2565808529702654 +25 -0.41258107389034077 1.5982277861548693 1.2605935861477815 +21 -0.9069821227261771 -0.4677412632169774 0.6873716589735867 +276 0.25907509449423294 -0.11278777358289174 -1.2598969980105488 +160 1.1310609970707983 -0.7180501046994335 -0.5753626368090448 +308 -0.5407967057189286 0.6940578777081593 -0.37557998557357736 +313 -0.7130409942586629 -1.681937934547073 0.1358119949043896 +71 0.667183519460017 0.3282177658608256 -2.7413950424049682 +42 1.1047543258650714 -0.8068929160871195 -1.2899950214337368 +83 1.7828282628616605 -2.004816043371422 1.2952692225001963 +123 -2.9004360498301707 0.9646317600839549 0.18131057792974167 +29 -1.3652408424575189 -1.009704628734932 0.43892722829821035 +291 1.0627401897900626 0.43489566519198664 -0.18784491971683132 +299 -0.26688361561559937 -1.6102635970374153 0.5079799986210346 +87 1.4011023956088358 0.32714083881834366 -0.7531211236916443 +78 0.1425369548627805 2.6493781694133145 -2.22950555437911 +5 1.3052777281483532 -0.9535145036740771 0.2654363506534612 +95 0.30567181776721686 1.1163897147224524 -0.5532613677186452 +352 0.8465877298612667 2.2107064094824453 -0.17116328451251087 +281 -0.07871622308682222 1.0856250342504348 1.1051209599756335 +206 1.0416994819210157 0.5672831409877002 1.6724372809390164 +241 -2.2941651916087253 1.9444171652571998 -1.2578222836508794 +109 -0.050748691911046466 1.0000918986528329 0.2015940504869988 +126 -0.8786798841416771 0.8497095311402493 1.3946275611382846 +62 -0.2164244387038406 0.8723775902261287 0.26553621918966663 +145 0.46930481759942066 0.7693145659657128 -0.037339037750325446 +354 -0.2098961088460406 -0.953758291681559 -0.403997005612617 +248 0.8565801706475304 0.8235709205269733 0.2955326303618714 +278 2.048784561206607 0.9072129491727593 -0.7581517712639704 +334 0.456898611136665 -0.02509977329095233 -0.9459879096811896 +344 0.8456571762985342 0.4633497822367495 0.8285234460659753 +84 0.40873630171375086 -0.18526388419408432 -0.06542872798585272 +135 2.013756885383165 -0.15612654092659334 0.5349019283627415 +124 -0.5212908614174182 0.7685855427870887 -0.12228979391994671 +301 0.48855352634840166 -1.2406754622002991 -0.08431072249939792 +221 -1.2260526209132598 0.7697110508869727 -0.5542459265345273 +149 -0.2107348825202514 0.22490448892353535 -0.5734046758064464 +235 -1.4630566299287793 0.5127970335856704 -0.6004850345593133 +268 0.5661524540264498 0.8991784804895261 -0.005988273242503317 +229 -0.8584020647535824 -0.25056183768697937 0.6902063254564769 +144 -0.46291169716408886 0.5111551390891086 1.1711664705383293 +142 -0.41757592752156836 0.21324275041440427 -1.2569024662297255 +119 0.5340652441413375 0.3164807148267359 -1.4743337919796309 +218 -1.0392995481658593 0.26241789884459166 0.7357941801129729 +269 0.7678562785093035 -1.9170146057209667 0.7772238925448399 +171 -0.4969590584187104 -0.596095006981118 -0.10809390580507182 +347 0.8436056567675704 -0.5476600028413069 -1.3395269452969696 +117 0.8095357513993098 0.14859594003753698 0.9460359145433276 +244 0.09898637700604154 1.9714533954146634 -1.2087777946497995 +46 -0.3820366350713078 0.32336042217403327 -0.9227515950377472 +97 -1.7189935642347989 -1.5765158910467392 0.8063603306333886 +155 0.36326503759730183 0.6548052876982512 1.620348248115881 +190 0.7808450444577382 0.6656743687730368 0.7660461630595695 +141 0.8693957537631642 1.3523683215558047 1.2211970208170133 +261 0.28442666039427394 -0.32073173144758543 1.583985092925248 +92 -0.7345577665025577 0.016229401856888797 0.3571609110744681 +327 1.500595660011905 2.328516151626208 -1.0480316997941985 +337 -2.026559556886336 -1.0216544907269516 -1.6983898702416695 +45 0.7296312803407121 -1.3823715012836595 -0.001888700820258285 +200 -1.5125957105846846 0.21807330099838138 1.0211540585201806 +19 0.20095464395150656 0.876426388172185 1.1335083283234622 +137 -0.6544379260019478 0.3996572012861071 1.5228974656760543 +127 -1.1436027430113194 0.5730519130732912 0.008333961575108378 +9 -0.42750265926865316 -0.5165855700703796 -1.0737944161142243 +122 -0.3470793076769018 -0.34708198826094805 1.1255388427785304 +213 1.835703281018243 0.8847420691344063 1.6530535667302775 +136 0.43589519224927076 -0.020299972081583365 0.747684835626366 +37 -1.148425632972328 -0.00642821348241146 0.9184878168029185 +34 -1.4186726525732596 0.4531027449345908 3.0048537054226916 +217 1.915040996479654 -1.732542284842007 0.44651597348176714 +250 0.5621559470017148 0.4079874575005626 1.303044522453095 +166 0.7893755845011986 0.43466399248524873 1.160997706352551 +150 -0.37696033158301806 1.0863822179294413 -2.078278052131126 +368 2.210878478411088 0.38296799766548134 1.0444089386311377 +339 1.4973183477847594 -0.7580085092724449 0.11364576051168895 +340 -0.3257916484956234 0.0813898939784988 -1.1040698774178863 +338 -1.0699596370620241 -1.0120808096694316 1.833778928251108 +201 -0.23917814210651525 -0.03394921352802534 -0.9718396302546122 +101 0.02844691201485288 -0.6506751616189366 -0.03984644326365714 +209 -0.9153220207336246 -1.5186563759968537 -1.0205115163511242 +168 0.8206949111387913 -0.4245501681797143 -0.7447438734980448 +216 -0.43707878972381015 -0.5291981706606685 1.1132283784486239 +203 -0.8017105024810447 0.33314329697566913 -0.5162714638483775 +179 -1.8007654528739871 -0.4670778758036332 0.23458485261416823 +181 0.5555468330191876 0.25910041403756756 -0.3316347961383419 +236 -0.8012681820545456 -0.5344531291884258 -0.08163768189012148 +18 1.9065170422999271 1.3540018286545739 1.1100685009732258 +363 0.2827677278721721 -0.3503610814118505 -1.1797786001961337 +198 -0.41882935960212925 0.8056124759016018 1.8622528356092367 +146 0.1474073717281029 1.699648861146042 1.0589630664233587 +284 -0.407232387684036 -0.11824885032252892 1.360138277573833 +207 -0.3298855435595792 -0.006765921450541862 0.2769759320227882 +183 0.06337061105143588 -0.48367890148177073 0.5050176946201105 +90 0.3184428577661019 0.9432678954749032 0.8928827031242041 +159 -0.5105050211567479 1.9463424976868646 0.32689317369973153 +274 1.3982542011798467 -0.27549013447341186 0.8666525994391387 +303 0.4978908819019676 1.2437279316470162 -0.10162615038846663 +315 -1.0164590430058362 -0.03269995674634833 0.6833370972687541 +11 0.3622774648719034 1.2005608993134556 -0.7399401748200916 +176 0.12717484954669636 -0.1874453653833894 -0.5308623715664049 +304 0.06155270894330727 0.03603614146908593 0.1329179976636057 +143 0.26847678011717396 -0.3583390732477076 1.7051362686528129 +275 0.33838601766084075 0.2950617938645766 -0.09418120915803613 +242 0.3073988441018431 -1.8086100776648917 -0.42916540436389544 +169 0.14874973578643622 -1.3199432376066533 0.7087936697125053 +86 -0.5239538553467294 1.3403598560019885 -0.2254748591815899 +333 -0.21788548307133926 -0.7324156012520107 0.1425582466646254 +294 0.6218138152225486 0.21868791299154444 0.8803681463521291 +310 -0.5282668664359558 -0.46220541267842175 -1.0627944759334662 +192 0.8557275799833504 1.4638168802662663 -0.6584377242390569 +280 -0.09918465909102868 -1.0727882372767648 0.1410570176454262 +164 -0.008014496582185324 0.5157698128135756 0.46160123613104664 +170 1.4950197089701442 3.424612541884591 -1.314342167688277 +256 0.06221965545636296 -0.8559730346941176 1.8154628407737485 +305 0.30469481973038853 -0.03817030163277567 -1.2365844444400544 +321 -0.3202998744384521 1.2283112281779653 1.823191101425018 +147 0.5820565680991441 0.36342122556604795 -0.2612619382618049 +204 -0.008409550806661968 1.171175221811852 -0.2917927123166712 +215 0.46773636429619847 -0.41233509768776383 -0.3263056272548713 +307 -0.07908782350310187 2.164168859748066 -0.9789469165714956 +230 0.8852323551048787 1.3865626751983875 0.5628005219581595 +357 -1.2576148747792928 0.03308240972261274 -1.5084612011551441 +273 0.5606862174415299 0.5124906231131765 -1.3826770688817982 +104 -0.10795450062494798 -2.791328634167407 1.1620113801205978 +326 0.2071603034556735 -0.40909146487793213 -0.896060232043604 +153 -0.45260595455551345 -0.3277317537659357 -0.13439736779275077 +10 2.7196279602592033 0.48777338008418347 0.18107892198434122 +17 -0.8413852713221374 -1.1275004082730866 -1.4487171872195708 +172 1.2930259795119698 0.14131239886642913 0.5257996818615889 +187 -1.8173970648752318 -0.28759466349432383 -1.7755081990758885 +246 -1.0149452724155728 -1.300181341724771 -0.976220324472834 +175 1.0435736653798136 -0.6355996329080813 -0.6337776368224881 +233 1.2293937984927237 -0.905059289715439 0.8454304677995911 +197 -0.22773405357421111 -0.7410347767485816 1.126629391166937 +36 -0.9705558369369324 0.33702279037561017 -1.064377132550976 +157 -0.05834073541273116 1.2094227269795201 1.0222926092654627 +212 0.013232248632983099 0.9236140505707409 1.261304943429413 +369 0.3957125732954573 -0.5984876528890495 -0.6144811927659548 +225 0.6396689699095744 -0.38272720995061654 -0.691909782028554 +88 -0.4143004926247838 -1.2942068299775036 -0.546740943598064 +180 0.04523325776155317 -0.05945543703566272 0.47333576015888584 +228 0.8374889207264015 -0.5976967042166498 0.026290439671542307 +296 0.7603590023814826 1.798573173748085 0.09638254026567694 +309 0.26044897388340504 -0.6796155915915322 -0.5500226485278027 +316 0.7809829226880511 -0.9911482041657326 -0.5982510531417577 +282 2.813391256963532 -0.7389301719245412 -1.317705839191937 +223 0.42512280312483486 0.39540872471182203 0.1359105288746332 +112 0.3204862890962222 -0.5808767554272332 -0.7511556946241044 +89 0.30853654184225165 1.4220670510027051 -2.1642949762748867 +191 0.20906754014854564 0.026904283363689382 0.39272994979179504 +237 0.8114113274128864 -1.2134195876500447 -1.2542604312044792 +226 0.05086738376609842 1.9155895254467763 0.5909889856323195 +231 0.12002855122048815 0.02004736909508279 0.11081960871345642 +49 0.03966621608393742 -0.8770492944397817 0.8690111691798925 +375 0.9491508595606913 0.58883338187899 -0.3157968091718698 +265 -1.202404469596496 -1.5086124324682335 0.25807518315254696 +193 0.4146818842856516 0.2647601963673656 0.730972113530503 +318 -1.8694737066425302 -0.761959044368273 -0.7096835210855107 +38 1.4229802153283508 -1.36140802862721 -0.8467736118278119 +195 -0.8905011743693773 0.7285788649892662 -1.1668737157134021 +224 0.27425001045805447 -1.4123472657200646 -1.3276958804580687 +139 0.17701044314199935 1.2384991288614933 0.707649077312958 +102 -0.49170524562266826 0.9342585115109375 0.4160956308860243 +263 -0.7682667946507794 0.5411620297128601 -0.14243425461628567 +361 0.4874350807265555 -1.118941056651683 0.4602449779293269 +298 0.04321754250044474 -0.15386666534573679 -1.0460367336946477 +106 -0.3645858676063196 -0.008671871254614383 -1.0359720474498813 +288 -1.275865518017513 -1.0371041509619956 2.212604082967035 +320 -0.377092487120416 -0.5974519455300853 -0.22840203412473642 +12 -0.24251540706937524 -0.1402656612039157 0.2434885714233267 +350 1.1678886543574276 -0.45657425471012764 -0.2662438133234255 +255 0.5964565878330671 -1.3463852257768025 1.2786356338266742 +264 1.6104915551559742 1.8273229008351088 -0.9803231882687425 +131 -0.8634566501958852 -0.3775110787982123 -0.4297068950811986 +271 0.022978578950211624 0.1537857816854949 0.41326352661226756 +239 1.1101812509452746 -1.0996094771595475 -0.5405483522697302 +247 0.366683557977341 -0.40591154743605157 0.3199408653703203 +336 -0.4204708954513029 1.1245949705896916 0.14059678344621293 +80 0.7468471903560799 0.16912425014962304 0.9566573830732898 +351 0.07048942766011615 -1.3084119272893855 -1.2549170044600249 +345 0.7055909005169286 1.5707280888607302 2.170499205441559 +23 -1.331563904677986 0.7554001948296128 0.6695113635015243 +372 -1.4331361061806305 -0.7926393821400735 0.5238882724688806 +374 -0.825494743089428 1.5035094266963547 1.4373542115371403 +99 0.27578368704586625 -0.6711803184635016 0.5730720207589178 +134 -1.1904489259413122 1.5650039062713583 -0.4846706283407857 +94 0.9633444927305759 0.47059281614148496 0.1502870940642896 +108 0.26924336654778097 -0.21911864351862886 0.3263366196031549 +116 0.6191352094412962 -0.7085456797691245 -0.2795453344586494 +47 -0.81507518857967 0.5002361185490026 0.1633824556071923 +177 0.9242227597235199 -0.9239301127385003 -0.6516754024576575 +154 0.36428957391605954 1.0522574437068934 0.47589301799726774 +272 -1.0875391115124131 -0.5442742977183277 0.6272696858994802 +292 -2.3018786976959547 -0.719034234609397 -0.3976068240680647 +348 -0.7074103387842228 -0.0767390137549914 -0.963801034994381 +113 0.0030054733602942266 -1.3950743743038958 1.867999225141668 +76 1.5225615991122337 -0.6220818112064357 -0.15128024907071225 +178 -0.9036534708064256 0.27189024225898883 -1.310213331624685 +82 -0.42289693438412584 -0.022877233686993723 0.16757191063647395 +358 -1.084491323240786 0.309617438081422 0.19221704824216043 +302 -1.0553000696338095 -0.7753368184729383 -1.6522442141368283 +13 0.845507404222631 -1.1655430839109384 1.5339500987877546 +72 0.41215075448394733 -1.3387634915542448 -1.701720507581037 +245 -0.34884333851309834 -1.599607748547356 -0.08374549876035683 +234 -1.8167563819027162 -1.1826697278339255 1.1323923705559067 +300 -1.1492146391765459 0.2483076272654141 -0.7388669957162219 +105 1.860014533900312 0.7148855192575438 0.950732381457607 +254 -0.6941521238655652 1.3286658685743733 -0.09912945530019143 +371 -0.03007825734775041 0.17488055593531995 -0.5660994145015367 +262 1.1816791457721831 -0.2527818393194355 0.49550489641014006 +266 0.7025922230527104 -1.3294406800025553 -0.610134301603067 +31 -1.015719812353546 0.699060801172419 0.9860089149766915 +267 0.38654355926704703 -0.1264135931208901 0.1337359898717711 +290 1.0106897270034887 -0.6174340186836875 0.17719301929654596 +324 1.5906920275906873 -1.4359983538965082 -0.8582706716695392 +293 0.9982234808302441 0.543717193528767 -2.062895773562878 +323 0.17420566156018166 -0.8499393438675438 -0.22821645799213797 +335 -1.4047556653990858 0.2558049214304259 -0.20559797586706147 +270 -0.6321821769779428 -0.4192527616747393 -0.8336466516152516 +173 -1.454149943391539 -0.7091620301715705 0.1032726804162123 +2 -0.13160744352132697 -0.8530661810441926 -1.4081064081887786 +210 0.005780708280217166 -0.1314037001754253 -0.2650271980684433 +125 -0.09249384396894937 -1.1079543363063478 0.5855224371258938 +214 0.5201018860617912 1.5761782081656692 0.035238788848664875 +258 0.029258855657727026 0.9978609610551674 -0.14936661862149073 +93 1.3599706012850858 0.5138196159795498 -0.5479657931310508 +24 -0.36848780789234786 0.5502667846431184 -0.8219909931831206 +152 1.443106679308555 -1.5881504830897177 0.5251248932583428 +367 -0.8318296913109121 -1.0659118655536617 1.4652035277005255 +249 -0.7272493937720567 -1.0554246074355031 1.9106526180491246 +252 0.15824074140715003 1.3574893627297528 0.849299710142209 +227 -1.8919742394027095 0.35022746838873914 -0.8716265785931281 +120 -0.571575152303992 -1.2924338935753592 1.6398975078681308 +342 0.04170661506757478 -0.2554943852733288 1.2031995777997446 +370 -0.3474083481747786 -0.8268210706239789 0.11710668216712806 +283 0.34259631654561 -0.638600994930959 0.021713727624721322 +279 -2.1091380649692364 0.5683510572154551 -0.9091778578938636 +314 -0.43834173946024524 -1.6956466398316619 -1.741986521654538 +297 0.9805330343066516 1.9653989039948883 -0.06267823210622318 +341 0.6436707559323198 0.17740641651830055 0.7923601196148916 +312 -1.4662653378890305 0.8912504951091632 -3.2848373130153616 +373 -0.3818721621040007 1.1303100555115857 1.117083484179991 +91 -1.0354512700928402 0.7952901789933705 -1.3376868649958413 +260 -0.7142984506137289 0.4503083150384257 0.7493938136595016 +286 0.12497815933423412 -1.4185031297528174 -0.7147963619923647 +277 -0.04273979718334558 0.6681668442079539 -1.627755052910915 +162 0.6571166297602984 0.4444526727563672 1.4878784469904562 +148 0.3177520883327088 1.0855120103126268 -0.6584725796441712 +199 -1.2545559409413416 -0.5694770345954823 0.33932040400166985 +59 -0.6235113592986508 -0.2086994539745325 1.6873018374682558 +240 0.705376364763962 -0.6227531276788822 1.6071635134558022 diff --git a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long index 27d7cd3167..bd405aad37 100644 --- a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long +++ b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/in.dpd_coul_slater_long @@ -10,15 +10,15 @@ variable cut_coul equal 2.0 # Initialize LAMMPS run for 3-d periodic #------------------------------------------------------------------------------- -units lj -boundary p p p # periodic at all axes -atom_style full +units lj +boundary p p p # periodic at all axes +atom_style full dimension 3 -bond_style none -angle_style none -dihedral_style none -improper_style none +bond_style none +angle_style none +dihedral_style none +improper_style none newton on comm_modify vel yes # store info of ghost atoms btw processors @@ -27,68 +27,32 @@ comm_modify vel yes # store info of ghost atoms btw processors # Box creation and configuration #------------------------------------------------------------------------------- -## Box definition -region box block 0 5 0 5 0 5 # 5x5x5 reduced dimensions -create_box 3 box # 3 species in the box - -# Random insertion of beads, number density of 3.0 -# Insert Water beads Type 1 -create_atoms 1 random 315 ${seed} box overlap 0.1 maxtry 5000 -# Insert Sodium beads Type 2 -create_atoms 2 random 30 ${seed} box overlap 0.1 maxtry 5000 -# Insert Chlorure beads Type 3 -create_atoms 3 random 30 ${seed} box overlap 0.1 maxtry 5000 - -# Define masses -mass 1 1.00000 -mass 2 1.00000 -mass 3 1.00000 - -# Define Charges -set type 1 charge 0.000 -set type 2 charge 1.000 -set type 3 charge -1.000 - -# Initiate velocities -velocity all create 1 35642 dist gaussian mom yes rot no - - # Define pair style and coefficients pair_style dpd/coul/slater/long ${T} ${cut_DPD} ${seed} ${lambda} ${cut_coul} +read_data data.dpd_coul_slater_long + # Enable long range electrostatics solver -kspace_style pppm 5e-04 - -# Define interactions without coulombic interactions -pair_coeff 1 1*3 78.0 4.5 - -# Define interactions with coulombic interactions (both beads charged) -pair_coeff 2*3 2*3 78.0 4.5 yes +kspace_style pppm 1e-04 # Construct neighbors every steps neighbor 1.0 bin neigh_modify every 1 delay 0 check yes - -#------------------------------------------------------------------------------- -# Minimize -#------------------------------------------------------------------------------- - -minimize 1e-4 1e-4 1000 1000 - #------------------------------------------------------------------------------- # Run the simulation #------------------------------------------------------------------------------- -thermo_style custom step temp press vol evdwl ecoul elong pe ke fnorm fmax +thermo_style custom step temp press vol evdwl ecoul elong pe ke fnorm fmax thermo_modify norm no -thermo 100 +thermo 100 timestep 0.01 run_style verlet -fix 1 all nve +fix 1 all nve -run 5000 +run 1000 + +unfix 1 -unfix 1 \ No newline at end of file diff --git a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.1 b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.1 new file mode 100644 index 0000000000..39c0ded481 --- /dev/null +++ b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.1 @@ -0,0 +1,147 @@ +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-262-g0aff26705c-modified) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# DPD Ionic Fluid + +variable T equal 1.0 +variable cut_DPD equal 1.0 +variable seed equal 165412 +variable lambda equal 0.25 +variable cut_coul equal 2.0 + +#------------------------------------------------------------------------------- +# Initialize LAMMPS run for 3-d periodic +#------------------------------------------------------------------------------- + +units lj +boundary p p p # periodic at all axes +atom_style full +dimension 3 + +bond_style none +angle_style none +dihedral_style none +improper_style none + +newton on +comm_modify vel yes # store info of ghost atoms btw processors + +#------------------------------------------------------------------------------- +# Box creation and configuration +#------------------------------------------------------------------------------- + +# Define pair style and coefficients +pair_style dpd/coul/slater/long ${T} ${cut_DPD} ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 ${cut_DPD} ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 0.25 ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 0.25 2 + +read_data data.dpd_coul_slater_long +Reading data file ... + orthogonal box = (0 0 0) to (5 5 5) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 375 atoms + reading velocities ... + 375 velocities +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +# Enable long range electrostatics solver +kspace_style pppm 1e-04 + +# Construct neighbors every steps +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + +#------------------------------------------------------------------------------- +# Run the simulation +#------------------------------------------------------------------------------- + +thermo_style custom step temp press vol evdwl ecoul elong pe ke fnorm fmax +thermo_modify norm no +thermo 100 + +timestep 0.01 +run_style verlet + +fix 1 all nve + +run 1000 +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 1.4828454 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 7.7240141e-05 + estimated relative force accuracy = 7.7240141e-05 + using double precision FFTW3 + 3d grid and FFT values/proc = 24389 8000 +Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3 + ghost atom cutoff = 3 + binsize = 1.5, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair dpd/coul/slater/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 8.359 | 8.359 | 8.359 Mbytes + Step Temp Press Volume E_vdwl E_coul E_long PotEng KinEng Fnorm Fmax + 0 0.9849949 69.271905 125 4673.0443 0 -30.365103 4642.6792 552.58214 646.76798 65.851035 + 100 1.0614027 69.794624 125 4659.0139 0 -31.906319 4627.1075 595.44692 612.94396 60.338653 + 200 0.9422517 68.721098 125 4687.8862 0 -33.81531 4654.0709 528.6032 620.25627 62.726994 + 300 0.8956649 69.323482 125 4721.0824 0 -33.854275 4687.2281 502.46801 670.22699 73.087908 + 400 0.99584547 69.670416 125 4713.9086 0 -30.783633 4683.125 558.66931 607.65881 59.224652 + 500 1.0565931 69.497816 125 4701.2584 0 -26.80545 4674.4529 592.74873 646.18907 71.398122 + 600 1.0071523 70.26222 125 4659.2061 0 -29.98909 4629.217 565.01243 630.00244 58.264115 + 700 1.0507355 67.920078 125 4695.255 0 -32.649209 4662.6058 589.46259 651.80459 70.573524 + 800 0.98561942 68.279591 125 4745.7603 0 -28.98491 4716.7754 552.9325 627.14371 67.196483 + 900 0.96470105 70.742864 125 4706.3605 0 -30.271633 4676.0889 541.19729 644.43036 79.474998 + 1000 1.0204819 70.164419 125 4654.6077 0 -27.797433 4626.8103 572.49035 624.19728 71.825307 +Loop time of 2.10153 on 1 procs for 1000 steps with 375 atoms + +Performance: 411128.483 tau/day, 475.843 timesteps/s, 178.441 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.1779 | 1.1779 | 1.1779 | 0.0 | 56.05 +Bond | 6.507e-05 | 6.507e-05 | 6.507e-05 | 0.0 | 0.00 +Kspace | 0.74636 | 0.74636 | 0.74636 | 0.0 | 35.51 +Neigh | 0.12903 | 0.12903 | 0.12903 | 0.0 | 6.14 +Comm | 0.039726 | 0.039726 | 0.039726 | 0.0 | 1.89 +Output | 0.00027587 | 0.00027587 | 0.00027587 | 0.0 | 0.01 +Modify | 0.0037596 | 0.0037596 | 0.0037596 | 0.0 | 0.18 +Other | | 0.004451 | | | 0.21 + +Nlocal: 375 ave 375 max 375 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 3613 ave 3613 max 3613 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 62354 ave 62354 max 62354 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 62354 +Ave neighs/atom = 166.27733 +Ave special neighs/atom = 0 +Neighbor list builds = 65 +Dangerous builds = 0 + +unfix 1 + +Total wall time: 0:00:02 diff --git a/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.4 b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.4 new file mode 100644 index 0000000000..445baac0f7 --- /dev/null +++ b/examples/PACKAGES/dpd-basic/dpd_coul_slater_long/log.19Jun24.dpd_coul_slater.g++.4 @@ -0,0 +1,147 @@ +LAMMPS (17 Apr 2024 - Development - patch_17Apr2024-262-g0aff26705c-modified) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# DPD Ionic Fluid + +variable T equal 1.0 +variable cut_DPD equal 1.0 +variable seed equal 165412 +variable lambda equal 0.25 +variable cut_coul equal 2.0 + +#------------------------------------------------------------------------------- +# Initialize LAMMPS run for 3-d periodic +#------------------------------------------------------------------------------- + +units lj +boundary p p p # periodic at all axes +atom_style full +dimension 3 + +bond_style none +angle_style none +dihedral_style none +improper_style none + +newton on +comm_modify vel yes # store info of ghost atoms btw processors + +#------------------------------------------------------------------------------- +# Box creation and configuration +#------------------------------------------------------------------------------- + +# Define pair style and coefficients +pair_style dpd/coul/slater/long ${T} ${cut_DPD} ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 ${cut_DPD} ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 ${seed} ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 ${lambda} ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 0.25 ${cut_coul} +pair_style dpd/coul/slater/long 1 1 165412 0.25 2 + +read_data data.dpd_coul_slater_long +Reading data file ... + orthogonal box = (0 0 0) to (5 5 5) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 375 atoms + reading velocities ... + 375 velocities +Finding 1-2 1-3 1-4 neighbors ... + special bond factors lj: 0 0 0 + special bond factors coul: 0 0 0 + 0 = max # of 1-2 neighbors + 0 = max # of 1-3 neighbors + 0 = max # of 1-4 neighbors + 1 = max # of special neighbors + special bonds CPU = 0.000 seconds + read_data CPU = 0.003 seconds + +# Enable long range electrostatics solver +kspace_style pppm 1e-04 + +# Construct neighbors every steps +neighbor 1.0 bin +neigh_modify every 1 delay 0 check yes + +#------------------------------------------------------------------------------- +# Run the simulation +#------------------------------------------------------------------------------- + +thermo_style custom step temp press vol evdwl ecoul elong pe ke fnorm fmax +thermo_modify norm no +thermo 100 + +timestep 0.01 +run_style verlet + +fix 1 all nve + +run 1000 +PPPM initialization ... + using 12-bit tables for long-range coulomb (src/kspace.cpp:342) + G vector (1/distance) = 1.4828454 + grid = 20 20 20 + stencil order = 5 + estimated absolute RMS force accuracy = 7.7240141e-05 + estimated relative force accuracy = 7.7240141e-05 + using double precision FFTW3 + 3d grid and FFT values/proc = 10469 2000 +Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 3 + ghost atom cutoff = 3 + binsize = 1.5, bins = 4 4 4 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair dpd/coul/slater/long, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.208 | 7.208 | 7.209 Mbytes + Step Temp Press Volume E_vdwl E_coul E_long PotEng KinEng Fnorm Fmax + 0 0.9849949 69.076433 125 4673.0443 0 -30.365103 4642.6792 552.58214 613.18374 70.700582 + 100 0.95374867 69.110009 125 4681.1097 0 -31.260804 4649.8489 535.053 629.95109 62.05418 + 200 1.0076152 69.824904 125 4670.7458 0 -28.382203 4642.3636 565.27213 656.8501 72.049813 + 300 1.0014752 69.666331 125 4696.454 0 -26.943577 4669.5105 561.8276 631.49861 74.737274 + 400 0.98863876 69.731774 125 4700.7552 0 -23.816077 4676.9391 554.62634 637.74742 68.928573 + 500 0.95782852 68.588075 125 4698.588 0 -29.249543 4669.3385 537.3418 646.31897 68.800569 + 600 0.97443232 70.864079 125 4674.8821 0 -26.415644 4648.4664 546.65653 606.50755 78.664429 + 700 0.98783988 68.908299 125 4692.5536 0 -28.092022 4664.4616 554.17817 638.98401 69.691814 + 800 0.98000145 69.83977 125 4706.6365 0 -29.648365 4676.9881 549.78082 626.84362 73.133934 + 900 1.0526251 69.466078 125 4671.9648 0 -30.941117 4641.0237 590.52269 618.1049 62.333546 + 1000 0.98340746 69.527121 125 4728.2894 0 -31.869907 4696.4195 551.69159 630.14208 61.392611 +Loop time of 0.928543 on 4 procs for 1000 steps with 375 atoms + +Performance: 930490.137 tau/day, 1076.956 timesteps/s, 403.859 katom-step/s +98.9% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.30761 | 0.34974 | 0.38864 | 4.9 | 37.67 +Bond | 8.4633e-05 | 9.0539e-05 | 9.9184e-05 | 0.0 | 0.01 +Kspace | 0.39038 | 0.42976 | 0.47215 | 4.4 | 46.28 +Neigh | 0.033986 | 0.035576 | 0.036791 | 0.5 | 3.83 +Comm | 0.10247 | 0.10324 | 0.10481 | 0.3 | 11.12 +Output | 0.00024145 | 0.00027404 | 0.00036867 | 0.0 | 0.03 +Modify | 0.0022402 | 0.0025068 | 0.0026343 | 0.3 | 0.27 +Other | | 0.007356 | | | 0.79 + +Nlocal: 93.75 ave 96 max 93 min +Histogram: 3 0 0 0 0 0 0 0 0 1 +Nghost: 2289.75 ave 2317 max 2271 min +Histogram: 1 1 0 0 1 0 0 0 0 1 +Neighs: 15590.2 ave 16765 max 14540 min +Histogram: 1 0 1 0 0 1 0 0 0 1 + +Total # of neighbors = 62361 +Ave neighs/atom = 166.296 +Ave special neighs/atom = 0 +Neighbor list builds = 64 +Dangerous builds = 0 + +unfix 1 + +Total wall time: 0:00:00 From 45508baee50241c8d5dbf5bbbc69df0c46d66ed7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 11:08:31 -0400 Subject: [PATCH 287/313] major refactor for restart, data file handling. removal of dead code. --- lib/gpu/lal_dpd_coul_slater_long.cpp | 5 +- lib/gpu/lal_dpd_coul_slater_long.cu | 10 +-- lib/gpu/lal_dpd_coul_slater_long.h | 15 ++-- lib/gpu/lal_dpd_coul_slater_long_ext.cpp | 32 +++---- src/DPD-BASIC/pair_dpd_coul_slater_long.cpp | 93 +++++++-------------- src/DPD-BASIC/pair_dpd_coul_slater_long.h | 4 +- src/GPU/pair_dpd_coul_slater_long_gpu.cpp | 49 ++++++----- 7 files changed, 90 insertions(+), 118 deletions(-) diff --git a/lib/gpu/lal_dpd_coul_slater_long.cpp b/lib/gpu/lal_dpd_coul_slater_long.cpp index cef2c594a1..aa2b73566c 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long.cpp @@ -47,8 +47,7 @@ int DPDCoulSlaterLongT::init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, - double **host_cut_slatersq, double **host_scale, - double *host_special_lj, + double **host_cut_slatersq, double *host_special_lj, const bool tstat_only, const int nlocal, const int nall, const int max_nbors, const int maxspecial, @@ -115,7 +114,7 @@ int DPDCoulSlaterLongT::init(const int ntypes, cutsq.alloc(lj_types*lj_types,*(this->ucl_device),UCL_READ_ONLY); this->atom->type_pack4(ntypes,lj_types,cutsq,host_write,host_cutsq, - host_cut_dpdsq, host_scale, host_cut_slatersq); + host_cut_dpdsq,host_cut_slatersq); double special_sqrt[4]; special_sqrt[0] = sqrt(host_special_lj[0]); diff --git a/lib/gpu/lal_dpd_coul_slater_long.cu b/lib/gpu/lal_dpd_coul_slater_long.cu index 2c8f020c8d..d9679ccdfd 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.cu +++ b/lib/gpu/lal_dpd_coul_slater_long.cu @@ -289,8 +289,8 @@ __kernel void k_dpd_coul_slater_long(const __global numtyp4 *restrict x_, // apply Slater electrostatic force if distance below Slater cutoff // and the two species have a slater coeff - // cutsq[mtype].w -> Coulombic squared cutoff - if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + // cutsq[mtype].z -> Coulombic squared cutoff + if ( cutsq[mtype].z != 0.0 && rsq < cutsq[mtype].z){ numtyp r2inv=ucl_recip(rsq); numtyp _erfc; numtyp grij = g_ewald * r; @@ -426,7 +426,7 @@ __kernel void k_dpd_coul_slater_long_fast(const __global numtyp4 *restrict x_, int mtype=itype+jx.w; - /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.z = scale, cutsq.w = cut_slatersq + /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.z = cut_slatersq if (rsq Coulombic squared cutoff - if ( cutsq[mtype].w != 0.0 && rsq < cutsq[mtype].w){ + // cutsq[mtype].z -> Coulombic squared cutoff + if ( cutsq[mtype].z != 0.0 && rsq < cutsq[mtype].z){ numtyp r2inv=ucl_recip(rsq); numtyp _erfc; numtyp grij = g_ewald * r; diff --git a/lib/gpu/lal_dpd_coul_slater_long.h b/lib/gpu/lal_dpd_coul_slater_long.h index e8e413b26a..1870255998 100644 --- a/lib/gpu/lal_dpd_coul_slater_long.h +++ b/lib/gpu/lal_dpd_coul_slater_long.h @@ -37,13 +37,12 @@ class DPDCoulSlaterLong : public BaseDPD { * - -3 if there is an out of memory error * - -4 if the GPU library was not compiled for GPU * - -5 Double precision is not supported on card **/ - int init(const int ntypes, double **host_cutsq, double **host_a0, - double **host_gamma, double **host_sigma, - double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, - double **host_scale, double *host_special_lj, bool tstat_only, const int nlocal, - const int nall, const int max_nbors, const int maxspecial, - const double cell_size, const double gpu_split, FILE *screen, double *host_special_coul, - const double qqrd2e, const double g_ewald, const double lamda); + int init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, + double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, + double **host_cut_slatersq, double *host_special_lj, bool tstat_only, const int nlocal, + const int nall, const int max_nbors, const int maxspecial, const double cell_size, + const double gpu_split, FILE *screen, double *host_special_coul, const double qqrd2e, + const double g_ewald, const double lamda); /// Clear all host and device data /** \note This is called at the beginning of the init() routine **/ @@ -66,7 +65,7 @@ class DPDCoulSlaterLong : public BaseDPD { /// coeff.x = a0, coeff.y = gamma, coeff.z = sigma, coeff.w = cut_dpd UCL_D_Vec coeff; - /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.z = scale, cutsq.w = cut_slatersq + /// cutsq.x = cutsq, cutsq.y = cut_dpdsq, cutsq.w = cut_slatersq UCL_D_Vec cutsq; /// Special LJ values diff --git a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp index 35350aca6d..ceed1b85be 100644 --- a/lib/gpu/lal_dpd_coul_slater_long_ext.cpp +++ b/lib/gpu/lal_dpd_coul_slater_long_ext.cpp @@ -27,12 +27,14 @@ static DPDCoulSlaterLong DPDCMF; // --------------------------------------------------------------------------- // Allocate memory on host and device and copy constants to device // --------------------------------------------------------------------------- -int dpd_coul_slater_long_gpu_init(const int ntypes, double **host_cutsq, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, - double **host_scale, double *special_lj, const int inum, - const int nall, const int max_nbors, const int maxspecial, const double cell_size, - int &gpu_mode, FILE *screen, double *host_special_coul, - const double qqrd2e, const double g_ewald, const double lamda) { +int dpd_coul_slater_long_gpu_init(const int ntypes, double **host_cutsq, double **host_a0, + double **host_gamma, double **host_sigma, double **host_cut_dpd, + double **host_cut_dpdsq, double **host_cut_slatersq, + double *special_lj, const int inum, const int nall, + const int max_nbors, const int maxspecial, + const double cell_size, int &gpu_mode, FILE *screen, + double *host_special_coul, const double qqrd2e, + const double g_ewald, const double lamda) { DPDCMF.clear(); gpu_mode=DPDCMF.device->gpu_mode(); double gpu_split=DPDCMF.device->particle_split(); @@ -55,11 +57,10 @@ int dpd_coul_slater_long_gpu_init(const int ntypes, double **host_cutsq, double int init_ok=0; if (world_me==0) - init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, - host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, - host_scale, special_lj, false, inum, nall, max_nbors, - maxspecial, cell_size, gpu_split, screen, - host_special_coul,qqrd2e, g_ewald, lamda); + init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, host_cut_dpd, + host_cut_dpdsq, host_cut_slatersq, special_lj, false, inum, nall, + max_nbors, maxspecial, cell_size, gpu_split, screen, host_special_coul, + qqrd2e, g_ewald, lamda); DPDCMF.device->world_barrier(); if (message) @@ -75,11 +76,10 @@ int dpd_coul_slater_long_gpu_init(const int ntypes, double **host_cutsq, double fflush(screen); } if (gpu_rank==i && world_me!=0) - init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, - host_cut_dpd, host_cut_dpdsq, host_cut_slatersq, - host_scale, special_lj, false, inum, nall, max_nbors, - maxspecial, cell_size, gpu_split, screen, - host_special_coul,qqrd2e, g_ewald, lamda); + init_ok=DPDCMF.init(ntypes, host_cutsq, host_a0, host_gamma, host_sigma, host_cut_dpd, + host_cut_dpdsq, host_cut_slatersq, special_lj, false, inum, nall, + max_nbors, maxspecial, cell_size, gpu_split, screen, host_special_coul, + qqrd2e, g_ewald, lamda); DPDCMF.device->serialize_init(); if (message) diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp index 7e4d267045..c4af283a9e 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.cpp @@ -41,12 +41,13 @@ static constexpr double EPSILON = 1.0e-10; /* ---------------------------------------------------------------------- */ -PairDPDCoulSlaterLong::PairDPDCoulSlaterLong(LAMMPS *lmp) : Pair(lmp) +PairDPDCoulSlaterLong::PairDPDCoulSlaterLong(LAMMPS *lmp) : + Pair(lmp), cut_dpd(nullptr), cut_dpdsq(nullptr), cut_slatersq(nullptr), + a0(nullptr), gamma(nullptr), sigma(nullptr), random(nullptr) { writedata = 1; ewaldflag = pppmflag = 1; - qdist = 0.0; - random = nullptr; + respa_enable = 0; } /* ---------------------------------------------------------------------- */ @@ -60,14 +61,12 @@ PairDPDCoulSlaterLong::~PairDPDCoulSlaterLong() memory->destroy(cutsq); memory->destroy(cut_dpd); memory->destroy(cut_dpdsq); - memory->destroy(cut_slater); memory->destroy(cut_slatersq); memory->destroy(cut); memory->destroy(a0); memory->destroy(gamma); memory->destroy(sigma); - memory->destroy(scale); } if (random) delete random; @@ -178,7 +177,7 @@ void PairDPDCoulSlaterLong::compute(int eflag, int vflag) t = 1.0 / (1.0 + EWALD_P*grij); erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); - prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; + prefactor = qqrd2e * qtmp*q[j]/r; forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); forcecoul *= r2inv; @@ -227,12 +226,9 @@ void PairDPDCoulSlaterLong::allocate() setflag[i][j] = 0; memory->create(cutsq,n+1,n+1,"pair:cutsq"); - memory->create(scale,n+1,n+1,"pair:scale"); - memory->create(cut,n+1,n+1,"pair:cut"); memory->create(cut_dpd,n+1,n+1,"pair:cut_dpd"); memory->create(cut_dpdsq,n+1,n+1,"pair:cut_dpdsq"); - memory->create(cut_slater,n+1,n+1,"pair:cut_slater"); memory->create(cut_slatersq,n+1,n+1,"pair:cut_slatersq"); memory->create(a0,n+1,n+1,"pair:a0"); memory->create(gamma,n+1,n+1,"pair:gamma"); @@ -256,9 +252,11 @@ void PairDPDCoulSlaterLong::settings(int narg, char **arg) seed = utils::inumeric(FLERR,arg[2],false,lmp); lamda = utils::numeric(FLERR,arg[3],false,lmp); cut_coul = utils::numeric(FLERR,arg[4],false,lmp); + // initialize Marsaglia RNG with processor-unique seed - if (seed <= 0) error->all(FLERR,"Illegal pair_style command"); + if (seed <= 0) + error->all(FLERR,"Invalid random seed {} for pair_style dpd/coul/slater/long command", seed); delete random; random = new RanMars(lmp,seed + comm->me); @@ -294,7 +292,7 @@ void PairDPDCoulSlaterLong::coeff(int narg, char **arg) if (narg > 4) { bool do_slater = utils::logical(FLERR,arg[4],false,lmp); - if (do_slater) cut_two = cut_coul+2.0*qdist; + if (do_slater) cut_two = cut_coul; } if (narg > 5) cut_one = utils::numeric(FLERR,arg[5],false,lmp); @@ -305,10 +303,9 @@ void PairDPDCoulSlaterLong::coeff(int narg, char **arg) a0[i][j] = a0_one; gamma[i][j] = gamma_one; cut_dpd[i][j] = cut_one; - cut_slater[i][j] = cut_two; + cut_slatersq[i][j] = cut_two * cut_two; cut[i][j] = MAX(cut_one, cut_two); setflag[i][j] = 1; - scale[i][j] = 1.0; count++; } } @@ -360,20 +357,16 @@ double PairDPDCoulSlaterLong::init_one(int i, int j) sigma[i][j] = sqrt(2.0*force->boltz*temperature*gamma[i][j]); cut_dpdsq[i][j] = cut_dpd[i][j] * cut_dpd[i][j]; - cut_dpdsq[j][i] = cut_dpdsq[i][j]; - cut_slatersq[i][j] = cut_slater[i][j] * cut_slater[i][j]; - cut_slatersq[j][i] = cut_slatersq[i][j]; a0[j][i] = a0[i][j]; gamma[j][i] = gamma[i][j]; sigma[j][i] = sigma[i][j]; - scale[j][i] = scale[i][j]; cut_dpd[j][i] = cut_dpd[i][j]; - cut_slater[j][i] = cut_slater[i][j]; cut[j][i] = cut[i][j]; + cut_dpdsq[j][i] = cut_dpdsq[i][j]; + cut_slatersq[j][i] = cut_slatersq[i][j]; - //return cut[i][j]; - return MAX(cut_dpd[i][j], cut_slater[i][j]); + return MAX(cut_dpd[i][j], sqrt(cut_slatersq[i][j])); } /* ---------------------------------------------------------------------- @@ -385,7 +378,7 @@ void PairDPDCoulSlaterLong::write_restart(FILE *fp) write_restart_settings(fp); int i,j; - for (i = 1; i <= atom->ntypes; i++) + for (i = 1; i <= atom->ntypes; i++) { for (j = i; j <= atom->ntypes; j++) { fwrite(&setflag[i][j],sizeof(int),1,fp); if (setflag[i][j]) { @@ -393,12 +386,10 @@ void PairDPDCoulSlaterLong::write_restart(FILE *fp) fwrite(&gamma[i][j],sizeof(double),1,fp); fwrite(&cut[i][j],sizeof(double),1,fp); fwrite(&cut_dpd[i][j],sizeof(double),1,fp); - fwrite(&cut_dpdsq[i][j],sizeof(double),1,fp); - fwrite(&cut_slater[i][j],sizeof(double),1,fp); fwrite(&cut_slatersq[i][j],sizeof(double),1,fp); - fwrite(&scale[i][j],sizeof(double),1,fp); } } + } } /* ---------------------------------------------------------------------- @@ -413,7 +404,7 @@ void PairDPDCoulSlaterLong::read_restart(FILE *fp) int i,j; int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) + for (i = 1; i <= atom->ntypes; i++) { for (j = i; j <= atom->ntypes; j++) { if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); @@ -422,18 +413,17 @@ void PairDPDCoulSlaterLong::read_restart(FILE *fp) utils::sfread(FLERR,&a0[i][j],sizeof(double),1,fp,nullptr,error); utils::sfread(FLERR,&gamma[i][j],sizeof(double),1,fp,nullptr,error); utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &scale[i][j],sizeof(double),1,fp, nullptr, error); + utils::sfread(FLERR,&cut_dpd[i][j],sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&cut_slatersq[i][j],sizeof(double),1,fp,nullptr,error); } MPI_Bcast(&a0[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&gamma[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_dpd[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_dpdsq[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&cut_slater[i][j],1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_slatersq[i][j],1,MPI_DOUBLE,0,world); - MPI_Bcast(&scale[i][j],1,MPI_DOUBLE,0,world); } } + } } /* ---------------------------------------------------------------------- @@ -445,14 +435,8 @@ void PairDPDCoulSlaterLong::write_restart_settings(FILE *fp) fwrite(&temperature,sizeof(double),1,fp); fwrite(&cut_global,sizeof(double),1,fp); fwrite(&seed,sizeof(int),1,fp); - fwrite(&mix_flag,sizeof(int),1,fp); - fwrite(&cut_coul,sizeof(double),1,fp); - fwrite(&cut_dpd,sizeof(double),1,fp); - fwrite(&cut_dpdsq,sizeof(double),1,fp); - fwrite(&cut_slater,sizeof(double),1,fp); - fwrite(&cut_slatersq,sizeof(double),1,fp); fwrite(&lamda,sizeof(double),1,fp); - fwrite(&offset_flag,sizeof(int),1,fp); + fwrite(&cut_coul,sizeof(double),1,fp); } /* ---------------------------------------------------------------------- @@ -465,22 +449,14 @@ void PairDPDCoulSlaterLong::read_restart_settings(FILE *fp) utils::sfread(FLERR,&temperature,sizeof(double),1,fp,nullptr,error); utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error); utils::sfread(FLERR,&seed,sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR, &cut_coul,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &cut_dpd,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &cut_dpdsq,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &cut_slater,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &cut_slatersq,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &lamda,sizeof(double),1,fp,nullptr,error); - utils::sfread(FLERR, &offset_flag,sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&lamda,sizeof(double),1,fp,nullptr,error); + utils::sfread(FLERR,&cut_coul,sizeof(double),1,fp,nullptr,error); } MPI_Bcast(&temperature,1,MPI_DOUBLE,0,world); MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world); MPI_Bcast(&seed,1,MPI_INT,0,world); - MPI_Bcast(&mix_flag,1,MPI_INT,0,world); - MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); MPI_Bcast(&lamda,1,MPI_DOUBLE,0,world); - MPI_Bcast(&offset_flag,1,MPI_INT,0,world); + MPI_Bcast(&cut_coul,1,MPI_DOUBLE,0,world); // initialize Marsaglia RNG with processor-unique seed // same seed that pair_style command initially specified @@ -507,13 +483,14 @@ void PairDPDCoulSlaterLong::write_data_all(FILE *fp) { for (int i = 1; i <= atom->ntypes; i++) for (int j = i; j <= atom->ntypes; j++) - fprintf(fp,"%d %d %g %g %g\n",i,j,a0[i][j],gamma[i][j],cut[i][j]); + fprintf(fp,"%d %d %g %g %s %g\n",i,j,a0[i][j],gamma[i][j], + (cut_slatersq[i][j] == 0.0) ? "yes" : "no", cut_dpd[i][j]); } /* ---------------------------------------------------------------------- */ double PairDPDCoulSlaterLong::single(int i, int j, int itype, int jtype, double rsq, - double factor_coul, double factor_dpd, double &fforce) + double factor_coul, double factor_dpd, double &fforce) { double r,rinv,wd,phi; double r2inv,grij,expm2,t,erfc,prefactor; @@ -557,17 +534,11 @@ double PairDPDCoulSlaterLong::single(int i, int j, int itype, int jtype, double void *PairDPDCoulSlaterLong::extract(const char *str, int &dim) { - if (strcmp(str,"cut_coul") == 0) { - dim = 0; - return (void *) &cut_coul; - } - if (strcmp(str,"lamda") == 0) { - dim = 0; - return (void *) &lamda; - } - if (strcmp(str,"scale") == 0) { - dim = 2; - return (void *) scale; - } + dim = 0; + if (strcmp(str,"cut_coul") == 0) return (void *) &cut_coul; + if (strcmp(str,"lamda") == 0) return (void *) &lamda; + dim = 2; + if (strcmp(str,"a0") == 0) return (void *) a0; + if (strcmp(str,"gamma") == 0) return (void *) gamma; return nullptr; } diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.h b/src/DPD-BASIC/pair_dpd_coul_slater_long.h index 36558ccf24..c5fb975fbe 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.h +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.h @@ -47,15 +47,13 @@ class PairDPDCoulSlaterLong : public Pair { double special_sqrt[4]; int seed; double **cut; - double **cut_dpd, **cut_dpdsq; - double **cut_slater, **cut_slatersq; + double **cut_dpd, **cut_dpdsq, **cut_slatersq; double **a0, **gamma; double **sigma; class RanMars *random; double cut_coul, qdist; double lamda; double g_ewald; - double **scale; virtual void allocate(); }; diff --git a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp index 8591a894b3..1acd95b30c 100644 --- a/src/GPU/pair_dpd_coul_slater_long_gpu.cpp +++ b/src/GPU/pair_dpd_coul_slater_long_gpu.cpp @@ -39,26 +39,32 @@ using namespace EwaldConst; // External functions from cuda library for atom decomposition -int dpd_coul_slater_long_gpu_init(const int ntypes, double **cutsq, double **host_a0, double **host_gamma, - double **host_sigma, double **host_cut_dpd, double **host_cut_dpdsq, double **host_cut_slatersq, - double **host_scale, double *special_lj, const int inum, - const int nall, const int max_nbors, const int maxspecial, const double cell_size, - int &gpu_mode, FILE *screen, double *host_special_coul, - const double qqrd2e, const double g_ewald, const double lamda); +int dpd_coul_slater_long_gpu_init(const int ntypes, double **cutsq, double **host_a0, + double **host_gamma, double **host_sigma, double **host_cut_dpd, + double **host_cut_dpdsq, double **host_cut_slatersq, + double *special_lj, const int inum, const int nall, + const int max_nbors, const int maxspecial, + const double cell_size, int &gpu_mode, FILE *screen, + double *host_special_coul, const double qqrd2e, + const double g_ewald, const double lamda); void dpd_coul_slater_long_gpu_clear(); -int **dpd_coul_slater_long_gpu_compute_n(const int ago, const int inum_full, const int nall, double **host_x, - int *host_type, double *sublo, double *subhi, tagint *tag, int **nspecial, - tagint **special, const bool eflag, const bool vflag, const bool eatom, - const bool vatom, int &host_start, int **ilist, int **jnum, - const double cpu_time, bool &success, double **host_v, - const double dtinvsqrt, const int seed, const int timestep, double *boxlo, - double *prd); -void dpd_coul_slater_long_gpu_compute(const int ago, const int inum_full, const int nall, double **host_x, - int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag, - const bool vflag, const bool eatom, const bool vatom, int &host_start, - const double cpu_time, bool &success, tagint *tag, double **host_v, - const double dtinvsqrt, const int seed, const int timestep, const int nlocal, - double *boxlo, double *prd); +int **dpd_coul_slater_long_gpu_compute_n(const int ago, const int inum_full, const int nall, + double **host_x, int *host_type, double *sublo, + double *subhi, tagint *tag, int **nspecial, + tagint **special, const bool eflag, const bool vflag, + const bool eatom, const bool vatom, int &host_start, + int **ilist, int **jnum, const double cpu_time, + bool &success, double **host_v, const double dtinvsqrt, + const int seed, const int timestep, double *boxlo, + double *prd); +void dpd_coul_slater_long_gpu_compute(const int ago, const int inum_full, const int nall, + double **host_x, int *host_type, int *ilist, int *numj, + int **firstneigh, const bool eflag, const bool vflag, + const bool eatom, const bool vatom, int &host_start, + const double cpu_time, bool &success, tagint *tag, + double **host_v, const double dtinvsqrt, const int seed, + const int timestep, const int nlocal, double *boxlo, + double *prd); void dpd_coul_slater_long_gpu_get_extra_data(double *host_q); @@ -316,8 +322,7 @@ void PairDPDCoulSlaterLongGPU::init_style() int mnf = 5e-2 * neighbor->oneatom; int success = dpd_coul_slater_long_gpu_init(atom->ntypes + 1, cutsq, a0, gamma, sigma, - cut_dpd, cut_dpdsq, cut_slatersq, scale, - force->special_lj, atom->nlocal, + cut_dpd, cut_dpdsq, cut_slatersq, force->special_lj, atom->nlocal, atom->nlocal + atom->nghost, mnf, maxspecial, cell_size, gpu_mode, screen, force->special_coul, force->qqrd2e, g_ewald, lamda); GPU_EXTRA::check_flag(success, error, world); @@ -444,7 +449,7 @@ void PairDPDCoulSlaterLongGPU::cpu_compute(int start, int inum, int eflag, int / t = 1.0 / (1.0 + EWALD_P*grij); erfc = t * (A1+t*(A2+t*(A3+t*(A4+t*A5)))) * expm2; slater_term = exp(-2*r/lamda)*(1 + (2*r/lamda*(1+r/lamda))); - prefactor = qqrd2e * scale[itype][jtype] * qtmp*q[j]/r; + prefactor = qqrd2e * qtmp*q[j]/r; forcecoul = prefactor * (erfc + EWALD_F*grij*expm2 - slater_term); if (factor_coul < 1.0) forcecoul -= (1.0-factor_coul)*prefactor*(1-slater_term); forcecoul *= r2inv; From 80556214e424751bf801d73d137b3566792f1165 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 13:57:10 -0400 Subject: [PATCH 288/313] remove unused class member --- src/EXTRA-PAIR/pair_coul_slater_long.cpp | 3 +-- src/EXTRA-PAIR/pair_coul_slater_long.h | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/EXTRA-PAIR/pair_coul_slater_long.cpp b/src/EXTRA-PAIR/pair_coul_slater_long.cpp index 65906f73b5..09926f6533 100644 --- a/src/EXTRA-PAIR/pair_coul_slater_long.cpp +++ b/src/EXTRA-PAIR/pair_coul_slater_long.cpp @@ -39,7 +39,6 @@ using namespace EwaldConst; PairCoulSlaterLong::PairCoulSlaterLong(LAMMPS *lmp) : Pair(lmp) { ewaldflag = pppmflag = 1; - qdist = 0.0; } /* ---------------------------------------------------------------------- */ @@ -232,7 +231,7 @@ void PairCoulSlaterLong::init_style() double PairCoulSlaterLong::init_one(int i, int j) { scale[j][i] = scale[i][j]; - return cut_coul+2.0*qdist; + return cut_coul; } /* ---------------------------------------------------------------------- diff --git a/src/EXTRA-PAIR/pair_coul_slater_long.h b/src/EXTRA-PAIR/pair_coul_slater_long.h index ef1742ece1..04e0bfe35b 100644 --- a/src/EXTRA-PAIR/pair_coul_slater_long.h +++ b/src/EXTRA-PAIR/pair_coul_slater_long.h @@ -41,9 +41,7 @@ class PairCoulSlaterLong : public Pair { void *extract(const char *, int &) override; protected: - double cut_coul, cut_coulsq, qdist; - double lamda; - double g_ewald; + double cut_coul, cut_coulsq, lamda, g_ewald; double **scale; virtual void allocate(); From ddec24308cb32da531d9d4859409ebac29813429 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 14:49:39 -0400 Subject: [PATCH 289/313] small docs and spelling corrections and updates --- doc/src/pair_dpd_coul_slater_long.rst | 6 ++++-- doc/src/run_style.rst | 2 +- doc/utils/sphinx-config/false_positives.txt | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/src/pair_dpd_coul_slater_long.rst b/doc/src/pair_dpd_coul_slater_long.rst index fde8aa7626..24e8a3b09f 100644 --- a/doc/src/pair_dpd_coul_slater_long.rst +++ b/doc/src/pair_dpd_coul_slater_long.rst @@ -37,13 +37,15 @@ Examples Description """"""""""" +.. versionadded:: TBD + Style *dpd/coul/slater/long* computes a force field for dissipative particle dynamics (DPD) following the exposition in :ref:`(Groot) ` with the addition of electrostatic interactions. The coulombic forces in mesoscopic models employ potentials without explicit excluded-volume interactions. The goal is to prevent artificial ionic pair formation by including a charge distribution in the Coulomb potential, following the formulation of -:ref:`(Melchor) `: +:ref:`(Melchor) `: The force on bead I due to bead J is given as a sum of 4 terms @@ -172,6 +174,6 @@ is_charged = no **(Groot)** Groot and Warren, J Chem Phys, 107, 4423-35 (1997). -.. _Melchor: +.. _Melchor1: **(Melchor)** Gonzalez-Melchor, Mayoral, Velazquez, and Alejandre, J Chem Phys, 125, 224107 (2006). diff --git a/doc/src/run_style.rst b/doc/src/run_style.rst index a36e2bf666..c06cef4296 100644 --- a/doc/src/run_style.rst +++ b/doc/src/run_style.rst @@ -331,7 +331,7 @@ REPLICA package. Correspondingly the *respa/omp* style is available only if the OPENMP package was included. See the :doc:`Build package ` page for more info. -Run style *verlet/split* It is not compatible with kspace styles from +Run style *verlet/split* is not compatible with kspace styles from the INTEL package and it is not compatible with any TIP4P styles. Whenever using rRESPA, the user should experiment with trade-offs in diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 536c7f7ae3..b189e16953 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -2962,6 +2962,7 @@ Priya proc Proc procs +proggrid progguide Prony ps From 8d69bd77eff5aa9269ec02c9e7b63cc417811567 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 19 Jun 2024 18:25:35 -0400 Subject: [PATCH 290/313] don't throw an error when reading QEq parameters from file --- src/REAXFF/fix_qeq_reaxff.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/REAXFF/fix_qeq_reaxff.cpp b/src/REAXFF/fix_qeq_reaxff.cpp index e6d5315823..7e935fd6cd 100644 --- a/src/REAXFF/fix_qeq_reaxff.cpp +++ b/src/REAXFF/fix_qeq_reaxff.cpp @@ -233,6 +233,8 @@ void FixQEqReaxFF::pertype_parameters(char *arg) return; } else if (utils::strmatch(arg,"^reax/c")) { error->all(FLERR, "Fix qeq/reaxff keyword 'reax/c' is obsolete; please use 'reaxff'"); + } else if (platform::file_is_readable(arg)) { + ; // arg is readable file. will read below } else { error->all(FLERR, "Unknown fix qeq/reaxff keyword {}", arg); } From c8dc135b8ffefe8df79520a0c8a0b7bdabbe813c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 09:22:32 -0400 Subject: [PATCH 291/313] update according to "include-what-you-use" principles --- src/CG-DNA/constants_oxdna.cpp | 2 ++ src/CG-DNA/constants_oxdna.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/CG-DNA/constants_oxdna.cpp b/src/CG-DNA/constants_oxdna.cpp index 0c5ff27149..fa7364cb85 100644 --- a/src/CG-DNA/constants_oxdna.cpp +++ b/src/CG-DNA/constants_oxdna.cpp @@ -17,6 +17,8 @@ #include "constants_oxdna.h" +#include "update.h" + namespace LAMMPS_NS { ConstantsOxdna::ConstantsOxdna(class LAMMPS *lmp) : Pointers(lmp) diff --git a/src/CG-DNA/constants_oxdna.h b/src/CG-DNA/constants_oxdna.h index 69defbc0ea..3ebcc47aff 100644 --- a/src/CG-DNA/constants_oxdna.h +++ b/src/CG-DNA/constants_oxdna.h @@ -14,7 +14,7 @@ #ifndef CONSTANTS_OXDNA_H #define CONSTANTS_OXDNA_H -#include "update.h" +#include "pointers.h" namespace LAMMPS_NS { From 001ac67b3b2b0c10458df1fa2db3cc02f11f6720 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 09:23:32 -0400 Subject: [PATCH 292/313] apply clang-format --- src/CG-DNA/constants_oxdna.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CG-DNA/constants_oxdna.cpp b/src/CG-DNA/constants_oxdna.cpp index fa7364cb85..3de3b9e57a 100644 --- a/src/CG-DNA/constants_oxdna.cpp +++ b/src/CG-DNA/constants_oxdna.cpp @@ -38,8 +38,8 @@ double ConstantsOxdna::d_cb = +0.4; // oxDNA 2 parameters double ConstantsOxdna::d_cs_x = -0.34; double ConstantsOxdna::d_cs_y = +0.3408; -double ConstantsOxdna::lambda_dh_one_prefactor = +0.3616455075438555; // = C1 -double ConstantsOxdna::qeff_dh_pf_one_prefactor = +0.08173808693529228; // = C2 +double ConstantsOxdna::lambda_dh_one_prefactor = +0.3616455075438555; // = C1 +double ConstantsOxdna::qeff_dh_pf_one_prefactor = +0.08173808693529228; // = C2 // oxRNA 2 parameters double ConstantsOxdna::d_cs_z = +0.2; double ConstantsOxdna::d_cst_x_3p = +0.4; @@ -57,8 +57,8 @@ void ConstantsOxdna::set_real_units() // oxDNA 2 parameters in real units d_cs_x = -2.89612; d_cs_y = +2.9029344; - lambda_dh_one_prefactor = +0.05624154892; // = C1 * 8.518 * sqrt(k_B/4.142e-20) - qeff_dh_pf_one_prefactor = +4.15079634587587; // = C2 * 5.961689060210325 * 8.518 + lambda_dh_one_prefactor = +0.05624154892; // = C1 * 8.518 * sqrt(k_B/4.142e-20) + qeff_dh_pf_one_prefactor = +4.15079634587587; // = C2 * 5.961689060210325 * 8.518 // oxRNA 2 parameters in real units // d_cs_x = -3.4072 = d_cs for RNA d_cs_z = +1.7036; From 00d7aa935ff843fdc1a4df256574c0dda995ee8f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 09:39:21 -0400 Subject: [PATCH 293/313] follow LAMMPS programming style more closely, silence compiler warnings --- src/CG-DNA/bond_oxdna_fene.cpp | 6 ++++-- src/CG-DNA/pair_oxdna2_coaxstk.cpp | 6 ++++-- src/CG-DNA/pair_oxdna2_dh.cpp | 6 ++++-- src/CG-DNA/pair_oxdna_coaxstk.cpp | 6 ++++-- src/CG-DNA/pair_oxdna_excv.cpp | 6 ++++-- src/CG-DNA/pair_oxdna_hbond.cpp | 6 ++++-- src/CG-DNA/pair_oxdna_stk.cpp | 6 ++++-- src/CG-DNA/pair_oxdna_xstk.cpp | 6 ++++-- src/CG-DNA/pair_oxrna2_stk.cpp | 6 ++++-- src/CG-DNA/pair_oxrna2_xstk.cpp | 6 ++++-- 10 files changed, 40 insertions(+), 20 deletions(-) diff --git a/src/CG-DNA/bond_oxdna_fene.cpp b/src/CG-DNA/bond_oxdna_fene.cpp index 623963e925..f5edee9a05 100644 --- a/src/CG-DNA/bond_oxdna_fene.cpp +++ b/src/CG-DNA/bond_oxdna_fene.cpp @@ -338,7 +338,7 @@ void BondOxdnaFene::coeff(int narg, char **arg) char * line; std::string iloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -354,7 +354,9 @@ void BondOxdnaFene::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || potential_name != "fene") error->one(FLERR, "No corresponding fene potential found in file {} for bond type {}", arg[1], arg[0]); + if ((iloc != arg[0]) || (potential_name != "fene")) + error->one(FLERR, "No corresponding fene potential found in file {} for bond type {}", + arg[1], arg[0]); } MPI_Bcast(&k_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna2_coaxstk.cpp b/src/CG-DNA/pair_oxdna2_coaxstk.cpp index bf8c8e545a..a0f7c9e7e5 100644 --- a/src/CG-DNA/pair_oxdna2_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna2_coaxstk.cpp @@ -618,7 +618,7 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -656,7 +656,9 @@ void PairOxdna2Coaxstk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA2 potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "coaxstk") error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "coaxstk")) + error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", + arg[2], arg[0], arg[1]); } MPI_Bcast(&k_cxst_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index 1073eab844..f0bdf195c1 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -312,7 +312,7 @@ void PairOxdna2Dh::coeff(int narg, char **arg) PotentialFileReader reader(lmp, arg[4], "oxdna potential", " (dh)"); char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -326,7 +326,9 @@ void PairOxdna2Dh::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA2 potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "dh") error->one(FLERR, "No corresponding dh potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "dh")) + error->one(FLERR, "No corresponding dh potential found in file {} for pair type {} {}", + arg[4], arg[0], arg[1]); } MPI_Bcast(&qeff_dh_one, 1, MPI_DOUBLE, 0, world); } else qeff_dh_one = utils::numeric(FLERR,arg[4],false,lmp); // else, it is effective charge diff --git a/src/CG-DNA/pair_oxdna_coaxstk.cpp b/src/CG-DNA/pair_oxdna_coaxstk.cpp index 3b955a7db4..d00e9fedf8 100644 --- a/src/CG-DNA/pair_oxdna_coaxstk.cpp +++ b/src/CG-DNA/pair_oxdna_coaxstk.cpp @@ -755,7 +755,7 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -795,7 +795,9 @@ void PairOxdnaCoaxstk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "coaxstk") error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "coaxstk")) + error->one(FLERR, "No corresponding coaxstk potential found in file {} for pair type {} {}", + arg[2], arg[0], arg[1]); } MPI_Bcast(&k_cxst_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_excv.cpp b/src/CG-DNA/pair_oxdna_excv.cpp index 0b8452a12b..3e92512f4d 100644 --- a/src/CG-DNA/pair_oxdna_excv.cpp +++ b/src/CG-DNA/pair_oxdna_excv.cpp @@ -543,7 +543,7 @@ void PairOxdnaExcv::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -572,7 +572,9 @@ void PairOxdnaExcv::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "excv") error->one(FLERR, "No corresponding excv potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "excv")) + error->one(FLERR, "No corresponding excv potential found in file {} for pair type {} {}", + arg[2], arg[0], arg[1]); } MPI_Bcast(&epsilon_ss_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_hbond.cpp b/src/CG-DNA/pair_oxdna_hbond.cpp index 0f7db91300..ba82aeef83 100644 --- a/src/CG-DNA/pair_oxdna_hbond.cpp +++ b/src/CG-DNA/pair_oxdna_hbond.cpp @@ -710,7 +710,7 @@ void PairOxdnaHbond::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -755,7 +755,9 @@ void PairOxdnaHbond::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "hbond") error->one(FLERR, "No corresponding hbond potential found in file {} for pair type {} {}", arg[3], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "hbond")) + error->one(FLERR, "No corresponding hbond potential found in file {} for pair type {} {}", + arg[3], arg[0], arg[1]); } MPI_Bcast(&epsilon_hb_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_stk.cpp b/src/CG-DNA/pair_oxdna_stk.cpp index d7f85cb274..301782d212 100644 --- a/src/CG-DNA/pair_oxdna_stk.cpp +++ b/src/CG-DNA/pair_oxdna_stk.cpp @@ -841,7 +841,7 @@ void PairOxdnaStk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -875,7 +875,9 @@ void PairOxdnaStk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "stk") error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "stk")) + error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", + arg[4], arg[0], arg[1]); } MPI_Bcast(&a_st_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxdna_xstk.cpp b/src/CG-DNA/pair_oxdna_xstk.cpp index a634433fb1..646c0f7216 100644 --- a/src/CG-DNA/pair_oxdna_xstk.cpp +++ b/src/CG-DNA/pair_oxdna_xstk.cpp @@ -700,7 +700,7 @@ void PairOxdnaXstk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -743,7 +743,9 @@ void PairOxdnaXstk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "xstk") error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "xstk")) + error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", + arg[2], arg[0], arg[1]); } MPI_Bcast(&k_xst_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxrna2_stk.cpp b/src/CG-DNA/pair_oxrna2_stk.cpp index 630b8f3c5b..423235b46a 100644 --- a/src/CG-DNA/pair_oxrna2_stk.cpp +++ b/src/CG-DNA/pair_oxrna2_stk.cpp @@ -918,7 +918,7 @@ void PairOxrna2Stk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -957,7 +957,9 @@ void PairOxrna2Stk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "stk") error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", arg[4], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "stk")) + error->one(FLERR, "No corresponding stk potential found in file {} for pair type {} {}", + arg[4], arg[0], arg[1]); } MPI_Bcast(&a_st_one, 1, MPI_DOUBLE, 0, world); diff --git a/src/CG-DNA/pair_oxrna2_xstk.cpp b/src/CG-DNA/pair_oxrna2_xstk.cpp index 7c551f4e67..ee7ca141f8 100644 --- a/src/CG-DNA/pair_oxrna2_xstk.cpp +++ b/src/CG-DNA/pair_oxrna2_xstk.cpp @@ -643,7 +643,7 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) char * line; std::string iloc, jloc, potential_name; - while(line = reader.next_line()) { + while ((line = reader.next_line())) { try { ValueTokenizer values(line); iloc = values.next_string(); @@ -682,7 +682,9 @@ void PairOxrna2Xstk::coeff(int narg, char **arg) error->one(FLERR, "Problem parsing oxDNA potential file: {}", e.what()); } } - if (iloc != arg[0] || jloc != arg[1] || potential_name != "xstk") error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", arg[2], arg[0], arg[1]); + if ((iloc != arg[0]) || (jloc != arg[1]) || (potential_name != "xstk")) + error->one(FLERR, "No corresponding xstk potential found in file {} for pair type {} {}", + arg[2], arg[0], arg[1]); } MPI_Bcast(&k_xst_one, 1, MPI_DOUBLE, 0, world); From 734fdf4a461d32932692dc5b7dda517e9a46da46 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 14:33:26 -0400 Subject: [PATCH 294/313] rename CG-DNA potential files --- doc/src/bond_oxdna.rst | 100 +++++----- doc/src/pair_oxdna.rst | 161 +++++++++------- doc/src/pair_oxdna2.rst | 170 ++++++++++------- doc/src/pair_oxrna2.rst | 180 +++++++++++------- .../lj_units/oxDNA/potential_file/in.duplex1 | 16 +- .../oxDNA/potential_file/oxdna_lj.cgdna | 1 + .../lj_units/oxDNA2/potential_file/in.duplex1 | 24 +-- .../oxDNA2/potential_file/oxdna2_lj.cgdna | 1 + .../lj_units/oxRNA2/potential_file/in.duplex2 | 26 +-- .../oxRNA2/potential_file/oxrna2_lj.cgdna | 1 + .../oxDNA/potential_file/in.duplex1 | 22 +-- .../oxDNA/potential_file/oxdna_real.cgdna | 1 + .../oxDNA2/potential_file/in.duplex1 | 24 +-- .../oxDNA2/potential_file/oxdna2_real.cgdna | 1 + .../oxRNA2/potential_file/in.duplex2 | 26 +-- .../oxRNA2/potential_file/oxrna2_real.cgdna | 1 + potentials/README | 1 + potentials/{oxdna2.lj => oxdna2_lj.cgdna} | 0 potentials/{oxdna2.real => oxdna2_real.cgdna} | 0 potentials/{oxdna.lj => oxdna_lj.cgdna} | 0 potentials/{oxdna.real => oxdna_real.cgdna} | 0 potentials/{oxrna2.lj => oxrna2_lj.cgdna} | 0 potentials/{oxrna2.real => oxrna2_real.cgdna} | 0 purge-workflows.py | 22 +++ src/CG-DNA/pair_oxdna2_dh.cpp | 2 +- 25 files changed, 461 insertions(+), 319 deletions(-) create mode 120000 examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/oxdna_lj.cgdna create mode 120000 examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/oxdna2_lj.cgdna create mode 120000 examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/oxrna2_lj.cgdna create mode 120000 examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/oxdna_real.cgdna create mode 120000 examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/oxdna2_real.cgdna create mode 120000 examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/oxrna2_real.cgdna rename potentials/{oxdna2.lj => oxdna2_lj.cgdna} (100%) rename potentials/{oxdna2.real => oxdna2_real.cgdna} (100%) rename potentials/{oxdna.lj => oxdna_lj.cgdna} (100%) rename potentials/{oxdna.real => oxdna_real.cgdna} (100%) rename potentials/{oxrna2.lj => oxrna2_lj.cgdna} (100%) rename potentials/{oxrna2.real => oxrna2_real.cgdna} (100%) create mode 100644 purge-workflows.py diff --git a/doc/src/bond_oxdna.rst b/doc/src/bond_oxdna.rst index c6c11ba095..f395634b0b 100644 --- a/doc/src/bond_oxdna.rst +++ b/doc/src/bond_oxdna.rst @@ -38,7 +38,7 @@ Examples bond_coeff * 2.0 0.25 0.76107 bond_style oxdna/fene - bond_coeff * oxdna.lj + bond_coeff * oxdna_lj.cgdna # Real units bond_style oxdna/fene @@ -51,14 +51,17 @@ Examples bond_coeff * 11.92337812042065 2.1295 6.482800913 bond_style oxrna2/fene - bond_coeff * oxrna2.real + bond_coeff * oxrna2_real.cgdna .. note:: - The coefficients in the above examples have to be kept fixed and cannot - be changed without reparameterizing the entire model. They are provided in forms - compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name - of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. + + The coefficients in the above examples have to be kept fixed and + cannot be changed without reparameterizing the entire model. They are + provided in forms compatible with both *units lj* and *units real* + (see documentation of :doc:`units `). These can also be read + from a potential file with correct unit style by specifying the name + of the file. Several potential files for each unit style are included + in the ``potentials`` directory of the LAMMPS distribution. Description """"""""""" @@ -70,15 +73,14 @@ The *oxdna/fene*, *oxdna2/fene*, and *oxrna2/fene* bond styles use the potential E = - \frac{\epsilon}{2} \ln \left[ 1 - \left(\frac{r-r_0}{\Delta}\right)^2\right] to define a modified finite extensible nonlinear elastic (FENE) -potential :ref:`(Ouldridge) ` to model the connectivity of the -phosphate backbone in the oxDNA/oxRNA force field for coarse-grained +potential :ref:`(Ouldridge) ` to model the connectivity of +the phosphate backbone in the oxDNA/oxRNA force field for coarse-grained modelling of DNA/RNA. The following coefficients must be defined for the bond type via the :doc:`bond_coeff ` command as given in the above example, or -in the data file or restart files read by the -:doc:`read_data ` or :doc:`read_restart ` -commands: +in the data file or restart files read by the :doc:`read_data +` or :doc:`read_restart ` commands: * :math:`\epsilon` (energy) * :math:`\Delta` (distance) @@ -86,39 +88,40 @@ commands: .. note:: - The oxDNA bond style has to be used together with the - corresponding oxDNA pair styles for excluded volume interaction - *oxdna/excv* , stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and - coaxial stacking interaction *oxdna/coaxstk* as well as - hydrogen-bonding interaction *oxdna/hbond* (see also documentation of - :doc:`pair_style oxdna/excv `). For the oxDNA2 - :ref:`(Snodin) ` bond style the analogous pair styles - *oxdna2/excv* , *oxdna2/stk* , *oxdna2/xstk* , *oxdna2/coaxstk* , - *oxdna2/hbond* and an additional Debye-Hueckel pair style - *oxdna2/dh* have to be defined. The same applies to the oxRNA2 - :ref:`(Sulc1) ` styles. + The oxDNA bond style has to be used together with the corresponding + oxDNA pair styles for excluded volume interaction *oxdna/excv* , + stacking *oxdna/stk* , cross-stacking *oxdna/xstk* and coaxial + stacking interaction *oxdna/coaxstk* as well as hydrogen-bonding + interaction *oxdna/hbond* (see also documentation of :doc:`pair_style + oxdna/excv `). For the oxDNA2 :ref:`(Snodin) ` + bond style the analogous pair styles *oxdna2/excv* , *oxdna2/stk* , + *oxdna2/xstk* , *oxdna2/coaxstk* , *oxdna2/hbond* and an additional + Debye-Hueckel pair style *oxdna2/dh* have to be defined. The same + applies to the oxRNA2 :ref:`(Sulc1) ` styles. .. note:: - This bond style has to be used with the *atom_style hybrid bond ellipsoid oxdna* - (see documentation of :doc:`atom_style `). The *atom_style oxdna* - stores the 3'-to-5' polarity of the nucleotide strand, which is set through - the bond topology in the data file. The first (second) atom in a bond definition - is understood to point towards the 3'-end (5'-end) of the strand. + This bond style has to be used with the *atom_style hybrid bond + ellipsoid oxdna* (see documentation of :doc:`atom_style + `). The *atom_style oxdna* stores the 3'-to-5' polarity + of the nucleotide strand, which is set through the bond topology in + the data file. The first (second) atom in a bond definition is + understood to point towards the 3'-end (5'-end) of the strand. .. warning:: - If data files are produced with :doc:`write_data `, then the - :doc:`newton ` command should be set to *newton on* or *newton off on*. - Otherwise the data files will not have the same 3'-to-5' polarity as the - initial data file. This limitation does not apply to binary restart files - produced with :doc:`write_restart `. + If data files are produced with :doc:`write_data `, then + the :doc:`newton ` command should be set to *newton on* or + *newton off on*. Otherwise the data files will not have the same + 3'-to-5' polarity as the initial data file. This limitation does not + apply to binary restart files produced with :doc:`write_restart + `. Example input and data files for DNA and RNA duplexes can be found in -examples/PACKAGES/cgdna/examples/oxDNA/ , /oxDNA2/ and /oxRNA2/. A simple python -setup tool which creates single straight or helical DNA strands, DNA/RNA -duplexes or arrays of DNA/RNA duplexes can be found in -examples/PACKAGES/cgdna/util/. +``examples/PACKAGES/cgdna/examples/oxDNA/`, `.../oxDNA2/`` and +``.../oxRNA2/``. A simple python setup tool which creates single +straight or helical DNA strands, DNA/RNA duplexes or arrays of DNA/RNA +duplexes can be found in ``examples/PACKAGES/cgdna/util/``. Please cite :ref:`(Henrich) ` in any publication that uses this implementation. An updated documentation that contains general information @@ -138,22 +141,33 @@ and for sequence-specific hydrogen-bonding and stacking interactions Potential file reading """""""""""""""""""""" -For each style oxdna, oxdna2 and oxrna2, the first parameter argument can be a filename, and if it is, no further arguments should be supplied. Therefore the following command: +For each style oxdna, oxdna2 and oxrna2, the first parameter argument +can be a filename, and if it is, no further arguments should be +supplied. Therefore the following command: .. code-block:: LAMMPS bond_style oxdna/fene - bond_coeff * oxdna.lj + bond_coeff * oxdna_lj.cgdna -will be interpreted as a request to read the (FENE) potential :ref:`(Ouldridge) ` parameters from the file with the given name. -The file can define multiple potential parameters for both bonded and pair interactions, but for the above bonded interactions there must exist in the file a line of the form: +will be interpreted as a request to read the (FENE) potential +:ref:`(Ouldridge) ` parameters from the file with the given +name. The file can define multiple potential parameters for both bonded +and pair interactions, but for the above bonded interactions there must +exist in the file a line of the form: .. code-block:: LAMMPS * fene epsilon delta r0 -There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +There are sample potential files for each unit style in the +``potentials`` directory of the LAMMPS distribution. The potential file +unit system must align with the units defined via the :doc:`units +` command. For conversion between different *LJ* and *real* unit +systems for oxDNA, the python tool *lj2real.py* located in the +``examples/PACKAGES/cgdna/util/`` directory can be used. This tool +assumes similar file structure to the examples found in +``examples/PACKAGES/cgdna/examples/``. ---------- diff --git a/doc/src/pair_oxdna.rst b/doc/src/pair_oxdna.rst index f5dc0fd94e..6d78bc531b 100644 --- a/doc/src/pair_oxdna.rst +++ b/doc/src/pair_oxdna.rst @@ -60,13 +60,13 @@ Examples pair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65 pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk - pair_coeff * * oxdna/excv oxdna.lj - pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna.lj - pair_coeff * * oxdna/hbond seqav oxdna.lj - pair_coeff 1 4 oxdna/hbond seqav oxdna.lj - pair_coeff 2 3 oxdna/hbond seqav oxdna.lj - pair_coeff * * oxdna/xstk oxdna.lj - pair_coeff * * oxdna/coaxstk oxdna.lj + pair_coeff * * oxdna/excv oxdna_lj.cgdna + pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna_lj.cgdna + pair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff * * oxdna/xstk oxdna_lj.cgdna + pair_coeff * * oxdna/coaxstk oxdna_lj.cgdna # Real units pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk @@ -79,68 +79,85 @@ Examples pair_coeff * * oxdna/coaxstk 3.77965257404268 3.4072 5.1108 1.87396 4.94044 2.0 2.541592654 0.65 1.3 0.0 0.8 0.9 0.0 0.95 0.9 0.0 0.95 2.0 -0.65 2.0 -0.65 pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk - pair_coeff * * oxdna/excv oxdna.real - pair_coeff * * oxdna/stk seqav 300.0 8.01727944817084 0.005279604 oxdna.real - pair_coeff * * oxdna/hbond seqav oxdna.real - pair_coeff 1 4 oxdna/hbond seqav oxdna.real - pair_coeff 2 3 oxdna/hbond seqav oxdna.real - pair_coeff * * oxdna/xstk oxdna.real - pair_coeff * * oxdna/coaxstk oxdna.real + pair_coeff * * oxdna/excv oxdna_real.cgdna + pair_coeff * * oxdna/stk seqav 300.0 8.01727944817084 0.005279604 oxdna_real.cgdna + pair_coeff * * oxdna/hbond seqav oxdna_real.cgdna + pair_coeff 1 4 oxdna/hbond seqav oxdna_real.cgdna + pair_coeff 2 3 oxdna/hbond seqav oxdna_real.cgdna + pair_coeff * * oxdna/xstk oxdna_real.cgdna + pair_coeff * * oxdna/coaxstk oxdna_real.cgdna .. note:: - The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. + The coefficients in the above examples are provided in forms + compatible with both *units lj* and *units real* (see documentation + of :doc:`units `). These can also be read from a potential + file with correct unit style by specifying the name of the + file. Several potential files for each unit style are included in the + ``potentials`` directory of the LAMMPS distribution. Description """"""""""" -The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA force field -for coarse-grained modelling of DNA. The effective interaction between the nucleotides consists of potentials for the -excluded volume interaction *oxdna/excv*, the stacking *oxdna/stk*, cross-stacking *oxdna/xstk* -and coaxial stacking interaction *oxdna/coaxstk* as well -as the hydrogen-bonding interaction *oxdna/hbond* between complementary pairs of nucleotides on -opposite strands. Average sequence or sequence-dependent stacking and base-pairing strengths -are supported :ref:`(Sulc) `. Quasi-unique base-pairing between nucleotides can be achieved by using -more complementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. -This prevents the hybridization of in principle complementary bases within Ntypes/4 bases -up and down along the backbone. +The *oxdna* pair styles compute the pairwise-additive parts of the oxDNA +force field for coarse-grained modelling of DNA. The effective +interaction between the nucleotides consists of potentials for the +excluded volume interaction *oxdna/excv*, the stacking *oxdna/stk*, +cross-stacking *oxdna/xstk* and coaxial stacking interaction +*oxdna/coaxstk* as well as the hydrogen-bonding interaction +*oxdna/hbond* between complementary pairs of nucleotides on opposite +strands. Average sequence or sequence-dependent stacking and +base-pairing strengths are supported :ref:`(Sulc) `. Quasi-unique +base-pairing between nucleotides can be achieved by using more +complementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11, +13-16 and 14-15, etc. This prevents the hybridization of in principle +complementary bases within Ntypes/4 bases up and down along the +backbone. -The exact functional form of the pair styles is rather complex. -The individual potentials consist of products of modulation factors, -which themselves are constructed from a number of more basic potentials -(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic smoothing and modulation terms. -We refer to :ref:`(Ouldridge-DPhil) ` and :ref:`(Ouldridge) ` -for a detailed description of the oxDNA force field. +The exact functional form of the pair styles is rather complex. The +individual potentials consist of products of modulation factors, which +themselves are constructed from a number of more basic potentials +(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic +smoothing and modulation terms. We refer to :ref:`(Ouldridge-DPhil) +` and :ref:`(Ouldridge) ` for a detailed +description of the oxDNA force field. .. note:: - These pair styles have to be used together with the related oxDNA bond style - *oxdna/fene* for the connectivity of the phosphate backbone (see also documentation of - :doc:`bond_style oxdna/fene `). Most of the coefficients - in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 and corresponding *real unit* equivalents in the above examples) - and the first coefficient after *oxdna/hbond* (seq=seqdep in the above example). - When using a Langevin thermostat, e.g. through :doc:`fix langevin ` - or :doc:`fix nve/dotc/langevin ` - the temperature coefficients have to be matched to the one used in the fix. + These pair styles have to be used together with the related oxDNA + bond style *oxdna/fene* for the connectivity of the phosphate + backbone (see also documentation of :doc:`bond_style oxdna/fene + `). Most of the coefficients in the above example have to + be kept fixed and cannot be changed without reparameterizing the + entire model. Exceptions are the first four coefficients after + *oxdna/stk* (seq=seqdep, T=0.1, xi=1.3448 and kappa=2.6568 and + corresponding *real unit* equivalents in the above examples) and the + first coefficient after *oxdna/hbond* (seq=seqdep in the above + example). When using a Langevin thermostat, e.g. through :doc:`fix + langevin ` or :doc:`fix nve/dotc/langevin + ` the temperature coefficients have to be + matched to the one used in the fix. .. note:: - These pair styles have to be used with the *atom_style hybrid bond ellipsoid oxdna* - (see documentation of :doc:`atom_style `). The *atom_style oxdna* - stores the 3'-to-5' polarity of the nucleotide strand, which is set through - the bond topology in the data file. The first (second) atom in a bond definition - is understood to point towards the 3'-end (5'-end) of the strand. + These pair styles have to be used with the *atom_style hybrid bond + ellipsoid oxdna* (see documentation of :doc:`atom_style + `). The *atom_style oxdna* stores the 3'-to-5' polarity + of the nucleotide strand, which is set through the bond topology in + the data file. The first (second) atom in a bond definition is + understood to point towards the 3'-end (5'-end) of the strand. -Example input and data files for DNA duplexes can be found in examples/PACKAGES/cgdna/examples/oxDNA/ and /oxDNA2/. -A simple python setup tool which creates single straight or helical DNA strands, -DNA duplexes or arrays of DNA duplexes can be found in examples/PACKAGES/cgdna/util/. +Example input and data files for DNA duplexes can be found in +``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. A +simple python setup tool which creates single straight or helical DNA +strands, DNA duplexes or arrays of DNA duplexes can be found in +``examples/PACKAGES/cgdna/util/``. Please cite :ref:`(Henrich) ` in any publication that uses -this implementation. An updated documentation that contains general information -on the model, its implementation and performance as well as the structure of -the data and input file can be found `here `_. +this implementation. An updated documentation that contains general +information on the model, its implementation and performance as well as +the structure of the data and input file can be found `here +`_. Please cite also the relevant oxDNA publications :ref:`(Ouldridge) `, @@ -152,35 +169,51 @@ and :ref:`(Sulc) `. Potential file reading """""""""""""""""""""" -For each pair style above the first non-modifiable argument can be a filename, and if it is, no further arguments should be supplied. Therefore the following command: +For each pair style above the first non-modifiable argument can be a +filename, and if it is, no further arguments should be +supplied. Therefore the following command: .. code-block:: LAMMPS - pair_coeff 1 4 oxdna/hbond seqav oxdna.lj + pair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: +will be interpreted as a request to read the corresponding hydrogen +bonding potential parameters from the file with the given name. The file +can define multiple potential parameters for both bonded and pair +interactions, but for the example pair interaction above there must +exist in the file a line of the form: .. code-block:: LAMMPS 1 4 hbond -If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: +If potential customization is required, the potential file reading can +be mixed with the manual specification of the potential parameters. For +example, the following command: .. code-block:: LAMMPS pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk - pair_coeff * * oxdna/excv oxdna.lj + pair_coeff * * oxdna/excv oxdna_lj.cgdna pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 6.0 0.4 0.9 0.32 0.75 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 0.65 2.0 0.65 - pair_coeff * * oxdna/hbond seqav oxdna.lj - pair_coeff 1 4 oxdna/hbond seqav oxdna.lj - pair_coeff 2 3 oxdna/hbond seqav oxdna.lj - pair_coeff * * oxdna/xstk oxdna.lj + pair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna + pair_coeff * * oxdna/xstk oxdna_lj.cgdna pair_coeff * * oxdna/coaxstk 46.0 0.4 0.6 0.22 0.58 2.0 2.541592653589793 0.65 1.3 0 0.8 0.9 0 0.95 0.9 0 0.95 2.0 -0.65 2.0 -0.65 -will read the stacking and coaxial stacking potential parameters from the manual specification and all others from the potential file *oxdna.lj*. +will read the stacking and coaxial stacking potential parameters from +the manual specification and all others from the potential file +*oxdna_lj.cgdna*. -There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +There are sample potential files for each unit style in the +``potentials`` directory of the LAMMPS distribution. The potential file +unit system must align with the units defined via the :doc:`units +` command. For conversion between different *LJ* and *real* unit +systems for oxDNA, the python tool *lj2real.py* located in the +``examples/PACKAGES/cgdna/util/`` directory can be used. This tool +assumes similar file structure to the examples found in +``examples/PACKAGES/cgdna/examples/``. ---------- diff --git a/doc/src/pair_oxdna2.rst b/doc/src/pair_oxdna2.rst index 1c7bd2ae8f..c91f991a71 100644 --- a/doc/src/pair_oxdna2.rst +++ b/doc/src/pair_oxdna2.rst @@ -69,14 +69,14 @@ Examples pair_coeff * * oxdna2/dh 0.1 0.5 0.815 pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh - pair_coeff * * oxdna2/excv oxdna2.lj - pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj - pair_coeff * * oxdna2/hbond seqdep oxdna2.lj - pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj - pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj - pair_coeff * * oxdna2/xstk oxdna2.lj - pair_coeff * * oxdna2/coaxstk oxdna2.lj - pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2.lj + pair_coeff * * oxdna2/excv oxdna2_lj.cgdna + pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna + pair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff * * oxdna2/xstk oxdna2_lj.cgdna + pair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna + pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2_lj.cgdna # Real units pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh @@ -90,69 +90,88 @@ Examples pair_coeff * * oxdna2/dh 300.0 0.5 0.815 pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh - pair_coeff * * oxdna2/excv oxdna2.real - pair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 oxdna2.real - pair_coeff * * oxdna2/hbond seqdep oxdna2.real - pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.real - pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.real - pair_coeff * * oxdna2/xstk oxdna2.real - pair_coeff * * oxdna2/coaxstk oxdna2.real - pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2.real + pair_coeff * * oxdna2/excv oxdna2_real.cgdna + pair_coeff * * oxdna2/stk seqdep 300.0 8.06199211612242 0.005309213 oxdna2_real.cgdna + pair_coeff * * oxdna2/hbond seqdep oxdna2_real.cgdna + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2_real.cgdna + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2_real.cgdna + pair_coeff * * oxdna2/xstk oxdna2_real.cgdna + pair_coeff * * oxdna2/coaxstk oxdna2_real.cgdna + pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2_real.cgdna .. note:: - The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. + The coefficients in the above examples are provided in forms + compatible with both *units lj* and *units real* (see documentation + of :doc:`units `). These can also be read from a potential + file with correct unit style by specifying the name of the + file. Several potential files for each unit style are included in the + ``potentials`` directory of the LAMMPS distribution. Description """"""""""" -The *oxdna2* pair styles compute the pairwise-additive parts of the oxDNA force field -for coarse-grained modelling of DNA. The effective interaction between the nucleotides consists of potentials for the -excluded volume interaction *oxdna2/excv*, the stacking *oxdna2/stk*, cross-stacking *oxdna2/xstk* -and coaxial stacking interaction *oxdna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxdna2/dh* -as well as the hydrogen-bonding interaction *oxdna2/hbond* between complementary pairs of nucleotides on -opposite strands. Average sequence or sequence-dependent stacking and base-pairing strengths -are supported :ref:`(Sulc) `. Quasi-unique base-pairing between nucleotides can be achieved by using -more complementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. -This prevents the hybridization of in principle complementary bases within Ntypes/4 bases +The *oxdna2* pair styles compute the pairwise-additive parts of the +oxDNA force field for coarse-grained modelling of DNA. The effective +interaction between the nucleotides consists of potentials for the +excluded volume interaction *oxdna2/excv*, the stacking *oxdna2/stk*, +cross-stacking *oxdna2/xstk* and coaxial stacking interaction +*oxdna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxdna2/dh* as +well as the hydrogen-bonding interaction *oxdna2/hbond* between +complementary pairs of nucleotides on opposite strands. Average sequence +or sequence-dependent stacking and base-pairing strengths are supported +:ref:`(Sulc) `. Quasi-unique base-pairing between nucleotides can +be achieved by using more complementary pairs of atom types like 5-8 and +6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents the +hybridization of in principle complementary bases within Ntypes/4 bases up and down along the backbone. -The exact functional form of the pair styles is rather complex. -The individual potentials consist of products of modulation factors, -which themselves are constructed from a number of more basic potentials -(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic smoothing and modulation terms. -We refer to :ref:`(Snodin) ` and the original oxDNA publications :ref:`(Ouldridge-DPhil) ` -and :ref:`(Ouldridge) ` for a detailed description of the oxDNA2 force field. +The exact functional form of the pair styles is rather complex. The +individual potentials consist of products of modulation factors, which +themselves are constructed from a number of more basic potentials +(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic +smoothing and modulation terms. We refer to :ref:`(Snodin) ` +and the original oxDNA publications :ref:`(Ouldridge-DPhil) +` and :ref:`(Ouldridge) ` for a detailed +description of the oxDNA2 force field. .. note:: - These pair styles have to be used together with the related oxDNA2 bond style - *oxdna2/fene* for the connectivity of the phosphate backbone (see also documentation of - :doc:`bond_style oxdna2/fene `). Most of the coefficients - in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 and corresponding *real unit* equivalents in the above examples). - the first coefficient after *oxdna2/hbond* (seq=seqdep in the above example) and the three coefficients - after *oxdna2/dh* (T=0.1, rhos=0.5, qeff=0.815 in the above example). When using a Langevin thermostat - e.g. through :doc:`fix langevin ` or :doc:`fix nve/dotc/langevin ` - the temperature coefficients have to be matched to the one used in the fix. + These pair styles have to be used together with the related oxDNA2 + bond style *oxdna2/fene* for the connectivity of the phosphate + backbone (see also documentation of :doc:`bond_style oxdna2/fene + `). Most of the coefficients in the above example have to + be kept fixed and cannot be changed without reparameterizing the + entire model. Exceptions are the first four coefficients after + *oxdna2/stk* (seq=seqdep, T=0.1, xi=1.3523 and kappa=2.6717 and + corresponding *real unit* equivalents in the above examples). the + first coefficient after *oxdna2/hbond* (seq=seqdep in the above + example) and the three coefficients after *oxdna2/dh* (T=0.1, + rhos=0.5, qeff=0.815 in the above example). When using a Langevin + thermostat e.g. through :doc:`fix langevin ` or + :doc:`fix nve/dotc/langevin ` the temperature + coefficients have to be matched to the one used in the fix. .. note:: - These pair styles have to be used with the *atom_style hybrid bond ellipsoid oxdna* - (see documentation of :doc:`atom_style `). The *atom_style oxdna* - stores the 3'-to-5' polarity of the nucleotide strand, which is set through - the bond topology in the data file. The first (second) atom in a bond definition - is understood to point towards the 3'-end (5'-end) of the strand. + These pair styles have to be used with the *atom_style hybrid bond + ellipsoid oxdna* (see documentation of :doc:`atom_style + `). The *atom_style oxdna* stores the 3'-to-5' polarity + of the nucleotide strand, which is set through the bond topology in + the data file. The first (second) atom in a bond definition is + understood to point towards the 3'-end (5'-end) of the strand. -Example input and data files for DNA duplexes can be found in examples/PACKAGES/cgdna/examples/oxDNA/ and /oxDNA2/. -A simple python setup tool which creates single straight or helical DNA strands, -DNA duplexes or arrays of DNA duplexes can be found in examples/PACKAGES/cgdna/util/. +Example input and data files for DNA duplexes can be found in +``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. A +simple python setup tool which creates single straight or helical DNA +strands, DNA duplexes or arrays of DNA duplexes can be found in +``examples/PACKAGES/cgdna/util/``. Please cite :ref:`(Henrich) ` in any publication that uses -this implementation. An updated documentation that contains general information -on the model, its implementation and performance as well as the structure of -the data and input file can be found `here `_. +this implementation. An updated documentation that contains general +information on the model, its implementation and performance as well as +the structure of the data and input file can be found `here +`_. Please cite also the relevant oxDNA2 publications :ref:`(Snodin) ` and :ref:`(Sulc) `. @@ -162,38 +181,53 @@ Please cite also the relevant oxDNA2 publications Potential file reading """""""""""""""""""""" -For each pair style above the first non-modifiable argument can be a filename (with exception of Debye-Hueckel, for which the effective charge argument can be a filename), and if it is, no further arguments should be supplied. -Therefore the following command: +For each pair style above the first non-modifiable argument can be a +filename (with exception of Debye-Hueckel, for which the effective +charge argument can be a filename), and if it is, no further arguments +should be supplied. Therefore the following command: .. code-block:: LAMMPS - pair_coeff 1 4 oxdna2/hbond seqdep oxdna.real + pair_coeff 1 4 oxdna2/hbond seqdep oxdna_real.cgdna -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. -The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: +will be interpreted as a request to read the corresponding hydrogen +bonding potential parameters from the file with the given name. The +file can define multiple potential parameters for both bonded and pair +interactions, but for the example pair interaction above there must +exist in the file a line of the form: .. code-block:: LAMMPS 1 4 hbond -If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: +If potential customization is required, the potential file reading can +be mixed with the manual specification of the potential parameters. For +example, the following command: .. code-block:: LAMMPS pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh pair_coeff * * oxdna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 - pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj - pair_coeff * * oxdna2/hbond seqdep oxdna2.lj - pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj - pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj - pair_coeff * * oxdna2/xstk oxdna2.lj - pair_coeff * * oxdna2/coaxstk oxdna2.lj + pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna + pair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna + pair_coeff * * oxdna2/xstk oxdna2_lj.cgdna + pair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna pair_coeff * * oxdna2/dh 0.1 0.5 0.815 -will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxdna2.lj*. +will read the excluded volume and Debye-Hueckel effective charge *qeff* +parameters from the manual specification and all others from the +potential file *oxdna2_lj.cgdna*. -There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +There are sample potential files for each unit style in the ``potentials`` +directory of the LAMMPS distribution. The potential file unit system +must align with the units defined via the :doc:`units ` +command. For conversion between different *LJ* and *real* unit systems +for oxDNA, the python tool *lj2real.py* located in the +``examples/PACKAGES/cgdna/util/`` directory can be used. This tool assumes +similar file structure to the examples found in +``examples/PACKAGES/cgdna/examples/``. ---------- diff --git a/doc/src/pair_oxrna2.rst b/doc/src/pair_oxrna2.rst index 60bbbd6fef..6fd99bc33d 100644 --- a/doc/src/pair_oxrna2.rst +++ b/doc/src/pair_oxrna2.rst @@ -70,15 +70,15 @@ Examples pair_coeff * * oxrna2/dh 0.1 0.5 1.02455 pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh - pair_coeff * * oxrna2/excv oxrna2.lj - pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj - pair_coeff * * oxrna2/hbond seqdep oxrna2.lj - pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj - pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj - pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj - pair_coeff * * oxrna2/xstk oxrna2.lj - pair_coeff * * oxrna2/coaxstk oxrna2.lj - pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2.lj + pair_coeff * * oxrna2/excv oxrna2_lj.cgdna + pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna + pair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff * * oxrna2/xstk oxrna2_lj.cgdna + pair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna + pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2_lj.cgdna # Real units pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh @@ -93,112 +93,144 @@ Examples pair_coeff * * oxrna2/dh 300.0 0.5 1.02455 pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh - pair_coeff * * oxrna2/excv oxrna2.real - pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2.real - pair_coeff * * oxrna2/hbond seqdep oxrna2.real - pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.real - pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.real - pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.real - pair_coeff * * oxrna2/xstk oxrna2.real - pair_coeff * * oxrna2/coaxstk oxrna2.real - pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2.real + pair_coeff * * oxrna2/excv oxrna2_real.cgdna + pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2_real.cgdna + pair_coeff * * oxrna2/hbond seqdep oxrna2_real.cgdna + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2_real.cgdna + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2_real.cgdna + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_real.cgdna + pair_coeff * * oxrna2/xstk oxrna2_real.cgdna + pair_coeff * * oxrna2/coaxstk oxrna2_real.cgdna + pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2_real.cgdna .. note:: - The coefficients in the above examples are provided in forms compatible with both *units lj* and *units real* (see documentation of :doc:`units `). - These can also be read from a potential file with correct unit style by specifying the name of the file. Several potential files for each unit style are included in the /potentials/ directory of the LAMMPS distribution. + The coefficients in the above examples are provided in forms + compatible with both *units lj* and *units real* (see documentation + of :doc:`units `). These can also be read from a potential + file with correct unit style by specifying the name of the + file. Several potential files for each unit style are included in the + ``potentials`` directory of the LAMMPS distribution. Description """"""""""" -The *oxrna2* pair styles compute the pairwise-additive parts of the oxDNA force field -for coarse-grained modelling of RNA. The effective interaction between the nucleotides consists of potentials for the -excluded volume interaction *oxrna2/excv*, the stacking *oxrna2/stk*, cross-stacking *oxrna2/xstk* -and coaxial stacking interaction *oxrna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxrna2/dh* -as well as the hydrogen-bonding interaction *oxrna2/hbond* between complementary pairs of nucleotides on -opposite strands. Average sequence or sequence-dependent stacking and base-pairing strengths -are supported :ref:`(Sulc2) `. Quasi-unique base-pairing between nucleotides can be achieved by using -more complementary pairs of atom types like 5-8 and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. -This prevents the hybridization of in principle complementary bases within Ntypes/4 bases +The *oxrna2* pair styles compute the pairwise-additive parts of the +oxDNA force field for coarse-grained modelling of RNA. The effective +interaction between the nucleotides consists of potentials for the +excluded volume interaction *oxrna2/excv*, the stacking *oxrna2/stk*, +cross-stacking *oxrna2/xstk* and coaxial stacking interaction +*oxrna2/coaxstk*, electrostatic Debye-Hueckel interaction *oxrna2/dh* as +well as the hydrogen-bonding interaction *oxrna2/hbond* between +complementary pairs of nucleotides on opposite strands. Average sequence +or sequence-dependent stacking and base-pairing strengths are supported +:ref:`(Sulc2) `. Quasi-unique base-pairing between nucleotides +can be achieved by using more complementary pairs of atom types like 5-8 +and 6-7, 9-12 and 10-11, 13-16 and 14-15, etc. This prevents the +hybridization of in principle complementary bases within Ntypes/4 bases up and down along the backbone. -The exact functional form of the pair styles is rather complex. -The individual potentials consist of products of modulation factors, -which themselves are constructed from a number of more basic potentials -(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic smoothing and modulation terms. -We refer to :ref:`(Sulc1) ` and the original oxDNA publications :ref:`(Ouldridge-DPhil) ` -and :ref:`(Ouldridge) ` for a detailed description of the oxRNA2 force field. +The exact functional form of the pair styles is rather complex. The +individual potentials consist of products of modulation factors, which +themselves are constructed from a number of more basic potentials +(Morse, Lennard-Jones, harmonic angle and distance) as well as quadratic +smoothing and modulation terms. We refer to :ref:`(Sulc1) ` and +the original oxDNA publications :ref:`(Ouldridge-DPhil) +` and :ref:`(Ouldridge) ` for a detailed +description of the oxRNA2 force field. .. note:: - These pair styles have to be used together with the related oxDNA2 bond style - *oxrna2/fene* for the connectivity of the phosphate backbone (see also documentation of - :doc:`bond_style oxrna2/fene `). Most of the coefficients - in the above example have to be kept fixed and cannot be changed without reparameterizing the entire model. - Exceptions are the first four coefficients after *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 and corresponding *real unit* equivalents in the above examples), - the first coefficient after *oxrna2/hbond* (seq=seqdep in the above example) and the three coefficients - after *oxrna2/dh* (T=0.1, rhos=0.5, qeff=1.02455 in the above example). When using a Langevin thermostat - e.g. through :doc:`fix langevin ` or :doc:`fix nve/dotc/langevin ` - the temperature coefficients have to be matched to the one used in the fix. + These pair styles have to be used together with the related oxDNA2 + bond style *oxrna2/fene* for the connectivity of the phosphate + backbone (see also documentation of :doc:`bond_style oxrna2/fene + `). Most of the coefficients in the above example have to + be kept fixed and cannot be changed without reparameterizing the + entire model. Exceptions are the first four coefficients after + *oxrna2/stk* (seq=seqdep, T=0.1, xi=1.40206 and kappa=2.77 and + corresponding *real unit* equivalents in the above examples), the + first coefficient after *oxrna2/hbond* (seq=seqdep in the above + example) and the three coefficients after *oxrna2/dh* (T=0.1, + rhos=0.5, qeff=1.02455 in the above example). When using a Langevin + thermostat e.g. through :doc:`fix langevin ` or + :doc:`fix nve/dotc/langevin ` the temperature + coefficients have to be matched to the one used in the fix. .. note:: - These pair styles have to be used with the *atom_style hybrid bond ellipsoid oxdna* - (see documentation of :doc:`atom_style `). The *atom_style oxdna* - stores the 3'-to-5' polarity of the nucleotide strand, which is set through - the bond topology in the data file. The first (second) atom in a bond definition - is understood to point towards the 3'-end (5'-end) of the strand. + These pair styles have to be used with the *atom_style hybrid bond + ellipsoid oxdna* (see documentation of :doc:`atom_style + `). The *atom_style oxdna* stores the 3'-to-5' polarity + of the nucleotide strand, which is set through the bond topology in + the data file. The first (second) atom in a bond definition is + understood to point towards the 3'-end (5'-end) of the strand. -Example input and data files for DNA duplexes can be found in examples/PACKAGES/cgdna/examples/oxDNA/ and /oxDNA2/. -A simple python setup tool which creates single straight or helical DNA strands, -DNA duplexes or arrays of DNA duplexes can be found in examples/PACKAGES/cgdna/util/. +Example input and data files for DNA duplexes can be found in +``examples/PACKAGES/cgdna/examples/oxDNA/`` and ``.../oxDNA2/``. A simple python +setup tool which creates single straight or helical DNA strands, DNA +duplexes or arrays of DNA duplexes can be found in +``examples/PACKAGES/cgdna/util/``. Please cite :ref:`(Henrich) ` in any publication that uses -this implementation. The article contains general information -on the model, its implementation and performance as well as the structure of -the data and input file. The preprint version of the article can be found -`here `_. -Please cite also the relevant oxRNA2 publications -:ref:`(Sulc1) ` and :ref:`(Sulc2) `. +this implementation. The article contains general information on the +model, its implementation and performance as well as the structure of +the data and input file. The preprint version of the article can be +found `here `_. Please cite also the relevant oxRNA2 +publications :ref:`(Sulc1) ` and :ref:`(Sulc2) `. ---------- Potential file reading """""""""""""""""""""" -For each pair style above the first non-modifiable argument can be a filename (with exception of Debye-Hueckel, for which the effective charge argument can be a filename), and if it is, no further arguments should be supplied. -Therefore the following command: +For each pair style above the first non-modifiable argument can be a +filename (with exception of Debye-Hueckel, for which the effective +charge argument can be a filename), and if it is, no further arguments +should be supplied. Therefore the following command: .. code-block:: LAMMPS - pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna -will be interpreted as a request to read the corresponding hydrogen bonding potential parameters from the file with the given name. -The file can define multiple potential parameters for both bonded and pair interactions, but for the example pair interaction above there must exist in the file a line of the form: +will be interpreted as a request to read the corresponding hydrogen +bonding potential parameters from the file with the given name. The +file can define multiple potential parameters for both bonded and pair +interactions, but for the example pair interaction above there must +exist in the file a line of the form: .. code-block:: LAMMPS 3 4 hbond -If potential customization is required, the potential file reading can be mixed with the manual specification of the potential parameters. For example, the following command: +If potential customization is required, the potential file reading can +be mixed with the manual specification of the potential parameters. For +example, the following command: .. code-block:: LAMMPS pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh pair_coeff * * oxrna2/excv 2.0 0.7 0.675 2.0 0.515 0.5 2.0 0.33 0.32 - pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj - pair_coeff * * oxrna2/hbond seqdep oxrna2.lj - pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj - pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj - pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj - pair_coeff * * oxrna2/xstk oxrna2.lj - pair_coeff * * oxrna2/coaxstk oxrna2.lj + pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna + pair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna + pair_coeff * * oxrna2/xstk oxrna2_lj.cgdna + pair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna pair_coeff * * oxrna2/dh 0.1 0.5 1.02455 -will read the excluded volume and Debye-Hueckel effective charge *qeff* parameters from the manual specification and all others from the potential file *oxrna2.lj*. +will read the excluded volume and Debye-Hueckel effective charge *qeff* +parameters from the manual specification and all others from the +potential file *oxrna2_lj.cgdna*. -There are sample potential files for each unit style in the /potentials/ directory of the LAMMPS distribution. The potential file unit system must align with -the units defined via the :doc:`units ` command. For conversion between different *LJ* and *real* unit systems for oxDNA, the python tool *lj2real.py* located in the examples/PACKAGES/cgdna/util/ directory can be used. This tool assumes similar file structure to the examples found in examples/PACKAGES/cgdna/examples/. +There are sample potential files for each unit style in the +``potentials`` directory of the LAMMPS distribution. The potential file +unit system must align with the units defined via the :doc:`units +` command. For conversion between different *LJ* and *real* unit +systems for oxDNA, the python tool *lj2real.py* located in the +``examples/PACKAGES/cgdna/util/`` directory can be used. This tool +assumes similar file structure to the examples found in +``examples/PACKAGES/cgdna/examples/``. ---------- diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 index c58c69e94e..64d3cd0adf 100644 --- a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/in.duplex1 @@ -26,18 +26,18 @@ group all type 1 4 # oxDNA bond interactions - FENE backbone bond_style oxdna/fene -bond_coeff * oxdna.lj +bond_coeff * oxdna_lj.cgdna special_bonds lj 0 1 1 # oxDNA pair interactions pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk -pair_coeff * * oxdna/excv oxdna.lj -pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna.lj -pair_coeff * * oxdna/hbond seqav oxdna.lj -pair_coeff 1 4 oxdna/hbond seqav oxdna.lj -pair_coeff 2 3 oxdna/hbond seqav oxdna.lj -pair_coeff * * oxdna/xstk oxdna.lj -pair_coeff * * oxdna/coaxstk oxdna.lj +pair_coeff * * oxdna/excv oxdna_lj.cgdna +pair_coeff * * oxdna/stk seqav 0.1 1.3448 2.6568 oxdna_lj.cgdna +pair_coeff * * oxdna/hbond seqav oxdna_lj.cgdna +pair_coeff 1 4 oxdna/hbond seqav oxdna_lj.cgdna +pair_coeff 2 3 oxdna/hbond seqav oxdna_lj.cgdna +pair_coeff * * oxdna/xstk oxdna_lj.cgdna +pair_coeff * * oxdna/coaxstk oxdna_lj.cgdna # NVE ensemble fix 1 all nve/asphere diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/oxdna_lj.cgdna b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/oxdna_lj.cgdna new file mode 120000 index 0000000000..fe7ce5cd55 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA/potential_file/oxdna_lj.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxdna_lj.cgdna \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 index 80dc5cb1f5..061fd9ebf9 100644 --- a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/in.duplex1 @@ -1,6 +1,6 @@ -variable number equal 1 -variable ofreq equal 1000 -variable efreq equal 1000 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 variable T equal 0.1 variable rhos equal 0.2 @@ -27,19 +27,19 @@ group all type 1 4 # oxDNA2 bond interactions - FENE backbone bond_style oxdna2/fene -bond_coeff * oxdna2.lj +bond_coeff * oxdna2_lj.cgdna special_bonds lj 0 1 1 # oxDNA2 pair interactions pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh -pair_coeff * * oxdna2/excv oxdna2.lj -pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2.lj -pair_coeff * * oxdna2/hbond seqdep oxdna2.lj -pair_coeff 1 4 oxdna2/hbond seqdep oxdna2.lj -pair_coeff 2 3 oxdna2/hbond seqdep oxdna2.lj -pair_coeff * * oxdna2/xstk oxdna2.lj -pair_coeff * * oxdna2/coaxstk oxdna2.lj -pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2.lj +pair_coeff * * oxdna2/excv oxdna2_lj.cgdna +pair_coeff * * oxdna2/stk seqdep 0.1 1.3523 2.6717 oxdna2_lj.cgdna +pair_coeff * * oxdna2/hbond seqdep oxdna2_lj.cgdna +pair_coeff 1 4 oxdna2/hbond seqdep oxdna2_lj.cgdna +pair_coeff 2 3 oxdna2/hbond seqdep oxdna2_lj.cgdna +pair_coeff * * oxdna2/xstk oxdna2_lj.cgdna +pair_coeff * * oxdna2/coaxstk oxdna2_lj.cgdna +pair_coeff * * oxdna2/dh 0.1 0.5 oxdna2_lj.cgdna # NVE ensemble fix 1 all nve/asphere diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/oxdna2_lj.cgdna b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/oxdna2_lj.cgdna new file mode 120000 index 0000000000..7df48263bc --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxDNA2/potential_file/oxdna2_lj.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxdna2_lj.cgdna \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 index b6eb8f5251..de2d1e462d 100644 --- a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/in.duplex2 @@ -1,6 +1,6 @@ -variable number equal 2 -variable ofreq equal 1000 -variable efreq equal 1000 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 variable T equal 0.1 variable rhos equal 0.5 @@ -27,20 +27,20 @@ group all type 1 4 # oxRNA2 bond interactions - FENE backbone bond_style oxrna2/fene -bond_coeff * oxrna2.lj +bond_coeff * oxrna2_lj.cgdna special_bonds lj 0 1 1 # oxRNA2 pair interactions pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh -pair_coeff * * oxrna2/excv oxrna2.lj -pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2.lj -pair_coeff * * oxrna2/hbond seqdep oxrna2.lj -pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.lj -pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.lj -pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.lj -pair_coeff * * oxrna2/xstk oxrna2.lj -pair_coeff * * oxrna2/coaxstk oxrna2.lj -pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2.lj +pair_coeff * * oxrna2/excv oxrna2_lj.cgdna +pair_coeff * * oxrna2/stk seqdep 0.1 1.40206 2.77 oxrna2_lj.cgdna +pair_coeff * * oxrna2/hbond seqdep oxrna2_lj.cgdna +pair_coeff 1 4 oxrna2/hbond seqdep oxrna2_lj.cgdna +pair_coeff 2 3 oxrna2/hbond seqdep oxrna2_lj.cgdna +pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_lj.cgdna +pair_coeff * * oxrna2/xstk oxrna2_lj.cgdna +pair_coeff * * oxrna2/coaxstk oxrna2_lj.cgdna +pair_coeff * * oxrna2/dh 0.1 0.5 oxrna2_lj.cgdna # NVE ensemble fix 1 all nve/asphere diff --git a/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/oxrna2_lj.cgdna b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/oxrna2_lj.cgdna new file mode 120000 index 0000000000..61a572f605 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/lj_units/oxRNA2/potential_file/oxrna2_lj.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxrna2_lj.cgdna \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 index 0caf44b6d9..0cf9f2f12e 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/in.duplex1 @@ -1,7 +1,7 @@ # LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 -variable number equal 1 -variable ofreq equal 1000 -variable efreq equal 1000 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 variable T equal 300.0 units real @@ -27,18 +27,18 @@ group all type 1 4 # oxDNA bond interactions - FENE backbone bond_style oxdna/fene -bond_coeff * oxdna.real +bond_coeff * oxdna_real.cgdna special_bonds lj 0 1 1 # oxDNA pair interactions pair_style hybrid/overlay oxdna/excv oxdna/stk oxdna/hbond oxdna/xstk oxdna/coaxstk -pair_coeff * * oxdna/excv oxdna.real -pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 oxdna.real -pair_coeff * * oxdna/hbond seqav oxdna.real -pair_coeff 1 4 oxdna/hbond seqav oxdna.real -pair_coeff 2 3 oxdna/hbond seqav oxdna.real -pair_coeff * * oxdna/xstk oxdna.real -pair_coeff * * oxdna/coaxstk oxdna.real +pair_coeff * * oxdna/excv oxdna_real.cgdna +pair_coeff * * oxdna/stk seqav ${T} 8.01727944817084 0.005279604 oxdna_real.cgdna +pair_coeff * * oxdna/hbond seqav oxdna_real.cgdna +pair_coeff 1 4 oxdna/hbond seqav oxdna_real.cgdna +pair_coeff 2 3 oxdna/hbond seqav oxdna_real.cgdna +pair_coeff * * oxdna/xstk oxdna_real.cgdna +pair_coeff * * oxdna/coaxstk oxdna_real.cgdna # NVE ensemble fix 1 all nve/asphere diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/oxdna_real.cgdna b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/oxdna_real.cgdna new file mode 120000 index 0000000000..8796f00828 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA/potential_file/oxdna_real.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxdna_real.cgdna \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 index 7acde1b080..a4df838b14 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/in.duplex1 @@ -1,7 +1,7 @@ # LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 -variable number equal 1 -variable ofreq equal 1000 -variable efreq equal 1000 +variable number equal 1 +variable ofreq equal 1000 +variable efreq equal 1000 variable T equal 300.0 variable rhos equal 0.2 @@ -28,19 +28,19 @@ group all type 1 4 # oxDNA2 bond interactions - FENE backbone bond_style oxdna2/fene -bond_coeff * oxdna2.real +bond_coeff * oxdna2_real.cgdna special_bonds fene # oxDNA2 pair interactions pair_style hybrid/overlay oxdna2/excv oxdna2/stk oxdna2/hbond oxdna2/xstk oxdna2/coaxstk oxdna2/dh -pair_coeff * * oxdna2/excv oxdna2.real -pair_coeff * * oxdna2/stk seqav 300.0 8.06199211612242 0.005309213 oxdna2.real -pair_coeff * * oxdna2/hbond seqav oxdna2.real -pair_coeff 1 4 oxdna2/hbond seqav oxdna2.real -pair_coeff 2 3 oxdna2/hbond seqav oxdna2.real -pair_coeff * * oxdna2/xstk oxdna2.real -pair_coeff * * oxdna2/coaxstk oxdna2.real -pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2.real +pair_coeff * * oxdna2/excv oxdna2_real.cgdna +pair_coeff * * oxdna2/stk seqav 300.0 8.06199211612242 0.005309213 oxdna2_real.cgdna +pair_coeff * * oxdna2/hbond seqav oxdna2_real.cgdna +pair_coeff 1 4 oxdna2/hbond seqav oxdna2_real.cgdna +pair_coeff 2 3 oxdna2/hbond seqav oxdna2_real.cgdna +pair_coeff * * oxdna2/xstk oxdna2_real.cgdna +pair_coeff * * oxdna2/coaxstk oxdna2_real.cgdna +pair_coeff * * oxdna2/dh 300.0 0.5 oxdna2_real.cgdna # NVE ensemble diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/oxdna2_real.cgdna b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/oxdna2_real.cgdna new file mode 120000 index 0000000000..64eb982c6e --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxDNA2/potential_file/oxdna2_real.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxdna2_real.cgdna \ No newline at end of file diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 index 2d5936a3bd..74ccf46051 100644 --- a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/in.duplex2 @@ -1,7 +1,7 @@ # LAMMPS input file in real units via oxdna lj2real.py, date 2024-05-19 -variable number equal 2 -variable ofreq equal 1000 -variable efreq equal 1000 +variable number equal 2 +variable ofreq equal 1000 +variable efreq equal 1000 variable T equal 300.0 variable rhos equal 0.5 @@ -28,20 +28,20 @@ group all type 1 4 # oxRNA2 bond interactions - FENE backbone bond_style oxrna2/fene -bond_coeff * oxrna2.real +bond_coeff * oxrna2_real.cgdna special_bonds lj 0 1 1 # oxRNA2 pair interactions pair_style hybrid/overlay oxrna2/excv oxrna2/stk oxrna2/hbond oxrna2/xstk oxrna2/coaxstk oxrna2/dh -pair_coeff * * oxrna2/excv oxrna2.real -pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2.real -pair_coeff * * oxrna2/hbond seqdep oxrna2.real -pair_coeff 1 4 oxrna2/hbond seqdep oxrna2.real -pair_coeff 2 3 oxrna2/hbond seqdep oxrna2.real -pair_coeff 3 4 oxrna2/hbond seqdep oxrna2.real -pair_coeff * * oxrna2/xstk oxrna2.real -pair_coeff * * oxrna2/coaxstk oxrna2.real -pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2.real +pair_coeff * * oxrna2/excv oxrna2_real.cgdna +pair_coeff * * oxrna2/stk seqdep 300.0 8.35864576375849 0.005504556 oxrna2_real.cgdna +pair_coeff * * oxrna2/hbond seqdep oxrna2_real.cgdna +pair_coeff 1 4 oxrna2/hbond seqdep oxrna2_real.cgdna +pair_coeff 2 3 oxrna2/hbond seqdep oxrna2_real.cgdna +pair_coeff 3 4 oxrna2/hbond seqdep oxrna2_real.cgdna +pair_coeff * * oxrna2/xstk oxrna2_real.cgdna +pair_coeff * * oxrna2/coaxstk oxrna2_real.cgdna +pair_coeff * * oxrna2/dh 300.0 0.5 oxrna2_real.cgdna # NVE ensemble fix 1 all nve/asphere diff --git a/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/oxrna2_real.cgdna b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/oxrna2_real.cgdna new file mode 120000 index 0000000000..014605f135 --- /dev/null +++ b/examples/PACKAGES/cgdna/examples/real_units/oxRNA2/potential_file/oxrna2_real.cgdna @@ -0,0 +1 @@ +../../../../../../../potentials/oxrna2_real.cgdna \ No newline at end of file diff --git a/potentials/README b/potentials/README index 2d6d4c172a..e6b5ef1bbe 100644 --- a/potentials/README +++ b/potentials/README @@ -87,6 +87,7 @@ adp ADP angular dependent potential airebo AI-REBO potentials bop.table BOP potential, tabulated form cdeam concentration-dependent EAM +cgdna potential files for styles in the CG-DNA package comb COMB potential comb3 COMB3 potential eam embedded atom method (EAM) single element, DYNAMO funcfl format diff --git a/potentials/oxdna2.lj b/potentials/oxdna2_lj.cgdna similarity index 100% rename from potentials/oxdna2.lj rename to potentials/oxdna2_lj.cgdna diff --git a/potentials/oxdna2.real b/potentials/oxdna2_real.cgdna similarity index 100% rename from potentials/oxdna2.real rename to potentials/oxdna2_real.cgdna diff --git a/potentials/oxdna.lj b/potentials/oxdna_lj.cgdna similarity index 100% rename from potentials/oxdna.lj rename to potentials/oxdna_lj.cgdna diff --git a/potentials/oxdna.real b/potentials/oxdna_real.cgdna similarity index 100% rename from potentials/oxdna.real rename to potentials/oxdna_real.cgdna diff --git a/potentials/oxrna2.lj b/potentials/oxrna2_lj.cgdna similarity index 100% rename from potentials/oxrna2.lj rename to potentials/oxrna2_lj.cgdna diff --git a/potentials/oxrna2.real b/potentials/oxrna2_real.cgdna similarity index 100% rename from potentials/oxrna2.real rename to potentials/oxrna2_real.cgdna diff --git a/purge-workflows.py b/purge-workflows.py new file mode 100644 index 0000000000..73b7d22f7a --- /dev/null +++ b/purge-workflows.py @@ -0,0 +1,22 @@ +from yaml import load +import subprocess +try: + from yaml import CLoader as Loader +except ImportError: + from yaml import Loader + +runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) +data = load(runs,Loader=Loader) +while data['total_count'] > 3: + print('remaining: ', data['total_count']) + num=1 + for d in data['workflow_runs']: + print(num, d['id'],d['name'],d['run_number']) + num += 1 + if num > 4: + subprocess.call('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id']), shell=True) + #print('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id'])) + else: + print('skip') + runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) + data = load(runs,Loader=Loader) diff --git a/src/CG-DNA/pair_oxdna2_dh.cpp b/src/CG-DNA/pair_oxdna2_dh.cpp index f0bdf195c1..5c0c32b2d9 100644 --- a/src/CG-DNA/pair_oxdna2_dh.cpp +++ b/src/CG-DNA/pair_oxdna2_dh.cpp @@ -307,7 +307,7 @@ void PairOxdna2Dh::coeff(int narg, char **arg) T = utils::numeric(FLERR,arg[2],false,lmp); rhos_dh_one = utils::numeric(FLERR,arg[3],false,lmp); - if (utils::strmatch(arg[4], "^[a-zA-Z0-9]*\\.[a-zA-Z]+$") == true) { // if last arg is a potential file + if (utils::strmatch(arg[4], "^[a-zA-Z0-9_]*\\.cgdna$")) { // if last arg is a potential file if (comm->me == 0) { // read value from potential file PotentialFileReader reader(lmp, arg[4], "oxdna potential", " (dh)"); char * line; From 7e8f956e05495f71fb9abe9295f8e01d628f2ba5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 20:09:28 -0400 Subject: [PATCH 295/313] remove accidental commit --- purge-workflows.py | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 purge-workflows.py diff --git a/purge-workflows.py b/purge-workflows.py deleted file mode 100644 index 73b7d22f7a..0000000000 --- a/purge-workflows.py +++ /dev/null @@ -1,22 +0,0 @@ -from yaml import load -import subprocess -try: - from yaml import CLoader as Loader -except ImportError: - from yaml import Loader - -runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) -data = load(runs,Loader=Loader) -while data['total_count'] > 3: - print('remaining: ', data['total_count']) - num=1 - for d in data['workflow_runs']: - print(num, d['id'],d['name'],d['run_number']) - num += 1 - if num > 4: - subprocess.call('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id']), shell=True) - #print('gh api -X DELETE repos/lammps/lammps/actions/runs/' + str(d['id'])) - else: - print('skip') - runs = subprocess.check_output('gh api repos/lammps/lammps/actions/runs',shell=True) - data = load(runs,Loader=Loader) From 6d1fb9eb62fce62229559e95006095850fc04c9a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 20 Jun 2024 20:31:24 -0400 Subject: [PATCH 296/313] fix typo --- doc/utils/sphinx-config/false_positives.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index b189e16953..e99b96fbb4 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -2962,7 +2962,7 @@ Priya proc Proc procs -proggrid +procgrid progguide Prony ps From 41d24f5d576852b6a8a80b8f359a92c4f1e1b1d3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jun 2024 01:02:02 -0400 Subject: [PATCH 297/313] apply clang-format --- src/ML-UF3/pair_uf3.cpp | 822 +++++++++++++++++++--------------------- 1 file changed, 396 insertions(+), 426 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 1f41ddd336..8efc18a2d9 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -45,14 +45,12 @@ PairUF3::PairUF3(LAMMPS *lmp) : Pair(lmp), setflag_3b(nullptr), knot_spacing_type_2b(nullptr), knot_spacing_type_3b(nullptr), cut(nullptr), cut_3b(nullptr), cut_3b_list(nullptr), min_cut_3b(nullptr), knot_spacing_2b(nullptr), knot_spacing_3b(nullptr), n2b_knots_array(nullptr), - n2b_coeff_array(nullptr), n2b_knots_array_size(nullptr), - n2b_coeff_array_size(nullptr), cached_constants_2b(nullptr), - cached_constants_2b_deri(nullptr), map_3b(nullptr), n3b_knots_array(nullptr), - n3b_coeff_array(nullptr), n3b_knots_array_size(nullptr), - n3b_coeff_array_size(nullptr), coeff_for_der_jk(nullptr), - coeff_for_der_ik(nullptr), coeff_for_der_ij(nullptr), - cached_constants_3b(nullptr), cached_constants_3b_deri(nullptr), - neighshort(nullptr) + n2b_coeff_array(nullptr), n2b_knots_array_size(nullptr), n2b_coeff_array_size(nullptr), + cached_constants_2b(nullptr), cached_constants_2b_deri(nullptr), map_3b(nullptr), + n3b_knots_array(nullptr), n3b_coeff_array(nullptr), n3b_knots_array_size(nullptr), + n3b_coeff_array_size(nullptr), coeff_for_der_jk(nullptr), coeff_for_der_ik(nullptr), + coeff_for_der_ij(nullptr), cached_constants_3b(nullptr), cached_constants_3b_deri(nullptr), + neighshort(nullptr), get_starting_index_2b(nullptr), get_starting_index_3b(nullptr) { single_enable = 1; // 1 if single() routine exists one_coeff = 1; // 1 if allows only one coeff * * call @@ -124,7 +122,6 @@ void PairUF3::settings(int narg, char **arg) single_enable = 0; } else error->all(FLERR, "Pair style uf3 not (yet) implemented for {}-body terms", nbody_flag); - } /* ---------------------------------------------------------------------- @@ -132,17 +129,15 @@ void PairUF3::settings(int narg, char **arg) * ---------------------------------------------------------------------- */ void PairUF3::coeff(int narg, char **arg) { - if (narg != 3+atom->ntypes) + if (narg != 3 + atom->ntypes) error->all(FLERR, "Invalid number of arguments uf3 in pair coeffs."); if (!allocated) allocate(); - map_element2type(narg-3, arg+3, false); + map_element2type(narg - 3, arg + 3, false); - if (comm->me == 0) - uf3_read_unified_pot_file(arg[2]); + if (comm->me == 0) uf3_read_unified_pot_file(arg[2]); communicate(); - } void PairUF3::allocate() @@ -150,7 +145,7 @@ void PairUF3::allocate() allocated = 1; const int num_of_elements = atom->ntypes; - map = new int[num_of_elements+1]; //No need to delete map as ~Pair deletes map + map = new int[num_of_elements + 1]; //No need to delete map as ~Pair deletes map // Contains info about wether UF potential were found for type i and j memory->create(setflag, num_of_elements + 1, num_of_elements + 1, "pair:setflag"); @@ -166,40 +161,38 @@ void PairUF3::allocate() //1 = non-uniform knot spacing memory->create(knot_spacing_type_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_type_2b"); - memory->create(knot_spacing_2b, num_of_elements + 1, num_of_elements + 1, - "pair:knot_spacing_2b"); + memory->create(knot_spacing_2b, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_2b"); //Contains size of 2b knots vectors and 2b coeff matrices memory->create(n2b_knots_array_size, num_of_elements + 1, num_of_elements + 1, - "pair:n2b_knots_array_size"); + "pair:n2b_knots_array_size"); memory->create(n2b_coeff_array_size, num_of_elements + 1, num_of_elements + 1, - "pair:n2b_coeff_array_size"); + "pair:n2b_coeff_array_size"); if (pot_3b) { // Contains info about wether UF potential were found for type i, j and k - memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, "pair:setflag_3b"); + memory->create(setflag_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + "pair:setflag_3b"); // Contains info about 3-body cutoff distance for type i, j and k - memory->create(cut_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, "pair:cut_3b"); + memory->create(cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + "pair:cut_3b"); // Contains info about 3-body cutoff distance for type i, j and k // for constructing 3-body list - memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, - "pair:cut_3b_list"); + memory->create(cut_3b_list, num_of_elements + 1, num_of_elements + 1, "pair:cut_3b_list"); // Contains info about minimum 3-body cutoff distance for type i, j and k - memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, 3, "pair:min_cut_3b"); + memory->create(min_cut_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, 3, + "pair:min_cut_3b"); //Contains info about type of knot_spacing--> 0 = uniform knot spacing (default) //1 = non-uniform knot spacing memory->create(knot_spacing_type_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, "pair:knot_spacing_type_3b"); - memory->create(knot_spacing_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, 3, "pair:knot_spacing_3b"); + memory->create(knot_spacing_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + 3, "pair:knot_spacing_3b"); tot_interaction_count_3b = 0; //conatins map of I-J-K interaction - memory->create(map_3b, num_of_elements + 1, num_of_elements + 1, - num_of_elements + 1, "pair:map_3b"); + memory->create(map_3b, num_of_elements + 1, num_of_elements + 1, num_of_elements + 1, + "pair:map_3b"); // setting cut_3b, setflag = 0 and map_3b for (int i = 1; i < num_of_elements + 1; i++) { @@ -224,10 +217,8 @@ void PairUF3::allocate() } //contains sizes of 3b knots vectors and 3b coeff matrices - memory->create(n3b_knots_array_size, tot_interaction_count_3b, 3, - "pair:n3b_knots_array_size"); - memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, - "pair:n3b_coeff_array_size"); + memory->create(n3b_knots_array_size, tot_interaction_count_3b, 3, "pair:n3b_knots_array_size"); + memory->create(n3b_coeff_array_size, tot_interaction_count_3b, 3, "pair:n3b_coeff_array_size"); for (int i = 0; i < tot_interaction_count_3b; i++) { n3b_coeff_array_size[i][0] = 0; n3b_coeff_array_size[i][1] = 0; @@ -239,7 +230,6 @@ void PairUF3::allocate() } memory->create(neighshort, maxshort, "pair:neighshort"); - } } @@ -258,9 +248,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //if (true) { FILE *fp = utils::open_potential(potf_name, lmp, nullptr); if (!fp) - error->all(FLERR, - "Cannot open UF3 potential file {}: {}", - potf_name, utils::getsyserror()); + error->all(FLERR, "Cannot open UF3 potential file {}: {}", potf_name, utils::getsyserror()); TextFileReader txtfilereader(fp, "UF3:POTFP"); txtfilereader.ignore_comments = false; @@ -271,7 +259,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //if 3B read the knot vectors and coeff matrix size int line_counter = 1; char *line; - while((line = txtfilereader.next_line(1))){ + while ((line = txtfilereader.next_line(1))) { Tokenizer line_token(line); //Detect start of a block @@ -292,22 +280,23 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (nbody_on_file == "2B") { //2B block if (fp2nd_line.count() != 6) - error->all(FLERR, "UF3: Expected 6 words on line {} of {} file " - "but found {} word/s", - line_counter, potf_name, fp2nd_line.count()); + error->all(FLERR, + "UF3: Expected 6 words on line {} of {} file " + "but found {} word/s", + line_counter, potf_name, fp2nd_line.count()); //get the elements std::string element1 = fp2nd_line.next_string(); std::string element2 = fp2nd_line.next_string(); int itype = 0; int jtype = 0; - for (int i=1; iall(FLERR, "UF3: 0 or negative number found for num_coeff_2b" - " on line {} of the potential file",line_counter); + " on line {} of the potential file", + line_counter); n2b_coeff_array_size[itype][jtype] = num_coeff_2b; n2b_coeff_array_size[jtype][itype] = num_coeff_2b; max_num_coeff_2b = std::max(max_num_coeff_2b, num_coeff_2b); } - } - else if ((nbody_on_file == "3B") && (pot_3b)) { + } else if ((nbody_on_file == "3B") && (pot_3b)) { //3B block if (fp2nd_line.count() != 7) - error->all(FLERR, "UF3: Expected 7 words on line {} of {} file" - "but found {} word/s", - line_counter, potf_name, fp2nd_line.count()); + error->all(FLERR, + "UF3: Expected 7 words on line {} of {} file" + "but found {} word/s", + line_counter, potf_name, fp2nd_line.count()); if (nbody_on_file == "3B") { //get the elements @@ -381,26 +371,26 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) int itype = 0; int jtype = 0; int ktype = 0; - for (int i=1; iall(FLERR, - "UF3: Expected either '2B' or '3B' word on line {} of {} file", + error->all(FLERR, "UF3: Expected either '2B' or '3B' word on line {} of {} file", line_counter, potf_name); } - } //if of #UF3 POT + } //if of #UF3 POT line_counter++; - } // while + } // while //Create knot and coeff arrays if (max_num_knots_2b <= 0) @@ -520,8 +506,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "Possibly no 2B UF3 potential block detected in {} file", potf_name); memory->destroy(n2b_knots_array); - memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, - max_num_knots_2b, "pair:n2b_knots_array"); + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, max_num_knots_2b, + "pair:n2b_knots_array"); if (max_num_coeff_2b <= 0) error->all(FLERR, @@ -530,9 +516,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) potf_name); memory->destroy(n2b_coeff_array); - memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, - max_num_coeff_2b, "pair:n2b_coeff_array"); - + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, max_num_coeff_2b, + "pair:n2b_coeff_array"); if (pot_3b) { if (max_num_knots_3b <= 0) @@ -541,8 +526,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "Possibly no 3B UF3 potential block detected in {} file", potf_name); memory->destroy(n3b_knots_array); - memory->create(n3b_knots_array, tot_interaction_count_3b, 3, - max_num_knots_3b, "pair:n3b_knots_array"); + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, max_num_knots_3b, + "pair:n3b_knots_array"); if (max_num_coeff_3b <= 0) error->all(FLERR, @@ -550,8 +535,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "Possibly no 3B UF3 potential block detected in {} file", potf_name); memory->destroy(n3b_coeff_array); - memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, + max_num_coeff_3b, "pair:n3b_coeff_array"); } //Go back to the begning of the file @@ -559,7 +544,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //Go through the file again and fill knot and coeff arrays //while loop to read the data - while((line = txtfilereader.next_line(1))){ + while ((line = txtfilereader.next_line(1))) { Tokenizer line_token(line); //Detect start of a block @@ -576,13 +561,13 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) std::string element2 = fp2nd_line.next_string(); int itype = 0; int jtype = 0; - for (int i=1; iall(FLERR, "UF3: Expected either 'uk'(uniform-knots) or 'nk'(non-uniform knots). " "Found {} on the 2nd line of {}-{} interaction block", - knot_type, element1, element2); + knot_type, element1, element2); if ((itype != 0) && (jtype != 0)) { //skip line containing info of cutoff and knot vect size @@ -616,17 +601,19 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp4th_line(temp_line); if (fp4th_line.count() != num_knots_2b) - error->all(FLERR, "UF3: Error readig the 2B potential block for {}-{}\n" + error->all(FLERR, + "UF3: Error readig the 2B potential block for {}-{}\n" "Expecter {} numbers on 4th line of the block but found {} " - "numbers", num_knots_2b,fp4th_line.count()); + "numbers", + num_knots_2b, fp4th_line.count()); for (int k = 0; k < num_knots_2b; k++) { n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); n2b_knots_array[jtype][itype][k] = n2b_knots_array[itype][jtype][k]; } - knot_spacing_2b[itype][jtype] = n2b_knots_array[itype][jtype][4] - - n2b_knots_array[itype][jtype][3]; + knot_spacing_2b[itype][jtype] = + n2b_knots_array[itype][jtype][4] - n2b_knots_array[itype][jtype][3]; knot_spacing_2b[jtype][itype] = knot_spacing_2b[itype][jtype]; //skip next line @@ -641,7 +628,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Error readig the 2B potential block for {}-{}\n" "Expecter {} numbers on 6th line of the block but found {} " - "numbers", num_knots_2b,fp4th_line.count()); + "numbers", + num_knots_2b, fp4th_line.count()); for (int k = 0; k < num_of_coeff_2b; k++) { n2b_coeff_array[itype][jtype][k] = fp6th_line.next_double(); @@ -667,19 +655,19 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) int itype = 0; int jtype = 0; int ktype = 0; - for (int i=1; iall(FLERR, "UF3: Error readig the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 4th line of the block but found {} " - "numbers", element1, element2, element3, - num_knots_3b_jk, fp4th_line.count()); + "numbers", + element1, element2, element3, num_knots_3b_jk, fp4th_line.count()); for (int i = 0; i < num_knots_3b_jk; i++) { - n3b_knots_array[map_3b[itype][jtype][ktype]][0][i] = - fp4th_line.next_double(); + n3b_knots_array[map_3b[itype][jtype][ktype]][0][i] = fp4th_line.next_double(); n3b_knots_array[map_3b[itype][ktype][jtype]][0][i] = n3b_knots_array[map_3b[itype][jtype][ktype]][0][i]; } - min_cut_3b[itype][jtype][ktype][0] = - n3b_knots_array[map_3b[itype][jtype][ktype]][0][0]; - min_cut_3b[itype][ktype][jtype][0] = - n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; + min_cut_3b[itype][jtype][ktype][0] = n3b_knots_array[map_3b[itype][jtype][ktype]][0][0]; + min_cut_3b[itype][ktype][jtype][0] = n3b_knots_array[map_3b[itype][ktype][jtype]][0][0]; knot_spacing_3b[itype][jtype][ktype][0] = n3b_knots_array[map_3b[itype][jtype][ktype]][0][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][0][3]; - knot_spacing_3b[itype][ktype][jtype][0] = - knot_spacing_3b[itype][jtype][ktype][0]; + knot_spacing_3b[itype][ktype][jtype][0] = knot_spacing_3b[itype][jtype][ktype][0]; temp_line = txtfilereader.next_line(num_knots_3b_ik); ValueTokenizer fp5th_line(temp_line); @@ -744,26 +728,22 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Error readig the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 5th line of the block but found {} " - "numbers", element1, element2, element3, - num_knots_3b_ik, fp5th_line.count()); + "numbers", + element1, element2, element3, num_knots_3b_ik, fp5th_line.count()); for (int i = 0; i < num_knots_3b_ik; i++) { - n3b_knots_array[map_3b[itype][jtype][ktype]][1][i] = - fp5th_line.next_double(); + n3b_knots_array[map_3b[itype][jtype][ktype]][1][i] = fp5th_line.next_double(); n3b_knots_array[map_3b[itype][ktype][jtype]][2][i] = n3b_knots_array[map_3b[itype][jtype][ktype]][1][i]; } - min_cut_3b[itype][jtype][ktype][1] = - n3b_knots_array[map_3b[itype][jtype][ktype]][1][0]; - min_cut_3b[itype][ktype][jtype][2] = - n3b_knots_array[map_3b[itype][ktype][jtype]][2][0]; + min_cut_3b[itype][jtype][ktype][1] = n3b_knots_array[map_3b[itype][jtype][ktype]][1][0]; + min_cut_3b[itype][ktype][jtype][2] = n3b_knots_array[map_3b[itype][ktype][jtype]][2][0]; knot_spacing_3b[itype][jtype][ktype][1] = n3b_knots_array[map_3b[itype][jtype][ktype]][1][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][1][3]; - knot_spacing_3b[itype][ktype][jtype][2] = - knot_spacing_3b[itype][jtype][ktype][1]; + knot_spacing_3b[itype][ktype][jtype][2] = knot_spacing_3b[itype][jtype][ktype][1]; temp_line = txtfilereader.next_line(num_knots_3b_ij); ValueTokenizer fp6th_line(temp_line); @@ -771,26 +751,22 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) error->all(FLERR, "UF3: Error readig the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 6th line of the block but found {} " - "numbers", element1, element2, element3, - num_knots_3b_ij, fp6th_line.count()); + "numbers", + element1, element2, element3, num_knots_3b_ij, fp6th_line.count()); for (int i = 0; i < num_knots_3b_ij; i++) { - n3b_knots_array[map_3b[itype][jtype][ktype]][2][i] = - fp6th_line.next_double(); + n3b_knots_array[map_3b[itype][jtype][ktype]][2][i] = fp6th_line.next_double(); n3b_knots_array[map_3b[itype][ktype][jtype]][1][i] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][i]; } - min_cut_3b[itype][jtype][ktype][2] = - n3b_knots_array[map_3b[itype][jtype][ktype]][2][0]; - min_cut_3b[itype][ktype][jtype][1] = - n3b_knots_array[map_3b[itype][ktype][jtype]][1][0]; + min_cut_3b[itype][jtype][ktype][2] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][0]; + min_cut_3b[itype][ktype][jtype][1] = n3b_knots_array[map_3b[itype][ktype][jtype]][1][0]; knot_spacing_3b[itype][jtype][ktype][2] = n3b_knots_array[map_3b[itype][jtype][ktype]][2][4] - n3b_knots_array[map_3b[itype][jtype][ktype]][2][3]; - knot_spacing_3b[itype][ktype][jtype][1] = - knot_spacing_3b[itype][jtype][ktype][2]; + knot_spacing_3b[itype][ktype][jtype][1] = knot_spacing_3b[itype][jtype][ktype][2]; //skip next line txtfilereader.skip_line(); @@ -804,21 +780,21 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_JK) and coeff (coeff_matrix_dim3) data " "nknots!=ncoeffs + 3 + 1", - element1, element2, element3); + element1, element2, element3); if (num_knots_3b_ik != coeff_matrix_dim2 + 3 + 1) error->all(FLERR, "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_IK) and coeff (coeff_matrix_dim2) data " "nknots!=ncoeffs + 3 + 1", - element1, element2, element3); + element1, element2, element3); if (num_knots_3b_ij != coeff_matrix_dim1 + 3 + 1) error->all(FLERR, "UF3: {}-{}-{} interaction block has incorrect knot " "(NUM_OF_KNOTS_IJ) and coeff (coeff_matrix_dim1) data " "nknots!=ncoeffs + 3 + 1", - element1, element2, element3); + element1, element2, element3); int coeff_matrix_elements_len = coeff_matrix_dim3; int key1 = map_3b[itype][jtype][ktype]; @@ -830,12 +806,12 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) temp_line = txtfilereader.next_line(coeff_matrix_elements_len); ValueTokenizer coeff_line(temp_line); if (coeff_line.count() != coeff_matrix_elements_len) - error->all(FLERR, - "UF3: Error reading 3B potential block for {}-{}-{}\n" - "Expected {} numbers on {}th line of the block but found {} " - "numbers", element1, element2, element3, - coeff_matrix_elements_len, line_count + 8, - coeff_line.count()); + error->all(FLERR, + "UF3: Error reading 3B potential block for {}-{}-{}\n" + "Expected {} numbers on {}th line of the block but found {} " + "numbers", + element1, element2, element3, coeff_matrix_elements_len, line_count + 8, + coeff_line.count()); for (int k = 0; k < coeff_matrix_dim3; k++) { n3b_coeff_array[key1][i][j][k] = coeff_line.next_double(); @@ -856,27 +832,26 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) setflag_3b[itype][ktype][jtype] = 1; } } - } // if #UF3 POT - } //while + } // if #UF3 POT + } //while fclose(fp); //Set interaction of atom types of the same elements for (int i = 1; i < num_of_elements + 1; i++) { for (int j = 1; j < num_of_elements + 1; j++) { - if (setflag[i][j] != 1){ + if (setflag[i][j] != 1) { //i-j interaction not set //maybe i-j is mapped to some other atom type interaction? - int i_mapped_to = map[i]+1; //+1 as map starts from 0 - int j_mapped_to = map[j]+1; //+1 as map starts from 0 + int i_mapped_to = map[i] + 1; //+1 as map starts from 0 + int j_mapped_to = map[j] + 1; //+1 as map starts from 0 if ((i_mapped_to == i) && (j_mapped_to == j)) //i-j is not mapped to some other atom type ie interaction is missing on file error->all(FLERR, "UF3: Potential for interaction {}-{} ie {}-{} not found " "in {} file", - i, j, elements[i_mapped_to-1], elements[j_mapped_to-1], - potf_name); + i, j, elements[i_mapped_to - 1], elements[j_mapped_to - 1], potf_name); cut[i][j] = cut[i_mapped_to][j_mapped_to]; @@ -887,12 +862,10 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) knot_spacing_2b[i][j] = knot_spacing_2b[i_mapped_to][j_mapped_to]; for (int knot_no = 0; knot_no < max_num_knots_2b; knot_no++) - n2b_knots_array[i][j][knot_no] = - n2b_knots_array[i_mapped_to][j_mapped_to][knot_no]; + n2b_knots_array[i][j][knot_no] = n2b_knots_array[i_mapped_to][j_mapped_to][knot_no]; for (int coeff_no = 0; coeff_no < max_num_coeff_2b; coeff_no++) - n2b_coeff_array[i][j][coeff_no] = - n2b_coeff_array[i_mapped_to][j_mapped_to][coeff_no]; + n2b_coeff_array[i][j][coeff_no] = n2b_coeff_array[i_mapped_to][j_mapped_to][coeff_no]; setflag[i][j] = 1; } @@ -908,39 +881,33 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //i-j-k interaction not set //maybe i-j-k is mapped to some other atom type interaction? - int i_mapped_to = map[i]+1; //+1 as map starts from 0 - int j_mapped_to = map[j]+1; //+1 as map starts from 0 - int k_mapped_to = map[k]+1; //+1 as map starts from 0 + int i_mapped_to = map[i] + 1; //+1 as map starts from 0 + int j_mapped_to = map[j] + 1; //+1 as map starts from 0 + int k_mapped_to = map[k] + 1; //+1 as map starts from 0 if ((i_mapped_to == i) && (j_mapped_to == j) && (k_mapped_to == k)) error->all(FLERR, "UF3: Potential for interaction {}-{}-{} ie {}-{}-{} " " not found in {} file", - i, j, k, elements[i_mapped_to-1], elements[j_mapped_to-1], - elements[k_mapped_to-1], potf_name); + i, j, k, elements[i_mapped_to - 1], elements[j_mapped_to - 1], + elements[k_mapped_to - 1], potf_name); if (setflag_3b[i_mapped_to][j_mapped_to][k_mapped_to] != 1) error->all(FLERR, "UF3: Interaction {}-{}-{} was mapped to {}-{}-{}, but " "potential interaction for {}-{}-{} was not found in " "{} file", - i, j, k, i_mapped_to, j_mapped_to, k_mapped_to, - i_mapped_to, j_mapped_to, k_mapped_to, potf_name); - - - cut_3b_list[i][j] = std::max(cut_3b_list[i_mapped_to][j_mapped_to], - cut_3b_list[i][j]); + i, j, k, i_mapped_to, j_mapped_to, k_mapped_to, i_mapped_to, j_mapped_to, + k_mapped_to, potf_name); + cut_3b_list[i][j] = std::max(cut_3b_list[i_mapped_to][j_mapped_to], cut_3b_list[i][j]); cut_3b[i][j][k] = cut_3b[i_mapped_to][j_mapped_to][k_mapped_to]; knot_spacing_type_3b[i][j][k] = knot_spacing_type_3b[i_mapped_to][j_mapped_to][k_mapped_to]; - knot_spacing_3b[i][j][k][0] = - knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; - knot_spacing_3b[i][j][k][1] = - knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; - knot_spacing_3b[i][j][k][2] = - knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; + knot_spacing_3b[i][j][k][0] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; + knot_spacing_3b[i][j][k][1] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; + knot_spacing_3b[i][j][k][2] = knot_spacing_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; int key = map_3b[i][j][k]; int mapped_to_key = map_3b[i_mapped_to][j_mapped_to][k_mapped_to]; @@ -953,14 +920,11 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) n3b_coeff_array_size[key][1] = n3b_coeff_array_size[mapped_to_key][1]; n3b_coeff_array_size[key][2] = n3b_coeff_array_size[mapped_to_key][2]; - min_cut_3b[i][j][k][0] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; + min_cut_3b[i][j][k][0] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][0]; - min_cut_3b[i][j][k][1] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; + min_cut_3b[i][j][k][1] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][1]; - min_cut_3b[i][j][k][2] = - min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; + min_cut_3b[i][j][k][2] = min_cut_3b[i_mapped_to][j_mapped_to][k_mapped_to][2]; for (int knot_no = 0; knot_no < n3b_knots_array_size[key][0]; knot_no++) n3b_knots_array[key][0][knot_no] = n3b_knots_array[mapped_to_key][0][knot_no]; @@ -988,29 +952,26 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) void PairUF3::communicate() { const int num_of_elements = atom->ntypes; - MPI_Bcast(&cut[0][0], (num_of_elements + 1)*(num_of_elements + 1), - MPI_DOUBLE, 0, world); + MPI_Bcast(&cut[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_DOUBLE, 0, world); - MPI_Bcast(&n2b_knots_array_size[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); - MPI_Bcast(&n2b_coeff_array_size[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + MPI_Bcast(&n2b_knots_array_size[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, + world); + MPI_Bcast(&n2b_coeff_array_size[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, + world); MPI_Bcast(&max_num_knots_2b, 1, MPI_INT, 0, world); MPI_Bcast(&max_num_coeff_2b, 1, MPI_INT, 0, world); - if (pot_3b){ - MPI_Bcast(&cut_3b_list[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); + if (pot_3b) { + MPI_Bcast(&cut_3b_list[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_DOUBLE, 0, + world); MPI_Bcast(&cut_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_DOUBLE, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1), MPI_DOUBLE, 0, + world); - MPI_Bcast(&n3b_knots_array_size[0][0], tot_interaction_count_3b*3, - MPI_INT, 0, world); - MPI_Bcast(&n3b_coeff_array_size[0][0], tot_interaction_count_3b*3, - MPI_INT, 0, world); + MPI_Bcast(&n3b_knots_array_size[0][0], tot_interaction_count_3b * 3, MPI_INT, 0, world); + MPI_Bcast(&n3b_coeff_array_size[0][0], tot_interaction_count_3b * 3, MPI_INT, 0, world); MPI_Bcast(&max_num_knots_3b, 1, MPI_INT, 0, world); MPI_Bcast(&max_num_coeff_3b, 1, MPI_INT, 0, world); @@ -1020,55 +981,54 @@ void PairUF3::communicate() memory->destroy(n2b_knots_array); memory->destroy(n2b_coeff_array); - memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, - max_num_knots_2b, "pair:n2b_knots_array"); - memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, - max_num_coeff_2b, "pair:n2b_coeff_array"); + memory->create(n2b_knots_array, num_of_elements + 1, num_of_elements + 1, max_num_knots_2b, + "pair:n2b_knots_array"); + memory->create(n2b_coeff_array, num_of_elements + 1, num_of_elements + 1, max_num_coeff_2b, + "pair:n2b_coeff_array"); if (pot_3b) { - memory->destroy(n3b_knots_array); - memory->destroy(n3b_coeff_array); + memory->destroy(n3b_knots_array); + memory->destroy(n3b_coeff_array); - memory->create(n3b_knots_array, tot_interaction_count_3b, 3, - max_num_knots_3b, "pair:n3b_knots_array"); + memory->create(n3b_knots_array, tot_interaction_count_3b, 3, max_num_knots_3b, + "pair:n3b_knots_array"); - memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:n3b_coeff_array"); + memory->create(n3b_coeff_array, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, + max_num_coeff_3b, "pair:n3b_coeff_array"); } } - MPI_Bcast(&knot_spacing_type_2b[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + MPI_Bcast(&knot_spacing_type_2b[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, + world); - MPI_Bcast(&knot_spacing_2b[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_DOUBLE, 0, world); + MPI_Bcast(&knot_spacing_2b[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_DOUBLE, 0, + world); MPI_Bcast(&n2b_knots_array[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*max_num_knots_2b, MPI_DOUBLE, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * max_num_knots_2b, MPI_DOUBLE, 0, world); MPI_Bcast(&n2b_coeff_array[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*max_num_coeff_2b, MPI_DOUBLE, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b, MPI_DOUBLE, 0, world); - MPI_Bcast(&setflag[0][0], - (num_of_elements + 1)*(num_of_elements + 1), MPI_INT, 0, world); + MPI_Bcast(&setflag[0][0], (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, world); if (pot_3b) { MPI_Bcast(&knot_spacing_type_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_INT, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, + world); MPI_Bcast(&knot_spacing_3b[0][0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, + (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3, MPI_DOUBLE, + 0, world); + MPI_Bcast(&n3b_knots_array[0][0][0], tot_interaction_count_3b * 3 * max_num_knots_3b, MPI_DOUBLE, 0, world); - MPI_Bcast(&n3b_knots_array[0][0][0], - tot_interaction_count_3b*3*max_num_knots_3b, MPI_DOUBLE, 0, world); MPI_Bcast(&n3b_coeff_array[0][0][0][0], - tot_interaction_count_3b*max_num_coeff_3b*max_num_coeff_3b*max_num_coeff_3b, + tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * max_num_coeff_3b, MPI_DOUBLE, 0, world); MPI_Bcast(&setflag_3b[0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1), - MPI_INT, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1), MPI_INT, 0, + world); MPI_Bcast(&min_cut_3b[0][0][0][0], - (num_of_elements + 1)*(num_of_elements + 1)*(num_of_elements + 1)*3, - MPI_DOUBLE, 0, world); + (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3, MPI_DOUBLE, + 0, world); } } @@ -1139,55 +1099,50 @@ void PairUF3::create_bsplines() "UF3: In the current version the knot spacing type, " "for all interactions needs to be same. For {}-{}-{} " "i.e. {}-{}-{} interaction expected{}, but found {}", - i,j,k,elements[map[i]],elements[map[j]],elements[map[k]], - spacing_type,knot_spacing_type_3b[i][j][k]); + i, j, k, elements[map[i]], elements[map[j]], elements[map[k]], spacing_type, + knot_spacing_type_3b[i][j][k]); } } } } - if (spacing_type) { get_starting_index_2b = &PairUF3::get_starting_index_nonuniform_2b; - if (pot_3b) - get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; - } - else { + if (pot_3b) get_starting_index_3b = &PairUF3::get_starting_index_nonuniform_3b; + } else { get_starting_index_2b = &PairUF3::get_starting_index_uniform_2b; - if (pot_3b) - get_starting_index_3b = &PairUF3::get_starting_index_uniform_3b; + if (pot_3b) get_starting_index_3b = &PairUF3::get_starting_index_uniform_3b; } create_cached_constants_2b(); - if (pot_3b) - create_cached_constants_3b(); + if (pot_3b) create_cached_constants_3b(); } int PairUF3::get_starting_index_uniform_2b(int i, int j, double r) { - return 3+(int)((r-n2b_knots_array[i][j][0])/(knot_spacing_2b[i][j])); + return 3 + (int) ((r - n2b_knots_array[i][j][0]) / (knot_spacing_2b[i][j])); } int PairUF3::get_starting_index_uniform_3b(int i, int j, int k, double r, int knot_dim) { - return 3+(int)(((r-n3b_knots_array[map_3b[i][j][k]][knot_dim][0])/ - knot_spacing_3b[i][j][k][knot_dim])); + return 3 + + (int) (((r - n3b_knots_array[map_3b[i][j][k]][knot_dim][0]) / + knot_spacing_3b[i][j][k][knot_dim])); } int PairUF3::get_starting_index_nonuniform_2b(int i, int j, double r) { - for (int l = 3; l < n2b_knots_array_size[i][j]-1; ++l) { - if ((n2b_knots_array[i][j][l] <= r) && (r < n2b_knots_array[i][j][l+1])) - return l; + for (int l = 3; l < n2b_knots_array_size[i][j] - 1; ++l) { + if ((n2b_knots_array[i][j][l] <= r) && (r < n2b_knots_array[i][j][l + 1])) return l; } return -1; } int PairUF3::get_starting_index_nonuniform_3b(int i, int j, int k, double r, int knot_dim) { - for (int l = 3; l < n3b_knots_array_size[map_3b[i][j][k]][knot_dim]-1; ++l) { + for (int l = 3; l < n3b_knots_array_size[map_3b[i][j][k]][knot_dim] - 1; ++l) { if ((n3b_knots_array[map_3b[i][j][k]][knot_dim][l] <= r) && - (r < n3b_knots_array[map_3b[i][j][k]][knot_dim][l+1])) + (r < n3b_knots_array[map_3b[i][j][k]][knot_dim][l + 1])) return l; } return -1; @@ -1198,18 +1153,16 @@ void PairUF3::create_cached_constants_2b() const int num_of_elements = atom->ntypes; memory->destroy(cached_constants_2b); memory->destroy(cached_constants_2b_deri); - memory->create(cached_constants_2b, num_of_elements + 1, num_of_elements + 1, - max_num_coeff_2b, 16, "pair:cached_constants_2b"); + memory->create(cached_constants_2b, num_of_elements + 1, num_of_elements + 1, max_num_coeff_2b, + 16, "pair:cached_constants_2b"); - memory->create(cached_constants_2b_deri, num_of_elements + 1, - num_of_elements + 1, max_num_coeff_2b - 1, 9, - "pair:cached_constants_2b_deri"); + memory->create(cached_constants_2b_deri, num_of_elements + 1, num_of_elements + 1, + max_num_coeff_2b - 1, 9, "pair:cached_constants_2b_deri"); for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++ ) { + for (int j = 1; j < num_of_elements + 1; j++) { for (int l = 0; l < n2b_coeff_array_size[i][j]; l++) { - uf3_bspline_basis3 bspline_basis(lmp, &n2b_knots_array[i][j][l], - n2b_coeff_array[i][j][l]); + uf3_bspline_basis3 bspline_basis(lmp, &n2b_knots_array[i][j][l], n2b_coeff_array[i][j][l]); for (int cc = 0; cc < 16; cc++) { cached_constants_2b[i][j][l][cc] = bspline_basis.constants[cc]; } @@ -1222,25 +1175,21 @@ void PairUF3::create_cached_constants_2b() //initialize coeff and knots for derivative //double* knots_for_deri = new double[n2b_knots_array_size[i][j]-2]; double *knots_for_deri = nullptr; - memory->create(knots_for_deri, n2b_knots_array_size[i][j]-2, "pair:knots_for_deri"); + memory->create(knots_for_deri, n2b_knots_array_size[i][j] - 2, "pair:knots_for_deri"); for (int l = 1; l < n2b_knots_array_size[i][j] - 1; l++) - knots_for_deri[l-1] = n2b_knots_array[i][j][l]; - + knots_for_deri[l - 1] = n2b_knots_array[i][j][l]; //double* coeff_for_deri = new double[n2b_coeff_array_size[i][j]-1]; double *coeff_for_deri = nullptr; - memory->create(coeff_for_deri, n2b_coeff_array_size[i][j]-1, "pair:coeff_for_deri"); + memory->create(coeff_for_deri, n2b_coeff_array_size[i][j] - 1, "pair:coeff_for_deri"); for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { - double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - - n2b_knots_array[i][j][l + 1]); - coeff_for_deri[l] = - (n2b_coeff_array[i][j][l+1] - n2b_coeff_array[i][j][l]) * dntemp; + double dntemp = 3 / (n2b_knots_array[i][j][l + 4] - n2b_knots_array[i][j][l + 1]); + coeff_for_deri[l] = (n2b_coeff_array[i][j][l + 1] - n2b_coeff_array[i][j][l]) * dntemp; } for (int l = 0; l < n2b_coeff_array_size[i][j] - 1; l++) { - uf3_bspline_basis2 bspline_basis_deri(lmp, &knots_for_deri[l], - coeff_for_deri[l]); + uf3_bspline_basis2 bspline_basis_deri(lmp, &knots_for_deri[l], coeff_for_deri[l]); for (int cc = 0; cc < 9; cc++) { cached_constants_2b_deri[i][j][l][cc] = bspline_basis_deri.constants[cc]; } @@ -1262,24 +1211,24 @@ void PairUF3::create_cached_constants_3b() memory->destroy(cached_constants_3b); memory->destroy(cached_constants_3b_deri); - memory->create(coeff_for_der_jk, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_jk"); + memory->create(coeff_for_der_jk, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, + max_num_coeff_3b, "pair:coeff_for_der_jk"); - memory->create(coeff_for_der_ik, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ik"); + memory->create(coeff_for_der_ik, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, + max_num_coeff_3b, "pair:coeff_for_der_ik"); - memory->create(coeff_for_der_ij, tot_interaction_count_3b, max_num_coeff_3b, - max_num_coeff_3b, max_num_coeff_3b, "pair:coeff_for_der_ij"); + memory->create(coeff_for_der_ij, tot_interaction_count_3b, max_num_coeff_3b, max_num_coeff_3b, + max_num_coeff_3b, "pair:coeff_for_der_ij"); - memory->create(cached_constants_3b, tot_interaction_count_3b, 3, - max_num_coeff_3b, 16, "pair:cached_constants_3b"); + memory->create(cached_constants_3b, tot_interaction_count_3b, 3, max_num_coeff_3b, 16, + "pair:cached_constants_3b"); - memory->create(cached_constants_3b_deri, tot_interaction_count_3b, 3, - max_num_coeff_3b - 1, 9, "pair:cached_constants_3b_deri"); + memory->create(cached_constants_3b_deri, tot_interaction_count_3b, 3, max_num_coeff_3b - 1, 9, + "pair:cached_constants_3b_deri"); for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++ ) { - for(int k = 1; k < num_of_elements + 1; k++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { int map_to = map_3b[i][j][k]; for (int l = 0; l < n3b_knots_array_size[map_to][2] - 4; l++) { @@ -1304,59 +1253,58 @@ void PairUF3::create_cached_constants_3b() } for (int i = 1; i < num_of_elements + 1; i++) { - for (int j = 1; j < num_of_elements + 1; j++ ) { - for(int k = 1; k < num_of_elements + 1; k++) { + for (int j = 1; j < num_of_elements + 1; j++) { + for (int k = 1; k < num_of_elements + 1; k++) { int map_to = map_3b[i][j][k]; - double **knots_for_der = nullptr;//new double*[3]; + double **knots_for_der = nullptr; //new double*[3]; //n3b_knots_array_size[map_to][0] for jk knot vector --> always largest - memory->create(knots_for_der, 3, n3b_knots_array_size[map_to][0]-1, - "pair:knots_for_der"); + memory->create(knots_for_der, 3, n3b_knots_array_size[map_to][0] - 1, "pair:knots_for_der"); //--deri_basis_jk for (int l = 1; l < n3b_knots_array_size[map_to][0] - 1; l++) - knots_for_der[0][l-1] = n3b_knots_array[map_to][0][l]; + knots_for_der[0][l - 1] = n3b_knots_array[map_to][0][l]; - for(int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { - for(int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { - for(int n = 0; n < n3b_coeff_array_size[map_to][2] - 1; n++) { - double dntemp = 3/(n3b_knots_array[map_to][0][n + 4] - - n3b_knots_array[map_to][0][n + 1]); + for (int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { + for (int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { + for (int n = 0; n < n3b_coeff_array_size[map_to][2] - 1; n++) { + double dntemp = + 3 / (n3b_knots_array[map_to][0][n + 4] - n3b_knots_array[map_to][0][n + 1]); coeff_for_der_jk[map_to][l][m][n] = - ((n3b_coeff_array[map_to][l][m][n + 1] - - n3b_coeff_array[map_to][l][m][n])*dntemp); + ((n3b_coeff_array[map_to][l][m][n + 1] - n3b_coeff_array[map_to][l][m][n]) * + dntemp); } } } //--deri_basis_ik for (int l = 1; l < n3b_knots_array_size[map_to][1] - 1; l++) - knots_for_der[1][l-1] = n3b_knots_array[map_to][1][l]; + knots_for_der[1][l - 1] = n3b_knots_array[map_to][1][l]; for (int l = 0; l < n3b_coeff_array_size[map_to][0]; l++) { for (int m = 0; m < n3b_coeff_array_size[map_to][1] - 1; m++) { - double dntemp = 3/(n3b_knots_array[map_to][1][m + 4] - - n3b_knots_array[map_to][1][m + 1]); + double dntemp = + 3 / (n3b_knots_array[map_to][1][m + 4] - n3b_knots_array[map_to][1][m + 1]); for (int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { coeff_for_der_ik[map_to][l][m][n] = - ((n3b_coeff_array[map_to][l][m + 1][n] - - n3b_coeff_array[map_to][l][m][n])*dntemp); + ((n3b_coeff_array[map_to][l][m + 1][n] - n3b_coeff_array[map_to][l][m][n]) * + dntemp); } } } //--deri_basis_ij for (int l = 1; l < n3b_knots_array_size[map_to][2] - 1; l++) - knots_for_der[2][l-1] = n3b_knots_array[map_to][2][l]; + knots_for_der[2][l - 1] = n3b_knots_array[map_to][2][l]; for (int l = 0; l < n3b_coeff_array_size[map_to][0] - 1; l++) { - double dntemp = 3/(n3b_knots_array[map_to][2][l + 4] - - n3b_knots_array[map_to][2][l + 1]); - for(int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { - for(int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { + double dntemp = + 3 / (n3b_knots_array[map_to][2][l + 4] - n3b_knots_array[map_to][2][l + 1]); + for (int m = 0; m < n3b_coeff_array_size[map_to][1]; m++) { + for (int n = 0; n < n3b_coeff_array_size[map_to][2]; n++) { coeff_for_der_ij[map_to][l][m][n] = - ((n3b_coeff_array[map_to][l + 1][m][n] - - n3b_coeff_array[map_to][l][m][n]) * dntemp); + ((n3b_coeff_array[map_to][l + 1][m][n] - n3b_coeff_array[map_to][l][m][n]) * + dntemp); } } } @@ -1450,17 +1398,17 @@ void PairUF3::compute(int eflag, int vflag) } } - int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,rij); + int knot_start_index = (this->*get_starting_index_2b)(itype, jtype, rij); double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; + force_2b += rij * cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += rij * cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; - force_2b += rij*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + force_2b += rij * cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; fpair = -1 * force_2b / rij; @@ -1476,23 +1424,23 @@ void PairUF3::compute(int eflag, int vflag) f[j][2] -= fz; if (eflag) { - double rth = rsq*rij; + double rth = rsq * rij; evdwl = cached_constants_2b[itype][jtype][knot_start_index][0]; - evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index][1]; - evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index][2]; - evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index][3]; - evdwl += cached_constants_2b[itype][jtype][knot_start_index-1][4]; - evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-1][5]; - evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-1][6]; - evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-1][7]; - evdwl += cached_constants_2b[itype][jtype][knot_start_index-2][8]; - evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-2][9]; - evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-2][10]; - evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-2][11]; - evdwl += cached_constants_2b[itype][jtype][knot_start_index-3][12]; - evdwl += rij*cached_constants_2b[itype][jtype][knot_start_index-3][13]; - evdwl += rsq*cached_constants_2b[itype][jtype][knot_start_index-3][14]; - evdwl += rth*cached_constants_2b[itype][jtype][knot_start_index-3][15]; + evdwl += rij * cached_constants_2b[itype][jtype][knot_start_index][1]; + evdwl += rsq * cached_constants_2b[itype][jtype][knot_start_index][2]; + evdwl += rth * cached_constants_2b[itype][jtype][knot_start_index][3]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index - 1][4]; + evdwl += rij * cached_constants_2b[itype][jtype][knot_start_index - 1][5]; + evdwl += rsq * cached_constants_2b[itype][jtype][knot_start_index - 1][6]; + evdwl += rth * cached_constants_2b[itype][jtype][knot_start_index - 1][7]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index - 2][8]; + evdwl += rij * cached_constants_2b[itype][jtype][knot_start_index - 2][9]; + evdwl += rsq * cached_constants_2b[itype][jtype][knot_start_index - 2][10]; + evdwl += rth * cached_constants_2b[itype][jtype][knot_start_index - 2][11]; + evdwl += cached_constants_2b[itype][jtype][knot_start_index - 3][12]; + evdwl += rij * cached_constants_2b[itype][jtype][knot_start_index - 3][13]; + evdwl += rsq * cached_constants_2b[itype][jtype][knot_start_index - 3][14]; + evdwl += rth * cached_constants_2b[itype][jtype][knot_start_index - 3][15]; }; if (evflag) { @@ -1567,27 +1515,27 @@ void PairUF3::compute(int eflag, int vflag) rik_sq = (del_rki[0] * del_rki[0]) + (del_rki[1] * del_rki[1]) + (del_rki[2] * del_rki[2]); rik = sqrt(rik_sq); - if ((rij <= cut_3b[itype][jtype][ktype]) && - (rik <= cut_3b[itype][ktype][jtype]) && - (rij >= min_cut_3b[itype][jtype][ktype][2]) && - (rik >= min_cut_3b[itype][jtype][ktype][1])) { + if ((rij <= cut_3b[itype][jtype][ktype]) && (rik <= cut_3b[itype][ktype][jtype]) && + (rij >= min_cut_3b[itype][jtype][ktype][2]) && + (rik >= min_cut_3b[itype][jtype][ktype][1])) { del_rkj[0] = x[k][0] - x[j][0]; del_rkj[1] = x[k][1] - x[j][1]; del_rkj[2] = x[k][2] - x[j][2]; - rjk_sq = (del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]); + rjk_sq = + (del_rkj[0] * del_rkj[0]) + (del_rkj[1] * del_rkj[1]) + (del_rkj[2] * del_rkj[2]); rjk = sqrt(rjk_sq); if (rjk >= min_cut_3b[itype][jtype][ktype][0]) { - double rij_th = rij*rij_sq; - double rik_th = rik*rik_sq; - double rjk_th = rjk*rjk_sq; + double rij_th = rij * rij_sq; + double rik_th = rik * rik_sq; + double rjk_th = rjk * rjk_sq; int map_to = map_3b[itype][jtype][ktype]; - int knot_start_index_ij = (this->*get_starting_index_3b)(itype,jtype,ktype,rij,2); - int knot_start_index_ik = (this->*get_starting_index_3b)(itype,jtype,ktype,rik,1); - int knot_start_index_jk = (this->*get_starting_index_3b)(itype,jtype,ktype,rjk,0); + int knot_start_index_ij = (this->*get_starting_index_3b)(itype, jtype, ktype, rij, 2); + int knot_start_index_ik = (this->*get_starting_index_3b)(itype, jtype, ktype, rik, 1); + int knot_start_index_jk = (this->*get_starting_index_3b)(itype, jtype, ktype, rjk, 0); double basis_ij[4]; double basis_ik[4]; double basis_jk[4]; @@ -1597,107 +1545,125 @@ void PairUF3::compute(int eflag, int vflag) //--------------basis_ij basis_ij[0] = cached_constants_3b[map_to][0][knot_start_index_ij - 3][12]; - basis_ij[0] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 3][13]; - basis_ij[0] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 3][14]; - basis_ij[0] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 3][15]; + basis_ij[0] += rij * cached_constants_3b[map_to][0][knot_start_index_ij - 3][13]; + basis_ij[0] += rij_sq * cached_constants_3b[map_to][0][knot_start_index_ij - 3][14]; + basis_ij[0] += rij_th * cached_constants_3b[map_to][0][knot_start_index_ij - 3][15]; basis_ij[1] = cached_constants_3b[map_to][0][knot_start_index_ij - 2][8]; - basis_ij[1] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 2][9]; - basis_ij[1] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 2][10]; - basis_ij[1] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 2][11]; + basis_ij[1] += rij * cached_constants_3b[map_to][0][knot_start_index_ij - 2][9]; + basis_ij[1] += rij_sq * cached_constants_3b[map_to][0][knot_start_index_ij - 2][10]; + basis_ij[1] += rij_th * cached_constants_3b[map_to][0][knot_start_index_ij - 2][11]; basis_ij[2] = cached_constants_3b[map_to][0][knot_start_index_ij - 1][4]; - basis_ij[2] += rij*cached_constants_3b[map_to][0][knot_start_index_ij - 1][5]; - basis_ij[2] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij - 1][6]; - basis_ij[2] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij - 1][7]; + basis_ij[2] += rij * cached_constants_3b[map_to][0][knot_start_index_ij - 1][5]; + basis_ij[2] += rij_sq * cached_constants_3b[map_to][0][knot_start_index_ij - 1][6]; + basis_ij[2] += rij_th * cached_constants_3b[map_to][0][knot_start_index_ij - 1][7]; basis_ij[3] = cached_constants_3b[map_to][0][knot_start_index_ij][0]; - basis_ij[3] += rij*cached_constants_3b[map_to][0][knot_start_index_ij][1]; - basis_ij[3] += rij_sq*cached_constants_3b[map_to][0][knot_start_index_ij][2]; - basis_ij[3] += rij_th*cached_constants_3b[map_to][0][knot_start_index_ij][3]; + basis_ij[3] += rij * cached_constants_3b[map_to][0][knot_start_index_ij][1]; + basis_ij[3] += rij_sq * cached_constants_3b[map_to][0][knot_start_index_ij][2]; + basis_ij[3] += rij_th * cached_constants_3b[map_to][0][knot_start_index_ij][3]; //--------------basis_ik basis_ik[0] = cached_constants_3b[map_to][1][knot_start_index_ik - 3][12]; - basis_ik[0] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 3][13]; - basis_ik[0] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 3][14]; - basis_ik[0] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 3][15]; + basis_ik[0] += rik * cached_constants_3b[map_to][1][knot_start_index_ik - 3][13]; + basis_ik[0] += rik_sq * cached_constants_3b[map_to][1][knot_start_index_ik - 3][14]; + basis_ik[0] += rik_th * cached_constants_3b[map_to][1][knot_start_index_ik - 3][15]; basis_ik[1] = cached_constants_3b[map_to][1][knot_start_index_ik - 2][8]; - basis_ik[1] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 2][9]; - basis_ik[1] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 2][10]; - basis_ik[1] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 2][11]; + basis_ik[1] += rik * cached_constants_3b[map_to][1][knot_start_index_ik - 2][9]; + basis_ik[1] += rik_sq * cached_constants_3b[map_to][1][knot_start_index_ik - 2][10]; + basis_ik[1] += rik_th * cached_constants_3b[map_to][1][knot_start_index_ik - 2][11]; basis_ik[2] = cached_constants_3b[map_to][1][knot_start_index_ik - 1][4]; - basis_ik[2] += rik*cached_constants_3b[map_to][1][knot_start_index_ik - 1][5]; - basis_ik[2] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik - 1][6]; - basis_ik[2] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik - 1][7]; + basis_ik[2] += rik * cached_constants_3b[map_to][1][knot_start_index_ik - 1][5]; + basis_ik[2] += rik_sq * cached_constants_3b[map_to][1][knot_start_index_ik - 1][6]; + basis_ik[2] += rik_th * cached_constants_3b[map_to][1][knot_start_index_ik - 1][7]; basis_ik[3] = cached_constants_3b[map_to][1][knot_start_index_ik][0]; - basis_ik[3] += rik*cached_constants_3b[map_to][1][knot_start_index_ik][1]; - basis_ik[3] += rik_sq*cached_constants_3b[map_to][1][knot_start_index_ik][2]; - basis_ik[3] += rik_th*cached_constants_3b[map_to][1][knot_start_index_ik][3]; + basis_ik[3] += rik * cached_constants_3b[map_to][1][knot_start_index_ik][1]; + basis_ik[3] += rik_sq * cached_constants_3b[map_to][1][knot_start_index_ik][2]; + basis_ik[3] += rik_th * cached_constants_3b[map_to][1][knot_start_index_ik][3]; //--------------basis_jk basis_jk[0] = cached_constants_3b[map_to][2][knot_start_index_jk - 3][12]; - basis_jk[0] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 3][13]; - basis_jk[0] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 3][14]; - basis_jk[0] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 3][15]; + basis_jk[0] += rjk * cached_constants_3b[map_to][2][knot_start_index_jk - 3][13]; + basis_jk[0] += rjk_sq * cached_constants_3b[map_to][2][knot_start_index_jk - 3][14]; + basis_jk[0] += rjk_th * cached_constants_3b[map_to][2][knot_start_index_jk - 3][15]; basis_jk[1] = cached_constants_3b[map_to][2][knot_start_index_jk - 2][8]; - basis_jk[1] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 2][9]; - basis_jk[1] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 2][10]; - basis_jk[1] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 2][11]; + basis_jk[1] += rjk * cached_constants_3b[map_to][2][knot_start_index_jk - 2][9]; + basis_jk[1] += rjk_sq * cached_constants_3b[map_to][2][knot_start_index_jk - 2][10]; + basis_jk[1] += rjk_th * cached_constants_3b[map_to][2][knot_start_index_jk - 2][11]; basis_jk[2] = cached_constants_3b[map_to][2][knot_start_index_jk - 1][4]; - basis_jk[2] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk - 1][5]; - basis_jk[2] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk - 1][6]; - basis_jk[2] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk - 1][7]; + basis_jk[2] += rjk * cached_constants_3b[map_to][2][knot_start_index_jk - 1][5]; + basis_jk[2] += rjk_sq * cached_constants_3b[map_to][2][knot_start_index_jk - 1][6]; + basis_jk[2] += rjk_th * cached_constants_3b[map_to][2][knot_start_index_jk - 1][7]; basis_jk[3] = cached_constants_3b[map_to][2][knot_start_index_jk][0]; - basis_jk[3] += rjk*cached_constants_3b[map_to][2][knot_start_index_jk][1]; - basis_jk[3] += rjk_sq*cached_constants_3b[map_to][2][knot_start_index_jk][2]; - basis_jk[3] += rjk_th*cached_constants_3b[map_to][2][knot_start_index_jk][3]; + basis_jk[3] += rjk * cached_constants_3b[map_to][2][knot_start_index_jk][1]; + basis_jk[3] += rjk_sq * cached_constants_3b[map_to][2][knot_start_index_jk][2]; + basis_jk[3] += rjk_th * cached_constants_3b[map_to][2][knot_start_index_jk][3]; //----------------basis_ij_der basis_ij_der[0] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][6]; - basis_ij_der[0] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7]; - basis_ij_der[0] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]; + basis_ij_der[0] += + rij * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][7]; + basis_ij_der[0] += + rij_sq * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 3][8]; basis_ij_der[1] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][3]; - basis_ij_der[1] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; - basis_ij_der[1] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]; + basis_ij_der[1] += + rij * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][4]; + basis_ij_der[1] += + rij_sq * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 2][5]; basis_ij_der[2] = cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][0]; - basis_ij_der[2] += rij*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1]; - basis_ij_der[2] += rij_sq*cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]; + basis_ij_der[2] += + rij * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][1]; + basis_ij_der[2] += + rij_sq * cached_constants_3b_deri[map_to][0][knot_start_index_ij - 1][2]; //----------------basis_ik_der basis_ik_der[0] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][6]; - basis_ik_der[0] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][7]; - basis_ik_der[0] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][8]; + basis_ik_der[0] += + rik * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][7]; + basis_ik_der[0] += + rik_sq * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 3][8]; basis_ik_der[1] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][3]; - basis_ik_der[1] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][4]; - basis_ik_der[1] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][5]; + basis_ik_der[1] += + rik * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][4]; + basis_ik_der[1] += + rik_sq * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 2][5]; basis_ik_der[2] = cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][0]; - basis_ik_der[2] += rik*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][1]; - basis_ik_der[2] += rik_sq*cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][2]; + basis_ik_der[2] += + rik * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][1]; + basis_ik_der[2] += + rik_sq * cached_constants_3b_deri[map_to][1][knot_start_index_ik - 1][2]; //----------------basis_jk_der basis_jk_der[0] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][6]; - basis_jk_der[0] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][7]; - basis_jk_der[0] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][8]; + basis_jk_der[0] += + rjk * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][7]; + basis_jk_der[0] += + rjk_sq * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 3][8]; basis_jk_der[1] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][3]; - basis_jk_der[1] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][4]; - basis_jk_der[1] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][5]; + basis_jk_der[1] += + rjk * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][4]; + basis_jk_der[1] += + rjk_sq * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 2][5]; basis_jk_der[2] = cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][0]; - basis_jk_der[2] += rjk*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][1]; - basis_jk_der[2] += rjk_sq*cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][2]; + basis_jk_der[2] += + rjk * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][1]; + basis_jk_der[2] += + rjk_sq * cached_constants_3b_deri[map_to][2][knot_start_index_jk - 1][2]; - double triangle_eval[4] = {0,0,0,0}; + double triangle_eval[4] = {0, 0, 0, 0}; int iknot_ij = knot_start_index_ij - 3; int iknot_ik = knot_start_index_ik - 3; @@ -1707,7 +1673,7 @@ void PairUF3::compute(int eflag, int vflag) const double basis_ij_der_i = basis_ij_der[l]; for (int m = 0; m < 4; m++) { const double factor = basis_ij_der_i * basis_ik[m]; - const double* slice = + const double *slice = &coeff_for_der_ij[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; double tmp[4]; tmp[0] = slice[0] * basis_jk[0]; @@ -1723,7 +1689,7 @@ void PairUF3::compute(int eflag, int vflag) const double basis_ij_i = basis_ij[l]; for (int m = 0; m < 3; m++) { const double factor = basis_ij_i * basis_ik_der[m]; - const double* slice = + const double *slice = &coeff_for_der_ik[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; double tmp[4]; tmp[0] = slice[0] * basis_jk[0]; @@ -1739,7 +1705,7 @@ void PairUF3::compute(int eflag, int vflag) const double basis_ij_i = basis_ij[l]; for (int m = 0; m < 4; m++) { const double factor = basis_ij_i * basis_ik[m]; - const double* slice = + const double *slice = &coeff_for_der_jk[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; double tmp[3]; tmp[0] = slice[0] * basis_jk_der[0]; @@ -1797,7 +1763,7 @@ void PairUF3::compute(int eflag, int vflag) const double basis_ij_i = basis_ij[l]; for (int m = 0; m < 4; m++) { const double factor = basis_ij_i * basis_ik[m]; - const double* slice = + const double *slice = &n3b_coeff_array[map_to][iknot_ij + l][iknot_ik + m][iknot_jk]; double tmp[4]; tmp[0] = slice[0] * basis_jk[0]; @@ -1876,36 +1842,36 @@ double PairUF3::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq, double r = sqrt(rsq); if (r < cut[itype][jtype]) { - int knot_start_index = (this->*get_starting_index_2b)(itype,jtype,r); + int knot_start_index = (this->*get_starting_index_2b)(itype, jtype, r); double force_2b = cached_constants_2b_deri[itype][jtype][knot_start_index - 1][0]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; + force_2b += r * cached_constants_2b_deri[itype][jtype][knot_start_index - 1][1]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 1][2]; force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 2][3]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; + force_2b += r * cached_constants_2b_deri[itype][jtype][knot_start_index - 2][4]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 2][5]; force_2b += cached_constants_2b_deri[itype][jtype][knot_start_index - 3][6]; - force_2b += r*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; - force_2b += rsq*cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; + force_2b += r * cached_constants_2b_deri[itype][jtype][knot_start_index - 3][7]; + force_2b += rsq * cached_constants_2b_deri[itype][jtype][knot_start_index - 3][8]; fforce = factor_lj * force_2b; - double rth = rsq*r; + double rth = rsq * r; value = cached_constants_2b[itype][jtype][knot_start_index][0]; - value += r*cached_constants_2b[itype][jtype][knot_start_index][1]; - value += rsq*cached_constants_2b[itype][jtype][knot_start_index][2]; - value += rth*cached_constants_2b[itype][jtype][knot_start_index][3]; - value += cached_constants_2b[itype][jtype][knot_start_index-1][4]; - value += r*cached_constants_2b[itype][jtype][knot_start_index-1][5]; - value += rsq*cached_constants_2b[itype][jtype][knot_start_index-1][6]; - value += rth*cached_constants_2b[itype][jtype][knot_start_index-1][7]; - value += cached_constants_2b[itype][jtype][knot_start_index-2][8]; - value += r*cached_constants_2b[itype][jtype][knot_start_index-2][9]; - value += rsq*cached_constants_2b[itype][jtype][knot_start_index-2][10]; - value += rth*cached_constants_2b[itype][jtype][knot_start_index-2][11]; - value += cached_constants_2b[itype][jtype][knot_start_index-3][12]; - value += r*cached_constants_2b[itype][jtype][knot_start_index-3][13]; - value += rsq*cached_constants_2b[itype][jtype][knot_start_index-3][14]; - value += rth*cached_constants_2b[itype][jtype][knot_start_index-3][15]; + value += r * cached_constants_2b[itype][jtype][knot_start_index][1]; + value += rsq * cached_constants_2b[itype][jtype][knot_start_index][2]; + value += rth * cached_constants_2b[itype][jtype][knot_start_index][3]; + value += cached_constants_2b[itype][jtype][knot_start_index - 1][4]; + value += r * cached_constants_2b[itype][jtype][knot_start_index - 1][5]; + value += rsq * cached_constants_2b[itype][jtype][knot_start_index - 1][6]; + value += rth * cached_constants_2b[itype][jtype][knot_start_index - 1][7]; + value += cached_constants_2b[itype][jtype][knot_start_index - 2][8]; + value += r * cached_constants_2b[itype][jtype][knot_start_index - 2][9]; + value += rsq * cached_constants_2b[itype][jtype][knot_start_index - 2][10]; + value += rth * cached_constants_2b[itype][jtype][knot_start_index - 2][11]; + value += cached_constants_2b[itype][jtype][knot_start_index - 3][12]; + value += r * cached_constants_2b[itype][jtype][knot_start_index - 3][13]; + value += rsq * cached_constants_2b[itype][jtype][knot_start_index - 3][14]; + value += rth * cached_constants_2b[itype][jtype][knot_start_index - 3][15]; } return factor_lj * value; @@ -1919,9 +1885,10 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //***setflag_3b - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //knot_spacing_type_2b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(int); //knot_spacing_type_2b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * - sizeof(int); //knot_spacing_type_3b + sizeof(int); //knot_spacing_type_3b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //cut @@ -1933,52 +1900,55 @@ double PairUF3::memory_usage() bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * 3 * sizeof(double); //min_cut_3b - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //knot_spacing_2b + bytes += + (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(double); //knot_spacing_2b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * - sizeof(double); //knot_spacing_3b + sizeof(double); //knot_spacing_3b bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_knots_2b * - sizeof(double); //n2b_knots_array + sizeof(double); //n2b_knots_array bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * - sizeof(double); //n2b_coeff_array + sizeof(double); //n2b_coeff_array - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_knots_array_size - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * sizeof(int); //n2b_coeff_array_size - - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * - 16 * sizeof(double); //cached_constants_2b, - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (max_num_coeff_2b-1) * - 9 * sizeof(double); //cached_constants_2b_deri + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(int); //n2b_knots_array_size + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(int); //n2b_coeff_array_size + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * max_num_coeff_2b * 16 * + sizeof(double); //cached_constants_2b, + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (max_num_coeff_2b - 1) * 9 * + sizeof(double); //cached_constants_2b_deri if (pot_3b) { - bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * - (num_of_elements + 1) * sizeof(int); //map_3b + bytes += (double) (num_of_elements + 1) * (num_of_elements + 1) * (num_of_elements + 1) * + sizeof(int); //map_3b - bytes += (double) tot_interaction_count_3b * 3 * max_num_knots_3b * sizeof(double); //n3b_knots_array + bytes += (double) tot_interaction_count_3b * 3 * max_num_knots_3b * + sizeof(double); //n3b_knots_array bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * - max_num_coeff_3b * sizeof(double); //n3b_coeff_array + max_num_coeff_3b * sizeof(double); //n3b_coeff_array - bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_knots_array_size - bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_coeff_array_size + bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_knots_array_size + bytes += (double) tot_interaction_count_3b * 3 * sizeof(int); //n3b_coeff_array_size - bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b - * max_num_coeff_3b * 3 * sizeof(double); //coeff_for_der_jk coeff_for_der_ik coeff_for_der_ij - - bytes += (double) tot_interaction_count_3b * 3 * max_num_coeff_3b * 16 - * sizeof(double); //cached_constants_3b - bytes += (double) tot_interaction_count_3b * 3 * (max_num_coeff_3b - 1) * 16 - * sizeof(double); //cached_constants_3b_deri + bytes += (double) tot_interaction_count_3b * max_num_coeff_3b * max_num_coeff_3b * + max_num_coeff_3b * 3 * + sizeof(double); //coeff_for_der_jk coeff_for_der_ik coeff_for_der_ij + bytes += (double) tot_interaction_count_3b * 3 * max_num_coeff_3b * 16 * + sizeof(double); //cached_constants_3b + bytes += (double) tot_interaction_count_3b * 3 * (max_num_coeff_3b - 1) * 16 * + sizeof(double); //cached_constants_3b_deri } bytes += (double) maxshort * sizeof(int); //neighshort - bytes += (double) 6 * sizeof(int); //maxshort, bsplines_created, nbody_flag, - //max_num_knots_2b, max_num_coeff_2b, - //max_num_knots_3b, max_num_coeff_3b - bytes += (double) 1 * sizeof(bool); //pot_3b + bytes += (double) 6 * sizeof(int); //maxshort, bsplines_created, nbody_flag, + //max_num_knots_2b, max_num_coeff_2b, + //max_num_knots_3b, max_num_coeff_3b + bytes += (double) 1 * sizeof(bool); //pot_3b return bytes; } From a6d51b7cc81bc15de450c142c8512de564b0a4a6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jun 2024 01:04:09 -0400 Subject: [PATCH 298/313] follow LAMMPS programming style more closely --- src/ML-UF3/pair_uf3.cpp | 7 +++++++ src/ML-UF3/pair_uf3.h | 17 ++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index 8efc18a2d9..c1b4a2f688 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -59,6 +59,13 @@ PairUF3::PairUF3(LAMMPS *lmp) : centroidstressflag = CENTROID_AVAIL; manybody_flag = 1; bsplines_created = 0; + pot_3b = false; + nbody_flag = 3; + max_num_knots_2b = 0; + max_num_coeff_2b = 0; + max_num_knots_3b = 0; + max_num_coeff_3b = 0; + tot_interaction_count_3b = 0; } /* ---------------------------------------------------------------------- */ diff --git a/src/ML-UF3/pair_uf3.h b/src/ML-UF3/pair_uf3.h index 9c6ec5022f..58a951c4c2 100644 --- a/src/ML-UF3/pair_uf3.h +++ b/src/ML-UF3/pair_uf3.h @@ -42,7 +42,6 @@ class PairUF3 : public Pair { void init_list(int, class NeighList *) override; // needed for ptr to full neigh list double init_one(int, int) override; // needed for cutoff radius for neighbour list double single(int, int, int, int, double, double, double, double &) override; - double memory_usage() override; protected: @@ -57,7 +56,7 @@ class PairUF3 : public Pair { int ***map_3b; double ***n3b_knots_array, ****n3b_coeff_array; int **n3b_knots_array_size, **n3b_coeff_array_size; - double ****coeff_for_der_jk, ****coeff_for_der_ik,****coeff_for_der_ij; + double ****coeff_for_der_jk, ****coeff_for_der_ik, ****coeff_for_der_ij; double ****cached_constants_3b, ****cached_constants_3b_deri; int *neighshort, maxshort; // short neighbor list array for 3body interaction @@ -66,6 +65,7 @@ class PairUF3 : public Pair { void communicate(); int bsplines_created; bool pot_3b; + virtual void allocate(); void create_bsplines(); void create_cached_constants_2b(); @@ -80,16 +80,15 @@ class PairUF3 : public Pair { int (PairUF3::*get_starting_index_2b)(int i, int j, double r); int (PairUF3::*get_starting_index_3b)(int i, int j, int k, double r, int knot_dim); - int nbody_flag = 3; - int max_num_knots_2b = 0; - int max_num_coeff_2b = 0; - int max_num_knots_3b = 0; - int max_num_coeff_3b = 0; - int tot_interaction_count_3b = 0; + int nbody_flag; + int max_num_knots_2b; + int max_num_coeff_2b; + int max_num_knots_3b; + int max_num_coeff_3b; + int tot_interaction_count_3b; }; } // namespace LAMMPS_NS #endif #endif - From c7f386ce9fb2cd90c9b208cadb17f411d4f5799c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jun 2024 01:13:36 -0400 Subject: [PATCH 299/313] fix missing arguments and cut-n-paste error reported by coverity scan --- src/ML-UF3/pair_uf3.cpp | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/ML-UF3/pair_uf3.cpp b/src/ML-UF3/pair_uf3.cpp index c1b4a2f688..a952403287 100644 --- a/src/ML-UF3/pair_uf3.cpp +++ b/src/ML-UF3/pair_uf3.cpp @@ -288,8 +288,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) //2B block if (fp2nd_line.count() != 6) error->all(FLERR, - "UF3: Expected 6 words on line {} of {} file " - "but found {} word/s", + "UF3: Expected 6 words on line {} of {} file but found {} word/s", line_counter, potf_name, fp2nd_line.count()); //get the elements @@ -476,8 +475,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (fp7th_line.count() != 3) error->all(FLERR, "UF3: Expected 3 numbers on 7th line => " - "SHAPE_OF_COEFF_MATRIX[I][J][K] " - "found {} numbers", + "SHAPE_OF_COEFF_MATRIX[I][J][K] found {} numbers", fp7th_line.count()); int coeff_matrix_dim1 = fp7th_line.next_int(); @@ -609,10 +607,9 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (fp4th_line.count() != num_knots_2b) error->all(FLERR, - "UF3: Error readig the 2B potential block for {}-{}\n" - "Expecter {} numbers on 4th line of the block but found {} " - "numbers", - num_knots_2b, fp4th_line.count()); + "UF3: Error reading the 2B potential block for {}-{}\n" + "Expected {} numbers on 4th line of the block but found {} numbers", + element1, element2, num_knots_2b, fp4th_line.count()); for (int k = 0; k < num_knots_2b; k++) { n2b_knots_array[itype][jtype][k] = fp4th_line.next_double(); @@ -633,10 +630,9 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (fp6th_line.count() != num_of_coeff_2b) error->all(FLERR, - "UF3: Error readig the 2B potential block for {}-{}\n" - "Expecter {} numbers on 6th line of the block but found {} " - "numbers", - num_knots_2b, fp4th_line.count()); + "UF3: Error reading the 2B potential block for {}-{}\n" + "Expected {} numbers on 6th line of the block but found {} numbers", + element1, element2, num_of_coeff_2b, fp6th_line.count()); for (int k = 0; k < num_of_coeff_2b; k++) { n2b_coeff_array[itype][jtype][k] = fp6th_line.next_double(); @@ -646,8 +642,8 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) if (num_knots_2b != num_of_coeff_2b + 4) error->all(FLERR, "UF3: {}-{} interaction block has incorrect knot and " - "coeff data nknots!=ncoeffs + 3 + 1", - element1, element2); + "coeff data nknots (={}) != ncoeffs (={}) + 3 + 1", + element1, element2, num_knots_2b, num_of_coeff_2b); setflag[itype][jtype] = 1; setflag[jtype][itype] = 1; @@ -710,7 +706,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp4th_line(temp_line); if (fp4th_line.count() != num_knots_3b_jk) error->all(FLERR, - "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "UF3: Error reading the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 4th line of the block but found {} " "numbers", element1, element2, element3, num_knots_3b_jk, fp4th_line.count()); @@ -733,7 +729,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp5th_line(temp_line); if (fp5th_line.count() != num_knots_3b_ik) error->all(FLERR, - "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "UF3: Error reading the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 5th line of the block but found {} " "numbers", element1, element2, element3, num_knots_3b_ik, fp5th_line.count()); @@ -756,7 +752,7 @@ void PairUF3::uf3_read_unified_pot_file(char *potf_name) ValueTokenizer fp6th_line(temp_line); if (fp6th_line.count() != num_knots_3b_ij) error->all(FLERR, - "UF3: Error readig the 3B potential block for {}-{}-{}\n" + "UF3: Error reading the 3B potential block for {}-{}-{}\n" "Expected {} numbers on 6th line of the block but found {} " "numbers", element1, element2, element3, num_knots_3b_ij, fp6th_line.count()); From fe13768fa4b46681eef1db48223ccc804cc07eee Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jun 2024 01:16:50 -0400 Subject: [PATCH 300/313] remove unused class member --- src/DPD-BASIC/pair_dpd_coul_slater_long.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DPD-BASIC/pair_dpd_coul_slater_long.h b/src/DPD-BASIC/pair_dpd_coul_slater_long.h index c5fb975fbe..99498b4a95 100644 --- a/src/DPD-BASIC/pair_dpd_coul_slater_long.h +++ b/src/DPD-BASIC/pair_dpd_coul_slater_long.h @@ -51,7 +51,7 @@ class PairDPDCoulSlaterLong : public Pair { double **a0, **gamma; double **sigma; class RanMars *random; - double cut_coul, qdist; + double cut_coul; double lamda; double g_ewald; From 6b4254504492502ab2567578c0c051b5c427b364 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 07:51:49 -0600 Subject: [PATCH 301/313] fix errors in fix amoeba/pitorsion doc page --- doc/src/fix_amoeba_bitorsion.rst | 23 ++++++++++++++--------- doc/src/fix_amoeba_pitorsion.rst | 17 ++++++++--------- tools/tinker/tinker2lmp.py | 4 ++-- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/doc/src/fix_amoeba_bitorsion.rst b/doc/src/fix_amoeba_bitorsion.rst index a9abaf19ce..057c5cf550 100644 --- a/doc/src/fix_amoeba_bitorsion.rst +++ b/doc/src/fix_amoeba_bitorsion.rst @@ -35,7 +35,11 @@ the implementation of AMOEBA and HIPPO in LAMMPS. Bitorsion interactions add additional potential energy contributions to pairs of overlapping phi-psi dihedrals of amino-acids, which are -important to properly represent their conformational behavior. +important to properly represent their conformational behavior. Each +bitorsion interaction is thus defined for a 5-tuple of atoms +:math:`IJKLM` with bonds between successive atoms in the list, +i.e. two overlapping dihedral interactions for atoms :math:`IJKL` and +:math:`JKLM`. The examples/amoeba directory has a sample input script and data file for ubiquitin, which illustrates use of the fix amoeba/bitorsion @@ -68,14 +72,15 @@ lines: [...] N 3 314 315 317 318 330 -The first column is an index from 1 to :math:`N` to enumerate the bitorsion -5-atom tuples; it is ignored by LAMMPS. The second column is the -*type* of the interaction; it is an index into the bitorsion force -field file. The remaining 5 columns are the atom IDs of the atoms in -the two 4-atom dihedrals that overlap to create the bitorsion 5-body -interaction. Note that the *bitorsions* and *BiTorsions* keywords for -the header and body sections match those specified in the -:doc:`read_data ` command following the data file name. +The first column is an index from 1 to :math:`N` to enumerate the +bitorsion 5-atom tuples; it is ignored by LAMMPS. The second column +is the *type* of the interaction; it is an index into the bitorsion +force field file. The remaining 5 columns are the atom IDs of the +atoms (in order) for the 5-tuple :math:`IJKLM`, as described above. + +Note that the *bitorsions* and *BiTorsions* keywords for the header +and body sections match those specified in the :doc:`read_data +` command following the data file name. The data file should be generated by using the tools/tinker/tinker2lmp.py conversion script which creates a LAMMPS diff --git a/doc/src/fix_amoeba_pitorsion.rst b/doc/src/fix_amoeba_pitorsion.rst index 484c1015c8..b76c98327d 100644 --- a/doc/src/fix_amoeba_pitorsion.rst +++ b/doc/src/fix_amoeba_pitorsion.rst @@ -57,7 +57,7 @@ should have two lines like these in its header section: M pitorsion types N pitorsions -where :math:`N` is the number of pitorsion 5-body interactions and :math:`M` is +where :math:`N` is the number of pitorsion 6-body interactions and :math:`M` is the number of pitorsion types. It should also have two sections in the body of the data file like these with :math:`M` and :math:`N` lines each: @@ -79,16 +79,15 @@ of the data file like these with :math:`M` and :math:`N` lines each: [...] N 3 314 315 317 318 330 -For PiTorsion Coeffs, the first column is an index from 1 to :math:`M` to -enumerate the pitorsion types. The second column is the single +For PiTorsion Coeffs, the first column is an index from 1 to :math:`M` +to enumerate the pitorsion types. The second column is the single prefactor coefficient needed for each type. -For PiTorsions, the first column is an index from 1 to :math:`N` to enumerate -the pitorsion 5-atom tuples; it is ignored by LAMMPS. The second -column is the "type" of the interaction; it is an index into the -PiTorsion Coeffs. The remaining 5 columns are the atom IDs of the -atoms in the two 4-atom dihedrals that overlap to create the pitorsion -5-body interaction. +For PiTorsions, the first column is an index from 1 to :math:`N` to +enumerate the pitorsion 6-atom tuples; it is ignored by LAMMPS. The +second column is the "type" of the interaction; it is an index into +the PiTorsion Coeffs. The remaining 6 columns are the atom IDs of the +atoms (in order) for the 6-tuple :math:`IJKLMN`, as described above. Note that the *pitorsion types* and *pitorsions* and *PiTorsion Coeffs* and *PiTorsions* keywords for the header and body sections of diff --git a/tools/tinker/tinker2lmp.py b/tools/tinker/tinker2lmp.py index e3ae59748c..3cb9160119 100644 --- a/tools/tinker/tinker2lmp.py +++ b/tools/tinker/tinker2lmp.py @@ -923,7 +923,7 @@ for atom1,atom2,atom3 in alist: elif (c3,c2,c1) in ubdict: ublist.append((atom3,atom2,atom1)) -# create pitorslist = list of 6-body interactions +# create pitorsionlist = list of 6-body interactions # based on central bond, each bond atom is bonded to exactly 2 other atoms # avoid double counting by requiring atom1 < atom2 # NOTE: need more info on how to order the 6 atoms for Tinker to compute on @@ -962,7 +962,7 @@ for atom1 in id: pitorsionlist.append((atom3,atom4,atom1,atom2,atom5,atom6)) -# create bitorslist = list of 5-body interactions +# create bitorsionlist = list of 5-body interactions # generate topology via double loop over neighbors of central atom3 # additional double loop over bonds of atom2 and bonds of atom4 # avoid double counting the reverse bitorsion by use of btdict dictionary From d0da16070b50b191f6ac5bdbe8f522e251d25db2 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 08:00:50 -0600 Subject: [PATCH 302/313] one more change --- doc/src/fix_amoeba_pitorsion.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/fix_amoeba_pitorsion.rst b/doc/src/fix_amoeba_pitorsion.rst index b76c98327d..936eba762d 100644 --- a/doc/src/fix_amoeba_pitorsion.rst +++ b/doc/src/fix_amoeba_pitorsion.rst @@ -74,10 +74,10 @@ of the data file like these with :math:`M` and :math:`N` lines each: PiTorsions - 1 1 8 10 12 18 20 - 2 5 18 20 22 25 27 + 1 1 2 4 3 20 21 24 + 2 5 21 23 22 37 38 41 [...] - N 3 314 315 317 318 330 + N 7 27 29 28 30 35 36 For PiTorsion Coeffs, the first column is an index from 1 to :math:`M` to enumerate the pitorsion types. The second column is the single From 7dae9c05baf908fcb2be94ed6823727a233b6813 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 08:59:09 -0600 Subject: [PATCH 303/313] changes for triclinic function ptr init --- src/dump_custom.cpp | 135 ++++++++++++++++++++++++++++---------------- 1 file changed, 86 insertions(+), 49 deletions(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 45e8ca4dc1..0ca88fdc7f 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -293,7 +293,7 @@ void DumpCustom::init_style() domain->boundary_string(boundstr); - // setup function ptrs + // setup function ptrs for writing header and file format if (binary && domain->triclinic == 0) header_choice = &DumpCustom::header_binary; @@ -312,6 +312,67 @@ void DumpCustom::init_style() else if (buffer_flag == 1) write_choice = &DumpCustom::write_string; else write_choice = &DumpCustom::write_lines; + // if triclinic_general = 1, change any affected pack_choice function ptrs + + if (triclinic_general == 1) { + for (int n = 0; n < size_one; n++) { + if (pack_choice[n] == &DumpCustom::pack_x) + pack_choice[n] = &DumpCustom::pack_x_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_y) + pack_choice[n] = &DumpCustom::pack_y_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_z) + pack_choice[n] = &DumpCustom::pack_z_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_xs) + pack_choice[n] = &DumpCustom::pack_xs_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_ys) + pack_choice[n] = &DumpCustom::pack_ys_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_zs) + pack_choice[n] = &DumpCustom::pack_zs_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_xu || + pack_choice[n] == &DumpCustom::pack_xu_triclinic) + pack_choice[n] = &DumpCustom::pack_xu_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_yu || + pack_choice[n] == &DumpCustom::pack_yu_triclinic) + pack_choice[n] = &DumpCustom::pack_yu_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_zu || + pack_choice[n] == &DumpCustom::pack_zu_triclinic) + pack_choice[n] = &DumpCustom::pack_zu_triclinic_general; + + else if (pack_choice[n] == &DumpCustom::pack_vx) + pack_choice[n] = &DumpCustom::pack_vx_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_vy) + pack_choice[n] = &DumpCustom::pack_vy_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_vz) + pack_choice[n] = &DumpCustom::pack_vz_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_fx) + pack_choice[n] = &DumpCustom::pack_fx_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_fy) + pack_choice[n] = &DumpCustom::pack_fy_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_fz) + pack_choice[n] = &DumpCustom::pack_fz_triclinic_general; + + else if (pack_choice[n] == &DumpCustom::pack_mux) + pack_choice[n] = &DumpCustom::pack_mux_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_muy) + pack_choice[n] = &DumpCustom::pack_muy_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_muz) + pack_choice[n] = &DumpCustom::pack_muz_triclinic_general; + + else if (pack_choice[n] == &DumpCustom::pack_angmomx) + pack_choice[n] = &DumpCustom::pack_angmomx_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_angmomy) + pack_choice[n] = &DumpCustom::pack_angmomy_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_angmomz) + pack_choice[n] = &DumpCustom::pack_angmomz_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_tqx) + pack_choice[n] = &DumpCustom::pack_tqx_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_tqy) + pack_choice[n] = &DumpCustom::pack_tqy_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_tqz) + pack_choice[n] = &DumpCustom::pack_tqz_triclinic_general; + } + } + // find current ptr for each compute,fix,variable and custom atom property // check that fix frequency is acceptable @@ -1342,42 +1403,33 @@ int DumpCustom::parse_fields(int narg, char **arg) vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"x") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_x_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_x; + pack_choice[iarg] = &DumpCustom::pack_x; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"y") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_y_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_y; + pack_choice[iarg] = &DumpCustom::pack_y; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"z") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_z_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_z; + pack_choice[iarg] = &DumpCustom::pack_z; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xs") == 0) { - if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_xs_triclinic; - else pack_choice[iarg] = &DumpCustom::pack_xs; + pack_choice[iarg] = &DumpCustom::pack_xs; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"ys") == 0) { - if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_ys_triclinic; - else pack_choice[iarg] = &DumpCustom::pack_ys; + pack_choice[iarg] = &DumpCustom::pack_ys; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"zs") == 0) { - if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_zs_triclinic; - else pack_choice[iarg] = &DumpCustom::pack_zs; + pack_choice[iarg] = &DumpCustom::pack_zs; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xu") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_xu_triclinic_general; - else if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_xu_triclinic; + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_xu_triclinic; else pack_choice[iarg] = &DumpCustom::pack_xu; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"yu") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_yu_triclinic_general; - else if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_yu_triclinic; + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_yu_triclinic; else pack_choice[iarg] = &DumpCustom::pack_yu; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"zu") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_zu_triclinic_general; - else if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_zu_triclinic; + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_zu_triclinic; else pack_choice[iarg] = &DumpCustom::pack_zu; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xsu") == 0) { @@ -1404,28 +1456,22 @@ int DumpCustom::parse_fields(int narg, char **arg) vtype[iarg] = Dump::INT; } else if (strcmp(arg[iarg],"vx") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_vx_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_vx; + pack_choice[iarg] = &DumpCustom::pack_vx; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"vy") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_vy_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_vy; + pack_choice[iarg] = &DumpCustom::pack_vy; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"vz") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_vz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_vz; + pack_choice[iarg] = &DumpCustom::pack_vz; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"fx") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_fx_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_fx; + pack_choice[iarg] = &DumpCustom::pack_fx; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"fy") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_fy_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_fy; + pack_choice[iarg] = &DumpCustom::pack_fy; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"fz") == 0) { - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_fz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_fz; + pack_choice[iarg] = &DumpCustom::pack_fz; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"q") == 0) { @@ -1437,20 +1483,17 @@ int DumpCustom::parse_fields(int narg, char **arg) } else if (strcmp(arg[iarg],"mux") == 0) { if (!atom->mu_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_mux_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_mux; + pack_choice[iarg] = &DumpCustom::pack_mux; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"muy") == 0) { if (!atom->mu_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_muy_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_muy; + pack_choice[iarg] = &DumpCustom::pack_muy; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"muz") == 0) { if (!atom->mu_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_muz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_muz; + pack_choice[iarg] = &DumpCustom::pack_muz; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"mu") == 0) { if (!atom->mu_flag) @@ -1490,39 +1533,33 @@ int DumpCustom::parse_fields(int narg, char **arg) } else if (strcmp(arg[iarg],"angmomx") == 0) { if (!atom->angmom_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_angmomx_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_angmomx; + pack_choice[iarg] = &DumpCustom::pack_angmomx; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"angmomy") == 0) { if (!atom->angmom_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_angmomy_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_angmomy; + pack_choice[iarg] = &DumpCustom::pack_angmomy; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"angmomz") == 0) { if (!atom->angmom_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_angmomz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_angmomz; + pack_choice[iarg] = &DumpCustom::pack_angmomz; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"tqx") == 0) { if (!atom->torque_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_tqx_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_tqx; + pack_choice[iarg] = &DumpCustom::pack_tqx; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"tqy") == 0) { if (!atom->torque_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_tqy_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_tqy; + pack_choice[iarg] = &DumpCustom::pack_tqy; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"tqz") == 0) { if (!atom->torque_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_tqz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_tqz; + pack_choice[iarg] = &DumpCustom::pack_tqz; vtype[iarg] = Dump::DOUBLE; // compute or fix or variable or custom vector/array From fc539b46ea6f8356dce949ba42fc07a78fc38963 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 09:23:04 -0600 Subject: [PATCH 304/313] change all function ptrs and 2 example dump files --- examples/triclinic/dump.8Apr24.general.g++.1 | 4 +- examples/triclinic/dump.8Apr24.general.g++.4 | 4 +- src/dump_custom.cpp | 95 ++++++++++++++++---- 3 files changed, 82 insertions(+), 21 deletions(-) diff --git a/examples/triclinic/dump.8Apr24.general.g++.1 b/examples/triclinic/dump.8Apr24.general.g++.1 index 4e7a7d08e0..2452b17086 100644 --- a/examples/triclinic/dump.8Apr24.general.g++.1 +++ b/examples/triclinic/dump.8Apr24.general.g++.1 @@ -7,5 +7,5 @@ ITEM: BOX BOUNDS abc origin pp pp pp 9.9999999999999989e-01 9.9999999999999989e-01 0.0000000000000000e+00 0.0000000000000000e+00 9.9999999999999989e-01 9.9999999999999989e-01 1.0000000000000000e+00 0.0000000000000000e+00 ITEM: ATOMS id type x y z -1 1 0.141421 0.141421 0.1 -2 1 0.565685 0.565685 0.3 +1 1 0.2 -1.38778e-17 0.1 +2 1 0.8 -1.11022e-16 0.3 diff --git a/examples/triclinic/dump.8Apr24.general.g++.4 b/examples/triclinic/dump.8Apr24.general.g++.4 index 4e7a7d08e0..2452b17086 100644 --- a/examples/triclinic/dump.8Apr24.general.g++.4 +++ b/examples/triclinic/dump.8Apr24.general.g++.4 @@ -7,5 +7,5 @@ ITEM: BOX BOUNDS abc origin pp pp pp 9.9999999999999989e-01 9.9999999999999989e-01 0.0000000000000000e+00 0.0000000000000000e+00 9.9999999999999989e-01 9.9999999999999989e-01 1.0000000000000000e+00 0.0000000000000000e+00 ITEM: ATOMS id type x y z -1 1 0.141421 0.141421 0.1 -2 1 0.565685 0.565685 0.3 +1 1 0.2 -1.38778e-17 0.1 +2 1 0.8 -1.11022e-16 0.3 diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 0ca88fdc7f..53366d46f4 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -240,7 +240,7 @@ DumpCustom::~DumpCustom() void DumpCustom::init_style() { - // assemble ITEMS: column string from defaults and user values + // assemble ITEMS column string from defaults and user values delete[] columns; std::string combined; @@ -312,7 +312,68 @@ void DumpCustom::init_style() else if (buffer_flag == 1) write_choice = &DumpCustom::write_string; else write_choice = &DumpCustom::write_lines; - // if triclinic_general = 1, change any affected pack_choice function ptrs + // triclinic_general can be toggled by dump_modify before or between run + // change any affected pack_choice function ptrs + + if (triclinic_general == 0) { + for (int n = 0; n < size_one; n++) { + if (pack_choice[n] == &DumpCustom::pack_x_triclinic_general) + pack_choice[n] = &DumpCustom::pack_x; + else if (pack_choice[n] == &DumpCustom::pack_y_triclinic_general) + pack_choice[n] = &DumpCustom::pack_y; + else if (pack_choice[n] == &DumpCustom::pack_z_triclinic_general) + pack_choice[n] = &DumpCustom::pack_z; + else if (pack_choice[n] == &DumpCustom::pack_xu_triclinic_general) { + if (domain->triclinic) pack_choice[n] = &DumpCustom::pack_xu_triclinic; + else pack_choice[n] == &DumpCustom::pack_xu; + } else if (pack_choice[n] == &DumpCustom::pack_yu_triclinic_general) { + if (domain->triclinic) pack_choice[n] = &DumpCustom::pack_yu_triclinic; + else pack_choice[n] == &DumpCustom::pack_yu; + } else if (pack_choice[n] == &DumpCustom::pack_zu_triclinic_general) { + if (domain->triclinic) pack_choice[n] = &DumpCustom::pack_zu_triclinic; + else pack_choice[n] == &DumpCustom::pack_zu; + } + + else if (pack_choice[n] == &DumpCustom::pack_vx_triclinic_general) + pack_choice[n] = &DumpCustom::pack_vx; + else if (pack_choice[n] == &DumpCustom::pack_vy_triclinic_general) + pack_choice[n] = &DumpCustom::pack_vy; + else if (pack_choice[n] == &DumpCustom::pack_vz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_vz; + else if (pack_choice[n] == &DumpCustom::pack_fx_triclinic_general) + pack_choice[n] = &DumpCustom::pack_fx; + else if (pack_choice[n] == &DumpCustom::pack_fy_triclinic_general) + pack_choice[n] = &DumpCustom::pack_fy; + else if (pack_choice[n] == &DumpCustom::pack_fz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_fz; + + else if (pack_choice[n] == &DumpCustom::pack_mux_triclinic_general) + pack_choice[n] = &DumpCustom::pack_mux; + else if (pack_choice[n] == &DumpCustom::pack_muy_triclinic_general) + pack_choice[n] = &DumpCustom::pack_muy; + else if (pack_choice[n] == &DumpCustom::pack_muz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_muz; + + else if (pack_choice[n] == &DumpCustom::pack_omegax_triclinic_general) + pack_choice[n] = &DumpCustom::pack_omegax; + else if (pack_choice[n] == &DumpCustom::pack_omegay_triclinic_general) + pack_choice[n] = &DumpCustom::pack_omegay; + else if (pack_choice[n] == &DumpCustom::pack_omegaz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_omegaz; + else if (pack_choice[n] == &DumpCustom::pack_angmomx_triclinic_general) + pack_choice[n] = &DumpCustom::pack_angmomx; + else if (pack_choice[n] == &DumpCustom::pack_angmomy_triclinic_general) + pack_choice[n] = &DumpCustom::pack_angmomy; + else if (pack_choice[n] == &DumpCustom::pack_angmomz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_angmomz; + else if (pack_choice[n] == &DumpCustom::pack_tqx_triclinic_general) + pack_choice[n] = &DumpCustom::pack_tqx; + else if (pack_choice[n] == &DumpCustom::pack_tqy_triclinic_general) + pack_choice[n] = &DumpCustom::pack_tqy; + else if (pack_choice[n] == &DumpCustom::pack_tqz_triclinic_general) + pack_choice[n] = &DumpCustom::pack_tqz; + } + } if (triclinic_general == 1) { for (int n = 0; n < size_one; n++) { @@ -322,12 +383,6 @@ void DumpCustom::init_style() pack_choice[n] = &DumpCustom::pack_y_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_z) pack_choice[n] = &DumpCustom::pack_z_triclinic_general; - else if (pack_choice[n] == &DumpCustom::pack_xs) - pack_choice[n] = &DumpCustom::pack_xs_triclinic_general; - else if (pack_choice[n] == &DumpCustom::pack_ys) - pack_choice[n] = &DumpCustom::pack_ys_triclinic_general; - else if (pack_choice[n] == &DumpCustom::pack_zs) - pack_choice[n] = &DumpCustom::pack_zs_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_xu || pack_choice[n] == &DumpCustom::pack_xu_triclinic) pack_choice[n] = &DumpCustom::pack_xu_triclinic_general; @@ -357,7 +412,13 @@ void DumpCustom::init_style() pack_choice[n] = &DumpCustom::pack_muy_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_muz) pack_choice[n] = &DumpCustom::pack_muz_triclinic_general; - + + else if (pack_choice[n] == &DumpCustom::pack_omegax) + pack_choice[n] = &DumpCustom::pack_omegax_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_omegay) + pack_choice[n] = &DumpCustom::pack_omegay_triclinic_general; + else if (pack_choice[n] == &DumpCustom::pack_omegaz) + pack_choice[n] = &DumpCustom::pack_omegaz_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_angmomx) pack_choice[n] = &DumpCustom::pack_angmomx_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_angmomy) @@ -1412,12 +1473,15 @@ int DumpCustom::parse_fields(int narg, char **arg) pack_choice[iarg] = &DumpCustom::pack_z; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xs") == 0) { - pack_choice[iarg] = &DumpCustom::pack_xs; + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_xs_triclinic; + else pack_choice[iarg] = &DumpCustom::pack_xs; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"ys") == 0) { - pack_choice[iarg] = &DumpCustom::pack_ys; + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_ys_triclinic; + else pack_choice[iarg] = &DumpCustom::pack_ys; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"zs") == 0) { + if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_zs_triclinic; pack_choice[iarg] = &DumpCustom::pack_zs; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xu") == 0) { @@ -1514,20 +1578,17 @@ int DumpCustom::parse_fields(int narg, char **arg) } else if (strcmp(arg[iarg],"omegax") == 0) { if (!atom->omega_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_omegax_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_omegax; + pack_choice[iarg] = &DumpCustom::pack_omegax; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"omegay") == 0) { if (!atom->omega_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_omegay_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_omegay; + pack_choice[iarg] = &DumpCustom::pack_omegay; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"omegaz") == 0) { if (!atom->omega_flag) error->all(FLERR,"Dumping an atom property that isn't allocated"); - if (triclinic_general) pack_choice[iarg] = &DumpCustom::pack_omegaz_triclinic_general; - else pack_choice[iarg] = &DumpCustom::pack_omegaz; + pack_choice[iarg] = &DumpCustom::pack_omegaz; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"angmomx") == 0) { From de684a15b67eccab0c02be295d0c45c2cd760ba0 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 09:33:12 -0600 Subject: [PATCH 305/313] typo code change --- src/dump_custom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 53366d46f4..a6f42381cc 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -1482,7 +1482,7 @@ int DumpCustom::parse_fields(int narg, char **arg) vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"zs") == 0) { if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_zs_triclinic; - pack_choice[iarg] = &DumpCustom::pack_zs; + else pack_choice[iarg] = &DumpCustom::pack_zs; vtype[iarg] = Dump::DOUBLE; } else if (strcmp(arg[iarg],"xu") == 0) { if (domain->triclinic) pack_choice[iarg] = &DumpCustom::pack_xu_triclinic; From eba1599f9cf8f4ea2b2b2b10e01c54ca794b24c0 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Fri, 21 Jun 2024 09:35:10 -0600 Subject: [PATCH 306/313] typo comment change --- src/dump_custom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index a6f42381cc..3b8b2bc418 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -312,7 +312,7 @@ void DumpCustom::init_style() else if (buffer_flag == 1) write_choice = &DumpCustom::write_string; else write_choice = &DumpCustom::write_lines; - // triclinic_general can be toggled by dump_modify before or between run + // triclinic_general can be toggled by dump_modify before or between runs // change any affected pack_choice function ptrs if (triclinic_general == 0) { From cf2dede47f6aab4d01ecf4e084ea8de79ce49181 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 21 Jun 2024 12:20:59 -0400 Subject: [PATCH 307/313] whitespace --- src/dump_custom.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 3b8b2bc418..dcd76f3cd1 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -314,7 +314,7 @@ void DumpCustom::init_style() // triclinic_general can be toggled by dump_modify before or between runs // change any affected pack_choice function ptrs - + if (triclinic_general == 0) { for (int n = 0; n < size_one; n++) { if (pack_choice[n] == &DumpCustom::pack_x_triclinic_general) @@ -333,7 +333,7 @@ void DumpCustom::init_style() if (domain->triclinic) pack_choice[n] = &DumpCustom::pack_zu_triclinic; else pack_choice[n] == &DumpCustom::pack_zu; } - + else if (pack_choice[n] == &DumpCustom::pack_vx_triclinic_general) pack_choice[n] = &DumpCustom::pack_vx; else if (pack_choice[n] == &DumpCustom::pack_vy_triclinic_general) @@ -405,14 +405,14 @@ void DumpCustom::init_style() pack_choice[n] = &DumpCustom::pack_fy_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_fz) pack_choice[n] = &DumpCustom::pack_fz_triclinic_general; - + else if (pack_choice[n] == &DumpCustom::pack_mux) pack_choice[n] = &DumpCustom::pack_mux_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_muy) pack_choice[n] = &DumpCustom::pack_muy_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_muz) pack_choice[n] = &DumpCustom::pack_muz_triclinic_general; - + else if (pack_choice[n] == &DumpCustom::pack_omegax) pack_choice[n] = &DumpCustom::pack_omegax_triclinic_general; else if (pack_choice[n] == &DumpCustom::pack_omegay) From 3c81badc5c7a6396cbc3359912e9ac4ac2f5d391 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Jun 2024 03:22:16 -0400 Subject: [PATCH 308/313] avoid namespace pollutions from defines in eapot.h --- src/KOKKOS/pair_pod_kokkos.cpp | 3 ++- src/KOKKOS/pair_pod_kokkos.h | 1 - src/ML-POD/compute_pod_atom.cpp | 3 ++- src/ML-POD/compute_pod_global.cpp | 3 ++- src/ML-POD/compute_pod_local.cpp | 3 ++- src/ML-POD/compute_podd_atom.cpp | 3 ++- src/ML-POD/eapod.cpp | 6 +++--- src/ML-POD/fitpod_command.cpp | 4 ++-- src/ML-POD/pair_pod.cpp | 4 ++-- 9 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/KOKKOS/pair_pod_kokkos.cpp b/src/KOKKOS/pair_pod_kokkos.cpp index f036ac2c57..6aa070318d 100644 --- a/src/KOKKOS/pair_pod_kokkos.cpp +++ b/src/KOKKOS/pair_pod_kokkos.cpp @@ -16,7 +16,6 @@ Contributing author: Ngoc Cuong Nguyen (MIT) ------------------------------------------------------------------------- */ -#include "eapod.h" #include "pair_pod_kokkos.h" #include "atom_kokkos.h" @@ -33,6 +32,8 @@ #include #include +#include "eapod.h" + using namespace LAMMPS_NS; using namespace MathConst; using MathSpecial::powint; diff --git a/src/KOKKOS/pair_pod_kokkos.h b/src/KOKKOS/pair_pod_kokkos.h index ab6cd3f827..facd663152 100644 --- a/src/KOKKOS/pair_pod_kokkos.h +++ b/src/KOKKOS/pair_pod_kokkos.h @@ -23,7 +23,6 @@ PairStyle(pod/kk/host,PairPODKokkos); #ifndef LMP_PAIR_POD_KOKKOS_H #define LMP_PAIR_POD_KOKKOS_H -#include "eapod.h" #include "pair_pod.h" #include "kokkos_type.h" #include "pair_kokkos.h" diff --git a/src/ML-POD/compute_pod_atom.cpp b/src/ML-POD/compute_pod_atom.cpp index 566811cc31..d9f486ea43 100644 --- a/src/ML-POD/compute_pod_atom.cpp +++ b/src/ML-POD/compute_pod_atom.cpp @@ -23,11 +23,12 @@ #include "neigh_list.h" #include "neighbor.h" #include "pair.h" -#include "eapod.h" #include "update.h" #include +#include "eapod.h" + using namespace LAMMPS_NS; enum{SCALAR,VECTOR,ARRAY}; diff --git a/src/ML-POD/compute_pod_global.cpp b/src/ML-POD/compute_pod_global.cpp index fceca7a0ff..d1e09916b5 100644 --- a/src/ML-POD/compute_pod_global.cpp +++ b/src/ML-POD/compute_pod_global.cpp @@ -23,11 +23,12 @@ #include "neigh_list.h" #include "neighbor.h" #include "pair.h" -#include "eapod.h" #include "update.h" #include +#include "eapod.h" + using namespace LAMMPS_NS; enum{SCALAR,VECTOR,ARRAY}; diff --git a/src/ML-POD/compute_pod_local.cpp b/src/ML-POD/compute_pod_local.cpp index ab9a02238b..44c3f65756 100644 --- a/src/ML-POD/compute_pod_local.cpp +++ b/src/ML-POD/compute_pod_local.cpp @@ -23,11 +23,12 @@ #include "neigh_list.h" #include "neighbor.h" #include "pair.h" -#include "eapod.h" #include "update.h" #include +#include "eapod.h" + using namespace LAMMPS_NS; enum{SCALAR,VECTOR,ARRAY}; diff --git a/src/ML-POD/compute_podd_atom.cpp b/src/ML-POD/compute_podd_atom.cpp index 37b28f5e4d..6987f367a9 100644 --- a/src/ML-POD/compute_podd_atom.cpp +++ b/src/ML-POD/compute_podd_atom.cpp @@ -23,11 +23,12 @@ #include "neigh_list.h" #include "neighbor.h" #include "pair.h" -#include "eapod.h" #include "update.h" #include +#include "eapod.h" + using namespace LAMMPS_NS; enum{SCALAR,VECTOR,ARRAY}; diff --git a/src/ML-POD/eapod.cpp b/src/ML-POD/eapod.cpp index f6d771eb83..2777d418eb 100644 --- a/src/ML-POD/eapod.cpp +++ b/src/ML-POD/eapod.cpp @@ -15,9 +15,6 @@ Contributing authors: Ngoc Cuong Nguyen (MIT) ------------------------------------------------------------------------- */ -// POD header file -#include "eapod.h" - // LAMMPS header files #include "comm.h" @@ -29,6 +26,9 @@ #include +// header file. Moved down here to avoid polluting other headers with its defines +#include "eapod.h" + using namespace LAMMPS_NS; using MathConst::MY_PI; using MathSpecial::cube; diff --git a/src/ML-POD/fitpod_command.cpp b/src/ML-POD/fitpod_command.cpp index 47feb19f58..f9786d7273 100644 --- a/src/ML-POD/fitpod_command.cpp +++ b/src/ML-POD/fitpod_command.cpp @@ -18,8 +18,6 @@ #include "fitpod_command.h" -#include "eapod.h" - #include "comm.h" #include "error.h" #include "math_special.h" @@ -33,6 +31,8 @@ #include #include +#include "eapod.h" + using namespace LAMMPS_NS; using MathSpecial::powint; diff --git a/src/ML-POD/pair_pod.cpp b/src/ML-POD/pair_pod.cpp index bbcc62ef3a..5dfcea8997 100644 --- a/src/ML-POD/pair_pod.cpp +++ b/src/ML-POD/pair_pod.cpp @@ -17,8 +17,6 @@ #include "pair_pod.h" -#include "eapod.h" - #include "atom.h" #include "comm.h" #include "error.h" @@ -34,6 +32,8 @@ #include #include +#include "eapod.h" + using namespace LAMMPS_NS; using MathConst::MY_PI; using MathSpecial::powint; From 79cc64766b38ce4889447281f2e9f9d1b426b296 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Jun 2024 03:55:10 -0400 Subject: [PATCH 309/313] initialize all pointers to null, reorder to match definition --- src/ML-POD/compute_pod_atom.cpp | 6 +++--- src/ML-POD/compute_pod_global.cpp | 6 ++++-- src/ML-POD/compute_pod_local.cpp | 6 ++++-- src/ML-POD/compute_podd_atom.cpp | 7 ++++--- src/ML-POD/eapod.cpp | 18 +++++++----------- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/ML-POD/compute_pod_atom.cpp b/src/ML-POD/compute_pod_atom.cpp index d9f486ea43..68ce84d529 100644 --- a/src/ML-POD/compute_pod_atom.cpp +++ b/src/ML-POD/compute_pod_atom.cpp @@ -31,12 +31,12 @@ using namespace LAMMPS_NS; -enum{SCALAR,VECTOR,ARRAY}; +enum { SCALAR, VECTOR, ARRAY }; ComputePODAtom::ComputePODAtom(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), list(nullptr), map(nullptr), pod(nullptr), elements(nullptr) + Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr), + rij(nullptr), elements(nullptr), map(nullptr) { - int nargmin = 6; if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); diff --git a/src/ML-POD/compute_pod_global.cpp b/src/ML-POD/compute_pod_global.cpp index d1e09916b5..7984e1c363 100644 --- a/src/ML-POD/compute_pod_global.cpp +++ b/src/ML-POD/compute_pod_global.cpp @@ -31,10 +31,12 @@ using namespace LAMMPS_NS; -enum{SCALAR,VECTOR,ARRAY}; +enum { SCALAR, VECTOR, ARRAY }; ComputePODGlobal::ComputePODGlobal(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), list(nullptr), map(nullptr), pod(nullptr), elements(nullptr) + Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr), + rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr), + tj(nullptr) { array_flag = 1; extarray = 0; diff --git a/src/ML-POD/compute_pod_local.cpp b/src/ML-POD/compute_pod_local.cpp index 44c3f65756..90babad8d1 100644 --- a/src/ML-POD/compute_pod_local.cpp +++ b/src/ML-POD/compute_pod_local.cpp @@ -31,10 +31,12 @@ using namespace LAMMPS_NS; -enum{SCALAR,VECTOR,ARRAY}; +enum { SCALAR, VECTOR, ARRAY }; ComputePODLocal::ComputePODLocal(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), list(nullptr), map(nullptr), pod(nullptr), elements(nullptr) + Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr), + rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr), + tj(nullptr) { array_flag = 1; extarray = 0; diff --git a/src/ML-POD/compute_podd_atom.cpp b/src/ML-POD/compute_podd_atom.cpp index 6987f367a9..9ef5307bfa 100644 --- a/src/ML-POD/compute_podd_atom.cpp +++ b/src/ML-POD/compute_podd_atom.cpp @@ -31,12 +31,13 @@ using namespace LAMMPS_NS; -enum{SCALAR,VECTOR,ARRAY}; +enum { SCALAR, VECTOR, ARRAY }; ComputePODDAtom::ComputePODDAtom(LAMMPS *lmp, int narg, char **arg) : - Compute(lmp, narg, arg), list(nullptr), map(nullptr), pod(nullptr), elements(nullptr) + Compute(lmp, narg, arg), list(nullptr), podptr(nullptr), pod(nullptr), tmpmem(nullptr), + rij(nullptr), elements(nullptr), map(nullptr), ai(nullptr), aj(nullptr), ti(nullptr), + tj(nullptr) { - int nargmin = 6; if (narg < nargmin) error->all(FLERR, "Illegal compute {} command", style); diff --git a/src/ML-POD/eapod.cpp b/src/ML-POD/eapod.cpp index 2777d418eb..f17e7c12c0 100644 --- a/src/ML-POD/eapod.cpp +++ b/src/ML-POD/eapod.cpp @@ -1,3 +1,4 @@ +// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/ Sandia National Laboratories @@ -38,18 +39,13 @@ using MathSpecial::powint; // constructor EAPOD::EAPOD(LAMMPS *_lmp, const std::string &pod_file, const std::string &coeff_file) : - Pointers(_lmp), elemindex(nullptr), Phi(nullptr), Lambda(nullptr), Proj(nullptr), - Centroids(nullptr), bd(nullptr), bdd(nullptr), pd(nullptr), pdd(nullptr), coeff(nullptr), tmpmem(nullptr), tmpint(nullptr), - pn3(nullptr), pq3(nullptr), pc3(nullptr), pq4(nullptr), pa4(nullptr), pb4(nullptr), pc4(nullptr), - ind23(nullptr), ind32(nullptr), ind33(nullptr), ind34(nullptr), ind43(nullptr), ind44(nullptr) + Pointers(_lmp), elemindex(nullptr), Phi(nullptr), Lambda(nullptr), coeff(nullptr), + tmpmem(nullptr), Proj(nullptr), Centroids(nullptr), bd(nullptr), bdd(nullptr), pd(nullptr), + pdd(nullptr), pn3(nullptr), pq3(nullptr), pc3(nullptr), pq4(nullptr), pa4(nullptr), + pb4(nullptr), pc4(nullptr), tmpint(nullptr), ind23(nullptr), ind32(nullptr), ind33(nullptr), + ind34(nullptr), ind43(nullptr), ind44(nullptr), ind33l(nullptr), ind33r(nullptr), + ind34l(nullptr), ind34r(nullptr), ind44l(nullptr), ind44r(nullptr) { - ind33l = nullptr; - ind33r = nullptr; - ind34l = nullptr; - ind34r = nullptr; - ind44l = nullptr; - ind44r = nullptr; - rin = 0.5; rcut = 5.0; nClusters = 1; From 21685136bee66840e21e2ef9c1527e379a51149b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Jun 2024 03:55:50 -0400 Subject: [PATCH 310/313] add braces to group commands according to indentation --- src/ML-POD/fitpod_command.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ML-POD/fitpod_command.cpp b/src/ML-POD/fitpod_command.cpp index f9786d7273..fc5abefa52 100644 --- a/src/ML-POD/fitpod_command.cpp +++ b/src/ML-POD/fitpod_command.cpp @@ -377,13 +377,13 @@ void FitPOD::get_exyz_files(std::vector& files, std::vector Date: Sun, 23 Jun 2024 03:56:10 -0400 Subject: [PATCH 311/313] use utils::numeric to convert text to numbers --- src/ML-POD/fitpod_command.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ML-POD/fitpod_command.cpp b/src/ML-POD/fitpod_command.cpp index fc5abefa52..54a3a4eab8 100644 --- a/src/ML-POD/fitpod_command.cpp +++ b/src/ML-POD/fitpod_command.cpp @@ -315,10 +315,8 @@ int FitPOD::read_data_file(double *fitting_weights, std::string &file_format, while (numwords == 3){ // Insert in map. - double we = atof(words[1].c_str()); - we_map[words[0]] = atof(words[1].c_str()); - double wf = atof(words[2].c_str()); - wf_map[words[0]] = atof(words[2].c_str()); + we_map[words[0]] = utils::numeric(FLERR, words[1], false, lmp); + wf_map[words[0]] = utils::numeric(FLERR, words[2], false, lmp); // Get next line. if (comm->me == 0) { From 0d1759d4a4d44b84791a68d536099b8865202590 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Jun 2024 03:56:23 -0400 Subject: [PATCH 312/313] small programming style updates --- src/ML-POD/fitpod_command.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/ML-POD/fitpod_command.cpp b/src/ML-POD/fitpod_command.cpp index 54a3a4eab8..080074cf13 100644 --- a/src/ML-POD/fitpod_command.cpp +++ b/src/ML-POD/fitpod_command.cpp @@ -36,8 +36,7 @@ using namespace LAMMPS_NS; using MathSpecial::powint; -#define MAXLINE 1024 - +static constexpr int MAXLINE = 1024; static constexpr double SMALL = 1.0e-10; FitPOD::FitPOD(LAMMPS *_lmp) : Command(_lmp), fastpodptr(nullptr) @@ -75,7 +74,6 @@ void FitPOD::command(int narg, char **arg) if (((int) envdata.data_path.size() > 1) && (desc.nClusters > 1)) { environment_cluster_calculation(envdata); - //error->all(FLERR, "stop after environment_cluster_calculation"); memory->destroy(envdata.lattice); memory->destroy(envdata.energy); memory->destroy(envdata.stress); @@ -303,7 +301,6 @@ int FitPOD::read_data_file(double *fitting_weights, std::string &file_format, if (eof) break; MPI_Bcast(line,MAXLINE,MPI_CHAR,0,world); // Tokenize. - //std::vector words; try { words = Tokenizer(utils::trim_comment(line),"\"' \t\n\r\f").as_vector(); } catch (TokenizerException &) { @@ -330,7 +327,6 @@ int FitPOD::read_data_file(double *fitting_weights, std::string &file_format, if (eof) break; MPI_Bcast(line,MAXLINE,MPI_CHAR,0,world); // Tokenize. - //std::vector words; try { words = Tokenizer(utils::trim_comment(line),"\"' \t\n\r\f").as_vector(); } catch (TokenizerException &) { @@ -369,8 +365,8 @@ int FitPOD::read_data_file(double *fitting_weights, std::string &file_format, return precision; } -void FitPOD::get_exyz_files(std::vector& files, std::vector &group_names, const std::string &datapath, - const std::string &extension) +void FitPOD::get_exyz_files(std::vector& files, std::vector &group_names, + const std::string &datapath, const std::string &extension) { auto allfiles = platform::list_directory(datapath); std::sort(allfiles.begin(), allfiles.end()); From 9a41f6aedf918573a8eb6cde1ef13cad4c4db4e3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Jun 2024 04:21:01 -0400 Subject: [PATCH 313/313] spelling updates --- doc/src/fitpod_command.rst | 4 ++-- doc/utils/sphinx-config/false_positives.txt | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/src/fitpod_command.rst b/doc/src/fitpod_command.rst index 8dd0db5c9e..1af2deeb1b 100644 --- a/doc/src/fitpod_command.rst +++ b/doc/src/fitpod_command.rst @@ -247,7 +247,7 @@ of configurations in the loss function. For example: Volume_FCC 100.0 1.0 This will apply an energy weight of ``100.0`` and a force weight of ``1.0`` for all groups in the -``Ta`` example. The groups are named by their respecive filename. If certain groups are left out of +``Ta`` example. The groups are named by their respective filename. If certain groups are left out of this table, then the globally defined weights from the ``fitting_weight_energy`` and ``fitting_weight_force`` keywords will be used. @@ -277,7 +277,7 @@ It thus follows that :math:`E(\boldsymbol R, \boldsymbol Z) = The per-atom POD descriptors include one, two, three, four, five, six, and seven-body descriptors, which can be specified in the first input file. Furthermore, the per-atom POD descriptors -also depend on the number of environment clusters speciefied in the first input file. +also depend on the number of environment clusters specified in the first input file. Please see :ref:`(Nguyen2024) ` and :ref:`(Nguyen and Sema) ` for the detailed description of the per-atom POD descriptors. Training diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index e99b96fbb4..d73560f4b7 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1173,6 +1173,7 @@ finitecutflag Finnis Fiorin fitpod +fivebody fixID fj Fji @@ -2897,6 +2898,7 @@ Pmolrotate Pmoltrans pN png +podd Podhorszki Poiseuille poisson @@ -3370,6 +3372,7 @@ setmask Setmask setpoint setvel +sevenbody sfftw sfree Sg @@ -3420,6 +3423,7 @@ SiO Siochi Sirk Sival +sixbody sizeI sizeJ sizex